docs: repo hygiene + docs drift cleanup (#771) - #864
Conversation
Public sdist shipped ~920KB of tracked scratch output and several docs that described an abandoned v1 product. All 7 issue claims verified true before fixing. - Untrack test_output.log (9,569 lines) + coverage.json (393KB); gitignore both (plus *_output.log) so they stay out of the sdist. - OpenAPI license_info: MIT -> AGPL-3.0-or-later, matching pyproject.toml. The package is AGPL; the API docs claimed MIT. - events_v2: drop false TODO(#336) claiming auth is missing. Auth has been enforced since #336 (server.py mounts the router with dependencies=_AUTH). - CORS config: module-level print() -> logger.info(), one line, same content. - README: cf tui -> cf dashboard (3 spots). No `tui` command exists. - PRD.md, AGENTS.md -> pointer stubs. PRD.md described the abandoned v1 multi-agent product and linked a SPRINTS.md that no longer exists; AGENTS.md duplicated CLAUDE.md, drifted two phases, and referenced a deleted server/ dir. Duplication was the bug, so CLAUDE.md is now the single copy rather than a second one to re-sync. - TESTING.md: fix same-class broken SPRINTS.md link (now legacydocs/). Verified: 553 tests/ui pass; ruff clean; OpenAPI reports AGPL-3.0-or-later; CORS logs via logger at INFO; `cf dashboard --help` exits 0 while `cf tui` errors "No such command"; git check-ignore confirms both artifacts ignored. Closes #771
Post-PR review (codex) caught that the stub claimed the v1 requirements were 'preserved in legacydocs/', but no legacydocs/PRD.md exists — the content is only in git history. Point at git history instead of manufacturing an archive; re-adding 543 lines of abandoned v1 docs would undo this PR's cleanup.
ReviewVerified this against the merged tree (matches what's described — no substantive prior reviews to reconcile with, just a placeholder bot comment). All 8 changes check out: Correctness — all confirmed:
Minor, non-blocking observations:
No bugs, security issues, or test-coverage gaps found. This is a clean, well-scoped hygiene PR — every claim in the description is verifiable against the tree, and the diff doesn't reach beyond what's described. Nice work keeping the two doc-stub deletions honest (pointing at |
Third-party review (codex) — post-PR1 real defect found and fixed (d6e44c9):
Cleared by the reviewer:
The pre-PR review pass (also codex) returned no findings. |
|
Claude finished @frankbria's task in 3m 6s —— View job ✅ GLM precision review: no defects foundRe-verified the two code hunks + the one non-trivial risk (does the
All remaining changes are doc/config deletions (
|
Review (re-check)No new commits since my last pass and the codex post-PR review — re-verified against the current tree and everything still holds:
Nothing new to add beyond my previous review and the codex third-party review already on this thread. No bugs, security issues, or scope creep — still a clean, well-bounded hygiene PR. |

Closes #771.
All 7 claims in the issue were verified true against the tree before any change.
What changed
test_output.log+coverage.json, gitignore both (+*_output.log)license_infoMIT → AGPL-3.0-or-laterpyproject.toml:11); API docs advertised MITTODO(#336)inevents_v2.pyserver.pymounts the routerdependencies=_AUTHprint()→logger.info()cf tui→cf dashboard(3 spots)tuicommand exists anywhere in the codebasePRD.md→ pointer stubSPRINTS.mdthat no longer existsAGENTS.md→ pointer stubserver/dirTESTING.mdbrokenSPRINTS.mdlink (drive-by)legacydocs/Net: +36 / −10,370.
On the two doc stubs
The issue allows "refreshed or pointed at CLAUDE.md". Both are pointed, deliberately:
duplication is the actual defect.
AGENTS.mdwas a copy ofCLAUDE.mdthat drifted;re-syncing it just restarts the clock on the same bug.
PRD.mddocumented a productthat no longer exists. Inbound links (
TESTING.md,specs/CODEFRAME_SPEC.md) stillresolve, and the v1 content remains in
legacydocs/.AGENTS.mdstays a real file rather than a symlink becausecore/config_watcher.py:40treats that filename as first-class config.
Verification
uv run pytest tests/ui/→ 553 passeduv run ruff check .→ cleaninfo.license→AGPL-3.0-or-later(asserted against a realapp.openapi())cf dashboard --help→ exits 0;cf tui --help→No such command 'tui'git check-ignore -vconfirms both artifacts ignored by the new rulesKnown limitations
(
specs/,legacydocs/,docs/archive/) still contain v1-era references; they arealready marked historical and were left alone.
MANIFEST.into tighten.