devflow-kit 3.2.0 → 3.4.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 +34 -0
- package/README.md +1 -1
- package/dist/agents/code.md +330 -0
- package/{src/assets → dist}/agents/design.md +11 -1
- package/{src/assets → dist}/agents/diagnose.md +17 -13
- package/dist/agents/git.md +29 -56
- package/{src/assets → dist}/agents/knowledge.md +8 -5
- package/{src/assets → dist}/agents/research.md +21 -2
- package/{src/assets → dist}/agents/review.md +18 -7
- package/{src/assets → dist}/agents/scrutinize.md +35 -11
- package/dist/agents/skim.md +148 -0
- package/{src/assets → dist}/agents/triage.md +8 -2
- package/dist/cli/commands/init.js +62 -0
- package/dist/cli/commands/learning.js +63 -8
- package/dist/cli/commands/uninstall.js +42 -1
- package/dist/commands/bug-analysis.md +30 -8
- package/dist/commands/code-review.md +142 -61
- package/dist/commands/debug.md +15 -13
- package/dist/commands/dynamic-build.md +176 -130
- package/dist/commands/dynamic-plan.md +31 -19
- package/dist/commands/dynamic-profile.md +27 -13
- package/dist/commands/dynamic-tickets.md +28 -14
- package/dist/commands/explore.md +16 -14
- package/dist/commands/implement.md +163 -158
- package/dist/commands/plan.md +37 -24
- package/dist/commands/release.md +69 -4
- package/dist/commands/research.md +33 -11
- package/dist/commands/resolve.md +61 -47
- package/dist/commands/self-review.md +50 -32
- package/dist/core/agent-models.js +53 -7
- package/dist/core/assets.js +55 -10
- package/dist/core/claude-md-audit.js +190 -0
- package/dist/core/feature-switch.js +20 -1
- package/dist/core/flags.js +28 -0
- package/dist/core/fs-atomic.js +8 -3
- package/dist/core/learning-tuning-config.js +8 -0
- package/dist/core/learning-variants.js +213 -0
- package/dist/core/manifest.js +62 -0
- package/dist/core/mds-variants.js +38 -1
- package/dist/core/plugins.js +78 -11
- package/{src/assets → dist/learning-off}/agents/code.md +77 -28
- package/dist/learning-off/agents/design.md +119 -0
- package/dist/learning-off/agents/diagnose.md +210 -0
- package/dist/learning-off/agents/knowledge.md +90 -0
- package/dist/learning-off/agents/research.md +149 -0
- package/dist/learning-off/agents/review.md +228 -0
- package/dist/learning-off/agents/scrutinize.md +117 -0
- package/{src/assets → dist/learning-off}/agents/skim.md +5 -10
- package/dist/learning-off/agents/triage.md +163 -0
- package/dist/learning-off/commands/bug-analysis.md +420 -0
- package/dist/learning-off/commands/code-review.md +525 -0
- package/dist/learning-off/commands/debug.md +294 -0
- package/dist/learning-off/commands/dynamic-build.md +1255 -0
- package/dist/learning-off/commands/dynamic-plan.md +424 -0
- package/dist/learning-off/commands/dynamic-profile.md +214 -0
- package/dist/learning-off/commands/dynamic-tickets.md +632 -0
- package/dist/learning-off/commands/explore.md +210 -0
- package/dist/learning-off/commands/implement.md +808 -0
- package/dist/learning-off/commands/plan.md +664 -0
- package/dist/learning-off/commands/release.md +310 -0
- package/dist/learning-off/commands/research.md +222 -0
- package/dist/learning-off/commands/resolve.md +837 -0
- package/dist/learning-off/commands/self-review.md +266 -0
- package/dist/skills/git/references/tracker/_contract.md +33 -0
- package/dist/skills/git/references/tracker/github/fetch-issue.md +2 -0
- package/dist/skills/git/references/tracker/github/fetch-issues-batch.md +2 -0
- package/dist/skills/git/references/tracker/github/gather-release-evidence.md +5 -1
- package/dist/skills/git/references/tracker/github/post-wave-report.md +2 -0
- package/dist/skills/git/references/tracker/github/setup-task.md +12 -0
- package/dist/skills/git/references/tracker/jira/associate-release.md +1 -1
- package/dist/skills/git/references/tracker/jira/fetch-issue.md +2 -0
- package/dist/skills/git/references/tracker/jira/fetch-issues-batch.md +2 -0
- package/dist/skills/git/references/tracker/jira/gather-release-evidence.md +5 -1
- package/dist/skills/git/references/tracker/jira/post-wave-report.md +2 -0
- package/dist/skills/git/references/tracker/jira/setup-task.md +14 -2
- package/dist/skills/git/references/tracker/linear/associate-release.md +1 -1
- package/dist/skills/git/references/tracker/linear/fetch-issue.md +2 -0
- package/dist/skills/git/references/tracker/linear/fetch-issues-batch.md +2 -0
- package/dist/skills/git/references/tracker/linear/gather-release-evidence.md +5 -1
- package/dist/skills/git/references/tracker/linear/post-wave-report.md +2 -0
- package/dist/skills/git/references/tracker/linear/setup-task.md +14 -2
- package/dist/targets/claude-code/installer.js +72 -36
- package/dist/targets/claude-code/language-stamp.js +185 -0
- package/dist/targets/claude-code/learning-install.js +489 -0
- package/package.json +1 -1
- package/src/assets/agents/code.mds +339 -0
- package/src/assets/agents/design.mds +149 -0
- package/src/assets/agents/diagnose.mds +225 -0
- package/src/assets/agents/evaluate.md +12 -25
- package/src/assets/agents/git.mds +29 -56
- package/src/assets/agents/knowledge.mds +125 -0
- package/src/assets/agents/learning.md +4 -6
- package/src/assets/agents/research.mds +176 -0
- package/src/assets/agents/review.mds +286 -0
- package/src/assets/agents/scrutinize.mds +132 -0
- package/src/assets/agents/simplify.md +20 -0
- package/src/assets/agents/skim.mds +161 -0
- package/src/assets/agents/synthesize.md +12 -0
- package/src/assets/agents/test.md +2 -2
- package/src/assets/agents/triage.mds +194 -0
- package/src/assets/agents/validate.md +15 -8
- package/src/assets/commands/_partials/_compliance.mds +5 -4
- package/src/assets/commands/_partials/_decisions.mds +31 -0
- package/src/assets/commands/_partials/_engine.mds +29 -24
- package/src/assets/commands/_partials/_knowledge.mds +26 -13
- package/src/assets/commands/_partials/_plan_contract.mds +1 -1
- package/src/assets/commands/_partials/_preamble.mds +33 -9
- package/src/assets/commands/_partials/_publication.mds +5 -4
- package/src/assets/commands/_partials/_settings.mds +13 -5
- package/src/assets/commands/_partials/_wave.mds +16 -6
- package/src/assets/commands/bug-analysis.mds +24 -2
- package/src/assets/commands/code-review.mds +148 -45
- package/src/assets/commands/debug.mds +17 -1
- package/src/assets/commands/dynamic-build.mds +144 -65
- package/src/assets/commands/dynamic-plan.mds +36 -6
- package/src/assets/commands/dynamic-profile.mds +9 -1
- package/src/assets/commands/dynamic-tickets.mds +16 -2
- package/src/assets/commands/explore.mds +27 -1
- package/src/assets/commands/implement.mds +171 -138
- package/src/assets/commands/plan.mds +47 -8
- package/src/assets/commands/{release.md → release.mds} +27 -24
- package/src/assets/commands/research.mds +28 -4
- package/src/assets/commands/resolve.mds +69 -17
- package/src/assets/commands/self-review.mds +43 -13
- package/src/assets/mds/tracker/_common.mds +1 -1
- package/src/assets/mds/tracker/_contract.mds +72 -0
- package/src/assets/mds/tracker/_github.mds +13 -2
- package/src/assets/mds/tracker/_jira.mds +17 -5
- package/src/assets/mds/tracker/_linear.mds +17 -5
- package/src/assets/mds/tracker/_mcp.mds +2 -2
- package/src/assets/mds/tracker/_steps.mds +97 -0
- package/src/assets/rules/context-economy.md +10 -0
- package/src/assets/rules/go.md +1 -0
- package/src/assets/rules/java.md +1 -0
- package/src/assets/rules/python.md +1 -0
- package/src/assets/rules/rust.md +1 -0
- package/src/assets/rules/typescript.md +1 -0
- package/src/assets/scripts/ci-wait.cjs +636 -0
- package/src/assets/scripts/claude-md-audit.cjs +611 -0
- package/src/assets/scripts/hooks/assets/orchestrator-charter.md +2 -3
- package/src/assets/scripts/hooks/background-memory-update +290 -9
- package/src/assets/scripts/hooks/json-helper.cjs +13 -5
- package/src/assets/scripts/hooks/json-parse +34 -10
- package/src/assets/scripts/hooks/session-start-context +315 -7
- 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 +9 -43
- 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/feature-knowledge/SKILL.md +43 -12
- 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 +10 -13
- 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: boundary-validation
|
|
3
|
-
description: This skill should be used when the user asks to "validate input", "parse request data", "
|
|
3
|
+
description: This skill should be used when the user asks to "validate input", "parse request data", "add Zod schema", or creates API endpoints and system boundaries.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob, AskUserQuestion
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: complexity
|
|
3
|
-
description: This skill should be used when reviewing code for
|
|
3
|
+
description: This skill should be used when reviewing code for deep nesting or long functions.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: compliance
|
|
3
|
-
description: This skill should be used when reviewing code
|
|
3
|
+
description: This skill should be used when reviewing code that handles PII, payments or health data.
|
|
4
4
|
user-invocable: false
|
|
5
5
|
allowed-tools: Read, Grep, Glob
|
|
6
6
|
---
|
|
@@ -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
|
---
|
|
@@ -102,16 +102,20 @@ updated: {ISO date}
|
|
|
102
102
|
|
|
103
103
|
# {Feature Area Name}
|
|
104
104
|
|
|
105
|
+
## Rules
|
|
106
|
+
- **KB-AP-1** [one-line anti-pattern or gotcha: what to avoid, and the consequence]
|
|
107
|
+
- **KB-INV-1** [one-line invariant that must hold]
|
|
108
|
+
|
|
105
109
|
## Overview
|
|
106
110
|
[1-2 paragraphs: what this knowledge covers and why it matters for this codebase]
|
|
107
111
|
|
|
108
112
|
## [Main Sections — vary by category, see Category Templates below]
|
|
109
113
|
|
|
110
114
|
## Anti-Patterns
|
|
111
|
-
[
|
|
115
|
+
[The longer explanation of each anti-pattern, headed by its ID — never a restatement of the Rules bullet]
|
|
112
116
|
|
|
113
117
|
## Gotchas
|
|
114
|
-
[Non-obvious behaviors, edge cases, things that break silently]
|
|
118
|
+
[Non-obvious behaviors, edge cases, things that break silently — headed by the ID of the Rules bullet each explains]
|
|
115
119
|
|
|
116
120
|
## Key Files
|
|
117
121
|
[Most important files with one-line descriptions]
|
|
@@ -120,6 +124,23 @@ updated: {ISO date}
|
|
|
120
124
|
[Links to other feature knowledge entries and key source files — never an ADR/PF ID]
|
|
121
125
|
```
|
|
122
126
|
|
|
127
|
+
### Rules Section
|
|
128
|
+
|
|
129
|
+
`## Rules` comes first, after the title: the anti-patterns, gotchas and invariants of the feature area as one-line bullets, in about 3–5K characters. A bullet fits one line and never starts with `## `.
|
|
130
|
+
|
|
131
|
+
- **IDs**: anti-pattern and gotcha bullets take `KB-AP-n`; invariant bullets take `KB-INV-n`. Numbers are unique within a KB. A bullet keeps its ID across rewrites; a removed bullet's ID is retired and never reused. A citation names the slug and the ID together, as `{slug} KB-AP-n`; a bare ID is never cited.
|
|
132
|
+
- **Explanations**: `## Anti-Patterns` and `## Gotchas` stay below Rules as the longer explanations, each headed by the IDs it explains.
|
|
133
|
+
- **No volatile numbers**: a volatile number is a count, size, line number, version or threshold that changes when the code changes. Where a value matters, name the test or constant that pins it. Bullet IDs are not volatile numbers.
|
|
134
|
+
- **Legacy KBs**: a KB without `## Rules` is valid until curated. Readers take one to three entries from its Anti-Patterns or Gotchas, cited by section name, with the KB path and heading index.
|
|
135
|
+
|
|
136
|
+
### Size Budget
|
|
137
|
+
|
|
138
|
+
Per KB: target 30,000 characters, ceiling 40,000. An index line is at most 300 characters and a description at most 220, so slug, areas and description fit one line. **Curate, never truncate**: reword or consolidate, and nothing is cut or dropped to meet the budget. Split into focused sub-knowledge bases (each with its own index entry) only when curation cannot bring a KB under the ceiling.
|
|
139
|
+
|
|
140
|
+
### Refreshing an Existing KB
|
|
141
|
+
|
|
142
|
+
When `EXISTING_KB` is provided, change only the sections the new work touches, and add or update Rules bullets for what changed. Never renumber, and never rewrite untouched sections to meet the budget. A KB still above the ceiling after a refresh is written as it stands, and the final message says so.
|
|
143
|
+
|
|
123
144
|
### Category Templates
|
|
124
145
|
|
|
125
146
|
Use the matching template as your main sections. Anti-Patterns, Gotchas, Key Files, and Related are shared across all categories.
|
|
@@ -159,6 +180,7 @@ The `description` field is how this feature knowledge entry gets discovered. It
|
|
|
159
180
|
- Start with "Use when"
|
|
160
181
|
- Name specific scenarios where this knowledge applies
|
|
161
182
|
- Include keywords a developer would search for
|
|
183
|
+
- Stay within 220 characters
|
|
162
184
|
|
|
163
185
|
Good: `"Use when adding a new vendor integration, implementing API clients, or connecting to external services. Keywords: integration, vendor, API client, webhook."`
|
|
164
186
|
Bad: `"Integration stuff"`
|
|
@@ -205,7 +227,7 @@ Never include bare code snippets without context.
|
|
|
205
227
|
| No code examples at all | Insufficient actionable guidance |
|
|
206
228
|
| Examples without inline comments | Missing required context |
|
|
207
229
|
| "In the future, we might..." | Speculative — remove it |
|
|
208
|
-
|
|
|
230
|
+
| Over 40,000 characters, or volatile numbers in Rules | Curate it; name the pinning test or constant instead of a count |
|
|
209
231
|
| No cross-references in Related | Isolated knowledge island |
|
|
210
232
|
|
|
211
233
|
---
|
|
@@ -228,7 +250,8 @@ Run through this before writing. If any check fails, go back and fix it.
|
|
|
228
250
|
**Structure:**
|
|
229
251
|
- [ ] Category is correct and main sections follow the matching template
|
|
230
252
|
- [ ] Description field starts with "Use when" and includes keywords
|
|
231
|
-
- [ ]
|
|
253
|
+
- [ ] `## Rules` comes first: one-line bullets with `KB-AP-n` / `KB-INV-n` IDs, about 3–5K characters, no volatile numbers
|
|
254
|
+
- [ ] File within the 40,000-character ceiling (curate, never truncate); description at most 220 characters
|
|
232
255
|
|
|
233
256
|
**Connections:**
|
|
234
257
|
- [ ] Cross-references to related feature knowledge entries in Related section; decisions and pitfalls stated in words, with no ADR/PF ID anywhere in the file
|
|
@@ -249,10 +272,10 @@ After writing KNOWLEDGE.md, update the index cache directly:
|
|
|
249
272
|
- **{slug}** — {areas} — {Use-when description}
|
|
250
273
|
```
|
|
251
274
|
|
|
252
|
-
Where:
|
|
275
|
+
The whole line is at most 300 characters; reword a longer one, never cut it. Where:
|
|
253
276
|
- `{slug}` matches the `feature:` frontmatter field
|
|
254
277
|
- `{areas}` is a comma-separated summary of the `directories:` frontmatter field
|
|
255
|
-
- `{Use-when description}` is the `description:` frontmatter field value (the full "Use when..." sentence)
|
|
278
|
+
- `{Use-when description}` is the `description:` frontmatter field value (the full "Use when..." sentence, at most 220 characters)
|
|
256
279
|
|
|
257
280
|
If `index.md` does not exist, create it with just this line. If the file already has an entry for this slug, replace that line in-place. This is the discoverable cache read by `knowledge_load()` — the KNOWLEDGE.md frontmatter is always authoritative.
|
|
258
281
|
|
|
@@ -275,9 +298,17 @@ updated: 2026-04-30
|
|
|
275
298
|
|
|
276
299
|
# Third-Party Integrations
|
|
277
300
|
|
|
301
|
+
## Rules
|
|
302
|
+
|
|
303
|
+
- **KB-AP-1** Fetch logic never lives in a command file: it breaks the lib/command split and cannot be tested alone.
|
|
304
|
+
- **KB-AP-2** URLs never live in lib modules: they go through `config.ts`.
|
|
305
|
+
- **KB-AP-3** A lib module never calls `showError()`: lib modules throw, commands catch and display.
|
|
306
|
+
- **KB-AP-4** `spawn` needs the binary on PATH: detect `ENOENT` and give an install URL.
|
|
307
|
+
- **KB-INV-1** Every external constant lives in `src/lib/config.ts`.
|
|
308
|
+
|
|
278
309
|
## Overview
|
|
279
310
|
|
|
280
|
-
This project integrates with external systems
|
|
311
|
+
This project integrates with external systems by spawning CLI processes, fetching files from remote registries, and writing to directories that AI editors watch. Each integration lives in its own module under `src/lib/` and is wired into a command in `src/commands/`. All external constants are centralized in `src/lib/config.ts`.
|
|
281
312
|
|
|
282
313
|
The key cross-cutting pattern is the separation between lib modules (which integrate) and commands (which orchestrate). Violating this creates coupling that breaks the error handling model.
|
|
283
314
|
|
|
@@ -289,7 +320,7 @@ The key cross-cutting pattern is the separation between lib modules (which integ
|
|
|
289
320
|
|
|
290
321
|
## Standard Structure
|
|
291
322
|
|
|
292
|
-
Every integration follows the same file organization. This example shows the pattern that
|
|
323
|
+
Every integration follows the same file organization. This example shows the pattern that every existing integration (Claude CLI, GitHub, AI editors) follows:
|
|
293
324
|
|
|
294
325
|
```
|
|
295
326
|
src/lib/
|
|
@@ -309,13 +340,13 @@ All constants use `SCREAMING_SNAKE_CASE` with a descriptive prefix. If a value c
|
|
|
309
340
|
|
|
310
341
|
## Anti-Patterns
|
|
311
342
|
|
|
312
|
-
- **
|
|
313
|
-
- **
|
|
314
|
-
- **
|
|
343
|
+
- **KB-AP-1, putting fetch logic in a command file** — breaks the lib/command separation and makes the integration untestable in isolation.
|
|
344
|
+
- **KB-AP-2, hardcoding URLs in lib modules** — always use `config.ts`. Scattered strings become stale and hard to find.
|
|
345
|
+
- **KB-AP-3, calling `showError()` from a lib module** — lib modules throw; commands catch and display.
|
|
315
346
|
|
|
316
347
|
## Gotchas
|
|
317
348
|
|
|
318
|
-
- `spawn` requires the binary on PATH. If integrating a tool that may not be globally installed, detect `ENOENT` and provide an install URL.
|
|
349
|
+
- **KB-AP-4**: `spawn` requires the binary on PATH. If integrating a tool that may not be globally installed, detect `ENOENT` and provide an install URL.
|
|
319
350
|
- Temp files use `Date.now()`. If two processes run simultaneously, add a random suffix to avoid collisions.
|
|
320
351
|
|
|
321
352
|
## Key Files
|
|
@@ -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,12 +26,12 @@ 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.
|
|
33
33
|
|
|
34
|
-
If `FEATURE_KNOWLEDGE` is provided, verify implementation respects
|
|
34
|
+
If `FEATURE_KNOWLEDGE` is provided (Rules bullets and the KB path, no heading index), verify implementation respects each bullet's anti-pattern, gotcha or invariant; Read a KB section from its path for the architecture. Flag deviations as P0-Design issues when the documented pattern is clearly intentional.
|
|
35
35
|
|
|
36
36
|
### P0 - Functionality
|
|
37
37
|
Does the code work? Happy path, edge cases (null, empty, boundary), no race conditions.
|
|
@@ -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
|
---
|