Skip to content

Hygiene session 0: cross-cutting convention rulings (docs) - #9

Draft
tomcrane wants to merge 12 commits into
mainfrom
hygiene/session-0
Draft

Hygiene session 0: cross-cutting convention rulings (docs)#9
tomcrane wants to merge 12 commits into
mainfrom
hygiene/session-0

Conversation

@tomcrane

@tomcrane tomcrane commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Doc changes from the hygiene sprint's cross-cutting session (session 0, 2026-08-06), ruled in-room. One commit per card (one shared commit for DIS-01+DIS-02, which edit the same sentence). Companion protagonist PRs: dlcs/protagonist#1236, #1237, #1238.

Commit Change
XC-02 customer.mdx#keys names the deliberate 200-on-POST exception (action POST returning the one-time key+secret)
ACC-12 (remainder) custom-headers.mdx PUT row gains its 404 (unblocked by the ACC-15 ruling)
SPA-19 (sample half) deletes orphan update_credentials.py (phantom /credentials sub-resource; model operation removed in #1236)
XC-04 batch.mdx documents the /test endpoint's {success} body (true = updated, false = no changes needed) + its 404
XC-08 identifiers.mdx becomes the authoritative identifier exception register (2 entries); fixes a broken anchor in asset.mdx
XC-10 the intentional 405 demos are labelled as deliberate failures
XC-12 adjuncts.mdx documents aggregate status semantics for multi-adjunct POST (201 = everything new, per RFC 9110)
XC-13 (docs half) batch.mdx example drops the phantom completedImages/errorImages links (routes never existed; model fixed in #1238)
PRO-05 queues.mdx: GET priority queue is supported — row added, "not supported" note removed; sample gains the GET
DIS-01 + DIS-02 asset-queries.mdx: ### Ordering section restored (default order = created), include and ordering de-listed from the caution Aside
DIS-25 single-asset-manifest.mdx: bare Sound/Video body for a single transcode, Choice only for several; no-transcodes ⇒ no canvas; audio example corrected

Replaced prose preserved in scratch/api-doc/ per the preserve-nuance principle (SPA-19 already had its section; DIS-25 added).

🤖 Generated with Claude Code

tomcrane and others added 4 commits August 5, 2026 12:00
Session-0 ruling (2026-08-06): create-POSTs return 201 with exactly two
named action-POST exceptions (key creation, application setup). The
keys section now states the exception so the 200 is read as deliberate,
not drift.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
UpdateCustomHeader returns WriteResult.NotFound when the header does
not exist; the row listed only 200/400. This was the part of ACC-12
held back pending the ACC-15 ruling - now ruled (session 0,
2026-08-06): PUT-update returns 200 (protagonist hygiene/session-0
fixes the handler that returned 201), so the documented 200 stands.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Session-0 ruling (2026-08-06): the phantom credentials PUT operation is
removed from the Hydra model (protagonist hygiene/session-0); this
sample demoed that never-implemented /credentials sub-resource. The
sub-resource prose and its original status-code table are preserved in
scratch/api-doc/origin-strategy.md. Credentials updates via full-object
PUT are covered by get_put_delete_origin_strategy.py.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Session-0 ruling (2026-08-06): the /test endpoint's plain {success}
JSON body is kept and documented as a deliberate exception (the last
non-Hydra shape on the API). Also adds the 404 (unknown batch ->
HydraNotFound, CustomerQueueController).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
tomcrane and others added 3 commits August 5, 2026 12:42
Session-0 ratification (2026-08-06): resources are addressed by id
unless listed in the register; exactly two exceptions today
(DeliveryChannelPolicy addressed by name; NamedQuery has a name but is
addressed by id). New name-addressed resources must be registered in
the same PR that introduces them. Drive-by: fixes the broken
#assetidentifiers anchor in asset.mdx (#asset-identifiers).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Session-0 ratification (2026-08-06): sample parity is a rule for main;
the p02_registering/p06_space POST-to-space samples deliberately
demonstrate the 405 and are now labelled so they read as demos, not
drift. The scheduled-sample-runs idea is parked as issue #11.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Session-0 ruling (2026-08-06): option (a) - the status code applies to
the container operation, not its members. A multi-member upsert returns
201 only when every member was created; 200 if any member updated.
Documented on the released surface (adjuncts.mdx bulk POST); the
adjunct-queue twin is release-gated and its wording is parked in
scratch/api-doc/queues.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
tomcrane and others added 5 commits August 5, 2026 14:07
batch example

Session-0 ruling (2026-08-06): no such routes exist (the #899 examples)
and protagonist PR #1238 removes the links from the model; the example
showed links that 404 today, so removing them is correct against
released behaviour too. Filter batch images with the asset-query syntax
on the images collection instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Session-0 ruling (2026-08-06), option (a): GET is intended
(GetCustomerPriorityQueue, CustomerQueueController.cs:149-163). Removes
the "GET is not supported" claim, adds the GET row, and the sample now
GETs the priority queue too (closing that XC-10 coverage gap). LinkCard
description still fits (the sample's primary purpose is the POST).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Session-0 rulings (2026-08-06): DIS-01 options (a)+(b) - restore the
### Ordering section (orderBy/orderByDescending; default order is
created, answering the old doc's open question), de-list ordering from
the caution Aside. DIS-02 option (a) - de-list include from the Aside;
the body already documented include=adjuncts, resolving the internal
contradiction. Both share the single Aside sentence, hence one commit
for two cards. Sample docstrings were already fixed in PR #7. Scratch
ordering note marked promoted; the DIS-06 no-whitelist nuance stays
parked there.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Session-0 ruling (2026-08-06), verified against
ManifestV3Builder.HandleTimebasedAsset: a single transcode gets a bare
Sound/Video painting body; Choice only wraps multiple outputs; an
iiif-av asset with no transcoded outputs gets no canvas at all (even
with a file channel alongside). Audio example de-Choiced and its
annotation id corrected to .../page/image (builder uses
{canvasId}/page/image for timebased too). Originals preserved in
scratch/api-doc/single-asset-manifest.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant