devflow-kit 3.2.0 → 3.3.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/CHANGELOG.md +16 -0
- package/README.md +1 -1
- package/dist/cli/commands/learning.js +25 -5
- package/dist/commands/code-review.md +1 -1
- package/dist/commands/debug.md +1 -1
- package/dist/commands/dynamic-build.md +141 -94
- package/dist/commands/dynamic-plan.md +1 -1
- package/dist/commands/explore.md +1 -1
- package/dist/commands/implement.md +133 -133
- package/dist/commands/resolve.md +27 -16
- package/dist/commands/self-review.md +16 -11
- package/dist/core/agent-models.js +10 -7
- package/dist/core/learning-tuning-config.js +8 -0
- package/dist/core/plugins.js +7 -2
- package/dist/skills/git/references/tracker/github/gather-release-evidence.md +1 -1
- package/dist/skills/git/references/tracker/jira/gather-release-evidence.md +1 -1
- package/dist/skills/git/references/tracker/linear/gather-release-evidence.md +1 -1
- package/package.json +1 -1
- package/src/assets/agents/code.md +71 -18
- package/src/assets/agents/design.md +10 -0
- package/src/assets/agents/diagnose.md +16 -11
- package/src/assets/agents/evaluate.md +14 -25
- package/src/assets/agents/knowledge.md +5 -3
- package/src/assets/agents/learning.md +4 -6
- package/src/assets/agents/research.md +19 -0
- package/src/assets/agents/review.md +10 -0
- package/src/assets/agents/scrutinize.md +34 -10
- package/src/assets/agents/simplify.md +20 -0
- package/src/assets/agents/skim.md +4 -2
- package/src/assets/agents/synthesize.md +12 -0
- package/src/assets/agents/test.md +2 -2
- package/src/assets/agents/triage.md +7 -1
- package/src/assets/agents/validate.md +7 -2
- package/src/assets/commands/_partials/_engine.mds +21 -24
- package/src/assets/commands/_partials/_knowledge.mds +1 -1
- package/src/assets/commands/_partials/_plan_contract.mds +1 -1
- package/src/assets/commands/_partials/_wave.mds +8 -6
- package/src/assets/commands/code-review.mds +1 -1
- package/src/assets/commands/dynamic-build.mds +111 -63
- package/src/assets/commands/implement.mds +132 -132
- package/src/assets/commands/resolve.mds +26 -15
- package/src/assets/commands/self-review.mds +15 -10
- package/src/assets/mds/tracker/_common.mds +1 -1
- package/src/assets/scripts/ci-wait.cjs +636 -0
- package/src/assets/scripts/hooks/assets/orchestrator-charter.md +1 -1
- package/src/assets/scripts/hooks/background-memory-update +290 -9
- package/src/assets/scripts/release-trace.cjs +27 -10
- package/src/assets/skills/accessibility/SKILL.md +1 -1
- package/src/assets/skills/apply-decisions/SKILL.md +12 -82
- package/src/assets/skills/apply-feature-knowledge/SKILL.md +8 -42
- package/src/assets/skills/architecture/SKILL.md +1 -1
- package/src/assets/skills/boundary-validation/SKILL.md +1 -1
- package/src/assets/skills/complexity/SKILL.md +1 -1
- package/src/assets/skills/compliance/SKILL.md +1 -1
- package/src/assets/skills/consistency/SKILL.md +1 -1
- package/src/assets/skills/database/SKILL.md +1 -1
- package/src/assets/skills/dependencies/SKILL.md +1 -1
- package/src/assets/skills/dependency-research/SKILL.md +3 -6
- package/src/assets/skills/design-review/SKILL.md +1 -1
- package/src/assets/skills/docs-framework/SKILL.md +1 -1
- package/src/assets/skills/documentation/SKILL.md +1 -1
- package/src/assets/skills/gap-analysis/SKILL.md +1 -1
- package/src/assets/skills/git/SKILL.md +1 -1
- package/src/assets/skills/go/SKILL.md +1 -1
- package/src/assets/skills/java/SKILL.md +1 -1
- package/src/assets/skills/patterns/SKILL.md +1 -1
- package/src/assets/skills/performance/SKILL.md +1 -1
- package/src/assets/skills/python/SKILL.md +1 -1
- package/src/assets/skills/qa/SKILL.md +1 -3
- package/src/assets/skills/quality-gates/SKILL.md +9 -12
- package/src/assets/skills/quality-gates/references/report-template.md +20 -20
- package/src/assets/skills/react/SKILL.md +1 -1
- package/src/assets/skills/regression/SKILL.md +1 -1
- package/src/assets/skills/reliability/SKILL.md +1 -1
- package/src/assets/skills/research-codebase/SKILL.md +1 -1
- package/src/assets/skills/research-competitor/SKILL.md +1 -1
- package/src/assets/skills/research-external/SKILL.md +1 -1
- package/src/assets/skills/research-technology/SKILL.md +1 -1
- package/src/assets/skills/review-methodology/SKILL.md +1 -1
- package/src/assets/skills/rust/SKILL.md +1 -1
- package/src/assets/skills/security/SKILL.md +1 -1
- package/src/assets/skills/software-design/SKILL.md +1 -1
- package/src/assets/skills/test-driven-development/SKILL.md +9 -29
- package/src/assets/skills/testing/SKILL.md +1 -1
- package/src/assets/skills/typescript/SKILL.md +1 -1
- package/src/assets/skills/ui-design/SKILL.md +1 -1
- package/src/assets/skills/worktree-support/SKILL.md +3 -55
- package/src/assets/skills/worktree-support/references/discovery.md +48 -0
- package/src/assets/skills/worktree-support/references/roots.md +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: consistency
|
|
3
|
-
description: This skill should be used when reviewing code for naming
|
|
3
|
+
description: This skill should be used when reviewing code for naming or pattern inconsistencies.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: database
|
|
3
|
-
description: This skill should be used when reviewing
|
|
3
|
+
description: This skill should be used when reviewing queries, migrations or schema changes.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dependencies
|
|
3
|
-
description: This skill should be used when reviewing dependency
|
|
3
|
+
description: This skill should be used when reviewing dependency or lock file changes.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dependency-research
|
|
3
|
-
description:
|
|
4
|
-
This skill should be used when the user asks to "add a utility", "create a helper",
|
|
5
|
-
"implement parsing", "build a wrapper", or writes infrastructure/utility code that
|
|
6
|
-
may already exist as a well-maintained package. Enforces research before building.
|
|
3
|
+
description: This skill should be used when the user asks to "add a utility", "create a helper", "build a wrapper", or writes utility code a maintained package may already provide.
|
|
7
4
|
user-invocable: false
|
|
8
5
|
allowed-tools: Read, Grep, Glob
|
|
9
6
|
---
|
|
@@ -54,9 +51,9 @@ Nice-to-haves: {optional features}
|
|
|
54
51
|
|
|
55
52
|
### Phase 2: Search
|
|
56
53
|
|
|
57
|
-
|
|
54
|
+
Spawn an Explore subagent when you can spawn agents, to keep main session context clean; otherwise search directly, using the template's questions as your checklist.
|
|
58
55
|
|
|
59
|
-
**
|
|
56
|
+
**Prompt template** for the Explore agent:
|
|
60
57
|
|
|
61
58
|
```
|
|
62
59
|
Agent(subagent_type="Explore"):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: design-review
|
|
3
|
-
description: This skill should be used when reviewing implementation plans for anti-patterns
|
|
3
|
+
description: This skill should be used when reviewing implementation plans for anti-patterns.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: docs-framework
|
|
3
|
-
description: This skill should be used when
|
|
3
|
+
description: This skill should be used when creating files in the .devflow/docs/ directory.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Bash, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: documentation
|
|
3
|
-
description: This skill should be used when reviewing for documentation drift
|
|
3
|
+
description: This skill should be used when reviewing for documentation drift or stale comments.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gap-analysis
|
|
3
|
-
description: This skill should be used when analyzing
|
|
3
|
+
description: This skill should be used when analyzing specs or plans for completeness gaps.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: git
|
|
3
|
-
description: This skill should be used when the user asks to "commit changes", "create a pull request", "rebase safely",
|
|
3
|
+
description: This skill should be used when the user asks to "commit changes", "create a pull request", "rebase safely", or performs any git/GitHub operation.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Bash, Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: go
|
|
3
|
-
description: This skill should be used when the user works with Go files (.go), asks about "error handling", "interfaces", "goroutines",
|
|
3
|
+
description: This skill should be used when the user works with Go files (.go), asks about "error handling", "interfaces", "goroutines", or discusses Go idioms and concurrency.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
activation:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: java
|
|
3
|
-
description: This skill should be used when the user works with Java files (.java), asks about "records", "sealed classes", "
|
|
3
|
+
description: This skill should be used when the user works with Java files (.java), asks about "records", "sealed classes", "streams", or discusses modern Java patterns.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
activation:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: patterns
|
|
3
|
-
description: This skill should be used when the user asks to "create an API endpoint", "add CRUD operations", "implement event handlers", "set up logging",
|
|
3
|
+
description: This skill should be used when the user asks to "create an API endpoint", "add CRUD operations", "implement event handlers", "set up logging", or adds database operations, REST/GraphQL APIs, pub/sub.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: performance
|
|
3
|
-
description: This skill should be used when reviewing code for N+1 queries
|
|
3
|
+
description: This skill should be used when reviewing code for N+1 queries or memory leaks.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: python
|
|
3
|
-
description: This skill should be used when the user works with Python files (.py), asks about "type hints", "protocols", "dataclasses", "async/await",
|
|
3
|
+
description: This skill should be used when the user works with Python files (.py), asks about "type hints", "protocols", "dataclasses", "async/await", or discusses Pythonic patterns.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
activation:
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qa
|
|
3
|
-
description: This skill should be used when
|
|
4
|
-
designing QA test plans, or validating that implementation behavior matches acceptance
|
|
5
|
-
criteria beyond unit tests.
|
|
3
|
+
description: This skill should be used when designing or running scenario-based acceptance tests.
|
|
6
4
|
user-invocable: false
|
|
7
5
|
allowed-tools: Read, Grep, Glob, Bash
|
|
8
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: quality-gates
|
|
3
|
-
description: This skill should be used when evaluating implementation quality before submission
|
|
3
|
+
description: This skill should be used when evaluating implementation quality before submission.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob, Edit, Write, Bash
|
|
6
6
|
---
|
|
@@ -26,7 +26,7 @@ Based on [Google Engineering Practices](https://google.github.io/eng-practices/r
|
|
|
26
26
|
|----------|--------|---------|
|
|
27
27
|
| **P0** | MUST fix | Design, Functionality, Security |
|
|
28
28
|
| **P1** | SHOULD fix | Complexity, Error Handling, Tests |
|
|
29
|
-
| **P2** | FIX if
|
|
29
|
+
| **P2** | FIX if straightforward | Documentation (Naming and Consistency belong to the Simplify agent: report them as SKIP) |
|
|
30
30
|
|
|
31
31
|
### P0 - Design
|
|
32
32
|
Does the implementation fit the architecture? Follows existing patterns, respects layer boundaries, dependencies injected.
|
|
@@ -48,11 +48,8 @@ Errors handled explicitly? No swallowed exceptions, helpful messages, resources
|
|
|
48
48
|
### P1 - Tests
|
|
49
49
|
New code tested? Covers happy path, errors, edges. Tests behavior, not implementation.
|
|
50
50
|
|
|
51
|
-
### P2 - Naming
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
### P2 - Consistency
|
|
55
|
-
Matches existing patterns? Same style, same conventions, no unnecessary divergence.
|
|
51
|
+
### P2 - Naming and Consistency
|
|
52
|
+
Owned by the Simplify agent, which applies the project's naming and style standards. Report both as SKIP; do not judge or fix them here.
|
|
56
53
|
|
|
57
54
|
### P2 - Documentation
|
|
58
55
|
Will others understand? Complex logic commented, public APIs documented, no outdated comments.
|
|
@@ -99,7 +96,7 @@ Check Design, Functionality, Security. If issues found and fixable, fix immediat
|
|
|
99
96
|
Check Complexity, Error Handling, Tests. Fix issues found.
|
|
100
97
|
|
|
101
98
|
### Step 4: Evaluate P2 Pillars
|
|
102
|
-
Check Naming
|
|
99
|
+
Check Documentation and fix it if straightforward. Naming and Consistency are the Simplify agent's: SKIP.
|
|
103
100
|
|
|
104
101
|
### Step 5: Generate Report
|
|
105
102
|
Document status of each pillar, fixes applied, and overall readiness.
|
|
@@ -122,13 +119,13 @@ Document status of each pillar, fixes applied, and overall readiness.
|
|
|
122
119
|
- Tests: PASS/FIXED
|
|
123
120
|
|
|
124
121
|
### P2 Pillars
|
|
125
|
-
- Naming:
|
|
126
|
-
- Consistency:
|
|
127
|
-
- Documentation: PASS/FIXED
|
|
122
|
+
- Naming: SKIP (Simplify agent)
|
|
123
|
+
- Consistency: SKIP (Simplify agent)
|
|
124
|
+
- Documentation: PASS/FIXED
|
|
128
125
|
|
|
129
126
|
### Summary
|
|
130
127
|
Issues Found: {n}, Fixed: {n}
|
|
131
|
-
Status:
|
|
128
|
+
Status: PASS / FIXED / BLOCKED
|
|
132
129
|
```
|
|
133
130
|
|
|
134
131
|
---
|
|
@@ -44,13 +44,13 @@ Use this template when generating your self-review report.
|
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
47
|
-
### P2 Pillars (
|
|
47
|
+
### P2 Pillars (Documentation only)
|
|
48
48
|
|
|
49
49
|
| Pillar | Status | Notes |
|
|
50
50
|
|--------|--------|-------|
|
|
51
|
-
| Naming |
|
|
52
|
-
| Consistency |
|
|
53
|
-
| Documentation | PASS/FIXED
|
|
51
|
+
| Naming | SKIP | Simplify agent |
|
|
52
|
+
| Consistency | SKIP | Simplify agent |
|
|
53
|
+
| Documentation | PASS/FIXED | {details if fixed} |
|
|
54
54
|
|
|
55
55
|
**Fixes Applied** (if any):
|
|
56
56
|
- {file:line} - {what was fixed}
|
|
@@ -61,7 +61,7 @@ Use this template when generating your self-review report.
|
|
|
61
61
|
|
|
62
62
|
**Issues Found**: {total count}
|
|
63
63
|
**Issues Fixed**: {count}
|
|
64
|
-
**Status**:
|
|
64
|
+
**Status**: PASS / FIXED / BLOCKED
|
|
65
65
|
|
|
66
66
|
{If BLOCKED, explain what cannot be fixed and why}
|
|
67
67
|
```
|
|
@@ -105,12 +105,12 @@ Add user profile update endpoint
|
|
|
105
105
|
|
|
106
106
|
---
|
|
107
107
|
|
|
108
|
-
### P2 Pillars (
|
|
108
|
+
### P2 Pillars (Documentation only)
|
|
109
109
|
|
|
110
110
|
| Pillar | Status | Notes |
|
|
111
111
|
|--------|--------|-------|
|
|
112
|
-
| Naming |
|
|
113
|
-
| Consistency |
|
|
112
|
+
| Naming | SKIP | Simplify agent |
|
|
113
|
+
| Consistency | SKIP | Simplify agent |
|
|
114
114
|
| Documentation | PASS | JSDoc on public methods |
|
|
115
115
|
|
|
116
116
|
---
|
|
@@ -119,7 +119,7 @@ Add user profile update endpoint
|
|
|
119
119
|
|
|
120
120
|
**Issues Found**: 0
|
|
121
121
|
**Issues Fixed**: 0
|
|
122
|
-
**Status**:
|
|
122
|
+
**Status**: PASS
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
### Example 2: Issues Fixed
|
|
@@ -165,12 +165,12 @@ Implement order cancellation flow
|
|
|
165
165
|
|
|
166
166
|
---
|
|
167
167
|
|
|
168
|
-
### P2 Pillars (
|
|
168
|
+
### P2 Pillars (Documentation only)
|
|
169
169
|
|
|
170
170
|
| Pillar | Status | Notes |
|
|
171
171
|
|--------|--------|-------|
|
|
172
|
-
| Naming |
|
|
173
|
-
| Consistency |
|
|
172
|
+
| Naming | SKIP | Simplify agent |
|
|
173
|
+
| Consistency | SKIP | Simplify agent |
|
|
174
174
|
| Documentation | FIXED | Added JSDoc explaining cancellation rules |
|
|
175
175
|
|
|
176
176
|
**Fixes Applied**:
|
|
@@ -182,7 +182,7 @@ Implement order cancellation flow
|
|
|
182
182
|
|
|
183
183
|
**Issues Found**: 5
|
|
184
184
|
**Issues Fixed**: 5
|
|
185
|
-
**Status**:
|
|
185
|
+
**Status**: FIXED
|
|
186
186
|
```
|
|
187
187
|
|
|
188
188
|
### Example 3: Blocked
|
|
@@ -233,12 +233,12 @@ before implementing refund feature.
|
|
|
233
233
|
|
|
234
234
|
## Status Definitions
|
|
235
235
|
|
|
236
|
-
| Status |
|
|
237
|
-
|
|
238
|
-
| PASS | No issues found for this pillar |
|
|
239
|
-
| FIXED | Issue found and resolved |
|
|
240
|
-
| SKIP |
|
|
241
|
-
| BLOCKED | Cannot fix - requires escalation |
|
|
236
|
+
| Status | Pillar | Overall (`### Status`) |
|
|
237
|
+
|--------|--------|------------------------|
|
|
238
|
+
| PASS | No issues found for this pillar | No change was needed |
|
|
239
|
+
| FIXED | Issue found and resolved | Fixes were committed and every P0 and P1 is fixed |
|
|
240
|
+
| SKIP | Naming and Consistency only - owned by the Simplify agent | - |
|
|
241
|
+
| BLOCKED | Cannot fix - requires escalation | A P0 cannot be fixed in scope |
|
|
242
242
|
|
|
243
243
|
---
|
|
244
244
|
|
|
@@ -247,7 +247,7 @@ before implementing refund feature.
|
|
|
247
247
|
Before submitting report:
|
|
248
248
|
- [ ] All P0 pillars are PASS or FIXED
|
|
249
249
|
- [ ] All P1 pillars are PASS or FIXED
|
|
250
|
-
- [ ]
|
|
250
|
+
- [ ] Documentation evaluated (PASS/FIXED); Naming and Consistency reported as SKIP
|
|
251
251
|
- [ ] All fixes documented with file:line
|
|
252
252
|
- [ ] Summary accurately reflects status
|
|
253
253
|
- [ ] If BLOCKED, clear explanation provided
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react
|
|
3
|
-
description: This skill should be used when the user works with React components (.tsx/.jsx), asks about "hooks", "state management", "
|
|
3
|
+
description: This skill should be used when the user works with React components (.tsx/.jsx), asks about "hooks", "state management", "memo optimization", or discusses component composition.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
activation:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: regression
|
|
3
|
-
description: This skill should be used when reviewing changes that may
|
|
3
|
+
description: This skill should be used when reviewing changes that may break existing behavior.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reliability
|
|
3
|
-
description: This skill should be used when reviewing code for unbounded loops
|
|
3
|
+
description: This skill should be used when reviewing code for unbounded loops or missing assertions.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: research-codebase
|
|
3
|
-
description: Local codebase research — find patterns, trace flows, map dependencies
|
|
3
|
+
description: Local codebase research — find patterns, trace flows, map dependencies
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: research-competitor
|
|
3
|
-
description: Competitor analysis —
|
|
3
|
+
description: Competitor analysis — feature comparison, positioning and gap identification
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: WebSearch, WebFetch
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: research-external
|
|
3
|
-
description: External web research —
|
|
3
|
+
description: External web research — docs, articles, community knowledge; untrusted data
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: WebSearch, WebFetch
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: research-technology
|
|
3
|
-
description: Technology evaluation — assess libraries, frameworks
|
|
3
|
+
description: Technology evaluation — assess libraries, frameworks and tools against requirements
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: WebSearch, WebFetch, Read
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-methodology
|
|
3
|
-
description: This skill should be used when performing a code review
|
|
3
|
+
description: This skill should be used when performing a code review (the 6-step process).
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob, Bash
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rust
|
|
3
|
-
description: This skill should be used when the user works with Rust files (.rs), asks about "ownership", "borrowing", "lifetimes", "
|
|
3
|
+
description: This skill should be used when the user works with Rust files (.rs), asks about "ownership", "borrowing", "lifetimes", "traits", or discusses memory safety.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
activation:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security
|
|
3
|
-
description: This skill should be used when reviewing code for injection
|
|
3
|
+
description: This skill should be used when reviewing code for injection, auth or secrets flaws.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: software-design
|
|
3
|
-
description: This skill should be used when the user asks to "handle errors", "inject dependencies", "return Result", "make it immutable",
|
|
3
|
+
description: This skill should be used when the user asks to "handle errors", "inject dependencies", "return Result", "make it immutable", or implements business logic or error handling.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob, AskUserQuestion
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test-driven-development
|
|
3
|
-
description: This skill should be used when implementing
|
|
3
|
+
description: This skill should be used when implementing features or fixing bugs. Enforces RED-GREEN-REFACTOR.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
activation:
|
|
@@ -62,12 +62,11 @@ Don't optimize. Don't refactor. Don't clean up. Just pass the test.
|
|
|
62
62
|
|
|
63
63
|
### Step 3: REFACTOR — Improve Without Changing Behavior
|
|
64
64
|
|
|
65
|
-
Now clean up
|
|
65
|
+
Now clean up: extract helpers, rename, simplify, apply DRY. Tests stay green throughout.
|
|
66
66
|
|
|
67
67
|
```
|
|
68
68
|
Run the affected tests after every refactoring step.
|
|
69
69
|
If a test breaks during refactor, undo immediately — you changed behavior.
|
|
70
|
-
Apply DRY, extract patterns, improve readability.
|
|
71
70
|
```
|
|
72
71
|
|
|
73
72
|
**Checkpoint:** All affected tests still pass. Code is clean. Repeat from Step 1 for next behavior.
|
|
@@ -98,11 +97,10 @@ These are the excuses developers use to skip TDD. Recognize and reject them.
|
|
|
98
97
|
| "I'll write tests after" | Need to see the shape first | Tests ARE the shape — they define the interface before implementation exists | Write the test first |
|
|
99
98
|
| "Too simple to test" | It's just a getter/setter | Getters break, defaults change, edge cases hide in "simple" code | Write it — takes 30 seconds |
|
|
100
99
|
| "I'll refactor later" | Just get it working now | "Later" never comes; technical debt compounds silently | Refactor now in Step 3 |
|
|
101
|
-
| "Test is too hard to write"
|
|
102
|
-
| "Need to see the whole picture" | Can't test what I haven't designed yet | TDD IS design; each test reveals the next piece of the interface | Let the
|
|
100
|
+
| "Test is too hard to write" or "the test setup is too complex" | Mocking is painful | Hard-to-test code = bad design, and complex setup = too much coupling; the test is telling you the interface is wrong | Simplify the interface first |
|
|
101
|
+
| "Need to see the whole picture" or "the architecture first" | Can't test what I haven't designed or structured yet | TDD IS design; each test reveals the next piece of the interface, and tests DEFINE the architecture | Let the tests drive the design and structure |
|
|
103
102
|
| "Tests slow me down" | Faster to just write the code | Faster until the first regression; TDD is faster for anything > 50 lines | Trust the cycle |
|
|
104
103
|
| "Framework is hard to set up" | Setup is complex | One-time cost vs recurring regression cost; untested code compounds debt | Set up the framework first — that IS the work |
|
|
105
|
-
| "Need the architecture first" | Can't test without structure | Tests DEFINE the architecture; they reveal what interfaces are needed | Let tests drive the structure |
|
|
106
104
|
| "This is infrastructure, not logic" | Plumbing doesn't need tests | Infrastructure carries data; broken plumbing floods everything downstream | Test the contract, not the internals |
|
|
107
105
|
| "Deadline is tight, no time for tests" | Ship now, test later | Untested code ships bugs; fixing bugs under deadline is slower than TDD | TDD is faster under pressure, not slower |
|
|
108
106
|
|
|
@@ -110,13 +108,11 @@ See `references/rationalization-prevention.md` for extended examples with code.
|
|
|
110
108
|
|
|
111
109
|
### Red Flags — STOP Immediately
|
|
112
110
|
|
|
113
|
-
The
|
|
111
|
+
The table above catches excuses *before starting*. These catch you *mid-work*: thoughts that signal you are about to skip a step.
|
|
114
112
|
|
|
115
113
|
| Thought | Correction |
|
|
116
114
|
|---------|------------|
|
|
117
115
|
| "Let me write the implementation first, tests after" | Delete the code. Write the test. Watch it fail. Then rewrite. |
|
|
118
|
-
| "I need to see the shape before I can test" | The test IS the shape. It defines the interface before implementation. |
|
|
119
|
-
| "The test setup is too complex for this" | Complex setup = too much coupling. Simplify the design first. |
|
|
120
116
|
| "I'll just spike this and add tests later" | Unless the user said "spike" — you're rationalizing, not prototyping. |
|
|
121
117
|
| "Let me get it working, then lock it with tests" | Those tests verify your implementation, not the requirement. Backwards. |
|
|
122
118
|
| "I know this works, I've written it before" | Past code passed past tests. This code needs its own failing test. |
|
|
@@ -124,20 +120,11 @@ The rationalization table above catches excuses you make *before starting*. Thes
|
|
|
124
120
|
|
|
125
121
|
### Test-First vs Code-First
|
|
126
122
|
|
|
127
|
-
**Code-first** (wrong):
|
|
128
|
-
1. Write `parseConfig()` — split lines, filter comments, build map
|
|
129
|
-
2. Write test: `parseConfig("key=val")` passes
|
|
130
|
-
3. Ship. Undiscovered: empty input, malformed lines, multi-value keys, whitespace
|
|
131
|
-
> Test mirrors implementation. Edge cases stay hidden until production.
|
|
123
|
+
**Code-first** (wrong): write `parseConfig()`, then a test that mirrors it (`parseConfig("key=val")` passes). Empty input, malformed lines, multi-value keys and whitespace stay hidden until production.
|
|
132
124
|
|
|
133
|
-
**Test-first** (correct):
|
|
134
|
-
1. Test: "ignores comment lines" — `parseConfig("# comment\nkey=val")` → `{key: val}`
|
|
135
|
-
2. Test: "handles empty input" — `parseConfig("")` → empty result
|
|
136
|
-
3. Test: "rejects malformed lines" — `parseConfig("no-equals")` → error
|
|
137
|
-
4. Implement `parseConfig()` to satisfy all three
|
|
138
|
-
> Tests define the contract. Implementation forced to handle edges from the start.
|
|
125
|
+
**Test-first** (correct): "ignores comment lines", then "handles empty input", then "rejects malformed lines", each failing first and each driving the next slice of `parseConfig()`, so it handles the edges from the start.
|
|
139
126
|
|
|
140
|
-
|
|
127
|
+
Code-first tests verify what you *happened to build*. Test-first tests specify what *should exist*.
|
|
141
128
|
|
|
142
129
|
### When Stuck
|
|
143
130
|
|
|
@@ -153,14 +140,7 @@ The difference: code-first tests verify what you *happened to build*. Test-first
|
|
|
153
140
|
|
|
154
141
|
## Process Enforcement
|
|
155
142
|
|
|
156
|
-
When implementing any feature under ambient IMPLEMENT
|
|
157
|
-
|
|
158
|
-
1. **Identify the first behavior** — What is the simplest thing this feature must do?
|
|
159
|
-
2. **Write the test** — Describe that behavior as a failing test
|
|
160
|
-
3. **Run the test** — Confirm it fails (RED)
|
|
161
|
-
4. **Write minimum code** — Just enough to pass (GREEN)
|
|
162
|
-
5. **Refactor** — Clean up while tests stay green (REFACTOR)
|
|
163
|
-
6. **Repeat** — Next behavior, next test, next cycle
|
|
143
|
+
When implementing any feature under ambient IMPLEMENT, start from the simplest thing it must do, take that one behavior through RED, GREEN and REFACTOR, then repeat for the next behavior.
|
|
164
144
|
|
|
165
145
|
### File Organization
|
|
166
146
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: testing
|
|
3
|
-
description: This skill should be used when the user asks to "write tests", "fix failing tests", "improve test coverage"
|
|
3
|
+
description: This skill should be used when the user asks to "write tests", "fix failing tests", "improve test coverage" or "debug a flaky test", or reviews test quality.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob, AskUserQuestion
|
|
6
6
|
activation:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: typescript
|
|
3
|
-
description: This skill should be used when the user works with TypeScript files (.ts/.tsx), asks about "generics", "type guards", "utility types", "
|
|
3
|
+
description: This skill should be used when the user works with TypeScript files (.ts/.tsx), asks about "generics", "type guards", "utility types", "discriminated unions", or discusses type safety.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
activation:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-design
|
|
3
|
-
description: This skill should be used when the user asks to "design a component", "pick colors", "improve typography", "fix spacing",
|
|
3
|
+
description: This skill should be used when the user asks to "design a component", "pick colors", "improve typography", "fix spacing", or discusses visual design and CSS.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
activation:
|
|
@@ -7,8 +7,6 @@ allowed-tools: Bash, Read
|
|
|
7
7
|
|
|
8
8
|
# Worktree Support
|
|
9
9
|
|
|
10
|
-
Canonical patterns for worktree-aware agents and multi-worktree discovery in commands.
|
|
11
|
-
|
|
12
10
|
## Iron Law
|
|
13
11
|
|
|
14
12
|
> **WORKTREE_PATH IS A PREFIX, NOT A FLAG**
|
|
@@ -16,8 +14,6 @@ Canonical patterns for worktree-aware agents and multi-worktree discovery in com
|
|
|
16
14
|
> When WORKTREE_PATH is provided, it changes how you resolve ALL paths — git commands,
|
|
17
15
|
> file reads, .devflow/docs/ paths. It's not a toggle; it's a coordinate system shift.
|
|
18
16
|
|
|
19
|
-
---
|
|
20
|
-
|
|
21
17
|
## Agent Path Resolution
|
|
22
18
|
|
|
23
19
|
When `WORKTREE_PATH` is provided to an agent:
|
|
@@ -31,46 +27,6 @@ When `WORKTREE_PATH` is provided to an agent:
|
|
|
31
27
|
|
|
32
28
|
If `WORKTREE_PATH` is omitted, behavior is unchanged (use cwd). This is the common case.
|
|
33
29
|
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Worktree Discovery Algorithm (Commands)
|
|
37
|
-
|
|
38
|
-
For commands that auto-discover worktrees (`/code-review`, `/resolve`):
|
|
39
|
-
|
|
40
|
-
### Step 1: List Worktrees
|
|
41
|
-
|
|
42
|
-
Run `git worktree list --porcelain`
|
|
43
|
-
|
|
44
|
-
### Step 2: Parse Each Entry
|
|
45
|
-
|
|
46
|
-
Extract: `worktree {path}`, `HEAD {sha}`, `branch refs/heads/{name}`
|
|
47
|
-
|
|
48
|
-
### Step 3: Filter
|
|
49
|
-
|
|
50
|
-
Exclude:
|
|
51
|
-
- **Bare worktrees** (no branch)
|
|
52
|
-
- **Detached HEAD** (no named branch; roots and detached HEAD: `references/roots.md`)
|
|
53
|
-
- **Protected branches**: `main`, `master`, `develop`, `integration`, `trunk`, `release/*`, `staging`, `production`
|
|
54
|
-
- **Mid-rebase or mid-merge**: check `git -C {path} status` for "rebase in progress" or "merging"
|
|
55
|
-
|
|
56
|
-
### Step 4: Check for Work
|
|
57
|
-
|
|
58
|
-
Each worktree must have commits ahead of base branch. Skip those that are clean/up-to-date.
|
|
59
|
-
|
|
60
|
-
### Step 5: Deduplicate
|
|
61
|
-
|
|
62
|
-
If two worktrees are on the same branch, use only the first worktree's path.
|
|
63
|
-
|
|
64
|
-
### Step 6: Sort
|
|
65
|
-
|
|
66
|
-
Sort by last commit date (most recent first).
|
|
67
|
-
|
|
68
|
-
### Step 7: Return
|
|
69
|
-
|
|
70
|
-
Return list of reviewable worktrees with path, branch, HEAD SHA.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
30
|
## Protected Branches (Canonical List)
|
|
75
31
|
|
|
76
32
|
`main`, `master`, `develop`, `integration`, `trunk`, `release/*`, `staging`, `production`
|
|
@@ -78,15 +34,7 @@ Return list of reviewable worktrees with path, branch, HEAD SHA.
|
|
|
78
34
|
All components (agents, commands, skills) must use this exact list when checking for protected branches.
|
|
79
35
|
The HUD mirrors this list in `TRUNK_BRANCHES`/`TRUNK_BRANCH_PREFIXES`/`isTrunkBranch()` in `src/core/git.ts` — update both together.
|
|
80
36
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
## Multi-Worktree Mode
|
|
37
|
+
## Extended References
|
|
84
38
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
| 0 reviewable worktrees | Error: no reviewable branches found |
|
|
88
|
-
| 1 worktree (common case) | Single-worktree flow, zero behavior change |
|
|
89
|
-
| 2+ worktrees | Report count, process worktrees **sequentially** (one at a time) |
|
|
90
|
-
| 5+ worktrees | Report count and proceed — user manages their worktree count |
|
|
91
|
-
| `--path` flag provided | Use only that worktree, skip discovery |
|
|
92
|
-
| Same branch in 2 worktrees | Deduplicate — review once using first worktree's path |
|
|
39
|
+
- `references/discovery.md` — the 7-step discovery algorithm and multi-worktree mode
|
|
40
|
+
- `references/roots.md` — project data roots and detached HEAD
|