docs: complete and verify the split documents — 24 undocumented routes, merged route sections, ADRs #264
Labels
No labels
bug
enhancement
needs-triage
ready-for-agent
ready-for-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/deckle#264
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Make the documents #263 created true and complete: write the 24 route sections the API reference stubs, fix the stale claims the move carried over, condense the narrative to the depth each document's audience needs, and extract the design decisions into
docs/adr/. #263 moved the content without rewording it; this issue is the content pass.Current behavior
After #263 lands,
docs/holds the README's former content verbatim, with these known defects carried over:docs/api.mdhas stub headings for 24 routes that were never documented:/api/element/body,/api/element/duplicate,/api/element/refs,/api/media/bundle,/api/media/delete,/api/media/folder/create,/api/media/folder/delete,/api/media/folder/delete-plan,/api/media/folder/move,/api/media/folder/rename,/api/media/info,/api/media/library,/api/media/move,/api/media/refs,/api/media/rename,/api/media/thumb,/api/media/tree,/api/media/upload,/api/page/create-root,/api/page/discard,/api/page/move,/api/page/refs,/api/page/reorder,/api/publish/status.GET /api/page,POST /api/page/save,GET /api/tree) is described in several places with different key lists (base shape in one paragraph, translation keys in "Translations on the wire",enabledin another, children digest in another). No section gives a route's full current response.docs/harness.mdinherited "The ten commands" (eleven lines,versionmissing) and prose written before later flags existed.docs/architecture.mdstill carries rationale paragraphs that are decisions, not architecture: "Rich text, never raw HTML", "Media gate", "Publish is a background job", "Branch mode", "Branch-bundle page management", "Publish anyway", the host-navigation "Safety" reasoning, the bundle "requires" model replacing the standard flag (78e181e), the engine-written aliases being dropped (e4d8138).docs/adr/is empty apart from its format README.docs:commit since July); theupdate-docsskill's "verify against the current code, not the diff" rule has never been applied to it.Desired behavior
docs/api.md: every route has exactly one section, in a consistent shape — method and path, purpose in one sentence, request body (or query) with every key and its type, response with every key, the error codes it answers with (from the coded-error catalog), and language/translation behaviour where it applies. The scattered partial descriptions of a route are merged into its one section; cross-cutting behaviour (coded error bodies,Accept-Language,langaddressing,translationon page answers) is stated once in a preamble and linked. Every key named is verified against the handler and the Go types it marshals, not against the old prose.docs/harness.md: every command's section matchesusage()and the flag parsing incmd/harness; exit codes and--jsonshapes verified against the code; "ten commands" is gone.docs/host-navigation.md: unchanged in substance (it is a versioned contract); only broken cross-links and clearly editorial fixes.docs/features.md: verified againstinternal/feature(or wherever bundles, receipts andrequiresresolution live) and the shipped bundles underscaffold/; condensed where the move left feature-by-feature repetition.docs/architecture.md: a reader-ordered narrative (content model → sidecars → server → editor shell → git/publish → multilingual) at roughly a third of the moved length. Each decision paragraph becomes one sentence plus a link to its ADR.docs/adr/: one record per decision listed above (and any other the agent finds that has a stated "why"), each with context, decision, consequences and the originating commit or issue. ADRs are records: write them from the rationale the README already stated, dated to the commit that made the decision, not reinvented.scaffold/site/AGENTS.md: if any moved sidecar fact proves wrong against the engine during verification, fix it there (its drift test must stay green).docs/.docs-syncupdated to the new HEAD.Decisions
update-docsskill's standing rule, applied for the first time.update-docsskill forbids editing records to match new code; a record written now about a 2026-10-04 decision says so in its date and references the commit.docs/api.mdanddocs/harness.md, which the drift tests cover.deckle-hosted; a substantive change is its own issue with a version bump.Key interfaces
internal/serverhandlers and the request/response structs they decode and marshal — the source of truth for every key indocs/api.md.servermessages.json/ thecode+argserror body introduced in1322a0c) — the error-code vocabulary each route section cites.cmd/harnessusage(), per-command flag sets,--jsonoutput structs.internal/feature(or equivalent) manifest, receipt andrequirestypes.docs/agents/docs-map.mdand the drift tests from #263 — keep green throughout.Acceptance criteria
docs/api.md; each of the 24 listed routes has a full section.docs/harness.mdlists every command the dispatcher accepts with its real flags; no "ten commands" wording.docs/architecture.mdis at most half the line count it had after #263 and contains no wire shapes.docs/adr/holds a record for each decision named in Current behavior, each dated and citing its commit.docs/.docs-syncupdated;go test ./...green including the #263 drift tests,scaffold/skills_test.goandinternal/element/agentsdoc_test.go.How to verify
go test ./...green.harness --help-style usage output (run the binary) matchesdocs/harness.md's command table.grep -rn 'ten commands' docs README.mdis empty.Assumptions to check
deckle-hostedactually sends — read the snapshot's host-navigation producer before touching even editorial wording.git log -Sbefore dating an ADR.Out of scope
Blocked by