@mootup/moot-templates 0.2.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/claude/settings.json +15 -1
- package/templates/devcontainer/run-moot-channel.sh +39 -17
- package/templates/devcontainer/run-moot-mcp.sh +40 -17
- package/templates/skills/doc-curation/SKILL.md +63 -43
- package/templates/skills/handoff/SKILL.md +62 -14
- package/templates/skills/implementation-workflow/SKILL.md +587 -0
- package/templates/skills/leader-workflow/SKILL.md +182 -68
- package/templates/skills/librarian-workflow/SKILL.md +56 -14
- package/templates/skills/memory-audit/SKILL.md +60 -33
- package/templates/skills/merge-to-main/SKILL.md +100 -0
- package/templates/skills/product-workflow/SKILL.md +181 -34
- package/templates/skills/spec-checklist/SKILL.md +490 -28
- package/templates/skills/stack-reset/SKILL.md +111 -0
- package/templates/skills/verify/SKILL.md +109 -31
- package/templates/teams/loop-6/CLAUDE.md +34 -18
- package/templates/teams/loop-6/team.toml +3 -3
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stack-reset
|
|
3
|
+
description: Full teardown, rebuild, provision, and verify cycle for the docker compose stack. QA-owned operation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Stack Reset
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Rebuild the docker compose stack from a clean state. Used when (a) database schema changes require a fresh volume, (b) container images drift from the shipped code, (c) the stack is in an unknown state after a failed deploy or interrupted migration, (d) explicit operator request to start over. Prevents the failure class where "it worked yesterday" turns into untracked divergence between running containers and current source.
|
|
11
|
+
|
|
12
|
+
**Why it exists as a named skill:** the reset sequence has a required order (teardown → rebuild → health-check → dep-install → provision → smoke) and multiple easy-to-miss details (the worktree-directory cwd, the `--group test` sync flag, conditional re-provisioning). Ad-hoc resets tend to skip the health-check gate or run compose from the wrong cwd. Capturing the recipe once makes the sequence reproducible.
|
|
13
|
+
|
|
14
|
+
## Preconditions
|
|
15
|
+
|
|
16
|
+
Before invoking this skill, the caller MUST verify:
|
|
17
|
+
|
|
18
|
+
- **Role:** caller is the QA agent. Other roles MUST request a reset via `message_type="stack_request"` rather than invoking this skill directly.
|
|
19
|
+
- **Working directory:** commands will run from `/workspaces/convo/.worktrees/qa` (the QA Worktree). Running from any other cwd is a silent failure — the compose file there carries `BACKEND_SRC` volume mounts that bind worktree source into containers; without them, containers build with stale or wrong source.
|
|
20
|
+
- **Docker daemon:** `docker info` exits 0. If the daemon isn't running, every subsequent step fails with opaque errors.
|
|
21
|
+
- **Pending requester context:** if the reset was requested via a channel `stack_request` message, the `event_id` is known so the post-reset status-update can reply-to the request rather than creating an orphan thread.
|
|
22
|
+
|
|
23
|
+
## Invariants
|
|
24
|
+
|
|
25
|
+
These MUST hold throughout the reset:
|
|
26
|
+
|
|
27
|
+
- **Ordering is absolute.** Steps in Procedure MUST execute in order. Parallelizing or reordering (e.g., installing test deps before services are healthy) produces misleading failures.
|
|
28
|
+
- **No cross-stack contamination.** The reset operates on the `convo-qa` compose project only. Commands MUST NOT affect `convo` (host) or `convo-impl` (Implementation) stacks running on the same docker daemon.
|
|
29
|
+
- **Truthful status reporting.** QA MUST NOT post "stack reset complete" until smoke tests have passed in step 8. Reporting complete with a red smoke is a protocol violation.
|
|
30
|
+
|
|
31
|
+
## Postconditions
|
|
32
|
+
|
|
33
|
+
On successful completion:
|
|
34
|
+
|
|
35
|
+
- All five `convo-qa-*` containers (postgres, redis, backend, frontend, caddy) are in `running` state.
|
|
36
|
+
- Test dependencies (`--group test`) are installed inside `convo-qa-backend-1`.
|
|
37
|
+
- Actors exist in the QA database (either preserved across the volume or re-provisioned in step 6).
|
|
38
|
+
- `pytest -x -q` exits 0 against the current worktree code.
|
|
39
|
+
- A `status_update` has been posted to the channel confirming operational state, including the test pass count.
|
|
40
|
+
|
|
41
|
+
On failure at any step, the skill stops rather than proceeding. The postconditions above do not hold, and the caller is notified via a channel message describing the failure point — not a "stack reset complete" status.
|
|
42
|
+
|
|
43
|
+
## Procedure
|
|
44
|
+
|
|
45
|
+
1. **Change to the QA Worktree.**
|
|
46
|
+
```bash
|
|
47
|
+
cd /workspaces/convo/.worktrees/qa
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
2. **Tear down the existing stack.** MUST be `down`, not `stop` — clean state requires container removal:
|
|
51
|
+
```bash
|
|
52
|
+
docker compose -p convo-qa --env-file .env.qa down
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
3. **Rebuild and start all services:**
|
|
56
|
+
```bash
|
|
57
|
+
docker compose -p convo-qa --env-file .env.qa up --build -d
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
4. **Wait for all services healthy.** MUST verify every service shows `running` before proceeding:
|
|
61
|
+
```bash
|
|
62
|
+
docker compose -p convo-qa --env-file .env.qa ps
|
|
63
|
+
```
|
|
64
|
+
Proceeding early produces test failures that look like application bugs.
|
|
65
|
+
|
|
66
|
+
5. **Install test dependencies.** The `--group test` flag is required; without it, `pytest` and test-only deps are absent:
|
|
67
|
+
```bash
|
|
68
|
+
docker exec convo-qa-backend-1 uv sync --group test
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
6. **Re-provision only if the database volume was removed.** Actors persist across rebuilds; skip otherwise:
|
|
72
|
+
```bash
|
|
73
|
+
docker exec convo-qa-backend-1 python scripts/provision_actors.py
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
7. **Verify identity:** run `whoami` in the QA agent session; identity MUST resolve.
|
|
77
|
+
|
|
78
|
+
8. **Run smoke tests:**
|
|
79
|
+
```bash
|
|
80
|
+
docker exec convo-qa-backend-1 uv run pytest -x -q
|
|
81
|
+
```
|
|
82
|
+
`-x` exits on first failure; `-q` suppresses noise. Smoke MUST pass before step 9.
|
|
83
|
+
|
|
84
|
+
9. **Post the completion status_update to the channel:**
|
|
85
|
+
```
|
|
86
|
+
Stack reset complete. All services running. [N] tests passed. Ready for work.
|
|
87
|
+
```
|
|
88
|
+
SHOULD be a `status_update`, not a top-level message, to avoid operational noise.
|
|
89
|
+
|
|
90
|
+
## Practice
|
|
91
|
+
|
|
92
|
+
**When to use `down -v` (volume removal) vs. plain `down`.** Plain `down` preserves the PostgreSQL volume; volumes persist actors, tenant schemas, accumulated test data. `down -v` wipes volumes and forces full re-provisioning. Default to plain `down` unless the schema itself has changed and a clean database is required. Flag any `down -v` invocation to the requester so they're aware data was wiped.
|
|
93
|
+
|
|
94
|
+
**Smoke test failure handling.** If step 8 fails, invariant 3 ("truthful status reporting") forbids proceeding to step 9. Re-run with `pytest -x -q --tb=short` for a readable traceback, then decide: (a) real regression, re-escalate; (b) flaky test, retry once; (c) infrastructure issue (Redis unreachable, Postgres slow), investigate before proceeding.
|
|
95
|
+
|
|
96
|
+
**Posting discipline for step 9.** The status_update is the signal other agents use to know QA is operational. Post promptly after smoke passes; don't wait for additional verification unless the requester asked for it.
|
|
97
|
+
|
|
98
|
+
**Playwright system deps in the frontend container.** The QA frontend image does NOT carry `libglib-2.0.so.0` (and friends) needed by headless Chromium. First Playwright run after a rebuild fails with `error while loading shared libraries`. Once per container lifetime, after step 4 succeeds:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
docker exec -u root convo-qa-frontend-1 npx playwright install-deps chromium
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The deps persist until the container is recreated (which `down` does), so re-install after every full `stack-reset`. Until the frontend Dockerfile adds this to the image build (F-STACKRESET-PLAYWRIGHT-DEPS), the runtime install is the canonical path.
|
|
105
|
+
|
|
106
|
+
## Defined terms
|
|
107
|
+
|
|
108
|
+
- **QA Worktree** — `/workspaces/convo/.worktrees/qa/`, the filesystem location where QA's compose commands MUST run.
|
|
109
|
+
- **QA stack** — the `convo-qa` docker compose project, built from the QA Worktree's compose file with `.env.qa`.
|
|
110
|
+
- **BACKEND_SRC** — environment variable in `.env.qa` pointing to the QA Worktree's `backend/` directory, enabling live-source bind-mount.
|
|
111
|
+
|
|
@@ -4,61 +4,139 @@ description: QA verification workflow. Rebuild the test stack, run tests, diff a
|
|
|
4
4
|
argument-hint: [commit hash or feature name]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
# Verify
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Purpose
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Run QA's end-of-pipeline verification gate on a feature handed off by Implementation. Confirms the shipped code matches the spec, tests pass, and no regressions were introduced. The failure class this skill prevents is **silent non-conformance** — Implementation's green self-report covering for a spec-deviation, a latent bug, or an incomplete test suite that only shows up when someone independently rebuilds and runs.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Why it exists as a named skill:** verification has several easy-to-miss steps (uvicorn-doesn't-hot-reload-from-volume-mounts; residual DB connections from prior runs can cause phantom ~900-ERROR failures; the spec compliance check requires reading files against the spec, not just running tests). Each of those has bitten verification runs historically; capturing them in one place prevents rediscovery.
|
|
14
|
+
|
|
15
|
+
## Preconditions
|
|
16
|
+
|
|
17
|
+
- **Role:** caller is QA.
|
|
18
|
+
- **Handoff received:** a channel message from Implementation (or the feature-thread's most recent git-request ack from Leader) names the commit hash and spec file. Don't start verification without a known target.
|
|
19
|
+
- **Stack ready:** the QA stack is either already running with current source, or QA is about to rebuild. If unsure, run `stack-reset` first.
|
|
20
|
+
- **Spec file reachable:** `docs/specs/<slug>.md` (or equivalent) exists and is readable — this is the source of truth for "what was supposed to ship."
|
|
21
|
+
|
|
22
|
+
## Invariants
|
|
23
|
+
|
|
24
|
+
- **Independent verification.** QA MUST rebuild the stack or confirm the running stack reflects the handoff commit. Running tests against a stale-source container validates nothing.
|
|
25
|
+
- **Full pipeline run.** MUST run backend pytest + frontend build + spec compliance pass. Skipping any leg produces a false-positive verdict.
|
|
26
|
+
- **Truthful verdict.** Verdict is Approved OR Blocked, not "looks good" or "mostly passed." Verdicts that soften real failures break the pipeline's ship gate.
|
|
27
|
+
- **Report mentions Leader.** QA's verification-complete handoff MUST mention Leader (via the `mentions` parameter, not just display name in text). Leader is the ship-squash owner; without the mention, the ring stalls.
|
|
28
|
+
- **Small-repair scope is narrow.** QA MAY commit unambiguous bug fixes directly (wrong status code a test asserts, obvious typo, missing validation a test already covers). MUST NOT commit judgment-call or design changes — flag those in the report instead.
|
|
29
|
+
|
|
30
|
+
## Postconditions
|
|
31
|
+
|
|
32
|
+
- Backend pytest results captured (pass/fail count, new failures if any).
|
|
33
|
+
- Frontend build status captured (clean / errors).
|
|
34
|
+
- Spec compliance reviewed against the changed files (matches / deviations documented).
|
|
35
|
+
- A verification report exists in the feature thread, mentions Leader, states Approved or Blocked, includes test counts and review findings.
|
|
36
|
+
- If Approved: Leader is the next agent. If Blocked: Implementation is mentioned with what needs to change.
|
|
37
|
+
- Any small repairs committed to QA's branch with notes in the report.
|
|
38
|
+
|
|
39
|
+
## Procedure
|
|
40
|
+
|
|
41
|
+
1. **Identify what to verify.** Pull the handoff message (commit hash, spec file, files changed). `$ARGUMENTS` may contain the commit hash.
|
|
42
|
+
|
|
43
|
+
2. **Rebuild (or confirm current) test stack.** If in doubt about current state, invoke the `stack-reset` skill. Otherwise:
|
|
14
44
|
```bash
|
|
15
45
|
docker compose up --build -d
|
|
16
46
|
```
|
|
17
|
-
Wait for services
|
|
47
|
+
Wait for all services healthy.
|
|
48
|
+
|
|
49
|
+
3. **Install test dependencies:**
|
|
50
|
+
```bash
|
|
51
|
+
docker exec convo-backend-1 uv sync --group test
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
4. **Run backend tests:**
|
|
55
|
+
```bash
|
|
56
|
+
docker exec convo-backend-1 uv run pytest
|
|
57
|
+
```
|
|
58
|
+
Note pass/fail counts. See Practice for handling the two most common failure patterns (residual-connection storms; uvicorn-not-reloaded runtime smokes).
|
|
18
59
|
|
|
19
|
-
|
|
60
|
+
5. **Check frontend build:**
|
|
20
61
|
```bash
|
|
21
|
-
|
|
62
|
+
docker exec convo-frontend-1 npm run build
|
|
22
63
|
```
|
|
23
64
|
|
|
24
|
-
|
|
65
|
+
For Playwright runs, `PLAYWRIGHT_BASE_URL` MUST be set explicitly on the `docker exec`. Without it, Playwright's config tries to spin its own `webServer` command (`cd ../backend && …`), which fails inside the frontend container. Port table (internal / external):
|
|
66
|
+
|
|
67
|
+
| Stack | Project | Internal | External |
|
|
68
|
+
|---|---|---|---|
|
|
69
|
+
| Impl | `convo-impl` | 5173 | 5180 |
|
|
70
|
+
| QA | `convo-qa` | 5173 | 5190 |
|
|
71
|
+
| Host | `convo` | 5173 | 5173 |
|
|
72
|
+
|
|
25
73
|
```bash
|
|
26
|
-
|
|
74
|
+
docker exec -e PLAYWRIGHT_BASE_URL=http://localhost:5173 convo-qa-frontend-1 npx playwright test frontend/tests/<spec>
|
|
27
75
|
```
|
|
28
|
-
Note pass/fail count and any new failures.
|
|
29
76
|
|
|
30
|
-
**
|
|
77
|
+
**First-time Playwright runs in the QA frontend container require system deps.** `libglib-2.0.so.0` is not pre-installed; once-per-container-lifetime run:
|
|
31
78
|
|
|
32
|
-
5. **Check the frontend build** (if applicable):
|
|
33
79
|
```bash
|
|
34
|
-
|
|
80
|
+
docker exec -u root convo-qa-frontend-1 npx playwright install-deps chromium
|
|
35
81
|
```
|
|
36
82
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
83
|
+
After this the tests can run under the default non-root user. See `stack-reset` practice note for persisting this across rebuilds.
|
|
84
|
+
|
|
85
|
+
6. **Spec compliance review.** Read the changed files against the spec:
|
|
86
|
+
- Does the implementation match spec § 4 / § 5 / § 6?
|
|
87
|
+
- Are there deviations? Are they documented + justified?
|
|
40
88
|
- Were all spec test cases included?
|
|
41
|
-
- Any security concerns (XSS, injection,
|
|
89
|
+
- Any security concerns (XSS, injection, auth bypass, tenant leakage)?
|
|
42
90
|
|
|
43
|
-
7. **Post verification report**
|
|
91
|
+
7. **Post verification report** as a reply in the feature thread, mentioning Leader:
|
|
44
92
|
|
|
45
|
-
```
|
|
46
|
-
Verification complete for [feature] (commit [hash]).
|
|
93
|
+
```
|
|
94
|
+
Verification complete for [feature] (commit [hash]).
|
|
95
|
+
|
|
96
|
+
**Code review:** [Approved / Changes requested]
|
|
97
|
+
- [finding 1]
|
|
98
|
+
- [finding 2]
|
|
47
99
|
|
|
48
|
-
**
|
|
49
|
-
- [
|
|
50
|
-
- [
|
|
100
|
+
**Tests:**
|
|
101
|
+
- Backend: [X passed, Y failed]
|
|
102
|
+
- Frontend build: [clean / errors]
|
|
103
|
+
- New test coverage: [included / missing]
|
|
51
104
|
|
|
52
|
-
**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
105
|
+
**Spec compliance:** [matches / deviations noted]
|
|
106
|
+
|
|
107
|
+
Verdict: **[Approved / Blocked]**
|
|
108
|
+
```
|
|
56
109
|
|
|
57
|
-
**
|
|
110
|
+
8. **If Approved:** mention Leader (ship). **If Blocked:** mention Implementation with specifics of what needs to change.
|
|
58
111
|
|
|
59
|
-
|
|
112
|
+
## Practice
|
|
113
|
+
|
|
114
|
+
**Runtime curl smokes require a backend restart even when the stack doesn't need a rebuild.** `docker exec ... uv run pytest` uses an ASGI test client that loads volume-mounted source directly — tests always run current code. But the live uvicorn process in `convo-qa-backend-1` does NOT hot-reload from the volume mount; it serves whatever source was loaded at container start. When a run has no dep changes / no image rebuild, curl smokes (Q-gates for `/oauth/<route>`, `/api/...`, etc.) MUST be preceded by `docker restart convo-qa-backend-1` (or `docker compose -p convo-qa restart backend`) so uvicorn re-loads updated source. Pytest-green but curl-404 is the telltale symptom — new code is present, uvicorn hasn't read it yet.
|
|
115
|
+
|
|
116
|
+
**~900+ ERRORs at suite start is almost always residual-connection contention.** Live DB connections left from a prior run cause phantom failures. First diagnostic step — not last resort — is a restart:
|
|
117
|
+
```bash
|
|
118
|
+
docker restart convo-qa-backend-1 convo-qa-postgres-1 convo-qa-redis-1
|
|
119
|
+
```
|
|
120
|
+
Wait for health; re-run pytest. If errors persist, investigate fixture setup / session-scoped state. If they vanish, it was residual contention and the suite is clean.
|
|
121
|
+
|
|
122
|
+
**Docs source-only greps must exclude `_build/` binary artifacts.** When running an invariant grep under `docs/site/` (e.g., `grep -rn 'pip install mootup' docs/site/`), add `--include=*.md --include=*.rst --include=*.html` to keep the check source-only. The `_build/` subtree is gitignored but the files exist on disk post-build and contain binary `.doctree`, `.pickle`, `searchindex.js` artifacts that match many plain greps. CLI-1's INV 14 first run flagged 5 `.doctree` binary matches before the filter clarified the source was clean. Pattern:
|
|
123
|
+
```bash
|
|
124
|
+
grep -rn --include='*.md' --include='*.rst' '<pattern>' docs/site/
|
|
60
125
|
```
|
|
61
126
|
|
|
62
|
-
|
|
127
|
+
**Small-repair judgment.** Commit directly when the intended behavior is unambiguous:
|
|
128
|
+
- A test asserts status 400 and the impl returns 500 — fix the impl to 400.
|
|
129
|
+
- A missing null-check that a test covers — add it.
|
|
130
|
+
- An obvious typo in a string literal.
|
|
131
|
+
|
|
132
|
+
Flag and don't fix when judgment is required:
|
|
133
|
+
- "Is this the right error code?" — that's spec territory.
|
|
134
|
+
- "Should this endpoint exist at all?" — Product.
|
|
135
|
+
- "Is the overall approach correct?" — Spec.
|
|
136
|
+
|
|
137
|
+
## Defined terms
|
|
138
|
+
|
|
139
|
+
- **QA stack** — the `convo-qa` docker compose project (see `stack-reset` skill for full definition).
|
|
140
|
+
- **Runtime curl smoke** — tests that hit the live uvicorn endpoint, distinct from pytest's ASGI test client. Requires backend restart to pick up source changes.
|
|
141
|
+
- **Residual-connection contention** — DB / Redis connections left open from a prior run's process, producing ~900+ ERROR cascade at the start of a new test session.
|
|
63
142
|
|
|
64
|
-
9. **Small repairs.** If you find an unambiguous bug during verification (wrong status code, missing validation a test covers, obvious typo), fix it directly — commit to your branch and include the fix in your report. No git-request needed for these. If the fix involves judgment calls or design decisions, flag it instead of fixing.
|
|
@@ -2,42 +2,58 @@
|
|
|
2
2
|
|
|
3
3
|
TODO: Describe your project. What does it do? What problem does it solve?
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Direction
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Tech stack
|
|
7
|
+
### Mission
|
|
10
8
|
|
|
11
|
-
TODO:
|
|
9
|
+
TODO: Why this project exists. What humans + agents accomplish together here.
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
### Values
|
|
14
12
|
|
|
15
|
-
TODO:
|
|
13
|
+
TODO: Operational values that guide code, docs, and decisions.
|
|
16
14
|
|
|
17
|
-
##
|
|
15
|
+
## Operating
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## Agent Workflow
|
|
17
|
+
### Roles
|
|
22
18
|
|
|
23
19
|
{role_count} agents collaborate on this project: {role_list}. They communicate via the Convo shared context server. Pipeline agents use Claude Code. Product coordinates strategy; Leader orchestrates the operational pipeline; Librarian observes asynchronously for docs.
|
|
24
20
|
|
|
25
|
-
### Roles
|
|
26
|
-
|
|
27
21
|
{role_descriptions}
|
|
28
22
|
|
|
29
|
-
###
|
|
23
|
+
### Topology
|
|
30
24
|
|
|
31
25
|
Product handles strategic direction and is operator-facing. Leader handles operational orchestration -- day-to-day git operations, pipeline monitoring, ship coordination. Product makes design decisions; Leader executes.
|
|
32
26
|
|
|
33
|
-
### Observer Role
|
|
34
|
-
|
|
35
27
|
The Librarian is an async observer -- it monitors the pipeline for shipped features and updates documentation, but does not block the main work pipeline. Librarian communicates with Product via a dedicated side thread.
|
|
36
28
|
|
|
37
|
-
### Resource
|
|
29
|
+
### Resource ownership
|
|
38
30
|
|
|
39
31
|
{resource_ownership}
|
|
40
32
|
|
|
41
|
-
|
|
33
|
+
## Project reference
|
|
34
|
+
|
|
35
|
+
### Status
|
|
36
|
+
|
|
37
|
+
TODO: What works, what doesn't. Update as the project evolves.
|
|
38
|
+
|
|
39
|
+
### Tech stack
|
|
40
|
+
|
|
41
|
+
TODO: Language, frameworks, databases, build tools.
|
|
42
|
+
|
|
43
|
+
### Running
|
|
44
|
+
|
|
45
|
+
TODO: How to run the project, run tests, build, deploy.
|
|
46
|
+
|
|
47
|
+
### Code conventions
|
|
48
|
+
|
|
49
|
+
TODO: Formatting, linting, type checking, naming conventions.
|
|
50
|
+
|
|
51
|
+
## Operational practice
|
|
52
|
+
|
|
53
|
+
### Git workflow
|
|
42
54
|
|
|
43
55
|
{git_description}
|
|
56
|
+
|
|
57
|
+
### Handoff discipline
|
|
58
|
+
|
|
59
|
+
TODO: How agents coordinate work -- channel mentions, branch names, merge protocol.
|
|
@@ -36,7 +36,7 @@ Post a status_update confirming you are online."""
|
|
|
36
36
|
name = "leader"
|
|
37
37
|
display_name = "Leader"
|
|
38
38
|
harness = "claude-code"
|
|
39
|
-
model = "
|
|
39
|
+
model = "sonnet"
|
|
40
40
|
theme = "purple"
|
|
41
41
|
responsibilities = """
|
|
42
42
|
Pipeline orchestration. Replies to Product's kickoff with the operational
|
|
@@ -84,7 +84,7 @@ the channel. Post a status_update confirming you are online. Wait for work."""
|
|
|
84
84
|
name = "qa"
|
|
85
85
|
display_name = "QA"
|
|
86
86
|
harness = "claude-code"
|
|
87
|
-
model = "
|
|
87
|
+
model = "sonnet"
|
|
88
88
|
theme = "red"
|
|
89
89
|
responsibilities = """
|
|
90
90
|
Test strategy, test implementation, feature verification. Owns the docker
|
|
@@ -100,7 +100,7 @@ Post a status_update confirming you are online. Wait for work."""
|
|
|
100
100
|
name = "librarian"
|
|
101
101
|
display_name = "Librarian"
|
|
102
102
|
harness = "claude-code"
|
|
103
|
-
model = "
|
|
103
|
+
model = "sonnet"
|
|
104
104
|
theme = "cyan"
|
|
105
105
|
responsibilities = """
|
|
106
106
|
Observer role. Owns docs/design/, docs/arch/, docs/site/, READMEs,
|