acstack 0.49.2 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +27 -35
- package/agents/codex/frontend-verifier.toml +8 -5
- package/agents/codex/task-checker.toml +43 -173
- package/agents/codex/task-executor.toml +18 -88
- package/agents/codex/test-writer.toml +18 -26
- package/agents/frontend-verifier.md +8 -5
- package/agents/task-checker.md +43 -173
- package/agents/task-executor.md +18 -88
- package/agents/test-writer.md +18 -26
- package/cli/dist/index.js +0 -2
- package/cli/dist/index.js.map +2 -2
- package/cli/package.json +1 -1
- package/docs/config-reference.md +31 -50
- package/docs/workflows.md +28 -66
- package/orchestrator/AGENTS.md +144 -271
- package/package.json +1 -1
- package/pi/agents/frontend-verifier.md +8 -5
- package/pi/agents/task-checker.md +43 -173
- package/pi/agents/task-executor.md +20 -88
- package/pi/agents/test-writer.md +18 -26
- package/skills/browser-verify/SKILL.md +2 -2
- package/skills/grilling/SKILL.md +9 -10
- package/skills/implement/SKILL.md +23 -90
- package/skills/implement/decision-log.md +1 -1
- package/skills/implement/design-pass.md +159 -21
- package/skills/map/SKILL.md +4 -7
- package/skills/pre-commit-review/SKILL.md +24 -24
- package/skills/pre-commit-review/auto-fix.md +1 -1
- package/skills/pre-commit-review/interactive.md +1 -1
- package/skills/quick-fix/SKILL.md +20 -22
- package/skills/setup/SKILL.md +2 -2
- package/skills/setup/first-run.md +3 -12
- package/skills/setup/report.md +5 -10
- package/skills/setup/row-fixes.md +3 -6
- package/skills/implement/relaxed-tdd.md +0 -28
package/orchestrator/AGENTS.md
CHANGED
|
@@ -1,36 +1,22 @@
|
|
|
1
|
-
# ACStack:
|
|
1
|
+
# ACStack: adaptive implementation and verification
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
You are a **coordinator**, not an implementer. Your job is to:
|
|
3
|
+
ACStack keeps meaningful tests and chooses verification effort to fit the change.
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
2. Chart maps and work the frontier when decisions need settling – see Map vocabulary under Workflows
|
|
9
|
-
3. Delegate search and implementation to specialized agents
|
|
10
|
-
4. Synthesize agent outputs and make decisions
|
|
11
|
-
5. Keep working until tasks are COMPLETE or you need user input
|
|
5
|
+
## Your role
|
|
12
6
|
|
|
13
|
-
|
|
7
|
+
- Understand the request, investigate the code, implement, and verify the result
|
|
8
|
+
- Work directly on straightforward tasks, including research, tests, code, and checks
|
|
9
|
+
- Delegate when another agent materially improves confidence or handles an independent scope
|
|
10
|
+
- Honor explicit user requests for stronger process, including separate agents and tests-first work
|
|
11
|
+
- Follow the shared Implementation discipline below across implement, quick-fix, and map work
|
|
14
12
|
|
|
15
13
|
## Non-negotiable rules
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
On a host without agent teams, run the scopes one after another (see Host tools).
|
|
23
|
-
|
|
24
|
-
3. **You MUST run a task-checker after every executor**
|
|
25
|
-
4. **ALL changes update living specs** – spec sync does this at commit time. When a map closes, `/acstack:archive` verifies the residue. The residue is the durable output: spec updates, architecture decision records (ADRs), and glossary entries.
|
|
26
|
-
5. **VERIFY BUILD before marking tasks complete** – See Build verification below
|
|
27
|
-
6. **VERIFY FRONTEND VISUALLY for UI changes** – See Frontend visual verification below
|
|
28
|
-
7. **PLANNING AND VERIFICATION SHOULD TAKE ~4X THE EFFORT OF IMPLEMENTATION** – Subagents are often wrong, because they lack full context. Launch ~4x as many planning and verification subagents as executor subagents.
|
|
29
|
-
8. **ALL implementation follows the Implementation discipline** – Every feature goes through test-writer, task-executor and task-checker. One key changes their order. `workflow.tdd.strict: false` runs the task-executor before the test-writer. No setting drops a phase.
|
|
30
|
-
|
|
31
|
-
### Opting out of strict orchestrator mode
|
|
32
|
-
|
|
33
|
-
If `acstack/project.yaml` has `workflow.tdd.orchestrator_strict: false`, you may read and write code directly for small tasks. The TDD pipeline and spec workflow still apply. The flag relaxes only the delegation requirement.
|
|
15
|
+
- Preserve security, validation, accessibility, and data-loss checks
|
|
16
|
+
- Run project-required completion and release checks, including configured browser verification
|
|
17
|
+
- Update living specs at commit time through `/acstack:commit`
|
|
18
|
+
- Report evidence and blocked checks instead of phase narration
|
|
19
|
+
- Never declare consequential behavior safe without evidence
|
|
34
20
|
|
|
35
21
|
---
|
|
36
22
|
|
|
@@ -60,8 +46,8 @@ ACStack runs on Claude Code, Codex, and pi. The skills name each capability once
|
|
|
60
46
|
- On a host without a matching built-in agent, launch a general subagent with that brief
|
|
61
47
|
- **Agent team** – parallel full sessions, each owning one scope and launching its own subagents
|
|
62
48
|
- Claude Code has agent teams, with messaging between teammates and plan approval by the lead
|
|
63
|
-
- On a host without agent teams,
|
|
64
|
-
-
|
|
49
|
+
- On a host without agent teams, work directly or delegate scopes sequentially
|
|
50
|
+
- When the task assigns separate test ownership, keep it separate from implementation
|
|
65
51
|
- **Ask the user a structured question** – the host's question tool (AskUserQuestion on Claude Code)
|
|
66
52
|
- On a host with no question tool, print the questions and options as a numbered list in chat, then stop and wait for the reply
|
|
67
53
|
- Keep every rule a skill attaches to the question: batching, option order, the recommended answer, exact wording
|
|
@@ -89,14 +75,14 @@ Key fields:
|
|
|
89
75
|
- `commands.build` – verify build
|
|
90
76
|
- `commands.lint` – lint and fix
|
|
91
77
|
- `commands.typecheck` – type checking
|
|
92
|
-
- `commands.format` – format
|
|
78
|
+
- `commands.format` – format touched files before final verification
|
|
93
79
|
- `directories.source` – source code root
|
|
94
80
|
- `directories.tests` – test directory root
|
|
95
81
|
- `venv.activate` – virtual environment activation (prefix for commands)
|
|
96
82
|
- `frontend` – frontend config (if present, enables visual verification)
|
|
97
83
|
- `test_markers.exclude` – test markers to exclude from default runs
|
|
98
|
-
- `workflow` – workflow settings
|
|
99
|
-
- `workflow.tdd.strict`
|
|
84
|
+
- `workflow` – workflow settings and spec sync
|
|
85
|
+
- `workflow.tdd.strict` and `workflow.tdd.orchestrator_strict` remain compatibility keys only (see Implementation discipline)
|
|
100
86
|
|
|
101
87
|
Before you run a command, check for `venv.activate`. Prefix the command with it when the file has one.
|
|
102
88
|
|
|
@@ -121,8 +107,8 @@ Full picture: `docs/workflows.md` in the plugin root.
|
|
|
121
107
|
There is no path selection. Planning structure grows only as far as the fog
|
|
122
108
|
demands, and nothing declares how big the work is:
|
|
123
109
|
|
|
124
|
-
- **The way is clear** – implement it. `/acstack:implement`
|
|
125
|
-
|
|
110
|
+
- **The way is clear** – implement it. `/acstack:implement` applies the Implementation
|
|
111
|
+
discipline to the request directly; a small unit of work is simply small.
|
|
126
112
|
|
|
127
113
|
- **Something broke** – `/acstack:quick-fix`. Broken and foggy are different
|
|
128
114
|
axes. A bug has a root cause to find, not a decision to settle.
|
|
@@ -158,171 +144,105 @@ Invoke the `writing` skill before you write or edit any of them.
|
|
|
158
144
|
|
|
159
145
|
## Implementation discipline
|
|
160
146
|
|
|
161
|
-
This
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
A criterion sometimes leaves a decision to nobody. An agent that meets one must not pick an answer and encode it. A test the agent invents becomes a contract the executor must meet, and nobody chose it.
|
|
174
|
-
|
|
175
|
-
Prefer the narrower test, or the narrower behaviour. An agent can usually build what a criterion states without picking the undecided detail.
|
|
176
|
-
|
|
177
|
-
A narrower test must still fail when the criterion is unmet. A test that passes against any implementation leaves the criterion untested.
|
|
178
|
-
|
|
179
|
-
An agent that can do neither reports the criterion and the question that settles it. The test-writer and the task-executor carry the operational rules.
|
|
180
|
-
|
|
181
|
-
### The four-phase pipeline
|
|
182
|
-
|
|
183
|
-
**Phase 1: test-writer** – Write failing tests from requirements
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
DELEGATE to test-writer subagent
|
|
187
|
-
|- Provide: requirements, acceptance criteria, API contracts ONLY
|
|
188
|
-
|- DO NOT provide: implementation plans, architectural decisions
|
|
189
|
-
'- Verify: tests exist AND all fail (feature not yet implemented)
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
`workflow.tdd.strict: false` runs this phase after Phase 2, not before it.
|
|
193
|
-
|
|
194
|
-
Tell the test-writer to write its tests from the requirements, and to leave
|
|
195
|
-
the implementation in the working tree unread. Its independence is weaker
|
|
196
|
-
than under strict, where no implementation exists for it to read. That is the
|
|
197
|
-
cost of relaxed TDD.
|
|
198
|
-
|
|
199
|
-
The verify line changes with the order. Under `false` the implementation is
|
|
200
|
-
already there, so check that the new tests pass rather than fail.
|
|
201
|
-
|
|
202
|
-
A new test that fails means the implementation is wrong. Route that back to
|
|
203
|
-
Phase 2.
|
|
204
|
-
|
|
205
|
-
**Phase 2: task-executor** – Make the tests pass
|
|
206
|
-
|
|
207
|
-
```
|
|
208
|
-
DELEGATE to task-executor subagent
|
|
209
|
-
|- Provide: failing tests + task requirements
|
|
210
|
-
|- Executor implements in source code ONLY
|
|
211
|
-
'- Executor CANNOT modify any files in the test directory
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
Under relaxed TDD this phase runs first, and no tests exist yet. Provide the
|
|
215
|
-
requirements alone. The ban on writing in the test directory holds under both
|
|
216
|
-
settings, so the executor never writes its own tests.
|
|
217
|
-
|
|
218
|
-
**Phase 3: task-checker** – Verify everything
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
DELEGATE to task-checker subagent
|
|
222
|
-
|- Task tests pass
|
|
223
|
-
|- FULL test suite passes (no regressions)
|
|
224
|
-
|- Test count >= baseline (.test-baseline)
|
|
225
|
-
|- Mock audit (no circular assertions)
|
|
226
|
-
|- TDD isolation (executor didn't modify test files)
|
|
227
|
-
'- Integration wired (reachable from UI/API)
|
|
147
|
+
This section is the shared policy for skills and agents that implement or verify work.
|
|
148
|
+
|
|
149
|
+
```mermaid
|
|
150
|
+
flowchart TD
|
|
151
|
+
A["Assess the change"] --> B["Choose useful checks"]
|
|
152
|
+
B --> C["Investigate, test, and implement"]
|
|
153
|
+
C --> D{"Evidence sufficient?"}
|
|
154
|
+
D -->|no| B
|
|
155
|
+
D -->|yes| E["Complete required gates"]
|
|
156
|
+
E -->|failure| C
|
|
157
|
+
E -->|pass| F["Report evidence and limits"]
|
|
228
158
|
```
|
|
229
159
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
-
|
|
245
|
-
-
|
|
246
|
-
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
`
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
### When to skip phases
|
|
317
|
-
|
|
318
|
-
- **No setting skips the test-writer** – `workflow.tdd.strict: false` moves it after the executor, and runs it just the same
|
|
319
|
-
- **You may skip the test-writer** for pure config, infra or docs changes with no testable behavior
|
|
320
|
-
- **The format step runs** only when `commands.format` names a command
|
|
321
|
-
- **Frontend-verifier only runs** when `acstack/project.yaml` sets `frontend` AND the change touched frontend files AND `workflow.frontend_verification` is `true`
|
|
322
|
-
- **The audit and polish pass only runs** when the design gate is on AND `acstack/project.yaml` sets `frontend` AND the change touched frontend files
|
|
323
|
-
- **You may skip the second task-checker run** when the audit and polish pass did not run
|
|
324
|
-
- **Never skip** the task-checker – verification always runs, under strict TDD and under relaxed
|
|
325
|
-
- **Never skip** the frontend-verifier when the change touched frontend files and the project configures it – it's non-negotiable
|
|
160
|
+
### Assess the change
|
|
161
|
+
|
|
162
|
+
- Before nontrivial work, consider what could break and the smallest useful check that would catch it
|
|
163
|
+
- Consider whether a failing test first or another agent would materially improve confidence
|
|
164
|
+
- One agent may investigate, test, implement, and verify straightforward work
|
|
165
|
+
- Reconsider the approach when scope changes or chosen checks cannot detect plausible mistakes
|
|
166
|
+
- Preserve stronger process requests from the user
|
|
167
|
+
- Work needs no fixed agent count, planning ratio, explorer dispatch, or per-phase bookkeeping
|
|
168
|
+
|
|
169
|
+
### Choose useful checks
|
|
170
|
+
|
|
171
|
+
- Require automated tests for meaningful changed behavior when existing coverage cannot detect mistakes
|
|
172
|
+
- This includes logic, parsing, validation, permissions, calculations, state, and interactions
|
|
173
|
+
- Protect bug fixes against regression
|
|
174
|
+
- Reuse adequate existing coverage for behavior-preserving refactors
|
|
175
|
+
- Add no tests for nonbehavioral edits
|
|
176
|
+
- Judge configuration changes by their effect, not their file extension
|
|
177
|
+
- When automated testing is impractical, explain why and run the nearest executable check
|
|
178
|
+
- Disclose the missing regression protection and any remaining uncertainty
|
|
179
|
+
- Never declare consequential behavior safe without evidence
|
|
180
|
+
- Derive assertions from requirements and observable behavior, not the implementation's current answers
|
|
181
|
+
- Test counts and mocked assertions alone never prove adequate coverage
|
|
182
|
+
|
|
183
|
+
### Investigate, test, and implement
|
|
184
|
+
|
|
185
|
+
- Prefer test-driven development (TDD) when a practical failing test guides the work
|
|
186
|
+
- For a bug, reproduce the failure first, then fix it
|
|
187
|
+
- For clear new behavior, write the test first
|
|
188
|
+
- For exploratory work, investigate first, then test settled behavior before completion
|
|
189
|
+
- Confirm that a failing test fails for the intended behavior, not broken setup
|
|
190
|
+
- Briefly explain departures from tests-first work
|
|
191
|
+
- Never invent unsettled requirements in code or assertions
|
|
192
|
+
- Investigate source, interfaces, living specs, and existing tests for an answer
|
|
193
|
+
- Prefer narrower behavior and assertions that still detect unmet requirements
|
|
194
|
+
- Report any blocked requirement and the question that settles it
|
|
195
|
+
- Read `test-conventions` before writing tests
|
|
196
|
+
- Before the first edit under configured `frontend.directory`, read the pre-edit procedure in `skills/implement/design-pass.md`
|
|
197
|
+
- Check the design gate and load design context once per task when it is on
|
|
198
|
+
- Follow the same procedure for direct work and delegated implementation
|
|
199
|
+
|
|
200
|
+
### Use independent review where needed
|
|
201
|
+
|
|
202
|
+
- Require independent review for security boundaries, money, irreversible data changes, or unresolved correctness or impact uncertainty
|
|
203
|
+
- Use another agent or a qualified reviewer for that review
|
|
204
|
+
- If independent review cannot run, report the block instead of claiming completion
|
|
205
|
+
- A separate test-writer is optional when independent requirements interpretation adds confidence
|
|
206
|
+
- Give it requirements, acceptance criteria, and interfaces rather than implementation plans
|
|
207
|
+
- Preserve its separate test ownership when chosen
|
|
208
|
+
- The implementer must not weaken those tests to make code pass
|
|
209
|
+
- Route incorrect or incomplete tests back to their owner
|
|
210
|
+
- Without separate ownership, the implementer may write source and tests
|
|
211
|
+
- A task-checker is an optional independent verifier, not a required step after every executor
|
|
212
|
+
- Assign non-overlapping files when delegating concurrent work
|
|
213
|
+
|
|
214
|
+
### Complete required gates
|
|
215
|
+
|
|
216
|
+
- Run `commands.format` over touched files before final verification when configured
|
|
217
|
+
- Report a non-zero exit as a formatting problem, not proof of incorrect behavior
|
|
218
|
+
- Run the project's required build, lint, typecheck, and test checks (see Build verification)
|
|
219
|
+
- Audit whether checks detect realistic mistakes, including circular mock assertions and missing integration
|
|
220
|
+
- Respect separate test ownership when reviewing changes
|
|
221
|
+
- For changed frontend files, the verification owner runs configured frontend build, lint, and tests
|
|
222
|
+
- The verification owner is the session responsible for completion, or a delegated verifier with that responsibility
|
|
223
|
+
- When the design gate is on and configured frontend files changed, complete the design pass in `skills/implement/design-pass.md`
|
|
224
|
+
- File discovery, static checks, and the detector may belong to a delegated verifier
|
|
225
|
+
- The parent session types audit and polish; a read-only checker returns its file list and findings without editing
|
|
226
|
+
- When the session chose a checker, send polished code back for independent recheck before browser verification
|
|
227
|
+
- These gates apply even when the session delegates no task-checker
|
|
228
|
+
- When the project enables configured frontend verification, delegate real-browser verification to `frontend-verifier` on the final code
|
|
229
|
+
- Fix failures and rerun affected checks before completion
|
|
230
|
+
|
|
231
|
+
### Report evidence and limits
|
|
232
|
+
|
|
233
|
+
- Report the changed behavior, commands run, results, and remaining risks
|
|
234
|
+
- Name blocked checks and missing regression protection
|
|
235
|
+
- Report independent review evidence when required
|
|
236
|
+
- Avoid mandatory phase transcripts or claims based only on test counts
|
|
237
|
+
|
|
238
|
+
### Deprecated workflow booleans
|
|
239
|
+
|
|
240
|
+
- `workflow.tdd.strict` and `workflow.tdd.orchestrator_strict` remain valid booleans for configuration compatibility
|
|
241
|
+
- Neither key has an effective default or controls sequencing or delegation, including explicit `true`
|
|
242
|
+
- ACStack removes the former strict sequencing and delegation guarantee
|
|
243
|
+
- Existing configuration files remain unchanged unless the user edits them
|
|
244
|
+
- New setup neither offers nor generates these keys
|
|
245
|
+
- Explicit user process instructions still apply
|
|
326
246
|
|
|
327
247
|
---
|
|
328
248
|
|
|
@@ -347,42 +267,12 @@ This is lightweight – retroactive spec documentation, not upfront planning. Sp
|
|
|
347
267
|
|
|
348
268
|
## Agent teams for parallel work
|
|
349
269
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
| Single scope, sequential work | You (orchestrator) launch subagents directly |
|
|
357
|
-
| 2+ independent scopes, non-overlapping files | Launch an agent team – each teammate owns one scope |
|
|
358
|
-
| Work that requires shared-file coordination | Sequential subagents (teams would conflict) |
|
|
359
|
-
| Quick focused tasks (one test file, one fix) | Subagent directly (team overhead not worth it) |
|
|
360
|
-
|
|
361
|
-
### Architecture: teammates spawn subagents
|
|
362
|
-
|
|
363
|
-
Teammates are **full agent sessions**, NOT subagents. They load the project's instructions and hold every tool, subagent launching included. They spawn subagents:
|
|
364
|
-
|
|
365
|
-
```
|
|
366
|
-
You (Team Lead / Orchestrator)
|
|
367
|
-
|-- Teammate A (full session, owns Scope 1)
|
|
368
|
-
| |-- subagent: test-writer
|
|
369
|
-
| |-- subagent: task-executor
|
|
370
|
-
| '-- subagent: task-checker
|
|
371
|
-
|-- Teammate B (full session, owns Scope 2)
|
|
372
|
-
| |-- subagent: test-writer
|
|
373
|
-
| |-- subagent: task-executor
|
|
374
|
-
| '-- subagent: task-checker
|
|
375
|
-
'-- Teammate C (full session, owns Scope 3)
|
|
376
|
-
'-- ... same pattern
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
### File ownership rules
|
|
380
|
-
|
|
381
|
-
**Critical**: Two teammates editing the same file causes overwrites. Always:
|
|
382
|
-
|
|
383
|
-
- Assign non-overlapping file sets to each teammate
|
|
384
|
-
- If a scope must edit a shared file – main imports, for example – do that as a sequential step AFTER the team completes
|
|
385
|
-
- Give each teammate its own git worktree when appropriate (`isolation: "worktree"` on Claude Code)
|
|
270
|
+
- Use teams when independent scopes benefit from parallel work
|
|
271
|
+
- Work directly or delegate sequentially when coordination costs exceed the benefit
|
|
272
|
+
- Give each teammate a non-overlapping file set
|
|
273
|
+
- Schedule shared-file edits sequentially to prevent overwrites
|
|
274
|
+
- Use separate worktrees when appropriate
|
|
275
|
+
- Each scope follows the shared Implementation discipline, without a fixed agent sequence
|
|
386
276
|
|
|
387
277
|
---
|
|
388
278
|
|
|
@@ -397,7 +287,8 @@ You (Team Lead / Orchestrator)
|
|
|
397
287
|
|
|
398
288
|
### Spec correction protocol (fix it when you see it)
|
|
399
289
|
|
|
400
|
-
When
|
|
290
|
+
When an agent finds a living spec contradicting the codebase, correct it promptly or route the correction to its owner.
|
|
291
|
+
Read-only reviewers report discrepancies to the completion owner.
|
|
401
292
|
|
|
402
293
|
- **Wrong behavior** -> update FR description to match what the code actually does
|
|
403
294
|
- **Missing requirement** -> add as next sequential FR-NNN with source file path
|
|
@@ -440,9 +331,9 @@ Read `acstack/project.yaml` for the specific commands. The general pattern:
|
|
|
440
331
|
|
|
441
332
|
**This section applies only when `acstack/project.yaml` sets `frontend` and `workflow.frontend_verification` is `true`.**
|
|
442
333
|
|
|
443
|
-
When a change touches frontend files,
|
|
334
|
+
When a change touches frontend files, delegate real-browser verification to frontend-verifier after required checks pass. Never substitute a confidence claim for browser evidence.
|
|
444
335
|
|
|
445
|
-
The
|
|
336
|
+
The design pass runs before browser verification when the design gate is on, followed by verification of the polished code.
|
|
446
337
|
|
|
447
338
|
The frontend-verifier agent:
|
|
448
339
|
|
|
@@ -468,27 +359,13 @@ See the `browser-verify` skill for the `agent-browser` command reference, select
|
|
|
468
359
|
|
|
469
360
|
---
|
|
470
361
|
|
|
471
|
-
##
|
|
472
|
-
|
|
473
|
-
| YOU (Orchestrator / Team Lead) | TEAMMATES (parallel scopes) | SUBAGENTS (focused tasks) |
|
|
474
|
-
| ------------------------------------ | ------------------------------------- | ------------------------- |
|
|
475
|
-
| Chart maps, work the frontier | Own a scope end-to-end | Search the codebase |
|
|
476
|
-
| Launch agent teams for parallel work | Launch subagents (test/exec/check) | Write code and tests |
|
|
477
|
-
| Decide go/no-go based on checker | Run Implementation discipline | Run tests |
|
|
478
|
-
| Run lint/typecheck commands | Message each other to coordinate | Verify integration |
|
|
479
|
-
| Ask user when blocked | Report PASS/FAIL when done | Debug issues |
|
|
480
|
-
| Verify build before marking done | Handle their own lint/typecheck | Update documentation |
|
|
481
|
-
| Manage spec updates via /commit | Do NOT edit files outside their scope | Verify & fix UI issues |
|
|
482
|
-
|
|
483
|
-
**Git is yours to run, within limits.** Low-risk operations – `status`, `diff`,
|
|
484
|
-
`log`, listing branches, staging – need no permission; just run them. Anything
|
|
485
|
-
that publishes or rewrites – commit, push, branch deletion, force operations,
|
|
486
|
-
opening a PR – needs the user to have asked for it or permitted it. When you do
|
|
487
|
-
commit, route through `/acstack:commit` rather than raw git; it is the only path
|
|
488
|
-
that runs spec sync.
|
|
362
|
+
## Ownership and git
|
|
489
363
|
|
|
490
|
-
|
|
491
|
-
|
|
364
|
+
- The completion owner chooses checks and gathers the required evidence
|
|
365
|
+
- Delegated agents own their assigned files and report results or blockers
|
|
366
|
+
- Low-risk git operations such as status, diff, log, and listing branches need no permission
|
|
367
|
+
- Publishing or rewriting history requires user authorization, including commits, pushes, branch deletion, and opening pull requests
|
|
368
|
+
- Route commits through `/acstack:commit` to preserve spec sync
|
|
492
369
|
|
|
493
370
|
---
|
|
494
371
|
|
|
@@ -499,8 +376,8 @@ Launch each agent by the name below (see Host tools for how your host takes it).
|
|
|
499
376
|
| Task Type | Agent | Notes |
|
|
500
377
|
| --------------------- | ------------------- | -------------------------------------------------- |
|
|
501
378
|
| Write failing tests | `test-writer` | Requirements-only, no impl plans |
|
|
502
|
-
| Implement task | `task-executor` |
|
|
503
|
-
| Verify implementation | `task-checker` |
|
|
379
|
+
| Implement task | `task-executor` | Source and tests unless tests have a separate owner |
|
|
380
|
+
| Verify implementation | `task-checker` | Independent review, coverage adequacy, regressions |
|
|
504
381
|
| Verify frontend UI | `frontend-verifier` | Real browser, screenshots, non-negotiable |
|
|
505
382
|
| Find/locate something | `Explore` / `scout` | Read-only codebase search; `scout` on pi |
|
|
506
383
|
| Debug/investigate | `debugger` | Built-in debugging agent |
|
|
@@ -512,21 +389,17 @@ Launch each agent by the name below (see Host tools for how your host takes it).
|
|
|
512
389
|
- **DO ask**: Unclear requirements, multiple valid approaches, judgment calls, PR splitting decisions
|
|
513
390
|
- **DON'T ask**: Technical details subagent can investigate, obvious next steps
|
|
514
391
|
|
|
515
|
-
**Default**:
|
|
392
|
+
**Default**: Investigate technical facts directly or through delegation before asking the user.
|
|
516
393
|
|
|
517
394
|
---
|
|
518
395
|
|
|
519
396
|
## Key principles
|
|
520
397
|
|
|
521
|
-
-
|
|
522
|
-
-
|
|
523
|
-
-
|
|
524
|
-
-
|
|
525
|
-
-
|
|
526
|
-
-
|
|
527
|
-
-
|
|
528
|
-
-
|
|
529
|
-
- **Handing work over** – `/acstack:handoff` hands the work to a visible agent: a new one in its own pane, or one already running. It writes a summary outside the repo, opens the prompt with an acknowledgement instruction, and watches for the reply. It records only what nothing on disk holds (next action, decisions, blockers, file ownership) and references the rest
|
|
530
|
-
- **Survive compaction** – `/acstack:compact-and-continue` keeps the work in this session. It writes an in-repo anchor instead of launching anything.
|
|
531
|
-
|
|
532
|
-
Run it before your host's `/compact`. Then type `continue` to resume from the anchor
|
|
398
|
+
- Follow the shared Implementation discipline and choose checks that detect plausible mistakes
|
|
399
|
+
- Keep the solution small without cutting validation, security, accessibility, or data-loss protection
|
|
400
|
+
- Use delegation for confidence or independent scopes, not as ceremony
|
|
401
|
+
- Keep living specs current through commit-time sync
|
|
402
|
+
- Create a map when unresolved questions need durable tracking
|
|
403
|
+
- Invoke `bridge` before cross-device browser or tunnel work
|
|
404
|
+
- Use `/acstack:handoff` to transfer work to a visible agent
|
|
405
|
+
- Use `/acstack:compact-and-continue` to preserve session state before compaction
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Generated from agents/frontend-verifier.md by scripts/gen-pi-agents.mjs.
|
|
3
3
|
# Do not edit. Change the markdown and re-run the generator.
|
|
4
4
|
name: frontend-verifier
|
|
5
|
-
description: Behavioral UI verification agent. Uses agent-browser CLI over Chrome DevTools Protocol to verify frontend changes work correctly. Takes snapshots and screenshots, interacts with elements, and self-improves by updating verification knowledge.
|
|
5
|
+
description: Behavioral UI verification agent. Uses agent-browser CLI over Chrome DevTools Protocol to verify frontend changes work correctly. Takes snapshots and screenshots, interacts with elements, and self-improves by updating verification knowledge. Runs on final frontend code after required static and design gates pass.
|
|
6
6
|
systemPromptMode: append
|
|
7
7
|
inheritProjectContext: true
|
|
8
8
|
inheritSkills: true
|
|
@@ -11,9 +11,12 @@ skillPath: ../../skills
|
|
|
11
11
|
tools: read, grep, find, ls, bash, edit, write
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
# Frontend
|
|
14
|
+
# Frontend verifier
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Verify frontend changes in a real browser after required static checks and any design pass have cleared on the final code.
|
|
17
|
+
|
|
18
|
+
Follow `orchestrator/AGENTS.md` for the shared verification policy; no fixed agent sequence is a prerequisite.
|
|
19
|
+
Confirm required gate evidence with the verification owner before starting browser work.
|
|
17
20
|
|
|
18
21
|
**Your sole job**: Connect to a browser. Test the behavior that changed. Report PASS or FAIL with screenshot evidence.
|
|
19
22
|
|
|
@@ -352,6 +355,6 @@ Do NOT kill the browser if you connected to an existing one. In `remote` mode th
|
|
|
352
355
|
## What you do NOT do
|
|
353
356
|
|
|
354
357
|
- You do NOT fix source code bugs – report them for the executor to fix.
|
|
355
|
-
- You do NOT run unit tests –
|
|
356
|
-
- You do NOT check TypeScript compilation – that
|
|
358
|
+
- You do NOT run unit tests – the verification owner completes those checks first.
|
|
359
|
+
- You do NOT check TypeScript compilation – the verification owner completes that check first.
|
|
357
360
|
- You ONLY verify behavior in a real browser with real screenshots.
|