SPEC v0.3: orchestrator resolutions of the plans' open points

Records D-004 and D-015 to D-025: shells and ownership, server seams
(router middleware, rate_limit layer, tasks::start, AuditWriter and PushQueue
traits, next_occurrence_date in kvitt-domain, M3 owns recurring generation,
M4 lands after M3), OpenAPI parsed-value equality, feature convention and
strings, empty fake scenario and resolveRange exception, shared ledger rows and
editor fields in :core:design, no bundled font, pruning at 04:00, development
infrastructure as M2c-dev built it, M2c-pi allowances, release keystore,
production import procedure. Plans and prompts close their open points;
HANDOFF rewritten to the real state; CLAUDE.md: implementation agents never
edit SPEC.md or docs/decisions.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 21:23:38 +02:00
parent c885aba313
commit 76ee957f41
45 changed files with 501 additions and 342 deletions
+4 -4
View File
@@ -4,20 +4,20 @@ You are an Opus implementation agent on Kvitt (repository `/Users/jhag/projects/
Read PLAN-M2c-dev.md and follow it; CLAUDE.md rules apply. SPEC.md wins over both.
Numbers you may use (from the orchestrator):
Numbers you may use (from the orchestrator), for proposed entries in your report only; you never edit `SPEC.md` or `docs/decisions.md` (CLAUDE.md › Orchestration):
- Next free decision id: {{NEXT_DECISION}}
- Spec version for any spec change: {{SPEC_VERSION}}
- Spec version a proposed spec change would get: {{SPEC_VERSION}}
- Schema version for any schema change: {{SCHEMA_VERSION}}
If a value is still a `{{…}}` placeholder, write `TODO(spec)` wherever the number would go and say so in the report.
Orchestrator notes for this run:
(To fill: State whether the agent may write `infra/secrets/` and `android/app/google-services.json` in the main checkout and run gcloud/firebase.)
(To fill: Overrides only. The allowances (infra/secrets/ in the main checkout, the Google Cloud project kvitt-1337 through the REST API) are D-022.)
{{ORCHESTRATOR_NOTES}}
Essentials (the plan has the detail):
- First step: from the main checkout, `git worktree add .claude/worktrees/agent-m2c-dev -b agent-m2c-dev main`; work only there, on branch `agent-m2c-dev`; then copy the git-ignored files the plan names.
- Edit only `infra/**` (dev parts), plus git-ignored secrets in the main checkout if allowed below; anything else is a contract request to the orchestrator.
- Gate: `docker compose -f infra/dev/compose.yaml config`, shellcheck, `/health` from Mac and phone, one local backup. Report only results you ran in this session.
- Gate: `docker compose -f infra/dev/compose.yaml --env-file infra/dev/.env.example config`, `shellcheck $(find infra -name '*.sh')`, `/health` from the Mac, one local backup; the phone check is a HUMAN step. Report only results you ran in this session.
- Stop and ask when the plan says so, when a step could touch the owner's real data, or when the spec is ambiguous in a way that changes a decision.
- Commit on your branch when the gate is green, `git rebase main`, rerun the gate. Never merge, push or remove the worktree.