- make test-tooling: planet-gen determinism guard + import_economics
--dry-run, wired into pre-push on TOOLING_CHANGED; ruff widened to
E4/E7/E9/F/W (90 safe auto-fixes applied; E402/E702/F841 ignored with
documented counts)
- one-generator reality fixed in DEVOPS.md, asset-pipeline rule, CLAUDE.md
(import_economics sole generator since #951/D-223); dead check-protocol
target deleted; DEVOPS hook/config sections rewritten from the actual
hook sources; team-patterns gate description updated (client+tooling)
- project.yaml: 0.2.0 → 0.4.0 per the 0.{phase}.{n} scheme, description
refreshed from the v0.1 Sova narration to cascade reality
- stale comment sweep: voxel.rs stub claims (all 8 families implemented),
cascade.rs TODO recited to T-1044, main.rs D-192 handshake claim,
relationships.rs/chunk_streaming.rs version targets → phase language
- gitignore: client/settings.db* e2e-run artifacts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
56 lines
3.1 KiB
Markdown
56 lines
3.1 KiB
Markdown
# Team Patterns
|
|
|
|
## Model selection
|
|
|
|
Default model is Opus 4.6 (200K context). For heavy sessions (workshops,
|
|
large reviews, milestone planning), switch to extended context on-demand:
|
|
|
|
- `/model sonnet[1m]` — Sonnet 4.6 with 1M context window
|
|
- `/model opus[1m]` — Opus 4.6 with 1M context window
|
|
- Cost: 2x input + 1.5x output for tokens beyond 200K (Tier 4 required)
|
|
|
|
## Large content pushes
|
|
|
|
When producing many files (wiki pages, content batches, bulk docs):
|
|
1. **Lore librarian** agent (read-only): ingests all source material, answers focused context queries from writers, tracks cross-file consistency
|
|
2. **Multiple writer** agents (parallel, by domain): each gets a task slice, writes directly to disk using the Write tool — one file at a time, write often, no text accumulation
|
|
3. **Reviewer** agents (blocked until writing done): check voice consistency, attribute uniformity, style
|
|
|
|
Key: writers use Write tool directly (no transcription bottleneck), librarian catches contradictions early, split work by domain not volume.
|
|
|
|
## Team monitoring (stuck agent detection)
|
|
|
|
When leading a team (workshop, batch, or any multi-agent session):
|
|
|
|
**Agent heartbeat rule** — include in every agent spawn prompt:
|
|
> If you have been working on a single task for more than 15 minutes
|
|
> without making progress, message the team lead with what is blocking
|
|
> you. Do not keep retrying the same approach silently.
|
|
|
|
**Team lead proactive checks:**
|
|
- If an agent has not sent a message in ~20 minutes, ping them for a status update.
|
|
- **Bottleneck detection:** if other agents are idle and waiting on one agent's output, that agent's silence is a red flag — check on them immediately, do not wait for the next natural message.
|
|
- When checking on a stuck agent, offer to reassign the task or pull in another agent to help.
|
|
|
|
## Agent verification — don't duplicate the push gate
|
|
|
|
The pre-push hook (`.config/hooks/pre-push`) is the source of truth for
|
|
verification and **runs on every push the lead makes**: when `server/` changed —
|
|
`cargo fmt --check`, `cargo clippy --all-targets -- -D warnings`, and `cargo test`;
|
|
when `client/` changed — the full gdUnit4 suite via `tests/run-godot` (T-1065);
|
|
when `tooling/` changed — `make test-tooling` (plus `cargo deny`, ruff, JSON
|
|
validation, systems.db stamp). There is no CI (no
|
|
`.gitea`/`.github`/`.forgejo` workflows) — the push gate is the only automatic
|
|
verification, so it is deliberately comprehensive.
|
|
|
|
Therefore, when spawning implementation agents, do **not** tell them to run
|
|
`cargo fmt`, `cargo clippy`, or `cargo test` pre-emptively — the push gate enforces
|
|
all three, so it is pure duplication. Worse, an agent running a *weaker* check (e.g.
|
|
plain `cargo clippy` without `-D warnings`) reports a false "clean". Let agents write
|
|
code; the gate is authoritative.
|
|
|
|
On a gate failure at push: fmt auto-fixes (`cargo fmt`); clippy is a quick lead patch;
|
|
a `cargo test` failure is a real regression — fix it, or SendMessage the still-alive
|
|
agent to fix it in-context. Net: agents verify nothing the gate already covers, and the
|
|
lead lets the gate catch fallout on push.
|