Compare commits
No commits in common. "main" and "v0.28.0-alpha.1" have entirely different histories.
main
...
v0.28.0-al
21
.github/workflows/cc-resolve.yml
vendored
21
.github/workflows/cc-resolve.yml
vendored
@ -57,9 +57,7 @@ jobs:
|
|||||||
id: merge
|
id: merge
|
||||||
run: |
|
run: |
|
||||||
git fetch origin main
|
git fetch origin main
|
||||||
# --no-commit --no-ff: コンフリクトの有無にかかわらず常にマージ状態を保持する
|
if git merge origin/main --no-edit 2>/dev/null; then
|
||||||
# これにより最後の git commit が必ずマージコミット(親2つ)を作る
|
|
||||||
if git merge --no-commit --no-ff origin/main 2>/dev/null; then
|
|
||||||
echo "conflicts=false" >> "$GITHUB_OUTPUT"
|
echo "conflicts=false" >> "$GITHUB_OUTPUT"
|
||||||
else
|
else
|
||||||
echo "conflicts=true" >> "$GITHUB_OUTPUT"
|
echo "conflicts=true" >> "$GITHUB_OUTPUT"
|
||||||
@ -226,8 +224,6 @@ jobs:
|
|||||||
- 「とりあえず片方」で全ファイルを一括解決しない
|
- 「とりあえず片方」で全ファイルを一括解決しない
|
||||||
- コンフリクトマーカー (`<<<<<<<`) が残ったままにしない
|
- コンフリクトマーカー (`<<<<<<<`) が残ったままにしない
|
||||||
- `git merge --abort` を実行しない
|
- `git merge --abort` を実行しない
|
||||||
- `git reset` を実行しない(MERGE_HEAD が消えてマージコミットが作れなくなる)
|
|
||||||
- `.git/MERGE_HEAD` を保持したまま作業すること
|
|
||||||
PROMPT
|
PROMPT
|
||||||
)" --verbose
|
)" --verbose
|
||||||
env:
|
env:
|
||||||
@ -237,29 +233,16 @@ jobs:
|
|||||||
- name: Commit and push
|
- name: Commit and push
|
||||||
run: |
|
run: |
|
||||||
git add -A
|
git add -A
|
||||||
# MERGE_HEAD があればマージコミット、なければ通常コミット
|
if ! git diff --cached --quiet; then
|
||||||
if [ -f .git/MERGE_HEAD ]; then
|
|
||||||
git commit -m "merge: integrate main into PR branch"
|
|
||||||
elif ! git diff --cached --quiet; then
|
|
||||||
git commit -m "fix: resolve merge conflicts"
|
git commit -m "fix: resolve merge conflicts"
|
||||||
fi
|
fi
|
||||||
AHEAD=$(git rev-list --count origin/${{ steps.pr.outputs.branch }}..HEAD 2>/dev/null || echo "0")
|
AHEAD=$(git rev-list --count origin/${{ steps.pr.outputs.branch }}..HEAD 2>/dev/null || echo "0")
|
||||||
if [ "$AHEAD" -gt 0 ]; then
|
if [ "$AHEAD" -gt 0 ]; then
|
||||||
echo "Pushing $AHEAD commit(s)"
|
echo "Pushing $AHEAD commit(s)"
|
||||||
git push
|
git push
|
||||||
echo "pushed=true" >> "$GITHUB_OUTPUT"
|
|
||||||
else
|
else
|
||||||
echo "Nothing to push"
|
echo "Nothing to push"
|
||||||
echo "pushed=false" >> "$GITHUB_OUTPUT"
|
|
||||||
fi
|
fi
|
||||||
id: push
|
|
||||||
|
|
||||||
- name: Trigger CI
|
|
||||||
if: steps.push.outputs.pushed == 'true'
|
|
||||||
run: |
|
|
||||||
gh workflow run ci.yml --ref "${{ steps.pr.outputs.branch }}"
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Report result
|
- name: Report result
|
||||||
if: always()
|
if: always()
|
||||||
|
|||||||
5
.github/workflows/ci.yml
vendored
5
.github/workflows/ci.yml
vendored
@ -6,11 +6,6 @@ on:
|
|||||||
types: [opened, synchronize, ready_for_review]
|
types: [opened, synchronize, ready_for_review]
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: ci-${{ github.event_name == 'pull_request' && github.head_ref || github.ref_name }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
|
|||||||
19
.gitignore
vendored
19
.gitignore
vendored
@ -23,16 +23,27 @@ npm-debug.log*
|
|||||||
# Test coverage
|
# Test coverage
|
||||||
coverage/
|
coverage/
|
||||||
|
|
||||||
# E2E test results
|
|
||||||
e2e/results/
|
|
||||||
|
|
||||||
# Environment
|
# Environment
|
||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
.env.*.local
|
.env.*.local
|
||||||
.envrc
|
.envrc
|
||||||
|
|
||||||
# TAKT runtime data (facets/pieces/config are managed by .takt/.gitignore)
|
# TAKT config (user data)
|
||||||
|
.takt/
|
||||||
|
!.takt/config.yaml
|
||||||
|
!.takt/pieces/
|
||||||
|
!.takt/pieces/**
|
||||||
|
!.takt/personas/
|
||||||
|
!.takt/personas/**
|
||||||
|
!.takt/policies/
|
||||||
|
!.takt/policies/**
|
||||||
|
!.takt/knowledge/
|
||||||
|
!.takt/knowledge/**
|
||||||
|
!.takt/instructions/
|
||||||
|
!.takt/instructions/**
|
||||||
|
!.takt/output-contracts/
|
||||||
|
!.takt/output-contracts/**
|
||||||
|
|
||||||
task_planning/
|
task_planning/
|
||||||
|
|
||||||
|
|||||||
22
.takt/.gitignore
vendored
22
.takt/.gitignore
vendored
@ -1,22 +0,0 @@
|
|||||||
# Ignore everything by default
|
|
||||||
*
|
|
||||||
|
|
||||||
# This file itself
|
|
||||||
!.gitignore
|
|
||||||
|
|
||||||
# Project configuration
|
|
||||||
!config.yaml
|
|
||||||
|
|
||||||
# Facets and pieces (version-controlled)
|
|
||||||
!pieces/
|
|
||||||
!pieces/**
|
|
||||||
!personas/
|
|
||||||
!personas/**
|
|
||||||
!policies/
|
|
||||||
!policies/**
|
|
||||||
!knowledge/
|
|
||||||
!knowledge/**
|
|
||||||
!instructions/
|
|
||||||
!instructions/**
|
|
||||||
!output-contracts/
|
|
||||||
!output-contracts/**
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
piece_overrides:
|
|
||||||
movements:
|
|
||||||
implement:
|
|
||||||
quality_gates:
|
|
||||||
- "Run `npm run test:e2e:mock` and verify all E2E tests pass"
|
|
||||||
fix:
|
|
||||||
quality_gates:
|
|
||||||
- "Run `npm run test:e2e:mock` and verify all E2E tests pass"
|
|
||||||
ai_fix:
|
|
||||||
quality_gates:
|
|
||||||
- "Run `npm run test:e2e:mock` and verify all E2E tests pass"
|
|
||||||
120
CHANGELOG.md
120
CHANGELOG.md
@ -6,126 +6,6 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||||
|
|
||||||
## [0.30.0] - 2026-03-05
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- トレースレポートの自動生成: piece 実行完了時に movement の遷移・フェーズ・ルール評価結果を Markdown レポートとして `.takt/runs/` に自動出力。`logging.trace: true` で全文モード、デフォルトは redacted モード (#467)
|
|
||||||
- 使用量イベントログ: プロバイダー呼び出しごとのトークン使用量を NDJSON 形式で記録。`logging.usage_events: true` で有効化 (#470)
|
|
||||||
- タスクリトライ時のピース再利用確認: `takt list` からリトライ・追加指示する際に、前回と同じピースを使うか選び直すかを選択可能に (#468)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- BREAKING: `takt switch` コマンドを削除。ピース選択はインタラクティブモード起動時(`takt`)に毎回行う方式に変更 (#465)
|
|
||||||
- Claude プロバイダーの `allowed_tools` をビルトインピースの YAML 定義からエグゼキューター側に移動し、ピース YAML の簡素化と保守性を向上 (#469)
|
|
||||||
- 設定構造をリファクタリング: `globalConfig.ts` を `globalConfigCore.ts`・`globalConfigAccessors.ts`・`globalConfigResolvers.ts`・`globalConfigSerializer.ts` に分割。プロジェクトローカル設定(`.takt/config.yaml`)のフォールバック優先度を明確化 (#460)
|
|
||||||
- observability モジュールを `core/logging/` に再編成: `providerEventLogger` と `usageEventLogger` を統一的なログ基盤として整理 (#466)
|
|
||||||
- レビュアー全体に `coder-decisions.md` の参照を追加し、コーダーの設計判断を考慮したレビューで誤検知を抑制
|
|
||||||
- レビュー↔修正ループの収束を支援: レポート履歴の参照、ループモニター、修正方針のガイドラインを整備
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- runtime 環境の `XDG_CONFIG_HOME` 上書きで `gh` CLI の認証が失敗する問題を修正。`GH_CONFIG_DIR` を元の設定から保持するよう変更
|
|
||||||
- `.takt/config.yaml` に `runtime.prepare` を記述するとエラーになる問題を修正(プロジェクトレベルでの runtime 設定を許可) (#464)
|
|
||||||
- インタラクティブモードで iteration limit 到達時にプロンプトが表示されず、exceeded 状態が保持されない問題を修正
|
|
||||||
- PR 作成失敗時のタスクステータスを `failed` から `pr_failed` に分離し、実行成功だが PR 作成のみ失敗したケースを区別可能に
|
|
||||||
- リトライ時にタスクにピース情報が引き継がれるよう修正
|
|
||||||
- `.gitignore` の `.takt/` ディレクトリ ignore を削除し `.takt/.gitignore` に委譲(プロジェクト設定ファイルの追跡を可能に)
|
|
||||||
- CI: push トリガーから `takt/**` を削除し二重実行を防止
|
|
||||||
- `cc-resolve` ワークフローで push 後に CI を自動トリガーするよう修正
|
|
||||||
|
|
||||||
### Internal
|
|
||||||
|
|
||||||
- deprecated config マイグレーション処理を削除
|
|
||||||
- プロジェクトローカル設定の優先度に関する統合テストを追加
|
|
||||||
- テストヘルパーとテストセットアップの改善
|
|
||||||
|
|
||||||
## [0.29.0] - 2026-03-04
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- レビュー+修正ループピース群を追加: `review-fix`(多角レビュー)、`frontend-review-fix`、`backend-review-fix`、`dual-review-fix`、`dual-cqrs-review-fix`、`backend-cqrs-review-fix` および対応するレビュー専用ピース群を追加。コードレビューと自動修正を反復するワークフロー
|
|
||||||
- `takt-default-review-fix` ピースを追加: TAKT 自己開発向けのレビュー+修正ループワークフロー
|
|
||||||
- `quality_gates` のグローバル/プロジェクトレベルオーバーライドをサポート: `~/.takt/config.yaml` および `.takt/config.yaml` の `piece_overrides.quality_gates` でビルトインピースの品質ゲートを上書き可能に (#384)
|
|
||||||
- タスクの `base_branch` 設定: `takt add` 時に現在のブランチを base_branch として記録し、タスク実行時にそのブランチから分岐するよう設定可能に (#455)
|
|
||||||
- プロバイダー設定の統一: `.takt/config.yaml` で `provider` ブロックに `type`/`model`/プロバイダー固有オプション(`network_access` 等)をまとめて記述可能に (#457)
|
|
||||||
- ワーカープール超過時のリキュー: タスク実行がワーカー上限を超えた場合、タスクを自動的に再キューイングするよう対応 (#366)
|
|
||||||
- `--pr` インタラクティブモードで `create_issue` アクションを除外し、`save_task` 時に PR のブランチ名を `base_branch` として自動設定
|
|
||||||
- team_leader の `decomposeTask`/`requestMoreParts`/Phase 3 ステータス判定のプロバイダーイベントをロギング: `provider-events.jsonl` に記録されるようになり、デバッグ・分析が可能に
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- `export-cc` で `facets/` のサブディレクトリ構造(`personas/`、`policies/` 等)が出力先に再現されなかった問題を修正 (#8dcb23b)
|
|
||||||
- `cc-resolve` コマンドがコンフリクト解決後にマージコミットを生成するよう修正 (#1b1f758)
|
|
||||||
- グローバル設定 (`~/.takt/config.yaml`) の `piece` フィールドがピース解決チェーンで無視されるバグを修正 (#458)
|
|
||||||
- Codex プロバイダーでプロバイダー優先のパーミッションモード解決が機能しない問題と EPERM エラーの E2E テストを追加 (#d2b48fd)
|
|
||||||
- レビューコメントがない PR で `--pr` を使用した際にエラーになる問題を修正
|
|
||||||
- `--auto-pr`/`--draft` オプションをパイプラインモード専用に制限(インタラクティブモードでの誤用を防止)
|
|
||||||
- team_leader のストリーミングでバウンダリの先行フラッシュによる断片化を修正 (#769bd87, #bddb66f)
|
|
||||||
- team_leader のエラーメッセージが空文字列になるバグを修正 (#52968ac)
|
|
||||||
- `decomposeTask`/`requestMoreParts` の `maxTurns` を 2 から 4 に増加(複雑なタスク分解でタイムアウトしていた問題を緩和)
|
|
||||||
- Copilot プロバイダーのクライアント実装のバグを修正 (#434)
|
|
||||||
|
|
||||||
### Internal
|
|
||||||
|
|
||||||
- E2E プロバイダー別テストをコンフィグレベル(`vitest.config.e2e.provider.ts`)で振り分けるよう変更。テストファイル内の `skip` ロジックを廃止し、JSON レポート出力を追加
|
|
||||||
- 共有ノーマライザを `configNormalizers.ts` に抽出してプロバイダー設定解析を整理
|
|
||||||
- `agent-usecases`/`schema-loader` を移動し `pieceExecution` の責務を分割
|
|
||||||
- `check:release` で全プロバイダー(claude/codex/opencode)の E2E を実行するよう変更
|
|
||||||
- CI: PR と push の重複実行を concurrency グループで抑制
|
|
||||||
- CI: feature ブランチへの push と手動実行に対応
|
|
||||||
|
|
||||||
## [0.28.1] - 2026-03-02
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- BREAKING: `expert` / `expert-mini` / `expert-cqrs` / `expert-cqrs-mini` ピースを `dual` / `dual-mini` / `dual-cqrs` / `dual-cqrs-mini` にリネーム。カスタマイズしている場合はピース名を更新が必要
|
|
||||||
- `default-mini` / `default-test-first-mini` ピースを `default` に統合。`default` ピースが「テスト優先モード」を内包するよう拡張
|
|
||||||
- `coding-pitfalls` ナレッジの主要項目を `coding` ポリシーに移動し、ポリシーとして実際に適用されるよう強化
|
|
||||||
- `implement` / `plan` インストラクションにセルフチェック・コーダー指針を追加
|
|
||||||
|
|
||||||
### Removed
|
|
||||||
|
|
||||||
- `passthrough` ピースを削除
|
|
||||||
- `structural-reform` ピースを削除
|
|
||||||
|
|
||||||
### Internal
|
|
||||||
|
|
||||||
- `expert-supervisor` ペルソナを `dual-supervisor` にリネーム
|
|
||||||
- ビルトインカタログに不足していた `terraform`、`takt-default` 系、`deep-research` を追加
|
|
||||||
- カテゴリ設定に `deep-research` を追加
|
|
||||||
- 全ドキュメントに `copilot` プロバイダーの説明を追加し、Claude Code 寄りの記述をプロバイダー中立に修正
|
|
||||||
|
|
||||||
## [0.28.0] - 2026-03-02
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- GitHub Copilot CLI プロバイダーを追加: `copilot` プロバイダーとして GitHub Copilot CLI を利用可能に。セッション継続、パーミッション制御(readonly/edit/full)に対応。`copilotCliPath` / `TAKT_COPILOT_CLI_PATH` で CLI パスを指定、`copilotGithubToken` / `TAKT_COPILOT_GITHUB_TOKEN` で認証トークンを設定 (#425)
|
|
||||||
- `--pr` オプションを追加: PR のレビューコメントを取得してタスクとして実行。パイプラインモードとインタラクティブモードの両方で利用可能 (#421)
|
|
||||||
- `takt add --pr N` で PR のレビューコメントをタスクとして追加可能に。PR のブランチ名で worktree を自動作成し、レビュー指摘の修正タスクとしてキューイング (#426)
|
|
||||||
- `takt list` に「Pull from remote」アクションを追加: リモートの変更を worktree に取り込み、再プッシュ可能に (#395)
|
|
||||||
- プロジェクト単位の CLI パス設定: `.takt/config.yaml` で `claudeCliPath` / `cursorCliPath` / `codexCliPath` / `copilotCliPath` をプロジェクトごとに設定可能に (#413)
|
|
||||||
- インタラクティブモードのスラッシュコマンドを行末でも認識可能に(例: `タスクの内容 /go`)(#406)
|
|
||||||
- takt-default / takt-default-team-leader ビルトインピースを追加(TAKT 自己開発用のワークフロー定義)
|
|
||||||
- TAKT ナレッジファセット(`takt.md`)を追加: TAKT のアーキテクチャとコード規約を体系化
|
|
||||||
- ai-antipattern ポリシーに冗長な条件分岐パターン検出を追加: 同一関数を if/else で呼び分けるコードを検出し、三項演算子やスプレッド構文での統一を促す
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- 不正な `tasks.yaml` を検出した場合、ファイルを削除せず保持してエラーメッセージで停止するよう修正 (#418)
|
|
||||||
- shallow clone リポジトリで worktree 作成が失敗する問題を修正: `--reference` 付きクローンが失敗した場合に通常クローンへフォールバック (#376, #409)
|
|
||||||
- グローバル/プロジェクト設定の `model` がモデルログに反映されない不具合を修正 (#417)
|
|
||||||
- fork PR レビュー時に `GH_REPO` を設定して正しいリポジトリの issue を参照するよう修正
|
|
||||||
- takt-review ワークフローの PR コメント投稿ステップにも `GH_REPO` を設定
|
|
||||||
|
|
||||||
### Internal
|
|
||||||
|
|
||||||
- `resolveConfigValue` の不要な `defaultValue` 引数を削除し、設定解決ロジックを簡素化 (#391)
|
|
||||||
- PRコメント `/resolve` でコンフリクト解決・レビュー指摘修正を行う GitHub Actions ワークフロー(cc-resolve)を追加
|
|
||||||
- takt-review ワークフローを `pull_request_target` に変更し、fork PR でもシークレットを利用可能に
|
|
||||||
- CI に `ready_for_review` / `reopened` トリガーを追加
|
|
||||||
- CONTRIBUTING にレビューモードの例を追加、日本語版(`CONTRIBUTING.ja.md`)を追加
|
|
||||||
|
|
||||||
## [0.28.0-alpha.1] - 2026-02-28
|
## [0.28.0-alpha.1] - 2026-02-28
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
25
CLAUDE.md
25
CLAUDE.md
@ -35,6 +35,7 @@ TAKT (TAKT Agent Koordination Topology) is a multi-agent orchestration system fo
|
|||||||
| `takt watch` | Watch `.takt/tasks/` and auto-execute tasks (resident process) |
|
| `takt watch` | Watch `.takt/tasks/` and auto-execute tasks (resident process) |
|
||||||
| `takt add [task]` | Add a new task via AI conversation |
|
| `takt add [task]` | Add a new task via AI conversation |
|
||||||
| `takt list` | List task branches (merge, delete, retry) |
|
| `takt list` | List task branches (merge, delete, retry) |
|
||||||
|
| `takt switch [piece]` | Switch piece interactively |
|
||||||
| `takt clear` | Clear agent conversation sessions (reset state) |
|
| `takt clear` | Clear agent conversation sessions (reset state) |
|
||||||
| `takt eject [type] [name]` | Copy builtin piece or facet for customization (`--global` for ~/.takt/) |
|
| `takt eject [type] [name]` | Copy builtin piece or facet for customization (`--global` for ~/.takt/) |
|
||||||
| `takt prompt [piece]` | Preview assembled prompts for each movement and phase |
|
| `takt prompt [piece]` | Preview assembled prompts for each movement and phase |
|
||||||
@ -66,9 +67,10 @@ TAKT (TAKT Agent Koordination Topology) is a multi-agent orchestration system fo
|
|||||||
| `--pr <number>` | PR number to fetch review comments and fix |
|
| `--pr <number>` | PR number to fetch review comments and fix |
|
||||||
| `-w, --piece <name or path>` | Piece name or path to piece YAML file |
|
| `-w, --piece <name or path>` | Piece name or path to piece YAML file |
|
||||||
| `-b, --branch <name>` | Branch name (auto-generated if omitted) |
|
| `-b, --branch <name>` | Branch name (auto-generated if omitted) |
|
||||||
| `--auto-pr` | Create PR after execution (pipeline mode only) |
|
| `--auto-pr` | Create PR after execution (interactive: skip confirmation, pipeline: enable PR) |
|
||||||
| `--skip-git` | Skip branch creation, commit, and push (pipeline mode, piece-only) |
|
| `--skip-git` | Skip branch creation, commit, and push (pipeline mode, piece-only) |
|
||||||
| `--repo <owner/repo>` | Repository for PR creation |
|
| `--repo <owner/repo>` | Repository for PR creation |
|
||||||
|
| `--create-worktree <yes\|no>` | Skip worktree confirmation prompt |
|
||||||
| `-q, --quiet` | Minimal output mode: suppress AI output (for CI) |
|
| `-q, --quiet` | Minimal output mode: suppress AI output (for CI) |
|
||||||
| `--provider <name>` | Override agent provider (claude\|codex\|opencode\|mock) |
|
| `--provider <name>` | Override agent provider (claude\|codex\|opencode\|mock) |
|
||||||
| `--model <name>` | Override agent model |
|
| `--model <name>` | Override agent model |
|
||||||
@ -461,12 +463,12 @@ Example category config:
|
|||||||
```yaml
|
```yaml
|
||||||
piece_categories:
|
piece_categories:
|
||||||
Development:
|
Development:
|
||||||
pieces: [default]
|
pieces: [default, default-mini]
|
||||||
children:
|
children:
|
||||||
Backend:
|
Backend:
|
||||||
pieces: [dual-cqrs]
|
pieces: [expert-cqrs]
|
||||||
Frontend:
|
Frontend:
|
||||||
pieces: [dual]
|
pieces: [expert]
|
||||||
Research:
|
Research:
|
||||||
pieces: [research, magi]
|
pieces: [research, magi]
|
||||||
show_others_category: true
|
show_others_category: true
|
||||||
@ -601,24 +603,17 @@ Implemented in `src/core/runtime/runtime-environment.ts`.
|
|||||||
|
|
||||||
## Debugging
|
## Debugging
|
||||||
|
|
||||||
**Debug logging:** Set `logging.debug: true` in `~/.takt/config.yaml`:
|
**Debug logging:** Set `debug_enabled: true` in `~/.takt/config.yaml` or create a `.takt/debug.yaml` file:
|
||||||
```yaml
|
```yaml
|
||||||
logging:
|
enabled: true
|
||||||
debug: true
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Debug logs are written to `.takt/runs/debug-{timestamp}/logs/` in NDJSON format. Log levels: `debug`, `info`, `warn`, `error`.
|
Debug logs are written to `.takt/logs/debug.log` (ndjson format). Log levels: `debug`, `info`, `warn`, `error`.
|
||||||
|
|
||||||
**Verbose mode:** Set `verbose: true` in `~/.takt/config.yaml` or `TAKT_VERBOSE=true` to enable verbose console output. This enables `logging.debug`, `logging.trace`, and sets `logging.level` to `debug`.
|
**Verbose mode:** Create `.takt/verbose` file (empty file) to enable verbose console output. This automatically enables debug logging and sets log level to `debug`.
|
||||||
|
|
||||||
**Session logs:** All piece executions are logged to `.takt/logs/{sessionId}.jsonl`. Use `tail -f .takt/logs/{sessionId}.jsonl` to monitor in real-time.
|
**Session logs:** All piece executions are logged to `.takt/logs/{sessionId}.jsonl`. Use `tail -f .takt/logs/{sessionId}.jsonl` to monitor in real-time.
|
||||||
|
|
||||||
**Environment variables:**
|
|
||||||
|
|
||||||
- `TAKT_LOGGING_LEVEL=info`
|
|
||||||
- `TAKT_LOGGING_PROVIDER_EVENTS=true`
|
|
||||||
- `TAKT_VERBOSE=true`
|
|
||||||
|
|
||||||
**Testing with mocks:** Use `--provider mock` to test pieces without calling real AI APIs. Mock responses are deterministic and configurable via test fixtures.
|
**Testing with mocks:** Use `--provider mock` to test pieces without calling real AI APIs. Mock responses are deterministic and configurable via test fixtures.
|
||||||
|
|
||||||
## Testing Notes
|
## Testing Notes
|
||||||
|
|||||||
23
README.md
23
README.md
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
**T**AKT **A**gent **K**oordination **T**opology — Give your AI coding agents structured review loops, managed prompts, and guardrails — so they deliver quality code, not just code.
|
**T**AKT **A**gent **K**oordination **T**opology — Give your AI coding agents structured review loops, managed prompts, and guardrails — so they deliver quality code, not just code.
|
||||||
|
|
||||||
TAKT runs AI agents (Claude Code, Codex, OpenCode, Cursor, GitHub Copilot CLI) through YAML-defined workflows with built-in review cycles. You talk to AI to define what you want, queue tasks, and let TAKT handle the execution — planning, implementation, multi-stage review, and fix loops — all governed by declarative piece files.
|
TAKT runs AI agents (Claude Code, Codex, OpenCode, Cursor, Copilot) through YAML-defined workflows with built-in review cycles. You talk to AI to define what you want, queue tasks, and let TAKT handle the execution — planning, implementation, multi-stage review, and fix loops — all governed by declarative piece files.
|
||||||
|
|
||||||
TAKT is built with TAKT itself (dogfooding).
|
TAKT is built with TAKT itself (dogfooding).
|
||||||
|
|
||||||
@ -22,15 +22,13 @@ TAKT is built with TAKT itself (dogfooding).
|
|||||||
|
|
||||||
Choose one:
|
Choose one:
|
||||||
|
|
||||||
- **Provider CLIs**: [Codex](https://github.com/openai/codex), [OpenCode](https://opencode.ai), [Cursor Agent](https://docs.cursor.com/), or [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) installed
|
- **Provider CLIs**: [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Codex](https://github.com/openai/codex), [OpenCode](https://opencode.ai), [Cursor Agent](https://docs.cursor.com/), or [GitHub Copilot](https://github.com/features/copilot) installed
|
||||||
- **Direct API**: Anthropic / OpenAI / OpenCode API Key (no CLI required)
|
- **Direct API**: Anthropic / OpenAI / OpenCode / Cursor API Key (no CLI required)
|
||||||
|
|
||||||
Optional:
|
Optional:
|
||||||
|
|
||||||
- [GitHub CLI](https://cli.github.com/) (`gh`) — for `takt #N` (GitHub Issue tasks)
|
- [GitHub CLI](https://cli.github.com/) (`gh`) — for `takt #N` (GitHub Issue tasks)
|
||||||
|
|
||||||
> **OAuth and API key usage:** Whether OAuth or API key access is permitted varies by provider and use case. Check each provider's terms of service before using TAKT.
|
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
### Install
|
### Install
|
||||||
@ -46,9 +44,8 @@ $ takt
|
|||||||
|
|
||||||
Select piece:
|
Select piece:
|
||||||
❯ 🎼 default (current)
|
❯ 🎼 default (current)
|
||||||
📁 🚀 Quick Start/
|
📁 Development/
|
||||||
📁 🎨 Frontend/
|
📁 Research/
|
||||||
📁 ⚙️ Backend/
|
|
||||||
|
|
||||||
> Add user authentication with JWT
|
> Add user authentication with JWT
|
||||||
|
|
||||||
@ -127,10 +124,12 @@ Rules determine the next movement. `COMPLETE` ends the piece successfully, `ABOR
|
|||||||
|
|
||||||
| Piece | Use Case |
|
| Piece | Use Case |
|
||||||
|-------|----------|
|
|-------|----------|
|
||||||
| `default` | Standard development. Test-first with AI antipattern review and parallel review (architecture + supervisor). |
|
| `default-mini` | Quick fixes. Lightweight plan → implement → parallel review → fix loop. |
|
||||||
|
| `default-test-first-mini` | Test-first development. Write tests first, then implement to pass them. |
|
||||||
| `frontend-mini` | Frontend-focused mini configuration. |
|
| `frontend-mini` | Frontend-focused mini configuration. |
|
||||||
| `backend-mini` | Backend-focused mini configuration. |
|
| `backend-mini` | Backend-focused mini configuration. |
|
||||||
| `dual-mini` | Frontend + backend mini configuration. |
|
| `expert-mini` | Expert-level mini configuration. |
|
||||||
|
| `default` | Serious development. Multi-stage review with parallel reviewers. Used for TAKT's own development. |
|
||||||
|
|
||||||
See the [Builtin Catalog](./docs/builtin-catalog.md) for all pieces and personas.
|
See the [Builtin Catalog](./docs/builtin-catalog.md) for all pieces and personas.
|
||||||
|
|
||||||
@ -142,6 +141,7 @@ See the [Builtin Catalog](./docs/builtin-catalog.md) for all pieces and personas
|
|||||||
| `takt run` | Execute all pending tasks |
|
| `takt run` | Execute all pending tasks |
|
||||||
| `takt list` | Manage task branches (merge, retry, instruct, delete) |
|
| `takt list` | Manage task branches (merge, retry, instruct, delete) |
|
||||||
| `takt #N` | Execute GitHub Issue as task |
|
| `takt #N` | Execute GitHub Issue as task |
|
||||||
|
| `takt switch` | Switch active piece |
|
||||||
| `takt eject` | Copy builtin pieces/facets for customization |
|
| `takt eject` | Copy builtin pieces/facets for customization |
|
||||||
| `takt repertoire add` | Install a repertoire package from GitHub |
|
| `takt repertoire add` | Install a repertoire package from GitHub |
|
||||||
|
|
||||||
@ -157,14 +157,13 @@ model: sonnet # passed directly to provider
|
|||||||
language: en # en or ja
|
language: en # en or ja
|
||||||
```
|
```
|
||||||
|
|
||||||
Or use API keys directly (no CLI installation required for Claude, Codex, OpenCode):
|
Or use API keys directly (no CLI installation required):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export TAKT_ANTHROPIC_API_KEY=sk-ant-... # Anthropic (Claude)
|
export TAKT_ANTHROPIC_API_KEY=sk-ant-... # Anthropic (Claude)
|
||||||
export TAKT_OPENAI_API_KEY=sk-... # OpenAI (Codex)
|
export TAKT_OPENAI_API_KEY=sk-... # OpenAI (Codex)
|
||||||
export TAKT_OPENCODE_API_KEY=... # OpenCode
|
export TAKT_OPENCODE_API_KEY=... # OpenCode
|
||||||
export TAKT_CURSOR_API_KEY=... # Cursor Agent (optional if logged in)
|
export TAKT_CURSOR_API_KEY=... # Cursor Agent (optional if logged in)
|
||||||
export TAKT_COPILOT_GITHUB_TOKEN=ghp_... # GitHub Copilot CLI
|
|
||||||
```
|
```
|
||||||
|
|
||||||
See the [Configuration Guide](./docs/configuration.md) for all options, provider profiles, and model resolution.
|
See the [Configuration Guide](./docs/configuration.md) for all options, provider profiles, and model resolution.
|
||||||
|
|||||||
@ -2,35 +2,24 @@
|
|||||||
# Location: ~/.takt/config.yaml
|
# Location: ~/.takt/config.yaml
|
||||||
|
|
||||||
# =====================================
|
# =====================================
|
||||||
# General settings
|
# General settings (piece-independent)
|
||||||
# =====================================
|
# =====================================
|
||||||
language: en # UI language: en | ja
|
language: en # UI language: en | ja
|
||||||
|
log_level: info # Log level: debug | info | warn | error
|
||||||
# Default provider and model
|
provider: claude # Default provider: claude | codex | opencode | mock
|
||||||
# provider: claude # Default provider: claude | codex | opencode | cursor | copilot | mock
|
# model: sonnet # Optional model name passed to provider
|
||||||
# model: sonnet # Default model (passed directly to provider)
|
|
||||||
|
|
||||||
# Execution control
|
# Execution control
|
||||||
# worktree_dir: ~/takt-worktrees # Base directory for shared clone execution
|
# worktree_dir: ~/takt-worktrees # Base directory for shared clone execution
|
||||||
# prevent_sleep: false # Prevent macOS idle sleep while running
|
|
||||||
# auto_fetch: false # Fetch before clone to keep shared clones up-to-date
|
|
||||||
# base_branch: main # Base branch to clone from (default: current branch)
|
|
||||||
# concurrency: 1 # Number of tasks to run concurrently in takt run (1-10)
|
|
||||||
# task_poll_interval_ms: 500 # Polling interval in ms for picking up new tasks (100-5000)
|
|
||||||
|
|
||||||
# PR / branch
|
|
||||||
# auto_pr: false # Auto-create PR after worktree execution
|
# auto_pr: false # Auto-create PR after worktree execution
|
||||||
# draft_pr: false # Create PR as draft
|
branch_name_strategy: ai # Branch strategy: romaji | ai
|
||||||
# branch_name_strategy: romaji # Branch name generation: romaji | ai
|
concurrency: 2 # Concurrent task execution for takt run (1-10)
|
||||||
|
# task_poll_interval_ms: 500 # Polling interval in ms during takt run (100-5000)
|
||||||
# Pipeline execution
|
# prevent_sleep: false # Prevent macOS idle sleep while running
|
||||||
# pipeline:
|
|
||||||
# default_branch_prefix: "takt/" # Branch prefix for pipeline-created branches
|
|
||||||
# commit_message_template: "{title}" # Commit message template. Variables: {title}, {issue}
|
|
||||||
# pr_body_template: "{report}" # PR body template. Variables: {issue_body}, {report}, {issue}
|
|
||||||
|
|
||||||
# Output / notifications
|
# Output / notifications
|
||||||
# minimal_output: false # Suppress detailed agent output
|
# minimal_output: false # Minimized output for CI logs
|
||||||
|
# verbose: false # Verbose output mode
|
||||||
# notification_sound: true # Master switch for sounds
|
# notification_sound: true # Master switch for sounds
|
||||||
# notification_sound_events: # Per-event sound toggle (unset means true)
|
# notification_sound_events: # Per-event sound toggle (unset means true)
|
||||||
# iteration_limit: true
|
# iteration_limit: true
|
||||||
@ -38,86 +27,74 @@ language: en # UI language: en | ja
|
|||||||
# piece_abort: true
|
# piece_abort: true
|
||||||
# run_complete: true
|
# run_complete: true
|
||||||
# run_abort: true
|
# run_abort: true
|
||||||
# logging:
|
# observability:
|
||||||
# level: info # Log level for console and file output
|
|
||||||
# trace: true # Generate human-readable execution trace report (trace.md)
|
|
||||||
# debug: false # Enable debug.log + prompts.jsonl
|
|
||||||
# provider_events: false # Persist provider stream events
|
# provider_events: false # Persist provider stream events
|
||||||
# usage_events: false # Persist usage event logs
|
|
||||||
|
|
||||||
# Analytics
|
|
||||||
# analytics:
|
# analytics:
|
||||||
# enabled: true # Enable local analytics collection
|
# enabled: true # Enable analytics metrics collection
|
||||||
# events_path: ~/.takt/analytics/events # Custom events directory
|
# events_path: ~/.takt/analytics/events # Analytics event directory
|
||||||
# retention_days: 30 # Retention period for event files
|
# retention_days: 30 # Analytics event retention (days)
|
||||||
|
|
||||||
# Interactive mode
|
|
||||||
# interactive_preview_movements: 3 # Number of movement previews in interactive mode (0-10)
|
|
||||||
|
|
||||||
# Per-persona provider/model overrides
|
|
||||||
# persona_providers:
|
|
||||||
# coder:
|
|
||||||
# provider: claude
|
|
||||||
# model: opus
|
|
||||||
# reviewer:
|
|
||||||
# provider: codex
|
|
||||||
# model: gpt-5.2-codex
|
|
||||||
|
|
||||||
# Provider-specific options (lowest priority, overridden by piece/movement)
|
|
||||||
# provider_options:
|
|
||||||
# codex:
|
|
||||||
# network_access: true
|
|
||||||
# claude:
|
|
||||||
# sandbox:
|
|
||||||
# allow_unsandboxed_commands: true
|
|
||||||
|
|
||||||
# Provider permission profiles
|
|
||||||
# provider_profiles:
|
|
||||||
# claude:
|
|
||||||
# default_permission_mode: edit
|
|
||||||
# codex:
|
|
||||||
# default_permission_mode: edit
|
|
||||||
|
|
||||||
# Runtime environment preparation
|
|
||||||
# runtime:
|
|
||||||
# prepare: [node, gradle, ./custom-script.sh]
|
|
||||||
|
|
||||||
# Piece-level overrides
|
|
||||||
# piece_overrides:
|
|
||||||
# quality_gates:
|
|
||||||
# - "All tests pass"
|
|
||||||
# quality_gates_edit_only: true
|
|
||||||
# movements:
|
|
||||||
# review:
|
|
||||||
# quality_gates:
|
|
||||||
# - "No security vulnerabilities"
|
|
||||||
# personas:
|
|
||||||
# coder:
|
|
||||||
# quality_gates:
|
|
||||||
# - "Code follows conventions"
|
|
||||||
|
|
||||||
# Credentials (environment variables take priority)
|
# Credentials (environment variables take priority)
|
||||||
# anthropic_api_key: "sk-ant-..." # Claude API key
|
# anthropic_api_key: "sk-ant-..." # Claude API key
|
||||||
# openai_api_key: "sk-..." # Codex/OpenAI API key
|
# openai_api_key: "sk-..." # Codex/OpenAI API key
|
||||||
# gemini_api_key: "..." # Gemini API key
|
|
||||||
# google_api_key: "..." # Google API key
|
|
||||||
# groq_api_key: "..." # Groq API key
|
|
||||||
# openrouter_api_key: "..." # OpenRouter API key
|
|
||||||
# opencode_api_key: "..." # OpenCode API key
|
# opencode_api_key: "..." # OpenCode API key
|
||||||
# cursor_api_key: "..." # Cursor API key
|
|
||||||
|
|
||||||
# CLI paths
|
|
||||||
# codex_cli_path: "/absolute/path/to/codex" # Absolute path to Codex CLI
|
# codex_cli_path: "/absolute/path/to/codex" # Absolute path to Codex CLI
|
||||||
# claude_cli_path: "/absolute/path/to/claude" # Absolute path to Claude Code CLI
|
|
||||||
# cursor_cli_path: "/absolute/path/to/cursor" # Absolute path to cursor-agent CLI
|
# Pipeline
|
||||||
# copilot_cli_path: "/absolute/path/to/copilot" # Absolute path to Copilot CLI
|
# pipeline:
|
||||||
# copilot_github_token: "ghp_..." # Copilot GitHub token
|
# default_branch_prefix: "takt/" # Prefix for pipeline-created branches
|
||||||
|
# commit_message_template: "feat: {title} (#{issue})" # Commit template
|
||||||
|
# pr_body_template: | # PR body template
|
||||||
|
# ## Summary
|
||||||
|
# {issue_body}
|
||||||
|
# Closes #{issue}
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
# bookmarks_file: ~/.takt/preferences/bookmarks.yaml # Bookmark file location
|
# bookmarks_file: ~/.takt/preferences/bookmarks.yaml # Bookmark file location
|
||||||
|
|
||||||
# Piece list / categories
|
# =====================================
|
||||||
|
# Piece-related settings (global defaults)
|
||||||
|
# =====================================
|
||||||
|
# 1) Route provider/model per persona
|
||||||
|
# persona_providers:
|
||||||
|
# coder:
|
||||||
|
# provider: codex # Run coder persona on Codex
|
||||||
|
# model: o3-mini # Use o3-mini model (optional)
|
||||||
|
# reviewer:
|
||||||
|
# provider: claude # Run reviewer persona on Claude
|
||||||
|
|
||||||
|
# 2) Provider options
|
||||||
|
# Priority (for piece-capable keys such as provider/model/provider_options):
|
||||||
|
# global < piece < project < env
|
||||||
|
# provider_options:
|
||||||
|
# codex:
|
||||||
|
# network_access: true # Allow network access for Codex
|
||||||
|
# opencode:
|
||||||
|
# network_access: true # Allow network access for OpenCode
|
||||||
|
# claude:
|
||||||
|
# sandbox:
|
||||||
|
# allow_unsandboxed_commands: false # true allows unsandboxed execution for listed commands
|
||||||
|
# excluded_commands:
|
||||||
|
# - "npm publish" # Commands excluded from sandbox
|
||||||
|
|
||||||
|
# 3) Movement permission policy
|
||||||
|
# provider_profiles:
|
||||||
|
# codex:
|
||||||
|
# default_permission_mode: full # Base permission: readonly | edit | full
|
||||||
|
# movement_permission_overrides:
|
||||||
|
# ai_review: readonly # Per-movement override
|
||||||
|
# claude:
|
||||||
|
# default_permission_mode: edit
|
||||||
|
|
||||||
|
# 4) Runtime preparation before execution (recommended: enabled)
|
||||||
|
runtime:
|
||||||
|
prepare:
|
||||||
|
- gradle # Prepare Gradle cache/env under .runtime
|
||||||
|
- node # Prepare npm cache/env under .runtime
|
||||||
|
|
||||||
|
# 5) Piece list / categories
|
||||||
# enable_builtin_pieces: true # Enable built-in pieces from builtins/{lang}/pieces
|
# enable_builtin_pieces: true # Enable built-in pieces from builtins/{lang}/pieces
|
||||||
# disabled_builtins:
|
# disabled_builtins:
|
||||||
# - magi # Built-in piece names to disable
|
# - magi # Built-in piece names to disable
|
||||||
# piece_categories_file: ~/.takt/preferences/piece-categories.yaml # Category definition file
|
# piece_categories_file: ~/.takt/preferences/piece-categories.yaml # Category definition file
|
||||||
|
# interactive_preview_movements: 3 # Preview movement count in interactive mode (0-10)
|
||||||
|
|||||||
@ -1,16 +1,10 @@
|
|||||||
Use reports in the Report Directory and fix the issues raised by the reviewer.
|
Address the reviewer's feedback.
|
||||||
|
Use reports in the Report Directory shown in the Piece Context and fix the issues raised by the reviewer.
|
||||||
|
Use files in the Report Directory as primary evidence. If additional context is needed, you may consult Previous Response and conversation history as secondary sources (Previous Response may be unavailable). If information conflicts, prioritize reports in the Report Directory and actual file contents.
|
||||||
|
|
||||||
**Report reference policy:**
|
**Important**: After fixing, run both build and tests.
|
||||||
- Use the latest review reports in the Report Directory as primary evidence.
|
- Build verification is mandatory. Run the build (type check) and verify there are no type errors
|
||||||
- Past iteration reports are saved as `{filename}.{timestamp}` in the same directory (e.g., `architect-review.md.20260304T123456Z`). For each report, run Glob with a `{report-name}.*` pattern, read up to 2 files in descending timestamp order, and understand persists / reopened trends before starting fixes.
|
- Running tests is mandatory. After build succeeds, always run tests and verify results
|
||||||
|
|
||||||
**Completion criteria (all must be satisfied):**
|
|
||||||
- All findings in this iteration (new / reopened) have been fixed
|
|
||||||
- Potential occurrences of the same `family_tag` have been fixed simultaneously (no partial fixes that cause recurrence)
|
|
||||||
- At least one regression test per `family_tag` has been added (mandatory for config-contract and boundary-check findings)
|
|
||||||
- Findings with the same `family_tag` from multiple reviewers have been merged and addressed as one fix
|
|
||||||
|
|
||||||
**Important**: After fixing, run the build (type check) and tests.
|
|
||||||
|
|
||||||
**Required output (include headings)**
|
**Required output (include headings)**
|
||||||
## Work results
|
## Work results
|
||||||
@ -21,11 +15,5 @@ Use reports in the Report Directory and fix the issues raised by the reviewer.
|
|||||||
- {Build execution results}
|
- {Build execution results}
|
||||||
## Test results
|
## Test results
|
||||||
- {Test command executed and results}
|
- {Test command executed and results}
|
||||||
## Convergence gate
|
|
||||||
| Metric | Count |
|
|
||||||
|--------|-------|
|
|
||||||
| new (fixed in this iteration) | {N} |
|
|
||||||
| reopened (recurrence fixed) | {N} |
|
|
||||||
| persists (carried over, not addressed this iteration) | {N} |
|
|
||||||
## Evidence
|
## Evidence
|
||||||
- {List key points from files checked/searches/diffs/logs}
|
- {List key points from files checked/searches/diffs/logs}
|
||||||
|
|||||||
@ -41,15 +41,6 @@ Small / Medium / Large
|
|||||||
- **Rationale**: {Reason for the choice}
|
- **Rationale**: {Reason for the choice}
|
||||||
```
|
```
|
||||||
|
|
||||||
**Pre-completion self-check (required):**
|
|
||||||
Before running build and tests, verify the following:
|
|
||||||
- If new parameters/fields were added, grep to confirm they are actually passed from call sites
|
|
||||||
- For any `??`, `||`, `= defaultValue` usage, confirm fallback is truly necessary
|
|
||||||
- Verify no replaced code/exports remain after refactoring
|
|
||||||
- Verify no features outside the task specification were added
|
|
||||||
- Verify no if/else blocks call the same function with only argument differences
|
|
||||||
- Verify new code matches existing implementation patterns (API call style, type definition style, etc.)
|
|
||||||
|
|
||||||
**Required output (include headings)**
|
**Required output (include headings)**
|
||||||
## Work results
|
## Work results
|
||||||
- {Summary of actions taken}
|
- {Summary of actions taken}
|
||||||
|
|||||||
@ -40,15 +40,6 @@ Small / Medium / Large
|
|||||||
- **Rationale**: {Reason for the choice}
|
- **Rationale**: {Reason for the choice}
|
||||||
```
|
```
|
||||||
|
|
||||||
**Pre-completion self-check (required):**
|
|
||||||
Before running build and tests, verify the following:
|
|
||||||
- If new parameters/fields were added, grep to confirm they are actually passed from call sites
|
|
||||||
- For any `??`, `||`, `= defaultValue` usage, confirm fallback is truly necessary
|
|
||||||
- Verify no replaced code/exports remain after refactoring
|
|
||||||
- Verify no features outside the task specification were added
|
|
||||||
- Verify no if/else blocks call the same function with only argument differences
|
|
||||||
- Verify new code matches existing implementation patterns (API call style, type definition style, etc.)
|
|
||||||
|
|
||||||
**Required output (include headings)**
|
**Required output (include headings)**
|
||||||
## Work results
|
## Work results
|
||||||
- {Summary of actions taken}
|
- {Summary of actions taken}
|
||||||
|
|||||||
@ -1,9 +0,0 @@
|
|||||||
The reviewers → fix loop has repeated {cycle_count} times.
|
|
||||||
|
|
||||||
Review the latest review reports in the Report Directory and determine
|
|
||||||
whether this loop is healthy (converging) or unproductive (diverging or oscillating).
|
|
||||||
|
|
||||||
**Judgment criteria:**
|
|
||||||
- Is the number of new / reopened findings decreasing each cycle?
|
|
||||||
- Are the same family_tag findings not repeating (is persists not growing)?
|
|
||||||
- Are fixes actually being applied to the code?
|
|
||||||
@ -19,7 +19,3 @@ For small tasks, skip the design sections in the report.
|
|||||||
4. Determine file structure and design patterns (if needed)
|
4. Determine file structure and design patterns (if needed)
|
||||||
5. Decide on the implementation approach
|
5. Decide on the implementation approach
|
||||||
- Verify the implementation approach does not violate knowledge/policy constraints
|
- Verify the implementation approach does not violate knowledge/policy constraints
|
||||||
6. Include the following in coder implementation guidelines:
|
|
||||||
- Existing implementation patterns to reference (file:line). Always cite when similar processing already exists
|
|
||||||
- Impact area of changes. Especially when adding new parameters, enumerate all call sites that need wiring
|
|
||||||
- Anti-patterns to watch for in this specific task (if applicable)
|
|
||||||
|
|||||||
@ -3,8 +3,6 @@ Do not review AI-specific issues (already covered by the ai_review movement).
|
|||||||
|
|
||||||
**Review criteria:**
|
**Review criteria:**
|
||||||
- Structural and design validity
|
- Structural and design validity
|
||||||
- Modularization (high cohesion, low coupling, no circular dependencies)
|
|
||||||
- Functionalization (single responsibility per function, operation discoverability, consistent abstraction level)
|
|
||||||
- Code quality
|
- Code quality
|
||||||
- Appropriateness of change scope
|
- Appropriateness of change scope
|
||||||
- Test coverage
|
- Test coverage
|
||||||
@ -12,12 +10,6 @@ Do not review AI-specific issues (already covered by the ai_review movement).
|
|||||||
- Call chain verification
|
- Call chain verification
|
||||||
- Scattered hardcoding of contract strings (file names, config key names)
|
- Scattered hardcoding of contract strings (file names, config key names)
|
||||||
|
|
||||||
|
|
||||||
**Design decisions reference:**
|
|
||||||
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
||||||
- Do not flag intentionally documented decisions as FP
|
|
||||||
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
||||||
|
|
||||||
**Previous finding tracking (required):**
|
**Previous finding tracking (required):**
|
||||||
- First, extract open findings from "Previous Response"
|
- First, extract open findings from "Previous Response"
|
||||||
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
||||||
|
|||||||
@ -11,12 +11,6 @@ AI-specific issue review is not needed (already covered by the ai_review movemen
|
|||||||
**Note**: If this project does not use the CQRS+ES pattern,
|
**Note**: If this project does not use the CQRS+ES pattern,
|
||||||
review from a general domain design perspective instead.
|
review from a general domain design perspective instead.
|
||||||
|
|
||||||
|
|
||||||
**Design decisions reference:**
|
|
||||||
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
||||||
- Do not flag intentionally documented decisions as FP
|
|
||||||
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
||||||
|
|
||||||
## Judgment Procedure
|
## Judgment Procedure
|
||||||
|
|
||||||
1. Review the change diff and detect issues based on the CQRS and Event Sourcing criteria above
|
1. Review the change diff and detect issues based on the CQRS and Event Sourcing criteria above
|
||||||
|
|||||||
@ -11,12 +11,6 @@ Review the changes from a frontend development perspective.
|
|||||||
**Note**: If this project does not include a frontend,
|
**Note**: If this project does not include a frontend,
|
||||||
proceed as no issues found.
|
proceed as no issues found.
|
||||||
|
|
||||||
|
|
||||||
**Design decisions reference:**
|
|
||||||
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
||||||
- Do not flag intentionally documented decisions as FP
|
|
||||||
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
||||||
|
|
||||||
## Judgment Procedure
|
## Judgment Procedure
|
||||||
|
|
||||||
1. Review the change diff and detect issues based on the frontend development criteria above
|
1. Review the change diff and detect issues based on the frontend development criteria above
|
||||||
|
|||||||
@ -7,12 +7,6 @@ Review the changes from a quality assurance perspective.
|
|||||||
- Logging and monitoring
|
- Logging and monitoring
|
||||||
- Maintainability
|
- Maintainability
|
||||||
|
|
||||||
|
|
||||||
**Design decisions reference:**
|
|
||||||
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
||||||
- Do not flag intentionally documented decisions as FP
|
|
||||||
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
||||||
|
|
||||||
**Previous finding tracking (required):**
|
**Previous finding tracking (required):**
|
||||||
- First, extract open findings from "Previous Response"
|
- First, extract open findings from "Previous Response"
|
||||||
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
||||||
|
|||||||
@ -6,12 +6,6 @@ Review the changes from a requirements fulfillment perspective.
|
|||||||
- Whether changes outside the scope (scope creep) have crept in
|
- Whether changes outside the scope (scope creep) have crept in
|
||||||
- Whether there are any partial or missing implementations
|
- Whether there are any partial or missing implementations
|
||||||
|
|
||||||
|
|
||||||
**Design decisions reference:**
|
|
||||||
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
||||||
- Do not flag intentionally documented decisions as FP
|
|
||||||
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
||||||
|
|
||||||
**Previous finding tracking (required):**
|
**Previous finding tracking (required):**
|
||||||
- First, extract open findings from "Previous Response"
|
- First, extract open findings from "Previous Response"
|
||||||
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
||||||
|
|||||||
@ -4,12 +4,6 @@ Review the changes from a security perspective. Check for the following vulnerab
|
|||||||
- Data exposure risks
|
- Data exposure risks
|
||||||
- Cryptographic weaknesses
|
- Cryptographic weaknesses
|
||||||
|
|
||||||
|
|
||||||
**Design decisions reference:**
|
|
||||||
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
||||||
- Do not flag intentionally documented decisions as FP
|
|
||||||
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
||||||
|
|
||||||
## Judgment Procedure
|
## Judgment Procedure
|
||||||
|
|
||||||
1. Review the change diff and detect issues based on the security criteria above
|
1. Review the change diff and detect issues based on the security criteria above
|
||||||
|
|||||||
@ -11,12 +11,6 @@ Do not review AI-specific issues (already covered by the ai_review movement).
|
|||||||
- Cost trade-off documentation
|
- Cost trade-off documentation
|
||||||
- Unused variables / outputs / data sources
|
- Unused variables / outputs / data sources
|
||||||
|
|
||||||
|
|
||||||
**Design decisions reference:**
|
|
||||||
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
||||||
- Do not flag intentionally documented decisions as FP
|
|
||||||
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
||||||
|
|
||||||
**Previous finding tracking (required):**
|
**Previous finding tracking (required):**
|
||||||
- First, extract open findings from "Previous Response"
|
- First, extract open findings from "Previous Response"
|
||||||
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
- Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
|
||||||
|
|||||||
@ -7,12 +7,6 @@ Review the changes from a test quality perspective.
|
|||||||
- Completeness (unnecessary tests, missing cases)
|
- Completeness (unnecessary tests, missing cases)
|
||||||
- Appropriateness of mocks and fixtures
|
- Appropriateness of mocks and fixtures
|
||||||
|
|
||||||
|
|
||||||
**Design decisions reference:**
|
|
||||||
Review {report:coder-decisions.md} to understand the recorded design decisions.
|
|
||||||
- Do not flag intentionally documented decisions as FP
|
|
||||||
- However, also evaluate whether the design decisions themselves are sound, and flag any problems
|
|
||||||
|
|
||||||
## Judgment Procedure
|
## Judgment Procedure
|
||||||
|
|
||||||
1. Cross-reference the test plan/test scope reports in the Report Directory with the implemented tests
|
1. Cross-reference the test plan/test scope reports in the Report Directory with the implemented tests
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
Run tests, verify the build, and perform final approval.
|
Run tests, verify the build, and perform final approval.
|
||||||
|
|
||||||
**Overall piece verification:**
|
**Overall piece verification:**
|
||||||
1. Check all reports in the report directory and verify overall piece consistency
|
1. Whether the plan and implementation results are consistent
|
||||||
- Does implementation match the plan?
|
2. Whether findings from each review movement have been addressed
|
||||||
- Were all review movement findings properly addressed?
|
3. Whether each task spec requirement has been achieved
|
||||||
- Was the original task objective achieved?
|
|
||||||
2. Whether each task spec requirement has been achieved
|
|
||||||
- Extract requirements one by one from the task spec
|
- Extract requirements one by one from the task spec
|
||||||
- For each requirement, identify the implementing code (file:line)
|
- For each requirement, identify the implementing code (file:line)
|
||||||
- Verify the code actually fulfills the requirement (read the file, run the test)
|
- Verify the code actually fulfills the requirement (read the file, run the test)
|
||||||
|
|||||||
@ -1,19 +1,17 @@
|
|||||||
Analyze the implementation task and, if decomposition is appropriate, split into multiple parts for parallel execution.
|
Decompose the implementation task into subtasks by file ownership and execute them in parallel. Assign files exclusively to each part to prevent conflicts.
|
||||||
|
|
||||||
**Important:** Reference the plan report: {report:plan.md}
|
**Important:** Reference the plan report: {report:plan.md}
|
||||||
|
|
||||||
**Steps:**
|
**Steps:**
|
||||||
|
|
||||||
1. Assess whether decomposition is appropriate
|
1. Identify files to create/modify
|
||||||
- Identify files to change and check inter-file dependencies
|
- Reference the plan report and test scope to list all files to change
|
||||||
- If cross-cutting concerns exist (shared types, IDs, events), implement in a single part
|
- Review the actual codebase to fill in any missing information
|
||||||
- If few files are involved, or the task is a rename/refactoring, implement in a single part
|
|
||||||
|
|
||||||
2. If decomposing: group files by layer/module
|
2. Group files by layer/module
|
||||||
- Create groups based on high cohesion (e.g., Domain layer / Infrastructure layer / API layer)
|
- Create groups based on high cohesion (e.g., Domain layer / Infrastructure layer / API layer)
|
||||||
- If there are type or interface dependencies, keep both sides in the same group
|
- If there are type or interface dependencies, keep both sides in the same group
|
||||||
- Never assign the same file to multiple parts
|
- Never assign the same file to multiple parts
|
||||||
- Keep test files and implementation files in the same part
|
|
||||||
|
|
||||||
3. Assign file ownership exclusively to each part
|
3. Assign file ownership exclusively to each part
|
||||||
- Each part's instruction must clearly state:
|
- Each part's instruction must clearly state:
|
||||||
|
|||||||
@ -1,66 +0,0 @@
|
|||||||
# Task Decomposition Knowledge
|
|
||||||
|
|
||||||
## Decomposition Feasibility
|
|
||||||
|
|
||||||
Before splitting a task into multiple parts, assess whether decomposition is appropriate. When decomposition is unsuitable, implementing in a single part is more efficient.
|
|
||||||
|
|
||||||
| Criteria | Judgment |
|
|
||||||
|----------|----------|
|
|
||||||
| Changed files clearly separate into layers | Decompose |
|
|
||||||
| Shared types/IDs span multiple parts | Single part |
|
|
||||||
| Broad rename/refactoring | Single part |
|
|
||||||
| Fewer than 5 files to change | Single part |
|
|
||||||
| Same file needs editing by multiple parts | Single part |
|
|
||||||
|
|
||||||
### Detecting Cross-Cutting Concerns
|
|
||||||
|
|
||||||
When any of the following apply, independent parts cannot maintain consistency. Consolidate into a single part.
|
|
||||||
|
|
||||||
- A new ID, key, or type is generated in one module and consumed in another
|
|
||||||
- Both the event emitter and event receiver need changes
|
|
||||||
- An existing interface signature changes, requiring updates to all call sites
|
|
||||||
|
|
||||||
## File Exclusivity Principle
|
|
||||||
|
|
||||||
When decomposing into multiple parts, each part's file ownership must be completely exclusive.
|
|
||||||
|
|
||||||
| Criteria | Judgment |
|
|
||||||
|----------|----------|
|
|
||||||
| Same file edited by multiple parts | REJECT (causes conflicts) |
|
|
||||||
| Type definition and consumer in different parts | Consolidate into the type definition part |
|
|
||||||
| Test file and implementation file in different parts | Consolidate into the same part |
|
|
||||||
|
|
||||||
### Grouping Priority
|
|
||||||
|
|
||||||
1. **By dependency direction** — keep dependency source and target in the same part
|
|
||||||
2. **By layer** — domain layer / infrastructure layer / API layer
|
|
||||||
3. **By feature** — independent functional units
|
|
||||||
|
|
||||||
## Failure Patterns
|
|
||||||
|
|
||||||
### Part Overlap
|
|
||||||
|
|
||||||
When two parts own the same file or feature, sub-agents overwrite each other's changes, causing repeated REJECT in reviews.
|
|
||||||
|
|
||||||
```
|
|
||||||
// NG: part-2 and part-3 own the same file
|
|
||||||
part-2: taskInstructionActions.ts — instruct confirmation dialog
|
|
||||||
part-3: taskInstructionActions.ts — requeue confirmation dialog
|
|
||||||
|
|
||||||
// OK: consolidate into one part
|
|
||||||
part-1: taskInstructionActions.ts — both instruct/requeue confirmation dialogs
|
|
||||||
```
|
|
||||||
|
|
||||||
### Shared Contract Mismatch
|
|
||||||
|
|
||||||
When part A generates an ID that part B consumes, both parts implement independently, leading to mismatches in ID name, type, or passing mechanism.
|
|
||||||
|
|
||||||
```
|
|
||||||
// NG: shared contract across independent parts
|
|
||||||
part-1: generates phaseExecutionId
|
|
||||||
part-2: consumes phaseExecutionId
|
|
||||||
→ part-1 uses string, part-2 expects number → integration error
|
|
||||||
|
|
||||||
// OK: single part for consistent implementation
|
|
||||||
part-1: implements phaseExecutionId from generation to consumption
|
|
||||||
```
|
|
||||||
@ -15,27 +15,22 @@
|
|||||||
| Scope | ✅ | - |
|
| Scope | ✅ | - |
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## Current Iteration Findings (new)
|
||||||
| # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
|
| # | finding_id | Category | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|----------|----------|-------|----------------|
|
|---|------------|----------|----------|-------|----------------|
|
||||||
| 1 | AI-NEW-src-file-L23 | hallucination | Hallucinated API | `src/file.ts:23` | Non-existent method | Replace with existing API |
|
| 1 | AI-NEW-src-file-L23 | Hallucinated API | `src/file.ts:23` | Non-existent method | Replace with existing API |
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
## Carry-over Findings (persists)
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
| # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|---|------------|-------------------|------------------|-------|----------------|
|
||||||
| 1 | AI-PERSIST-src-file-L42 | hallucination | `src/file.ts:42` | `src/file.ts:42` | Still unresolved | Apply prior fix plan |
|
| 1 | AI-PERSIST-src-file-L42 | `src/file.ts:42` | `src/file.ts:42` | Still unresolved | Apply prior fix plan |
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
## Resolved Findings (resolved)
|
||||||
| finding_id | Resolution Evidence |
|
| finding_id | Resolution Evidence |
|
||||||
|------------|---------------------|
|
|------------|---------------------|
|
||||||
| AI-RESOLVED-src-file-L10 | `src/file.ts:10` no longer contains the issue |
|
| AI-RESOLVED-src-file-L10 | `src/file.ts:10` no longer contains the issue |
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | AI-REOPENED-src-file-L55 | hallucination | `Previously fixed at src/file.ts:10` | `Recurred at src/file.ts:55` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Rejection Gate
|
## Rejection Gate
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
- REJECT is valid only when at least one finding exists in `new` or `persists`
|
||||||
- Findings without `finding_id` are invalid
|
- Findings without `finding_id` are invalid
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -15,29 +15,24 @@
|
|||||||
- [x] Call chain verification
|
- [x] Call chain verification
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## Current Iteration Findings (new)
|
||||||
| # | finding_id | family_tag | Scope | Location | Issue | Fix Suggestion |
|
| # | finding_id | Scope | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------|----------|-------|----------------|
|
|---|------------|-------|----------|-------|----------------|
|
||||||
| 1 | ARCH-NEW-src-file-L42 | design-violation | In-scope | `src/file.ts:42` | Issue description | Fix approach |
|
| 1 | ARCH-NEW-src-file-L42 | In-scope | `src/file.ts:42` | Issue description | Fix approach |
|
||||||
|
|
||||||
Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)
|
Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
## Carry-over Findings (persists)
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
| # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|---|------------|-------------------|------------------|-------|----------------|
|
||||||
| 1 | ARCH-PERSIST-src-file-L77 | design-violation | `src/file.ts:77` | `src/file.ts:77` | Still unresolved | Apply prior fix plan |
|
| 1 | ARCH-PERSIST-src-file-L77 | `src/file.ts:77` | `src/file.ts:77` | Still unresolved | Apply prior fix plan |
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
## Resolved Findings (resolved)
|
||||||
| finding_id | Resolution Evidence |
|
| finding_id | Resolution Evidence |
|
||||||
|------------|---------------------|
|
|------------|---------------------|
|
||||||
| ARCH-RESOLVED-src-file-L10 | `src/file.ts:10` now satisfies the rule |
|
| ARCH-RESOLVED-src-file-L10 | `src/file.ts:10` now satisfies the rule |
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | ARCH-REOPENED-src-file-L55 | design-violation | `Previously fixed at src/file.ts:10` | `Recurred at src/file.ts:55` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Rejection Gate
|
## Rejection Gate
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
- REJECT is valid only when at least one finding exists in `new` or `persists`
|
||||||
- Findings without `finding_id` are invalid
|
- Findings without `finding_id` are invalid
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -15,33 +15,13 @@
|
|||||||
| Projections | ✅ | - |
|
| Projections | ✅ | - |
|
||||||
| Eventual consistency | ✅ | - |
|
| Eventual consistency | ✅ | - |
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## Issues (if REJECT)
|
||||||
| # | finding_id | family_tag | Scope | Location | Issue | Fix Suggestion |
|
| # | Scope | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------|----------|-------|----------------|
|
|---|-------|----------|-------|----------------|
|
||||||
| 1 | CQRS-NEW-src-file-L42 | cqrs-violation | In-scope | `src/file.ts:42` | Issue description | Fix approach |
|
| 1 | In-scope | `src/file.ts:42` | Issue description | Fix approach |
|
||||||
|
|
||||||
Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)
|
Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
## Existing Issues (reference, non-blocking)
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
- {Record of existing issues unrelated to the current change}
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|
||||||
| 1 | CQRS-PERSIST-src-file-L77 | cqrs-violation | `src/file.ts:77` | `src/file.ts:77` | Still unresolved | Apply prior fix plan |
|
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
|
||||||
| finding_id | Resolution Evidence |
|
|
||||||
|------------|---------------------|
|
|
||||||
| CQRS-RESOLVED-src-file-L10 | `src/file.ts:10` now satisfies the rule |
|
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | CQRS-REOPENED-src-file-L55 | cqrs-violation | `Previously fixed at src/file.ts:10` | `Recurred at src/file.ts:55` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Rejection Gate
|
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
|
||||||
- Findings without `finding_id` are invalid
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Cognitive load reduction rules:**
|
|
||||||
- APPROVE → Summary only (5 lines or fewer)
|
|
||||||
- REJECT → Include only relevant finding rows (30 lines or fewer)
|
|
||||||
|
|||||||
@ -15,31 +15,8 @@
|
|||||||
| Accessibility | ✅ | - |
|
| Accessibility | ✅ | - |
|
||||||
| Type safety | ✅ | - |
|
| Type safety | ✅ | - |
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## Issues (if REJECT)
|
||||||
| # | finding_id | family_tag | Location | Issue | Fix Suggestion |
|
| # | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|----------|-------|----------------|
|
|---|----------|-------|----------------|
|
||||||
| 1 | FE-NEW-src-file-L42 | component-design | `src/file.tsx:42` | Issue description | Fix approach |
|
| 1 | `src/file.tsx:42` | Issue description | Fix approach |
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|
||||||
| 1 | FE-PERSIST-src-file-L77 | component-design | `src/file.tsx:77` | `src/file.tsx:77` | Still unresolved | Apply prior fix plan |
|
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
|
||||||
| finding_id | Resolution Evidence |
|
|
||||||
|------------|---------------------|
|
|
||||||
| FE-RESOLVED-src-file-L10 | `src/file.tsx:10` now satisfies the rule |
|
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | FE-REOPENED-src-file-L55 | component-design | `Previously fixed at src/file.tsx:10` | `Recurred at src/file.tsx:55` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Rejection Gate
|
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
|
||||||
- Findings without `finding_id` are invalid
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Cognitive load reduction rules:**
|
|
||||||
- APPROVE → Summary only (5 lines or fewer)
|
|
||||||
- REJECT → Include only relevant finding rows (30 lines or fewer)
|
|
||||||
|
|||||||
@ -16,26 +16,21 @@
|
|||||||
| Maintainability | ✅ | - |
|
| Maintainability | ✅ | - |
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## Current Iteration Findings (new)
|
||||||
| # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
|
| # | finding_id | Category | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|----------|----------|-------|----------------|
|
|---|------------|----------|----------|-------|----------------|
|
||||||
| 1 | QA-NEW-src-test-L42 | test-coverage | Testing | `src/test.ts:42` | Missing negative test | Add failure-path test |
|
| 1 | QA-NEW-src-test-L42 | Testing | `src/test.ts:42` | Missing negative test | Add failure-path test |
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
## Carry-over Findings (persists)
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
| # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|---|------------|-------------------|------------------|-------|----------------|
|
||||||
| 1 | QA-PERSIST-src-test-L77 | test-coverage | `src/test.ts:77` | `src/test.ts:77` | Still flaky | Stabilize assertion & setup |
|
| 1 | QA-PERSIST-src-test-L77 | `src/test.ts:77` | `src/test.ts:77` | Still flaky | Stabilize assertion & setup |
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
## Resolved Findings (resolved)
|
||||||
| finding_id | Resolution Evidence |
|
| finding_id | Resolution Evidence |
|
||||||
|------------|---------------------|
|
|------------|---------------------|
|
||||||
| QA-RESOLVED-src-test-L10 | `src/test.ts:10` now covers error path |
|
| QA-RESOLVED-src-test-L10 | `src/test.ts:10` now covers error path |
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | QA-REOPENED-src-test-L55 | test-coverage | `Previously fixed at src/test.ts:10` | `Recurred at src/test.ts:55` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Rejection Gate
|
## Rejection Gate
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
- REJECT is valid only when at least one finding exists in `new` or `persists`
|
||||||
- Findings without `finding_id` are invalid
|
- Findings without `finding_id` are invalid
|
||||||
```
|
```
|
||||||
|
|||||||
@ -20,27 +20,22 @@
|
|||||||
| 1 | {change not in requirements} | `src/file.ts` | Justified/Unnecessary |
|
| 1 | {change not in requirements} | `src/file.ts` | Justified/Unnecessary |
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## Current Iteration Findings (new)
|
||||||
| # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
|
| # | finding_id | Category | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|----------|----------|-------|----------------|
|
|---|------------|----------|----------|-------|----------------|
|
||||||
| 1 | REQ-NEW-src-file-L42 | req-gap | Unimplemented | `src/file.ts:42` | Issue description | Fix suggestion |
|
| 1 | REQ-NEW-src-file-L42 | Unimplemented | `src/file.ts:42` | Issue description | Fix suggestion |
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
## Carry-over Findings (persists)
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
| # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|---|------------|-------------------|------------------|-------|----------------|
|
||||||
| 1 | REQ-PERSIST-src-file-L77 | req-gap | `file:line` | `file:line` | Unresolved | Fix suggestion |
|
| 1 | REQ-PERSIST-src-file-L77 | `file:line` | `file:line` | Unresolved | Fix suggestion |
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
## Resolved Findings (resolved)
|
||||||
| finding_id | Resolution Evidence |
|
| finding_id | Resolution Evidence |
|
||||||
|------------|---------------------|
|
|------------|---------------------|
|
||||||
| REQ-RESOLVED-src-file-L10 | `file:line` now satisfies the requirement |
|
| REQ-RESOLVED-src-file-L10 | `file:line` now satisfies the requirement |
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | REQ-REOPENED-src-file-L55 | req-gap | `Previously fixed at file:line` | `Recurred at file:line` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Rejection Gate
|
## Rejection Gate
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
- REJECT is valid only when at least one finding exists in `new` or `persists`
|
||||||
- Findings without `finding_id` are invalid
|
- Findings without `finding_id` are invalid
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -14,30 +14,25 @@
|
|||||||
| Dependencies | ✅ | - |
|
| Dependencies | ✅ | - |
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## Current Iteration Findings (new)
|
||||||
| # | finding_id | family_tag | Severity | Type | Location | Issue | Fix Suggestion |
|
| # | finding_id | Severity | Type | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|----------|------|----------|-------|----------------|
|
|---|------------|----------|------|----------|-------|----------------|
|
||||||
| 1 | SEC-NEW-src-db-L42 | injection-risk | High | SQLi | `src/db.ts:42` | Raw query string | Use parameterized queries |
|
| 1 | SEC-NEW-src-db-L42 | High | SQLi | `src/db.ts:42` | Raw query string | Use parameterized queries |
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
## Carry-over Findings (persists)
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
| # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|---|------------|-------------------|------------------|-------|----------------|
|
||||||
| 1 | SEC-PERSIST-src-auth-L18 | injection-risk | `src/auth.ts:18` | `src/auth.ts:18` | Weak validation persists | Harden validation |
|
| 1 | SEC-PERSIST-src-auth-L18 | `src/auth.ts:18` | `src/auth.ts:18` | Weak validation persists | Harden validation |
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
## Resolved Findings (resolved)
|
||||||
| finding_id | Resolution Evidence |
|
| finding_id | Resolution Evidence |
|
||||||
|------------|---------------------|
|
|------------|---------------------|
|
||||||
| SEC-RESOLVED-src-db-L10 | `src/db.ts:10` now uses bound parameters |
|
| SEC-RESOLVED-src-db-L10 | `src/db.ts:10` now uses bound parameters |
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | SEC-REOPENED-src-auth-L55 | injection-risk | `Previously fixed at src/auth.ts:20` | `Recurred at src/auth.ts:55` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Warnings (non-blocking)
|
## Warnings (non-blocking)
|
||||||
- {Security recommendations}
|
- {Security recommendations}
|
||||||
|
|
||||||
## Rejection Gate
|
## Rejection Gate
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
- REJECT is valid only when at least one finding exists in `new` or `persists`
|
||||||
- Findings without `finding_id` are invalid
|
- Findings without `finding_id` are invalid
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -4,44 +4,39 @@
|
|||||||
## Result: APPROVE / REJECT
|
## Result: APPROVE / REJECT
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
{Summarize the result in 1-2 sentences}
|
{1-2 sentences summarizing the result}
|
||||||
|
|
||||||
## Reviewed Aspects
|
## Reviewed Aspects
|
||||||
- [x] Variable declarations (type, description, sensitive)
|
- [x] Variable declarations (type, description, sensitive)
|
||||||
- [x] Resource naming (name_prefix pattern)
|
- [x] Resource naming (name_prefix pattern)
|
||||||
- [x] File structure (one concern per file)
|
- [x] File organization (one file per concern)
|
||||||
- [x] Security settings
|
- [x] Security configurations
|
||||||
- [x] Tag management
|
- [x] Tag management
|
||||||
- [x] lifecycle rules
|
- [x] Lifecycle rules
|
||||||
- [x] Cost trade-off documentation
|
- [x] Cost trade-off documentation
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## New Findings (new)
|
||||||
| # | finding_id | family_tag | Scope | Location | Issue | Fix Suggestion |
|
| # | finding_id | Scope | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------|----------|-------|----------------|
|
|---|------------|-------|----------|-------|---------------|
|
||||||
| 1 | TF-NEW-file-L42 | tf-convention | In-scope | `modules/example/main.tf:42` | Issue description | Fix approach |
|
| 1 | TF-NEW-file-L42 | In scope | `modules/example/main.tf:42` | Issue description | How to fix |
|
||||||
|
|
||||||
Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)
|
Scope: "In scope" (fixable now) / "Out of scope" (existing issue, non-blocking)
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
## Persisting Findings (persists)
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
| # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|---|------------|-------------------|------------------|-------|---------------|
|
||||||
| 1 | TF-PERSIST-file-L77 | tf-convention | `file.tf:77` | `file.tf:77` | Still unresolved | Apply prior fix plan |
|
| 1 | TF-PERSIST-file-L77 | `file.tf:77` | `file.tf:77` | Unresolved | Apply existing fix plan |
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
## Resolved
|
||||||
| finding_id | Resolution Evidence |
|
| finding_id | Resolution Evidence |
|
||||||
|------------|---------------------|
|
|------------|-------------------|
|
||||||
| TF-RESOLVED-file-L10 | `file.tf:10` now satisfies the convention |
|
| TF-RESOLVED-file-L10 | `file.tf:10` meets conventions |
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
## REJECT Criteria
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
- REJECT only if 1+ `new` or `persists` findings exist
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | TF-REOPENED-file-L55 | tf-convention | `Previously fixed at file.tf:10` | `Recurred at file.tf:55` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Rejection Gate
|
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
|
||||||
- Findings without `finding_id` are invalid
|
- Findings without `finding_id` are invalid
|
||||||
```
|
```
|
||||||
|
|
||||||
**Cognitive load reduction rules:**
|
**Cognitive load reduction rules:**
|
||||||
- APPROVE → Summary only (5 lines or fewer)
|
- APPROVE → Summary only (5 lines or less)
|
||||||
- REJECT → Include only relevant finding rows (30 lines or fewer)
|
- REJECT → Only relevant findings in table (30 lines or less)
|
||||||
|
|||||||
@ -17,27 +17,22 @@
|
|||||||
| Test strategy (unit/integration/E2E) | ✅ | - |
|
| Test strategy (unit/integration/E2E) | ✅ | - |
|
||||||
|
|
||||||
## Current Iteration Findings (new)
|
## Current Iteration Findings (new)
|
||||||
| # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
|
| # | finding_id | Category | Location | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|----------|----------|-------|----------------|
|
|---|------------|----------|----------|-------|----------------|
|
||||||
| 1 | TEST-NEW-src-test-L42 | test-structure | Coverage | `src/test.ts:42` | Issue description | Fix suggestion |
|
| 1 | TEST-NEW-src-test-L42 | Coverage | `src/test.ts:42` | Issue description | Fix suggestion |
|
||||||
|
|
||||||
## Carry-over Findings (persists)
|
## Carry-over Findings (persists)
|
||||||
| # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
| # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
|
||||||
|---|------------|------------|-------------------|------------------|-------|----------------|
|
|---|------------|-------------------|------------------|-------|----------------|
|
||||||
| 1 | TEST-PERSIST-src-test-L77 | test-structure | `src/test.ts:77` | `src/test.ts:77` | Unresolved | Fix suggestion |
|
| 1 | TEST-PERSIST-src-test-L77 | `src/test.ts:77` | `src/test.ts:77` | Unresolved | Fix suggestion |
|
||||||
|
|
||||||
## Resolved Findings (resolved)
|
## Resolved Findings (resolved)
|
||||||
| finding_id | Resolution Evidence |
|
| finding_id | Resolution Evidence |
|
||||||
|------------|---------------------|
|
|------------|---------------------|
|
||||||
| TEST-RESOLVED-src-test-L10 | `src/test.ts:10` now has sufficient coverage |
|
| TEST-RESOLVED-src-test-L10 | `src/test.ts:10` now has sufficient coverage |
|
||||||
|
|
||||||
## Reopened Findings (reopened)
|
|
||||||
| # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
|
|
||||||
|---|------------|------------|--------------------------|---------------------|-------|----------------|
|
|
||||||
| 1 | TEST-REOPENED-src-test-L55 | test-structure | `Previously fixed at src/test.ts:10` | `Recurred at src/test.ts:55` | Issue description | Fix approach |
|
|
||||||
|
|
||||||
## Rejection Gate
|
## Rejection Gate
|
||||||
- REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
|
- REJECT is valid only when at least one finding exists in `new` or `persists`
|
||||||
- Findings without `finding_id` are invalid
|
- Findings without `finding_id` are invalid
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -81,7 +81,15 @@ You are the **human proxy** in the automated piece. Before approval, verify the
|
|||||||
| Production ready | No mock/stub/TODO remaining? |
|
| Production ready | No mock/stub/TODO remaining? |
|
||||||
| Operation | Actually works as expected? |
|
| Operation | Actually works as expected? |
|
||||||
|
|
||||||
### 6. Spec Compliance Final Check
|
### 6. Backward Compatibility Code Detection
|
||||||
|
|
||||||
|
**Backward compatibility code is unnecessary unless explicitly instructed.** REJECT if found:
|
||||||
|
|
||||||
|
- Unused re-exports, `_var` renames, `// removed` comments
|
||||||
|
- Fallbacks, old API maintenance, migration code
|
||||||
|
- Legacy support kept "just in case"
|
||||||
|
|
||||||
|
### 7. Spec Compliance Final Check
|
||||||
|
|
||||||
**Final verification that changes comply with the project's documented specifications.**
|
**Final verification that changes comply with the project's documented specifications.**
|
||||||
|
|
||||||
@ -107,6 +115,66 @@ Additions can be reverted, but restoring deleted flows is difficult.
|
|||||||
- A "UI fix" task includes structural changes to backend domain models
|
- A "UI fix" task includes structural changes to backend domain models
|
||||||
- A "display change" task rewrites business logic flows
|
- A "display change" task rewrites business logic flows
|
||||||
|
|
||||||
|
### 8. Piece Overall Review
|
||||||
|
|
||||||
|
**Check all reports in the report directory and verify overall piece consistency.**
|
||||||
|
|
||||||
|
Check:
|
||||||
|
- Does implementation match the plan (00-plan.md)?
|
||||||
|
- Were all review step issues properly addressed?
|
||||||
|
- Was the original task objective achieved?
|
||||||
|
|
||||||
|
**Piece-wide issues:**
|
||||||
|
| Issue | Action |
|
||||||
|
|-------|--------|
|
||||||
|
| Plan-implementation gap | REJECT - Request plan revision or implementation fix |
|
||||||
|
| Unaddressed review feedback | REJECT - Point out specific unaddressed items |
|
||||||
|
| Deviation from original purpose | REJECT - Request return to objective |
|
||||||
|
| Scope creep | REJECT - Deletions outside task order must be reverted |
|
||||||
|
|
||||||
|
### 9. Improvement Suggestion Check
|
||||||
|
|
||||||
|
**Check review reports for unaddressed improvement suggestions.**
|
||||||
|
|
||||||
|
Check:
|
||||||
|
- "Improvement Suggestions" section in Architect report
|
||||||
|
- Warnings and suggestions in AI Reviewer report
|
||||||
|
- Recommendations in Security report
|
||||||
|
|
||||||
|
**If there are unaddressed improvement suggestions:**
|
||||||
|
- Judge if the improvement should be addressed in this task
|
||||||
|
- If it should be addressed, **REJECT** and request fix
|
||||||
|
- If it should be addressed in next task, record as "technical debt" in report
|
||||||
|
|
||||||
|
**Judgment criteria:**
|
||||||
|
| Type of suggestion | Decision |
|
||||||
|
|--------------------|----------|
|
||||||
|
| Minor fix in same file | Address now (REJECT) |
|
||||||
|
| Fixable in seconds to minutes | Address now (REJECT) |
|
||||||
|
| Redundant code / unnecessary expression removal | Address now (REJECT) |
|
||||||
|
| Affects other features | Address in next task (record only) |
|
||||||
|
| External impact (API changes, etc.) | Address in next task (record only) |
|
||||||
|
| Requires significant refactoring (large scope) | Address in next task (record only) |
|
||||||
|
|
||||||
|
### Boy Scout Rule
|
||||||
|
|
||||||
|
**"Functionally harmless" is not a free pass.** Classifying a near-zero-cost fix as "non-blocking" or "next task" is a compromise. There is no guarantee it will be addressed in a future task, and it accumulates as technical debt.
|
||||||
|
|
||||||
|
**Principle:** If a reviewer found it and it can be fixed in minutes, make the coder fix it now. Do not settle for recording it as a "non-blocking improvement suggestion."
|
||||||
|
|
||||||
|
## Workaround Detection
|
||||||
|
|
||||||
|
**REJECT** if any of the following remain:
|
||||||
|
|
||||||
|
| Pattern | Example |
|
||||||
|
|---------|---------|
|
||||||
|
| TODO/FIXME | `// TODO: implement later` |
|
||||||
|
| Commented out | Code that should be deleted remains |
|
||||||
|
| Hardcoded | Values that should be config are hardcoded |
|
||||||
|
| Mock data | Dummy data unusable in production |
|
||||||
|
| console.log | Forgotten debug output |
|
||||||
|
| Skipped tests | `@Disabled`, `.skip()` |
|
||||||
|
|
||||||
## Important
|
## Important
|
||||||
|
|
||||||
- **Actually run**: Don't just look at files, execute and verify
|
- **Actually run**: Don't just look at files, execute and verify
|
||||||
|
|||||||
@ -321,6 +321,3 @@ function formatPercentage(value: number): string { ... }
|
|||||||
- **Replaced code surviving after refactoring** - Remove replaced code and exports. Do not keep unless explicitly told to
|
- **Replaced code surviving after refactoring** - Remove replaced code and exports. Do not keep unless explicitly told to
|
||||||
- **Workarounds that bypass safety mechanisms** - If the root fix is correct, no additional bypass is needed
|
- **Workarounds that bypass safety mechanisms** - If the root fix is correct, no additional bypass is needed
|
||||||
- **Direct tool execution bypassing project scripts** - `npx tool` and similar bypass the lockfile, causing version mismatches. Look for project-defined scripts (npm scripts, Makefile, etc.) first. Only consider direct execution when no script exists
|
- **Direct tool execution bypassing project scripts** - `npx tool` and similar bypass the lockfile, causing version mismatches. Look for project-defined scripts (npm scripts, Makefile, etc.) first. Only consider direct execution when no script exists
|
||||||
- **Missing wiring** - When adding new parameters or fields, grep the entire call chain to verify. If callers do not pass the value, `options.xxx ?? fallback` always uses the fallback
|
|
||||||
- **Redundant conditionals** - When if/else calls the same function with only argument differences, unify using ternary operators or spread syntax
|
|
||||||
- **Copy-paste patterns** - Before writing new code, grep for existing implementations of the same kind and follow the existing pattern. Do not introduce your own style
|
|
||||||
|
|||||||
@ -1,17 +1,20 @@
|
|||||||
piece_categories:
|
piece_categories:
|
||||||
🚀 Quick Start:
|
🚀 Quick Start:
|
||||||
pieces:
|
pieces:
|
||||||
- default
|
- default-mini
|
||||||
- frontend-mini
|
- frontend-mini
|
||||||
- backend-mini
|
- backend-mini
|
||||||
|
- default
|
||||||
- compound-eye
|
- compound-eye
|
||||||
⚡ Mini:
|
⚡ Mini:
|
||||||
pieces:
|
pieces:
|
||||||
|
- default-mini
|
||||||
|
- default-test-first-mini
|
||||||
- frontend-mini
|
- frontend-mini
|
||||||
- backend-mini
|
- backend-mini
|
||||||
- backend-cqrs-mini
|
- backend-cqrs-mini
|
||||||
- dual-mini
|
- expert-mini
|
||||||
- dual-cqrs-mini
|
- expert-cqrs-mini
|
||||||
🎨 Frontend:
|
🎨 Frontend:
|
||||||
pieces:
|
pieces:
|
||||||
- frontend
|
- frontend
|
||||||
@ -22,42 +25,35 @@ piece_categories:
|
|||||||
- backend-mini
|
- backend-mini
|
||||||
- backend-cqrs
|
- backend-cqrs
|
||||||
- backend-cqrs-mini
|
- backend-cqrs-mini
|
||||||
🔧 Dual:
|
🔧 Expert:
|
||||||
pieces:
|
pieces:
|
||||||
- dual
|
- expert
|
||||||
- dual-mini
|
- expert-mini
|
||||||
- dual-cqrs
|
- expert-cqrs
|
||||||
- dual-cqrs-mini
|
- expert-cqrs-mini
|
||||||
🏗️ Infrastructure:
|
🏗️ Infrastructure:
|
||||||
pieces:
|
pieces:
|
||||||
- terraform
|
- terraform
|
||||||
|
🛠️ Refactoring:
|
||||||
|
pieces:
|
||||||
|
- structural-reform
|
||||||
🔍 Review:
|
🔍 Review:
|
||||||
pieces:
|
pieces:
|
||||||
- review
|
- review
|
||||||
- review-fix
|
|
||||||
- frontend-review
|
|
||||||
- frontend-review-fix
|
|
||||||
- backend-review
|
|
||||||
- backend-review-fix
|
|
||||||
- dual-review
|
|
||||||
- dual-review-fix
|
|
||||||
- dual-cqrs-review
|
|
||||||
- dual-cqrs-review-fix
|
|
||||||
- backend-cqrs-review
|
|
||||||
- backend-cqrs-review-fix
|
|
||||||
🧪 Testing:
|
🧪 Testing:
|
||||||
pieces:
|
pieces:
|
||||||
- unit-test
|
- unit-test
|
||||||
- e2e-test
|
- e2e-test
|
||||||
|
✅ Test First:
|
||||||
|
pieces:
|
||||||
|
- default-test-first-mini
|
||||||
🎵 TAKT Development:
|
🎵 TAKT Development:
|
||||||
pieces:
|
pieces:
|
||||||
- takt-default
|
- takt-default
|
||||||
- takt-default-team-leader
|
- takt-default-team-leader
|
||||||
- takt-default-review-fix
|
|
||||||
Others:
|
Others:
|
||||||
pieces:
|
pieces:
|
||||||
- research
|
- research
|
||||||
- deep-research
|
|
||||||
- magi
|
- magi
|
||||||
show_others_category: true
|
show_others_category: true
|
||||||
others_category_name: Others
|
others_category_name: Others
|
||||||
|
|||||||
@ -8,19 +8,6 @@ piece_config:
|
|||||||
network_access: true
|
network_access: true
|
||||||
max_movements: 20
|
max_movements: 20
|
||||||
initial_movement: plan
|
initial_movement: plan
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix_both
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: fix_both
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise_fix
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -30,8 +17,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -62,8 +47,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -98,8 +81,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -123,8 +104,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -165,8 +144,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -192,8 +169,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -223,8 +198,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -255,8 +228,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -1,236 +0,0 @@
|
|||||||
name: backend-cqrs-review-fix
|
|
||||||
description: CQRS+ES focused review + fix loop (structure, modularization, domain model, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 30
|
|
||||||
initial_movement: gather
|
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (progress being made)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (repeated findings, fixes not applied)
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: cqrs-es-review
|
|
||||||
edit: false
|
|
||||||
persona: cqrs-es-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- cqrs-es
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-cqrs-es
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: cqrs-es-review.md
|
|
||||||
format: cqrs-es-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: fix
|
|
||||||
|
|
||||||
- name: fix
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- backend
|
|
||||||
- cqrs-es
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
required_permission_mode: edit
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: fix
|
|
||||||
rules:
|
|
||||||
- condition: Fixes complete
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: dual-supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: supervise
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: All validations complete, ready to merge
|
|
||||||
next: COMPLETE
|
|
||||||
- condition: Issues detected
|
|
||||||
next: fix_supervisor
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
|
|
||||||
- name: fix_supervisor
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- backend
|
|
||||||
- cqrs-es
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: fix-supervisor
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: Fixes for supervisor findings complete
|
|
||||||
next: supervise
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
@ -1,160 +0,0 @@
|
|||||||
name: backend-cqrs-review
|
|
||||||
description: CQRS+ES focused review (structure, modularization, domain model, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 10
|
|
||||||
initial_movement: gather
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: cqrs-es-review
|
|
||||||
edit: false
|
|
||||||
persona: cqrs-es-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- cqrs-es
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-cqrs-es
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: cqrs-es-review.md
|
|
||||||
format: cqrs-es-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: supervise
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
rules:
|
|
||||||
- condition: Review integration complete
|
|
||||||
next: COMPLETE
|
|
||||||
@ -8,19 +8,6 @@ piece_config:
|
|||||||
network_access: true
|
network_access: true
|
||||||
max_movements: 30
|
max_movements: 30
|
||||||
initial_movement: plan
|
initial_movement: plan
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: reviewers
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -29,8 +16,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- cqrs-es
|
- cqrs-es
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -60,8 +45,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -95,8 +78,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -125,8 +106,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -149,8 +128,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -170,8 +147,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- cqrs-es
|
- cqrs-es
|
||||||
- backend
|
- backend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -191,8 +166,6 @@ movements:
|
|||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: security
|
knowledge: security
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -213,8 +186,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -245,8 +216,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -266,10 +235,8 @@ movements:
|
|||||||
instruction: fix
|
instruction: fix
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: dual-supervisor
|
persona: expert-supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -301,8 +268,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -8,19 +8,6 @@ piece_config:
|
|||||||
network_access: true
|
network_access: true
|
||||||
max_movements: 20
|
max_movements: 20
|
||||||
initial_movement: plan
|
initial_movement: plan
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix_both
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: fix_both
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise_fix
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -29,8 +16,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -60,8 +45,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -96,8 +79,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -120,8 +101,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -161,8 +140,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -187,8 +164,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -217,8 +192,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -248,8 +221,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -1,210 +0,0 @@
|
|||||||
name: backend-review-fix
|
|
||||||
description: Backend-focused review + fix loop (structure, modularization, hexagonal architecture, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 30
|
|
||||||
initial_movement: gather
|
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (progress being made)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (repeated findings, fixes not applied)
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: fix
|
|
||||||
|
|
||||||
- name: fix
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- backend
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
required_permission_mode: edit
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: fix
|
|
||||||
rules:
|
|
||||||
- condition: Fixes complete
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: dual-supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: supervise
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: All validations complete, ready to merge
|
|
||||||
next: COMPLETE
|
|
||||||
- condition: Issues detected
|
|
||||||
next: fix_supervisor
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
|
|
||||||
- name: fix_supervisor
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- backend
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: fix-supervisor
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: Fixes for supervisor findings complete
|
|
||||||
next: supervise
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
@ -1,136 +0,0 @@
|
|||||||
name: backend-review
|
|
||||||
description: Backend-focused review (structure, modularization, hexagonal architecture, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 10
|
|
||||||
initial_movement: gather
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: supervise
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
rules:
|
|
||||||
- condition: Review integration complete
|
|
||||||
next: COMPLETE
|
|
||||||
@ -8,19 +8,6 @@ piece_config:
|
|||||||
network_access: true
|
network_access: true
|
||||||
max_movements: 30
|
max_movements: 30
|
||||||
initial_movement: plan
|
initial_movement: plan
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: reviewers
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -28,8 +15,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- backend
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -58,8 +43,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -93,8 +76,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -122,8 +103,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -146,8 +125,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -167,8 +144,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- architecture
|
- architecture
|
||||||
- backend
|
- backend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -188,8 +163,6 @@ movements:
|
|||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: security
|
knowledge: security
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -210,8 +183,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -241,8 +212,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -262,10 +231,8 @@ movements:
|
|||||||
instruction: fix
|
instruction: fix
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: dual-supervisor
|
persona: expert-supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -296,8 +263,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -17,8 +17,6 @@ movements:
|
|||||||
provider: claude
|
provider: claude
|
||||||
session: refresh
|
session: refresh
|
||||||
knowledge: architecture
|
knowledge: architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -58,8 +56,6 @@ movements:
|
|||||||
provider: codex
|
provider: codex
|
||||||
session: refresh
|
session: refresh
|
||||||
knowledge: architecture
|
knowledge: architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -99,8 +95,6 @@ movements:
|
|||||||
- name: synthesize
|
- name: synthesize
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -14,8 +14,6 @@ movements:
|
|||||||
policy: research
|
policy: research
|
||||||
knowledge: research
|
knowledge: research
|
||||||
instruction: research-plan
|
instruction: research-plan
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -45,8 +43,6 @@ movements:
|
|||||||
- Grep
|
- Grep
|
||||||
- WebSearch
|
- WebSearch
|
||||||
- WebFetch
|
- WebFetch
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Write
|
- Write
|
||||||
@ -66,8 +62,6 @@ movements:
|
|||||||
knowledge: research
|
knowledge: research
|
||||||
instruction: research-analyze
|
instruction: research-analyze
|
||||||
edit: true
|
edit: true
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Write
|
- Write
|
||||||
@ -85,8 +79,6 @@ movements:
|
|||||||
policy: research
|
policy: research
|
||||||
knowledge: research
|
knowledge: research
|
||||||
instruction: research-supervise
|
instruction: research-supervise
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
219
builtins/en/pieces/default-mini.yaml
Normal file
219
builtins/en/pieces/default-mini.yaml
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
name: default-mini
|
||||||
|
description: Mini development piece (plan -> implement -> parallel review -> fix if needed -> complete)
|
||||||
|
piece_config:
|
||||||
|
provider_options:
|
||||||
|
codex:
|
||||||
|
network_access: true
|
||||||
|
opencode:
|
||||||
|
network_access: true
|
||||||
|
max_movements: 20
|
||||||
|
initial_movement: plan
|
||||||
|
movements:
|
||||||
|
- name: plan
|
||||||
|
edit: false
|
||||||
|
persona: planner
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
rules:
|
||||||
|
- condition: Requirements are clear and implementation is possible
|
||||||
|
next: implement
|
||||||
|
- condition: User is asking a question (not an implementation task)
|
||||||
|
next: COMPLETE
|
||||||
|
- condition: Requirements are unclear, insufficient information
|
||||||
|
next: ABORT
|
||||||
|
instruction: plan
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: plan.md
|
||||||
|
format: plan
|
||||||
|
- name: implement
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
instruction: implement
|
||||||
|
rules:
|
||||||
|
- condition: Implementation complete
|
||||||
|
next: reviewers
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: ABORT
|
||||||
|
- condition: User input required because there are items to confirm with the user
|
||||||
|
next: implement
|
||||||
|
requires_user_input: true
|
||||||
|
interactive_only: true
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: coder-scope.md
|
||||||
|
format: coder-scope
|
||||||
|
- name: coder-decisions.md
|
||||||
|
format: coder-decisions
|
||||||
|
- name: reviewers
|
||||||
|
parallel:
|
||||||
|
- name: ai_review
|
||||||
|
edit: false
|
||||||
|
persona: ai-antipattern-reviewer
|
||||||
|
policy:
|
||||||
|
- review
|
||||||
|
- ai-antipattern
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
instruction: review-ai
|
||||||
|
rules:
|
||||||
|
- condition: No AI-specific issues
|
||||||
|
- condition: AI-specific issues found
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: ai-review.md
|
||||||
|
format: ai-review
|
||||||
|
- name: supervise
|
||||||
|
edit: false
|
||||||
|
persona: supervisor
|
||||||
|
policy: review
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
instruction: supervise
|
||||||
|
rules:
|
||||||
|
- condition: All checks passed
|
||||||
|
- condition: Requirements unmet, tests failing
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: supervisor-validation.md
|
||||||
|
format: supervisor-validation
|
||||||
|
- name: summary.md
|
||||||
|
format: summary
|
||||||
|
use_judge: false
|
||||||
|
rules:
|
||||||
|
- condition: all("No AI-specific issues", "All checks passed")
|
||||||
|
next: COMPLETE
|
||||||
|
- condition: all("AI-specific issues found", "Requirements unmet, tests failing")
|
||||||
|
next: fix_both
|
||||||
|
- condition: any("AI-specific issues found")
|
||||||
|
next: ai_fix
|
||||||
|
- condition: any("Requirements unmet, tests failing")
|
||||||
|
next: supervise_fix
|
||||||
|
- name: fix_both
|
||||||
|
parallel:
|
||||||
|
- name: ai_fix_parallel
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
rules:
|
||||||
|
- condition: AI Reviewer's issues fixed
|
||||||
|
- condition: No fix needed (verified target files/spec)
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
instruction: ai-fix
|
||||||
|
- name: supervise_fix_parallel
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
rules:
|
||||||
|
- condition: Supervisor's issues fixed
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
instruction: fix-supervisor
|
||||||
|
rules:
|
||||||
|
- condition: all("AI Reviewer's issues fixed", "Supervisor's issues fixed")
|
||||||
|
next: reviewers
|
||||||
|
- condition: any("No fix needed (verified target files/spec)", "Cannot proceed, insufficient info")
|
||||||
|
next: implement
|
||||||
|
- name: ai_fix
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
pass_previous_response: false
|
||||||
|
rules:
|
||||||
|
- condition: AI Reviewer's issues fixed
|
||||||
|
next: reviewers
|
||||||
|
- condition: No fix needed (verified target files/spec)
|
||||||
|
next: implement
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: implement
|
||||||
|
instruction: ai-fix
|
||||||
|
- name: supervise_fix
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
pass_previous_response: false
|
||||||
|
rules:
|
||||||
|
- condition: Supervisor's issues fixed
|
||||||
|
next: reviewers
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: implement
|
||||||
|
instruction: fix-supervisor
|
||||||
254
builtins/en/pieces/default-test-first-mini.yaml
Normal file
254
builtins/en/pieces/default-test-first-mini.yaml
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
name: default-test-first-mini
|
||||||
|
description: Test-first development piece (plan -> write tests -> implement -> parallel review -> fix if needed -> complete)
|
||||||
|
piece_config:
|
||||||
|
provider_options:
|
||||||
|
codex:
|
||||||
|
network_access: true
|
||||||
|
opencode:
|
||||||
|
network_access: true
|
||||||
|
max_movements: 25
|
||||||
|
initial_movement: plan
|
||||||
|
movements:
|
||||||
|
- name: plan
|
||||||
|
edit: false
|
||||||
|
persona: planner
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
rules:
|
||||||
|
- condition: Requirements are clear and implementation is possible
|
||||||
|
next: write_tests
|
||||||
|
- condition: User is asking a question (not an implementation task)
|
||||||
|
next: COMPLETE
|
||||||
|
- condition: Requirements are unclear, insufficient information
|
||||||
|
next: ABORT
|
||||||
|
instruction: plan
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: plan.md
|
||||||
|
format: plan
|
||||||
|
- name: write_tests
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
instruction: write-tests-first
|
||||||
|
rules:
|
||||||
|
- condition: Tests written successfully
|
||||||
|
next: implement
|
||||||
|
- condition: Cannot proceed because the test target is not implemented yet, so skip test writing
|
||||||
|
next: implement
|
||||||
|
- condition: Cannot proceed with test creation
|
||||||
|
next: ABORT
|
||||||
|
- condition: User input required because there are items to confirm with the user
|
||||||
|
next: write_tests
|
||||||
|
requires_user_input: true
|
||||||
|
interactive_only: true
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: test-scope.md
|
||||||
|
format: coder-scope
|
||||||
|
- name: test-decisions.md
|
||||||
|
format: coder-decisions
|
||||||
|
- name: implement
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
instruction: implement-after-tests
|
||||||
|
rules:
|
||||||
|
- condition: Implementation complete
|
||||||
|
next: reviewers
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: ABORT
|
||||||
|
- condition: User input required because there are items to confirm with the user
|
||||||
|
next: implement
|
||||||
|
requires_user_input: true
|
||||||
|
interactive_only: true
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: coder-scope.md
|
||||||
|
format: coder-scope
|
||||||
|
- name: coder-decisions.md
|
||||||
|
format: coder-decisions
|
||||||
|
- name: reviewers
|
||||||
|
parallel:
|
||||||
|
- name: ai_review
|
||||||
|
edit: false
|
||||||
|
persona: ai-antipattern-reviewer
|
||||||
|
policy:
|
||||||
|
- review
|
||||||
|
- ai-antipattern
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
instruction: review-ai
|
||||||
|
rules:
|
||||||
|
- condition: No AI-specific issues
|
||||||
|
- condition: AI-specific issues found
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: ai-review.md
|
||||||
|
format: ai-review
|
||||||
|
- name: supervise
|
||||||
|
edit: false
|
||||||
|
persona: supervisor
|
||||||
|
policy: review
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
instruction: supervise
|
||||||
|
rules:
|
||||||
|
- condition: All checks passed
|
||||||
|
- condition: Requirements unmet, tests failing
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: supervisor-validation.md
|
||||||
|
format: supervisor-validation
|
||||||
|
- name: summary.md
|
||||||
|
format: summary
|
||||||
|
use_judge: false
|
||||||
|
rules:
|
||||||
|
- condition: all("No AI-specific issues", "All checks passed")
|
||||||
|
next: COMPLETE
|
||||||
|
- condition: all("AI-specific issues found", "Requirements unmet, tests failing")
|
||||||
|
next: fix_both
|
||||||
|
- condition: any("AI-specific issues found")
|
||||||
|
next: ai_fix
|
||||||
|
- condition: any("Requirements unmet, tests failing")
|
||||||
|
next: supervise_fix
|
||||||
|
- name: fix_both
|
||||||
|
parallel:
|
||||||
|
- name: ai_fix_parallel
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
rules:
|
||||||
|
- condition: AI Reviewer's issues fixed
|
||||||
|
- condition: No fix needed (verified target files/spec)
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
instruction: ai-fix
|
||||||
|
- name: supervise_fix_parallel
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
rules:
|
||||||
|
- condition: Supervisor's issues fixed
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
instruction: fix-supervisor
|
||||||
|
rules:
|
||||||
|
- condition: all("AI Reviewer's issues fixed", "Supervisor's issues fixed")
|
||||||
|
next: reviewers
|
||||||
|
- condition: any("No fix needed (verified target files/spec)", "Cannot proceed, insufficient info")
|
||||||
|
next: implement
|
||||||
|
- name: ai_fix
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
pass_previous_response: false
|
||||||
|
rules:
|
||||||
|
- condition: AI Reviewer's issues fixed
|
||||||
|
next: reviewers
|
||||||
|
- condition: No fix needed (verified target files/spec)
|
||||||
|
next: implement
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: implement
|
||||||
|
instruction: ai-fix
|
||||||
|
- name: supervise_fix
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
pass_previous_response: false
|
||||||
|
rules:
|
||||||
|
- condition: Supervisor's issues fixed
|
||||||
|
next: reviewers
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: implement
|
||||||
|
instruction: fix-supervisor
|
||||||
@ -1,5 +1,5 @@
|
|||||||
name: default
|
name: default
|
||||||
description: Test-first development piece (plan → write tests → implement → AI antipattern review → parallel review → complete)
|
description: Test-first development piece (plan → write tests → implement → AI review → 3-parallel review → fix → supervise → complete)
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
codex:
|
codex:
|
||||||
@ -33,25 +33,11 @@ loop_monitors:
|
|||||||
next: ai_review
|
next: ai_review
|
||||||
- condition: Unproductive (no improvement)
|
- condition: Unproductive (no improvement)
|
||||||
next: reviewers
|
next: reviewers
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: reviewers
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: ABORT
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
persona: planner
|
persona: planner
|
||||||
knowledge: architecture
|
knowledge: architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -82,9 +68,8 @@ movements:
|
|||||||
- coding
|
- coding
|
||||||
- testing
|
- testing
|
||||||
knowledge:
|
knowledge:
|
||||||
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -121,9 +106,8 @@ movements:
|
|||||||
- testing
|
- testing
|
||||||
session: refresh
|
session: refresh
|
||||||
knowledge:
|
knowledge:
|
||||||
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -134,7 +118,6 @@ movements:
|
|||||||
- WebSearch
|
- WebSearch
|
||||||
- WebFetch
|
- WebFetch
|
||||||
required_permission_mode: edit
|
required_permission_mode: edit
|
||||||
instruction: implement-after-tests
|
|
||||||
rules:
|
rules:
|
||||||
- condition: Implementation complete
|
- condition: Implementation complete
|
||||||
next: ai_review
|
next: ai_review
|
||||||
@ -146,6 +129,7 @@ movements:
|
|||||||
next: implement
|
next: implement
|
||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
interactive_only: true
|
interactive_only: true
|
||||||
|
instruction: implement-after-tests
|
||||||
output_contracts:
|
output_contracts:
|
||||||
report:
|
report:
|
||||||
- name: coder-scope.md
|
- name: coder-scope.md
|
||||||
@ -158,20 +142,18 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
- Grep
|
- Grep
|
||||||
- WebSearch
|
- WebSearch
|
||||||
- WebFetch
|
- WebFetch
|
||||||
instruction: ai-review
|
|
||||||
rules:
|
rules:
|
||||||
- condition: No AI-specific issues
|
- condition: No AI-specific issues
|
||||||
next: reviewers
|
next: reviewers
|
||||||
- condition: AI-specific issues found
|
- condition: AI-specific issues found
|
||||||
next: ai_fix
|
next: ai_fix
|
||||||
|
instruction: ai-review
|
||||||
output_contracts:
|
output_contracts:
|
||||||
report:
|
report:
|
||||||
- name: ai-review.md
|
- name: ai-review.md
|
||||||
@ -184,9 +166,8 @@ movements:
|
|||||||
- testing
|
- testing
|
||||||
session: refresh
|
session: refresh
|
||||||
knowledge:
|
knowledge:
|
||||||
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -197,24 +178,38 @@ movements:
|
|||||||
- WebSearch
|
- WebSearch
|
||||||
- WebFetch
|
- WebFetch
|
||||||
required_permission_mode: edit
|
required_permission_mode: edit
|
||||||
instruction: ai-fix
|
|
||||||
pass_previous_response: false
|
pass_previous_response: false
|
||||||
rules:
|
rules:
|
||||||
- condition: AI issues fixed
|
- condition: AI issues fixed
|
||||||
next: ai_review
|
next: ai_review
|
||||||
- condition: No fix needed (verified target files/spec)
|
- condition: No fix needed (verified target files/spec)
|
||||||
|
next: ai_no_fix
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: ai_no_fix
|
||||||
|
instruction: ai-fix
|
||||||
|
- name: ai_no_fix
|
||||||
|
edit: false
|
||||||
|
persona: architecture-reviewer
|
||||||
|
policy: review
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
rules:
|
||||||
|
- condition: ai_review's findings are valid (fix required)
|
||||||
|
next: ai_fix
|
||||||
|
- condition: ai_fix's judgment is valid (no fix needed)
|
||||||
next: reviewers
|
next: reviewers
|
||||||
- condition: Cannot proceed with fixes
|
instruction: arbitrate
|
||||||
next: reviewers
|
|
||||||
- name: reviewers
|
- name: reviewers
|
||||||
parallel:
|
parallel:
|
||||||
- name: arch-review
|
- name: arch-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: architecture
|
knowledge:
|
||||||
provider_options:
|
- architecture
|
||||||
claude:
|
- backend
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -229,34 +224,50 @@ movements:
|
|||||||
report:
|
report:
|
||||||
- name: architect-review.md
|
- name: architect-review.md
|
||||||
format: architecture-review
|
format: architecture-review
|
||||||
- name: supervise
|
- name: qa-review
|
||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: qa-reviewer
|
||||||
policy: review
|
policy:
|
||||||
provider_options:
|
- review
|
||||||
claude:
|
- qa
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
- Grep
|
- Grep
|
||||||
- Bash
|
|
||||||
- WebSearch
|
- WebSearch
|
||||||
- WebFetch
|
- WebFetch
|
||||||
instruction: supervise
|
|
||||||
rules:
|
rules:
|
||||||
- condition: All checks passed
|
- condition: approved
|
||||||
- condition: Requirements unmet, tests failing, build errors
|
- condition: needs_fix
|
||||||
|
instruction: review-qa
|
||||||
output_contracts:
|
output_contracts:
|
||||||
report:
|
report:
|
||||||
- name: supervisor-validation.md
|
- name: qa-review.md
|
||||||
format: supervisor-validation
|
format: qa-review
|
||||||
- name: summary.md
|
- name: testing-review
|
||||||
format: summary
|
edit: false
|
||||||
use_judge: false
|
persona: testing-reviewer
|
||||||
|
policy:
|
||||||
|
- review
|
||||||
|
- testing
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
rules:
|
rules:
|
||||||
- condition: all("approved", "All checks passed")
|
- condition: approved
|
||||||
next: COMPLETE
|
- condition: needs_fix
|
||||||
- condition: any("needs_fix", "Requirements unmet, tests failing, build errors")
|
instruction: review-test
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: testing-review.md
|
||||||
|
format: testing-review
|
||||||
|
rules:
|
||||||
|
- condition: all("approved")
|
||||||
|
next: supervise
|
||||||
|
- condition: any("needs_fix")
|
||||||
next: fix
|
next: fix
|
||||||
- name: fix
|
- name: fix
|
||||||
edit: true
|
edit: true
|
||||||
@ -265,9 +276,8 @@ movements:
|
|||||||
- coding
|
- coding
|
||||||
- testing
|
- testing
|
||||||
knowledge:
|
knowledge:
|
||||||
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -278,10 +288,35 @@ movements:
|
|||||||
- WebSearch
|
- WebSearch
|
||||||
- WebFetch
|
- WebFetch
|
||||||
required_permission_mode: edit
|
required_permission_mode: edit
|
||||||
instruction: fix
|
|
||||||
pass_previous_response: false
|
pass_previous_response: false
|
||||||
rules:
|
rules:
|
||||||
- condition: Fix complete
|
- condition: Fix complete
|
||||||
next: reviewers
|
next: reviewers
|
||||||
- condition: Cannot proceed, insufficient info
|
- condition: Cannot proceed, insufficient info
|
||||||
next: plan
|
next: plan
|
||||||
|
instruction: fix
|
||||||
|
- name: supervise
|
||||||
|
edit: false
|
||||||
|
persona: supervisor
|
||||||
|
policy: review
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
pass_previous_response: false
|
||||||
|
rules:
|
||||||
|
- condition: All checks passed
|
||||||
|
next: COMPLETE
|
||||||
|
- condition: Requirements unmet, tests failing, build errors
|
||||||
|
next: plan
|
||||||
|
instruction: supervise
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: supervisor-validation.md
|
||||||
|
format: supervisor-validation
|
||||||
|
- name: summary.md
|
||||||
|
format: summary
|
||||||
|
use_judge: false
|
||||||
|
|||||||
@ -1,261 +0,0 @@
|
|||||||
name: dual-cqrs-review-fix
|
|
||||||
description: Frontend + CQRS+ES focused review + fix loop (structure, modularization, domain model, component design, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 30
|
|
||||||
initial_movement: gather
|
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (progress being made)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (repeated findings, fixes not applied)
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- frontend
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: cqrs-es-review
|
|
||||||
edit: false
|
|
||||||
persona: cqrs-es-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- cqrs-es
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-cqrs-es
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: cqrs-es-review.md
|
|
||||||
format: cqrs-es-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: frontend-review
|
|
||||||
edit: false
|
|
||||||
persona: frontend-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: frontend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-frontend
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: frontend-review.md
|
|
||||||
format: frontend-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: fix
|
|
||||||
|
|
||||||
- name: fix
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- frontend
|
|
||||||
- backend
|
|
||||||
- cqrs-es
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
required_permission_mode: edit
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: fix
|
|
||||||
rules:
|
|
||||||
- condition: Fixes complete
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: dual-supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: supervise
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: All validations complete, ready to merge
|
|
||||||
next: COMPLETE
|
|
||||||
- condition: Issues detected
|
|
||||||
next: fix_supervisor
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
|
|
||||||
- name: fix_supervisor
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- frontend
|
|
||||||
- backend
|
|
||||||
- cqrs-es
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: fix-supervisor
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: Fixes for supervisor findings complete
|
|
||||||
next: supervise
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
@ -1,183 +0,0 @@
|
|||||||
name: dual-cqrs-review
|
|
||||||
description: Frontend + CQRS+ES focused review (structure, modularization, domain model, component design, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 10
|
|
||||||
initial_movement: gather
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- frontend
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: cqrs-es-review
|
|
||||||
edit: false
|
|
||||||
persona: cqrs-es-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- cqrs-es
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-cqrs-es
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: cqrs-es-review.md
|
|
||||||
format: cqrs-es-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: frontend-review
|
|
||||||
edit: false
|
|
||||||
persona: frontend-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: frontend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-frontend
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: frontend-review.md
|
|
||||||
format: frontend-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: supervise
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
rules:
|
|
||||||
- condition: Review integration complete
|
|
||||||
next: COMPLETE
|
|
||||||
@ -1,235 +0,0 @@
|
|||||||
name: dual-review-fix
|
|
||||||
description: Frontend + backend focused review + fix loop (structure, modularization, component design, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 30
|
|
||||||
initial_movement: gather
|
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (progress being made)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (repeated findings, fixes not applied)
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- frontend
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: frontend-review
|
|
||||||
edit: false
|
|
||||||
persona: frontend-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: frontend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-frontend
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: frontend-review.md
|
|
||||||
format: frontend-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: fix
|
|
||||||
|
|
||||||
- name: fix
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- frontend
|
|
||||||
- backend
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
required_permission_mode: edit
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: fix
|
|
||||||
rules:
|
|
||||||
- condition: Fixes complete
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: dual-supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: supervise
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: All validations complete, ready to merge
|
|
||||||
next: COMPLETE
|
|
||||||
- condition: Issues detected
|
|
||||||
next: fix_supervisor
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
|
|
||||||
- name: fix_supervisor
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- frontend
|
|
||||||
- backend
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: fix-supervisor
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: Fixes for supervisor findings complete
|
|
||||||
next: supervise
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
@ -1,159 +0,0 @@
|
|||||||
name: dual-review
|
|
||||||
description: Frontend + backend focused review (structure, modularization, component design, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 10
|
|
||||||
initial_movement: gather
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- frontend
|
|
||||||
- backend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: frontend-review
|
|
||||||
edit: false
|
|
||||||
persona: frontend-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: frontend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-frontend
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: frontend-review.md
|
|
||||||
format: frontend-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: supervise
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
rules:
|
|
||||||
- condition: Review integration complete
|
|
||||||
next: COMPLETE
|
|
||||||
@ -41,8 +41,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- architecture
|
- architecture
|
||||||
- backend
|
- backend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -76,8 +74,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- backend
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -112,8 +108,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -140,8 +134,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- backend
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -165,8 +157,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -183,8 +173,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -211,8 +199,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- backend
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -234,8 +220,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
name: dual-cqrs-mini
|
name: expert-cqrs-mini
|
||||||
description: CQRS+ES frontend + backend mini development piece (plan -> implement -> parallel review -> fix if needed -> complete) with CQRS+ES knowledge injection
|
description: CQRS+ES Expert-focused mini development piece (plan -> implement -> parallel review -> fix if needed -> complete)
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
codex:
|
codex:
|
||||||
@ -8,19 +8,6 @@ piece_config:
|
|||||||
network_access: true
|
network_access: true
|
||||||
max_movements: 20
|
max_movements: 20
|
||||||
initial_movement: plan
|
initial_movement: plan
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix_both
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: fix_both
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise_fix
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -31,8 +18,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -64,8 +49,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -100,8 +83,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -118,7 +99,7 @@ movements:
|
|||||||
format: ai-review
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: dual-supervisor
|
persona: expert-supervisor
|
||||||
policy: review
|
policy: review
|
||||||
knowledge:
|
knowledge:
|
||||||
- frontend
|
- frontend
|
||||||
@ -126,8 +107,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -169,8 +148,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -197,8 +174,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -229,8 +204,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -262,8 +235,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -1,5 +1,5 @@
|
|||||||
name: dual-cqrs
|
name: expert-cqrs
|
||||||
description: Frontend + backend development piece (CQRS+ES specialized) with CQRS+ES, frontend, security, and QA reviews with fix loops
|
description: CQRS+ES, Frontend, Security, QA Expert Review
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
codex:
|
codex:
|
||||||
@ -21,18 +21,6 @@ loop_monitors:
|
|||||||
next: ai_review
|
next: ai_review
|
||||||
- condition: Unproductive (same findings repeated or fixes not reflected)
|
- condition: Unproductive (same findings repeated or fixes not reflected)
|
||||||
next: ai_no_fix
|
next: ai_no_fix
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (findings decreasing, fixes applied)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (same findings repeating)
|
|
||||||
next: supervise
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -42,8 +30,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- cqrs-es
|
- cqrs-es
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -74,8 +60,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -109,8 +93,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -140,8 +122,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -164,8 +144,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -185,8 +163,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- cqrs-es
|
- cqrs-es
|
||||||
- backend
|
- backend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -206,8 +182,6 @@ movements:
|
|||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: frontend
|
knowledge: frontend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -227,8 +201,6 @@ movements:
|
|||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: security
|
knowledge: security
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -249,8 +221,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -282,8 +252,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -303,10 +271,8 @@ movements:
|
|||||||
instruction: fix
|
instruction: fix
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: dual-supervisor
|
persona: expert-supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -339,8 +305,6 @@ movements:
|
|||||||
- cqrs-es
|
- cqrs-es
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -1,5 +1,5 @@
|
|||||||
name: dual-mini
|
name: expert-mini
|
||||||
description: Frontend + backend mini development piece (plan -> implement -> parallel review -> fix if needed -> complete) with frontend + backend knowledge injection
|
description: Expert-focused mini development piece (plan -> implement -> parallel review -> fix if needed -> complete)
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
codex:
|
codex:
|
||||||
@ -8,19 +8,6 @@ piece_config:
|
|||||||
network_access: true
|
network_access: true
|
||||||
max_movements: 20
|
max_movements: 20
|
||||||
initial_movement: plan
|
initial_movement: plan
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix_both
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: fix_both
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise_fix
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -30,8 +17,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -62,8 +47,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -98,8 +81,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -116,15 +97,13 @@ movements:
|
|||||||
format: ai-review
|
format: ai-review
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: dual-supervisor
|
persona: expert-supervisor
|
||||||
policy: review
|
policy: review
|
||||||
knowledge:
|
knowledge:
|
||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -165,8 +144,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -192,8 +169,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -223,8 +198,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -255,8 +228,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -1,5 +1,5 @@
|
|||||||
name: dual
|
name: expert
|
||||||
description: Frontend + backend development piece with architecture, frontend, security, and QA reviews with fix loops
|
description: Architecture, Frontend, Security, QA Expert Review
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
codex:
|
codex:
|
||||||
@ -21,18 +21,6 @@ loop_monitors:
|
|||||||
next: ai_review
|
next: ai_review
|
||||||
- condition: Unproductive (same findings repeated or fixes not reflected)
|
- condition: Unproductive (same findings repeated or fixes not reflected)
|
||||||
next: ai_no_fix
|
next: ai_no_fix
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: reviewers
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -41,8 +29,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -72,8 +58,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -107,8 +91,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -137,8 +119,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -161,8 +141,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -182,8 +160,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- architecture
|
- architecture
|
||||||
- backend
|
- backend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -203,8 +179,6 @@ movements:
|
|||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: frontend
|
knowledge: frontend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -224,8 +198,6 @@ movements:
|
|||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: security
|
knowledge: security
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -246,8 +218,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -278,8 +248,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -299,10 +267,8 @@ movements:
|
|||||||
instruction: fix
|
instruction: fix
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: dual-supervisor
|
persona: expert-supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -334,8 +300,6 @@ movements:
|
|||||||
- backend
|
- backend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -8,19 +8,6 @@ piece_config:
|
|||||||
network_access: true
|
network_access: true
|
||||||
max_movements: 20
|
max_movements: 20
|
||||||
initial_movement: plan
|
initial_movement: plan
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix_both
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: fix_both
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise_fix
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -29,8 +16,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -60,8 +45,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -96,8 +79,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -120,8 +101,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -161,8 +140,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -187,8 +164,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -217,8 +192,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -248,8 +221,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -1,232 +0,0 @@
|
|||||||
name: frontend-review-fix
|
|
||||||
description: Frontend-focused review + fix loop (structure, modularization, component design, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 30
|
|
||||||
initial_movement: gather
|
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (progress being made)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (repeated findings, fixes not applied)
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- frontend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: frontend-review
|
|
||||||
edit: false
|
|
||||||
persona: frontend-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: frontend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-frontend
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: frontend-review.md
|
|
||||||
format: frontend-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: fix
|
|
||||||
|
|
||||||
- name: fix
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- frontend
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
required_permission_mode: edit
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: fix
|
|
||||||
rules:
|
|
||||||
- condition: Fixes complete
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: dual-supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: supervise
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: All validations complete, ready to merge
|
|
||||||
next: COMPLETE
|
|
||||||
- condition: Issues detected
|
|
||||||
next: fix_supervisor
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
|
|
||||||
- name: fix_supervisor
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- frontend
|
|
||||||
- security
|
|
||||||
- architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: fix-supervisor
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: Fixes for supervisor findings complete
|
|
||||||
next: supervise
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
@ -1,158 +0,0 @@
|
|||||||
name: frontend-review
|
|
||||||
description: Frontend-focused review (structure, modularization, component design, security, QA)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 10
|
|
||||||
initial_movement: gather
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to identify review target, insufficient information
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- frontend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architect-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: frontend-review
|
|
||||||
edit: false
|
|
||||||
persona: frontend-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: frontend
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-frontend
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: frontend-review.md
|
|
||||||
format: frontend-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: supervise
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
rules:
|
|
||||||
- condition: Review integration complete
|
|
||||||
next: COMPLETE
|
|
||||||
@ -8,19 +8,6 @@ piece_config:
|
|||||||
network_access: true
|
network_access: true
|
||||||
max_movements: 30
|
max_movements: 30
|
||||||
initial_movement: plan
|
initial_movement: plan
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: converging (findings decreasing, fixes applied)
|
|
||||||
next: reviewers
|
|
||||||
- condition: unproductive (same findings repeating)
|
|
||||||
next: supervise
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
@ -28,8 +15,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- frontend
|
- frontend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -58,8 +43,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -93,8 +76,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -122,8 +103,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -146,8 +125,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -167,8 +144,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- architecture
|
- architecture
|
||||||
- frontend
|
- frontend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -188,8 +163,6 @@ movements:
|
|||||||
persona: frontend-reviewer
|
persona: frontend-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: frontend
|
knowledge: frontend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -209,8 +182,6 @@ movements:
|
|||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: security
|
knowledge: security
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -231,8 +202,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -262,8 +231,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -283,10 +250,8 @@ movements:
|
|||||||
instruction: fix
|
instruction: fix
|
||||||
- name: supervise
|
- name: supervise
|
||||||
edit: false
|
edit: false
|
||||||
persona: dual-supervisor
|
persona: expert-supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -317,8 +282,6 @@ movements:
|
|||||||
- frontend
|
- frontend
|
||||||
- security
|
- security
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -2,13 +2,6 @@ name: magi
|
|||||||
description: MAGI Deliberation System - Analyze from 3 perspectives and decide by majority
|
description: MAGI Deliberation System - Analyze from 3 perspectives and decide by majority
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
codex:
|
codex:
|
||||||
network_access: true
|
network_access: true
|
||||||
opencode:
|
opencode:
|
||||||
@ -18,6 +11,12 @@ initial_movement: melchior
|
|||||||
movements:
|
movements:
|
||||||
- name: melchior
|
- name: melchior
|
||||||
persona: melchior
|
persona: melchior
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
instruction_template: |
|
instruction_template: |
|
||||||
# MAGI System Initiated
|
# MAGI System Initiated
|
||||||
|
|
||||||
@ -48,6 +47,12 @@ movements:
|
|||||||
next: balthasar
|
next: balthasar
|
||||||
- name: balthasar
|
- name: balthasar
|
||||||
persona: balthasar
|
persona: balthasar
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
instruction_template: |
|
instruction_template: |
|
||||||
# MAGI System Continuing
|
# MAGI System Continuing
|
||||||
|
|
||||||
@ -82,6 +87,12 @@ movements:
|
|||||||
next: casper
|
next: casper
|
||||||
- name: casper
|
- name: casper
|
||||||
persona: casper
|
persona: casper
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
instruction_template: |
|
instruction_template: |
|
||||||
# MAGI System Final Deliberation
|
# MAGI System Final Deliberation
|
||||||
|
|
||||||
|
|||||||
43
builtins/en/pieces/passthrough.yaml
Normal file
43
builtins/en/pieces/passthrough.yaml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
name: passthrough
|
||||||
|
description: Single-agent thin wrapper. Pass task directly to coder as-is.
|
||||||
|
piece_config:
|
||||||
|
provider_options:
|
||||||
|
codex:
|
||||||
|
network_access: true
|
||||||
|
opencode:
|
||||||
|
network_access: true
|
||||||
|
max_movements: 10
|
||||||
|
initial_movement: execute
|
||||||
|
movements:
|
||||||
|
- name: execute
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
rules:
|
||||||
|
- condition: Task complete
|
||||||
|
next: COMPLETE
|
||||||
|
- condition: Cannot proceed
|
||||||
|
next: ABORT
|
||||||
|
- condition: User input required
|
||||||
|
next: execute
|
||||||
|
requires_user_input: true
|
||||||
|
interactive_only: true
|
||||||
|
instruction_template: |
|
||||||
|
Do the task.
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: summary.md
|
||||||
|
format: summary
|
||||||
|
use_judge: false
|
||||||
@ -2,13 +2,6 @@ name: research
|
|||||||
description: Research piece - autonomously executes research without asking questions
|
description: Research piece - autonomously executes research without asking questions
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
codex:
|
codex:
|
||||||
network_access: true
|
network_access: true
|
||||||
opencode:
|
opencode:
|
||||||
@ -21,6 +14,12 @@ movements:
|
|||||||
policy: research
|
policy: research
|
||||||
knowledge: research
|
knowledge: research
|
||||||
instruction: research-plan
|
instruction: research-plan
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
rules:
|
rules:
|
||||||
- condition: Planning is complete
|
- condition: Planning is complete
|
||||||
next: dig
|
next: dig
|
||||||
@ -31,6 +30,12 @@ movements:
|
|||||||
policy: research
|
policy: research
|
||||||
knowledge: research
|
knowledge: research
|
||||||
instruction: research-dig
|
instruction: research-dig
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
rules:
|
rules:
|
||||||
- condition: Research is complete
|
- condition: Research is complete
|
||||||
next: supervise
|
next: supervise
|
||||||
@ -41,6 +46,12 @@ movements:
|
|||||||
policy: research
|
policy: research
|
||||||
knowledge: research
|
knowledge: research
|
||||||
instruction: research-supervise
|
instruction: research-supervise
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
rules:
|
rules:
|
||||||
- condition: Research results adequately answer the original request
|
- condition: Research results adequately answer the original request
|
||||||
next: COMPLETE
|
next: COMPLETE
|
||||||
|
|||||||
@ -1,259 +0,0 @@
|
|||||||
name: review-fix
|
|
||||||
description: Multi-perspective review + fix loop (architecture, security, QA, testing, requirements — 5 parallel reviewers with iterative fixes)
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 30
|
|
||||||
initial_movement: gather
|
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (progress being made)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (repeated findings, fixes not applied)
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Cannot identify review target, insufficient info
|
|
||||||
next: ABORT
|
|
||||||
appendix: |
|
|
||||||
Clarifications needed:
|
|
||||||
- {Question 1}
|
|
||||||
- {Question 2}
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architecture-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: testing-review
|
|
||||||
edit: false
|
|
||||||
persona: testing-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- testing
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-test
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: testing-review.md
|
|
||||||
format: testing-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: requirements-review
|
|
||||||
edit: false
|
|
||||||
persona: requirements-reviewer
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-requirements
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: requirements-review.md
|
|
||||||
format: requirements-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: fix
|
|
||||||
|
|
||||||
- name: fix
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
required_permission_mode: edit
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: fix
|
|
||||||
rules:
|
|
||||||
- condition: Fixes complete
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: supervise
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: All validations complete, ready to merge
|
|
||||||
next: COMPLETE
|
|
||||||
- condition: Issues detected
|
|
||||||
next: fix_supervisor
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
|
|
||||||
- name: fix_supervisor
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: fix-supervisor
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: Fixes for supervisor findings complete
|
|
||||||
next: supervise
|
|
||||||
- condition: Unable to proceed with fixes
|
|
||||||
next: supervise
|
|
||||||
@ -13,8 +13,6 @@ movements:
|
|||||||
- name: gather
|
- name: gather
|
||||||
edit: false
|
edit: false
|
||||||
persona: planner
|
persona: planner
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -44,8 +42,6 @@ movements:
|
|||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: architecture
|
knowledge: architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -67,8 +63,6 @@ movements:
|
|||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: security
|
knowledge: security
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -91,8 +85,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -115,8 +107,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- testing
|
- testing
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -137,8 +127,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: requirements-reviewer
|
persona: requirements-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -165,8 +153,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
488
builtins/en/pieces/structural-reform.yaml
Normal file
488
builtins/en/pieces/structural-reform.yaml
Normal file
@ -0,0 +1,488 @@
|
|||||||
|
name: structural-reform
|
||||||
|
description: Full project review and structural reform - iterative codebase restructuring with staged file splits
|
||||||
|
piece_config:
|
||||||
|
provider_options:
|
||||||
|
codex:
|
||||||
|
network_access: true
|
||||||
|
opencode:
|
||||||
|
network_access: true
|
||||||
|
max_movements: 50
|
||||||
|
initial_movement: review
|
||||||
|
loop_monitors:
|
||||||
|
- cycle:
|
||||||
|
- implement
|
||||||
|
- fix
|
||||||
|
threshold: 3
|
||||||
|
judge:
|
||||||
|
persona: supervisor
|
||||||
|
instruction_template: |
|
||||||
|
The implement -> reviewers -> fix loop has repeated {cycle_count} times for the current reform target.
|
||||||
|
|
||||||
|
Review the reports from each cycle and determine whether this loop
|
||||||
|
is making progress or repeating the same issues.
|
||||||
|
|
||||||
|
**Reports to reference:**
|
||||||
|
- Architect review: {report:architect-review.md}
|
||||||
|
- QA review: {report:qa-review.md}
|
||||||
|
|
||||||
|
**Judgment criteria:**
|
||||||
|
- Are review findings being addressed in each fix cycle?
|
||||||
|
- Are the same issues recurring without resolution?
|
||||||
|
- Is the implementation converging toward approval?
|
||||||
|
rules:
|
||||||
|
- condition: Healthy (making progress toward approval)
|
||||||
|
next: implement
|
||||||
|
- condition: Unproductive (same issues recurring, no convergence)
|
||||||
|
next: next_target
|
||||||
|
movements:
|
||||||
|
- name: review
|
||||||
|
edit: false
|
||||||
|
persona: architecture-reviewer
|
||||||
|
policy: review
|
||||||
|
knowledge:
|
||||||
|
- architecture
|
||||||
|
- backend
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
instruction_template: |
|
||||||
|
## Piece Status
|
||||||
|
- Iteration: {iteration}/{max_movements} (piece-wide)
|
||||||
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
||||||
|
- Movement: review (full project review)
|
||||||
|
|
||||||
|
## User Request
|
||||||
|
{task}
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
Conduct a comprehensive structural review of the entire project codebase.
|
||||||
|
|
||||||
|
**Focus areas:**
|
||||||
|
1. **God Classes/Functions**: Files exceeding 300 lines, classes with multiple responsibilities
|
||||||
|
2. **Coupling**: Circular dependencies, tight coupling between modules
|
||||||
|
3. **Cohesion**: Low-cohesion modules mixing unrelated concerns
|
||||||
|
4. **Testability**: Untestable code due to tight coupling or side effects
|
||||||
|
5. **Layer violations**: Wrong dependency directions, domain logic in adapters
|
||||||
|
6. **DRY violations**: Duplicated logic across 3+ locations
|
||||||
|
|
||||||
|
**For each issue found, report:**
|
||||||
|
- File path and line count
|
||||||
|
- Problem category (God Class, Low Cohesion, etc.)
|
||||||
|
- Severity (Critical / High / Medium)
|
||||||
|
- Specific responsibilities that should be separated
|
||||||
|
- Dependencies that would be affected by splitting
|
||||||
|
|
||||||
|
**Output format:**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Full Project Structural Review
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
- Total files reviewed: N
|
||||||
|
- Issues found: N (Critical: N, High: N, Medium: N)
|
||||||
|
|
||||||
|
## Critical Issues
|
||||||
|
|
||||||
|
### 1. {File path} ({line count} lines)
|
||||||
|
- **Problem**: {category}
|
||||||
|
- **Severity**: Critical
|
||||||
|
- **Responsibilities found**:
|
||||||
|
1. {responsibility 1}
|
||||||
|
2. {responsibility 2}
|
||||||
|
- **Proposed split**:
|
||||||
|
- `{new-file-1}.ts`: {responsibility}
|
||||||
|
- `{new-file-2}.ts`: {responsibility}
|
||||||
|
- **Affected dependents**: {files that import this module}
|
||||||
|
|
||||||
|
## High Priority Issues
|
||||||
|
...
|
||||||
|
|
||||||
|
## Medium Priority Issues
|
||||||
|
...
|
||||||
|
|
||||||
|
## Dependency Graph Concerns
|
||||||
|
- {circular dependencies, layering violations}
|
||||||
|
|
||||||
|
## Recommended Reform Order
|
||||||
|
1. {file} - {reason for priority}
|
||||||
|
2. {file} - {reason for priority}
|
||||||
|
```
|
||||||
|
rules:
|
||||||
|
- condition: Full review is complete with findings
|
||||||
|
next: plan_reform
|
||||||
|
- condition: No structural issues found
|
||||||
|
next: COMPLETE
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: full-review.md
|
||||||
|
format: |
|
||||||
|
```markdown
|
||||||
|
# Full Project Structural Review
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
- Total files reviewed: {N}
|
||||||
|
- Issues found: {N} (Critical: {N}, High: {N}, Medium: {N})
|
||||||
|
|
||||||
|
## Critical Issues
|
||||||
|
|
||||||
|
### 1. {File path} ({line count} lines)
|
||||||
|
- **Problem**: {category}
|
||||||
|
- **Severity**: Critical
|
||||||
|
- **Responsibilities found**:
|
||||||
|
1. {responsibility 1}
|
||||||
|
2. {responsibility 2}
|
||||||
|
- **Proposed split**:
|
||||||
|
- `{new-file-1}.ts`: {responsibility}
|
||||||
|
- `{new-file-2}.ts`: {responsibility}
|
||||||
|
- **Affected dependents**: {files that import this module}
|
||||||
|
|
||||||
|
## High Priority Issues
|
||||||
|
- {Issue}
|
||||||
|
|
||||||
|
## Medium Priority Issues
|
||||||
|
- {Issue}
|
||||||
|
|
||||||
|
## Dependency Graph Concerns
|
||||||
|
- {circular dependencies, layering violations}
|
||||||
|
|
||||||
|
## Recommended Reform Order
|
||||||
|
1. {file} - {reason for priority}
|
||||||
|
2. {file} - {reason for priority}
|
||||||
|
```
|
||||||
|
- name: plan_reform
|
||||||
|
edit: false
|
||||||
|
persona: planner
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
instruction_template: |
|
||||||
|
## Piece Status
|
||||||
|
- Iteration: {iteration}/{max_movements} (piece-wide)
|
||||||
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
||||||
|
- Movement: plan_reform (reform plan creation)
|
||||||
|
|
||||||
|
## User Request
|
||||||
|
{task}
|
||||||
|
|
||||||
|
## Full Review Results
|
||||||
|
{previous_response}
|
||||||
|
|
||||||
|
## Additional User Inputs
|
||||||
|
{user_inputs}
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
Based on the full review results, create a concrete reform execution plan.
|
||||||
|
|
||||||
|
**Planning principles:**
|
||||||
|
- One file split per iteration (keep changes manageable)
|
||||||
|
- Order by dependency: split leaf nodes first, then work inward
|
||||||
|
- Each split must leave tests and build passing
|
||||||
|
- No backward compatibility concerns (per user instruction)
|
||||||
|
|
||||||
|
**For each reform target, specify:**
|
||||||
|
1. Target file and current line count
|
||||||
|
2. Proposed new files with responsibilities
|
||||||
|
3. Expected changes to imports in dependent files
|
||||||
|
4. Test strategy (new tests needed, existing tests to update)
|
||||||
|
5. Risk assessment (what could break)
|
||||||
|
|
||||||
|
**Output format:**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Structural Reform Plan
|
||||||
|
|
||||||
|
## Reform Targets (ordered by execution priority)
|
||||||
|
|
||||||
|
### Target 1: {file path}
|
||||||
|
- **Current state**: {line count} lines, {N} responsibilities
|
||||||
|
- **Proposed split**:
|
||||||
|
| New file | Responsibility | Estimated lines |
|
||||||
|
|----------|---------------|-----------------|
|
||||||
|
| `{path}` | {responsibility} | ~{N} |
|
||||||
|
- **Dependent files**: {list of files that import this}
|
||||||
|
- **Test plan**: {what tests to add/update}
|
||||||
|
- **Risk**: {Low/Medium/High} - {description}
|
||||||
|
|
||||||
|
### Target 2: {file path}
|
||||||
|
...
|
||||||
|
|
||||||
|
## Execution Order Rationale
|
||||||
|
{Why this order minimizes risk and dependency conflicts}
|
||||||
|
|
||||||
|
## Success Criteria
|
||||||
|
- All tests pass after each split
|
||||||
|
- Build succeeds after each split
|
||||||
|
- No file exceeds 300 lines
|
||||||
|
- Each file has single responsibility
|
||||||
|
```
|
||||||
|
rules:
|
||||||
|
- condition: Reform plan is complete and ready to execute
|
||||||
|
next: implement
|
||||||
|
- condition: No actionable reforms identified
|
||||||
|
next: COMPLETE
|
||||||
|
- condition: Requirements unclear, need user input
|
||||||
|
next: ABORT
|
||||||
|
appendix: |
|
||||||
|
Clarifications needed:
|
||||||
|
- {Question 1}
|
||||||
|
- {Question 2}
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: reform-plan.md
|
||||||
|
format: plan
|
||||||
|
- name: implement
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
session: refresh
|
||||||
|
knowledge:
|
||||||
|
- backend
|
||||||
|
- architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
instruction: implement
|
||||||
|
rules:
|
||||||
|
- condition: Implementation complete
|
||||||
|
next: reviewers
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: reviewers
|
||||||
|
- condition: User input required
|
||||||
|
next: implement
|
||||||
|
requires_user_input: true
|
||||||
|
interactive_only: true
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: coder-scope.md
|
||||||
|
format: coder-scope
|
||||||
|
- name: coder-decisions.md
|
||||||
|
format: coder-decisions
|
||||||
|
- name: reviewers
|
||||||
|
parallel:
|
||||||
|
- name: arch-review
|
||||||
|
edit: false
|
||||||
|
persona: architecture-reviewer
|
||||||
|
policy: review
|
||||||
|
knowledge:
|
||||||
|
- architecture
|
||||||
|
- backend
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
rules:
|
||||||
|
- condition: approved
|
||||||
|
- condition: needs_fix
|
||||||
|
instruction: review-arch
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: architect-review.md
|
||||||
|
format: architecture-review
|
||||||
|
- name: qa-review
|
||||||
|
edit: false
|
||||||
|
persona: qa-reviewer
|
||||||
|
policy:
|
||||||
|
- review
|
||||||
|
- qa
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
rules:
|
||||||
|
- condition: approved
|
||||||
|
- condition: needs_fix
|
||||||
|
instruction: review-qa
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: qa-review.md
|
||||||
|
format: qa-review
|
||||||
|
rules:
|
||||||
|
- condition: all("approved")
|
||||||
|
next: verify
|
||||||
|
- condition: any("needs_fix")
|
||||||
|
next: fix
|
||||||
|
- name: fix
|
||||||
|
edit: true
|
||||||
|
persona: coder
|
||||||
|
policy:
|
||||||
|
- coding
|
||||||
|
- testing
|
||||||
|
knowledge:
|
||||||
|
- backend
|
||||||
|
- architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Edit
|
||||||
|
- Write
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
required_permission_mode: edit
|
||||||
|
pass_previous_response: false
|
||||||
|
rules:
|
||||||
|
- condition: Fix complete
|
||||||
|
next: reviewers
|
||||||
|
- condition: Cannot proceed, insufficient info
|
||||||
|
next: plan_reform
|
||||||
|
instruction: fix
|
||||||
|
- name: verify
|
||||||
|
edit: false
|
||||||
|
persona: supervisor
|
||||||
|
policy: review
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
instruction_template: |
|
||||||
|
## Piece Status
|
||||||
|
- Iteration: {iteration}/{max_movements} (piece-wide)
|
||||||
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
||||||
|
- Movement: verify (build and test verification)
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
Verify that the current reform step has been completed successfully.
|
||||||
|
|
||||||
|
**Verification checklist:**
|
||||||
|
1. **Build**: Run the build command and confirm it passes
|
||||||
|
2. **Tests**: Run the test suite and confirm all tests pass
|
||||||
|
3. **File sizes**: Confirm no new file exceeds 300 lines
|
||||||
|
4. **Single responsibility**: Confirm each new file has a clear, single purpose
|
||||||
|
5. **Import consistency**: Confirm all imports are updated correctly
|
||||||
|
|
||||||
|
**Report format:**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Verification Results
|
||||||
|
|
||||||
|
## Result: PASS / FAIL
|
||||||
|
|
||||||
|
| Check | Status | Details |
|
||||||
|
|-------|--------|---------|
|
||||||
|
| Build | PASS/FAIL | {output summary} |
|
||||||
|
| Tests | PASS/FAIL | {N passed, N failed} |
|
||||||
|
| File sizes | PASS/FAIL | {any file > 300 lines} |
|
||||||
|
| Single responsibility | PASS/FAIL | {assessment} |
|
||||||
|
| Import consistency | PASS/FAIL | {any broken imports} |
|
||||||
|
|
||||||
|
## Issues (if FAIL)
|
||||||
|
1. {issue description}
|
||||||
|
```
|
||||||
|
rules:
|
||||||
|
- condition: All verifications passed
|
||||||
|
next: next_target
|
||||||
|
- condition: Verification failed
|
||||||
|
next: fix
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: verification.md
|
||||||
|
format: validation
|
||||||
|
- name: next_target
|
||||||
|
edit: false
|
||||||
|
persona: planner
|
||||||
|
knowledge: architecture
|
||||||
|
allowed_tools:
|
||||||
|
- Read
|
||||||
|
- Glob
|
||||||
|
- Grep
|
||||||
|
- Bash
|
||||||
|
- WebSearch
|
||||||
|
- WebFetch
|
||||||
|
instruction_template: |
|
||||||
|
## Piece Status
|
||||||
|
- Iteration: {iteration}/{max_movements} (piece-wide)
|
||||||
|
- Movement Iteration: {movement_iteration} (times this movement has run)
|
||||||
|
- Movement: next_target (progress check and next target selection)
|
||||||
|
|
||||||
|
## Original Reform Plan
|
||||||
|
{report:reform-plan.md}
|
||||||
|
|
||||||
|
## Latest Verification
|
||||||
|
{previous_response}
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
Assess the progress of the structural reform and determine the next action.
|
||||||
|
|
||||||
|
**Steps:**
|
||||||
|
1. Review the reform plan and identify which targets have been completed
|
||||||
|
2. Check the current codebase state against the plan
|
||||||
|
3. Determine if there are remaining reform targets
|
||||||
|
|
||||||
|
**Output format:**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Reform Progress
|
||||||
|
|
||||||
|
## Completed Targets
|
||||||
|
| # | Target | Status |
|
||||||
|
|---|--------|--------|
|
||||||
|
| 1 | {file} | Completed |
|
||||||
|
| 2 | {file} | Completed |
|
||||||
|
|
||||||
|
## Remaining Targets
|
||||||
|
| # | Target | Priority |
|
||||||
|
|---|--------|----------|
|
||||||
|
| 3 | {file} | Next |
|
||||||
|
| 4 | {file} | Pending |
|
||||||
|
|
||||||
|
## Next Action
|
||||||
|
- **Target**: {next file to reform}
|
||||||
|
- **Plan**: {brief description of the split}
|
||||||
|
|
||||||
|
## Overall Progress
|
||||||
|
{N}/{total} targets completed. Estimated remaining iterations: {N}
|
||||||
|
```
|
||||||
|
rules:
|
||||||
|
- condition: More reform targets remain
|
||||||
|
next: implement
|
||||||
|
- condition: All reform targets completed
|
||||||
|
next: COMPLETE
|
||||||
|
output_contracts:
|
||||||
|
report:
|
||||||
|
- name: progress.md
|
||||||
|
format: |
|
||||||
|
```markdown
|
||||||
|
# Reform Progress
|
||||||
|
|
||||||
|
## Completed Targets
|
||||||
|
| # | Target | Status |
|
||||||
|
|---|--------|--------|
|
||||||
|
| 1 | {file} | Completed |
|
||||||
|
|
||||||
|
## Remaining Targets
|
||||||
|
| # | Target | Priority |
|
||||||
|
|---|--------|----------|
|
||||||
|
| 2 | {file} | Next |
|
||||||
|
|
||||||
|
## Next Action
|
||||||
|
- **Target**: {next file to reform}
|
||||||
|
- **Plan**: {brief description of the split}
|
||||||
|
|
||||||
|
## Overall Progress
|
||||||
|
{N}/{total} targets completed. Estimated remaining iterations: {N}
|
||||||
|
```
|
||||||
@ -1,235 +0,0 @@
|
|||||||
name: takt-default-review-fix
|
|
||||||
description: "TAKT development code review + fix loop (5 parallel reviewers: architecture, security, QA, testing, requirements — with iterative fixes)"
|
|
||||||
piece_config:
|
|
||||||
provider_options:
|
|
||||||
codex:
|
|
||||||
network_access: true
|
|
||||||
opencode:
|
|
||||||
network_access: true
|
|
||||||
max_movements: 30
|
|
||||||
initial_movement: gather
|
|
||||||
loop_monitors:
|
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (progress being made)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (repeated findings, fixes not applied)
|
|
||||||
next: supervise
|
|
||||||
|
|
||||||
movements:
|
|
||||||
- name: gather
|
|
||||||
edit: false
|
|
||||||
persona: planner
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: gather-review
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: review-target.md
|
|
||||||
format: review-gather
|
|
||||||
rules:
|
|
||||||
- condition: Review target information gathered
|
|
||||||
next: reviewers
|
|
||||||
- condition: Cannot identify review target, insufficient info
|
|
||||||
next: ABORT
|
|
||||||
appendix: |
|
|
||||||
Clarifications needed:
|
|
||||||
- {Question 1}
|
|
||||||
- {Question 2}
|
|
||||||
|
|
||||||
- name: reviewers
|
|
||||||
parallel:
|
|
||||||
- name: arch-review
|
|
||||||
edit: false
|
|
||||||
persona: architecture-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge:
|
|
||||||
- architecture
|
|
||||||
- takt
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-arch
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: architecture-review.md
|
|
||||||
format: architecture-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: security-review
|
|
||||||
edit: false
|
|
||||||
persona: security-reviewer
|
|
||||||
policy: review
|
|
||||||
knowledge: security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-security
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: security-review.md
|
|
||||||
format: security-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: qa-review
|
|
||||||
edit: false
|
|
||||||
persona: qa-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- qa
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-qa
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: qa-review.md
|
|
||||||
format: qa-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: testing-review
|
|
||||||
edit: false
|
|
||||||
persona: testing-reviewer
|
|
||||||
policy:
|
|
||||||
- review
|
|
||||||
- testing
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-test
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: testing-review.md
|
|
||||||
format: testing-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
- name: requirements-review
|
|
||||||
edit: false
|
|
||||||
persona: requirements-reviewer
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: review-requirements
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: requirements-review.md
|
|
||||||
format: requirements-review
|
|
||||||
rules:
|
|
||||||
- condition: approved
|
|
||||||
- condition: needs_fix
|
|
||||||
|
|
||||||
rules:
|
|
||||||
- condition: all("approved")
|
|
||||||
next: supervise
|
|
||||||
- condition: any("needs_fix")
|
|
||||||
next: fix
|
|
||||||
|
|
||||||
- name: fix
|
|
||||||
edit: true
|
|
||||||
persona: coder
|
|
||||||
policy:
|
|
||||||
- coding
|
|
||||||
- testing
|
|
||||||
knowledge:
|
|
||||||
- takt
|
|
||||||
- architecture
|
|
||||||
- security
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Edit
|
|
||||||
- Write
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
required_permission_mode: edit
|
|
||||||
pass_previous_response: false
|
|
||||||
instruction: fix
|
|
||||||
rules:
|
|
||||||
- condition: Fix complete
|
|
||||||
next: reviewers
|
|
||||||
- condition: Cannot proceed, insufficient info
|
|
||||||
next: ABORT
|
|
||||||
|
|
||||||
- name: supervise
|
|
||||||
edit: false
|
|
||||||
persona: supervisor
|
|
||||||
policy: review
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
|
||||||
- Read
|
|
||||||
- Glob
|
|
||||||
- Grep
|
|
||||||
- Bash
|
|
||||||
- WebSearch
|
|
||||||
- WebFetch
|
|
||||||
instruction: supervise
|
|
||||||
pass_previous_response: false
|
|
||||||
rules:
|
|
||||||
- condition: All checks passed
|
|
||||||
next: COMPLETE
|
|
||||||
- condition: Requirements unmet, tests failing, build errors
|
|
||||||
next: ABORT
|
|
||||||
output_contracts:
|
|
||||||
report:
|
|
||||||
- name: supervisor-validation.md
|
|
||||||
format: supervisor-validation
|
|
||||||
- name: summary.md
|
|
||||||
format: summary
|
|
||||||
use_judge: false
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
name: takt-default-team-leader
|
name: takt-default-team-leader
|
||||||
description: TAKT development piece with team leader (plan → write tests → team-leader implement → AI antipattern review → 5-parallel review → fix → supervise → complete)
|
description: TAKT development piece with team leader (plan → write tests → team-leader implement → AI review → 5-parallel review → fix → supervise → complete)
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
codex:
|
codex:
|
||||||
@ -15,31 +15,29 @@ loop_monitors:
|
|||||||
threshold: 3
|
threshold: 3
|
||||||
judge:
|
judge:
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
instruction_template: loop-monitor-ai-fix
|
instruction_template: |
|
||||||
|
The ai_review ↔ ai_fix loop has repeated {cycle_count} times.
|
||||||
|
|
||||||
|
Review the reports from each cycle and determine whether this loop
|
||||||
|
is healthy (making progress) or unproductive (repeating the same issues).
|
||||||
|
|
||||||
|
**Reports to reference:**
|
||||||
|
- AI Review results: {report:ai-review.md}
|
||||||
|
|
||||||
|
**Judgment criteria:**
|
||||||
|
- Are new issues being found/fixed in each cycle?
|
||||||
|
- Are the same findings being repeated?
|
||||||
|
- Are fixes actually being applied?
|
||||||
rules:
|
rules:
|
||||||
- condition: Healthy (making progress)
|
- condition: Healthy (making progress)
|
||||||
next: ai_review
|
next: ai_review
|
||||||
- condition: Unproductive (no improvement)
|
- condition: Unproductive (no improvement)
|
||||||
next: reviewers
|
next: reviewers
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (findings decreasing, fixes applied)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (same findings repeating)
|
|
||||||
next: supervise
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
persona: planner
|
persona: planner
|
||||||
knowledge: architecture
|
knowledge: architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -72,8 +70,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- takt
|
- takt
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -112,9 +108,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- takt
|
- takt
|
||||||
- architecture
|
- architecture
|
||||||
- task-decomposition
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -146,7 +139,7 @@ movements:
|
|||||||
- condition: No implementation (report only)
|
- condition: No implementation (report only)
|
||||||
next: ai_review
|
next: ai_review
|
||||||
- condition: Cannot proceed, insufficient info
|
- condition: Cannot proceed, insufficient info
|
||||||
next: plan
|
next: ai_review
|
||||||
- condition: User input required
|
- condition: User input required
|
||||||
next: implement
|
next: implement
|
||||||
requires_user_input: true
|
requires_user_input: true
|
||||||
@ -163,8 +156,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -191,8 +182,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- takt
|
- takt
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -216,8 +205,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -237,8 +224,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- architecture
|
- architecture
|
||||||
- takt
|
- takt
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -259,8 +244,6 @@ movements:
|
|||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: security
|
knowledge: security
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -282,8 +265,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -305,8 +286,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- testing
|
- testing
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -326,8 +305,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: requirements-reviewer
|
persona: requirements-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -357,8 +334,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- takt
|
- takt
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -380,9 +355,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: architecture
|
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
name: takt-default
|
name: takt-default
|
||||||
description: TAKT development piece (plan → write tests → implement → AI antipattern review → 5-parallel review → fix → supervise → complete)
|
description: TAKT development piece (plan → write tests → implement → AI review → 5-parallel review → fix → supervise → complete)
|
||||||
piece_config:
|
piece_config:
|
||||||
provider_options:
|
provider_options:
|
||||||
codex:
|
codex:
|
||||||
@ -33,25 +33,11 @@ loop_monitors:
|
|||||||
next: ai_review
|
next: ai_review
|
||||||
- condition: Unproductive (no improvement)
|
- condition: Unproductive (no improvement)
|
||||||
next: reviewers
|
next: reviewers
|
||||||
- cycle:
|
|
||||||
- reviewers
|
|
||||||
- fix
|
|
||||||
threshold: 3
|
|
||||||
judge:
|
|
||||||
persona: supervisor
|
|
||||||
instruction_template: loop-monitor-reviewers-fix
|
|
||||||
rules:
|
|
||||||
- condition: Healthy (findings decreasing, fixes applied)
|
|
||||||
next: reviewers
|
|
||||||
- condition: Unproductive (same findings repeating)
|
|
||||||
next: supervise
|
|
||||||
movements:
|
movements:
|
||||||
- name: plan
|
- name: plan
|
||||||
edit: false
|
edit: false
|
||||||
persona: planner
|
persona: planner
|
||||||
knowledge: architecture
|
knowledge: architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -84,8 +70,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- takt
|
- takt
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -124,8 +108,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- takt
|
- takt
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -160,8 +142,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -188,8 +168,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- takt
|
- takt
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -213,8 +191,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -234,8 +210,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- architecture
|
- architecture
|
||||||
- takt
|
- takt
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -256,8 +230,6 @@ movements:
|
|||||||
persona: security-reviewer
|
persona: security-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: security
|
knowledge: security
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -279,8 +251,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -302,8 +272,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- testing
|
- testing
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -323,8 +291,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: requirements-reviewer
|
persona: requirements-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -354,8 +320,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- takt
|
- takt
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -377,8 +341,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -13,8 +13,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: planner
|
persona: planner
|
||||||
knowledge: terraform-aws
|
knowledge: terraform-aws
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -40,8 +38,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- terraform
|
- terraform
|
||||||
knowledge: terraform-aws
|
knowledge: terraform-aws
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -81,8 +77,6 @@ movements:
|
|||||||
- review
|
- review
|
||||||
- terraform
|
- terraform
|
||||||
knowledge: terraform-aws
|
knowledge: terraform-aws
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -104,8 +98,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -130,8 +122,6 @@ movements:
|
|||||||
persona: supervisor
|
persona: supervisor
|
||||||
policy: review
|
policy: review
|
||||||
knowledge: terraform-aws
|
knowledge: terraform-aws
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -166,8 +156,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- terraform
|
- terraform
|
||||||
knowledge: terraform-aws
|
knowledge: terraform-aws
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -188,8 +176,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- terraform
|
- terraform
|
||||||
knowledge: terraform-aws
|
knowledge: terraform-aws
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -214,8 +200,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- terraform
|
- terraform
|
||||||
knowledge: terraform-aws
|
knowledge: terraform-aws
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -241,8 +225,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- terraform
|
- terraform
|
||||||
knowledge: terraform-aws
|
knowledge: terraform-aws
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -41,8 +41,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- architecture
|
- architecture
|
||||||
- backend
|
- backend
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -76,8 +74,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- backend
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -112,8 +108,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- ai-antipattern
|
- ai-antipattern
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -140,8 +134,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- backend
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -165,8 +157,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: architecture-reviewer
|
persona: architecture-reviewer
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -183,8 +173,6 @@ movements:
|
|||||||
policy:
|
policy:
|
||||||
- review
|
- review
|
||||||
- qa
|
- qa
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -211,8 +199,6 @@ movements:
|
|||||||
knowledge:
|
knowledge:
|
||||||
- backend
|
- backend
|
||||||
- architecture
|
- architecture
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
@ -234,8 +220,6 @@ movements:
|
|||||||
edit: false
|
edit: false
|
||||||
persona: supervisor
|
persona: supervisor
|
||||||
policy: review
|
policy: review
|
||||||
provider_options:
|
|
||||||
claude:
|
|
||||||
allowed_tools:
|
allowed_tools:
|
||||||
- Read
|
- Read
|
||||||
- Glob
|
- Glob
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# supervise -- Final Verification Instruction Template
|
# supervise -- Final Verification Instruction Template
|
||||||
|
|
||||||
> **Purpose**: Run tests/builds, verify all review results, give final approval
|
> **Purpose**: Run tests/builds, verify all review results, give final approval
|
||||||
> **Agent**: supervisor, dual-supervisor
|
> **Agent**: supervisor, expert-supervisor
|
||||||
> **Reports**: Validation + Summary (format embedded in template)
|
> **Reports**: Validation + Summary (format embedded in template)
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -11,7 +11,7 @@
|
|||||||
```
|
```
|
||||||
Run tests, verify builds, and perform final approval.
|
Run tests, verify builds, and perform final approval.
|
||||||
|
|
||||||
{Customize: Review pass status -- for dual pieces where all reviews have passed}
|
{Customize: Review pass status -- for expert pieces where all reviews have passed}
|
||||||
## Previous Reviews Summary
|
## Previous Reviews Summary
|
||||||
Reaching this movement means all of the following reviews have been APPROVED:
|
Reaching this movement means all of the following reviews have been APPROVED:
|
||||||
{Customize: Actual review list}
|
{Customize: Actual review list}
|
||||||
|
|||||||
@ -49,4 +49,4 @@ All other sections are the same across pieces.
|
|||||||
| minimal | AI Review, Supervisor |
|
| minimal | AI Review, Supervisor |
|
||||||
| coding | AI Review, Architecture |
|
| coding | AI Review, Architecture |
|
||||||
| default | Architecture Design, AI Review, Architect Review, QA, Supervisor |
|
| default | Architecture Design, AI Review, Architect Review, QA, Supervisor |
|
||||||
| dual | AI Review, Architecture, Frontend, Security, QA, Supervisor |
|
| expert | AI Review, Architecture, Frontend, Security, QA, Supervisor |
|
||||||
|
|||||||
@ -2,35 +2,24 @@
|
|||||||
# 配置場所: ~/.takt/config.yaml
|
# 配置場所: ~/.takt/config.yaml
|
||||||
|
|
||||||
# =====================================
|
# =====================================
|
||||||
# 通常設定
|
# 通常設定(ピース非依存)
|
||||||
# =====================================
|
# =====================================
|
||||||
language: ja # 表示言語: ja | en
|
language: ja # 表示言語: ja | en
|
||||||
|
log_level: info # ログレベル: debug | info | warn | error
|
||||||
# デフォルトプロバイダー・モデル
|
provider: claude # デフォルト実行プロバイダー: claude | codex | opencode | mock
|
||||||
# provider: claude # デフォルトプロバイダー: claude | codex | opencode | cursor | copilot | mock
|
# model: sonnet # 省略可。providerに渡すモデル名
|
||||||
# model: sonnet # デフォルトモデル(プロバイダーにそのまま渡される)
|
|
||||||
|
|
||||||
# 実行制御
|
# 実行制御
|
||||||
# worktree_dir: ~/takt-worktrees # 共有clone作成先ディレクトリ
|
# worktree_dir: ~/takt-worktrees # 共有clone作成先ディレクトリ
|
||||||
|
# auto_pr: false # worktree実行後に自動PR作成するか
|
||||||
|
branch_name_strategy: ai # ブランチ名生成: romaji | ai
|
||||||
|
concurrency: 2 # takt run の同時実行数(1-10)
|
||||||
|
# task_poll_interval_ms: 500 # takt run のタスク監視間隔ms(100-5000)
|
||||||
# prevent_sleep: false # macOS実行中のスリープ防止(caffeinate)
|
# prevent_sleep: false # macOS実行中のスリープ防止(caffeinate)
|
||||||
# auto_fetch: false # clone前にfetchして最新化するか
|
|
||||||
# base_branch: main # cloneのベースブランチ(デフォルト: カレントブランチ)
|
|
||||||
# concurrency: 1 # takt run の同時実行タスク数 (1-10)
|
|
||||||
# task_poll_interval_ms: 500 # 新規タスク検出のポーリング間隔(ms, 100-5000)
|
|
||||||
|
|
||||||
# PR / ブランチ
|
|
||||||
# auto_pr: false # worktree実行後にPR自動作成
|
|
||||||
# draft_pr: false # ドラフトPRとして作成
|
|
||||||
# branch_name_strategy: romaji # ブランチ名生成: romaji | ai
|
|
||||||
|
|
||||||
# パイプライン実行
|
|
||||||
# pipeline:
|
|
||||||
# default_branch_prefix: "takt/" # パイプラインで作成するブランチのプレフィックス
|
|
||||||
# commit_message_template: "{title}" # コミットメッセージテンプレート。変数: {title}, {issue}
|
|
||||||
# pr_body_template: "{report}" # PR本文テンプレート。変数: {issue_body}, {report}, {issue}
|
|
||||||
|
|
||||||
# 出力・通知
|
# 出力・通知
|
||||||
# minimal_output: false # エージェント詳細出力を抑制
|
# minimal_output: false # 出力を最小化(CI向け)
|
||||||
|
# verbose: false # 詳細ログを有効化
|
||||||
# notification_sound: true # 通知音全体のON/OFF
|
# notification_sound: true # 通知音全体のON/OFF
|
||||||
# notification_sound_events: # イベント別通知音(未指定はtrue扱い)
|
# notification_sound_events: # イベント別通知音(未指定はtrue扱い)
|
||||||
# iteration_limit: true
|
# iteration_limit: true
|
||||||
@ -38,86 +27,74 @@ language: ja # 表示言語: ja | en
|
|||||||
# piece_abort: true
|
# piece_abort: true
|
||||||
# run_complete: true
|
# run_complete: true
|
||||||
# run_abort: true
|
# run_abort: true
|
||||||
# logging:
|
# observability:
|
||||||
# level: info # ログレベル: debug | info | warn | error
|
|
||||||
# trace: true # trace.md 実行レポート生成
|
|
||||||
# debug: false # debug.log + prompts.jsonl を有効化
|
|
||||||
# provider_events: false # providerイベントログを記録
|
# provider_events: false # providerイベントログを記録
|
||||||
# usage_events: false # 使用量イベントログを記録
|
|
||||||
|
|
||||||
# アナリティクス
|
|
||||||
# analytics:
|
# analytics:
|
||||||
# enabled: true # ローカルアナリティクス収集を有効化
|
# enabled: true # 分析メトリクスの収集を有効化
|
||||||
# events_path: ~/.takt/analytics/events # イベントディレクトリのカスタムパス
|
# events_path: ~/.takt/analytics/events # 分析イベント保存先
|
||||||
# retention_days: 30 # イベントファイルの保持期間(日)
|
# retention_days: 30 # 分析イベント保持日数
|
||||||
|
|
||||||
# インタラクティブモード
|
|
||||||
# interactive_preview_movements: 3 # インタラクティブモードでのムーブメントプレビュー数 (0-10)
|
|
||||||
|
|
||||||
# ペルソナ別プロバイダー・モデル指定
|
|
||||||
# persona_providers:
|
|
||||||
# coder:
|
|
||||||
# provider: claude
|
|
||||||
# model: opus
|
|
||||||
# reviewer:
|
|
||||||
# provider: codex
|
|
||||||
# model: gpt-5.2-codex
|
|
||||||
|
|
||||||
# プロバイダー固有オプション(最低優先度、ピース/ムーブメントで上書き可能)
|
|
||||||
# provider_options:
|
|
||||||
# codex:
|
|
||||||
# network_access: true
|
|
||||||
# claude:
|
|
||||||
# sandbox:
|
|
||||||
# allow_unsandboxed_commands: true
|
|
||||||
|
|
||||||
# プロバイダー権限プロファイル
|
|
||||||
# provider_profiles:
|
|
||||||
# claude:
|
|
||||||
# default_permission_mode: edit
|
|
||||||
# codex:
|
|
||||||
# default_permission_mode: edit
|
|
||||||
|
|
||||||
# ランタイム環境の準備
|
|
||||||
# runtime:
|
|
||||||
# prepare: [node, gradle, ./custom-script.sh]
|
|
||||||
|
|
||||||
# ピースレベルのオーバーライド
|
|
||||||
# piece_overrides:
|
|
||||||
# quality_gates:
|
|
||||||
# - "All tests pass"
|
|
||||||
# quality_gates_edit_only: true
|
|
||||||
# movements:
|
|
||||||
# review:
|
|
||||||
# quality_gates:
|
|
||||||
# - "No security vulnerabilities"
|
|
||||||
# personas:
|
|
||||||
# coder:
|
|
||||||
# quality_gates:
|
|
||||||
# - "Code follows conventions"
|
|
||||||
|
|
||||||
# 認証情報(環境変数優先)
|
# 認証情報(環境変数優先)
|
||||||
# anthropic_api_key: "sk-ant-..." # Claude APIキー
|
# anthropic_api_key: "sk-ant-..." # Claude APIキー
|
||||||
# openai_api_key: "sk-..." # Codex APIキー
|
# openai_api_key: "sk-..." # Codex APIキー
|
||||||
# gemini_api_key: "..." # Gemini APIキー
|
|
||||||
# google_api_key: "..." # Google APIキー
|
|
||||||
# groq_api_key: "..." # Groq APIキー
|
|
||||||
# openrouter_api_key: "..." # OpenRouter APIキー
|
|
||||||
# opencode_api_key: "..." # OpenCode APIキー
|
# opencode_api_key: "..." # OpenCode APIキー
|
||||||
# cursor_api_key: "..." # Cursor APIキー
|
|
||||||
|
|
||||||
# CLIパス
|
|
||||||
# codex_cli_path: "/absolute/path/to/codex" # Codex CLI絶対パス
|
# codex_cli_path: "/absolute/path/to/codex" # Codex CLI絶対パス
|
||||||
# claude_cli_path: "/absolute/path/to/claude" # Claude Code CLI絶対パス
|
|
||||||
# cursor_cli_path: "/absolute/path/to/cursor" # cursor-agent CLI絶対パス
|
# パイプライン
|
||||||
# copilot_cli_path: "/absolute/path/to/copilot" # Copilot CLI絶対パス
|
# pipeline:
|
||||||
# copilot_github_token: "ghp_..." # Copilot GitHubトークン
|
# default_branch_prefix: "takt/" # pipeline作成ブランチの接頭辞
|
||||||
|
# commit_message_template: "feat: {title} (#{issue})" # コミット文テンプレート
|
||||||
|
# pr_body_template: | # PR本文テンプレート
|
||||||
|
# ## Summary
|
||||||
|
# {issue_body}
|
||||||
|
# Closes #{issue}
|
||||||
|
|
||||||
# その他
|
# その他
|
||||||
# bookmarks_file: ~/.takt/preferences/bookmarks.yaml # ブックマーク保存先
|
# bookmarks_file: ~/.takt/preferences/bookmarks.yaml # ブックマーク保存先
|
||||||
|
|
||||||
# ピース一覧/カテゴリ
|
# =====================================
|
||||||
|
# ピースにも関わる設定(global defaults)
|
||||||
|
# =====================================
|
||||||
|
# 1) ペルソナ単位でプロバイダー・モデルを切り替える
|
||||||
|
# persona_providers:
|
||||||
|
# coder:
|
||||||
|
# provider: codex # coderペルソナはcodexで実行
|
||||||
|
# model: o3-mini # 使用モデル(省略可)
|
||||||
|
# reviewer:
|
||||||
|
# provider: claude # reviewerペルソナはclaudeで実行
|
||||||
|
|
||||||
|
# 2) provider 固有オプション
|
||||||
|
# 優先順位(provider/model/provider_options 等の piece 対応キー):
|
||||||
|
# global < piece < project < env
|
||||||
|
# provider_options:
|
||||||
|
# codex:
|
||||||
|
# network_access: true # Codex実行時のネットワークアクセス許可
|
||||||
|
# opencode:
|
||||||
|
# network_access: true # OpenCode実行時のネットワークアクセス許可
|
||||||
|
# claude:
|
||||||
|
# sandbox:
|
||||||
|
# allow_unsandboxed_commands: false # trueで対象コマンドを非サンドボックス実行
|
||||||
|
# excluded_commands:
|
||||||
|
# - "npm publish" # 非サンドボックス対象コマンド
|
||||||
|
|
||||||
|
# 3) movement の権限ポリシー
|
||||||
|
# provider_profiles:
|
||||||
|
# codex:
|
||||||
|
# default_permission_mode: full # 既定権限: readonly | edit | full
|
||||||
|
# movement_permission_overrides:
|
||||||
|
# ai_review: readonly # movement単位の上書き
|
||||||
|
# claude:
|
||||||
|
# default_permission_mode: edit
|
||||||
|
|
||||||
|
# 4) 実行前のランタイム準備(推奨: 有効化)
|
||||||
|
runtime:
|
||||||
|
prepare:
|
||||||
|
- gradle # Gradleキャッシュ/環境を .runtime 配下に準備
|
||||||
|
- node # npmキャッシュ/環境を .runtime 配下に準備
|
||||||
|
|
||||||
|
# 5) ピース一覧/カテゴリ
|
||||||
# enable_builtin_pieces: true # builtins/{lang}/pieces を有効化
|
# enable_builtin_pieces: true # builtins/{lang}/pieces を有効化
|
||||||
# disabled_builtins:
|
# disabled_builtins:
|
||||||
# - magi # 無効化するビルトインピース名
|
# - magi # 無効化するビルトインピース名
|
||||||
# piece_categories_file: ~/.takt/preferences/piece-categories.yaml # カテゴリ定義ファイル
|
# piece_categories_file: ~/.takt/preferences/piece-categories.yaml # カテゴリ定義ファイル
|
||||||
|
# interactive_preview_movements: 3 # 対話モードのプレビュー件数(0-10)
|
||||||
|
|||||||
@ -1,16 +1,10 @@
|
|||||||
Report Directory内のレビューレポートを確認し、指摘事項を修正してください。
|
レビュアーのフィードバックに対応してください。
|
||||||
|
Piece Contextに示されたReport Directory内のレポートを確認し、レビュアーの指摘事項を修正してください。
|
||||||
|
必要な根拠はReport Directory内のファイルを一次情報として取得してください。不足情報の補完が必要な場合に限り、Previous Responseや会話履歴を補助的に参照して構いません(Previous Responseは提供されない場合があります)。情報が競合する場合は、Report Directory内のレポートと実際のファイル内容を優先してください。
|
||||||
|
|
||||||
**レポート参照方針:**
|
**重要**: 修正後、ビルドとテストの両方を実行してください。
|
||||||
- Report Directory内の最新レビューレポートを一次情報として参照してください。
|
- ビルド確認は必須。ビルド(型チェック)を実行し、型エラーがないことを確認
|
||||||
- 過去イテレーションのレポートは `{ファイル名}.{タイムスタンプ}` 形式で同ディレクトリに保存されています(例: `architect-review.md.20260304T123456Z`)。各レポートについて `{レポート名}.*` パターンで Glob を実行し、タイムスタンプ降順で最大2件まで読み、persists / reopened の傾向を把握してから修正に入ること。
|
- テスト実行は必須。ビルド成功後、必ずテストを実行して結果を確認
|
||||||
|
|
||||||
**完了条件(以下をすべて満たすこと):**
|
|
||||||
- 今回受け取った全指摘(new / reopened)を修正したこと
|
|
||||||
- 同一 `family_tag` の潜在箇所を同時に修正したこと(部分修正で再発させない)
|
|
||||||
- `family_tag` ごとに最低1件の再発防止テストを追加したこと(config契約/境界チェック系は必須)
|
|
||||||
- 複数レビュアーから同一 `family_tag` の指摘が届いている場合は1件に統合して対応したこと
|
|
||||||
|
|
||||||
**重要**: 修正後、ビルド(型チェック)とテストを必ず実行してください。
|
|
||||||
|
|
||||||
**必須出力(見出しを含める)**
|
**必須出力(見出しを含める)**
|
||||||
## 作業結果
|
## 作業結果
|
||||||
@ -21,11 +15,5 @@ Report Directory内のレビューレポートを確認し、指摘事項を修
|
|||||||
- {ビルド実行結果}
|
- {ビルド実行結果}
|
||||||
## テスト結果
|
## テスト結果
|
||||||
- {テスト実行コマンドと結果}
|
- {テスト実行コマンドと結果}
|
||||||
## 収束ゲート
|
|
||||||
| 指標 | 件数 |
|
|
||||||
|------|------|
|
|
||||||
| new(今回修正) | {N} |
|
|
||||||
| reopened(再発修正) | {N} |
|
|
||||||
| persists(前回から継続、今回未着手) | {N} |
|
|
||||||
## 証拠
|
## 証拠
|
||||||
- {確認したファイル/検索/差分/ログの要点を列挙}
|
- {確認したファイル/検索/差分/ログの要点を列挙}
|
||||||
|
|||||||
@ -41,15 +41,6 @@ Small / Medium / Large
|
|||||||
- **理由**: {選んだ理由}
|
- **理由**: {選んだ理由}
|
||||||
```
|
```
|
||||||
|
|
||||||
**実装完了前の自己チェック(必須):**
|
|
||||||
ビルドとテストを実行する前に、以下を確認してください:
|
|
||||||
- 新しいパラメータ/フィールドを追加した場合、grep で呼び出し元から実際に渡されているか確認した
|
|
||||||
- `??`, `||`, `= defaultValue` を使った箇所で、フォールバックが本当に必要か確認した
|
|
||||||
- リファクタリングで置き換えたコード・エクスポートが残っていないか確認した
|
|
||||||
- タスク指示書にない機能を追加していないか確認した
|
|
||||||
- if/else で同一関数を呼び出し、引数の差異のみになっていないか確認した
|
|
||||||
- 新しいコードが既存の実装パターン(API呼び出し方式、型定義方式等)と一致しているか確認した
|
|
||||||
|
|
||||||
**必須出力(見出しを含める)**
|
**必須出力(見出しを含める)**
|
||||||
## 作業結果
|
## 作業結果
|
||||||
- {実施内容の要約}
|
- {実施内容の要約}
|
||||||
|
|||||||
@ -40,15 +40,6 @@ Small / Medium / Large
|
|||||||
- **理由**: {選んだ理由}
|
- **理由**: {選んだ理由}
|
||||||
```
|
```
|
||||||
|
|
||||||
**実装完了前の自己チェック(必須):**
|
|
||||||
ビルドとテストを実行する前に、以下を確認してください:
|
|
||||||
- 新しいパラメータ/フィールドを追加した場合、grep で呼び出し元から実際に渡されているか確認した
|
|
||||||
- `??`, `||`, `= defaultValue` を使った箇所で、フォールバックが本当に必要か確認した
|
|
||||||
- リファクタリングで置き換えたコード・エクスポートが残っていないか確認した
|
|
||||||
- タスク指示書にない機能を追加していないか確認した
|
|
||||||
- if/else で同一関数を呼び出し、引数の差異のみになっていないか確認した
|
|
||||||
- 新しいコードが既存の実装パターン(API呼び出し方式、型定義方式等)と一致しているか確認した
|
|
||||||
|
|
||||||
**必須出力(見出しを含める)**
|
**必須出力(見出しを含める)**
|
||||||
## 作業結果
|
## 作業結果
|
||||||
- {実施内容の要約}
|
- {実施内容の要約}
|
||||||
|
|||||||
@ -1,9 +0,0 @@
|
|||||||
reviewers → fix のループが {cycle_count} 回繰り返されました。
|
|
||||||
|
|
||||||
Report Directory 内の最新レビューレポートを確認し、
|
|
||||||
このループが健全(収束傾向)か非生産的(発散・振動)かを判断してください。
|
|
||||||
|
|
||||||
**判断基準:**
|
|
||||||
- 各サイクルで new / reopened の指摘件数が減少しているか
|
|
||||||
- 同じ family_tag の指摘が繰り返されていないか(persists が増えていないか)
|
|
||||||
- 修正が実際にコードに反映されているか
|
|
||||||
@ -25,7 +25,3 @@
|
|||||||
5. ファイル構成・設計パターンを決定する(必要な場合)
|
5. ファイル構成・設計パターンを決定する(必要な場合)
|
||||||
6. 実装アプローチを決める
|
6. 実装アプローチを決める
|
||||||
- 実装アプローチがナレッジ・ポリシーの制約に違反しないか照合する
|
- 実装アプローチがナレッジ・ポリシーの制約に違反しないか照合する
|
||||||
7. Coder向けの実装ガイドラインに以下を含めること:
|
|
||||||
- 参照すべき既存実装パターン(ファイル:行)。同種の処理が既にある場合は必ず示す
|
|
||||||
- 変更の影響範囲。特に新しいパラメータを追加する場合、配線が必要な全箇所を列挙する
|
|
||||||
- このタスクで特に注意すべきアンチパターン(該当するものがあれば)
|
|
||||||
|
|||||||
@ -3,8 +3,6 @@ AI特有の問題はレビューしないでください(ai_reviewムーブメ
|
|||||||
|
|
||||||
**レビュー観点:**
|
**レビュー観点:**
|
||||||
- 構造・設計の妥当性
|
- 構造・設計の妥当性
|
||||||
- モジュール化(高凝集・低結合・循環依存)
|
|
||||||
- 関数化(1関数1責務・操作の一覧性・抽象度の一致)
|
|
||||||
- コード品質
|
- コード品質
|
||||||
- 変更スコープの適切性
|
- 変更スコープの適切性
|
||||||
- テストカバレッジ
|
- テストカバレッジ
|
||||||
@ -12,12 +10,6 @@ AI特有の問題はレビューしないでください(ai_reviewムーブメ
|
|||||||
- 呼び出しチェーン検証
|
- 呼び出しチェーン検証
|
||||||
- 契約文字列(ファイル名・設定キー名)のハードコード散在
|
- 契約文字列(ファイル名・設定キー名)のハードコード散在
|
||||||
|
|
||||||
|
|
||||||
**設計判断の参照:**
|
|
||||||
{report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
|
|
||||||
- 記録された意図的な判断は FP として指摘しない
|
|
||||||
- ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
|
|
||||||
|
|
||||||
**前回指摘の追跡(必須):**
|
**前回指摘の追跡(必須):**
|
||||||
- まず「Previous Response」から前回の open findings を抽出する
|
- まず「Previous Response」から前回の open findings を抽出する
|
||||||
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
|
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
|
||||||
|
|||||||
@ -11,12 +11,6 @@ CQRS(コマンドクエリ責務分離)とEvent Sourcing(イベントソ
|
|||||||
**注意**: このプロジェクトがCQRS+ESパターンを使用していない場合は、
|
**注意**: このプロジェクトがCQRS+ESパターンを使用していない場合は、
|
||||||
一般的なドメイン設計の観点からレビューしてください。
|
一般的なドメイン設計の観点からレビューしてください。
|
||||||
|
|
||||||
|
|
||||||
**設計判断の参照:**
|
|
||||||
{report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
|
|
||||||
- 記録された意図的な判断は FP として指摘しない
|
|
||||||
- ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
|
|
||||||
|
|
||||||
## 判定手順
|
## 判定手順
|
||||||
|
|
||||||
1. 変更差分を確認し、CQRS・イベントソーシングの観点に基づいて問題を検出する
|
1. 変更差分を確認し、CQRS・イベントソーシングの観点に基づいて問題を検出する
|
||||||
|
|||||||
@ -11,12 +11,6 @@
|
|||||||
**注意**: このプロジェクトがフロントエンドを含まない場合は、
|
**注意**: このプロジェクトがフロントエンドを含まない場合は、
|
||||||
問題なしとして次に進んでください。
|
問題なしとして次に進んでください。
|
||||||
|
|
||||||
|
|
||||||
**設計判断の参照:**
|
|
||||||
{report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
|
|
||||||
- 記録された意図的な判断は FP として指摘しない
|
|
||||||
- ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
|
|
||||||
|
|
||||||
## 判定手順
|
## 判定手順
|
||||||
|
|
||||||
1. 変更差分を確認し、フロントエンド開発の観点に基づいて問題を検出する
|
1. 変更差分を確認し、フロントエンド開発の観点に基づいて問題を検出する
|
||||||
|
|||||||
@ -7,12 +7,6 @@
|
|||||||
- ログとモニタリング
|
- ログとモニタリング
|
||||||
- 保守性
|
- 保守性
|
||||||
|
|
||||||
|
|
||||||
**設計判断の参照:**
|
|
||||||
{report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
|
|
||||||
- 記録された意図的な判断は FP として指摘しない
|
|
||||||
- ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
|
|
||||||
|
|
||||||
**前回指摘の追跡(必須):**
|
**前回指摘の追跡(必須):**
|
||||||
- まず「Previous Response」から前回の open findings を抽出する
|
- まず「Previous Response」から前回の open findings を抽出する
|
||||||
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
|
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
|
||||||
|
|||||||
@ -6,12 +6,6 @@
|
|||||||
- 要求にない変更(スコープクリープ)が紛れていないか
|
- 要求にない変更(スコープクリープ)が紛れていないか
|
||||||
- 部分実装や未実装がないか
|
- 部分実装や未実装がないか
|
||||||
|
|
||||||
|
|
||||||
**設計判断の参照:**
|
|
||||||
{report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
|
|
||||||
- 記録された意図的な判断は FP として指摘しない
|
|
||||||
- ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
|
|
||||||
|
|
||||||
**前回指摘の追跡(必須):**
|
**前回指摘の追跡(必須):**
|
||||||
- まず「Previous Response」から前回の open findings を抽出する
|
- まず「Previous Response」から前回の open findings を抽出する
|
||||||
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
|
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
|
||||||
|
|||||||
@ -4,12 +4,6 @@
|
|||||||
- データ露出リスク
|
- データ露出リスク
|
||||||
- 暗号化の弱点
|
- 暗号化の弱点
|
||||||
|
|
||||||
|
|
||||||
**設計判断の参照:**
|
|
||||||
{report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
|
|
||||||
- 記録された意図的な判断は FP として指摘しない
|
|
||||||
- ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
|
|
||||||
|
|
||||||
## 判定手順
|
## 判定手順
|
||||||
|
|
||||||
1. 変更差分を確認し、セキュリティの観点に基づいて問題を検出する
|
1. 変更差分を確認し、セキュリティの観点に基づいて問題を検出する
|
||||||
|
|||||||
@ -11,12 +11,6 @@ AI特有の問題はレビューしないでください(ai_reviewムーブメ
|
|||||||
- コストトレードオフの文書化
|
- コストトレードオフの文書化
|
||||||
- 未使用の variable / output / data source
|
- 未使用の variable / output / data source
|
||||||
|
|
||||||
|
|
||||||
**設計判断の参照:**
|
|
||||||
{report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
|
|
||||||
- 記録された意図的な判断は FP として指摘しない
|
|
||||||
- ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
|
|
||||||
|
|
||||||
**前回指摘の追跡(必須):**
|
**前回指摘の追跡(必須):**
|
||||||
- まず「Previous Response」から前回の open findings を抽出する
|
- まず「Previous Response」から前回の open findings を抽出する
|
||||||
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
|
- 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
|
||||||
|
|||||||
@ -7,12 +7,6 @@
|
|||||||
- 過不足(不要なテスト、足りないケース)
|
- 過不足(不要なテスト、足りないケース)
|
||||||
- モック・フィクスチャの適切さ
|
- モック・フィクスチャの適切さ
|
||||||
|
|
||||||
|
|
||||||
**設計判断の参照:**
|
|
||||||
{report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
|
|
||||||
- 記録された意図的な判断は FP として指摘しない
|
|
||||||
- ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
|
|
||||||
|
|
||||||
## 判定手順
|
## 判定手順
|
||||||
|
|
||||||
1. Report Directory内のテスト計画・テストスコープに関するレポートと実装されたテストを突合する
|
1. Report Directory内のテスト計画・テストスコープに関するレポートと実装されたテストを突合する
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
テスト実行、ビルド確認、最終承認を行ってください。
|
テスト実行、ビルド確認、最終承認を行ってください。
|
||||||
|
|
||||||
**ピース全体の確認:**
|
**ピース全体の確認:**
|
||||||
1. レポートディレクトリ内の全レポートを確認し、ピース全体の整合性をチェックする
|
1. 計画と実装結果が一致しているか
|
||||||
- 計画と実装結果が一致しているか
|
2. 各レビュームーブメントの指摘が対応されているか
|
||||||
- 各レビュームーブメントの指摘が適切に対応されているか
|
3. タスク指示書の各要件が達成されているか
|
||||||
- タスクの本来の目的が達成されているか
|
|
||||||
2. タスク指示書の各要件が達成されているか
|
|
||||||
- タスク指示書から要件を1つずつ抽出する
|
- タスク指示書から要件を1つずつ抽出する
|
||||||
- 各要件について、実装されたコード(ファイル:行)を特定する
|
- 各要件について、実装されたコード(ファイル:行)を特定する
|
||||||
- コードが要件を満たしていることを実際に確認する(ファイルを読む、テストを実行する)
|
- コードが要件を満たしていることを実際に確認する(ファイルを読む、テストを実行する)
|
||||||
|
|||||||
@ -1,19 +1,17 @@
|
|||||||
実装タスクを分析し、分解が適切なら複数パートに分けて並列実行してください。
|
実装タスクをファイル担当単位でサブタスクに分解し、並列実行してください。各パートが担当するファイルが重複しないよう排他的に割り当てます。
|
||||||
|
|
||||||
**重要:** 計画レポートを参照してください: {report:plan.md}
|
**重要:** 計画レポートを参照してください: {report:plan.md}
|
||||||
|
|
||||||
**やること:**
|
**やること:**
|
||||||
|
|
||||||
1. 分解の可否を判断する
|
1. 変更対象ファイルを特定する
|
||||||
- 変更対象ファイルを特定し、ファイル間の依存関係を確認する
|
- 計画レポートとテストスコープを参照して変更・作成するファイルを洗い出す
|
||||||
- 横断的関心事(共有型・ID・イベント)がある場合は分解せず1パートで実装する
|
- 実際のコードベースを確認して不明点を補完する
|
||||||
- 変更ファイル数が少ない場合、リファクタ・リネーム系の場合も1パートで実装する
|
|
||||||
|
|
||||||
2. 分解する場合: ファイルをレイヤー/モジュール単位でグループ化する
|
2. ファイルをレイヤー/モジュール単位でグループ化する
|
||||||
- 凝集度の高い単位でグループを作る(例: ドメイン層 / インフラ層 / API層)
|
- 凝集度の高い単位でグループを作る(例: ドメイン層 / インフラ層 / API層)
|
||||||
- 型・インターフェースの依存がある場合は、依存元と依存先を同じグループにまとめる
|
- 型・インターフェースの依存がある場合は、依存元と依存先を同じグループにまとめる
|
||||||
- 1つのファイルを複数のパートに割り当てない
|
- 1つのファイルを複数のパートに割り当てない
|
||||||
- テストファイルと実装ファイルは同じパートにまとめる
|
|
||||||
|
|
||||||
3. 各パートに排他的なファイル担当を割り当てる
|
3. 各パートに排他的なファイル担当を割り当てる
|
||||||
- 各パートの instruction に以下を必ず明記する:
|
- 各パートの instruction に以下を必ず明記する:
|
||||||
|
|||||||
@ -1,66 +0,0 @@
|
|||||||
# タスク分解知識
|
|
||||||
|
|
||||||
## 分解の可否判断
|
|
||||||
|
|
||||||
タスクを複数パートに分解する前に、分解が適切かを判断する。分解が不適切なケースでは1パートで実装する方が効率的。
|
|
||||||
|
|
||||||
| 基準 | 判定 |
|
|
||||||
|------|------|
|
|
||||||
| 変更ファイルが明確にレイヤー分離できる | 分解可 |
|
|
||||||
| 共有する型・IDが複数パートをまたぐ | 1パートで実装 |
|
|
||||||
| 広範囲のリネーム・リファクタ | 1パートで実装 |
|
|
||||||
| 変更ファイル数が5未満 | 1パートで実装 |
|
|
||||||
| 同一ファイルを複数パートが触る必要がある | 1パートで実装 |
|
|
||||||
|
|
||||||
### 横断的関心事の検出
|
|
||||||
|
|
||||||
以下に該当する場合、独立パートでは整合性を保てない。1パートにまとめる。
|
|
||||||
|
|
||||||
- 新しいID・キー・型を生成し、別のモジュールで消費するフロー
|
|
||||||
- イベント発火側と受信側の両方を変更する
|
|
||||||
- 既存インターフェースのシグネチャを変更し、全呼び出し元を更新する
|
|
||||||
|
|
||||||
## ファイル排他の原則
|
|
||||||
|
|
||||||
複数パートに分解する場合、各パートの担当ファイルは完全に排他的でなければならない。
|
|
||||||
|
|
||||||
| 基準 | 判定 |
|
|
||||||
|------|------|
|
|
||||||
| 同一ファイルを複数パートが編集 | REJECT(コンフリクトの原因) |
|
|
||||||
| 型定義と利用側が別パート | 型定義側のパートにまとめる |
|
|
||||||
| テストファイルと実装ファイルが別パート | 同じパートにまとめる |
|
|
||||||
|
|
||||||
### グループ化の優先順位
|
|
||||||
|
|
||||||
1. **依存方向で分ける** — 依存元と依存先は同じパートに
|
|
||||||
2. **レイヤーで分ける** — ドメイン層 / インフラ層 / API層
|
|
||||||
3. **機能で分ける** — 独立した機能単位
|
|
||||||
|
|
||||||
## 失敗パターン
|
|
||||||
|
|
||||||
### パート重複
|
|
||||||
|
|
||||||
2つのパートが同じファイルや同じ機能を担当すると、サブエージェントが互いの変更を上書きし、レビューで繰り返しREJECTされる。
|
|
||||||
|
|
||||||
```
|
|
||||||
// NG: part-2 と part-3 が同じファイルを担当
|
|
||||||
part-2: taskInstructionActions.ts — instruct機能の確認ダイアログ
|
|
||||||
part-3: taskInstructionActions.ts — requeue機能の確認ダイアログ
|
|
||||||
|
|
||||||
// OK: 1パートにまとめる
|
|
||||||
part-1: taskInstructionActions.ts — instruct/requeue両方の確認ダイアログ
|
|
||||||
```
|
|
||||||
|
|
||||||
### 共有契約の不整合
|
|
||||||
|
|
||||||
パートAが生成するIDをパートBが消費する設計では、両パートが独立に実装するため、ID名・型・受け渡し方法に不整合が生じる。
|
|
||||||
|
|
||||||
```
|
|
||||||
// NG: 独立パートで共有契約
|
|
||||||
part-1: phaseExecutionId を生成
|
|
||||||
part-2: phaseExecutionId を受け取って使う
|
|
||||||
→ part-1 は string、part-2 は number を期待 → 統合エラー
|
|
||||||
|
|
||||||
// OK: 1パートで一貫実装
|
|
||||||
part-1: phaseExecutionId の生成から消費まで一貫して実装
|
|
||||||
```
|
|
||||||
@ -15,27 +15,22 @@
|
|||||||
| スコープ | ✅ | - |
|
| スコープ | ✅ | - |
|
||||||
|
|
||||||
## 今回の指摘(new)
|
## 今回の指摘(new)
|
||||||
| # | finding_id | family_tag | カテゴリ | 場所 | 問題 | 修正案 |
|
| # | finding_id | カテゴリ | 場所 | 問題 | 修正案 |
|
||||||
|---|------------|------------|---------|------|------|--------|
|
|---|------------|---------|------|------|--------|
|
||||||
| 1 | AI-NEW-src-file-L23 | hallucination | 幻覚API | `src/file.ts:23` | 存在しないメソッド | 実在APIへ置換 |
|
| 1 | AI-NEW-src-file-L23 | 幻覚API | `src/file.ts:23` | 存在しないメソッド | 実在APIへ置換 |
|
||||||
|
|
||||||
## 継続指摘(persists)
|
## 継続指摘(persists)
|
||||||
| # | finding_id | family_tag | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
| # | finding_id | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
||||||
|---|------------|------------|----------|----------|------|--------|
|
|---|------------|----------|----------|------|--------|
|
||||||
| 1 | AI-PERSIST-src-file-L42 | hallucination | `src/file.ts:42` | `src/file.ts:42` | 未解消 | 既存修正方針を適用 |
|
| 1 | AI-PERSIST-src-file-L42 | `src/file.ts:42` | `src/file.ts:42` | 未解消 | 既存修正方針を適用 |
|
||||||
|
|
||||||
## 解消済み(resolved)
|
## 解消済み(resolved)
|
||||||
| finding_id | 解消根拠 |
|
| finding_id | 解消根拠 |
|
||||||
|------------|----------|
|
|------------|----------|
|
||||||
| AI-RESOLVED-src-file-L10 | `src/file.ts:10` に該当問題なし |
|
| AI-RESOLVED-src-file-L10 | `src/file.ts:10` に該当問題なし |
|
||||||
|
|
||||||
## 再開指摘(reopened)
|
|
||||||
| # | finding_id | family_tag | 解消根拠(前回) | 再発根拠 | 問題 | 修正案 |
|
|
||||||
|---|------------|------------|----------------|---------|------|--------|
|
|
||||||
| 1 | AI-REOPENED-src-file-L55 | hallucination | `前回: src/file.ts:10 で修正済み` | `src/file.ts:55 で再発` | 問題の説明 | 修正方法 |
|
|
||||||
|
|
||||||
## REJECT判定条件
|
## REJECT判定条件
|
||||||
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
|
- `new` または `persists` が1件以上ある場合のみ REJECT 可
|
||||||
- `finding_id` なしの指摘は無効
|
- `finding_id` なしの指摘は無効
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -15,29 +15,24 @@
|
|||||||
- [x] 呼び出しチェーン検証
|
- [x] 呼び出しチェーン検証
|
||||||
|
|
||||||
## 今回の指摘(new)
|
## 今回の指摘(new)
|
||||||
| # | finding_id | family_tag | スコープ | 場所 | 問題 | 修正案 |
|
| # | finding_id | スコープ | 場所 | 問題 | 修正案 |
|
||||||
|---|------------|------------|---------|------|------|--------|
|
|---|------------|---------|------|------|--------|
|
||||||
| 1 | ARCH-NEW-src-file-L42 | design-violation | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
| 1 | ARCH-NEW-src-file-L42 | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
||||||
|
|
||||||
スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング)
|
スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング)
|
||||||
|
|
||||||
## 継続指摘(persists)
|
## 継続指摘(persists)
|
||||||
| # | finding_id | family_tag | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
| # | finding_id | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
||||||
|---|------------|------------|----------|----------|------|--------|
|
|---|------------|----------|----------|------|--------|
|
||||||
| 1 | ARCH-PERSIST-src-file-L77 | design-violation | `src/file.ts:77` | `src/file.ts:77` | 未解消 | 既存修正方針を適用 |
|
| 1 | ARCH-PERSIST-src-file-L77 | `src/file.ts:77` | `src/file.ts:77` | 未解消 | 既存修正方針を適用 |
|
||||||
|
|
||||||
## 解消済み(resolved)
|
## 解消済み(resolved)
|
||||||
| finding_id | 解消根拠 |
|
| finding_id | 解消根拠 |
|
||||||
|------------|----------|
|
|------------|----------|
|
||||||
| ARCH-RESOLVED-src-file-L10 | `src/file.ts:10` は規約を満たす |
|
| ARCH-RESOLVED-src-file-L10 | `src/file.ts:10` は規約を満たす |
|
||||||
|
|
||||||
## 再開指摘(reopened)
|
|
||||||
| # | finding_id | family_tag | 解消根拠(前回) | 再発根拠 | 問題 | 修正案 |
|
|
||||||
|---|------------|------------|----------------|---------|------|--------|
|
|
||||||
| 1 | ARCH-REOPENED-src-file-L55 | design-violation | `前回: src/file.ts:10 で修正済み` | `src/file.ts:55 で再発` | 問題の説明 | 修正方法 |
|
|
||||||
|
|
||||||
## REJECT判定条件
|
## REJECT判定条件
|
||||||
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
|
- `new` または `persists` が1件以上ある場合のみ REJECT 可
|
||||||
- `finding_id` なしの指摘は無効
|
- `finding_id` なしの指摘は無効
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -15,33 +15,13 @@
|
|||||||
| プロジェクション | ✅ | - |
|
| プロジェクション | ✅ | - |
|
||||||
| 結果整合性 | ✅ | - |
|
| 結果整合性 | ✅ | - |
|
||||||
|
|
||||||
## 今回の指摘(new)
|
## 問題点(REJECTの場合)
|
||||||
| # | finding_id | family_tag | スコープ | 場所 | 問題 | 修正案 |
|
| # | スコープ | 場所 | 問題 | 修正案 |
|
||||||
|---|------------|------------|---------|------|------|--------|
|
|---|---------|------|------|--------|
|
||||||
| 1 | CQRS-NEW-src-file-L42 | cqrs-violation | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
| 1 | スコープ内 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
||||||
|
|
||||||
スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング)
|
スコープ: 「スコープ内」(今回修正可能)/ 「スコープ外」(既存問題・非ブロッキング)
|
||||||
|
|
||||||
## 継続指摘(persists)
|
## 既存問題(参考・非ブロッキング)
|
||||||
| # | finding_id | family_tag | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
- {既存問題の記録。今回の変更と無関係な問題}
|
||||||
|---|------------|------------|----------|----------|------|--------|
|
|
||||||
| 1 | CQRS-PERSIST-src-file-L77 | cqrs-violation | `src/file.ts:77` | `src/file.ts:77` | 未解消 | 既存修正方針を適用 |
|
|
||||||
|
|
||||||
## 解消済み(resolved)
|
|
||||||
| finding_id | 解消根拠 |
|
|
||||||
|------------|----------|
|
|
||||||
| CQRS-RESOLVED-src-file-L10 | `src/file.ts:10` は規約を満たす |
|
|
||||||
|
|
||||||
## 再開指摘(reopened)
|
|
||||||
| # | finding_id | family_tag | 解消根拠(前回) | 再発根拠 | 問題 | 修正案 |
|
|
||||||
|---|------------|------------|----------------|---------|------|--------|
|
|
||||||
| 1 | CQRS-REOPENED-src-file-L55 | cqrs-violation | `前回: src/file.ts:10 で修正済み` | `src/file.ts:55 で再発` | 問題の説明 | 修正方法 |
|
|
||||||
|
|
||||||
## REJECT判定条件
|
|
||||||
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
|
|
||||||
- `finding_id` なしの指摘は無効
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**認知負荷軽減ルール:**
|
|
||||||
- APPROVE → サマリーのみ(5行以内)
|
|
||||||
- REJECT → 該当指摘のみ表で記載(30行以内)
|
|
||||||
|
|||||||
@ -15,31 +15,8 @@
|
|||||||
| アクセシビリティ | ✅ | - |
|
| アクセシビリティ | ✅ | - |
|
||||||
| 型安全性 | ✅ | - |
|
| 型安全性 | ✅ | - |
|
||||||
|
|
||||||
## 今回の指摘(new)
|
## 問題点(REJECTの場合)
|
||||||
| # | finding_id | family_tag | 場所 | 問題 | 修正案 |
|
| # | 場所 | 問題 | 修正案 |
|
||||||
|---|------------|------------|------|------|--------|
|
|---|------|------|--------|
|
||||||
| 1 | FE-NEW-src-file-L42 | component-design | `src/file.tsx:42` | 問題の説明 | 修正方法 |
|
| 1 | `src/file.tsx:42` | 問題の説明 | 修正方法 |
|
||||||
|
|
||||||
## 継続指摘(persists)
|
|
||||||
| # | finding_id | family_tag | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
|
||||||
|---|------------|------------|----------|----------|------|--------|
|
|
||||||
| 1 | FE-PERSIST-src-file-L77 | component-design | `src/file.tsx:77` | `src/file.tsx:77` | 未解消 | 既存修正方針を適用 |
|
|
||||||
|
|
||||||
## 解消済み(resolved)
|
|
||||||
| finding_id | 解消根拠 |
|
|
||||||
|------------|----------|
|
|
||||||
| FE-RESOLVED-src-file-L10 | `src/file.tsx:10` は規約を満たす |
|
|
||||||
|
|
||||||
## 再開指摘(reopened)
|
|
||||||
| # | finding_id | family_tag | 解消根拠(前回) | 再発根拠 | 問題 | 修正案 |
|
|
||||||
|---|------------|------------|----------------|---------|------|--------|
|
|
||||||
| 1 | FE-REOPENED-src-file-L55 | component-design | `前回: src/file.tsx:10 で修正済み` | `src/file.tsx:55 で再発` | 問題の説明 | 修正方法 |
|
|
||||||
|
|
||||||
## REJECT判定条件
|
|
||||||
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
|
|
||||||
- `finding_id` なしの指摘は無効
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**認知負荷軽減ルール:**
|
|
||||||
- APPROVE → サマリーのみ(5行以内)
|
|
||||||
- REJECT → 該当指摘のみ表で記載(30行以内)
|
|
||||||
|
|||||||
@ -16,26 +16,21 @@
|
|||||||
| 保守性 | ✅ | - |
|
| 保守性 | ✅ | - |
|
||||||
|
|
||||||
## 今回の指摘(new)
|
## 今回の指摘(new)
|
||||||
| # | finding_id | family_tag | カテゴリ | 場所 | 問題 | 修正案 |
|
| # | finding_id | カテゴリ | 場所 | 問題 | 修正案 |
|
||||||
|---|------------|------------|---------|------|------|--------|
|
|---|------------|---------|------|------|--------|
|
||||||
| 1 | QA-NEW-src-test-L42 | test-coverage | テスト | `src/test.ts:42` | 異常系テスト不足 | 失敗系ケースを追加 |
|
| 1 | QA-NEW-src-test-L42 | テスト | `src/test.ts:42` | 異常系テスト不足 | 失敗系ケースを追加 |
|
||||||
|
|
||||||
## 継続指摘(persists)
|
## 継続指摘(persists)
|
||||||
| # | finding_id | family_tag | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
| # | finding_id | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
||||||
|---|------------|------------|----------|----------|------|--------|
|
|---|------------|----------|----------|------|--------|
|
||||||
| 1 | QA-PERSIST-src-test-L77 | test-coverage | `src/test.ts:77` | `src/test.ts:77` | 不安定なまま | アサーションとセットアップを安定化 |
|
| 1 | QA-PERSIST-src-test-L77 | `src/test.ts:77` | `src/test.ts:77` | 不安定なまま | アサーションとセットアップを安定化 |
|
||||||
|
|
||||||
## 解消済み(resolved)
|
## 解消済み(resolved)
|
||||||
| finding_id | 解消根拠 |
|
| finding_id | 解消根拠 |
|
||||||
|------------|----------|
|
|------------|----------|
|
||||||
| QA-RESOLVED-src-test-L10 | `src/test.ts:10` で異常系が網羅済み |
|
| QA-RESOLVED-src-test-L10 | `src/test.ts:10` で異常系が網羅済み |
|
||||||
|
|
||||||
## 再開指摘(reopened)
|
|
||||||
| # | finding_id | family_tag | 解消根拠(前回) | 再発根拠 | 問題 | 修正案 |
|
|
||||||
|---|------------|------------|----------------|---------|------|--------|
|
|
||||||
| 1 | QA-REOPENED-src-test-L55 | test-coverage | `前回: src/test.ts:10 で修正済み` | `src/test.ts:55 で再発` | 問題の説明 | 修正方法 |
|
|
||||||
|
|
||||||
## REJECT判定条件
|
## REJECT判定条件
|
||||||
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
|
- `new` または `persists` が1件以上ある場合のみ REJECT 可
|
||||||
- `finding_id` なしの指摘は無効
|
- `finding_id` なしの指摘は無効
|
||||||
```
|
```
|
||||||
|
|||||||
@ -20,27 +20,22 @@
|
|||||||
| 1 | {要求にない変更} | `src/file.ts` | 妥当/不要 |
|
| 1 | {要求にない変更} | `src/file.ts` | 妥当/不要 |
|
||||||
|
|
||||||
## 今回の指摘(new)
|
## 今回の指摘(new)
|
||||||
| # | finding_id | family_tag | カテゴリ | 場所 | 問題 | 修正案 |
|
| # | finding_id | カテゴリ | 場所 | 問題 | 修正案 |
|
||||||
|---|------------|------------|---------|------|------|--------|
|
|---|------------|---------|------|------|--------|
|
||||||
| 1 | REQ-NEW-src-file-L42 | req-gap | 未実装 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
| 1 | REQ-NEW-src-file-L42 | 未実装 | `src/file.ts:42` | 問題の説明 | 修正方法 |
|
||||||
|
|
||||||
## 継続指摘(persists)
|
## 継続指摘(persists)
|
||||||
| # | finding_id | family_tag | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
| # | finding_id | 前回根拠 | 今回根拠 | 問題 | 修正案 |
|
||||||
|---|------------|------------|----------|----------|------|--------|
|
|---|------------|----------|----------|------|--------|
|
||||||
| 1 | REQ-PERSIST-src-file-L77 | req-gap | `file:line` | `file:line` | 未解消 | 修正方法 |
|
| 1 | REQ-PERSIST-src-file-L77 | `file:line` | `file:line` | 未解消 | 修正方法 |
|
||||||
|
|
||||||
## 解消済み(resolved)
|
## 解消済み(resolved)
|
||||||
| finding_id | 解消根拠 |
|
| finding_id | 解消根拠 |
|
||||||
|------------|----------|
|
|------------|----------|
|
||||||
| REQ-RESOLVED-src-file-L10 | `file:line` は要件を充足 |
|
| REQ-RESOLVED-src-file-L10 | `file:line` は要件を充足 |
|
||||||
|
|
||||||
## 再開指摘(reopened)
|
|
||||||
| # | finding_id | family_tag | 解消根拠(前回) | 再発根拠 | 問題 | 修正案 |
|
|
||||||
|---|------------|------------|----------------|---------|------|--------|
|
|
||||||
| 1 | REQ-REOPENED-src-file-L55 | req-gap | `前回: file:line で修正済み` | `file:line で再発` | 問題の説明 | 修正方法 |
|
|
||||||
|
|
||||||
## REJECT判定条件
|
## REJECT判定条件
|
||||||
- `new`、`persists`、または `reopened` が1件以上ある場合のみ REJECT 可
|
- `new` または `persists` が1件以上ある場合のみ REJECT 可
|
||||||
- `finding_id` なしの指摘は無効
|
- `finding_id` なしの指摘は無効
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user