You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Operator field observation, May 2026: the repo has accumulated cruft over the recent rapid-iteration phase that makes navigation and onboarding harder than it should be. External contributor feedback (#1382) cited "AI slop" and giant monolith files as one barrier; this issue tracks the broader repo-hygiene half of the same complaint that file-size refactoring (#1382) and typed-response refactoring (#1383) don't cover.
Concrete inventory (master HEAD as of this filing)
$ ls *.md → 16 top-level Markdown files
$ ls *.md | grep -v '^README\|^CHANGELOG\|^LICENSE' → 13 design docs in root
Notably stale-looking root-level design docs:
AUDIO-PLAN.md (apr 2)
AUDIO-WORKBENCH.md (apr 2)
BUILD_PLAN.md (apr 2)
CUSTOMIZATION-PLAN.md (apr 2)
DEDUP-DESIGN.md (apr 2)
DEDUP-MIGRATION-PLAN.md (apr 2)
NEW_USER_SPEC.md (apr 2)
NODE-ANALYTICS-PLAN.md (apr 2)
RELEASE-v2.6.0.md, RELEASE-v3.0.0.md, RELEASE-v3.1.0.md (release notes for shipped versions, now superseded by CHANGELOG.md + docs/release-notes/)
Dockerfile.go, Dockerfile.node (presumably superseded by the unified Dockerfile)
These are mostly post-launch planning docs from April that have either shipped or been replaced by issue/PR threads. Burying them in docs/archive/ (or removing entirely with a git log reference) would cut visible top-level noise by ~75%.
Other observations:
docs/superpowers/plans/2026-04-05-deep-linking-p1.md — one-file directory, plan from April. Either consolidate into docs/specs/ or remove if shipped.
docs/proposals/, docs/specs/, docs/test-plans/, docs/release-notes/ — overlapping content axes. A single docs/<status>/ hierarchy (draft/, accepted/, shipped/, archived/) would be clearer.
21 test-*.js files in repo root (e.g. test-aging.js, test-channel-add-ux.js, test-customizer-v2.js, test-frontend-helpers.js, test-live.js, test-perf-go-runtime.js). Plus dozens more test-issue-*.js files. Consider moving all to tests/ (root sweep would meaningfully reduce visual noise on a fresh clone).
40 untracked _wt-* directories from past worktree work in the operator's local checkout. NOT in git (verified git ls-files --error-unmatch _wt-fix-789 → not found), but listed in .gitignore? Worth confirming and adding to a cleanup script if not.
What "cruft" means here (concrete)
Stale planning docs that describe features that shipped or were abandoned. They confuse new readers ("is DEDUP-MIGRATION-PLAN.md describing the current state?").
Top-level noise — README + CHANGELOG + LICENSE + AGENTS + DEPLOY + 11 other .md files. The first thing a contributor sees is a wall of unrelated planning artifacts.
Test-file scatter at the repo root (21 root-level + dozens more) makes the test surface hard to enumerate.
docs/ substructure overlap — proposals vs specs vs test-plans is a status-not-shape distinction; merge.
Dead Dockerfile.go / Dockerfile.node if not used by any CI workflow (verify before removal).
Anything else that surfaces during a git log --diff-filter=A --since=2026-04-01 --name-only --format= pass — files added during the rapid-iteration burst that never got referenced again.
Acceptance criteria
This is a CLEANUP issue with multiple PRs. Each PR must be pure-archive/pure-delete (no behavior change in cmd/server/, cmd/ingestor/, public/). PRs:
PR-A: Archive root-level stale planning docs. Move AUDIO-PLAN.md, AUDIO-WORKBENCH.md, BUILD_PLAN.md, CUSTOMIZATION-PLAN.md, DEDUP-*.md, NEW_USER_SPEC.md, NODE-ANALYTICS-PLAN.md to docs/archive/<original-name>.md via git mv (preserves blame). Update README if any of them are linked.
PR-B: Consolidate old release notes. Move RELEASE-v2.6.0.md, RELEASE-v3.0.0.md, RELEASE-v3.1.0.md to docs/release-notes/. Verify no link breakage.
PR-C: Verify and remove dead Dockerfiles.Dockerfile.go / Dockerfile.node — search every workflow file in .github/workflows/ for references. If none, git rm with PR body noting the verification grep. If referenced, leave alone.
PR-D: Move root test-*.js files to tests/ (or tests/frontend/). Update every CI workflow that references them by path. Run full CI before push to confirm no test gets silently dropped.
PR-E: Consolidate docs/superpowers/plans/ — either merge with docs/specs/ or remove (single 1-month-old file).
PR-F: Status-based docs/ hierarchy. Reorganize docs/proposals/, docs/specs/, docs/test-plans/, docs/superpowers/ into a single docs/{draft,accepted,shipped,archived}/ structure. Each existing doc gets classified.
PR-G: .gitignore audit — ensure _wt-* and other transient worktree/buildtime artifacts are ignored (operator field-reported 40 untracked _wt-* dirs).
Background
Operator field observation, May 2026: the repo has accumulated cruft over the recent rapid-iteration phase that makes navigation and onboarding harder than it should be. External contributor feedback (#1382) cited "AI slop" and giant monolith files as one barrier; this issue tracks the broader repo-hygiene half of the same complaint that file-size refactoring (#1382) and typed-response refactoring (#1383) don't cover.
Concrete inventory (master HEAD as of this filing)
Notably stale-looking root-level design docs:
AUDIO-PLAN.md(apr 2)AUDIO-WORKBENCH.md(apr 2)BUILD_PLAN.md(apr 2)CUSTOMIZATION-PLAN.md(apr 2)DEDUP-DESIGN.md(apr 2)DEDUP-MIGRATION-PLAN.md(apr 2)NEW_USER_SPEC.md(apr 2)NODE-ANALYTICS-PLAN.md(apr 2)RELEASE-v2.6.0.md,RELEASE-v3.0.0.md,RELEASE-v3.1.0.md(release notes for shipped versions, now superseded byCHANGELOG.md+docs/release-notes/)Dockerfile.go,Dockerfile.node(presumably superseded by the unifiedDockerfile)These are mostly post-launch planning docs from April that have either shipped or been replaced by issue/PR threads. Burying them in
docs/archive/(or removing entirely with agit logreference) would cut visible top-level noise by ~75%.Other observations:
docs/superpowers/plans/2026-04-05-deep-linking-p1.md— one-file directory, plan from April. Either consolidate intodocs/specs/or remove if shipped.docs/proposals/,docs/specs/,docs/test-plans/,docs/release-notes/— overlapping content axes. A singledocs/<status>/hierarchy (draft/,accepted/,shipped/,archived/) would be clearer.test-*.jsfiles in repo root (e.g.test-aging.js,test-channel-add-ux.js,test-customizer-v2.js,test-frontend-helpers.js,test-live.js,test-perf-go-runtime.js). Plus dozens moretest-issue-*.jsfiles. Consider moving all totests/(root sweep would meaningfully reduce visual noise on a fresh clone)._wt-*directories from past worktree work in the operator's local checkout. NOT in git (verifiedgit ls-files --error-unmatch _wt-fix-789 → not found), but listed in.gitignore? Worth confirming and adding to a cleanup script if not.What "cruft" means here (concrete)
DEDUP-MIGRATION-PLAN.mddescribing the current state?")..mdfiles. The first thing a contributor sees is a wall of unrelated planning artifacts.docs/substructure overlap — proposals vs specs vs test-plans is a status-not-shape distinction; merge.Dockerfile.go/Dockerfile.nodeif not used by any CI workflow (verify before removal).git log --diff-filter=A --since=2026-04-01 --name-only --format=pass — files added during the rapid-iteration burst that never got referenced again.Acceptance criteria
This is a CLEANUP issue with multiple PRs. Each PR must be pure-archive/pure-delete (no behavior change in
cmd/server/,cmd/ingestor/,public/). PRs:AUDIO-PLAN.md,AUDIO-WORKBENCH.md,BUILD_PLAN.md,CUSTOMIZATION-PLAN.md,DEDUP-*.md,NEW_USER_SPEC.md,NODE-ANALYTICS-PLAN.mdtodocs/archive/<original-name>.mdviagit mv(preserves blame). Update README if any of them are linked.RELEASE-v2.6.0.md,RELEASE-v3.0.0.md,RELEASE-v3.1.0.mdtodocs/release-notes/. Verify no link breakage.Dockerfile.go/Dockerfile.node— search every workflow file in.github/workflows/for references. If none,git rmwith PR body noting the verification grep. If referenced, leave alone.test-*.jsfiles totests/(ortests/frontend/). Update every CI workflow that references them by path. Run full CI before push to confirm no test gets silently dropped.docs/superpowers/plans/— either merge withdocs/specs/or remove (single 1-month-old file).docs/hierarchy. Reorganizedocs/proposals/,docs/specs/,docs/test-plans/,docs/superpowers/into a singledocs/{draft,accepted,shipped,archived}/structure. Each existing doc gets classified..gitignoreaudit — ensure_wt-*and other transient worktree/buildtime artifacts are ignored (operator field-reported 40 untracked_wt-*dirs).Out of scope
cmd/server/(covered by refactor: split cmd/server/ monolith files (store.go 7389L, routes.go 2714L, db.go 2346L) — contributor onboarding cliff #1382).Refs