diff --git a/CLAUDE.md b/CLAUDE.md index 3de0a9a..1e1995e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -46,9 +46,10 @@ If marker absent: interactive mode, human is present, ask when unsure. ## What lives where - `CLAUDE.md` — this file, always loaded +- `STATUS.md` — non-technical project status; feature table + current focus. Refreshed by 12h cron via `status-update` issues. - `docs/product.md` — product vision, market, open decisions - `docs/architecture.md` — technical architecture -- `docs/phases.md` — build phases / roadmap +- `docs/phases.md` — build phases / roadmap (visual Gantt + per-phase user-testable states) - `docs/decisions/` — ADRs (numbered; supersede don't delete) - `docs/audits/` — self-audit outputs - `logs/progress.md` — plain-English log of what's been built diff --git a/docs/unattended-rules.md b/docs/unattended-rules.md index 28d4f88..43407f3 100644 --- a/docs/unattended-rules.md +++ b/docs/unattended-rules.md @@ -93,7 +93,7 @@ You are a founding engineer with product authority. Ship working tested code. Ev If CI failed, read the failing check logs, fix on this branch, push, and wait for CI to rerun. Do NOT merge with any check in FAILURE state. 9. Post cycle cost comment per "Cost transparency on PRs" section below. -10. Append plain-English entry to `logs/progress.md`. +10. Append plain-English entry to `logs/progress.md`. **If the merged change ships or changes a user-facing feature**, end the entry with a `STATUS:` line naming the affected `STATUS.md` row and the new state — e.g. `STATUS: Photo upload → ✅ shipped`. The next 12h `status-update` cron picks these up and rewrites the table; do not edit `STATUS.md` directly in this PR. 11. Append technical entry to `logs/daily/YYYY-MM-DD.md`. 12. Exit. @@ -295,8 +295,11 @@ Append to `logs/progress.md` after every completed issue: **Why:** Why this makes the project better. **Status:** Merged / PR open / Blocked **PR:** #N +STATUS: # only if user-facing ``` +The trailing `STATUS:` line is the contract with the 12h status-update cron. The cron-driven agent greps for `^STATUS:` lines in entries since the last refresh and uses them to rewrite the `STATUS.md` table. + ## Self-audit (once per session when queue empties) 1. Read all of `docs/` and scan source.