2026-04-25 — Repo root .md cleanup: PLAN/SPRINT/LAUNCH-AUDIT migrated, COMMIT discarded
Migrated three durable root-level markdown documents into apps/docs/content/docs/operations/ and discarded one session-scoped file. Repo root now holds only CLAUDE.md, README.md, configs, and .gitignore for *.md.
What changed
Three durable repo-root .md files migrated into the docs site under apps/docs/content/docs/operations/. One session-scoped file discarded.
| Original (root) | Disposition | Destination / Reason |
|---|---|---|
PLAN.md (~17 KB) | Migrated | apps/docs/content/docs/operations/plan.mdx — 88-issue, 7-sprint resolution plan with file-level cross-references. Durable. |
SPRINT_337_358_328.md (~11 KB) | Migrated | apps/docs/content/docs/operations/sprint-337-358-328.mdx — cross-epic coordination doc for #328 / #358 / #337. Durable. |
LAUNCH-AUDIT-2026-04-04.md (~10 KB) | Migrated | apps/docs/content/docs/operations/launch-audit-2026-04-04.mdx — pre-launch functionality audit. Durable. |
COMMIT.md (~1.8 KB) | Discarded | Session-scoped commit-message convention reference. Equivalent guidance lives in CLAUDE.md, global CLAUDE.md, and conventional commit norms. No durable content unique to this file. |
Why
SSOT discipline: the repo root is for project bootstrap (README.md) + agent rules (CLAUDE.md) + configs + .gitignore. Operational and historical docs belong under apps/docs/content/docs/operations/. The pattern matches what handovers and sprint plans were already moving toward (handover-* entries, voice-stack-architecture).
After this PR, git ls-files "*.md" | grep -v "/" | sort should return only CLAUDE.md and README.md.
Issue/PR references preserved
Migrated content references many GitHub issue/PR numbers; these were preserved verbatim so future readers can search for them. Notable references:
plan.mdx: issues #23, #26–#34, #35–#48, #49–#58, #59–#71, #72–#90, #91–#112 (88 unique issue refs across 7 sprints)sprint-337-358-328.mdx: epics #328, #337, #358 and their sub-issues #325–#327, #329–#348, #355–#357, #359–#368launch-audit-2026-04-04.mdx: 10 file-level findings (no issue numbers cited inline; the audit itself was the source of subsequent issue creation)
CLAUDE.md status
Left untouched. Current root CLAUDE.md is ~51 lines, well under the #640 acceptance criterion of ≤100 lines. PR #680 (designguide-retirement) had not merged at the time of this PR, so any line-count delta from #680 will be considered separately when it lands.
meta.json updates
operations/meta.jsonpages: addedplan,sprint-337-358-328,launch-audit-2026-04-04aftervoice-stack-architectureand before the chronologicalhandover-*entries. Rationale: these three are reference documents (sprint plans / audits), not chronological session notes, so they read better grouped with the architecture doc than mixed into the handover timeline.changelog/meta.jsonpages: prepended2026-04-25-root-md-cleanup(newest entry).
Follow-ups
plan.mdxreferences the legacyapps/web/proxy.tsmiddleware filename; ifproxy.tshas since been renamed tomiddleware.ts(perlaunch-audit-2026-04-04.mdxfinding #1), the doc owner should refresh those file references.launch-audit-2026-04-04.mdxis dated 2026-04-04. Several findings (e.g., the simplify column bug, missing protectedPrefixes) may have been resolved in subsequent issues; the doc owner should annotate resolved items rather than letting the file appear current.sprint-337-358-328.mdxPhase 0 issues should be cross-checked against current main — some of #338, #328, #355, #356, #357 may already be closed.
These follow-ups are deliberately tracked here rather than blocking this cleanup; the goal of #647 is structural relocation, not content refresh.
2026-04-25 — Post-merge audit cron: closed-issue + weekly changelog drift
Adds two GitHub Actions workflows that audit changelog hygiene. closed-issue-audit runs daily at 06:17 UTC and flags any issue closed as completed without a matching changelog closes: reference. changelog-audit-weekly runs Mondays at 09:00 UTC and writes a 7-day summary to the workflow run page. Both default to DRY_RUN=true for the first 7 days; flip to false on 2026-05-02 once shake-out is done. Auto-creates the missing-changelog and no-changelog labels on first run.
2026-04-25 — DesignGUIDE/ retirement: 89% lineage coverage by docs/design/, 3 brand-asset gaps deferred
Retired the DesignGUIDE/ tree (9 files, 67 KB lineage source + 8 process/HTML artifacts). Audit confirmed 32 of 36 brief-v3 sections fully covered by the existing 15 design mdx pages. Three substantive gaps (favicons §6.3, OG-images §6.4, community avatars §6.5) deferred to a follow-up since they require asset-spec writing, not migration of existing content. Brief-v3 + DESIGN-GUIDE_v0.2 preserved out-of-tree at ~/.claude/files by dave/fragJulia/ for the follow-up's reference.