acstack 0.52.0 → 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/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "acstack-cli",
3
- "version": "0.52.0",
3
+ "version": "0.52.2",
4
4
  "description": "CLI for the ACStack agentic coding stack",
5
5
  "type": "module",
6
6
  "license": "MIT",
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
- - Formatting and project-required completion checks still apply
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
@@ -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
- - The verification owner is the session responsible for completion, or a delegated verifier with that responsibility
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
- **Before marking ANY task as complete, you MUST verify the project builds.**
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. The general pattern:
333
+ Read `.acstack/project.yaml` for the specific commands:
318
334
 
319
- 1. Run the build command if the project configures one
320
- 2. Run lint
321
- 3. Run typecheck if the project configures one
322
- 4. Run the full test suite – ALL tests must pass
323
- 5. Compare the test count against `.acstack/.test-baseline`. The count must not drop.
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
- ### When to run
341
+ ### During implementation
327
342
 
328
- - **After EVERY commit** that touches source code
329
- - **Before marking parent task as done**
330
- - **Before creating a PR**
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
- 1. **DO NOT mark task complete**
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "acstack",
3
- "version": "0.52.0",
3
+ "version": "0.52.2",
4
4
  "private": false,
5
5
  "description": "Agentic coding stack with first-class Claude Code and pi support: skills, orchestrator instructions, and verification agents.",
6
6
  "license": "MIT",
@@ -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: Independent verification of behavior, coverage adequacy, regressions, integration, and assigned test ownership. Reports evidence and blockers; browser verification belongs to frontend-verifier.
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
- You verify that implemented tasks actually work and are accessible to users. You are the quality gate between 'review' and 'done'.
14
+ Verify the assigned question under the shared Implementation discipline in `orchestrator/AGENTS.md`. Read that policy before choosing checks.
15
15
 
16
- **Your job**: Verify requirements, realistic failure coverage, and integration under the shared Implementation discipline in `orchestrator/AGENTS.md`.
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
- You run when delegated for useful independent verification or when the shared policy requires independent review.
19
- A fixed agent sequence is not a prerequisite.
19
+ ## Establish scope and ownership
20
20
 
21
- ## Project configuration
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
- Read `.acstack/project.yaml` for project-specific settings:
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
- - `commands.test` – how to run tests
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
- ## Verification checklist
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
- Run through in order. Stop at first FAIL.
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
- ### 1. Retrieve task requirements
40
+ Do not apply every category to every change. A narrow review must remain useful, not become a repository-wide audit.
40
41
 
41
- Review the task requirements the orchestrator provides.
42
- Note: requirements, test strategy, acceptance criteria.
42
+ ## Assess relevant test coverage
43
43
 
44
- ### 2. Code exists
44
+ For the behavior under review:
45
45
 
46
- - The task created or modified the required files
47
- - Search the codebase to verify code exists at expected locations
48
- - Never trust documentation – verify against actual code
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
- ### 3. Code compiles
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
- Run the build, lint and typecheck commands from project.yaml. Allow no errors.
57
+ ## When assigned completion ownership
53
58
 
54
- ### 4. Tests pass
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
- - Run the test command from project.yaml
57
- - All tests must pass
62
+ For changed frontend files, follow `skills/implement/design-pass.md`:
58
63
 
59
- - Assess coverage against changed behavior and requirements under the shared policy
60
- - Adequate existing coverage can protect refactors without new tests
61
- - Nonbehavioral changes need no fresh test
62
- - Explain impractical automated testing, the nearest executable check, and missing regression protection
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
- **Mock skepticism**
69
+ Compare affected living specs with verified behavior when relevant to the assignment. Report corrections to the completion owner.
67
70
 
68
- - Are tests mocking the very thing they should be testing?
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
- **Prefer real tests over mocked tests:**
73
+ Keep the report proportional to the assignment:
74
74
 
75
- - Integration tests > unit tests with mocks
76
- - Real API calls (in test env) > mocked responses
77
- - Actual database queries > mocked repositories
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
- ### 4.5 Full suite regression (CRITICAL)
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); keep implementation details out of callers
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 tests after implementation
65
- - Verify the implementation meets the acceptance criteria
66
- - Check for dependency conflicts or integration issues
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
 
@@ -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`, then run the suite |
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
@@ -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 the current work to an agent a human can see – a named session
18
- in a visible pane, or a session already running. To keep the work in THIS
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`, then run the suite |
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 them by path or URL.
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. Build verification
161
+ ### 7. Completion verification
162
162
 
163
- After each node (and before ending the session), run the commands from
164
- `.acstack/project.yaml`: build, full test suite, lint and typecheck. All must
165
- pass before claiming the next node.
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