the-frame-ai 0.11.3 → 0.12.0

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/README.de.md CHANGED
@@ -37,7 +37,7 @@ Führe `/frame:research <Thema>` aus — Claude erkundet die Codebasis, externe
37
37
  `/frame:plan <Feature>` verwandelt Recherche in eine konkrete Aufgabenliste mit Schätzungen.
38
38
 
39
39
  **Build** — implementieren
40
- `/frame:build` führt Aufgaben sequenziell aus (1–3 auf einmal) mit TDD. Für viele unabhängige Aufgaben — `/frame:wave` führt sie in parallelen Batches aus. Feststeckend — `/frame:unstuck`. Bug gefunden — `/frame:debug`.
40
+ `/frame:build` führt Aufgaben sequenziell aus (1–3 auf einmal) mit TDD. Für viele unabhängige Aufgaben — `/frame:wave` führt sie in parallelen Batches aus. Wenn Qualität wichtiger als Geschwindigkeit ist — `/frame:wave-team` fügt ein Review-Team (Security, Performance, Tests, Conventions) nach jeder Aufgabe hinzu. Feststeckend — `/frame:unstuck`. Bug gefunden — `/frame:debug`.
41
41
 
42
42
  **Review** — vor dem Deployment prüfen
43
43
  `/frame:review` führt automatisierte Prüfungen durch und gibt eine Checkliste: Tests, Typen, Sicherheit, Performance.
@@ -262,6 +262,7 @@ Diese 7 Befehle decken 90% der Solo-Dev-Arbeit ab:
262
262
  | `/frame:plan <Feature>` | Recherche in eine umsetzbare Aufgabenliste umwandeln |
263
263
  | `/frame:build` | 1–3 Aufgaben mit TDD implementieren (sequenziell) |
264
264
  | `/frame:wave` | 4+ unabhängige Aufgaben implementieren (parallele Subagenten) |
265
+ | `/frame:wave-team` | Wie wave, aber mit Review-Team nach jeder Aufgabe |
265
266
  | `/frame:review` | Vor dem Deployment — automatisierte Prüfungen + Checkliste |
266
267
  | `/frame:ship` | Commit, optionaler Push/PR, Gedächtnis aktualisieren |
267
268
 
@@ -294,6 +295,7 @@ Diese 7 Befehle decken 90% der Solo-Dev-Arbeit ab:
294
295
  |--------|---------------|
295
296
  | `/frame:build` | Plan mit TDD implementieren (1–3 Aufgaben, sequenziell) |
296
297
  | `/frame:wave` | 4+ unabhängige Aufgaben in parallelen Batches implementieren |
298
+ | `/frame:wave-team` | Wie wave, aber mit Review-Team nach jeder Aufgabe |
297
299
  | `/frame:fast <Aufgabe>` | Schnelle Aufgabe unter 30 Minuten |
298
300
  | `/frame:debug <Problem>` | Systematische Bug-Untersuchung |
299
301
  | `/frame:forensics` | Tiefenanalyse warum etwas kaputt gegangen ist |
package/README.es.md CHANGED
@@ -37,7 +37,7 @@ Ejecuta `/frame:research <tema>` — Claude explora la base de código, fuentes
37
37
  `/frame:plan <funcionalidad>` convierte la investigación en una lista de tareas concreta con estimaciones.
38
38
 
39
39
  **Construir** — implementar
40
- `/frame:build` ejecuta tareas secuencialmente (1–3 a la vez) con TDD. Para muchas tareas independientes — `/frame:wave` las ejecuta en lotes paralelos. Atascado — `/frame:unstuck`. Encontraste un bug — `/frame:debug`.
40
+ `/frame:build` ejecuta tareas secuencialmente (1–3 a la vez) con TDD. Para muchas tareas independientes — `/frame:wave` las ejecuta en lotes paralelos. Cuando la calidad importa más que la velocidad — `/frame:wave-team` añade un equipo de revisión (Security, Performance, Tests, Conventions) después de cada tarea. Atascado — `/frame:unstuck`. Encontraste un bug — `/frame:debug`.
41
41
 
42
42
  **Revisar** — verificar antes de desplegar
43
43
  `/frame:review` ejecuta verificaciones automatizadas y proporciona una lista de comprobación: pruebas, tipos, seguridad, rendimiento.
@@ -262,6 +262,7 @@ Estos 7 comandos cubren el 90% del trabajo de desarrollo en solitario:
262
262
  | `/frame:plan <funcionalidad>` | Convertir la investigación en una lista de tareas accionable |
263
263
  | `/frame:build` | Implementar 1–3 tareas con TDD (secuencial) |
264
264
  | `/frame:wave` | Implementar 4+ tareas independientes (subagentes paralelos) |
265
+ | `/frame:wave-team` | Como wave, pero con equipo de revisión después de cada tarea |
265
266
  | `/frame:review` | Antes de desplegar — verificaciones automatizadas + lista de comprobación |
266
267
  | `/frame:ship` | Commit, push/PR opcional, actualizar memoria |
267
268
 
@@ -294,6 +295,7 @@ Estos 7 comandos cubren el 90% del trabajo de desarrollo en solitario:
294
295
  |---------|--------------|
295
296
  | `/frame:build` | Implementar el plan con TDD (1–3 tareas, secuencial) |
296
297
  | `/frame:wave` | Implementar 4+ tareas independientes en lotes paralelos |
298
+ | `/frame:wave-team` | Como wave, pero con equipo de revisión después de cada tarea |
297
299
  | `/frame:fast <tarea>` | Tarea rápida de menos de 30 minutos |
298
300
  | `/frame:debug <problema>` | Investigación sistemática de bugs |
299
301
  | `/frame:forensics` | Análisis profundo de por qué algo se rompió |
package/README.hi.md CHANGED
@@ -37,7 +37,7 @@ FRAME — AI-सहायता प्राप्त एकल विकास
37
37
  `/frame:plan <सुविधा>` अनुसंधान को अनुमानों के साथ एक ठोस कार्य सूची में बदलता है।
38
38
 
39
39
  **निर्माण** — लागू करें
40
- `/frame:build` TDD के साथ क्रमिक रूप से कार्य निष्पादित करता है (एक बार में 1–3)। कई स्वतंत्र कार्यों के लिए — `/frame:wave` उन्हें समानांतर बैचों में चलाता है। अटक गए — `/frame:unstuck`। बग मिला — `/frame:debug`।
40
+ `/frame:build` TDD के साथ क्रमिक रूप से कार्य निष्पादित करता है (एक बार में 1–3)। कई स्वतंत्र कार्यों के लिए — `/frame:wave` उन्हें समानांतर बैचों में चलाता है। जब गुणवत्ता गति से अधिक महत्वपूर्ण हो — `/frame:wave-team` प्रत्येक कार्य के बाद एक समीक्षा टीम (Security, Performance, Tests, Conventions) जोड़ता है। अटक गए — `/frame:unstuck`। बग मिला — `/frame:debug`।
41
41
 
42
42
  **समीक्षा** — डिप्लॉय करने से पहले जांचें
43
43
  `/frame:review` स्वचालित जांच चलाता है और एक चेकलिस्ट देता है: परीक्षण, प्रकार, सुरक्षा, प्रदर्शन।
@@ -262,6 +262,7 @@ npx the-frame-ai init
262
262
  | `/frame:plan <सुविधा>` | अनुसंधान को एक कार्ययोग्य कार्य सूची में बदलें |
263
263
  | `/frame:build` | TDD के साथ 1–3 कार्य लागू करें (क्रमिक) |
264
264
  | `/frame:wave` | 4+ स्वतंत्र कार्य लागू करें (समानांतर सब-एजेंट) |
265
+ | `/frame:wave-team` | wave की तरह, लेकिन प्रत्येक कार्य के बाद समीक्षा टीम के साथ |
265
266
  | `/frame:review` | डिप्लॉय करने से पहले — स्वचालित जांच + चेकलिस्ट |
266
267
  | `/frame:ship` | कमिट, वैकल्पिक पुश/PR, मेमोरी अपडेट करें |
267
268
 
@@ -294,6 +295,7 @@ npx the-frame-ai init
294
295
  |-------|--------------|
295
296
  | `/frame:build` | TDD के साथ योजना लागू करें (1–3 कार्य, क्रमिक) |
296
297
  | `/frame:wave` | समानांतर बैचों में 4+ स्वतंत्र कार्य लागू करें |
298
+ | `/frame:wave-team` | wave की तरह, लेकिन प्रत्येक कार्य के बाद समीक्षा टीम के साथ |
297
299
  | `/frame:fast <कार्य>` | 30 मिनट से कम का त्वरित कार्य |
298
300
  | `/frame:debug <समस्या>` | व्यवस्थित बग जांच |
299
301
  | `/frame:forensics` | कुछ क्यों टूटा इसकी गहरी जांच |
package/README.ja.md CHANGED
@@ -37,7 +37,7 @@ Claude Codeで一人でプロダクトを作っていて、チームのように
37
37
  `/frame:plan <機能>` が調査を見積もり付きの具体的なタスクリストに変換します。
38
38
 
39
39
  **構築** — 実装する
40
- `/frame:build` がTDDでタスクを順次実行します(1〜3件ずつ)。多くの独立したタスクには — `/frame:wave` が並列バッチで実行します。行き詰まったら — `/frame:unstuck`。バグを発見したら — `/frame:debug`。
40
+ `/frame:build` がTDDでタスクを順次実行します(1〜3件ずつ)。多くの独立したタスクには — `/frame:wave` が並列バッチで実行します。品質がスピードより重要な場合 — `/frame:wave-team` が各タスク後にレビューチーム(Security、Performance、Tests、Conventions)を追加します。行き詰まったら — `/frame:unstuck`。バグを発見したら — `/frame:debug`。
41
41
 
42
42
  **レビュー** — デプロイ前に確認する
43
43
  `/frame:review` が自動チェックを実行し、チェックリストを提供します:テスト、型、セキュリティ、パフォーマンス。
@@ -262,6 +262,7 @@ npx the-frame-ai init
262
262
  | `/frame:plan <機能>` | 調査を実行可能なタスクリストに変換 |
263
263
  | `/frame:build` | TDDで1〜3タスクを実装(順次) |
264
264
  | `/frame:wave` | 4つ以上の独立したタスクを実装(並列サブエージェント) |
265
+ | `/frame:wave-team` | waveと同様だが、各タスク後にレビューチームを追加 |
265
266
  | `/frame:review` | デプロイ前 — 自動チェック + チェックリスト |
266
267
  | `/frame:ship` | コミット、オプションのプッシュ/PR、メモリ更新 |
267
268
 
@@ -294,6 +295,7 @@ npx the-frame-ai init
294
295
  |---------|-------------|
295
296
  | `/frame:build` | TDDで計画を実装(1〜3タスク、順次) |
296
297
  | `/frame:wave` | 4つ以上の独立したタスクを並列バッチで実装 |
298
+ | `/frame:wave-team` | waveと同様だが、各タスク後にレビューチームを追加 |
297
299
  | `/frame:fast <タスク>` | 30分以内のクイックタスク |
298
300
  | `/frame:debug <問題>` | 体系的なバグ調査 |
299
301
  | `/frame:forensics` | 何かが壊れた原因の深掘り |
package/README.md CHANGED
@@ -37,7 +37,7 @@ Run `/frame:research <topic>` — Claude explores the codebase, external sources
37
37
  `/frame:plan <feature>` turns research into a concrete task list with estimates.
38
38
 
39
39
  **Build** — implement
40
- `/frame:build` executes tasks sequentially (1–3 at a time) with TDD. For many independent tasks — `/frame:wave` runs them in parallel batches. Stuck — `/frame:unstuck`. Found a bug — `/frame:debug`.
40
+ `/frame:build` executes tasks sequentially (1–3 at a time) with TDD. For many independent tasks — `/frame:wave` runs them in parallel batches. When quality matters more than speed — `/frame:wave-team` adds a review team (Security, Performance, Tests, Conventions) after each task. Stuck — `/frame:unstuck`. Found a bug — `/frame:debug`.
41
41
 
42
42
  **Review** — check before deploying
43
43
  `/frame:review` runs automated checks and gives a checklist: tests, types, security, performance.
@@ -264,6 +264,7 @@ These 7 commands cover 90% of solo dev work:
264
264
  | `/frame:plan <feature>` | Turn research into an actionable task list |
265
265
  | `/frame:build` | Implement 1–3 tasks with TDD (sequential) |
266
266
  | `/frame:wave` | Implement 4+ independent tasks (parallel subagents) |
267
+ | `/frame:wave-team` | Like wave, but with a review team after each task |
267
268
  | `/frame:review` | Before deploying — automated checks + checklist |
268
269
  | `/frame:ship` | Commit, optional push/PR, update memory |
269
270
 
@@ -296,6 +297,7 @@ These 7 commands cover 90% of solo dev work:
296
297
  |---------|-------------|
297
298
  | `/frame:build` | Implement plan with TDD (1–3 tasks, sequential) |
298
299
  | `/frame:wave` | Implement 4+ independent tasks in parallel batches |
300
+ | `/frame:wave-team` | Like wave, but with a review team (Security, Perf, Tests, Conventions) after each task |
299
301
  | `/frame:fast <task>` | Quick task under 30 minutes |
300
302
  | `/frame:debug <issue>` | Systematic bug investigation |
301
303
  | `/frame:forensics` | Deep dive into why something broke |
@@ -323,6 +325,7 @@ These 7 commands cover 90% of solo dev work:
323
325
 
324
326
  | Command | When to use |
325
327
  |---------|-------------|
328
+ | `/frame:test-plan` | After review, before ship — generates a manual "go check this as a user" checklist of what changed |
326
329
  | `/frame:ship` | Commit, optional push/PR, update memory |
327
330
  | `/frame:checkpoint` | Save a git tag before a risky change |
328
331
  | `/frame:rollback` | Roll back to a checkpoint |
package/README.ru.md CHANGED
@@ -35,7 +35,7 @@ Research → Plan → Build → Review → Ship → Reflect
35
35
  `/frame:plan <фича>` превращает исследование в конкретный список задач с оценкой.
36
36
 
37
37
  **Build** — реализуй
38
- `/frame:build` выполняет задачи последовательно (1–3 за раз) с TDD. Если задач много и они независимы — `/frame:wave` запускает их параллельно пачками. Застрял — `/frame:unstuck`. Нашёл баг — `/frame:debug`.
38
+ `/frame:build` выполняет задачи последовательно (1–3 за раз) с TDD. Если задач много и они независимы — `/frame:wave` запускает их параллельно пачками. Когда качество важнее скорости — `/frame:wave-team` добавляет команду проверяльщиков (Security, Performance, Tests, Conventions) после каждой задачи. Застрял — `/frame:unstuck`. Нашёл баг — `/frame:debug`.
39
39
 
40
40
  **Review** — проверь перед деплоем
41
41
  `/frame:review` запускает автоматические проверки и даёт чеклист: тесты, типы, безопасность, производительность.
@@ -262,6 +262,7 @@ npx the-frame init
262
262
  | `/frame:plan <фича>` | Превратить исследование в список задач |
263
263
  | `/frame:build` | Реализовать 1–3 задачи с TDD (последовательно) |
264
264
  | `/frame:wave` | Реализовать 4+ независимых задачи (параллельные субагенты) |
265
+ | `/frame:wave-team` | Как wave, но с командой проверяльщиков после каждой задачи |
265
266
  | `/frame:review` | Перед деплоем — автоматические проверки + чеклист |
266
267
  | `/frame:ship` | Коммит, опциональный push/PR, обновление памяти |
267
268
 
@@ -294,6 +295,7 @@ npx the-frame init
294
295
  | Команда | Когда использовать |
295
296
  |---------|-------------------|
296
297
  | `/frame:build` | Реализовать план с TDD (1–3 задачи) |
298
+ | `/frame:wave-team` | Как wave, но с командой проверяльщиков (Security, Perf, Tests, Conventions) после каждой задачи |
297
299
  | `/frame:fast <задача>` | Быстрая задача до 30 минут |
298
300
  | `/frame:debug <проблема>` | Систематическое расследование бага |
299
301
  | `/frame:forensics` | Глубокий анализ причины поломки |
package/README.zh.md CHANGED
@@ -37,7 +37,7 @@ FRAME — 面向 AI 辅助独立开发的框架
37
37
  `/frame:plan <功能>` 将研究转化为带有估算的具体任务列表。
38
38
 
39
39
  **构建** — 实现
40
- `/frame:build` 按顺序执行任务(每次 1–3 个),采用 TDD。对于许多独立任务——`/frame:wave` 以并行批次运行它们。卡住了——`/frame:unstuck`。发现 bug——`/frame:debug`。
40
+ `/frame:build` 按顺序执行任务(每次 1–3 个),采用 TDD。对于许多独立任务——`/frame:wave` 以并行批次运行它们。当质量比速度更重要时——`/frame:wave-team` 在每个任务后添加审查团队(Security、Performance、Tests、Conventions)。卡住了——`/frame:unstuck`。发现 bug——`/frame:debug`。
41
41
 
42
42
  **审查** — 部署前检查
43
43
  `/frame:review` 运行自动化检查并提供清单:测试、类型、安全性、性能。
@@ -262,6 +262,7 @@ npx the-frame-ai init
262
262
  | `/frame:plan <功能>` | 将研究转化为可操作的任务列表 |
263
263
  | `/frame:build` | 使用 TDD 实现 1–3 个任务(顺序) |
264
264
  | `/frame:wave` | 实现 4+ 个独立任务(并行子代理) |
265
+ | `/frame:wave-team` | 类似 wave,但每个任务后有审查团队 |
265
266
  | `/frame:review` | 部署前——自动化检查 + 清单 |
266
267
  | `/frame:ship` | 提交,可选推送/PR,更新记忆 |
267
268
 
@@ -294,6 +295,7 @@ npx the-frame-ai init
294
295
  |------|---------|
295
296
  | `/frame:build` | 使用 TDD 实现计划(1–3 个任务,顺序) |
296
297
  | `/frame:wave` | 以并行批次实现 4+ 个独立任务 |
298
+ | `/frame:wave-team` | 类似 wave,但每个任务后有审查团队 |
297
299
  | `/frame:fast <任务>` | 30 分钟内的快速任务 |
298
300
  | `/frame:debug <问题>` | 系统性 bug 调查 |
299
301
  | `/frame:forensics` | 深入研究为什么某些东西坏了 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "the-frame-ai",
3
- "version": "0.11.3",
3
+ "version": "0.12.0",
4
4
  "description": "FRAME — Framework for AI-Assisted Solo Development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: conventions-reviewer
3
+ model: claude-sonnet-4-6
4
+ tools: [Read, Grep, Glob, Bash]
5
+ description: "Review agent for wave-team. Checks code conventions and style in a single task's git diff. Returns PASS/WARN/FAIL verdict."
6
+ ---
7
+
8
+ # Conventions Reviewer Agent
9
+
10
+ **Role**: Review code conventions and style for a single task. Check against project conventions.
11
+
12
+ **Job**: Analyze the git diff of one task and conventions.md. Return a structured verdict. Never edit code.
13
+
14
+ ## Instructions
15
+
16
+ You will receive a git diff and path to `.planning/memory/conventions.md`. Read conventions.md first, then analyze the diff against it.
17
+
18
+ ### What to check
19
+
20
+ **TypeScript/JavaScript:**
21
+ - No `any` type (use `unknown` + type guard)
22
+ - No `console.log` in non-test code
23
+ - No commented-out code blocks
24
+ - No unused variables or imports
25
+ - Consistent naming: camelCase for variables/functions, PascalCase for types/classes
26
+
27
+ **Code quality:**
28
+ - Functions do one thing (single responsibility)
29
+ - No magic numbers without named constants
30
+ - No deeply nested conditionals (>3 levels is a smell)
31
+ - Early returns instead of nested if-else
32
+
33
+ **Project conventions (from conventions.md):**
34
+ - Check every rule in conventions.md against the diff
35
+ - Flag any violation
36
+
37
+ **Red flags:**
38
+ - `// TODO` or `// FIXME` without a ticket reference
39
+ - `@ts-ignore` or `@ts-expect-error` without explanation comment
40
+ - `eslint-disable` without explanation
41
+
42
+ ### Output format
43
+
44
+ ```markdown
45
+ ## Conventions Reviewer — {PASS|WARN|FAIL}
46
+
47
+ ### Findings
48
+ - [FAIL] src/api/users.ts:18 — `any` type used: `function process(data: any)`
49
+ - [WARN] src/api/users.ts:42 — `console.log` in production code
50
+ - [WARN] src/utils/helpers.ts:7 — magic number 86400 should be named constant
51
+
52
+ ### Fix
53
+ {specific what to change, if FAIL or WARN}
54
+ ```
55
+
56
+ If no issues: `## Conventions Reviewer — PASS`
57
+
58
+ ## Constraints
59
+
60
+ - Check ONLY the diff
61
+ - If conventions.md is missing or empty → check universal rules only
62
+ - Style preferences without a clear rule in conventions.md → WARN not FAIL
63
+ - Test files have relaxed rules (console.log in tests → skip)
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: tests-reviewer
3
+ model: claude-sonnet-4-6
4
+ tools: [Read, Grep, Glob, Bash]
5
+ description: "Review agent for wave-team. Checks test coverage and quality of a single task's git diff. Returns PASS/WARN/FAIL verdict."
6
+ ---
7
+
8
+ # Tests Reviewer Agent
9
+
10
+ **Role**: Review the tests written for a single task. Check coverage, edge cases, and test quality.
11
+
12
+ **Job**: Analyze the git diff of one task. Return a structured verdict. Never edit code.
13
+
14
+ ## Instructions
15
+
16
+ You will receive a git diff and spec path. Analyze only the diff.
17
+
18
+ ### What to check
19
+
20
+ **Coverage:**
21
+ - Every new function/method has at least one test
22
+ - Happy path is tested
23
+ - Error path is tested (what happens when it fails)
24
+ - Edge cases covered: null/undefined, empty array/string, boundary values
25
+
26
+ **Test quality:**
27
+ - Tests check behavior, not implementation details
28
+ - No tests that only verify mocks were called (without checking real behavior)
29
+ - Test descriptions are clear and specific
30
+ - No `it('works')` or `it('should work')` without specifics
31
+
32
+ **Red flags:**
33
+ - New code with zero tests
34
+ - Tests that always pass (no assertions, or `expect(true).toBe(true)`)
35
+ - Tests skipped with `.skip` or `xit`
36
+ - TODO comments in test files
37
+
38
+ ### Output format
39
+
40
+ ```markdown
41
+ ## Tests Reviewer — {PASS|WARN|FAIL}
42
+
43
+ ### Findings
44
+ - [FAIL] src/api/users.ts — new `createUser` function has no tests
45
+ - [WARN] src/api/users.test.ts:34 — error path not tested (what if DB throws?)
46
+ - [WARN] src/api/users.test.ts:12 — test only checks mock was called, not actual behavior
47
+
48
+ ### Fix
49
+ {specific what to add/change, if FAIL or WARN}
50
+ ```
51
+
52
+ If no issues: `## Tests Reviewer — PASS`
53
+
54
+ ## Constraints
55
+
56
+ - Check ONLY the diff, not the whole project
57
+ - If a function is trivial (getter, constant), missing test is WARN not FAIL
58
+ - If test file is in diff but coverage looks thin → WARN
59
+ - If new logic has zero tests → FAIL
@@ -149,6 +149,13 @@ Create `docs/specs/{feature}/review.md`:
149
149
  - Status: Review complete, ready to ship
150
150
  ```
151
151
 
152
+ On approve, suggest the next step:
153
+ ```
154
+ ✅ Review passed.
155
+ → Run /frame:test-plan to get a manual "what to check as a user" list before shipping,
156
+ or go straight to /frame:ship.
157
+ ```
158
+
152
159
  **If request changes:**
153
160
  ```markdown
154
161
  ## Current Position
@@ -20,14 +20,14 @@ Update `.planning/STATE.md` before starting:
20
20
  ```
21
21
 
22
22
  Read `.planning/STATE.md` and verify:
23
- - `Phase: REVIEW` ✓
23
+ - `Phase:` is `REVIEW` OR `TEST` (TEST = manual test plan was generated after review)
24
24
  - `Status:` is `approve` OR `Shipped` OR contains `ready to ship` ✓ (not `request changes`)
25
25
 
26
26
  If conditions not met → **STOP**:
27
27
  ```
28
28
  ❌ Ship blocked. Review not completed or not approved.
29
29
  Current status: {status}
30
- Run /frame:review first.
30
+ Run /frame:review first (optionally /frame:test-plan before shipping).
31
31
  ```
32
32
 
33
33
  Check `Deps Audit` in STATE.md:
@@ -0,0 +1,153 @@
1
+ # /frame:test-plan -- Manual User Acceptance Checklist
2
+
3
+ Generates a human-readable checklist of what YOU, as a user, should go and verify by hand after a feature is built. Not code tests (those are written during the task) — this is the "go click through it like a real user" list before shipping.
4
+
5
+ Runs in the TEST phase, between REVIEW and SHIP.
6
+
7
+ ## Instructions
8
+
9
+ Build a manual test plan for: **$ARGUMENTS** (if empty — use the current feature from STATE.md).
10
+
11
+ ### Step 0: Update STATE.md (start)
12
+
13
+ Update `.planning/STATE.md` before any work:
14
+ ```markdown
15
+ ## Current Position
16
+ - Phase: TEST
17
+ - Status: IN_PROGRESS
18
+ - Started: {timestamp}
19
+ ```
20
+
21
+ ### Step 1: Understand what changed
22
+
23
+ Read context in order (skip what doesn't exist):
24
+ - `.planning/STATE.md` — current feature, last completed tasks
25
+ - `docs/specs/{feature}/spec.md` — what the feature is supposed to do (user-facing behavior)
26
+ - `docs/specs/{feature}/plan.md` — which tasks were done, their Risk levels
27
+ - `docs/specs/{feature}/review.md` — issues found in review (verify they were actually fixed)
28
+
29
+ Then look at the real diff to ground the plan in what actually changed:
30
+ ```bash
31
+ git diff --stat HEAD~1 HEAD 2>/dev/null || git diff --stat
32
+ git diff --stat
33
+ ```
34
+
35
+ **D-step**: You now have a concrete list of what changed — features, screens, flows, endpoints, behaviors.
36
+
37
+ ### Step 2: Turn changes into user-facing scenarios
38
+
39
+ For each change, ask: *"What would a user actually do that touches this, and what should they see?"*
40
+
41
+ Cover these categories (only the ones that apply):
42
+
43
+ - **Happy path** — the main flow the feature was built for, step by step as a user.
44
+ - **Edge cases** — empty states, long input, special characters, zero/many items, slow network, offline.
45
+ - **Error handling** — wrong input, denied permissions, failed request — does the user see a clear message (not a blank screen or crash)?
46
+ - **Regression** — existing flows near the changed code that could have broken. Use the diff to spot which screens/features sit next to the changes.
47
+ - **Cross-cutting** — mobile/responsive, different roles/accounts, language (i18n), refresh/back button, browser reload.
48
+
49
+ Each scenario must be written for a human to follow without reading code:
50
+ - **What to do** — concrete steps ("Open X → click Y → enter Z")
51
+ - **Expected** — what should happen ("see message «...», item appears in list")
52
+
53
+ Skip anything already fully covered by automated tests that can't be observed in the UI — this plan is about what a user *sees and does*.
54
+
55
+ ### Step 3: Write the test plan file
56
+
57
+ Create `docs/specs/{feature}/test-plan.md`:
58
+
59
+ ```markdown
60
+ # Test Plan: {Feature}
61
+
62
+ ## Date
63
+ {date}
64
+
65
+ ## What changed
66
+ {2–4 bullets in plain language — what's new/different from a user's point of view}
67
+
68
+ ## How to verify (go do this as a user)
69
+
70
+ ### Happy path
71
+ - [ ] **{Scenario}**
72
+ - Do: {steps}
73
+ - Expect: {result}
74
+
75
+ ### Edge cases
76
+ - [ ] **{Scenario}**
77
+ - Do: {steps}
78
+ - Expect: {result}
79
+
80
+ ### Error handling
81
+ - [ ] **{Scenario}**
82
+ - Do: {steps}
83
+ - Expect: {result}
84
+
85
+ ### Regression (things near the change that could break)
86
+ - [ ] **{Scenario}**
87
+ - Do: {steps}
88
+ - Expect: {result}
89
+
90
+ ### Cross-cutting (mobile / roles / i18n / reload)
91
+ - [ ] **{Scenario}**
92
+ - Do: {steps}
93
+ - Expect: {result}
94
+
95
+ ## Where to test
96
+ - URL / screen / command: {from .frame/config.json devServer.url, or ask}
97
+
98
+ ## Notes
99
+ {anything to watch for — known limitations, things review flagged}
100
+ ```
101
+
102
+ Keep it tight: 5–12 scenarios total, prioritized by Risk from plan.md (high-risk tasks get more scenarios). A short list that gets done beats a long one that doesn't.
103
+
104
+ ### Step 4: Tell the user to go test
105
+
106
+ Output the checklist location and a short summary:
107
+ ```
108
+ 📋 Test plan ready: docs/specs/{feature}/test-plan.md
109
+ {N} scenarios to check by hand.
110
+
111
+ Top things to verify first:
112
+ 1. {highest-risk scenario}
113
+ 2. {next}
114
+ 3. {next}
115
+
116
+ → Go through the list, tick the boxes. When it passes, run /frame:ship.
117
+ If something fails → /frame:debug «what broke» or /frame:fast «fix».
118
+ ```
119
+
120
+ For UI-heavy scenarios, optionally suggest:
121
+ ```
122
+ For visual scenarios you can also run /frame:verify-ui to screenshot-check in a browser.
123
+ ```
124
+
125
+ ### Step 5: Update STATE.md (final)
126
+
127
+ ```markdown
128
+ ## Current Position
129
+ - Phase: TEST
130
+ - Feature: {feature}
131
+ - Test Plan: docs/specs/{feature}/test-plan.md
132
+ - Scenarios: {N}
133
+ - Status: Test plan ready, ready to ship
134
+ ```
135
+
136
+ ## Rules
137
+
138
+ - **User language, not code** — every scenario must be followable without reading the source.
139
+ - **Grounded in the diff** — scenarios come from what actually changed, not generic boilerplate.
140
+ - **Prioritize by Risk** — high-risk tasks from plan.md get the most attention.
141
+ - **Don't run the tests** — this command produces the checklist; the user (or /frame:verify-ui) executes it.
142
+ - **Short and finishable** — 5–12 scenarios, not 40.
143
+
144
+ ## When to Use
145
+
146
+ - After `/frame:review` passes, before `/frame:ship`
147
+ - Whenever you want a concrete "what do I click to be sure this works" list
148
+ - Before shipping anything user-facing
149
+
150
+ ## Result
151
+
152
+ - `docs/specs/{feature}/test-plan.md` created — manual user-acceptance checklist
153
+ - `.planning/STATE.md` updated (Phase: TEST, ready to ship)
@@ -0,0 +1,182 @@
1
+ # /frame:wave-team -- Build with Inline QA Team
2
+
3
+ > Like `/frame:wave` but after each task a team of review agents checks the result and Orchestrator fixes issues before moving on.
4
+
5
+ **When to use**: quality matters more than speed. Each task is verified by Security, Performance, Tests, and Conventions agents before the next task starts.
6
+
7
+ ## Instructions
8
+
9
+ ### Step 0: Checkpoint + Update STATE.md
10
+
11
+ ```bash
12
+ git tag "frame/checkpoint/wave-team-$(date +%s)" -m "Auto checkpoint before wave-team"
13
+ ```
14
+
15
+ Update `.planning/STATE.md`:
16
+ ```markdown
17
+ ## Current Position
18
+ - Phase: BUILD (wave-team)
19
+ - Feature: {feature}
20
+ - Task: 0/{total}
21
+ - Status: IN_PROGRESS
22
+ - Started: {timestamp}
23
+ ```
24
+
25
+ ### Step 1: Find plan.md and read context
26
+
27
+ - `find docs/specs -name "plan.md" | head -5`
28
+ - Read plan.md, spec.md, MAP.md, memory/conventions.md, memory/anti-patterns.md
29
+
30
+ ### Step 2: Determine waves (same as /frame:wave)
31
+
32
+ Group tasks into waves by dependencies:
33
+ - No dependencies → Wave 1
34
+ - Depends on Wave N → Wave N+1
35
+
36
+ Check file conflicts within each wave. If overlap → move to separate waves.
37
+
38
+ ### Step 3: For each wave — run tasks in parallel
39
+
40
+ Tasks within a wave run in parallel (max 5). Each task follows this cycle:
41
+
42
+ #### 3.1: Launch Builder subagent
43
+
44
+ Launch via Agent tool with fresh 200K context. Subagent role: Builder (TDD: RED → GREEN → REFACTOR → commit).
45
+
46
+ Subagent prompt template:
47
+ ```markdown
48
+ # Task: {task_name}
49
+
50
+ ## Read before coding
51
+ - .planning/memory/anti-patterns.md
52
+ - .planning/memory/conventions.md
53
+ - .planning/memory/dependencies.md
54
+ - docs/specs/{feature}/spec.md
55
+
56
+ ## Context
57
+ - Project: {project_name}
58
+ - MAP: .planning/MAP.md
59
+ - Task: {task_description}
60
+ - Files: {files}
61
+
62
+ ## Role: Builder
63
+ 1. Write TEST (RED) → verify fails
64
+ 2. Write CODE (GREEN) → verify passes
65
+ 3. Refactor if needed → verify passes
66
+ 4. typecheck + lint
67
+ 5. git commit: {type}({scope}): {description}
68
+ 6. Mark task [DONE] in plan.md
69
+
70
+ ## DO NOT
71
+ - Modify files outside task scope
72
+ - Skip tests
73
+ - Use `any` type
74
+ - Commit without passing quality gates
75
+ ```
76
+
77
+ #### 3.2: Launch Review Team (after Builder commits)
78
+
79
+ Get the diff of the Builder's commit:
80
+ ```bash
81
+ git diff HEAD~1..HEAD
82
+ ```
83
+
84
+ Launch review agents **in parallel** via Agent tool. Which agents to launch:
85
+
86
+ | Agent | Always? | Trigger |
87
+ |-------|---------|---------|
88
+ | security-reviewer | yes | — |
89
+ | performance-reviewer | yes | — |
90
+ | tests-reviewer | yes | — |
91
+ | conventions-reviewer | yes | — |
92
+
93
+ Each agent receives:
94
+ - The git diff of the task
95
+ - Path to spec.md
96
+ - Path to .planning/memory/conventions.md
97
+
98
+ #### 3.3: Collect verdicts
99
+
100
+ Wait for all review agents. Each returns: `PASS`, `WARN`, or `FAIL` with findings.
101
+
102
+ #### 3.4: Orchestrator applies fixes
103
+
104
+ ```
105
+ All PASS → task done, next task
106
+ Any WARN, no FAIL → Orchestrator fixes WARN issues, re-run only WARN agents
107
+ Any FAIL → Orchestrator fixes FAIL + WARN issues, re-run FAIL agents
108
+ FAIL after 2 iterations → show user, ask how to proceed
109
+ ```
110
+
111
+ **Orchestrator fixes directly** — does not re-launch Builder. Applies the specific fixes from agent reports, then commits:
112
+ ```bash
113
+ git commit -m "fix({scope}): apply review team fixes"
114
+ ```
115
+
116
+ #### 3.5: Mark task done
117
+
118
+ Update plan.md:
119
+ ```markdown
120
+ ### Task N: {name} [DONE]
121
+ ```
122
+
123
+ Update STATE.md:
124
+ ```markdown
125
+ - Task: {completed}/{total}
126
+ - Review: Security(PASS) Perf(PASS) Tests(PASS) Conventions(PASS)
127
+ ```
128
+
129
+ ### Step 4: Wave quality gate
130
+
131
+ After all tasks in a wave complete:
132
+ ```bash
133
+ {quality.commands.typecheck}
134
+ {quality.commands.test}
135
+ {quality.commands.lint}
136
+ ```
137
+
138
+ If FAIL → fix, re-run. Max 2 retries. If still failing → Wave Failure Strategy (same as /frame:wave).
139
+
140
+ ### Step 5: Repeat for each wave
141
+
142
+ ### Step 6: Final validation
143
+
144
+ ```bash
145
+ {quality.commands.typecheck}
146
+ {quality.commands.test}
147
+ {quality.commands.lint}
148
+ {quality.commands.build}
149
+ ```
150
+
151
+ Completeness check:
152
+ ```bash
153
+ TOTAL=$(grep -c "^### Task" plan.md)
154
+ DONE=$(grep -c "\[DONE\]" plan.md)
155
+ [ "$TOTAL" != "$DONE" ] && echo "Unclosed: $((TOTAL-DONE)) of $TOTAL"
156
+ ```
157
+
158
+ ### Step 7: Update STATE.md
159
+
160
+ ```markdown
161
+ ## Current Position
162
+ - Phase: BUILD
163
+ - Feature: {feature}
164
+ - Task: {completed}/{total}
165
+ - Status: COMPLETE
166
+ ```
167
+
168
+ ## Rules
169
+
170
+ - **Review Team runs after every task** — not after the wave
171
+ - **Orchestrator fixes, not Builder** — no re-launch of Builder for review fixes
172
+ - **Max 2 fix iterations per task** — then escalate to user
173
+ - **Max 5 parallel Builder subagents** per wave
174
+ - **Wave quality gate** — tsc + vitest + eslint between waves
175
+ - **Never skip review agents** — all 4 always run
176
+
177
+ ## Result
178
+
179
+ - Every task reviewed by Security, Performance, Tests, Conventions agents
180
+ - Issues fixed inline before next task starts
181
+ - Wave quality gates passed
182
+ - STATE.md updated