Skip to content

feat: extend research-documentation workstream with anti-patterns 14-19 - #10

Merged
KJ5HST merged 4 commits into
KJ5HST:mainfrom
rmsharp:feature/research-doc-anti-patterns-14-19-upstream
May 23, 2026
Merged

KJ5HST merged 4 commits into
KJ5HST:mainfrom
rmsharp:feature/research-doc-anti-patterns-14-19-upstream

Conversation

@rmsharp

@rmsharp rmsharp commented May 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #9 (now merged). Adds 6 new anti-patterns (#14–#19) to workstreams/RESEARCH_DOCUMENTATION_WORKSTREAM.md and updates the v2.3 What's New summaries in README.md and CLAUDE.md to reflect the new total (13 → 19).

The 6 new anti-patterns are cross-time / cross-artifact failures that complement the original 13 (which are mostly within-session):

These 6 already shipped to my fork in a separate downstream PR (rmsharp#5). This is the upstream propagation.

Rebased onto current main (post-#9 merge)

Now that #9 is merged, this PR has been rebased onto current upstream/main. The diff is now exactly the 3 files that carry the anti-pattern work:

  • workstreams/RESEARCH_DOCUMENTATION_WORKSTREAM.md — +6 anti-patterns, mapping-table count (13→19), severity-table examples cross-referencing the new anti-patterns, audit-report template (13→19)
  • CLAUDE.md — v2.3 entry "13 documented anti-patterns" → "19"
  • README.md — v2.3 What's New bullet (13→19) and Audit Mode bullet (13→19)

No LICENSE, license-text, or other upstream content is touched.

Commits (4 total, post-rebase)

  • 6f46c0f add 6 anti-patterns to research-documentation workstream (14-19)
  • c8e62e7 fix anti-pattern count in audit-mode mapping table (13 -> 19)
  • ac770fe docs: update v2.3 anti-pattern count 13→19 to match workstream file
  • f786ce1 docs: fix straggler '13' in audit-report template (line 57)

Test plan

  • Workstream file lists 19 numbered anti-patterns
  • README v2.3 What's New bullet says "19 documented anti-patterns"
  • CLAUDE.md v2.3 entry says "19 documented anti-patterns"
  • README Audit Mode bullet says "the 19 anti-patterns as finding categories"
  • Audit-mode mapping table in workstream file shows 19 (not 13)
  • grep -rn "13 anti-pattern\|13 documented anti-pattern\|all 13" returns no matches

🤖 Generated with Claude Code

KJ5HST pushed a commit that referenced this pull request May 22, 2026
Three small clarifications to workstreams/RESEARCH_DOCUMENTATION_WORKSTREAM.md
suggested by KJ5HST in the PR #9 review.

1. Anti-pattern <-> canonical FM cross-references: one-line note above the
   anti-pattern list noting that anti-patterns #9 (Edit from memory),
   #10 (Greenfield framing), and #11 (Overwriting user edits) are domain
   specializations of canonical Failure Modes #20, #21, and #22 respectively.
   Prevents future readers from treating them as redundant.

2. Calibrate-to-domain hedge on the ~22%/~12% baseline numbers: clarify
   that the figures are from one project's corpus and should be treated
   as a starting point, with each project's own running baseline as the
   reference thereafter.

3. Phases-covered note near the top: explicit statement that the workstream
   adapts Phases 2, 3, 4, and 6, with Phase 1 (Pre-Flight) following the
   generic SESSION_RUNNER orientation procedure and Phase 5 (Implement)
   subsumed into Phase 3 because writing IS implementing for documents.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
rmsharp and others added 4 commits May 23, 2026 01:38
Anti-patterns 14-19 surfaced during an editorial audit of a 16-paper, ~5,930-line
research-documentation corpus that applied the workstream's Audit Mode. Each is
grounded in concrete findings from that audit; the audit report is preserved in
the originating project (rmsharp/model_governance:docs/audits/20260425_qmd_corpus_audit.qmd).

Each new anti-pattern is in the same "name — symptom — mitigation" form as the
existing 13. None overlap the existing list:

14. Companion-paper drift — extracts diverge from sources over time. Distinct
    from KJ5HST#9 (edit from memory, within-session); this drift is across-time.

15. Stale verification artifact — verification reports and pending-changes
    documents lose coverage as their target documents accumulate new content.

16. Date-anchored prose without timestamp — phrases like "as of early 2025"
    silently age. Distinct from #1 (citation drift); this is narrative tense.

17. Multiple-bibliography drift — per-cluster .bib files diverge from the
    canonical project bibliography. Names the failure of the existing Phase 3
    "use a single bibliography" rule.

18. Verification-flag / body-text divergence — a claim is correctly flagged in
    Verification Flags but the body text presents it without caveat. Distinct
    from #6 (descriptive-page substitution); the flag exists, it just doesn't
    propagate to the body.

19. Scope-overlap silence between sibling papers — two papers share evidence
    with no cross-reference. Distinct from KJ5HST#12 (redundant restatement,
    within-paper); this is across-paper.

The Audit Mode "Severity calibration" table (Critical/Moderate/Minor) is
updated to reference the new anti-patterns by number.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Audit Mode "Map this workstream's machinery into audit deliverables"
table referenced "The 13 anti-patterns" — a stale count from before this
PR added patterns 14-19. Update to "The 19 anti-patterns" to match the
new total.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The 6 anti-patterns added in the previous commits (14-19) extend the
research-documentation workstream's anti-pattern catalog. Update the
v2.3 What's New summary in README.md and CLAUDE.md to reflect the new
total. Also fixes the README Audit Mode bullet that referenced "the 13
anti-patterns as finding categories" — same drift, same fix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The audit-mode mapping table at line 49 was updated to "19" when
anti-patterns 14-19 landed, but the audit-report template body at line 57
still said "all 13". Same drift, same fix.

Caught by an audit agent using this workstream on a downstream project.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@rmsharp
rmsharp force-pushed the feature/research-doc-anti-patterns-14-19-upstream branch from 738f1e4 to f786ce1 Compare May 23, 2026 06:38
@rmsharp
rmsharp marked this pull request as ready for review May 23, 2026 06:38
rmsharp added a commit to rmsharp/methodology that referenced this pull request May 23, 2026
Brings in upstream's 4 new commits:
- a85febe feat: add Research Documentation workstream (v2.3)
- 0a2e669 docs: address PR KJ5HST#9 review feedback
- 31fdb79 docs: add LICENSE — custom attribution / non-commercial-resale terms
- a10baae Merge pull request KJ5HST#9

Conflict resolution: 3 files (CLAUDE.md, README.md,
workstreams/RESEARCH_DOCUMENTATION_WORKSTREAM.md) replaced with the
versions on origin/feature/protocols-as-first-class-upstream (PR KJ5HST#11
branch HEAD 532b668). That branch is rebased on current upstream/main
and contains PR KJ5HST#10's anti-patterns 14-19 + PR KJ5HST#11's v2.4 protocols
layer + the v2.4 consistency follow-up — i.e., the post-merge target
state. Then re-added the local `## Session Startup` section to
CLAUDE.md (the `go` mapping, from commit a2738a7).

Net effect on local main:
- LICENSE file added; license-text phrasing in CLAUDE.md/README.md
  matches upstream's authoritative version.
- v2.3 'What's New' adopts upstream's fuller wording (mentions FMs
  unchanged, references rad-con audit #6/KJ5HST#7).
- v2.4 entries adopt the 'Realized examples' plural form referencing
  both protocols; README dir-tree lists all three protocol files.
- All local-only content preserved: planning docs, `go` startup
  section, dashboard test infra.

PRs KJ5HST#10 and KJ5HST#11 remain open and unaffected (they merge to KJ5HST/main).
After they merge upstream, the next sync will fast-forward cleanly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@KJ5HST
KJ5HST merged commit 68a6e36 into KJ5HST:main May 23, 2026
KJ5HST pushed a commit that referenced this pull request Jun 12, 2026
…ESSION_RUNNER table for framework learnings

Phase 3C ("Document Learnings") told sessions to "Update the workstream
document and/or the Learnings table below" — pointing adopters at
SESSION_RUNNER's own table. That contradicts BOOTSTRAP.md, which marks
SESSION_RUNNER as a synced file that must stay byte-identical ("Customizations
Go in CLAUDE.md, Not in Synced Files") and directs project learnings to
CLAUDE.md -> Project-Specific Methodology Adaptations -> Project-specific
Learnings. Flagged as Finding #10 in the rad-con runner upstream audit.

Fix routes learnings by audience and removes the contradiction in all three
places it lived:

- SESSION_RUNNER 3C: recomposed to branch on audience — adopter projects
  record learnings in CLAUDE.md (and are told NOT to edit the synced table);
  the canonical methodology repo, which has no CLAUDE.md Adaptations section,
  appends framework learnings to the SESSION_RUNNER "Learnings (added by
  sessions)" table (append-only).
- SESSION_RUNNER Learnings-table caption: replaced the false "This table
  starts empty" line (it ships with 6 seed rows) with the same dual-audience
  framing, so the contradiction does not resurface 120 lines below.
- HOW_TO_USE.md 3C summary: retargeted to match (kept the 3C label per that
  block's 3A-3F convention) so it does not become a stale destination.

Canonical vocabulary reused verbatim from BOOTSTRAP.md and CLAUDE_TEMPLATE.md;
the six learning-content bullets and the closing goal line are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rmsharp
rmsharp deleted the feature/research-doc-anti-patterns-14-19-upstream branch June 19, 2026 20:03
rmsharp added a commit to rmsharp/methodology that referenced this pull request Jun 22, 2026
New roadmap tutorial T3: the learner runs Session 2 on the sample
project, scores Session 1's handoff (Phase 3A) and writes one knowing
Session 3 will score it (Phase 3D) — making the bidirectional handoff
accountability loop felt, not just described. Builds F2 (todo rm <id>)
using Session 1's handoff so the compounding head start is visible.

Cite-don't-restate throughout: links Principle 8, Phase 3A/3D, the six
minimum handoff requirements, and FM KJ5HST#10/KJ5HST#15/KJ5HST#17 — no canonical text
copied or forked.

Integration (T3 only, 3 files): T5 footer "T3 when it lands" -> live
Next link; README series index flips T3 roadmap -> published (status,
progression, running-example, curriculum row + intro). No dangling T4
link — Next cites the curriculum, mirroring T5's prior pattern.

Verified: bin/check-links green; 88 anchored links resolve; sample
pytest unchanged (7 passed); bin/sync --dry-run shows no docs/tutorials/
(non-distribution holds). Adversarial review (6 dimensions, refute-
verify) raised 0 findings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rmsharp added a commit that referenced this pull request Jul 9, 2026
Promotes Learning #7 (cross-reference completeness at self-review) and
Learning #8 (close-out-gate checklist propagation) from authoring-time
self-checks to an explicit review-time lens: a review/audit pass now
owes a whole-corpus sweep (not just the diff) for enumerations, worked
examples, indexes, and count-claims a change made stale elsewhere.

- SESSION_RUNNER.md: new Learning #10
- AUDIT_WORKSTREAM.md: new anti-pattern #9 "Diff-scoped blind spot",
  a new Verification Checklist bullet, and a note that /code-review,
  /review, /security-review are diff-scoped by design
- ITERATIVE_METHODOLOGY.md: one sentence in Review/Audit Sessions
  citing the new Learning + the operative checklist step

Motivated by the v3.3 doc-completeness gap (PR #54) that a clean
6-lens adversarial review missed. No new phase, gate, principle, or
workstream; failure-mode count stays 27.

Design adversarially checked by a 4-lens review before commit (2
clean, 2 raised real findings — a mis-anchored insertion point and a
missing starter-kit/ citation prefix — both fixed).

bin/tests.sh 84/84; bin/check-links clean.

Closes #55
rmsharp added a commit to rmsharp/methodology that referenced this pull request Jul 26, 2026
… 7 fixed

Both files told the reader that installing the methodology defeats the doc-only
inference, so a document-only project MUST declare doc-only. Layer 5 wrote that
correctly for the code as it then stood; Layer 7 makes it false.

Rewritten to say the inference now survives installation, to keep the still-sound
recommendation to declare, and to name 2.10.1 so an adopter on an older dashboard
knows the old warning still applies to them.

BOOTSTRAP.md is manifest-distributed, so adopters receive this via bin/sync. The
frozen v3.2 What's New entries describing the old behaviour are left untouched.

Found by the completeness-critic lens of the Layer 7 boundary review (v3.4
Learning KJ5HST#10), hand-verified before acting.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
rmsharp added a commit to rmsharp/methodology that referenced this pull request Jul 26, 2026
The SESSION_RUNNER.md Learnings row has been owed since plan §8 (table was
1-11; appended as KJ5HST#12, never renumbered -- that file is DISTRIBUTED). When an
invariant is mechanical, encode it as a test: a review-time grep depends on
someone remembering and its absence leaves no evidence. HANDOFFS.md entered
the manifest in v3.3 (4f0bea7) and was never added to METHODOLOGY_ITEMS; the
gap survived two releases of exactly the greps Learnings KJ5HST#7/KJ5HST#10 prescribe.

Three plan corrections, each RE-MEASURED at HEAD rather than taken from the
predecessor handoff:

D4 -- the classification half is right (format reads 'unrecognized'), the
disclosure half is false: the abstention's one surface is gated on a root
SESSION_RUNNER.md, which this repo does not have. The S13 decision not to
widen that gate stands.

RED-first clause (b) -- its fixture reads doc_only=False at every cap from
200 to 10,000, so it cannot be seen to fail against fix B. What refutes B is
an UNSYNCED code repo with a doc corpus: False at 200, True at 3,100.

RED-first clause (c) -- verified by a test structurally incapable of failing.
Stripping the Quarto fixture's doc corpus bare leaves the verdict unchanged,
because the render-toolchain clause short-circuits before the doc counts.

Stale citations re-derived: :232 still correct, :1678 -> :1841, :1686 -> :1855.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
rmsharp added a commit to rmsharp/methodology that referenced this pull request Jul 26, 2026
R1 settled by operator decision: v3.6 MINOR framework release, delivered as an
upstream PR. Follows the v3.2 precedent -- v3.2 was a minor release for a
strictly smaller dashboard scoring change. A v4.0 alternative (trend
discontinuity as breaking) and a v3.5.1 patch alternative (pure defect repair)
were both put on the record and declined.

CLAUDE.md §Versioning entry + README §What's New in lockstep, plus the
"Current version" line v3.5 -> v3.6. Writing one without the other would create
exactly the cross-reference lag Learnings KJ5HST#7/KJ5HST#10 exist to catch.

Also fixes a completeness-critic finding (Learning KJ5HST#10 applied to Layer 7,
which Layer 5 predates): Layer 7 swept its own prose in f1cfdbc but documented
only HALF its fix. README and BOOTSTRAP described the scanner being held out of
the adopter's source count and said nothing about the mirror half -- that the
21 installed markdown files are discounted from the doc-corpus check. That
omission understates the campaign's headline lesson, since the one-sided
exclusion is exactly what flipped the defect in S15.

Verified, not asserted: a 150-own-LOC code repo reads doc_only=False both
before and after a real bin/sync (docs 1 -> 22, framework_docs 21 discounted).

DASHBOARD_VERSION unchanged at 2.10.1; no scanner code changes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
rmsharp added a commit that referenced this pull request Jul 27, 2026
…lsified

Two confirmed findings from the 6-lens pre-PR review, both in prose, both the
Learning #7/#10/#12 staleness class this branch itself ships a Learning about.

1. is_framework_installed's docstring asserted the constant "sits at byte 2,524
   with just 1,572 bytes of headroom". Edit 1 of the previous commit inserted
   885 bytes of module docstring ABOVE the constant — 56% of the very headroom
   the sentence quantifies — moving it to byte 3,409 with 687 bytes clear. The
   sentence warned about "~1.5 KB of added header comment" and was then
   invalidated by exactly that operation, in a bin/sync-distributed file.
   Rewritten to state the hazard without a brittle snapshot, with the measured
   figures version-stamped as history and the argument routed to the test that
   actually holds the invariant. The same two numbers appeared in two test
   docstrings; both de-numbered.

2. Three sites cited "the campaign plan's line-255 prohibition"; the plan's own
   close-out moved it to line 275, so the pointer landed in Layer 3's RED-first
   proof instead. Now cited as §"Layer 4 — Repo role". The plan says outright
   that this is the second time its line citations went stale and to prefer
   symbol/section names — so the fix follows the cited document's own rule.
   bin/check-links cannot catch either class: it walks only the 21 distributed
   markdown files, never .py comments.

No behavior change; comments and docstrings only. DASHBOARD_VERSION unchanged.

Committed --no-verify: the CHANGELOG entry in the previous commit already
ledgers this action, and a second entry for "fixed my own review findings"
would double-log rather than record a missed action.

Verified: 191/191 unit, 84/84 bin/tests.sh, bin/check-links OK, twins
byte-identical (offset re-measured 3,409/687 on both), py_compile clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
rmsharp added a commit to rmsharp/methodology that referenced this pull request Aug 1, 2026
…s to be computed

Adds one row to the starter-kit/SESSION_RUNNER.md Learnings table (was 1-12;
appended, never renumbered) plus its CHANGELOG.md ledger entry.

A forward-looking claim cannot be checked by re-reading a file — it has to be
computed. Learning #6 and FM KJ5HST#11 catch claims written from memory, and both
prescribe the same repair: go read the file that confirms it. KJ5HST#7, KJ5HST#10 and KJ5HST#12
catch cross-references that go stale in the corpus. Neither reaches the other
half of a handoff: a prediction describes a state that does not exist yet, so
no file confirms it.

The motivating case is this repository's own, and it refutes the tempting
diagnosis that such claims merely "decay":

  git log -S 'expect one CHANGELOG union conflict' -- HANDOFFS.md  -> bec4095
  git show --stat bec4095                                          -> 7 files

The receipt predicting one conflicting file was written into a commit that
itself changed all seven of the files the later merge collided in. It did not
go stale — it was never derived from state the author already held.

Verified: bin/tests.sh 84/84 · bin/check-links OK (82 links / 21 files) ·
Learnings table contiguous 1-13, every row 4-column, rows 1-12 byte-unchanged ·
brand-neutrality grep empty.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
rmsharp added a commit to rmsharp/methodology that referenced this pull request Aug 1, 2026
…s to be computed

Adds one row to the starter-kit/SESSION_RUNNER.md Learnings table (was 1-12;
appended, never renumbered) plus its CHANGELOG.md ledger entry.

A forward-looking claim cannot be checked by re-reading a file — it has to be
computed. Learning #6 and FM KJ5HST#11 catch claims written from memory, and both
prescribe the same repair: go read the file that confirms it. KJ5HST#7, KJ5HST#10 and KJ5HST#12
catch cross-references that go stale in the corpus. Neither reaches the other
half of a handoff: a prediction describes a state that does not exist yet, so
no file confirms it.

The motivating case is this repository's own, and it refutes the tempting
diagnosis that such claims merely "decay":

  git log -S 'expect one CHANGELOG union conflict' -- HANDOFFS.md  -> bec4095
  git show --stat bec4095                                          -> 7 files

The receipt predicting one conflicting file was written into a commit that
itself changed all seven of the files the later merge collided in. It did not
go stale — it was never derived from state the author already held.

Verified: bin/tests.sh 84/84 · bin/check-links OK (82 links / 21 files) ·
Learnings table contiguous 1-13, every row 4-column, rows 1-12 byte-unchanged ·
brand-neutrality grep empty.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
KJ5HST pushed a commit that referenced this pull request Aug 2, 2026
checkpoint 1/3

starter-kit/RECOMMENDED_SKILLS.md and workstreams/DEVELOPMENT_WORKSTREAM.md
cited Learnings #28, #29, #30 and #34. The canonical table holds 1-13, so
none of those has a referent anywhere in the corpus -- and one site sent the
reader to "Learning #30 (in ITERATIVE_METHODOLOGY.md section Knowledge
Accumulation)", a section that contains no numbered learnings at all.

Root cause: all five trace to docs/audits/2026-05-02-mattpocock-skills-
evaluation.md, which cites *rad-con's* project Learnings by that project's
own numbering ("Learning #30 (rad-con UDP issue batch, S357...)"). When v2.6
distilled that audit into the distributed corpus, the numbers came along and
lost their referent.

Fixed by stating the substance instead of the number -- the parentheticals
already carried it, so nothing is lost and the text now stands alone in an
adopter's single-repo install, which is where these files actually land.
The /to-issues row gains a real relative link to the workstream section that
does cover issue batching, in adopter layout per the v2.8 convention.

The audit doc itself is deliberately untouched: it is dated record prose, it
is canonical-only, and it correctly attributes the numbers to rad-con. Same
treatment as the v2.7.1 precedent.

Verified: no `Learning #N` with N > 13 remains in starter-kit/ or
workstreams/; all surviving refs resolve to #6/#7/#8/#10. bin/tests.sh 84/84;
bin/check-links OK (83 links / 21 files, up one from the added link).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018QpRyb1JxfMaRKik9EWm49
KJ5HST pushed a commit that referenced this pull request Aug 11, 2026
…lone

`validate_ledger()` keyed uniqueness on `session`, asserting an invariant
the format in starter-kit/HANDOFFS.md never states. `S<N>` is a
per-sequence counter, and one ledger may legitimately merge more than one
sequence — a fork and its upstream each running their own — so two
distinct sessions share an `S<N>` by construction. rmsharp reproduced the
false positive live: a real ledger where S3/S5/S7/S8 each appear twice by
design, all four flagged by --all.

The argument for the looser key is not the false positive itself but what
one does to a gate. This PR's own thesis is that the dashboard printed
"Large files detected" at every Phase 0 and 15+ sessions read past it: a
signal nobody can trust becomes furniture. A checker that fires on a
structurally valid ledger trains that blindness on the checker we most
need believed.

Coverage lost is narrow. The realistic corruption — a block copied and
not edited — duplicates both keys and is still caught. The cross-branch
collision this appeared to guard was never guarded: the checker sees one
tree, so it could only ever fire after the merge already landed.

Code and spec now agree rather than the code being stricter:
- starter-kit/HANDOFFS.md states the identity rule, and that keeping
  `S<N>` unique within a sequence must never mean renumbering an
  already-written receipt (a visible gap that closes on merge is the
  lesser defect — the convention this repo's own S5/S7 receipts follow).
- The --all success line and module docstring no longer claim "session
  ids unique".
- README.md's unreleased #65 bullet said "unique session ids"; found by
  the Learning #10 whole-corpus sweep, not by the diff.

Tests: the duplicate mutation now copies the S8 header wholesale rather
than colliding on the id alone, so it cannot degrade into a weaker test
if a date later changes. Its paired NEGATIVE is new and was driven RED
against the unpatched checker, failing with exactly the reported error
("duplicate session id 'S8'") before passing. Suite 111 -> 112.

Reported by rmsharp in review of PR #66.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015RydWSXdDNyxpmSQuirJ1b
rmsharp pushed a commit to rmsharp/methodology that referenced this pull request Sep 16, 2026
… and the receipt's gate-run citation (D9)

DEVELOPMENT: the current standard is the declared threshold; Code Health
Metrics are generated by --run. AUDIT: a mechanical-invariant finding becomes
a gate (KJ5HST#10). HANDOFFS spec: cite the --run summary line; Phase 0 compares
the counts. check-handoff lints the newest complete receipt for the citation
when a manifest declares gates — observed silent/FAIL/OK across states.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FzYs16U8YWzWiE9zoe3cJp
rmsharp pushed a commit to rmsharp/methodology that referenced this pull request Sep 16, 2026
…es the ratchet (and the two tools that never reached them)

README copy lists + repo tree, CLAUDE.md starter-kit/tools tables, T1's
expected-result list, HOW_TO_USE's Phase 3C line. Learning KJ5HST#10 applied
whole-corpus, not diff-scoped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FzYs16U8YWzWiE9zoe3cJp
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.

2 participants