all-for-claudecode 2.11.0 → 2.13.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/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/MIGRATION.md +2 -2
- package/README.md +10 -4
- package/bin/cli.mjs +1 -0
- package/package.json +1 -1
- package/scripts/afc-consistency-check.sh +6 -6
- package/scripts/afc-doctor.sh +18 -4
- package/scripts/afc-user-prompt-submit.sh +5 -1
- package/scripts/session-start-context.sh +1 -1
- package/skills/architect/SKILL.md +1 -1
- package/skills/auto/SKILL.md +24 -24
- package/skills/clean/SKILL.md +3 -3
- package/skills/debug/SKILL.md +1 -1
- package/skills/doctor/SKILL.md +23 -19
- package/skills/implement/SKILL.md +8 -8
- package/skills/init/SKILL.md +19 -176
- package/skills/issue/SKILL.md +216 -0
- package/skills/plan/SKILL.md +1 -1
- package/skills/qa/SKILL.md +1 -1
- package/skills/resolve/SKILL.md +245 -0
- package/skills/review/SKILL.md +1 -1
- package/skills/setup/SKILL.md +219 -0
- package/skills/spec/SKILL.md +6 -5
- package/skills/tasks/SKILL.md +4 -4
- package/skills/test/SKILL.md +1 -1
- package/skills/triage/SKILL.md +1 -1
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Automated pipeline for Claude Code — spec → plan → implement → review → clean",
|
|
9
|
-
"version": "2.
|
|
9
|
+
"version": "2.13.0"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "afc",
|
|
14
14
|
"source": "./",
|
|
15
15
|
"description": "Automated pipeline for Claude Code. Automates the full development cycle: spec → plan → implement → review → clean.",
|
|
16
|
-
"version": "2.
|
|
16
|
+
"version": "2.13.0",
|
|
17
17
|
"category": "automation",
|
|
18
18
|
"tags": ["pipeline", "automation", "spec", "plan", "implement", "review", "critic-loop"]
|
|
19
19
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "afc",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"description": "Automated pipeline for Claude Code. Automates the full development cycle: spec → plan → implement → review → clean.",
|
|
5
5
|
"author": { "name": "jhlee0409", "email": "relee6203@gmail.com" },
|
|
6
6
|
"homepage": "https://github.com/jhlee0409/all-for-claudecode",
|
package/MIGRATION.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
- If you previously used `/afc:analyze` for artifact consistency checking, use `/afc:validate` instead (or let the pipeline invoke it automatically).
|
|
21
21
|
- Agent memory files (`.claude/agent-memory/afc-architect/MEMORY.md`, `.claude/agent-memory/afc-security/MEMORY.md`) exceeding 100 lines will be auto-pruned on next pipeline run.
|
|
22
22
|
- Memory subdirectories exceeding rotation thresholds will be auto-pruned during the Clean phase.
|
|
23
|
-
- Run `/afc:
|
|
23
|
+
- Run `/afc:setup` to update the `AFC:VERSION` tag in your CLAUDE.md.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -77,7 +77,7 @@ Replace the `SELFISH:START` / `SELFISH:END` block in your project's CLAUDE.md:
|
|
|
77
77
|
- Change all `selfish:` command references → `afc:`
|
|
78
78
|
- Change `selfish-architect` / `selfish-security` → `afc-architect` / `afc-security`
|
|
79
79
|
|
|
80
|
-
Or simply run `/afc:
|
|
80
|
+
Or simply run `/afc:setup` to regenerate the block.
|
|
81
81
|
|
|
82
82
|
#### 4. Migrate state files (if pipeline was active)
|
|
83
83
|
|
package/README.md
CHANGED
|
@@ -28,7 +28,8 @@ npx all-for-claudecode
|
|
|
28
28
|
Then:
|
|
29
29
|
|
|
30
30
|
```
|
|
31
|
-
/afc:
|
|
31
|
+
/afc:setup # Set up global routing in ~/.claude/CLAUDE.md
|
|
32
|
+
/afc:init # Detect your stack, generate project config
|
|
32
33
|
/afc:auto "Add user authentication" # Run the full pipeline
|
|
33
34
|
```
|
|
34
35
|
|
|
@@ -115,7 +116,8 @@ Performance: ✓ no N+1 queries
|
|
|
115
116
|
| `/afc:clean` | Pipeline artifact cleanup and codebase hygiene |
|
|
116
117
|
| `/afc:research` | Technical research with persistent storage |
|
|
117
118
|
| `/afc:debug` | Bug diagnosis and fix |
|
|
118
|
-
| `/afc:init` | Project setup — detects stack and generates config |
|
|
119
|
+
| `/afc:init` | Project setup — detects stack and generates project config |
|
|
120
|
+
| `/afc:setup` | Global CLAUDE.md configuration — injects/updates AFC routing block |
|
|
119
121
|
| `/afc:doctor` | Diagnose project health and plugin setup |
|
|
120
122
|
| `/afc:architect` | Architecture analysis (persistent memory) |
|
|
121
123
|
| `/afc:security` | Security scan (persistent memory, isolated worktree) |
|
|
@@ -130,6 +132,8 @@ Performance: ✓ no N+1 queries
|
|
|
130
132
|
| `/afc:qa` | Project quality audit — test confidence, error resilience, code health |
|
|
131
133
|
| `/afc:consult` | Expert consultation (backend, infra, PM, design, marketing) |
|
|
132
134
|
| `/afc:triage` | Analyze open PRs and issues in parallel |
|
|
135
|
+
| `/afc:issue` | Analyze a single GitHub issue and create actionable document |
|
|
136
|
+
| `/afc:resolve` | Analyze and address LLM bot review comments on a PR |
|
|
133
137
|
| `/afc:pr-comment` | Generate structured PR review comments |
|
|
134
138
|
| `/afc:release-notes` | Generate release notes from git history |
|
|
135
139
|
| `/afc:learner` | Review and promote learned patterns to project rules |
|
|
@@ -248,10 +252,12 @@ Dependencies are tracked via DAG. CI gate + Mini-Review + Auto-Checkpoint run at
|
|
|
248
252
|
## Configuration
|
|
249
253
|
|
|
250
254
|
```
|
|
251
|
-
/afc:
|
|
255
|
+
/afc:setup # One-time: inject routing block into ~/.claude/CLAUDE.md
|
|
256
|
+
/afc:init # Per-project: detect stack and generate .claude/afc.config.md
|
|
252
257
|
```
|
|
253
258
|
|
|
254
|
-
|
|
259
|
+
- **`/afc:setup`** — Manages the AFC routing block in your global `~/.claude/CLAUDE.md`. Run once after install and again after plugin updates. Idempotent — skips if version matches.
|
|
260
|
+
- **`/afc:init`** — Auto-detects your tech stack (package manager, framework, architecture, testing, linting) and generates project-local config files. No manual preset selection needed.
|
|
255
261
|
|
|
256
262
|
## FAQ
|
|
257
263
|
|
package/bin/cli.mjs
CHANGED
|
@@ -97,6 +97,7 @@ async function main() {
|
|
|
97
97
|
console.log(" ✓ Installation complete!");
|
|
98
98
|
console.log();
|
|
99
99
|
console.log(" Next steps:");
|
|
100
|
+
console.log(" /afc:setup Set up global routing");
|
|
100
101
|
console.log(" /afc:init Create project config");
|
|
101
102
|
console.log(' /afc:auto "feature desc" Run the pipeline');
|
|
102
103
|
console.log();
|
package/package.json
CHANGED
|
@@ -264,7 +264,7 @@ check_command_docs() {
|
|
|
264
264
|
[ -d "$skills_dir" ] || return
|
|
265
265
|
|
|
266
266
|
local readme="$PROJECT_DIR/README.md"
|
|
267
|
-
local
|
|
267
|
+
local setup_skill="$skills_dir/setup/SKILL.md"
|
|
268
268
|
local claude_md="$PROJECT_DIR/CLAUDE.md"
|
|
269
269
|
local issues=0
|
|
270
270
|
|
|
@@ -281,12 +281,12 @@ check_command_docs() {
|
|
|
281
281
|
fi
|
|
282
282
|
fi
|
|
283
283
|
|
|
284
|
-
# Sub-check B:
|
|
284
|
+
# Sub-check B: setup/SKILL.md should mention afc:{name} for user-invocable skills
|
|
285
285
|
local invocable
|
|
286
286
|
invocable=$(get_cmd_field "$skill_file" "user-invocable")
|
|
287
|
-
if [ "$invocable" != "false" ] && [ -f "$
|
|
288
|
-
if ! grep -qE "afc:${cmd_name}([^a-z0-9-]|$)" "$
|
|
289
|
-
warn "Skill '$cmd_name' missing from
|
|
287
|
+
if [ "$invocable" != "false" ] && [ -f "$setup_skill" ]; then
|
|
288
|
+
if ! grep -qE "afc:${cmd_name}([^a-z0-9-]|$)" "$setup_skill" 2>/dev/null; then
|
|
289
|
+
warn "Skill '$cmd_name' missing from setup/SKILL.md skill routing"
|
|
290
290
|
issues=$((issues + 1))
|
|
291
291
|
fi
|
|
292
292
|
fi
|
|
@@ -303,7 +303,7 @@ check_command_docs() {
|
|
|
303
303
|
done
|
|
304
304
|
|
|
305
305
|
if [ "$issues" -eq 0 ]; then
|
|
306
|
-
ok "Skill docs: all skills referenced in README.md,
|
|
306
|
+
ok "Skill docs: all skills referenced in README.md, setup/SKILL.md, CLAUDE.md"
|
|
307
307
|
fi
|
|
308
308
|
}
|
|
309
309
|
|
package/scripts/afc-doctor.sh
CHANGED
|
@@ -55,6 +55,20 @@ section() {
|
|
|
55
55
|
printf '\n%s\n' "$1"
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
# --- Header: show which plugin version is running ---
|
|
59
|
+
if [ -f "$PLUGIN_ROOT/package.json" ]; then
|
|
60
|
+
if command -v jq >/dev/null 2>&1; then
|
|
61
|
+
RUNNING_VERSION=$(jq -r '.version // "unknown"' "$PLUGIN_ROOT/package.json" 2>/dev/null || echo "unknown")
|
|
62
|
+
else
|
|
63
|
+
RUNNING_VERSION=$(grep -o '"version"[[:space:]]*:[[:space:]]*"[^"]*"' "$PLUGIN_ROOT/package.json" 2>/dev/null | head -1 | sed 's/.*: *"//;s/"//' || echo "unknown")
|
|
64
|
+
fi
|
|
65
|
+
printf 'all-for-claudecode Doctor (v%s)\n' "$RUNNING_VERSION"
|
|
66
|
+
printf 'Plugin root: %s\n' "$PLUGIN_ROOT"
|
|
67
|
+
else
|
|
68
|
+
printf 'all-for-claudecode Doctor (version unknown)\n'
|
|
69
|
+
printf 'Plugin root: %s\n' "$PLUGIN_ROOT"
|
|
70
|
+
fi
|
|
71
|
+
|
|
58
72
|
# --- Category 1: Environment ---
|
|
59
73
|
section "Environment"
|
|
60
74
|
|
|
@@ -160,15 +174,15 @@ if [ -f "$GLOBAL_CLAUDE" ]; then
|
|
|
160
174
|
if [ "$BLOCK_VERSION" = "$PLUGIN_VERSION" ]; then
|
|
161
175
|
pass "Block version matches plugin ($PLUGIN_VERSION)"
|
|
162
176
|
else
|
|
163
|
-
warn "all-for-claudecode block outdated (block: $BLOCK_VERSION, plugin: $PLUGIN_VERSION)" "run /afc:
|
|
177
|
+
warn "all-for-claudecode block outdated (block: $BLOCK_VERSION, plugin: $PLUGIN_VERSION)" "run /afc:setup to update"
|
|
164
178
|
fi
|
|
165
179
|
fi
|
|
166
180
|
fi
|
|
167
181
|
else
|
|
168
|
-
fail "all-for-claudecode block not found" "run /afc:
|
|
182
|
+
fail "all-for-claudecode block not found" "run /afc:setup to inject all-for-claudecode block"
|
|
169
183
|
fi
|
|
170
184
|
else
|
|
171
|
-
warn "No global ~/.claude/CLAUDE.md" "run /afc:
|
|
185
|
+
warn "No global ~/.claude/CLAUDE.md" "run /afc:setup"
|
|
172
186
|
fi
|
|
173
187
|
|
|
174
188
|
# --- Category 4: Legacy Migration ---
|
|
@@ -179,7 +193,7 @@ LEGACY_FOUND=false
|
|
|
179
193
|
# Legacy CLAUDE.md block
|
|
180
194
|
if [ -f "$GLOBAL_CLAUDE" ] && grep -q '<!-- SELFISH:START -->' "$GLOBAL_CLAUDE" 2>/dev/null; then
|
|
181
195
|
LEGACY_FOUND=true
|
|
182
|
-
warn "Legacy SELFISH:START block in ~/.claude/CLAUDE.md" "run /afc:
|
|
196
|
+
warn "Legacy SELFISH:START block in ~/.claude/CLAUDE.md" "run /afc:setup (will replace)"
|
|
183
197
|
fi
|
|
184
198
|
|
|
185
199
|
# Legacy config
|
|
@@ -42,7 +42,7 @@ if ! afc_state_is_active; then
|
|
|
42
42
|
LOWER=$(printf '%s' "$USER_TEXT" | tr '[:upper:]' '[:lower:]' | cut -c1-500)
|
|
43
43
|
|
|
44
44
|
# Compact skill catalog: injected when regex misses, so the model classifies semantically
|
|
45
|
-
FALLBACK_HINT="[afc] Route via Skill tool if applicable — debug(bug/에러/수정/fix) | review(코드검토/리뷰/PR) | test(테스트/coverage) | spec(요구사항/스펙) | plan(설계/계획) | implement(구현/리팩터) | auto(새기능/feature) | consult(조언/상의/discuss) | analyze(분석/trace) | research(조사/리서치) | security(보안/취약점) | architect(아키텍처/설계) | qa(품질감사) | launch(릴리스/배포) | triage(PR정리/이슈분류) | clean(정리/cleanup) | ideate(아이디어/brainstorm) | doctor(진단/health) | release-notes(변경이력)"
|
|
45
|
+
FALLBACK_HINT="[afc] Route via Skill tool if applicable — debug(bug/에러/수정/fix) | review(코드검토/리뷰/PR) | test(테스트/coverage) | spec(요구사항/스펙) | plan(설계/계획) | implement(구현/리팩터) | auto(새기능/feature) | consult(조언/상의/discuss) | analyze(분석/trace) | research(조사/리서치) | security(보안/취약점) | architect(아키텍처/설계) | qa(품질감사) | launch(릴리스/배포) | triage(PR정리/이슈분류) | issue(이슈분석) | resolve(LLM리뷰대응) | clean(정리/cleanup) | ideate(아이디어/brainstorm) | doctor(진단/health) | release-notes(변경이력)"
|
|
46
46
|
|
|
47
47
|
# Early exit for empty prompts (context-only messages, malformed JSON)
|
|
48
48
|
if [ -z "$LOWER" ]; then
|
|
@@ -83,6 +83,10 @@ if ! afc_state_is_active; then
|
|
|
83
83
|
SKILL="afc:launch"
|
|
84
84
|
elif printf '%s' "$LOWER" | grep -qE '(triage|pr.?정리|이슈.?정리|백로그.?정리|pr.?분류|이슈.?분류)' 2>/dev/null; then
|
|
85
85
|
SKILL="afc:triage"
|
|
86
|
+
elif printf '%s' "$LOWER" | grep -qE '(issue.*분석|이슈.*분석|analyze.*issue|issue.*#[0-9]|이슈.*#[0-9])' 2>/dev/null; then
|
|
87
|
+
SKILL="afc:issue"
|
|
88
|
+
elif printf '%s' "$LOWER" | grep -qE '(review.*comment|resolve.*comment|coderabbit|copilot.*review|리뷰.*코멘트|봇.*리뷰|bot.*review.*fix)' 2>/dev/null; then
|
|
89
|
+
SKILL="afc:resolve"
|
|
86
90
|
# Medium confidence: still distinctive but broader
|
|
87
91
|
elif printf '%s' "$LOWER" | grep -qE '(specification|requirements|acceptance criteria|요구.?사항|기능.?정의|인수.?조건)' 2>/dev/null; then
|
|
88
92
|
SKILL="afc:spec"
|
|
@@ -73,7 +73,7 @@ if [ -f "$PLUGIN_ROOT/package.json" ]; then
|
|
|
73
73
|
if [ -f "$GLOBAL_CLAUDE" ]; then
|
|
74
74
|
BLOCK_VERSION=$(grep -o 'AFC:VERSION:[0-9][0-9.]*' "$GLOBAL_CLAUDE" 2>/dev/null | head -1 | sed 's/AFC:VERSION://' || true)
|
|
75
75
|
if [ -n "${BLOCK_VERSION:-}" ] && [ "$BLOCK_VERSION" != "$PLUGIN_VERSION" ]; then
|
|
76
|
-
OUTPUT="${OUTPUT:+$OUTPUT | }[AFC VERSION MISMATCH] v$PLUGIN_VERSION installed but CLAUDE.md block is v$BLOCK_VERSION. Run /afc:
|
|
76
|
+
OUTPUT="${OUTPUT:+$OUTPUT | }[AFC VERSION MISMATCH] v$PLUGIN_VERSION installed but CLAUDE.md block is v$BLOCK_VERSION. Run /afc:setup to update."
|
|
77
77
|
fi
|
|
78
78
|
fi
|
|
79
79
|
fi
|
|
@@ -99,7 +99,7 @@ Structure analysis results and **print to console**:
|
|
|
99
99
|
|
|
100
100
|
### 4. Critic Loop
|
|
101
101
|
|
|
102
|
-
> **Always** read `${
|
|
102
|
+
> **Always** read `${CLAUDE_SKILL_DIR}/../../docs/critic-loop-rules.md` first and follow it.
|
|
103
103
|
|
|
104
104
|
Run the critic loop until convergence. Safety cap: 5 passes.
|
|
105
105
|
|
package/skills/auto/SKILL.md
CHANGED
|
@@ -88,7 +88,7 @@ Route based on **what expertise the feature actually needs**, not keyword presen
|
|
|
88
88
|
|
|
89
89
|
## Critic Loop Rules (common to all phases)
|
|
90
90
|
|
|
91
|
-
> **Always** read `${
|
|
91
|
+
> **Always** read `${CLAUDE_SKILL_DIR}/../../docs/critic-loop-rules.md` first and follow it.
|
|
92
92
|
> Core: minimum 1 concern per criterion + mandatory Adversarial failure scenario each pass + quantitative evidence required. "PASS" as a single word is prohibited. Uses convergence-based termination with 4 verdicts (PASS/FAIL/ESCALATE/DEFER). On ESCALATE: pause and present options to user even in auto mode.
|
|
93
93
|
|
|
94
94
|
---
|
|
@@ -102,18 +102,18 @@ Route based on **what expertise the feature actually needs**, not keyword presen
|
|
|
102
102
|
3. Determine feature name (2-3 keywords → kebab-case)
|
|
103
103
|
3.5. **Preflight Check**:
|
|
104
104
|
```bash
|
|
105
|
-
"${
|
|
105
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-preflight-check.sh"
|
|
106
106
|
```
|
|
107
107
|
- If exit 1 (hard failure) → print error and **abort**
|
|
108
108
|
- If warnings only (exit 0) → print warnings and continue
|
|
109
109
|
4. **Activate Pipeline Flag** (hook integration):
|
|
110
110
|
```bash
|
|
111
|
-
"${
|
|
111
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" start {feature}
|
|
112
112
|
```
|
|
113
113
|
- Safety Snapshot created automatically (`afc/pre-auto` git tag)
|
|
114
114
|
- Stop Gate Hook activated (blocks response termination on CI failure)
|
|
115
115
|
- File change tracking started
|
|
116
|
-
- Timeline log: `"${
|
|
116
|
+
- Timeline log: `"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" log pipeline-start "Auto pipeline: {feature}"`
|
|
117
117
|
5. Create `.claude/afc/specs/{feature}/` directory → **record path as `PIPELINE_ARTIFACT_DIR`** (for Clean scope)
|
|
118
118
|
6. **Initialize Skill Advisor**: `ADVISOR_COUNT = 0`, `ADVISOR_TRANSFORM_USED = false`. Persist to pipeline state for context-loss resilience:
|
|
119
119
|
```bash
|
|
@@ -134,7 +134,7 @@ Before investing pipeline resources, evaluate whether the request warrants execu
|
|
|
134
134
|
1. **Necessity check**: Explore codebase for existing implementations related to `$ARGUMENTS`.
|
|
135
135
|
- If the feature substantially exists → ask user via AskUserQuestion:
|
|
136
136
|
- "This feature appears to already exist at {path}. (1) Enhance existing (2) Replace entirely (3) Abort"
|
|
137
|
-
- If user chooses abort → release pipeline flag (`"${
|
|
137
|
+
- If user chooses abort → release pipeline flag (`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" end`), end with: `"Pipeline aborted — feature already exists."`
|
|
138
138
|
|
|
139
139
|
2. **Scope check**: Estimate the scope of `$ARGUMENTS`:
|
|
140
140
|
- If description implies 10+ files or multiple unrelated concerns → warn:
|
|
@@ -171,8 +171,8 @@ If all checks pass, proceed to Phase 0.8.
|
|
|
171
171
|
3. If change touches > 2 files OR modifies any `.sh` script: **rollback fast-path changes** (`git reset --hard afc/pre-auto`), then restart with full pipeline
|
|
172
172
|
4. **Checkpoint**:
|
|
173
173
|
```bash
|
|
174
|
-
"${
|
|
175
|
-
"${
|
|
174
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase fast-path
|
|
175
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" ci-pass
|
|
176
176
|
```
|
|
177
177
|
5. Run `/afc:review` logic inline (mini-review only — single Critic pass)
|
|
178
178
|
6. Run Phase 5 Clean logic (artifact cleanup, CI gate, pipeline flag release)
|
|
@@ -187,7 +187,7 @@ If all checks pass, proceed to Phase 0.8.
|
|
|
187
187
|
|
|
188
188
|
### Phase 0.5: Auto-Clarify Gate (conditional)
|
|
189
189
|
|
|
190
|
-
`"${
|
|
190
|
+
`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase clarify`
|
|
191
191
|
|
|
192
192
|
**Trigger condition**: Score `$ARGUMENTS` on 5 ambiguity signals. If score >= 3, trigger clarification.
|
|
193
193
|
|
|
@@ -274,7 +274,7 @@ If all checks pass, proceed to Phase 0.8.
|
|
|
274
274
|
|
|
275
275
|
### Phase 1: Spec (1/5)
|
|
276
276
|
|
|
277
|
-
`"${
|
|
277
|
+
`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase spec`
|
|
278
278
|
|
|
279
279
|
Execute `/afc:spec` logic inline:
|
|
280
280
|
|
|
@@ -381,7 +381,7 @@ Execute `/afc:spec` logic inline:
|
|
|
381
381
|
|
|
382
382
|
### Phase 2: Plan (2/5)
|
|
383
383
|
|
|
384
|
-
`"${
|
|
384
|
+
`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase plan`
|
|
385
385
|
|
|
386
386
|
Execute `/afc:plan` logic inline:
|
|
387
387
|
|
|
@@ -523,7 +523,7 @@ Execute `/afc:plan` logic inline:
|
|
|
523
523
|
|
|
524
524
|
### Phase 3: Implement (3/5)
|
|
525
525
|
|
|
526
|
-
`"${
|
|
526
|
+
`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase implement`
|
|
527
527
|
|
|
528
528
|
**Session context reload**: At implement start, read `.claude/afc/specs/{feature}/context.md` if it exists. This restores key decisions and constraints from Plan phase (resilient to context compaction).
|
|
529
529
|
|
|
@@ -576,14 +576,14 @@ Execute `/afc:implement` logic inline — **follow all orchestration rules defin
|
|
|
576
576
|
|
|
577
577
|
#### Step 3.2: TDD Pre-Generation (conditional)
|
|
578
578
|
|
|
579
|
-
`"${
|
|
579
|
+
`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase test-pre-gen`
|
|
580
580
|
|
|
581
581
|
**Trigger condition**: tasks.md contains at least 1 task targeting a `.sh` file in `scripts/`.
|
|
582
582
|
|
|
583
583
|
**If triggered**:
|
|
584
584
|
1. Run the test pre-generation script:
|
|
585
585
|
```bash
|
|
586
|
-
"${
|
|
586
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-test-pre-gen.sh" ".claude/afc/specs/{feature}/tasks.md" "spec/"
|
|
587
587
|
```
|
|
588
588
|
2. Review generated skeleton files — verify they are parseable:
|
|
589
589
|
```bash
|
|
@@ -598,14 +598,14 @@ Execute `/afc:implement` logic inline — **follow all orchestration rules defin
|
|
|
598
598
|
|
|
599
599
|
#### Step 3.3: Blast Radius Analysis (conditional)
|
|
600
600
|
|
|
601
|
-
`"${
|
|
601
|
+
`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase blast-radius`
|
|
602
602
|
|
|
603
603
|
**Trigger condition**: plan.md File Change Map lists >= 3 files to change.
|
|
604
604
|
|
|
605
605
|
**If triggered**:
|
|
606
606
|
1. Run the blast radius analysis:
|
|
607
607
|
```bash
|
|
608
|
-
"${
|
|
608
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-blast-radius.sh" ".claude/afc/specs/{feature}/plan.md" "${CLAUDE_PROJECT_DIR}"
|
|
609
609
|
```
|
|
610
610
|
2. If exit 1 (cycle detected): **ESCALATE** — present the cycle to user with options:
|
|
611
611
|
- Option 1: Refactor plan to break the cycle
|
|
@@ -621,11 +621,11 @@ Execute `/afc:implement` logic inline — **follow all orchestration rules defin
|
|
|
621
621
|
0. **Baseline test** (follows implement.md Step 1, item 5): if `{config.test}` is non-empty, run `{config.test}` before starting task execution. On failure, report pre-existing test failures to user and ask: "(1) Proceed anyway (2) Fix first (3) Abort". On pass or empty config, continue.
|
|
622
622
|
1. Execute tasks phase by phase using implement.md orchestration rules (sequential/batch/swarm based on [P] count)
|
|
623
623
|
2. **Implementation Context injection**: Every sub-agent prompt includes the `## Implementation Context` section from plan.md **and relevant FR/AC items from spec.md** (ensures spec intent propagates to workers)
|
|
624
|
-
3. Perform **3-4 step gate** on each Implementation Phase completion — **always** read `${
|
|
625
|
-
- On gate pass: create phase rollback point `"${
|
|
624
|
+
3. Perform **3-4 step gate** on each Implementation Phase completion — **always** read `${CLAUDE_SKILL_DIR}/../../docs/phase-gate-protocol.md` first. Cannot advance to next phase without passing the gate.
|
|
625
|
+
- On gate pass: create phase rollback point `"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase-tag {phase_number}`
|
|
626
626
|
4. Real-time `[x]` updates in tasks.md
|
|
627
627
|
5. After full completion, run `{config.ci}` final verification
|
|
628
|
-
- On pass: `"${
|
|
628
|
+
- On pass: `"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" ci-pass` (releases Stop Gate)
|
|
629
629
|
- **On fail: Debug-based RCA** (replaces blind retry):
|
|
630
630
|
1. Execute `/afc:debug` logic inline with the CI error output as input
|
|
631
631
|
2. Debug performs RCA: error trace → data flow → hypothesis → targeted fix
|
|
@@ -656,7 +656,7 @@ Execute `/afc:implement` logic inline — **follow all orchestration rules defin
|
|
|
656
656
|
|
|
657
657
|
#### Step 3.6: Implement Critic Loop
|
|
658
658
|
|
|
659
|
-
> **Always** read `${
|
|
659
|
+
> **Always** read `${CLAUDE_SKILL_DIR}/../../docs/critic-loop-rules.md` first and follow it.
|
|
660
660
|
|
|
661
661
|
**Critic Loop until convergence** (safety cap: 5, follow Critic Loop rules):
|
|
662
662
|
- **SCOPE_ADHERENCE**: Compare `git diff` changed files against plan.md File Change Map. Flag any file modified that is NOT in the plan. Flag any planned file NOT modified. Provide "M of N files match" count.
|
|
@@ -750,7 +750,7 @@ Execute `/afc:implement` logic inline — **follow all orchestration rules defin
|
|
|
750
750
|
|
|
751
751
|
### Phase 4: Review (4/5)
|
|
752
752
|
|
|
753
|
-
`"${
|
|
753
|
+
`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase review`
|
|
754
754
|
|
|
755
755
|
Execute `/afc:review` logic inline — **follow all review perspectives defined in `skills/review/SKILL.md`** (A through H). The review skill is the single source of truth for review criteria.
|
|
756
756
|
|
|
@@ -902,7 +902,7 @@ If Checkpoint D produced outputs, inject them into the review context:
|
|
|
902
902
|
|
|
903
903
|
#### Step 4.9: Critic Loop
|
|
904
904
|
|
|
905
|
-
> **Always** read `${
|
|
905
|
+
> **Always** read `${CLAUDE_SKILL_DIR}/../../docs/critic-loop-rules.md` first and follow it.
|
|
906
906
|
|
|
907
907
|
**Critic Loop until convergence** (safety cap: 5, follow Critic Loop rules):
|
|
908
908
|
- COMPLETENESS: were all changed files reviewed across all 8 perspectives (A-H)?
|
|
@@ -1005,7 +1005,7 @@ Persist the review results for memory:
|
|
|
1005
1005
|
|
|
1006
1006
|
### Phase 5: Clean (5/5)
|
|
1007
1007
|
|
|
1008
|
-
`"${
|
|
1008
|
+
`"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase clean`
|
|
1009
1009
|
|
|
1010
1010
|
Artifact cleanup and codebase hygiene check after implementation and review:
|
|
1011
1011
|
|
|
@@ -1078,11 +1078,11 @@ Artifact cleanup and codebase hygiene check after implementation and review:
|
|
|
1078
1078
|
- Clear `.claude/afc/memory/checkpoint.md` **and** `~/.claude/projects/{ENCODED_PATH}/memory/checkpoint.md` (pipeline complete = session goal achieved, dual-delete prevents stale checkpoint in either location; `ENCODED_PATH` = project path with `/` replaced by `-`)
|
|
1079
1079
|
7. **Timeline finalize**:
|
|
1080
1080
|
```bash
|
|
1081
|
-
"${
|
|
1081
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" log pipeline-end "Pipeline complete: {feature}"
|
|
1082
1082
|
```
|
|
1083
1083
|
8. **Release Pipeline Flag** (hook integration):
|
|
1084
1084
|
```bash
|
|
1085
|
-
"${
|
|
1085
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" end
|
|
1086
1086
|
```
|
|
1087
1087
|
- Stop Gate Hook deactivated
|
|
1088
1088
|
- Change tracking log deleted
|
package/skills/clean/SKILL.md
CHANGED
|
@@ -24,7 +24,7 @@ model: sonnet
|
|
|
24
24
|
### 1. Resolve Feature
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
"${
|
|
27
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase clean
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
- If pipeline is active: read feature from state
|
|
@@ -98,13 +98,13 @@ Clear `.claude/afc/memory/checkpoint.md` **and** `~/.claude/projects/{ENCODED_PA
|
|
|
98
98
|
### 8. Timeline Finalize
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
"${
|
|
101
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" log pipeline-end "Pipeline complete: {feature}"
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
### 9. Release Pipeline Flag
|
|
105
105
|
|
|
106
106
|
```bash
|
|
107
|
-
"${
|
|
107
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" end
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
- Stop Gate Hook deactivated
|
package/skills/debug/SKILL.md
CHANGED
|
@@ -86,7 +86,7 @@ If hypothesis 0 is rejected: verify remaining hypotheses starting from highest p
|
|
|
86
86
|
|
|
87
87
|
### 5. Critic Loop
|
|
88
88
|
|
|
89
|
-
> **Always** read `${
|
|
89
|
+
> **Always** read `${CLAUDE_SKILL_DIR}/../../docs/critic-loop-rules.md` first and follow it.
|
|
90
90
|
|
|
91
91
|
Run the critic loop until convergence. Safety cap: 5 passes.
|
|
92
92
|
|
package/skills/doctor/SKILL.md
CHANGED
|
@@ -16,7 +16,7 @@ model: sonnet
|
|
|
16
16
|
> Like `brew doctor` or `flutter doctor` — verifies the **tool's setup**, NOT the project's code quality.
|
|
17
17
|
> Read-only — never modifies files. Reports issues with actionable fix commands.
|
|
18
18
|
>
|
|
19
|
-
> **IMPORTANT: Do NOT analyze project source code, architecture, or code quality. Only check afc plugin configuration, hooks, state, and environment
|
|
19
|
+
> **IMPORTANT: Do NOT analyze project source code, architecture, or code quality. Only check afc plugin configuration, hooks, state, and environment. All checks are handled by the bash script — just run it and print the output.**
|
|
20
20
|
|
|
21
21
|
## Arguments
|
|
22
22
|
|
|
@@ -39,7 +39,7 @@ Each failing check includes a **Fix:** line with the exact command to resolve it
|
|
|
39
39
|
|
|
40
40
|
1. Run the health check script (covers ALL categories — no manual checks needed):
|
|
41
41
|
```
|
|
42
|
-
"${
|
|
42
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-doctor.sh" $ARGUMENTS
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
2. Print the script's stdout output as-is. Do not reformat, summarize, or interpret.
|
|
@@ -54,8 +54,8 @@ Each failing check includes a **Fix:** line with the exact command to resolve it
|
|
|
54
54
|
## Example Output
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
all-for-claudecode Doctor
|
|
58
|
-
|
|
57
|
+
all-for-claudecode Doctor (v2.11.0)
|
|
58
|
+
Plugin root: /path/to/plugin
|
|
59
59
|
|
|
60
60
|
Environment
|
|
61
61
|
✓ git installed (2.43.0)
|
|
@@ -64,34 +64,38 @@ Environment
|
|
|
64
64
|
|
|
65
65
|
Project Config
|
|
66
66
|
✓ .claude/afc.config.md exists
|
|
67
|
-
✓ Required sections
|
|
68
|
-
✓
|
|
69
|
-
✓ Gate command runnable
|
|
67
|
+
✓ Required sections present
|
|
68
|
+
✓ Gate command defined
|
|
70
69
|
|
|
71
70
|
CLAUDE.md Integration
|
|
72
71
|
✓ Global ~/.claude/CLAUDE.md exists
|
|
73
72
|
✓ all-for-claudecode block present
|
|
74
|
-
⚠ all-for-claudecode block
|
|
75
|
-
Fix: /afc:
|
|
76
|
-
|
|
73
|
+
⚠ all-for-claudecode block outdated (block: 1.0.0, plugin: 1.1.0)
|
|
74
|
+
Fix: run /afc:setup to update
|
|
75
|
+
|
|
76
|
+
Legacy Migration
|
|
77
|
+
✓ No legacy artifacts found
|
|
77
78
|
|
|
78
79
|
Pipeline State
|
|
79
|
-
✓ No stale pipeline
|
|
80
|
+
✓ No stale pipeline state
|
|
80
81
|
✓ No orphaned artifacts
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
|
|
83
|
+
Memory Health
|
|
83
84
|
|
|
84
85
|
Hook Health
|
|
85
86
|
✓ hooks.json valid
|
|
86
|
-
✓ All scripts exist
|
|
87
|
+
✓ All hook scripts exist
|
|
87
88
|
✓ All scripts executable
|
|
88
89
|
|
|
90
|
+
Learner Health
|
|
91
|
+
✓ Learner not enabled (opt-in via /afc:learner enable)
|
|
92
|
+
|
|
89
93
|
Version Sync (dev)
|
|
90
|
-
✓ Version triple match
|
|
94
|
+
✓ Version triple match (1.1.0)
|
|
91
95
|
✓ Cache in sync
|
|
92
96
|
|
|
93
|
-
|
|
94
|
-
✓ Frontmatter exists (
|
|
97
|
+
Skill Definitions (dev)
|
|
98
|
+
✓ Frontmatter exists (29 files)
|
|
95
99
|
✓ Required fields present
|
|
96
100
|
✓ Name-filename match
|
|
97
101
|
✓ Fork-agent references valid
|
|
@@ -108,7 +112,7 @@ Doc References (dev)
|
|
|
108
112
|
✓ Domain adapters exist (3 files)
|
|
109
113
|
|
|
110
114
|
─────────────────────────
|
|
111
|
-
Results:
|
|
115
|
+
Results: 26 passed, 2 warnings, 0 failures
|
|
112
116
|
2 warnings found. Non-blocking but review recommended.
|
|
113
117
|
```
|
|
114
118
|
|
|
@@ -119,4 +123,4 @@ Results: 28 passed, 2 warnings, 0 failures
|
|
|
119
123
|
- **Always run all checks**: do not stop on first failure. The full picture is the value.
|
|
120
124
|
- **Actionable fixes**: every non-pass result must include a Fix line. Never report a problem without a solution.
|
|
121
125
|
- **Fast execution**: skip CI/gate command checks if `--fast` is in arguments (these are the slowest checks).
|
|
122
|
-
- **Development checks**:
|
|
126
|
+
- **Development checks**: Version Sync, Skill Definitions, Agent Definitions, Doc References only run when inside the all-for-claudecode source repo.
|
|
@@ -43,8 +43,8 @@ git tag -f afc/pre-implement
|
|
|
43
43
|
**Standalone safety activation** (skip if inside `/afc:auto`):
|
|
44
44
|
If no active pipeline state exists, activate it for the duration of this command:
|
|
45
45
|
```bash
|
|
46
|
-
"${
|
|
47
|
-
"${
|
|
46
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" start {feature-name-from-plan.md}
|
|
47
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase implement
|
|
48
48
|
```
|
|
49
49
|
This enables Stop Gate and CI Gate hooks during standalone implementation. Release on completion (Step 7) or failure rollback.
|
|
50
50
|
|
|
@@ -81,8 +81,8 @@ If `.claude/afc/specs/{feature}/tasks.md` does not exist, generate it from plan.
|
|
|
81
81
|
- Constraint → tasks (every spec Constraint is addressed by at least one task)
|
|
82
82
|
3. **Validate** (script-based, no critic loop):
|
|
83
83
|
```bash
|
|
84
|
-
"${
|
|
85
|
-
"${
|
|
84
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-dag-validate.sh" .claude/afc/specs/{feature}/tasks.md
|
|
85
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-parallel-validate.sh" .claude/afc/specs/{feature}/tasks.md
|
|
86
86
|
```
|
|
87
87
|
4. If validation fails → fix tasks.md and re-validate (max 2 attempts)
|
|
88
88
|
5. Save to `.claude/afc/specs/{feature}/tasks.md`
|
|
@@ -312,12 +312,12 @@ When a worker agent returns an error:
|
|
|
312
312
|
|
|
313
313
|
#### Phase Completion Gate (3 steps)
|
|
314
314
|
|
|
315
|
-
> **Always** read `${
|
|
315
|
+
> **Always** read `${CLAUDE_SKILL_DIR}/../../docs/phase-gate-protocol.md` first and perform the 3–4 steps (CI gate → Mini-Review → Integration/E2E Gate (conditional) → Auto-Checkpoint) in order.
|
|
316
316
|
> Cannot advance to the next phase without passing the gate. Abort and report to user after 3 consecutive CI failures.
|
|
317
317
|
|
|
318
318
|
After passing the gate, create a phase rollback point:
|
|
319
319
|
```bash
|
|
320
|
-
"${
|
|
320
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" phase-tag {phase_number}
|
|
321
321
|
```
|
|
322
322
|
This enables granular rollback: `git reset --hard afc/phase-{N}` restores state after Phase N completed.
|
|
323
323
|
|
|
@@ -359,7 +359,7 @@ After all tasks are complete:
|
|
|
359
359
|
|
|
360
360
|
After CI passes, run a convergence-based Critic Loop to verify design alignment before reporting completion.
|
|
361
361
|
|
|
362
|
-
> **Always** read `${
|
|
362
|
+
> **Always** read `${CLAUDE_SKILL_DIR}/../../docs/critic-loop-rules.md` first and follow it.
|
|
363
363
|
|
|
364
364
|
**Critic Loop until convergence** (safety cap: 5):
|
|
365
365
|
|
|
@@ -378,7 +378,7 @@ After CI passes, run a convergence-based Critic Loop to verify design alignment
|
|
|
378
378
|
|
|
379
379
|
**Standalone cleanup** (if pipeline was activated in Step 0):
|
|
380
380
|
```bash
|
|
381
|
-
"${
|
|
381
|
+
"${CLAUDE_SKILL_DIR}/../../scripts/afc-pipeline-manage.sh" end
|
|
382
382
|
```
|
|
383
383
|
|
|
384
384
|
```
|