docs: add a review agenda and config compatibility rules
Reviewing the project used to mean re-stating what to look at every time. docs/REVIEW.md now holds that agenda once — nine areas, each anchored to this codebase — and both entry points point at it rather than copying it: the /review-project command in .claude/commands, and a section in CLAUDE.md so a plain-language review request lands in the same place. STANDARDS.md gains a "Config file compatibility" section. The project has applied the same rule three times (Theme, JobListView, TimeoutSeconds) without ever writing it down: a new Config field is omitempty and its zero value means the previous behavior, a meaningful zero is never backfilled on load, and an unrecognised enum value reads as the default through one shared helper. With no migration step and hand-editable files, that is what keeps older configs working. Also removes docs/PLAN-compact-job-list.md, implemented in edabc57 — everything but the version bump, which now waits for the release along with the rest of the Unreleased section. .claude/settings.local.json is ignored so the shared command can be tracked without per-developer permissions. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,12 @@ application service, scheduler, storage, and command runner in one binary.
|
||||
- [docs/TESTS.md](docs/TESTS.md) — test layout and conventions.
|
||||
- [docs/ROADMAP.md](docs/ROADMAP.md) — deliberately out of scope.
|
||||
|
||||
## Reviewing the project
|
||||
|
||||
When the user asks for a review of the project (rather than of a specific
|
||||
diff), follow [docs/REVIEW.md](docs/REVIEW.md) — it is the agenda, and the
|
||||
`/review-project` command runs the same thing. Do not improvise a checklist.
|
||||
|
||||
## Key rules (full list in STANDARDS.md)
|
||||
|
||||
- `src/app.Service` is the sole owner of job and runtime state; the UI reads it
|
||||
@@ -22,7 +28,7 @@ application service, scheduler, storage, and command runner in one binary.
|
||||
a regression test.
|
||||
- UI view constructors accept an injected `*app.Service`; `app.Open()` is called
|
||||
only from `run.go`.
|
||||
- Off-main-thread widget updates must go through `fyne.Do` (Fyne v2.6.x).
|
||||
- Off-main-thread widget updates must go through `fyne.Do` (Fyne v2.7.4).
|
||||
|
||||
## Build and test
|
||||
|
||||
|
||||
Reference in New Issue
Block a user