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/.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/dist/index.js +1 -1
- package/cli/dist/index.js.map +1 -1
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pre-commit-review
|
|
3
|
-
description: "Deep code quality review of all changes since last commit. Checks for hardcodes, single-source-of-truth violations, scalability issues, edge cases, and project convention drift using dynamic project awareness (living specs, codebase search, surrounding code).
|
|
3
|
+
description: "Deep code quality review of all changes since last commit. Checks for hardcodes, single-source-of-truth violations, scalability issues, edge cases, and project convention drift using dynamic project awareness (living specs, codebase search, surrounding code). Reports adjacent cleanup as advisory, requiring user approval before edits. Auto-invocable in two contexts – (1) when working autonomously through a task list and about to commit (e.g., user said \"implement all tasks and commit\"), use --auto-fix mode; (2) when the user manually invokes /commit and this skill has not already run on the current changes, use INTERACTIVE mode (default). Manual invocation via /pre-commit-review also uses interactive mode by default."
|
|
4
4
|
argument-hint: "[--auto-fix] [scope description]"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -42,7 +42,7 @@ LLM decided to commit during autonomous work -> auto-fix.
|
|
|
42
42
|
1. SNAPSHOT – collect the diff and understand what changed
|
|
43
43
|
2. DISCOVER – learn project conventions dynamically
|
|
44
44
|
3. REVIEW – analyze changes against conventions and requirements
|
|
45
|
-
4. ADJACENT –
|
|
45
|
+
4. ADJACENT – note related cleanup encountered during review (advisory)
|
|
46
46
|
5. REPORT – synthesize findings
|
|
47
47
|
6. FIX – auto-fix or interactive proposal waves
|
|
48
48
|
```
|
|
@@ -75,7 +75,9 @@ For nonbehavioral edits, review accuracy and run prose lint when Markdown change
|
|
|
75
75
|
## Step 2: DISCOVER – Learn project conventions (parallel)
|
|
76
76
|
|
|
77
77
|
Follow the shared Implementation discipline in `orchestrator/AGENTS.md` for delegation and required independent review.
|
|
78
|
-
Investigate
|
|
78
|
+
Investigate relevant dimensions directly or through useful delegation.
|
|
79
|
+
Bound each review to changed behavior, connected risks, and the question assigned.
|
|
80
|
+
Reuse valid check evidence under the shared policy instead of repeating completion commands.
|
|
79
81
|
Discover current conventions rather than hardcoding them.
|
|
80
82
|
|
|
81
83
|
Read `../../output-styles/ac-writing-style.md` relative to this skill directory; apply its shared standard to code design as well as explanations.
|
|
@@ -95,9 +97,8 @@ Report: list of project conventions and patterns relevant to these changes.
|
|
|
95
97
|
|
|
96
98
|
```
|
|
97
99
|
Search the codebase for established patterns related to the changes.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
Find files with similar naming conventions
|
|
100
|
+
When conventions are unclear, search for representative implementations related to the change.
|
|
101
|
+
Reuse patterns already established in this review rather than repeating discovery for every function.
|
|
101
102
|
Identify: how does the rest of the codebase handle similar things?
|
|
102
103
|
Report: established patterns, common approaches, naming conventions observed.
|
|
103
104
|
```
|
|
@@ -106,8 +107,9 @@ Report: established patterns, common approaches, naming conventions observed.
|
|
|
106
107
|
|
|
107
108
|
```
|
|
108
109
|
For each changed file, read:
|
|
109
|
-
-
|
|
110
|
-
- Connected callers and dependencies
|
|
110
|
+
- Changed bodies and surrounding context needed to understand them
|
|
111
|
+
- Connected callers and dependencies needed to assess responsibilities, interface costs, and plausible failures
|
|
112
|
+
- Expand to full files or wider paths when findings justify it
|
|
111
113
|
- Config that governs this area (linter rules, compiler config, etc.)
|
|
112
114
|
Report: local conventions, related code patterns, existing abstractions nearby.
|
|
113
115
|
```
|
|
@@ -116,7 +118,8 @@ Synthesize findings into a convention profile for the review.
|
|
|
116
118
|
|
|
117
119
|
## Step 3: REVIEW – Analyze changes (parallel)
|
|
118
120
|
|
|
119
|
-
|
|
121
|
+
Assess which dimensions below apply, then review them to the depth justified by plausible failures.
|
|
122
|
+
Keep deep scrutiny for affected auth, security, resource lifecycle, concurrency, and performance paths; do not apply unrelated categories mechanically.
|
|
120
123
|
Give delegated reviewers the diff and the convention profile from Step 2.
|
|
121
124
|
Assess coverage against requirements instead of assuming a task-checker already assessed it.
|
|
122
125
|
|
|
@@ -146,10 +149,12 @@ Examine the diff for:
|
|
|
146
149
|
- Missing useful boundaries or pass-through layers that add no useful boundary
|
|
147
150
|
- Complex conditionals that could be simplified
|
|
148
151
|
- Code that would be hard for a new developer to understand
|
|
149
|
-
- Performance concerns (N+1 queries, unnecessary re-renders, blocking I/O)
|
|
152
|
+
- Performance concerns (N+1 queries, unnecessary re-renders, blocking I/O, unbounded memory or work)
|
|
153
|
+
- Resource lifecycle failures (leaked handles, listeners, subscriptions, or tasks; missing cleanup or cancellation)
|
|
150
154
|
|
|
151
155
|
Do not require nesting or wrappers; neither line count nor indirection measures design quality.
|
|
152
156
|
Support design findings with effects on connected callers and dependencies.
|
|
157
|
+
Ask whether callers need fewer facts, each rule has one owner, and the interface hides complexity rather than relocating it.
|
|
153
158
|
|
|
154
159
|
For each finding, report:
|
|
155
160
|
FILE:LINE | SEVERITY (MUST/SHOULD/CONSIDER) | WHAT | WHY | SUGGESTED FIX
|
|
@@ -183,48 +188,42 @@ The lint exits 0 even when it reports findings. It groups findings by file with
|
|
|
183
188
|
|
|
184
189
|
Review each warning in context before treating it as a defect. Preserve necessary technical terms, quotations, and wording that would lose accuracy if changed. Report confirmed clarity or convention problems as `SHOULD | PROSE`, with the `file:line` and their effect on the reader.
|
|
185
190
|
|
|
186
|
-
## Step 4: ADJACENT –
|
|
191
|
+
## Step 4: ADJACENT – Report cleanup as advisory
|
|
187
192
|
|
|
188
|
-
|
|
189
|
-
|
|
193
|
+
Note closely related cleanup encountered while reviewing connected code. Do not launch
|
|
194
|
+
an extra scan of whole files and imports solely to find more work.
|
|
190
195
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
Find any OTHER instances of the same categories of problem in this file
|
|
195
|
-
or closely related files – even if they weren't part of this commit's changes.
|
|
196
|
-
These are "while we're here" cleanup opportunities.
|
|
196
|
+
Report as: `ADVISORY | ADJACENT | FILE:LINE | WHAT | WHY | SUGGESTED FIX`.
|
|
197
|
+
Keep these suggestions separate from delivery-blocking findings. Neither review mode
|
|
198
|
+
authorizes adjacent edits by default, including `--auto-fix`.
|
|
197
199
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
+
If cleanup is worth doing, ask the user whether to add it to scope. Approved work may
|
|
201
|
+
run in parallel on non-overlapping files or isolated worktrees; do not make it a
|
|
202
|
+
dependency of the main change. Never run conflicting writers in the same checkout.
|
|
200
203
|
|
|
201
|
-
|
|
202
|
-
|
|
204
|
+
A defect that prevents requested behavior or exposes a consequential risk is not
|
|
205
|
+
merely cleanup. Classify it by impact and fix it within scope or report the blocker.
|
|
203
206
|
|
|
204
207
|
## Step 5: REPORT – Synthesize findings
|
|
205
208
|
|
|
206
|
-
|
|
209
|
+
Deduplicate in-scope findings and sort by:
|
|
207
210
|
|
|
208
211
|
1. MUST FIX (correctness, security, will-break-in-prod)
|
|
209
212
|
2. SHOULD FIX (convention violations, readability, maintainability)
|
|
210
|
-
3. CONSIDER (style preferences, minor improvements
|
|
213
|
+
3. CONSIDER (style preferences, minor improvements)
|
|
211
214
|
|
|
212
|
-
|
|
215
|
+
Keep adjacent suggestions in a separate advisory list using Step 4's format.
|
|
216
|
+
For each in-scope finding, make sure it has:
|
|
213
217
|
|
|
214
218
|
- `file:line` reference
|
|
215
|
-
- Category tag (HARDCODE, SSOT, SCALABILITY, READABILITY, EDGE-CASE, PROSE
|
|
219
|
+
- Category tag (HARDCODE, SSOT, SCALABILITY, READABILITY, EDGE-CASE, PROSE)
|
|
216
220
|
- Severity (MUST / SHOULD / CONSIDER)
|
|
217
221
|
- Clear 1-sentence description of the problem
|
|
218
222
|
- Why it matters (1 sentence)
|
|
219
223
|
- Suggested fix (concrete, actionable – code snippet or approach)
|
|
220
224
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
```
|
|
224
|
-
This code has [problem]. The file is [path]. Here's the surrounding context: [context].
|
|
225
|
-
Think through 2-3 possible fixes, evaluate trade-offs, and recommend the best approach.
|
|
226
|
-
Consider: does a fix here require changes in other files? What's the minimal change?
|
|
227
|
-
```
|
|
225
|
+
For deeper analysis, investigate directly or delegate the problem, file, and context.
|
|
226
|
+
Compare useful alternatives and recommend the smallest complete fix, including affected callers.
|
|
228
227
|
|
|
229
228
|
## Step 6: FIX – Auto-fix or interactive waves
|
|
230
229
|
|
|
@@ -237,7 +236,7 @@ Consider: does a fix here require changes in other files? What's the minimal cha
|
|
|
237
236
|
| -------- | ------------------------------------------------------ | ------------------------------------------------------------------ |
|
|
238
237
|
| MUST | Will cause bugs, security issues, or prod failures | Hardcoded secrets, unhandled null on critical path, race condition |
|
|
239
238
|
| SHOULD | Violates conventions, hurts maintainability, tech debt | SSOT violations, unclear naming, missing error handling on I/O |
|
|
240
|
-
| CONSIDER |
|
|
239
|
+
| CONSIDER | In-scope improvement opportunity, not urgent | Minor style, could-be-cleaner patterns |
|
|
241
240
|
|
|
242
241
|
## Review responsibilities and tool checks
|
|
243
242
|
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Step 6 of `SKILL.md` in auto-fix mode.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Fix in-scope findings (MUST first, then SHOULD, then CONSIDER). Adjacent cleanup
|
|
6
|
+
stays advisory unless the user approves it; auto-fix is not approval to expand scope.
|
|
6
7
|
|
|
7
|
-
1. Apply the shared Implementation discipline in `orchestrator/AGENTS.md
|
|
8
|
-
2.
|
|
9
|
-
3. If fix breaks something, revert and try
|
|
10
|
-
4. Move to next finding
|
|
8
|
+
1. Apply the shared Implementation discipline in `orchestrator/AGENTS.md`, directly or through a task-executor
|
|
9
|
+
2. Run focused checks for the fix and affected behavior
|
|
10
|
+
3. If the fix breaks something, revert only your own conflicting changes and try another approach
|
|
11
|
+
4. Move to the next finding
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
One verification owner gathers required completion evidence for the final revision,
|
|
14
|
+
reusing valid results under Build verification in `orchestrator/AGENTS.md`.
|
|
15
|
+
Do not repeat all completion commands for every finding.
|
|
16
|
+
Approved adjacent work may run in parallel with non-overlapping ownership or isolated
|
|
17
|
+
worktrees, without blocking the main change.
|
|
13
18
|
|
|
14
|
-
|
|
15
|
-
# Run the project's configured test, lint, and typecheck commands
|
|
16
|
-
# Read these from project.yaml – do not hardcode
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Report a summary of the fixes.
|
|
19
|
+
Report fixes, evidence, blockers, and advisory suggestions separately.
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Step 6 of `SKILL.md` in interactive mode, the default.
|
|
4
4
|
|
|
5
|
-
Present findings in **waves of up to 4** using the question tool (AskUserQuestion on Claude Code). On a host without one, use a numbered list in chat. Group related findings together.
|
|
5
|
+
Present in-scope findings in **waves of up to 4** using the question tool (AskUserQuestion on Claude Code). On a host without one, use a numbered list in chat. Group related findings together.
|
|
6
|
+
|
|
7
|
+
Keep adjacent suggestions in a separate advisory list, not the required fix waves.
|
|
8
|
+
If one is worth pursuing, ask for explicit approval to add it to scope. "Fix all"
|
|
9
|
+
for the main review does not include that advisory list. Approved cleanup may run
|
|
10
|
+
in parallel with non-overlapping ownership or isolated worktrees, without delaying
|
|
11
|
+
the main change.
|
|
6
12
|
|
|
7
13
|
Format each wave like:
|
|
8
14
|
|
|
@@ -17,9 +23,9 @@ I found these issues in your changes. For each, choose: FIX / SKIP / DISCUSS
|
|
|
17
23
|
Duplicated error handling pattern – same try/catch in 3 functions.
|
|
18
24
|
Suggested fix: Extract shared wrapper function.
|
|
19
25
|
|
|
20
|
-
3. [
|
|
21
|
-
|
|
22
|
-
Suggested fix:
|
|
26
|
+
3. [SHOULD | READABILITY] `path/to/component.tsx:88`
|
|
27
|
+
The new helper exposes parsing state its caller should not need.
|
|
28
|
+
Suggested fix: Return the parsed result and keep parsing state internal.
|
|
23
29
|
|
|
24
30
|
4. [SHOULD | EDGE-CASE] `path/to/manager.py:120`
|
|
25
31
|
No null check on response before accessing `.status`.
|
|
@@ -32,4 +38,5 @@ After user responds:
|
|
|
32
38
|
|
|
33
39
|
- Fix selected items under the shared Implementation discipline in `orchestrator/AGENTS.md`, directly or through useful delegation
|
|
34
40
|
- Present next wave if more findings remain
|
|
35
|
-
- Continue until all findings addressed or user says "done" / "skip the rest"
|
|
41
|
+
- Continue until all in-scope findings are addressed or the user says "done" / "skip the rest"
|
|
42
|
+
- Use focused checks while fixing; one verification owner gathers final completion evidence under the shared policy, reusing valid results
|
|
@@ -94,15 +94,13 @@ Apply the shared policy to the minimal fix.
|
|
|
94
94
|
|
|
95
95
|
## Step 6: Verify
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
Use focused regression checks while fixing. One verification owner gathers the
|
|
98
|
+
required final checks from `.acstack/project.yaml` under Build verification in
|
|
99
|
+
`orchestrator/AGENTS.md`, reusing valid evidence rather than rerunning commands
|
|
100
|
+
for every fix or handoff.
|
|
98
101
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
# Read these from project.yaml – do not hardcode
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
Use the configured frontend gates under the shared policy.
|
|
105
|
-
Do not proceed with failed required checks or unverified configured browser behavior.
|
|
102
|
+
Preserve configured frontend gates. Do not claim completion with failed or blocked
|
|
103
|
+
required checks or unverified configured browser behavior.
|
|
106
104
|
|
|
107
105
|
|
|
108
106
|
## Step 7: Report
|
|
@@ -24,8 +24,8 @@ Mirror the source directory structure. Example: `src/auth/sessions.py` → `test
|
|
|
24
24
|
- Cross-cutting integration tests → `<tests-dir>/integration/`
|
|
25
25
|
- Shared fixtures → `<tests-dir>/conftest.py` (Python) or shared setup files
|
|
26
26
|
- Use markers for slow/integration tests (configured in `test_markers.exclude`)
|
|
27
|
-
-
|
|
28
|
-
-
|
|
27
|
+
- Use the project's test runner for focused checks; the verification owner gathers full completion evidence under `orchestrator/AGENTS.md`
|
|
28
|
+
- When test collection is configured, compare `.acstack/.test-baseline` if present; investigate removed coverage and honor project baseline requirements
|
|
29
29
|
|
|
30
30
|
## Layer 2: Frontend Unit Tests
|
|
31
31
|
|