Skip to content

docs: refresh stale phase/MVP prose and add doc-surface drift guards#93

Merged
ericckzhou merged 1 commit into
devfrom
chore/doc-repo-hygiene
Jun 8, 2026
Merged

docs: refresh stale phase/MVP prose and add doc-surface drift guards#93
ericckzhou merged 1 commit into
devfrom
chore/doc-repo-hygiene

Conversation

@ericckzhou

Copy link
Copy Markdown
Owner

What

Truth-in-docs hygiene pass plus cheap drift guards that lock the fixes in. Documentation- and test-only — no runtime code paths change.

Fixes (stale → shipped reality)

  • EVIDENCE.md lifecycle diagram: the leaf row showed a │ archive │ box, which is not a command. Replaced with replay; the three leaf boxes are now replay / inspect / diff, matching the three operations in §9. Prose updated to name the full consumer surface.
  • falsifyai/cli/render.py: dropped "MVP scope" + "Rich/colored output and --json land in Week 3" (never shipped). Now describes the actual surface it renders (run/replay, diff, verify, export).
  • falsifyai/replay/protocol.py: dropped "MVP surface only — case_history/diff_sessions deferred to Week 2". Describes the real store contract (save/load/query/close) and that history/timeline/matrix/diff are consumer-side layers, not store methods.
  • 9 test files: rewrote "RED phase / does not exist yet" docstrings (and two inline # RED: comments) to present tense.

Guards (all behind the decision surface)

  • test_evidence_doc_freshness.py: new check parses the §3 lifecycle diagram and asserts every leaf box is a real CLI command — locks out the archive drift permanently. The prose word "archive" (retention discussion) is still allowed; only diagram boxes are checked.
  • test_readme_command_surface.py (new): every subcommand registered in build_parser() must be referenced in README.md.
  • test_release_gate_coverage_sync.py (new): scripts/release_gate.py COVERAGE_FLOOR must equal CI's --cov-fail-under — the "keep in sync" comment was the only thing holding them together.

Nit

  • test_cli_store_lifecycle.py docstring clarified: minimize opens no ReplayStore (in-memory search, persists nothing), so it has no store lifecycle to pin — distinct from run, which does.

Out of scope (intentionally deferred)

  • validate_groq.ps1: self-declares "DO NOT COMMIT", requires .env.local with real keys — correctly stays gitignored, no action.
  • .claude/settings.json: left unstaged per established workflow convention.
  • P3 items (bundle import, signing, new perturbation families/resolver changes): external-pressure-gated, not built.

Verification

  • uv run pytest: 788 passed (including 23 meta-tests; the new diagram guard correctly fails on a non-command leaf node, verified during development).
  • uv run ruff check .: clean. ruff format --check: clean.

Fix truth-in-docs drift and lock it out:

- EVIDENCE.md lifecycle diagram: replace non-command 'archive' leaf node with 'replay'; the three leaf boxes are now replay/inspect/diff, matching the three operations in section 9.

- render.py / protocol.py: drop MVP/Week-2/Week-3 framing; describe the shipped surface (render covers run/replay/diff/verify/export; store surface is save/load/query/close with history/timeline/matrix/diff as consumer-side layers).

- 9 test files: rewrite RED-phase 'does not exist yet' docstrings to present tense.

Guards (all behind the decision surface):

- test_evidence_doc_freshness.py: new check asserts every lifecycle-diagram leaf box is a real CLI command (locks out 'archive' drift; prose 'archive' still allowed).

- test_readme_command_surface.py: every build_parser subcommand is referenced in README.

- test_release_gate_coverage_sync.py: release_gate COVERAGE_FLOOR equals CI --cov-fail-under.

- test_cli_store_lifecycle.py: clarify minimize opens no ReplayStore.
@ericckzhou ericckzhou merged commit 939d549 into dev Jun 8, 2026
1 check passed
@ericckzhou ericckzhou deleted the chore/doc-repo-hygiene branch June 8, 2026 02:44
ericckzhou added a commit that referenced this pull request Jun 8, 2026
…93) (#94)

Fix truth-in-docs drift and lock it out:

- EVIDENCE.md lifecycle diagram: replace non-command 'archive' leaf node with 'replay'; the three leaf boxes are now replay/inspect/diff, matching the three operations in section 9.

- render.py / protocol.py: drop MVP/Week-2/Week-3 framing; describe the shipped surface (render covers run/replay/diff/verify/export; store surface is save/load/query/close with history/timeline/matrix/diff as consumer-side layers).

- 9 test files: rewrite RED-phase 'does not exist yet' docstrings to present tense.

Guards (all behind the decision surface):

- test_evidence_doc_freshness.py: new check asserts every lifecycle-diagram leaf box is a real CLI command (locks out 'archive' drift; prose 'archive' still allowed).

- test_readme_command_surface.py: every build_parser subcommand is referenced in README.

- test_release_gate_coverage_sync.py: release_gate COVERAGE_FLOOR equals CI --cov-fail-under.

- test_cli_store_lifecycle.py: clarify minimize opens no ReplayStore.
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