Repository navigation
docs: consolidate onto one master doc, verify the auth column, archive the build log - #97
Merged
Merged
Conversation
…e the build log `work-consolidation.md` becomes THE single source of truth. Epic #66 restated its §1/§2/§3 as a second backlog and both drifted: between 2026-09-07 and 2026-09-13 seven PRs (#67-#73) shipped without either moving, leaving the doc ~330 tests and two API re-measures behind the code and six shipped issues listed as open. The duplication is now cut in one direction. The doc owns the plan (ordering, probe evidence, API shapes, the re-measure log, release path) and a new §1f work index mapping every item to its issue. Issues own execution. #66 is a pointer. Anti-drift: a PR that ships a G-item, closes a parity issue, or moves the test baseline must update the doc IN THAT PR. Added to the doc-quality checklist, the PR template, CLAUDE.md and the doc itself. A doc updated only in dedicated docs passes will always drift; one updated by the PR that invalidates it cannot. Live re-measure (232 paths / 303 operations, up from 226/294) overturned two standing conclusions, both confirmed by read-only probe rather than by reading the spec: - Session-only operations fell 45 -> 32, and 28 of the 32 are admin / architecture / Stripe routes a native client should never call. Four actually constrain us: auth/accounts, auth/switch, auth/remove-account (#60) and send-verification-email. - The Dashboard is no longer backend-blocked. Both layout routes, engagement and all five widget routes now answer 200 under Bearer, so #61 is a product decision only. The invite/share claim routes moved to sync-token too, which makes PR #70's "genuinely out of reach" note on document-invite accept stale. Controls probed the other way (auth/accounts and send-verification-email both 401) confirm the four that remain really are session-only -- which also settles the contradiction inside the unmerged fix/account-status-gating branch in EmailVerification.swift's favour. docs/api-coverage.md: the Auth column is now derived from the live spec's x-auth-type rather than hand-written -- 168 of 191 rows rewritten, retiring the ~50 reading "per OpenAPI, unverified". Bearer vs Session-only makes "not built" and "not buildable" distinguishable per row. Eleven rows carried a method or path the live spec does not serve; six were the §1c verb defects, where the matrix still documented the broken verbs the client stopped sending in PR #24 -- it was behind the code, not ahead of it. Two speculative rows were disproved and scored. Implemented/Tested were deliberately NOT re-scored: footnote 14's rule needs a per-row semantic check (builder AND DTO AND service call path), and a mechanical flip would manufacture exactly the unverified-but-confident marks that footnote exists to prevent. Queued as its own pass, with the evidence in footnote 16. Also fixed: the Decision 0003 gate command was unanchored and matched prose comments, reporting four false positives while the rule genuinely passed. Harvested from docs/parity-refresh-2026-09 before retiring it: the AI provisioning correction (AI is included in the subscription -- no user API key; an empty providers[] is a site outage, not something the user can fix) and the article_series ~4-minute 502 timing, which implicates a server-side retry loop. G15-G20 are marked shipped; they had been left unmarked since PRs #25/#30/#31. New gap found by the re-measure and filed as #81: saved list views -- five live, free-tier, Bearer-reachable operations (shared + personal views, forking, defaults) that no issue or prior sweep mentions. config is an unspecified string, so it must be probed before modelling. docs/progress.md is archived to docs/archive/ with a stub left at the original path so the read-only decision records keep resolving. The doc-quality "shipped-only rule" pointed at that file as its authority and now points at the master doc. Dead PLAN.md / ORCHESTRATION.md links (both deleted in f040954) are retired from README and the checklist. Gate: BUILD SUCCEEDED; Kit 478 / Domain 946 / Persistence 140 / App 954, all green. One App-target run reported 1 failure that did not reproduce in three re-runs on a documentation-only change; filed as #82 with the evidence, since PR #73 saw the same pattern. Refs #65, #66, #61, #39, #81, #82 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016gSWb3scYobtxLJioV1qF9
This was referenced Sep 15, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Addresses most of #65.⚠️ This PR pushes a pre-existing local commit that I did not author —
bd3324d, sitting ondocs/phase2-consolidationin a worktree, committed and never pushed.That is the same situation PR #83 was in, and #83's description called it out as urgent for exactly this reason: work that exists only in a local worktree is one
git worktree removeaway from being lost, and meanwhile the master planning doc contradicts the code ondev.I have pushed it and opened this PR rather than deleting the worktree around it. It needs review by whoever wrote it — I have verified only that it is clean, docs-only, and does not break the build.
What the commit contains
Against #65's checklist, this covers items 1, 2 and 3: folding the parity re-measure into the master doc, recording the sweep findings, and reconciling
docs/api-coverage.md(429 changed lines, including the auth-type column the issue asked for).Item 4 — worktree pruning — done separately
Audited on 2026-09-15. Of the eleven worktrees present, exactly one was for a branch already merged into
dev:The ten the issue listed as stale were already gone. The rest are live branches with open PRs from this pass.
Item 5 — local
devbehindorigin/devWas true again (local at
01bc1a9, remote at3461bafwith PR #83 merged). Fast-forwarded before any branch was cut, so every PR in this pass is based on currentdev.What #65 still needs after this
The doc reconcile in
bd3324dpredates this session, so it does not yet carry:That is a follow-up pass on
work-consolidation.mdanddocs/api-coverage.mdonce these PRs land — and it is better done after them than speculatively now, which is the same reasoning #65 itself gives for merging the re-measure before updating it again.Verification
xcodebuild build→** BUILD SUCCEEDED **.swift,.pbxprojor.plistchanges — the diff is documentation, one PR template, and two checklist files.🤖 Generated with Claude Code
https://claude.ai/code/session_016gSWb3scYobtxLJioV1qF9