acstack 0.52.1 → 0.52.2
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 +3 -1
- package/agents/codex/task-checker.toml +51 -190
- package/agents/codex/task-executor.toml +5 -4
- package/agents/codex/test-writer.toml +3 -0
- package/agents/task-checker.md +51 -190
- package/agents/task-executor.md +5 -4
- package/agents/test-writer.md +3 -0
- package/cli/package.json +1 -1
- package/docs/workflows.md +6 -1
- package/orchestrator/AGENTS.md +38 -17
- package/package.json +1 -1
- package/pi/agents/task-checker.md +51 -190
- package/pi/agents/task-executor.md +5 -4
- package/pi/agents/test-writer.md +3 -0
- package/skills/code-review/SKILL.md +3 -0
- package/skills/compact-and-continue/SKILL.md +4 -2
- package/skills/handoff/SKILL.md +5 -5
- package/skills/implement/SKILL.md +6 -4
- package/skills/pre-commit-review/SKILL.md +34 -35
- package/skills/pre-commit-review/auto-fix.md +12 -12
- package/skills/pre-commit-review/interactive.md +12 -5
- package/skills/quick-fix/SKILL.md +6 -8
- package/skills/test-conventions/SKILL.md +2 -2
package/cli/package.json
CHANGED
package/docs/workflows.md
CHANGED
|
@@ -179,7 +179,12 @@ flowchart LR
|
|
|
179
179
|
- Practical tests-first work remains preferred
|
|
180
180
|
- Another agent adds independent interpretation or review when useful or required by the shared policy
|
|
181
181
|
- Choosing separate test ownership prevents the implementer from weakening those tests
|
|
182
|
-
-
|
|
182
|
+
- One verification owner gathers formatting and project-required completion evidence for the final revision
|
|
183
|
+
- Use focused checks during implementation and reuse valid results across agents, nodes, and commits
|
|
184
|
+
- Rerun affected checks when relevant code, inputs, or environment change, or validity is uncertain
|
|
185
|
+
- Review depth follows plausible failures in affected security, resource lifecycle, concurrency, and performance paths
|
|
186
|
+
- Adjacent cleanup stays advisory unless the user approves it; approved independent work can run in parallel without blocking delivery
|
|
187
|
+
- Deep modules hide complexity: callers need fewer facts, and each rule has one owner
|
|
183
188
|
- Frontend design checks run under `skills/implement/design-pass.md`, even without a delegated checker
|
|
184
189
|
- Configured real-browser verification runs on the final code after required gates pass
|
|
185
190
|
- Report commands, results, and blocked checks rather than phase narration
|
package/orchestrator/AGENTS.md
CHANGED
|
@@ -189,6 +189,11 @@ flowchart TD
|
|
|
189
189
|
- Never declare consequential behavior safe without evidence
|
|
190
190
|
- Derive assertions from requirements and observable behavior, not the implementation's current answers
|
|
191
191
|
- Test counts and mocked assertions alone never prove adequate coverage
|
|
192
|
+
- Tie review depth to plausible failures in the changed behavior and connected paths
|
|
193
|
+
- Inspect authentication, authorization, trust boundaries, and sensitive data handling when affected
|
|
194
|
+
- Inspect resource ownership and cleanup for leaks, cancellation, and concurrency when affected
|
|
195
|
+
- Check expensive paths for query amplification, blocking work, and unbounded memory or runtime; measure when performance claims matter
|
|
196
|
+
- Expand scope when evidence reveals wider risk, not merely because another file is nearby
|
|
192
197
|
|
|
193
198
|
### Investigate, test, and implement
|
|
194
199
|
|
|
@@ -202,6 +207,9 @@ flowchart TD
|
|
|
202
207
|
- Investigate source, interfaces, living specs, and existing tests for an answer
|
|
203
208
|
- Prefer narrower behavior and assertions that still detect unmet requirements
|
|
204
209
|
- Report any blocked requirement and the question that settles it
|
|
210
|
+
- Prefer deep modules: hide substantial complexity behind small, useful interfaces
|
|
211
|
+
- Ask whether callers need fewer facts, each rule has one owner, and the interface hides complexity rather than moving it
|
|
212
|
+
- Keep names and control flow readable; more helpers, shorter functions, and fewer lines are not goals by themselves
|
|
205
213
|
- Read `test-conventions` before writing tests
|
|
206
214
|
- Before the first edit under configured `frontend.directory`, read the pre-edit procedure in `skills/implement/design-pass.md`
|
|
207
215
|
- Check the design gate and load design context once per task when it is on
|
|
@@ -219,7 +227,14 @@ flowchart TD
|
|
|
219
227
|
- Route incorrect or incomplete tests back to their owner
|
|
220
228
|
- Without separate ownership, the implementer may write source and tests
|
|
221
229
|
- A task-checker is an optional independent verifier, not a required step after every executor
|
|
230
|
+
- Give each reviewer a bounded question, affected paths, requirements, known risks, and available check evidence
|
|
231
|
+
- A focused reviewer checks that question; it does not inherit ownership of every completion gate
|
|
232
|
+
- Expand the review when findings reveal wider risk, and report the reason
|
|
222
233
|
- Assign non-overlapping files when delegating concurrent work
|
|
234
|
+
- Adjacent cleanup is advisory by default, not a delivery gate or an automatic source edit
|
|
235
|
+
- Report worthwhile cleanup separately; ask the user before adding it to scope
|
|
236
|
+
- Approved cleanup may run in parallel on non-overlapping files or isolated worktrees, without blocking the main change
|
|
237
|
+
- A defect that prevents the requested behavior or exposes a consequential risk is not merely cleanup; fix it within scope or report the blocker
|
|
223
238
|
|
|
224
239
|
### Complete required gates
|
|
225
240
|
|
|
@@ -229,7 +244,8 @@ flowchart TD
|
|
|
229
244
|
- Audit whether checks detect realistic mistakes, including circular mock assertions and missing integration
|
|
230
245
|
- Respect separate test ownership when reviewing changes
|
|
231
246
|
- For changed frontend files, the verification owner runs configured frontend build, lint, and tests
|
|
232
|
-
-
|
|
247
|
+
- Choose one verification owner: the session responsible for completion, or a delegated verifier explicitly assigned that responsibility
|
|
248
|
+
- Reuse valid command evidence under Build verification; do not make every agent repeat completion checks
|
|
233
249
|
- When the design gate is on and configured frontend files changed, complete the design pass in `skills/implement/design-pass.md`
|
|
234
250
|
- File discovery, static checks, and the detector may belong to a delegated verifier
|
|
235
251
|
- The parent session types audit and polish; a read-only checker returns its file list and findings without editing
|
|
@@ -312,29 +328,34 @@ Read-only reviewers report discrepancies to the completion owner.
|
|
|
312
328
|
|
|
313
329
|
## Build verification (mandatory)
|
|
314
330
|
|
|
315
|
-
|
|
331
|
+
The verification owner gathers passing completion evidence for the final revision before declaring the request or parent effort complete or creating a PR.
|
|
316
332
|
|
|
317
|
-
Read `.acstack/project.yaml` for the specific commands
|
|
333
|
+
Read `.acstack/project.yaml` for the specific commands:
|
|
318
334
|
|
|
319
|
-
1. Run the build
|
|
320
|
-
2. Run
|
|
321
|
-
3.
|
|
322
|
-
4. Run
|
|
323
|
-
5.
|
|
324
|
-
6. Run the frontend build and lint if the project configures a frontend
|
|
335
|
+
1. Run the configured build, lint, and typecheck commands
|
|
336
|
+
2. Run the configured full test suite; all tests must pass
|
|
337
|
+
3. When `commands.test_collect` is configured, compare the count against `.acstack/.test-baseline` if present; investigate removed coverage and honor project baseline requirements
|
|
338
|
+
4. Run configured frontend build, lint, and tests when frontend files changed
|
|
339
|
+
5. Complete configured design and browser gates when applicable
|
|
325
340
|
|
|
326
|
-
###
|
|
341
|
+
### During implementation
|
|
327
342
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
-
|
|
343
|
+
Use focused checks for each change, fix, or map node. Resolve a node only when its behavior and applicable risk review are verified; do not claim the whole effort is verified until completion gates pass.
|
|
344
|
+
Do not rerun all completion commands after every node, review finding, agent handoff, or commit solely because that event occurred.
|
|
345
|
+
Project-specific and explicit user requirements for additional checks still apply.
|
|
346
|
+
|
|
347
|
+
### Reuse evidence without hiding stale results
|
|
348
|
+
|
|
349
|
+
- Record each command, working directory, tested revision (including uncommitted changes), relevant environment, and result
|
|
350
|
+
- Share result or log references with reviewers and receiving agents
|
|
351
|
+
- Reuse a result only when its relevant source, tests, configuration, dependencies, generated inputs, and environment are unchanged
|
|
352
|
+
- Rerun affected checks after changes; rerun when validity is uncertain or the check depends on external state that may have changed
|
|
353
|
+
- A commit alone does not invalidate evidence; hook edits or generated changes can
|
|
354
|
+
- Independent review still examines the assigned behavior and test adequacy; a passing command is not a substitute
|
|
331
355
|
|
|
332
356
|
### If verification fails
|
|
333
357
|
|
|
334
|
-
|
|
335
|
-
2. Fix the error immediately
|
|
336
|
-
3. Re-run verification
|
|
337
|
-
4. Only proceed when all checks pass
|
|
358
|
+
Do not claim completion with failed or blocked required checks. Investigate, fix, and rerun affected checks. Report unresolved failures and remaining risk.
|
|
338
359
|
|
|
339
360
|
---
|
|
340
361
|
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Generated from agents/task-checker.md by scripts/gen-pi-agents.mjs.
|
|
3
3
|
# Do not edit. Change the markdown and re-run the generator.
|
|
4
4
|
name: task-checker
|
|
5
|
-
description:
|
|
5
|
+
description: Bounded independent review of behavior, coverage, and integration. Owns completion checks only when explicitly assigned; browser verification belongs to frontend-verifier.
|
|
6
6
|
systemPromptMode: append
|
|
7
7
|
inheritProjectContext: true
|
|
8
8
|
inheritSkills: true
|
|
@@ -11,216 +11,77 @@ tools: read, grep, find, ls, bash, edit, write
|
|
|
11
11
|
|
|
12
12
|
# Task checker
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Verify the assigned question under the shared Implementation discipline in `orchestrator/AGENTS.md`. Read that policy before choosing checks.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
You run when independent review adds confidence or the shared policy requires it. A fixed agent sequence is not a prerequisite.
|
|
17
|
+
You are read-only: do not edit source, tests, or specs.
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
A fixed agent sequence is not a prerequisite.
|
|
19
|
+
## Establish scope and ownership
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Read the supplied requirements, affected paths, known risks, and available command results.
|
|
22
|
+
Read `.acstack/project.yaml` for commands, directories, environment activation, and applicable frontend gates.
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
- Distinguish focused review from ownership of completion verification
|
|
25
|
+
- If the assignment is unclear, clarify it with the delegating session before duplicating checks
|
|
26
|
+
- Reuse valid command evidence under the shared policy; run missing, stale, or question-specific checks
|
|
27
|
+
- Expand scope when findings reveal connected risk, and explain why
|
|
28
|
+
- Keep unrelated cleanup advisory; propose worthwhile work to the parent for user approval rather than blocking delivery
|
|
24
29
|
|
|
25
|
-
|
|
26
|
-
- `commands.test_collect` – how to count tests (for baseline)
|
|
27
|
-
- `commands.build` – build verification
|
|
28
|
-
- `commands.lint` – linting
|
|
29
|
-
- `commands.typecheck` – type checking
|
|
30
|
-
- `directories.tests` – test directory (for assigned ownership checks)
|
|
31
|
-
- `venv.activate` – prefix for commands if set
|
|
32
|
-
- `frontend` – if present, the checker runs the frontend build, lint, and unit tests when frontend files changed (section 5.5)
|
|
33
|
-
- `test_markers.exclude` – markers to exclude from test runs
|
|
30
|
+
## Verify the assigned behavior
|
|
34
31
|
|
|
35
|
-
|
|
32
|
+
Read changed code and the connected callers and dependencies needed to answer the review question. Verify actual behavior, not documentation claims.
|
|
36
33
|
|
|
37
|
-
|
|
34
|
+
- Check requirements and realistic failure cases, including integration along the affected user or system path
|
|
35
|
+
- Inspect authentication, authorization, trust boundaries, sensitive data, resource cleanup, concurrency, and expensive paths when affected
|
|
36
|
+
- Use executable evidence for consequential claims; report blocked checks and uncertainty
|
|
37
|
+
- Check that interfaces hide complexity, callers need fewer facts, and each rule has one owner
|
|
38
|
+
- Check readable names and control flow; do not demand wrappers, shorter functions, or arbitrary line limits
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
Do not apply every category to every change. A narrow review must remain useful, not become a repository-wide audit.
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
Note: requirements, test strategy, acceptance criteria.
|
|
42
|
+
## Assess relevant test coverage
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
For the behavior under review:
|
|
45
45
|
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
46
|
+
- Identify which plausible mistakes the important assertions detect
|
|
47
|
+
- Look for circular expectations, weak assertions, and tests that mock the subject instead of exercising it
|
|
48
|
+
- Check integration where mocks could conceal a broken connection; use the smallest realistic test environment that demonstrates it
|
|
49
|
+
- Do not require live external calls or databases when they add no useful evidence
|
|
50
|
+
- Reuse adequate coverage for refactors; nonbehavioral edits need no new tests
|
|
51
|
+
- Respect separate test ownership when assigned; otherwise the implementer may write both source and tests
|
|
52
|
+
- Report unmet requirements and missing regression protection
|
|
49
53
|
|
|
50
|
-
|
|
54
|
+
A temporary mutation experiment is optional, not a required source edit.
|
|
55
|
+
Do not classify every mock or audit unrelated assertions as a ritual.
|
|
51
56
|
|
|
52
|
-
|
|
57
|
+
## When assigned completion ownership
|
|
53
58
|
|
|
54
|
-
|
|
59
|
+
Gather the completion evidence required by Build verification in `orchestrator/AGENTS.md`. Do not rerun valid checks merely because another agent ran them.
|
|
60
|
+
Required failures or blocked gates prevent completion; report them without hiding independent findings.
|
|
55
61
|
|
|
56
|
-
|
|
57
|
-
- All tests must pass
|
|
62
|
+
For changed frontend files, follow `skills/implement/design-pass.md`:
|
|
58
63
|
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
- Review available failing-first evidence and any explained departure from tests-first work
|
|
64
|
-
- Test counts alone do not prove adequacy
|
|
64
|
+
- Return the discovered file list and detector findings to the parent
|
|
65
|
+
- The parent types audit and polish when the design gate applies; never run source-editing polish yourself
|
|
66
|
+
- Recheck affected evidence after polish, reusing unaffected results
|
|
67
|
+
- Browser interaction belongs to `frontend-verifier` after required gates pass
|
|
65
68
|
|
|
66
|
-
|
|
69
|
+
Compare affected living specs with verified behavior when relevant to the assignment. Report corrections to the completion owner.
|
|
67
70
|
|
|
68
|
-
|
|
69
|
-
- Does the test verify real behavior, or only that the code called mocks?
|
|
70
|
-
- If the test mocks everything, it proves nothing about integration
|
|
71
|
-
- Red flag: a test passes, but the feature doesn't work in the real app
|
|
71
|
+
## Report
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Keep the report proportional to the assignment:
|
|
74
74
|
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
75
|
+
- Verdict: PASS, FAIL, or BLOCKED for the named review question, not unreviewed behavior
|
|
76
|
+
- Scope and any justified expansion
|
|
77
|
+
- Concrete findings with file paths, line numbers, impact, and suggested fixes
|
|
78
|
+
- Evidence: commands run or reused, results, and which realistic mistakes coverage detects
|
|
79
|
+
- Missing protection, blocked checks, and remaining uncertainty
|
|
80
|
+
- Completion gates only when assigned ownership; distinguish verified, reused, failed, and not run
|
|
81
|
+
- Adjacent suggestions separately, as advisory work requiring approval
|
|
78
82
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
Run the ENTIRE test suite, not just the task's tests. Use the test command from project.yaml.
|
|
82
|
-
|
|
83
|
-
If ANY pre-existing test fails -> FAIL immediately.
|
|
84
|
-
|
|
85
|
-
### 4.6 Test count baseline
|
|
86
|
-
|
|
87
|
-
If `project.yaml` configures `commands.test_collect`, compare the current test count against `.acstack/.test-baseline`:
|
|
88
|
-
|
|
89
|
-
If CURRENT < BASELINE, investigate the removed coverage and report any unmet project baseline requirement.
|
|
90
|
-
A count alone neither proves adequacy nor establishes who removed a test.
|
|
91
|
-
|
|
92
|
-
### 4.7 Systematic mock audit
|
|
93
|
-
|
|
94
|
-
For each new/modified test file:
|
|
95
|
-
|
|
96
|
-
1. **Classify mock level**:
|
|
97
|
-
- Level 0: No mocks (best)
|
|
98
|
-
- Level 1: Mocks external services only (good)
|
|
99
|
-
- Level 2: Mocks internal dependencies (acceptable if justified)
|
|
100
|
-
- Level 3: Mocks the module under test (BAD)
|
|
101
|
-
- Level 4: Circular assertions - mock.return_value = X; assert result == X (FAIL)
|
|
102
|
-
|
|
103
|
-
2. **Circular assertion check**: If any test has the circular pattern -> FAIL
|
|
104
|
-
|
|
105
|
-
3. **Undefined-imports check**: For each new test, ask whether it would still pass if every function it imports returned `undefined`.
|
|
106
|
-
|
|
107
|
-
If yes -> FAIL. The test observes no behaviour. Typical causes are a weak assertion (`toBeDefined`, `is not None`), a bare `toHaveBeenCalled`, a restated constant, or an expected value computed by the code under test.
|
|
108
|
-
|
|
109
|
-
4. **Failure sensitivity**: Explain which plausible wrong behavior each important assertion detects
|
|
110
|
-
|
|
111
|
-
A temporary mutation experiment is optional, never a required source edit.
|
|
112
|
-
Prefer read-only reasoning or an isolated disposable copy when useful.
|
|
113
|
-
|
|
114
|
-
### 4.8 Test ownership audit
|
|
115
|
-
|
|
116
|
-
- Determine whether the task assigned a separate test owner
|
|
117
|
-
- When assigned, verify the implementer did not edit or weaken that owner's tests
|
|
118
|
-
- Otherwise, the same implementer may edit source and tests
|
|
119
|
-
- Review assertion quality regardless of authorship or test timing
|
|
120
|
-
- Report requirements that remain unprotected
|
|
121
|
-
|
|
122
|
-
### 5. Integration wired (CRITICAL)
|
|
123
|
-
|
|
124
|
-
This is where most failures hide. Verify the complete chain:
|
|
125
|
-
|
|
126
|
-
**Route accessibility** (if applicable)
|
|
127
|
-
|
|
128
|
-
- Is the route registered?
|
|
129
|
-
- Can you navigate to it?
|
|
130
|
-
|
|
131
|
-
**Data flow**
|
|
132
|
-
|
|
133
|
-
- Backend API -> Frontend call -> State update -> UI display
|
|
134
|
-
- Verify each link in the chain exists
|
|
135
|
-
|
|
136
|
-
**User access path**
|
|
137
|
-
|
|
138
|
-
- How does a user reach this feature?
|
|
139
|
-
- If you can't describe the click path, it's not wired up
|
|
140
|
-
|
|
141
|
-
**Red flags**
|
|
142
|
-
|
|
143
|
-
- The code imports the component but never renders it
|
|
144
|
-
- The code creates the hook but never calls it
|
|
145
|
-
- The API endpoint exists, but the frontend doesn't call it
|
|
146
|
-
- The state exists, but nothing displays it
|
|
147
|
-
- The button exists, but the handler is empty or missing
|
|
148
|
-
|
|
149
|
-
### 5.5 Frontend checks
|
|
150
|
-
|
|
151
|
-
- When assigned verification ownership, follow `skills/implement/design-pass.md` for changed-file discovery and detector handling
|
|
152
|
-
- Run configured frontend build, lint, and tests when frontend files changed
|
|
153
|
-
- Return the discovered file list and detector findings to the parent session
|
|
154
|
-
- The parent must type audit and polish when the design gate applies; never run source-editing polish as a read-only checker
|
|
155
|
-
- Recheck polished code independently when the parent returns it, including affected tests, static checks, and the detector
|
|
156
|
-
- Verify evidence that the required gates cleared before configured real-browser verification
|
|
157
|
-
- Browser interaction belongs to `frontend-verifier`
|
|
158
|
-
|
|
159
|
-
### 6. Dependencies integrated
|
|
160
|
-
|
|
161
|
-
- Dependent tasks actually work together
|
|
162
|
-
- Existing functionality has no breaking changes
|
|
163
|
-
- Apply the shared communication standard to code design, not only explanations
|
|
164
|
-
- Read connected callers and dependencies to verify coherent responsibility boundaries and peer components at comparable abstraction levels
|
|
165
|
-
- Check that small, useful interfaces hide real complexity without exposing internals or adding pass-through layers
|
|
166
|
-
- Check that names match meaning and structure follows responsibility rather than folder layout
|
|
167
|
-
- Judge concrete effects on callers, not line count or indirection; do not require nesting or wrappers
|
|
168
|
-
|
|
169
|
-
### 7. Spec accuracy
|
|
170
|
-
|
|
171
|
-
- Compare affected living specs with verified behavior
|
|
172
|
-
- Report wrong behavior, missing requirements, stale references, and planned items to the completion owner for correction
|
|
173
|
-
|
|
174
|
-
## Output format
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
## Verification Report: Task [ID]
|
|
178
|
-
|
|
179
|
-
**Status**: PASS | FAIL
|
|
180
|
-
|
|
181
|
-
### Verified
|
|
182
|
-
- [What was checked and passed]
|
|
183
|
-
|
|
184
|
-
### Regression Status
|
|
185
|
-
- Full suite: PASS/FAIL (X tests ran, Y passed, Z failed)
|
|
186
|
-
- Baseline: CURRENT vs BASELINE (PASS/FAIL)
|
|
187
|
-
- Mock audit: [Summary]
|
|
188
|
-
- Coverage adequacy: [requirements, plausible mistakes detected, and gaps]
|
|
189
|
-
- Test ownership: [separate owner respected, or implementation and tests share an owner]
|
|
190
|
-
- Failing-first evidence: [observed evidence or explained departure]
|
|
191
|
-
- Independent review: [evidence for required review, or not required]
|
|
192
|
-
- Blocked checks: [commands, reasons, and remaining risk]
|
|
193
|
-
|
|
194
|
-
### Design Detector
|
|
195
|
-
- Design gate: on, or off ([reason])
|
|
196
|
-
- Detector: PASS/FAIL (X findings), or WARNING ([why it could not run])
|
|
197
|
-
- [file:line] - [finding name] - [description]
|
|
198
|
-
- Notes (if any advisory): [file:line] - [finding name] - [description]
|
|
199
|
-
|
|
200
|
-
### Issues (if FAIL)
|
|
201
|
-
- [file:line] - [specific problem]
|
|
202
|
-
|
|
203
|
-
### User Access Path
|
|
204
|
-
[How a user reaches this feature, or "NOT ACCESSIBLE" if unwired]
|
|
205
|
-
|
|
206
|
-
### Verdict
|
|
207
|
-
[One sentence: PASS or FAIL with what must be fixed]
|
|
208
|
-
[Note: browser-based UI verification is handled by the frontend-verifier]
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## Decision rules
|
|
212
|
-
|
|
213
|
-
**PASS**: Code exists, compiles, tests pass, feature accessible.
|
|
214
|
-
|
|
215
|
-
**FAIL**: Build errors, test failures, feature not accessible, or core requirements not met.
|
|
216
|
-
|
|
217
|
-
## Constraints
|
|
218
|
-
|
|
219
|
-
- **READ-ONLY**: Verify without editing source or tests
|
|
220
|
-
- Report spec corrections to the completion owner rather than editing during review
|
|
221
|
-
- **Be specific**: Always include file paths and line numbers for issues.
|
|
222
|
-
- **Binary decisions**: PASS or FAIL
|
|
223
|
-
- **Verify, don't trust**: Check actual code, not documentation claims.
|
|
83
|
+
PASS means the assigned question has sufficient evidence. FAIL means a concrete defect or required-check failure. BLOCKED means missing evidence or access prevents a verdict.
|
|
84
|
+
Never present a focused PASS as completion of the whole effort.
|
|
224
85
|
|
|
225
86
|
Use the fewest clear words that preserve all necessary information.
|
|
226
87
|
|
|
@@ -54,16 +54,17 @@ Read `.acstack/project.yaml` for project-specific settings:
|
|
|
54
54
|
- Implement one subtask at a time
|
|
55
55
|
- Follow the project's coding standards
|
|
56
56
|
- Keep peer components at comparable abstraction levels, organized by responsibility rather than folder layout
|
|
57
|
-
- Hide real complexity behind small, useful interfaces (deep modules);
|
|
57
|
+
- Hide real complexity behind small, useful interfaces (deep modules); callers should need fewer facts, and each rule should have one owner
|
|
58
58
|
- Make names match responsibilities; avoid pass-through layers that add no useful boundary
|
|
59
59
|
- Do not force nesting or wrappers; neither line count nor indirection measures design quality
|
|
60
60
|
- Prefer editing existing files over creating new ones
|
|
61
61
|
- Only create files essential for task completion
|
|
62
62
|
|
|
63
63
|
5. **Quality Assurance**:
|
|
64
|
-
- Run
|
|
65
|
-
-
|
|
66
|
-
-
|
|
64
|
+
- Run focused checks for changed behavior; share commands, tested revision, relevant environment, and results with the verification owner
|
|
65
|
+
- Gather full completion evidence only when assigned that ownership, reusing valid results under the shared policy
|
|
66
|
+
- Verify acceptance criteria and affected dependency or integration paths
|
|
67
|
+
- Keep adjacent cleanup advisory; ask before expanding scope, and isolate approved parallel work
|
|
67
68
|
|
|
68
69
|
## Test ownership
|
|
69
70
|
|
package/pi/agents/test-writer.md
CHANGED
|
@@ -25,6 +25,9 @@ You write tests from requirements and application programming interface (API) co
|
|
|
25
25
|
- Prefer intended failing-first evidence when practical
|
|
26
26
|
- If implementation already exists, leave it unread and report the available evidence honestly
|
|
27
27
|
- Report mismatches instead of reshaping assertions to fit the code
|
|
28
|
+
- Stay within assigned behavior and plausible failures; do not turn optional independent interpretation into a general audit
|
|
29
|
+
- Reuse existing fixtures and adequate coverage; add only tests that detect an unmet requirement or realistic regression
|
|
30
|
+
- Run the assigned tests, not every completion command; share commands, tested revision, relevant environment, and results with the verification owner
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
## Project configuration
|
|
@@ -32,6 +32,7 @@ When reviewing code or making design decisions, ask these questions in order:
|
|
|
32
32
|
3. **What are the core data relationships?** – Read connected callers and dependencies, not only the diff
|
|
33
33
|
- Do boundaries group coherent responsibilities, with peer components at comparable abstraction levels?
|
|
34
34
|
- Do small, useful interfaces hide real complexity (deep modules), without exposing internals or adding pass-through layers?
|
|
35
|
+
- Do callers need fewer facts, and does each rule have one owner, rather than complexity merely moving into more helpers?
|
|
35
36
|
- Do names match meaning and structure follow responsibility rather than folder layout?
|
|
36
37
|
- Do not force nesting or wrappers; judge effects on callers, not line count or indirection
|
|
37
38
|
4. **Can we eliminate special cases?** – Redesign to avoid if/else branches
|
|
@@ -47,4 +48,6 @@ Use this philosophy when:
|
|
|
47
48
|
- Refactoring existing code
|
|
48
49
|
- Designing new features
|
|
49
50
|
|
|
51
|
+
Follow the shared Implementation discipline in `orchestrator/AGENTS.md` for risk-based depth and evidence reuse. Keep adjacent cleanup advisory unless the user approves it.
|
|
52
|
+
|
|
50
53
|
The goal is always: **maximum simplicity, minimum special cases, optimal data structures**.
|
|
@@ -99,14 +99,16 @@ something by running a command, it should run the command.
|
|
|
99
99
|
| Map state and reading order | `~/.claude/acstack/bin/acstack node walk --map <name>` (reading order of the map) |
|
|
100
100
|
| What can be worked next | `~/.claude/acstack/bin/acstack node frontier --map <name>` (what is workable now) |
|
|
101
101
|
| Files in flight | `git status --short` and `git diff` |
|
|
102
|
-
| Test baseline, last result | `.acstack/.test-baseline
|
|
102
|
+
| Test baseline, last result | `.acstack/.test-baseline` and referenced check logs; reuse valid evidence under the shared policy |
|
|
103
103
|
| What the code does | the living specs in `.acstack/specs/` |
|
|
104
104
|
|
|
105
105
|
On GitHub, `--map` refuses – pipe `gh issue list` into `--stdin` per the
|
|
106
106
|
map skill's `trackers/github.md`.
|
|
107
107
|
|
|
108
108
|
The same applies to specs, architecture decision records, issues and commits.
|
|
109
|
-
Reference them by path or URL.
|
|
109
|
+
Reference them by path or URL. Preserve references to check evidence with its tested
|
|
110
|
+
revision, relevant environment, command, and result; compaction alone does not require
|
|
111
|
+
a suite rerun. If evidence exists only in the conversation, anchor it rather than lose it.
|
|
110
112
|
|
|
111
113
|
**You do not search the codebase for this.** Build the anchor from what is
|
|
112
114
|
already in context. If you are about to search source files, stop – the
|
package/skills/handoff/SKILL.md
CHANGED
|
@@ -14,9 +14,8 @@ Treat the argument as the focus for the receiving agent.
|
|
|
14
14
|
|
|
15
15
|
# Hand the work over
|
|
16
16
|
|
|
17
|
-
A handoff moves
|
|
18
|
-
|
|
19
|
-
session across a context compaction instead, use `compact-and-continue`.
|
|
17
|
+
A handoff moves work to a visible agent. To continue in this session after
|
|
18
|
+
compaction, use `compact-and-continue`.
|
|
20
19
|
|
|
21
20
|
## Only the lead session runs this
|
|
22
21
|
|
|
@@ -102,14 +101,15 @@ it should run the command.
|
|
|
102
101
|
| Map state and reading order | `~/.claude/acstack/bin/acstack node walk --map <name>` (reading order of the map) |
|
|
103
102
|
| What can be worked next | `~/.claude/acstack/bin/acstack node frontier --map <name>` (what is workable now) |
|
|
104
103
|
| Files in flight | `git status --short` and `git diff` |
|
|
105
|
-
| Test baseline, last result | `.acstack/.test-baseline
|
|
104
|
+
| Test baseline, last result | `.acstack/.test-baseline` and referenced check logs; reuse valid evidence under the shared policy |
|
|
106
105
|
| What the code does | the living specs in `.acstack/specs/` |
|
|
107
106
|
|
|
108
107
|
On GitHub, `--map` refuses – pipe `gh issue list` into `--stdin` per the
|
|
109
108
|
map skill's `trackers/github.md`.
|
|
110
109
|
|
|
111
110
|
The same applies to specs, architecture decision records, issues and commits.
|
|
112
|
-
Reference
|
|
111
|
+
Reference records and check logs by path or URL; retain the tested revision, environment, command, and result.
|
|
112
|
+
A handoff alone does not require a suite rerun. Anchor evidence held only in conversation.
|
|
113
113
|
|
|
114
114
|
**You do not search the codebase for this.** Build the handoff from what is already
|
|
115
115
|
in context. If you are about to search source files, stop – the conversation holds it.
|
|
@@ -158,11 +158,13 @@ decision landed. With a map, then:
|
|
|
158
158
|
- Reopen design review when source, saved comments, or contribution inputs change.
|
|
159
159
|
- Recompute the frontier – resolutions unblock nodes.
|
|
160
160
|
|
|
161
|
-
### 7.
|
|
161
|
+
### 7. Completion verification
|
|
162
162
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
Use focused checks within each node. One verification owner gathers the required
|
|
164
|
+
completion evidence for the final revision under Build verification in
|
|
165
|
+
`orchestrator/AGENTS.md`, reusing valid results. Full completion checks belong at
|
|
166
|
+
the end of the request or parent effort, not after every node or handoff.
|
|
167
|
+
Do not report the effort complete with failed or blocked required gates.
|
|
166
168
|
|
|
167
169
|
### 8. Completion
|
|
168
170
|
|