Skip to content

chore: repo cleanup — archive stale top-level design docs, consolidate docs/ hierarchy, move root tests/ #1385

@Kpa-clawbot

Description

@Kpa-clawbot

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)

$ 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)

  1. Stale planning docs that describe features that shipped or were abandoned. They confuse new readers ("is DEDUP-MIGRATION-PLAN.md describing the current state?").
  2. 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.
  3. Test-file scatter at the repo root (21 root-level + dozens more) makes the test surface hard to enumerate.
  4. docs/ substructure overlap — proposals vs specs vs test-plans is a status-not-shape distinction; merge.
  5. Dead Dockerfile.go / Dockerfile.node if not used by any CI workflow (verify before removal).
  6. 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).

Out of scope

Refs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions