all-for-claudecode 2.9.1 → 2.11.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 +2 -2
- package/MIGRATION.md +1 -1
- package/README.md +4 -0
- package/package.json +2 -2
- package/schemas/plugin.schema.json +2 -2
- package/scripts/afc-consistency-check.sh +25 -23
- package/scripts/afc-doctor.sh +10 -10
- package/scripts/afc-qa-audit.sh +1 -1
- package/scripts/afc-sync-cache.sh +1 -1
- package/{commands/analyze.md → skills/analyze/SKILL.md} +10 -8
- package/{commands/architect.md → skills/architect/SKILL.md} +3 -3
- package/skills/auto/SKILL.md +1156 -0
- package/{commands/clarify.md → skills/clarify/SKILL.md} +4 -3
- package/{commands/clean.md → skills/clean/SKILL.md} +14 -13
- package/{commands/consult.md → skills/consult/SKILL.md} +19 -18
- package/{commands/implement.md → skills/implement/SKILL.md} +28 -15
- package/{commands/init.md → skills/init/SKILL.md} +5 -1
- package/{commands/learner.md → skills/learner/SKILL.md} +4 -4
- package/{commands/plan.md → skills/plan/SKILL.md} +1 -122
- package/skills/plan/plan-template.md +118 -0
- package/{commands/pr-comment.md → skills/pr-comment/SKILL.md} +4 -4
- package/{commands/principles.md → skills/principles/SKILL.md} +1 -1
- package/{commands/qa.md → skills/qa/SKILL.md} +2 -2
- package/{commands/release-notes.md → skills/release-notes/SKILL.md} +8 -4
- package/{commands/review.md → skills/review/SKILL.md} +11 -11
- package/{commands/security.md → skills/security/SKILL.md} +19 -4
- package/{commands/spec.md → skills/spec/SKILL.md} +2 -77
- package/skills/spec/spec-template.md +72 -0
- package/{commands/triage.md → skills/triage/SKILL.md} +6 -7
- package/commands/auto.md +0 -585
- /package/{commands/checkpoint.md → skills/checkpoint/SKILL.md} +0 -0
- /package/{commands/debug.md → skills/debug/SKILL.md} +0 -0
- /package/{commands/doctor.md → skills/doctor/SKILL.md} +0 -0
- /package/{commands/ideate.md → skills/ideate/SKILL.md} +0 -0
- /package/{commands/launch.md → skills/launch/SKILL.md} +0 -0
- /package/{commands/research.md → skills/research/SKILL.md} +0 -0
- /package/{commands/resume.md → skills/resume/SKILL.md} +0 -0
- /package/{docs → skills/spec}/nfr-templates.md +0 -0
- /package/{commands/tasks.md → skills/tasks/SKILL.md} +0 -0
- /package/{commands/test.md → skills/test/SKILL.md} +0 -0
- /package/{commands/validate.md → skills/validate/SKILL.md} +0 -0
|
@@ -72,14 +72,14 @@ Before reviewing, identify **files affected by the changes** (not just the chang
|
|
|
72
72
|
3. **Scope decision**:
|
|
73
73
|
- Affected files are NOT full review targets (that would explode scope)
|
|
74
74
|
- Instead, include them as **cross-reference context** in Step 2 and Step 3.5
|
|
75
|
-
-
|
|
75
|
+
- Flag affected files for closer inspection when they have significant coupling to the changed code — consider the nature of the references (type-only imports vs behavioral calls), the criticality of the affected file, and whether the references involve the specific symbols that changed.
|
|
76
76
|
|
|
77
77
|
4. **Limitations** (include in review output):
|
|
78
78
|
> ⚠ Dynamic dependencies not covered: runtime dispatch (`obj[method]()`), reflection, cross-language calls, config/env-driven branching. Manual verification recommended for these patterns.
|
|
79
79
|
|
|
80
80
|
### 2. Parallel Review (scaled by file count)
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
Assess review complexity holistically — consider total diff size (lines changed), file complexity, diversity of change types, and whether changes are localized to one module or cross-cutting across multiple boundaries.
|
|
83
83
|
|
|
84
84
|
**Pre-scan: Call Chain Context** (for Parallel Batch and Review Swarm modes only):
|
|
85
85
|
|
|
@@ -97,21 +97,21 @@ Before distributing files to review agents, collect cross-boundary context:
|
|
|
97
97
|
Review findings should account for these behaviors.
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
For Direct review mode
|
|
100
|
+
For Direct review mode: skip pre-scan — orchestrator already has full context.
|
|
101
101
|
|
|
102
|
-
####
|
|
103
|
-
Review all files directly in the current context (no delegation).
|
|
102
|
+
#### Low complexity: Direct review
|
|
103
|
+
Appropriate when changes are small in total diff size, confined to a single module or area, and the reviewing model can hold all changed files in context without losing coherence. Review all files directly in the current context (no delegation).
|
|
104
104
|
|
|
105
|
-
####
|
|
106
|
-
Distribute to parallel review agents (2–3 files per agent) in a **single message**:
|
|
105
|
+
#### Moderate complexity: Parallel Batch
|
|
106
|
+
Appropriate when changes span multiple files or modules, the total diff size is substantial, or different change types (e.g., API, UI, config) benefit from focused review segments. Distribute to parallel review agents (2–3 files per agent) in a **single message**:
|
|
107
107
|
```
|
|
108
108
|
Task("Review: {file1, file2}", subagent_type: "general-purpose")
|
|
109
109
|
Task("Review: {file3, file4}", subagent_type: "general-purpose")
|
|
110
110
|
```
|
|
111
111
|
Read each agent's returned output, then write consolidated review.
|
|
112
112
|
|
|
113
|
-
####
|
|
114
|
-
Create a review task pool and spawn pre-assigned review workers:
|
|
113
|
+
#### High complexity: Review Swarm
|
|
114
|
+
Appropriate when changes are large-scale, cross-cutting across many modules, involve mixed change types (security-sensitive code, architecture layers, business logic), or individual file groups require deep specialist focus. Create a review task pool and spawn pre-assigned review workers:
|
|
115
115
|
|
|
116
116
|
> **Note**: Unlike implement swarm (which prohibits self-claiming due to write conflicts), review workers use orchestrator pre-assignment by file group. This is safe because review is read-only — no write race conditions.
|
|
117
117
|
|
|
@@ -204,9 +204,9 @@ For each changed file, examine from the following perspectives:
|
|
|
204
204
|
|
|
205
205
|
After individual/parallel reviews complete, the **orchestrator** MUST perform a cross-boundary check. This is a required step, not optional — skipping it is a review defect.
|
|
206
206
|
|
|
207
|
-
**For
|
|
207
|
+
**For High complexity (Review Swarm) reviews**: This is especially critical because individual review agents cannot see cross-file interactions. The orchestrator MUST read callee implementations directly.
|
|
208
208
|
|
|
209
|
-
0. **Impact Map integration**: Use the Impact Map from Step 1.5 to prioritize verification. Affected files with
|
|
209
|
+
0. **Impact Map integration**: Use the Impact Map from Step 1.5 to prioritize verification. Affected files with significant coupling to changed symbols (behavioral call references, not just type imports, especially in critical code paths) should be read and checked for breakage — even if no finding was raised against them.
|
|
210
210
|
|
|
211
211
|
1. **Filter**: From all collected findings, select those involving:
|
|
212
212
|
- Call order changes (function A now calls B before C)
|
|
@@ -41,11 +41,26 @@ For dependency audit command: infer from `packageManager` field in `package.json
|
|
|
41
41
|
- `$ARGUMENTS` = "full" → entire `src/`
|
|
42
42
|
- Not specified → changed files from `git diff --name-only HEAD`
|
|
43
43
|
|
|
44
|
-
### 2. Agent Teams (
|
|
44
|
+
### 2. Agent Teams (when scan complexity warrants it)
|
|
45
45
|
|
|
46
|
-
Use
|
|
46
|
+
Use Agent Teams when the scan scope is complex enough that a single-pass review would miss cross-file vulnerability patterns. Assess holistically:
|
|
47
47
|
|
|
48
|
-
**
|
|
48
|
+
- **File types**: Auth handlers, trust boundary code, and input-processing layers warrant deeper multi-agent scrutiny than config files or simple utilities
|
|
49
|
+
- **Code volume**: Large files with dense logic benefit from focused agent attention
|
|
50
|
+
- **Diversity of concerns**: Multiple distinct security domains (auth + injection + data exposure) across separate modules
|
|
51
|
+
- **Trust boundaries**: Files that cross privilege levels (user input → DB, client → server, public → internal API)
|
|
52
|
+
|
|
53
|
+
Use Agent Teams when any of the following apply:
|
|
54
|
+
- Scan includes auth handlers, session management, or access control logic spanning multiple files
|
|
55
|
+
- Input entry points and their sanitization/consumption code live in different directories
|
|
56
|
+
- The scope spans multiple distinct security domains that cannot be assessed in a single coherent pass
|
|
57
|
+
|
|
58
|
+
Use direct scan (orchestrator only) when:
|
|
59
|
+
- Scope is a single module or tightly-coupled set of files
|
|
60
|
+
- Security concerns are localized (e.g., one feature, one data flow)
|
|
61
|
+
- No cross-file trust boundary transitions are involved
|
|
62
|
+
|
|
63
|
+
**Pre-scan: Data Flow Context** (before distributing to agents, when using Agent Teams):
|
|
49
64
|
|
|
50
65
|
1. For each changed file, identify **input entry points** (user input, API params, URL params, form data) and **sanitization calls** (validation, escaping, encoding)
|
|
51
66
|
2. Trace input flow across changed files: where does user input enter? Where is it sanitized? Where is it consumed?
|
|
@@ -65,7 +80,7 @@ Task("Security scan: src/shared/api/", subagent_type: general-purpose,
|
|
|
65
80
|
prompt: "... {include Data Flow Context} ...")
|
|
66
81
|
```
|
|
67
82
|
|
|
68
|
-
For scans
|
|
83
|
+
For direct scans (orchestrator only): skip pre-scan — orchestrator has full context.
|
|
69
84
|
|
|
70
85
|
### 2.5. Cross-Boundary Verification
|
|
71
86
|
|
|
@@ -53,7 +53,7 @@ Before writing the spec, understand the current project structure:
|
|
|
53
53
|
3. Identify related type definitions, APIs, and components
|
|
54
54
|
4. **Necessity & scope check** — evaluate whether the request warrants a full spec:
|
|
55
55
|
- **Already exists?** If the feature substantially exists → report: "This feature appears to already exist at {path}." Ask user: enhance existing, replace entirely, or abort.
|
|
56
|
-
- **Over-scoped?** If `$ARGUMENTS` implies
|
|
56
|
+
- **Over-scoped?** If `$ARGUMENTS` implies multiple unrelated concerns or changes that span different architectural boundaries, warn and suggest splitting. Judge by the diversity and independence of concerns, not by file count — a well-organized feature touching many files in one module is fine, while a small change spanning security, database, and UI layers may be over-scoped.
|
|
57
57
|
- **Trivial?** If the change is small enough to implement directly (typo, config value, single-line fix) → suggest: "This can be implemented directly without a full spec. Proceed with direct edit?"
|
|
58
58
|
- If user chooses abort → end with `"No spec generated — {reason}."` and suggest the appropriate alternative.
|
|
59
59
|
|
|
@@ -75,82 +75,7 @@ Detect whether `$ARGUMENTS` references external libraries, APIs, or technologies
|
|
|
75
75
|
|
|
76
76
|
### 3. Write Spec
|
|
77
77
|
|
|
78
|
-
Create `.claude/afc/specs/{feature-name}/spec.md
|
|
79
|
-
|
|
80
|
-
```markdown
|
|
81
|
-
# Feature Spec: {feature name}
|
|
82
|
-
|
|
83
|
-
> Created: {YYYY-MM-DD}
|
|
84
|
-
> Branch: {BRANCH_NAME}
|
|
85
|
-
> Status: Draft
|
|
86
|
-
|
|
87
|
-
## Overview
|
|
88
|
-
{2-3 sentences on the purpose and background of the feature}
|
|
89
|
-
|
|
90
|
-
## User Stories
|
|
91
|
-
|
|
92
|
-
### US1: {story title} [P1]
|
|
93
|
-
**Description**: {feature description from user perspective}
|
|
94
|
-
**Priority rationale**: {why this order}
|
|
95
|
-
**Independent testability**: {whether this story can be tested on its own}
|
|
96
|
-
|
|
97
|
-
#### Acceptance Scenarios (GWT for user scenarios)
|
|
98
|
-
- [ ] Given {precondition}, When {action}, Then {result}
|
|
99
|
-
- [ ] Given {precondition}, When {action}, Then {result}
|
|
100
|
-
|
|
101
|
-
#### System Requirements (EARS notation)
|
|
102
|
-
|
|
103
|
-
> Use one of the 5 EARS patterns for each requirement. Each requirement must map to at least one expected test case (TC).
|
|
104
|
-
|
|
105
|
-
| Pattern | Template | Use When |
|
|
106
|
-
|---------|----------|----------|
|
|
107
|
-
| Ubiquitous | `THE System SHALL {behavior}` | Always-on property (no trigger needed) |
|
|
108
|
-
| Event-driven | `WHEN {trigger}, THE System SHALL {response}` | Specific event triggers a response |
|
|
109
|
-
| State-driven | `WHILE {state}, THE System SHALL {behavior}` | Behavior depends on system state |
|
|
110
|
-
| Unwanted | `IF {condition}, THE System SHALL {handling}` | Error/failure handling |
|
|
111
|
-
| Optional | `WHERE {feature/config active}, THE System SHALL {behavior}` | Feature flag or conditional capability |
|
|
112
|
-
|
|
113
|
-
- [ ] WHEN {trigger}, THE System SHALL {behavior} → TC: `should_{behavior}_when_{trigger}`
|
|
114
|
-
- [ ] WHILE {state}, THE System SHALL {behavior} → TC: `should_{behavior}_while_{state}`
|
|
115
|
-
|
|
116
|
-
### US2: {story title} [P2]
|
|
117
|
-
{same format}
|
|
118
|
-
|
|
119
|
-
## Requirements
|
|
120
|
-
|
|
121
|
-
### Functional Requirements
|
|
122
|
-
- **FR-001**: {requirement}
|
|
123
|
-
- **FR-002**: {requirement}
|
|
124
|
-
|
|
125
|
-
### Non-Functional Requirements
|
|
126
|
-
- **NFR-001**: {performance/security/accessibility etc.}
|
|
127
|
-
|
|
128
|
-
### Auto-Suggested NFRs
|
|
129
|
-
{Load `${CLAUDE_PLUGIN_ROOT}/docs/nfr-templates.md` and select 3-5 relevant NFRs based on the project type detected from afc.config.md}
|
|
130
|
-
- **NFR-A01** [AUTO-SUGGESTED]: {suggestion from matching project type template}
|
|
131
|
-
- **NFR-A02** [AUTO-SUGGESTED]: {suggestion}
|
|
132
|
-
- **NFR-A03** [AUTO-SUGGESTED]: {suggestion}
|
|
133
|
-
{Tag each with [AUTO-SUGGESTED]. Users may accept, modify, or remove.}
|
|
134
|
-
|
|
135
|
-
### Key Entities
|
|
136
|
-
| Entity | Description | Related Existing Code |
|
|
137
|
-
|--------|-------------|-----------------------|
|
|
138
|
-
| {name} | {description} | {path or "new"} |
|
|
139
|
-
|
|
140
|
-
## Success Criteria
|
|
141
|
-
- **SC-001**: {measurable success indicator}
|
|
142
|
-
- **SC-002**: {measurable success indicator}
|
|
143
|
-
|
|
144
|
-
## Edge Cases
|
|
145
|
-
- {edge case 1}
|
|
146
|
-
- {edge case 2}
|
|
147
|
-
|
|
148
|
-
## Constraints
|
|
149
|
-
- {technical/business constraints}
|
|
150
|
-
|
|
151
|
-
## [NEEDS CLARIFICATION]
|
|
152
|
-
- {uncertain items — record if any, remove section if none}
|
|
153
|
-
```
|
|
78
|
+
Create `.claude/afc/specs/{feature-name}/spec.md` following the template in `${CLAUDE_SKILL_DIR}/spec-template.md`. Read it first, then generate the spec using that structure.
|
|
154
79
|
|
|
155
80
|
### 3.5. Inline Clarification (standalone mode only)
|
|
156
81
|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Feature Spec: {feature name}
|
|
2
|
+
|
|
3
|
+
> Created: {YYYY-MM-DD}
|
|
4
|
+
> Branch: {BRANCH_NAME}
|
|
5
|
+
> Status: Draft
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
{2-3 sentences on the purpose and background of the feature}
|
|
9
|
+
|
|
10
|
+
## User Stories
|
|
11
|
+
|
|
12
|
+
### US1: {story title} [P1]
|
|
13
|
+
**Description**: {feature description from user perspective}
|
|
14
|
+
**Priority rationale**: {why this order}
|
|
15
|
+
**Independent testability**: {whether this story can be tested on its own}
|
|
16
|
+
|
|
17
|
+
#### Acceptance Scenarios (GWT for user scenarios)
|
|
18
|
+
- [ ] Given {precondition}, When {action}, Then {result}
|
|
19
|
+
- [ ] Given {precondition}, When {action}, Then {result}
|
|
20
|
+
|
|
21
|
+
#### System Requirements (EARS notation)
|
|
22
|
+
|
|
23
|
+
> Use one of the 5 EARS patterns for each requirement. Each requirement must map to at least one expected test case (TC).
|
|
24
|
+
|
|
25
|
+
| Pattern | Template | Use When |
|
|
26
|
+
|---------|----------|----------|
|
|
27
|
+
| Ubiquitous | `THE System SHALL {behavior}` | Always-on property (no trigger needed) |
|
|
28
|
+
| Event-driven | `WHEN {trigger}, THE System SHALL {response}` | Specific event triggers a response |
|
|
29
|
+
| State-driven | `WHILE {state}, THE System SHALL {behavior}` | Behavior depends on system state |
|
|
30
|
+
| Unwanted | `IF {condition}, THE System SHALL {handling}` | Error/failure handling |
|
|
31
|
+
| Optional | `WHERE {feature/config active}, THE System SHALL {behavior}` | Feature flag or conditional capability |
|
|
32
|
+
|
|
33
|
+
- [ ] WHEN {trigger}, THE System SHALL {behavior} → TC: `should_{behavior}_when_{trigger}`
|
|
34
|
+
- [ ] WHILE {state}, THE System SHALL {behavior} → TC: `should_{behavior}_while_{state}`
|
|
35
|
+
|
|
36
|
+
### US2: {story title} [P2]
|
|
37
|
+
{same format}
|
|
38
|
+
|
|
39
|
+
## Requirements
|
|
40
|
+
|
|
41
|
+
### Functional Requirements
|
|
42
|
+
- **FR-001**: {requirement}
|
|
43
|
+
- **FR-002**: {requirement}
|
|
44
|
+
|
|
45
|
+
### Non-Functional Requirements
|
|
46
|
+
- **NFR-001**: {performance/security/accessibility etc.}
|
|
47
|
+
|
|
48
|
+
### Auto-Suggested NFRs
|
|
49
|
+
{Load `${CLAUDE_SKILL_DIR}/nfr-templates.md` and select 3-5 relevant NFRs based on the project type detected from afc.config.md}
|
|
50
|
+
- **NFR-A01** [AUTO-SUGGESTED]: {suggestion from matching project type template}
|
|
51
|
+
- **NFR-A02** [AUTO-SUGGESTED]: {suggestion}
|
|
52
|
+
- **NFR-A03** [AUTO-SUGGESTED]: {suggestion}
|
|
53
|
+
{Tag each with [AUTO-SUGGESTED]. Users may accept, modify, or remove.}
|
|
54
|
+
|
|
55
|
+
### Key Entities
|
|
56
|
+
| Entity | Description | Related Existing Code |
|
|
57
|
+
|--------|-------------|-----------------------|
|
|
58
|
+
| {name} | {description} | {path or "new"} |
|
|
59
|
+
|
|
60
|
+
## Success Criteria
|
|
61
|
+
- **SC-001**: {measurable success indicator}
|
|
62
|
+
- **SC-002**: {measurable success indicator}
|
|
63
|
+
|
|
64
|
+
## Edge Cases
|
|
65
|
+
- {edge case 1}
|
|
66
|
+
- {edge case 2}
|
|
67
|
+
|
|
68
|
+
## Constraints
|
|
69
|
+
- {technical/business constraints}
|
|
70
|
+
|
|
71
|
+
## [NEEDS CLARIFICATION]
|
|
72
|
+
- {uncertain items — record if any, remove section if none}
|
|
@@ -71,9 +71,8 @@ Task("Triage PR #{number}: {title}", subagent_type: "general-purpose",
|
|
|
71
71
|
2. Run: gh pr view {number} --comments
|
|
72
72
|
3. Analyze the diff for:
|
|
73
73
|
- What the PR does (1-2 sentence summary)
|
|
74
|
-
- Risk level:
|
|
75
|
-
|
|
76
|
-
- Complexity: High (>10 files or cross-cutting) / Medium (3-10 files) / Low (<3 files)
|
|
74
|
+
- Risk level: Assess the actual impact of this PR on the system. Consider: does it change trust boundaries, data flows, or core business logic? Could a bug here cause data loss, security breach, or service outage? Rate risk based on potential blast radius, not file categories.
|
|
75
|
+
- Complexity: Assess the cognitive complexity of reviewing this PR. Consider: how many distinct concerns does it touch, does it cross architectural boundaries, does understanding one change require understanding another? Rate complexity based on review difficulty, not file count.
|
|
77
76
|
- Whether build/test verification is needed (yes/no + reason)
|
|
78
77
|
- Potential issues or concerns (max 3)
|
|
79
78
|
- Suggested reviewers or labels if obvious
|
|
@@ -98,9 +97,9 @@ Task("Triage Issues #{n1}-#{n5}", subagent_type: "general-purpose",
|
|
|
98
97
|
For each issue:
|
|
99
98
|
1. Read issue body and comments: gh issue view {number} --comments
|
|
100
99
|
2. Classify:
|
|
101
|
-
- Type: Bug
|
|
102
|
-
- Priority:
|
|
103
|
-
- Estimated effort:
|
|
100
|
+
- Type: Classify based on the issue's actual nature. The standard categories (Bug, Feature, Enhancement, Question, Maintenance) serve as defaults, but adapt to the project's own labeling conventions if they differ.
|
|
101
|
+
- Priority: Assess priority based on the issue's relationship to current work, user impact, and project goals — not by forcing into generic P0-P3 buckets. Consider: is this blocking other work? How many users are affected? Does it align with current priorities?
|
|
102
|
+
- Estimated effort: Estimate based on the actual scope of work required, considering project complexity and available context — not by rigid day-count buckets.
|
|
104
103
|
- Related PRs (if any mentioned)
|
|
105
104
|
3. One-line summary
|
|
106
105
|
|
|
@@ -203,7 +202,7 @@ Merge Phase 1 and Phase 2 results into a single report:
|
|
|
203
202
|
- **Immediate attention**: {list of Critical PRs and P0 issues}
|
|
204
203
|
- **Ready to merge**: {PRs with no concerns and passing checks}
|
|
205
204
|
- **Needs discussion**: {PRs/issues requiring team input}
|
|
206
|
-
- **Stale items**: {PRs/issues with no activity
|
|
205
|
+
- **Stale items**: {PRs/issues with no meaningful activity for an extended period. Consider the project's typical development cadence — what counts as stale depends on the project's release cycle and activity patterns.}
|
|
207
206
|
```
|
|
208
207
|
|
|
209
208
|
### 5. Save Report
|