Summary
CLAUDE.md "Status Contract" lists 11 trust fields and asserts that README.md and DEVELOPER_GUIDE.md stay in sync. In practice README.md mentions only a subset, DEVELOPER_GUIDE.md mentions a slightly different subset, and nothing enforces the sync claim. Drift will continue silently until someone notices.
Evidence
CLAUDE.md "Status Contract" section — enumerates: fold_ready, fold_ready_reason, graph_table_available, issues_table_available, sql_graph_contract_ready, sql_graph_contract_degraded_reason, hotspot_family_ready, hotspot_family_degraded_reason, csharp_symbol_name_ready, csharp_metadata_target_ready, plus degraded_reason/recommended_action/alternative_action in the fold-only path.
README.md — mention of status --json and which fields are documented.
DEVELOPER_GUIDE.md — same.
Impact
- New contributors reading any single doc get an incomplete picture of the status JSON contract.
- The "keep these three docs in sync" claim is informal — there is no test or CI lint that enforces it.
Proposed direction
Pick one:
- Lint-style enforcement: Add a small test that loads the field list from one canonical source (e.g. a JSON schema or a static C# struct) and asserts that all three docs mention each field name. The test fails when a field is added without doc updates.
- Single source: Reduce the duplicated lists to one canonical doc, and have the other two link to it.
- At minimum: Bring
README.md and DEVELOPER_GUIDE.md back in sync with CLAUDE.md and add a comment to each saying "if you change this list, update the other two".
Repro env
- Branch:
main @ 2ee912d (release v1.21.0)
Summary
CLAUDE.md"Status Contract" lists 11 trust fields and asserts thatREADME.mdandDEVELOPER_GUIDE.mdstay in sync. In practiceREADME.mdmentions only a subset,DEVELOPER_GUIDE.mdmentions a slightly different subset, and nothing enforces the sync claim. Drift will continue silently until someone notices.Evidence
CLAUDE.md"Status Contract" section — enumerates:fold_ready,fold_ready_reason,graph_table_available,issues_table_available,sql_graph_contract_ready,sql_graph_contract_degraded_reason,hotspot_family_ready,hotspot_family_degraded_reason,csharp_symbol_name_ready,csharp_metadata_target_ready, plusdegraded_reason/recommended_action/alternative_actionin the fold-only path.README.md— mention ofstatus --jsonand which fields are documented.DEVELOPER_GUIDE.md— same.Impact
Proposed direction
Pick one:
README.mdandDEVELOPER_GUIDE.mdback in sync withCLAUDE.mdand add a comment to each saying "if you change this list, update the other two".Repro env
main@ 2ee912d (release v1.21.0)