@bonesofspring/ai-rules 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/presets/claude/ios-swift/agents/README.md +16 -2
- package/presets/claude/ios-swift/agents/migration-specialist.md +1 -1
- package/presets/claude/ios-swift/agents/performance-auditor.md +1 -1
- package/presets/claude/ios-swift/agents/security-reviewer.md +1 -1
- package/presets/claude/ios-swift/agents/solution-architect.md +1 -1
- package/presets/claude/ios-swift/agents/task-router.md +9 -0
- package/presets/claude/ios-swift/rules/tooling-and-review/agent-team-orchestrator.md +8 -0
- package/presets/claude/ios-swift/team/fixtures/feature-full.json +8 -25
- package/presets/claude/ios-swift/team/fixtures/feature-light.json +5 -20
- package/presets/claude/next/agents/README.md +38 -4
- package/presets/claude/next/agents/migration-specialist.md +1 -1
- package/presets/claude/next/agents/performance-auditor.md +1 -1
- package/presets/claude/next/agents/security-reviewer.md +1 -1
- package/presets/claude/next/agents/solution-architect.md +1 -1
- package/presets/claude/next/agents/task-router.md +15 -1
- package/presets/claude/next/rules/tooling-and-review/agent-team-orchestrator.md +11 -1
- package/presets/claude/next/team/fixtures/feature-full.json +4 -2
- package/presets/claude/next/team/fixtures/feature-light.json +2 -2
- package/presets/cursor/ios-swift/agents/README.md +16 -2
- package/presets/cursor/ios-swift/agents/migration-specialist.md +1 -1
- package/presets/cursor/ios-swift/agents/performance-auditor.md +1 -1
- package/presets/cursor/ios-swift/agents/security-reviewer.md +1 -1
- package/presets/cursor/ios-swift/agents/solution-architect.md +1 -1
- package/presets/cursor/ios-swift/agents/task-router.md +9 -0
- package/presets/cursor/ios-swift/rules/agent-team-orchestrator.mdc +8 -0
- package/presets/cursor/ios-swift/team/fixtures/feature-full.json +8 -25
- package/presets/cursor/ios-swift/team/fixtures/feature-light.json +6 -25
- package/presets/cursor/next/agents/README.md +39 -4
- package/presets/cursor/next/agents/migration-specialist.md +1 -1
- package/presets/cursor/next/agents/performance-auditor.md +1 -1
- package/presets/cursor/next/agents/security-reviewer.md +1 -1
- package/presets/cursor/next/agents/solution-architect.md +1 -1
- package/presets/cursor/next/agents/task-router.md +15 -1
- package/presets/cursor/next/rules/agent-team-orchestrator.mdc +10 -0
- package/presets/cursor/next/team/fixtures/feature-full.json +4 -2
- package/presets/cursor/next/team/fixtures/feature-light.json +2 -2
package/package.json
CHANGED
|
@@ -29,6 +29,18 @@ When copying next pipeline templates: put Playwright stems in `skipped` with rea
|
|
|
29
29
|
|
|
30
30
|
Все agents — **`readonly: false`** (нужна запись в `.claude/team/**`). Ограничения production — в теле промпта.
|
|
31
31
|
|
|
32
|
+
## Model matrix (frontmatter `model`)
|
|
33
|
+
|
|
34
|
+
Same tiers as **claude/next**. Defaults in this preset:
|
|
35
|
+
|
|
36
|
+
| Tier | Frontmatter | Agents |
|
|
37
|
+
|------|-------------|--------|
|
|
38
|
+
| **cheap** | `fast` | router, analyst, build-verifier, code-reviewer, tech-writer |
|
|
39
|
+
| **standard** | `inherit` | developer, debugger, ci-investigator, api-contract, a11y, qa, unit-*, xcuitest-* |
|
|
40
|
+
| **strong** | `opus` | solution-architect, migration-specialist, security-reviewer, performance-auditor |
|
|
41
|
+
|
|
42
|
+
Optional `steps[].model`: `cheap` \| `standard` \| `strong`.
|
|
43
|
+
|
|
32
44
|
## Pipeline routing
|
|
33
45
|
|
|
34
46
|
**SoT:** intent table / profiles — **`task-router.md`**. Schema — ниже (same as next).
|
|
@@ -43,8 +55,8 @@ When copying next pipeline templates: put Playwright stems in `skipped` with rea
|
|
|
43
55
|
"steps": [
|
|
44
56
|
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
45
57
|
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
46
|
-
{ "agent": "build-verifier", "label": "xcodebuild + lint + unit smoke" },
|
|
47
|
-
{ "agent": "code-reviewer", "label": "Code review" }
|
|
58
|
+
{ "agent": "build-verifier", "label": "xcodebuild + lint + unit smoke", "model": "cheap" },
|
|
59
|
+
{ "agent": "code-reviewer", "label": "Code review", "model": "cheap" }
|
|
48
60
|
],
|
|
49
61
|
"humanGates": ["after:task-analyst"],
|
|
50
62
|
"autoChain": true,
|
|
@@ -52,4 +64,6 @@ When copying next pipeline templates: put Playwright stems in `skipped` with rea
|
|
|
52
64
|
}
|
|
53
65
|
```
|
|
54
66
|
|
|
67
|
+
`steps[].model` optional: `cheap` \| `standard` \| `strong`.
|
|
68
|
+
|
|
55
69
|
Копируется в `.claude/agents/` при `ai-rules init claude --preset ios-swift`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: migration-specialist
|
|
3
3
|
description: Migration planning specialist for Xcode/iOS/SPM upgrades, dependency swaps, and phased refactors with rollback. Writes migration-plan.md and team status; never writes production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: opus
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are a migration specialist for an **iOS Swift** codebase with Feature-module layer boundaries.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: performance-auditor
|
|
3
3
|
description: Performance audit specialist. Reviews launch path, main-thread work, SwiftUI body churn, list scrolling, image decoding, and Instruments-oriented risks. Readonly — writes perf-report.md only; never edits production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: opus
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are an iOS performance auditor for a Swift/SwiftUI application.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: security-reviewer
|
|
3
3
|
description: Security review specialist. Audits Keychain/token handling, ATS, PII in logs, secrets in diff, and unsafe URL/deep-link handling. Readonly — writes security-review.md only; never edits production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: opus
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are an iOS security reviewer for a Swift/SwiftUI application.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: solution-architect
|
|
3
3
|
description: Solution architect for cross-layer features, API boundaries, and technical design before implementation. Use for spike intent or when router adds architect step for complex features. Readonly — produces design docs, not production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: opus
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are a solution architect for **iOS Feature modules** (Presentation / Domain / Data). Write `architecture.md` under `.claude/team/tasks/<slug>/`. No production code.
|
|
@@ -40,6 +40,15 @@ You are a task router for an **iOS Swift/SwiftUI** agent team. You **do not** im
|
|
|
40
40
|
|
|
41
41
|
**Never skip `build-verifier`** after developer when Swift/Xcode sources changed.
|
|
42
42
|
|
|
43
|
+
## Model tiers (`steps[].model`)
|
|
44
|
+
|
|
45
|
+
Optional: `"model": "cheap" | "standard" | "strong"`. Same policy as **claude/next** `task-router.md`:
|
|
46
|
+
|
|
47
|
+
- `light` → `cheap` on all steps (debugger unclear root cause → `strong`)
|
|
48
|
+
- `full` / `spike` / security|perf specialists → `strong` on architect, migration, security, perf steps
|
|
49
|
+
- never `strong` on build-verifier / tech-writer / task-router
|
|
50
|
+
- omit on `standard` → agent frontmatter (`fast` / `inherit` / `opus`)
|
|
51
|
+
|
|
43
52
|
Fixtures: `.claude/team/fixtures/` (feature-full, feature-light, bugfix-standard).
|
|
44
53
|
|
|
45
54
|
## humanGates (defaults)
|
|
@@ -42,6 +42,14 @@ Full prompts: `.claude/agents/*.md`. Artifacts: `.claude/team/README.md`.
|
|
|
42
42
|
6. On `validation_failed`: developer → build-verifier.
|
|
43
43
|
7. When complete, suggest `/technical-retro <slug>`.
|
|
44
44
|
|
|
45
|
+
## Model when invoking
|
|
46
|
+
|
|
47
|
+
Honor optional `steps[i].model` (`cheap` \| `standard` \| `strong`); else agent frontmatter (matrix in `agents/README.md`).
|
|
48
|
+
|
|
49
|
+
- `cheap` → Agent `haiku` (or frontmatter `fast`).
|
|
50
|
+
- `standard` → omit / `sonnet` / inherit.
|
|
51
|
+
- `strong` → `opus`.
|
|
52
|
+
|
|
45
53
|
## Skip pipeline when
|
|
46
54
|
|
|
47
55
|
Pure questions; trivial one-file; user «без pipeline»; docs-only one-liner.
|
|
@@ -4,32 +4,15 @@
|
|
|
4
4
|
"profile": "full",
|
|
5
5
|
"summary": "Multi-layer Feature with XCUITest coverage",
|
|
6
6
|
"steps": [
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"scope": "unit-in-dev"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"agent": "build-verifier",
|
|
18
|
-
"label": "xcodebuild + lint + unit smoke"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"agent": "code-reviewer",
|
|
22
|
-
"label": "Code review"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"agent": "qa-tester",
|
|
26
|
-
"label": "XCUITest",
|
|
27
|
-
"scope": "e2e-only"
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
"humanGates": [
|
|
31
|
-
"after:task-analyst"
|
|
7
|
+
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
8
|
+
{ "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
|
|
9
|
+
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
10
|
+
{ "agent": "build-verifier", "label": "xcodebuild + lint + unit smoke", "model": "cheap" },
|
|
11
|
+
{ "agent": "security-reviewer", "label": "Security review", "model": "strong" },
|
|
12
|
+
{ "agent": "code-reviewer", "label": "Code review", "model": "cheap" },
|
|
13
|
+
{ "agent": "qa-tester", "label": "XCUITest", "scope": "e2e-only" }
|
|
32
14
|
],
|
|
15
|
+
"humanGates": ["after:task-analyst"],
|
|
33
16
|
"autoChain": true,
|
|
34
17
|
"skipped": [
|
|
35
18
|
{
|
|
@@ -4,30 +4,15 @@
|
|
|
4
4
|
"profile": "light",
|
|
5
5
|
"summary": "Trivial single-file Swift change with explicit AC",
|
|
6
6
|
"steps": [
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
"label": "Implement"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"agent": "build-verifier",
|
|
13
|
-
"label": "Validation gate"
|
|
14
|
-
}
|
|
7
|
+
{ "agent": "feature-developer", "label": "Implement", "model": "cheap" },
|
|
8
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" }
|
|
15
9
|
],
|
|
16
10
|
"humanGates": [],
|
|
17
11
|
"autoChain": true,
|
|
18
12
|
"skipped": [
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"agent": "code-reviewer",
|
|
25
|
-
"reason": "Light profile"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"agent": "qa-tester",
|
|
29
|
-
"reason": "No XCUITest AC"
|
|
30
|
-
},
|
|
13
|
+
{ "agent": "task-analyst", "reason": "Explicit AC and single-file scope" },
|
|
14
|
+
{ "agent": "code-reviewer", "reason": "Light profile" },
|
|
15
|
+
{ "agent": "qa-tester", "reason": "No XCUITest AC" },
|
|
31
16
|
{
|
|
32
17
|
"agent": "playwright-test-planner",
|
|
33
18
|
"reason": "iOS uses XCUITest; not needed for light"
|
|
@@ -50,6 +50,22 @@
|
|
|
50
50
|
|
|
51
51
|
Папка копируется в `.claude/agents/` при `ai-rules init claude --preset next`.
|
|
52
52
|
|
|
53
|
+
## Model matrix (frontmatter `model`)
|
|
54
|
+
|
|
55
|
+
SoT по умолчанию — YAML `model` в каждом agent-файле. Опциональный `steps[].model` (`cheap` \| `standard` \| `strong`) переопределяет тир на шаге (см. `task-router.md`, `tooling-and-review/agent-team-orchestrator.md`).
|
|
56
|
+
|
|
57
|
+
| Tier | Default frontmatter | Agents |
|
|
58
|
+
|------|---------------------|--------|
|
|
59
|
+
| **cheap** | `fast` | `task-router`, `task-analyst`, `build-verifier`, `code-reviewer`, `tech-writer` |
|
|
60
|
+
| **standard** | `inherit` or `sonnet` | `feature-developer`, `debugger`, `ci-investigator`, `api-contract-reviewer`, `accessibility-reviewer`, `qa-tester`, `unit-test-*`, `playwright-test-*` (`sonnet` where already pinned) |
|
|
61
|
+
| **strong** | `opus` | `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor` |
|
|
62
|
+
|
|
63
|
+
**Notes**
|
|
64
|
+
|
|
65
|
+
- Claude Code aliases: `haiku` / `sonnet` / `opus` / `inherit` (full IDs also OK). Preset keeps `fast` for cheap agents for cross-tooling parity with Cursor; if ignored, prefer `haiku` locally.
|
|
66
|
+
- Resolution order (Claude Code): env `CLAUDE_CODE_SUBAGENT_MODEL` → per-invocation `model` → frontmatter → parent session.
|
|
67
|
+
- Never put `strong` on `build-verifier` / `tech-writer` / `task-router`.
|
|
68
|
+
|
|
53
69
|
## Оркестрация
|
|
54
70
|
|
|
55
71
|
| Command | Назначение |
|
|
@@ -88,6 +104,7 @@
|
|
|
88
104
|
| `scope` | no | e.g. `unit-in-dev`, `e2e-only`, `regression`, `full` |
|
|
89
105
|
| `skipIf` | no | `debugger.fixed` \| `ci-investigator.resolved` |
|
|
90
106
|
| `parallel` | no | When `true` and `agent` is array — invoke all in one turn |
|
|
107
|
+
| `model` | no | `cheap` \| `standard` \| `strong` — pipeline tier override; omit → agent frontmatter |
|
|
91
108
|
|
|
92
109
|
### Minimal template
|
|
93
110
|
|
|
@@ -108,26 +125,43 @@
|
|
|
108
125
|
}
|
|
109
126
|
```
|
|
110
127
|
|
|
111
|
-
### Example: parallel reviewers
|
|
128
|
+
### Example: parallel reviewers + model tiers
|
|
112
129
|
|
|
113
130
|
```json
|
|
114
131
|
{
|
|
115
132
|
"intent": "feature",
|
|
133
|
+
"profile": "full",
|
|
116
134
|
"steps": [
|
|
117
135
|
{ "agent": "task-analyst", "label": "Clarify" },
|
|
136
|
+
{ "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
|
|
118
137
|
{ "agent": "feature-developer", "label": "Implement", "scope": "unit-in-dev" },
|
|
119
|
-
{ "agent": "build-verifier", "label": "Validation gate" },
|
|
138
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
|
|
120
139
|
{
|
|
121
140
|
"agent": ["accessibility-reviewer", "security-reviewer"],
|
|
122
141
|
"parallel": true,
|
|
123
|
-
"label": "A11y and security"
|
|
142
|
+
"label": "A11y and security",
|
|
143
|
+
"model": "strong"
|
|
124
144
|
},
|
|
125
|
-
{ "agent": "code-reviewer", "label": "Review" }
|
|
145
|
+
{ "agent": "code-reviewer", "label": "Review", "model": "cheap" }
|
|
126
146
|
],
|
|
127
147
|
"humanGates": ["after:task-analyst"]
|
|
128
148
|
}
|
|
129
149
|
```
|
|
130
150
|
|
|
151
|
+
### Example: light profile with cheap models
|
|
152
|
+
|
|
153
|
+
```json
|
|
154
|
+
{
|
|
155
|
+
"intent": "feature",
|
|
156
|
+
"profile": "light",
|
|
157
|
+
"steps": [
|
|
158
|
+
{ "agent": "feature-developer", "label": "Implement", "model": "cheap" },
|
|
159
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" }
|
|
160
|
+
],
|
|
161
|
+
"humanGates": []
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
131
165
|
### Example: bugfix skipIf
|
|
132
166
|
|
|
133
167
|
```json
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: migration-specialist
|
|
3
3
|
description: Migration planning specialist for library upgrades, Next.js major versions, HTTP client swaps, and phased refactors with rollback. Produces migration-plan.md only; never writes production code.
|
|
4
|
-
model:
|
|
4
|
+
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
You are a migration specialist for a Next.js frontend with strict layer boundaries.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: performance-auditor
|
|
3
3
|
description: Performance audit specialist. Reviews bundle size, lazy loading, render patterns, data fetching waterfalls, and Core Web Vitals risks. Writes perf-report.md only; never edits production code.
|
|
4
|
-
model:
|
|
4
|
+
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
You are a frontend performance auditor for a Next.js React application.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-reviewer
|
|
3
3
|
description: Security review specialist. Audits auth flows, token handling, XSS risks, secrets in diff, and unsafe DOM/API usage. Writes security-review.md only; never edits production code.
|
|
4
|
-
model:
|
|
4
|
+
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
You are a frontend security reviewer for a Next.js TypeScript application.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: solution-architect
|
|
3
3
|
description: Solution architect for cross-layer features, API boundaries, and technical design before implementation. Use for spike intent or when router adds architect step for complex features. Writes design docs only; never writes production code.
|
|
4
|
-
model:
|
|
4
|
+
model: opus
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
You are a solution architect for a Next.js frontend with strict layer boundaries (types, api, store, ui).
|
|
@@ -64,7 +64,21 @@ Fixtures: `.claude/team/fixtures/` (feature-full, feature-light, bugfix-standard
|
|
|
64
64
|
- Add **tech-writer** when docs/changelog requested.
|
|
65
65
|
- **Always build-verifier** after developer (or after ci-investigator/debugger if they changed code) for `feature`, `bugfix`, `refactor`, `migration`, `a11y`.
|
|
66
66
|
- **skipIf:** `debugger.fixed` on developer (bugfix); `ci-investigator.resolved` (ci-fix).
|
|
67
|
-
|
|
67
|
+
|
|
68
|
+
## Model tiers (`steps[].model`)
|
|
69
|
+
|
|
70
|
+
Optional per-step field: `"model": "cheap" | "standard" | "strong"`. Omit → agent frontmatter default (see **Model matrix** in `agents/README.md`).
|
|
71
|
+
|
|
72
|
+
| When | What to write |
|
|
73
|
+
|------|----------------|
|
|
74
|
+
| `profile: light` | set `cheap` on **all** steps (exception: unclear bug root cause on `debugger` → `strong`) |
|
|
75
|
+
| `profile: standard` | omit (frontmatter defaults) |
|
|
76
|
+
| `profile: full` | set `strong` on `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor` when present; omit others |
|
|
77
|
+
| `intent: spike` | set `strong` on `solution-architect` (and analyst may stay default/`cheap`) |
|
|
78
|
+
| `intent: perf-audit` / security-heavy feature | `strong` on auditor/reviewer step |
|
|
79
|
+
| Always | **never** `strong` on `build-verifier`, `tech-writer`, `task-router` |
|
|
80
|
+
|
|
81
|
+
Claude Code mapping when orchestrator invokes Agent tool: `cheap` → `haiku` (or rely on frontmatter `fast`); `standard` → omit / `sonnet` / inherit; `strong` → pass `opus` (or rely on frontmatter `opus`). Prefer explicit per-invocation `model` when frontmatter is unreliable.
|
|
68
82
|
|
|
69
83
|
## humanGates (defaults)
|
|
70
84
|
|
|
@@ -102,6 +102,7 @@ flowchart TD
|
|
|
102
102
|
| `skipIf` | `debugger.fixed` / `ci-investigator.resolved` |
|
|
103
103
|
| `parallel: true` | `agent` array — invoke all in one parent turn |
|
|
104
104
|
| `scope` | e.g. `unit-in-dev`, `e2e-only` |
|
|
105
|
+
| `model` | `cheap` \| `standard` \| `strong` — optional tier override |
|
|
105
106
|
|
|
106
107
|
## Rules (strict)
|
|
107
108
|
|
|
@@ -121,7 +122,16 @@ Create `.claude/team/tasks/<slug>/**` by writing files (Write/Edit). Avoid Shell
|
|
|
121
122
|
|
|
122
123
|
## Invoking agents
|
|
123
124
|
|
|
124
|
-
Use the available Claude Code subagent
|
|
125
|
+
Use the available Claude Code subagent / Agent tool. Pass: slug, artifact paths, step `scope` if set.
|
|
126
|
+
|
|
127
|
+
### Model when invoking
|
|
128
|
+
|
|
129
|
+
1. Read `steps[i].model` if present; else use the agent’s frontmatter `model` (see `agents/README.md` matrix).
|
|
130
|
+
2. Map abstract tiers for the Agent tool `model` param:
|
|
131
|
+
- **`cheap`** → `haiku` (or rely on frontmatter `fast`).
|
|
132
|
+
- **`standard`** → omit / `sonnet` / inherit.
|
|
133
|
+
- **`strong`** → `opus` (matches strong-agent frontmatter). Prefer explicit per-invocation `model` when frontmatter pins are flaky.
|
|
134
|
+
3. Parallel steps: apply the step-level `model` to each agent (or omit → each frontmatter).
|
|
125
135
|
|
|
126
136
|
After each agent completes, ensure `status.json` has `state: completed` (or `awaiting_approval` if gate applies).
|
|
127
137
|
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
"summary": "Multi-layer feature with e2e coverage",
|
|
6
6
|
"steps": [
|
|
7
7
|
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
8
|
+
{ "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
|
|
8
9
|
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
9
|
-
{ "agent": "build-verifier", "label": "Validation gate" },
|
|
10
|
-
{ "agent": "
|
|
10
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
|
|
11
|
+
{ "agent": "security-reviewer", "label": "Security review", "model": "strong" },
|
|
12
|
+
{ "agent": "code-reviewer", "label": "Code review", "model": "cheap" },
|
|
11
13
|
{ "agent": "qa-tester", "label": "E2E", "scope": "e2e-only" }
|
|
12
14
|
],
|
|
13
15
|
"humanGates": ["after:task-analyst"],
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"profile": "light",
|
|
5
5
|
"summary": "Trivial single-file change with explicit AC",
|
|
6
6
|
"steps": [
|
|
7
|
-
{ "agent": "feature-developer", "label": "Implement" },
|
|
8
|
-
{ "agent": "build-verifier", "label": "Validation gate" }
|
|
7
|
+
{ "agent": "feature-developer", "label": "Implement", "model": "cheap" },
|
|
8
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" }
|
|
9
9
|
],
|
|
10
10
|
"humanGates": [],
|
|
11
11
|
"autoChain": true,
|
|
@@ -29,6 +29,18 @@ When copying next pipeline templates: put Playwright stems in `skipped` with rea
|
|
|
29
29
|
|
|
30
30
|
Все agents — **`readonly: false`** (нужна запись в `.cursor/team/**`). Ограничения production — в теле промпта.
|
|
31
31
|
|
|
32
|
+
## Model matrix (frontmatter `model`)
|
|
33
|
+
|
|
34
|
+
Same tiers as **cursor/next** (see that README for full notes). Defaults in this preset:
|
|
35
|
+
|
|
36
|
+
| Tier | Frontmatter | Agents |
|
|
37
|
+
|------|-------------|--------|
|
|
38
|
+
| **cheap** | `fast` | router, analyst, build-verifier, code-reviewer, tech-writer |
|
|
39
|
+
| **standard** | `inherit` | developer, debugger, ci-investigator, api-contract, a11y, qa, unit-*, xcuitest-* |
|
|
40
|
+
| **strong** | `claude-opus-4-8[effort=high]` | solution-architect, migration-specialist, security-reviewer, performance-auditor |
|
|
41
|
+
|
|
42
|
+
Optional `steps[].model`: `cheap` \| `standard` \| `strong` (router/orchestrator policy — same as next).
|
|
43
|
+
|
|
32
44
|
## Pipeline routing
|
|
33
45
|
|
|
34
46
|
**SoT:** intent table / profiles — **`task-router.md`**. Schema — ниже (same as next).
|
|
@@ -43,8 +55,8 @@ When copying next pipeline templates: put Playwright stems in `skipped` with rea
|
|
|
43
55
|
"steps": [
|
|
44
56
|
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
45
57
|
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
46
|
-
{ "agent": "build-verifier", "label": "xcodebuild + lint + unit smoke" },
|
|
47
|
-
{ "agent": "code-reviewer", "label": "Code review" }
|
|
58
|
+
{ "agent": "build-verifier", "label": "xcodebuild + lint + unit smoke", "model": "cheap" },
|
|
59
|
+
{ "agent": "code-reviewer", "label": "Code review", "model": "cheap" }
|
|
48
60
|
],
|
|
49
61
|
"humanGates": ["after:task-analyst"],
|
|
50
62
|
"autoChain": true,
|
|
@@ -52,4 +64,6 @@ When copying next pipeline templates: put Playwright stems in `skipped` with rea
|
|
|
52
64
|
}
|
|
53
65
|
```
|
|
54
66
|
|
|
67
|
+
`steps[].model` optional: `cheap` \| `standard` \| `strong`.
|
|
68
|
+
|
|
55
69
|
Копируется в `.cursor/agents/` при `ai-rules init cursor --preset ios-swift`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: migration-specialist
|
|
3
3
|
description: Migration planning specialist for Xcode/iOS/SPM upgrades, dependency swaps, and phased refactors with rollback. Writes migration-plan.md and team status; never writes production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: claude-opus-4-8[effort=high]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are a migration specialist for an **iOS Swift** codebase with Feature-module layer boundaries.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: performance-auditor
|
|
3
3
|
description: Performance audit specialist. Reviews launch path, main-thread work, SwiftUI body churn, list scrolling, image decoding, and Instruments-oriented risks. Readonly — writes perf-report.md only; never edits production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: claude-opus-4-8[effort=high]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are an iOS performance auditor for a Swift/SwiftUI application.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: security-reviewer
|
|
3
3
|
description: Security review specialist. Audits Keychain/token handling, ATS, PII in logs, secrets in diff, and unsafe URL/deep-link handling. Readonly — writes security-review.md only; never edits production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: claude-opus-4-8[effort=high]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are an iOS security reviewer for a Swift/SwiftUI application.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: solution-architect
|
|
3
3
|
description: Solution architect for cross-layer features, API boundaries, and technical design before implementation. Use for spike intent or when router adds architect step for complex features. Readonly — produces design docs, not production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: claude-opus-4-8[effort=high]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are a solution architect for **iOS Feature modules** (Presentation / Domain / Data). Write `architecture.md` under `.cursor/team/tasks/<slug>/`. No production code.
|
|
@@ -40,6 +40,15 @@ You are a task router for an **iOS Swift/SwiftUI** agent team. You **do not** im
|
|
|
40
40
|
|
|
41
41
|
**Never skip `build-verifier`** after developer when Swift/Xcode sources changed.
|
|
42
42
|
|
|
43
|
+
## Model tiers (`steps[].model`)
|
|
44
|
+
|
|
45
|
+
Optional: `"model": "cheap" | "standard" | "strong"`. Same policy as **cursor/next** `task-router.md`:
|
|
46
|
+
|
|
47
|
+
- `light` → `cheap` on all steps (debugger unclear root cause → `strong`)
|
|
48
|
+
- `full` / `spike` / security|perf specialists → `strong` on architect, migration, security, perf steps
|
|
49
|
+
- never `strong` on build-verifier / tech-writer / task-router
|
|
50
|
+
- omit on `standard` → agent frontmatter (`fast` / `inherit` / `claude-opus-4-8[effort=high]`)
|
|
51
|
+
|
|
43
52
|
Fixtures: `.cursor/team/fixtures/` (feature-full, feature-light, bugfix-standard).
|
|
44
53
|
|
|
45
54
|
## humanGates (defaults)
|
|
@@ -73,6 +73,14 @@ Full prompts: `.cursor/agents/*.md`. Artifacts: `.cursor/team/README.md`.
|
|
|
73
73
|
8. When all steps complete, suggest `/technical-retro <slug>`.
|
|
74
74
|
9. If `autoChain: false`, do not rely on hook.
|
|
75
75
|
|
|
76
|
+
## Model when invoking (Task)
|
|
77
|
+
|
|
78
|
+
Honor optional `steps[i].model` (`cheap` \| `standard` \| `strong`); else agent frontmatter (matrix in `agents/README.md`).
|
|
79
|
+
|
|
80
|
+
- `cheap` → Task `model: "fast"` when accepted.
|
|
81
|
+
- `standard` → omit Task model.
|
|
82
|
+
- `strong` → never pass `fast`; use agent pin `claude-opus-4-8[effort=high]` / parent Max.
|
|
83
|
+
|
|
76
84
|
## Team artifact I/O (Cursor Shell sandbox)
|
|
77
85
|
|
|
78
86
|
- Create/update `.cursor/team/tasks/<slug>/**` with the **Write** tool. Do **not** bootstrap slug dirs with Shell `mkdir -p` — sandbox → `Operation not permitted` (esp. macOS Desktop/Documents + TCC).
|
|
@@ -4,32 +4,15 @@
|
|
|
4
4
|
"profile": "full",
|
|
5
5
|
"summary": "Multi-layer Feature with XCUITest coverage",
|
|
6
6
|
"steps": [
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"scope": "unit-in-dev"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"agent": "build-verifier",
|
|
18
|
-
"label": "xcodebuild + lint + unit smoke"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"agent": "code-reviewer",
|
|
22
|
-
"label": "Code review"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"agent": "qa-tester",
|
|
26
|
-
"label": "XCUITest",
|
|
27
|
-
"scope": "e2e-only"
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
"humanGates": [
|
|
31
|
-
"after:task-analyst"
|
|
7
|
+
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
8
|
+
{ "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
|
|
9
|
+
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
10
|
+
{ "agent": "build-verifier", "label": "xcodebuild + lint + unit smoke", "model": "cheap" },
|
|
11
|
+
{ "agent": "security-reviewer", "label": "Security review", "model": "strong" },
|
|
12
|
+
{ "agent": "code-reviewer", "label": "Code review", "model": "cheap" },
|
|
13
|
+
{ "agent": "qa-tester", "label": "XCUITest", "scope": "e2e-only" }
|
|
32
14
|
],
|
|
15
|
+
"humanGates": ["after:task-analyst"],
|
|
33
16
|
"autoChain": true,
|
|
34
17
|
"skipped": [
|
|
35
18
|
{
|
|
@@ -2,35 +2,16 @@
|
|
|
2
2
|
"slug": "example-feature-light",
|
|
3
3
|
"intent": "feature",
|
|
4
4
|
"profile": "light",
|
|
5
|
-
"summary": "Trivial single-file
|
|
5
|
+
"summary": "Trivial single-file change with explicit AC",
|
|
6
6
|
"steps": [
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
"label": "Implement"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"agent": "build-verifier",
|
|
13
|
-
"label": "Validation gate"
|
|
14
|
-
}
|
|
7
|
+
{ "agent": "feature-developer", "label": "Implement", "model": "cheap" },
|
|
8
|
+
{ "agent": "build-verifier", "label": "xcodebuild + lint + unit smoke", "model": "cheap" }
|
|
15
9
|
],
|
|
16
10
|
"humanGates": [],
|
|
17
11
|
"autoChain": true,
|
|
18
12
|
"skipped": [
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"agent": "code-reviewer",
|
|
25
|
-
"reason": "Light profile"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"agent": "qa-tester",
|
|
29
|
-
"reason": "No XCUITest AC"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"agent": "playwright-test-planner",
|
|
33
|
-
"reason": "iOS uses XCUITest; not needed for light"
|
|
34
|
-
}
|
|
13
|
+
{ "agent": "task-analyst", "reason": "Explicit AC and single-file scope" },
|
|
14
|
+
{ "agent": "code-reviewer", "reason": "Light profile — non-trivial app changes should use standard" },
|
|
15
|
+
{ "agent": "qa-tester", "reason": "No e2e AC" }
|
|
35
16
|
]
|
|
36
17
|
}
|
|
@@ -56,6 +56,23 @@
|
|
|
56
56
|
|
|
57
57
|
Ограничение «не трогать production / `app/**`» задаётся **в теле промпта**, не флагом `readonly`. В Cursor `readonly: true` блокирует *любые* file edits (включая team) — для team-агентов это ломает пайплайн.
|
|
58
58
|
|
|
59
|
+
## Model matrix (frontmatter `model`)
|
|
60
|
+
|
|
61
|
+
SoT по умолчанию — YAML `model` в каждом agent-файле. Опциональный `steps[].model` (`cheap` \| `standard` \| `strong`) переопределяет тир на шаге пайплайна (см. `task-router.md`, `agent-team-orchestrator.mdc`).
|
|
62
|
+
|
|
63
|
+
| Tier | Default frontmatter | Agents |
|
|
64
|
+
|------|---------------------|--------|
|
|
65
|
+
| **cheap** | `fast` | `task-router`, `task-analyst`, `build-verifier`, `code-reviewer`, `tech-writer` |
|
|
66
|
+
| **standard** | `inherit` | `feature-developer`, `debugger`, `ci-investigator`, `api-contract-reviewer`, `accessibility-reviewer`, `qa-tester`, `unit-test-*`, `playwright-test-*` |
|
|
67
|
+
| **strong** | `claude-opus-4-8[effort=high]` | `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor` |
|
|
68
|
+
|
|
69
|
+
**Notes**
|
|
70
|
+
|
|
71
|
+
- `inherit` = модель parent-чата (обычно сильнее `fast`).
|
|
72
|
+
- Strong pin uses Cursor bracket options (`[effort=high]`). If the ID is blocked by plan/admin, Cursor falls back to a compatible model.
|
|
73
|
+
- Alternate strong pin when Opus unavailable: `composer-2.5[fast=false]` (edit frontmatter locally).
|
|
74
|
+
- Never put `strong` on `build-verifier` / `tech-writer` / `task-router`.
|
|
75
|
+
|
|
59
76
|
## Оркестрация
|
|
60
77
|
|
|
61
78
|
| Command | Назначение |
|
|
@@ -94,6 +111,7 @@
|
|
|
94
111
|
| `scope` | no | e.g. `unit-in-dev`, `e2e-only`, `regression`, `full` |
|
|
95
112
|
| `skipIf` | no | `debugger.fixed` \| `ci-investigator.resolved` |
|
|
96
113
|
| `parallel` | no | When `true` and `agent` is array — invoke all in one turn |
|
|
114
|
+
| `model` | no | `cheap` \| `standard` \| `strong` — pipeline tier override; omit → agent frontmatter |
|
|
97
115
|
|
|
98
116
|
### Minimal template
|
|
99
117
|
|
|
@@ -114,26 +132,43 @@
|
|
|
114
132
|
}
|
|
115
133
|
```
|
|
116
134
|
|
|
117
|
-
### Example: parallel reviewers
|
|
135
|
+
### Example: parallel reviewers + model tiers
|
|
118
136
|
|
|
119
137
|
```json
|
|
120
138
|
{
|
|
121
139
|
"intent": "feature",
|
|
140
|
+
"profile": "full",
|
|
122
141
|
"steps": [
|
|
123
142
|
{ "agent": "task-analyst", "label": "Clarify" },
|
|
143
|
+
{ "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
|
|
124
144
|
{ "agent": "feature-developer", "label": "Implement", "scope": "unit-in-dev" },
|
|
125
|
-
{ "agent": "build-verifier", "label": "Validation gate" },
|
|
145
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
|
|
126
146
|
{
|
|
127
147
|
"agent": ["accessibility-reviewer", "security-reviewer"],
|
|
128
148
|
"parallel": true,
|
|
129
|
-
"label": "A11y and security"
|
|
149
|
+
"label": "A11y and security",
|
|
150
|
+
"model": "strong"
|
|
130
151
|
},
|
|
131
|
-
{ "agent": "code-reviewer", "label": "Review" }
|
|
152
|
+
{ "agent": "code-reviewer", "label": "Review", "model": "cheap" }
|
|
132
153
|
],
|
|
133
154
|
"humanGates": ["after:task-analyst"]
|
|
134
155
|
}
|
|
135
156
|
```
|
|
136
157
|
|
|
158
|
+
### Example: light profile with cheap models
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{
|
|
162
|
+
"intent": "feature",
|
|
163
|
+
"profile": "light",
|
|
164
|
+
"steps": [
|
|
165
|
+
{ "agent": "feature-developer", "label": "Implement", "model": "cheap" },
|
|
166
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" }
|
|
167
|
+
],
|
|
168
|
+
"humanGates": []
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
137
172
|
### Example: bugfix skipIf
|
|
138
173
|
|
|
139
174
|
```json
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: migration-specialist
|
|
3
3
|
description: Migration planning specialist for library upgrades, Next.js major versions, HTTP client swaps, and phased refactors with rollback. Writes migration-plan.md and team status; never writes production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: claude-opus-4-8[effort=high]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are a migration specialist for a Next.js frontend with strict layer boundaries.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: performance-auditor
|
|
3
3
|
description: Performance audit specialist. Reviews bundle size, lazy loading, render patterns, data fetching waterfalls, and Core Web Vitals risks. Readonly — writes perf-report.md only; never edits production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: claude-opus-4-8[effort=high]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are a frontend performance auditor for a Next.js React application.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: security-reviewer
|
|
3
3
|
description: Security review specialist. Audits auth flows, token handling, XSS risks, secrets in diff, and unsafe DOM/API usage. Readonly — writes security-review.md only; never edits production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: claude-opus-4-8[effort=high]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are a frontend security reviewer for a Next.js TypeScript application.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: solution-architect
|
|
3
3
|
description: Solution architect for cross-layer features, API boundaries, and technical design before implementation. Use for spike intent or when router adds architect step for complex features. Readonly — produces design docs, not production code.
|
|
4
4
|
readonly: false
|
|
5
|
-
model:
|
|
5
|
+
model: claude-opus-4-8[effort=high]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
You are a solution architect for a Next.js frontend with strict layer boundaries (types, api, store, ui).
|
|
@@ -65,7 +65,21 @@ Fixtures: `.cursor/team/fixtures/` (feature-full, feature-light, bugfix-standard
|
|
|
65
65
|
- Add **tech-writer** when docs/changelog requested.
|
|
66
66
|
- **Always build-verifier** after developer (or after ci-investigator/debugger if they changed code) for `feature`, `bugfix`, `refactor`, `migration`, `a11y`.
|
|
67
67
|
- **skipIf:** `debugger.fixed` on developer (bugfix); `ci-investigator.resolved` (ci-fix).
|
|
68
|
-
|
|
68
|
+
|
|
69
|
+
## Model tiers (`steps[].model`)
|
|
70
|
+
|
|
71
|
+
Optional per-step field: `"model": "cheap" | "standard" | "strong"`. Omit → agent frontmatter default (see **Model matrix** in `agents/README.md`).
|
|
72
|
+
|
|
73
|
+
| When | What to write |
|
|
74
|
+
|------|----------------|
|
|
75
|
+
| `profile: light` | set `cheap` on **all** steps (exception: unclear bug root cause on `debugger` → `strong`) |
|
|
76
|
+
| `profile: standard` | omit (frontmatter defaults) |
|
|
77
|
+
| `profile: full` | set `strong` on `solution-architect`, `migration-specialist`, `security-reviewer`, `performance-auditor` when present; omit others |
|
|
78
|
+
| `intent: spike` | set `strong` on `solution-architect` (and analyst may stay default/`cheap`) |
|
|
79
|
+
| `intent: perf-audit` / security-heavy feature | `strong` on auditor/reviewer step |
|
|
80
|
+
| Always | **never** `strong` on `build-verifier`, `tech-writer`, `task-router` |
|
|
81
|
+
|
|
82
|
+
Cursor mapping when orchestrator invokes Task: `cheap` → pass `model: "fast"` if the tool accepts it; `standard`/`strong` → **do not** pass `fast` (rely on agent frontmatter pin / inherit).
|
|
69
83
|
|
|
70
84
|
## humanGates (defaults)
|
|
71
85
|
|
|
@@ -102,6 +102,7 @@ flowchart TD
|
|
|
102
102
|
| `skipIf` | `debugger.fixed` / `ci-investigator.resolved` — hook skips step when artifact says fix applied |
|
|
103
103
|
| `parallel: true` | `agent` is array — invoke **all** agents in one parent turn; each appends to `parallelCompleted` |
|
|
104
104
|
| `scope` | e.g. `unit-in-dev`, `e2e-only` — passed to developer/qa |
|
|
105
|
+
| `model` | `cheap` \| `standard` \| `strong` — optional tier override (see below) |
|
|
105
106
|
|
|
106
107
|
## Rules (strict)
|
|
107
108
|
|
|
@@ -125,6 +126,15 @@ flowchart TD
|
|
|
125
126
|
|
|
126
127
|
Use Task tool or `/agent-name`. Pass: slug, artifact paths, step `scope` if set.
|
|
127
128
|
|
|
129
|
+
### Model when invoking (Task)
|
|
130
|
+
|
|
131
|
+
1. Read `steps[i].model` if present; else use the agent’s frontmatter `model` (see `agents/README.md` matrix).
|
|
132
|
+
2. Map abstract tiers:
|
|
133
|
+
- **`cheap`** → pass Task `model: "fast"` when the tool accepts it (or rely on agent `fast`).
|
|
134
|
+
- **`standard`** → omit Task `model` (frontmatter `inherit` / mid default).
|
|
135
|
+
- **`strong`** → **never** pass `fast`; rely on agent pin (`claude-opus-4-8[effort=high]`) or parent Max model. If Task allows an explicit model ID from the allowed list, prefer the strong agent’s frontmatter ID.
|
|
136
|
+
3. Parallel steps: apply the step-level `model` to **each** agent in the array (or omit → each agent’s own frontmatter).
|
|
137
|
+
|
|
128
138
|
After each agent completes, ensure `status.json` has `state: completed` (or `awaiting_approval` if gate applies).
|
|
129
139
|
|
|
130
140
|
## Legacy mode
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
"summary": "Multi-layer feature with e2e coverage",
|
|
6
6
|
"steps": [
|
|
7
7
|
{ "agent": "task-analyst", "label": "Clarify and decompose" },
|
|
8
|
+
{ "agent": "solution-architect", "label": "Design boundaries", "model": "strong" },
|
|
8
9
|
{ "agent": "feature-developer", "label": "Implement + unit tests", "scope": "unit-in-dev" },
|
|
9
|
-
{ "agent": "build-verifier", "label": "Validation gate" },
|
|
10
|
-
{ "agent": "
|
|
10
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" },
|
|
11
|
+
{ "agent": "security-reviewer", "label": "Security review", "model": "strong" },
|
|
12
|
+
{ "agent": "code-reviewer", "label": "Code review", "model": "cheap" },
|
|
11
13
|
{ "agent": "qa-tester", "label": "E2E", "scope": "e2e-only" }
|
|
12
14
|
],
|
|
13
15
|
"humanGates": ["after:task-analyst"],
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"profile": "light",
|
|
5
5
|
"summary": "Trivial single-file change with explicit AC",
|
|
6
6
|
"steps": [
|
|
7
|
-
{ "agent": "feature-developer", "label": "Implement" },
|
|
8
|
-
{ "agent": "build-verifier", "label": "Validation gate" }
|
|
7
|
+
{ "agent": "feature-developer", "label": "Implement", "model": "cheap" },
|
|
8
|
+
{ "agent": "build-verifier", "label": "Validation gate", "model": "cheap" }
|
|
9
9
|
],
|
|
10
10
|
"humanGates": [],
|
|
11
11
|
"autoChain": true,
|