the-frame-ai 0.11.3 → 0.11.4
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 +3 -1
- package/README.es.md +3 -1
- package/README.hi.md +3 -1
- package/README.ja.md +3 -1
- package/README.md +3 -1
- package/README.ru.md +3 -1
- package/README.zh.md +3 -1
- package/package.json +1 -1
- package/templates/agents/conventions-reviewer.md +63 -0
- package/templates/agents/tests-reviewer.md +59 -0
- package/templates/commands/frame:wave-team.md +182 -0
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`
|
|
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 |
|
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`
|
|
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
|
@@ -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
|
|
@@ -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
|