bms-speckit-plugin 4.3.2 → 5.1.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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bms-speckit",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Chain-orchestrated development pipeline with
|
|
3
|
+
"version": "5.1.0",
|
|
4
|
+
"description": "Chain-orchestrated development pipeline with quality control agent. /bms-speckit runs brainstorm → constitution → specify → plan → tasks → analyze → implement → QC (UX/security/deps/code) → merge.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "manoirx"
|
|
7
7
|
},
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: quality-control
|
|
3
|
+
description: Use this agent when implementation is complete and needs a comprehensive quality audit before merge. Covers UX/UI, security, dependency health, and code correctness. Examples:
|
|
4
|
+
|
|
5
|
+
<example>
|
|
6
|
+
Context: The user just finished implementing a feature via the speckit pipeline
|
|
7
|
+
user: "All tasks are implemented, run quality check"
|
|
8
|
+
assistant: "I'll use the quality-control agent to perform a full audit across UX, security, dependencies, and code quality."
|
|
9
|
+
<commentary>
|
|
10
|
+
Implementation is done and needs verification before merge — trigger quality-control agent.
|
|
11
|
+
</commentary>
|
|
12
|
+
</example>
|
|
13
|
+
|
|
14
|
+
<example>
|
|
15
|
+
Context: Step 10 of the bms-speckit chain has been reached
|
|
16
|
+
user: (automatic — chain orchestrator dispatches this agent at step 10)
|
|
17
|
+
assistant: "Running quality control audit: UX/UI review, security scan, dependency check, and code error detection."
|
|
18
|
+
<commentary>
|
|
19
|
+
The chain orchestrator automatically dispatches this agent as the verify & fix step.
|
|
20
|
+
</commentary>
|
|
21
|
+
</example>
|
|
22
|
+
|
|
23
|
+
<example>
|
|
24
|
+
Context: User wants a quality review of existing code
|
|
25
|
+
user: "Review this project for security issues, outdated packages, and UX problems"
|
|
26
|
+
assistant: "I'll use the quality-control agent to run a comprehensive audit."
|
|
27
|
+
<commentary>
|
|
28
|
+
User explicitly asks for multi-dimensional quality review — matches quality-control agent scope.
|
|
29
|
+
</commentary>
|
|
30
|
+
</example>
|
|
31
|
+
|
|
32
|
+
model: inherit
|
|
33
|
+
color: yellow
|
|
34
|
+
tools: ["Read", "Write", "Edit", "Grep", "Glob", "Bash"]
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
You are a senior quality control engineer performing a comprehensive audit of a codebase. You check five dimensions: UX/UI, security, dependency health, code correctness, and accessibility.
|
|
38
|
+
|
|
39
|
+
**Your Core Responsibilities:**
|
|
40
|
+
|
|
41
|
+
1. **Code Error Detection** — Find and fix all build, lint, type, and runtime errors
|
|
42
|
+
2. **Security Audit** — Identify vulnerabilities (OWASP Top 10, injection, auth, secrets)
|
|
43
|
+
3. **Dependency Health** — Check for outdated, vulnerable, or unused packages
|
|
44
|
+
4. **UX/UI Review** — Verify user feedback, error messages, loading states, and responsive design
|
|
45
|
+
5. **Accessibility** — Check for basic a11y compliance (ARIA, contrast, keyboard nav)
|
|
46
|
+
|
|
47
|
+
**Audit Process:**
|
|
48
|
+
|
|
49
|
+
## Phase A: Code Errors (MUST pass before other phases)
|
|
50
|
+
|
|
51
|
+
1. Run the build command (`npm run build`, `tsc`, `python -m py_compile`, etc.)
|
|
52
|
+
2. Run linter (`eslint .`, `flake8`, `ruff check`, etc.)
|
|
53
|
+
3. Run the full test suite (`npm test`, `pytest`, etc.)
|
|
54
|
+
4. For each failure:
|
|
55
|
+
- Read the failing file
|
|
56
|
+
- Identify root cause
|
|
57
|
+
- Fix the error
|
|
58
|
+
- Re-run to confirm fix
|
|
59
|
+
5. Repeat until all three (build + lint + test) pass with zero errors
|
|
60
|
+
|
|
61
|
+
## Phase B: Security Audit
|
|
62
|
+
|
|
63
|
+
1. Run `npm audit` or `pip audit` to check for known vulnerabilities
|
|
64
|
+
2. Search for hardcoded secrets:
|
|
65
|
+
- Grep for patterns: API keys, tokens, passwords, private keys
|
|
66
|
+
- Check `.env` files are in `.gitignore`
|
|
67
|
+
- Check no credentials in committed code
|
|
68
|
+
3. Check for injection vulnerabilities:
|
|
69
|
+
- SQL injection: look for string concatenation in queries
|
|
70
|
+
- XSS: look for unescaped user input in HTML/JSX
|
|
71
|
+
- Command injection: look for unvalidated input in shell commands
|
|
72
|
+
4. Check authentication & authorization:
|
|
73
|
+
- API endpoints have proper auth guards
|
|
74
|
+
- Session handling is secure
|
|
75
|
+
- CORS configuration is appropriate
|
|
76
|
+
5. For each issue found: fix it, don't just report it
|
|
77
|
+
|
|
78
|
+
## Phase C: Dependency Health
|
|
79
|
+
|
|
80
|
+
1. Run `npm outdated` or `pip list --outdated` to find stale packages
|
|
81
|
+
2. Check for:
|
|
82
|
+
- Major version updates available (review changelog for breaking changes)
|
|
83
|
+
- Security patches available (update immediately)
|
|
84
|
+
- Unused dependencies (remove them)
|
|
85
|
+
- Missing lock file (`package-lock.json` or `requirements.txt`)
|
|
86
|
+
3. Update packages that have security patches
|
|
87
|
+
4. Flag major version updates for user review (don't auto-update)
|
|
88
|
+
|
|
89
|
+
## Phase D: UX/UI Review
|
|
90
|
+
|
|
91
|
+
1. Check every user-facing operation has:
|
|
92
|
+
- Loading/progress indication for async operations
|
|
93
|
+
- Actionable error messages (what went wrong + what to do)
|
|
94
|
+
- Success confirmation feedback
|
|
95
|
+
2. Check form handling:
|
|
96
|
+
- Input validation with clear messages
|
|
97
|
+
- Disabled submit during processing
|
|
98
|
+
- Proper error states
|
|
99
|
+
3. Check responsive design (if web):
|
|
100
|
+
- Mobile viewport meta tag
|
|
101
|
+
- Flexible layouts (no fixed widths for main content)
|
|
102
|
+
- Touch targets at least 44px
|
|
103
|
+
4. Check for empty states (no data, first use, error state)
|
|
104
|
+
5. Fix any missing feedback or poor UX patterns
|
|
105
|
+
|
|
106
|
+
## Phase E: Accessibility
|
|
107
|
+
|
|
108
|
+
1. Check images have alt text
|
|
109
|
+
2. Check interactive elements are keyboard accessible
|
|
110
|
+
3. Check form inputs have labels
|
|
111
|
+
4. Check color is not the only indicator of state
|
|
112
|
+
5. Check heading hierarchy is logical (h1 → h2 → h3)
|
|
113
|
+
|
|
114
|
+
**Output Format:**
|
|
115
|
+
|
|
116
|
+
After completing all phases, provide a summary report:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
## Quality Control Report
|
|
120
|
+
|
|
121
|
+
### Code Errors
|
|
122
|
+
- [ ] Build: PASS/FAIL (X errors fixed)
|
|
123
|
+
- [ ] Lint: PASS/FAIL (X errors fixed)
|
|
124
|
+
- [ ] Tests: PASS/FAIL (X failures fixed)
|
|
125
|
+
|
|
126
|
+
### Security
|
|
127
|
+
- [ ] No hardcoded secrets
|
|
128
|
+
- [ ] No injection vulnerabilities
|
|
129
|
+
- [ ] Dependencies have no known CVEs
|
|
130
|
+
- [ ] Auth properly implemented
|
|
131
|
+
|
|
132
|
+
### Dependencies
|
|
133
|
+
- [ ] X packages updated (security patches)
|
|
134
|
+
- [ ] X packages flagged for major update review
|
|
135
|
+
- [ ] X unused packages removed
|
|
136
|
+
|
|
137
|
+
### UX/UI
|
|
138
|
+
- [ ] All operations have user feedback
|
|
139
|
+
- [ ] Error messages are actionable
|
|
140
|
+
- [ ] Loading states present
|
|
141
|
+
- [ ] Empty states handled
|
|
142
|
+
|
|
143
|
+
### Accessibility
|
|
144
|
+
- [ ] Images have alt text
|
|
145
|
+
- [ ] Forms have labels
|
|
146
|
+
- [ ] Keyboard navigation works
|
|
147
|
+
|
|
148
|
+
### Summary
|
|
149
|
+
Total issues found: X
|
|
150
|
+
Total issues fixed: X
|
|
151
|
+
Remaining (needs user review): X
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Rules:**
|
|
155
|
+
- Fix everything you can autonomously — don't just report
|
|
156
|
+
- For major dependency updates that could break things, flag but don't auto-update
|
|
157
|
+
- Run tests after EVERY fix to prevent regressions
|
|
158
|
+
- Commit fixes with descriptive messages
|
|
159
|
+
- If you cannot fix an issue, explain why and what the user should do
|
|
@@ -209,11 +209,14 @@ chain_sequence:
|
|
|
209
209
|
on_failure: continue
|
|
210
210
|
max_retries: 0
|
|
211
211
|
|
|
212
|
-
- step_id:
|
|
212
|
+
- step_id: step_9_implement_with_rolling_qc
|
|
213
213
|
skill_id: speckit.implement
|
|
214
214
|
action: execute_loop
|
|
215
215
|
phase: 2
|
|
216
|
-
description:
|
|
216
|
+
description: >
|
|
217
|
+
Execute tasks with rolling QC — each task goes through implement → inline
|
|
218
|
+
QC (build/lint/test/security) → fix → commit cycle before moving to the
|
|
219
|
+
next task. Catches bugs at the source, not at the end.
|
|
217
220
|
timeout_seconds: 3600
|
|
218
221
|
input:
|
|
219
222
|
tasks_path: "{{step_6_tasks.artifacts}}"
|
|
@@ -231,40 +234,58 @@ chain_sequence:
|
|
|
231
234
|
max_retries: 3
|
|
232
235
|
opinionated_prompts:
|
|
233
236
|
system_context: >
|
|
234
|
-
|
|
235
|
-
Enforce TDD: write and pass tests before marking any task complete.
|
|
236
|
-
Ensure code quality through linting, static analysis, and consistent
|
|
237
|
-
architecture with reusable components and centralized business logic.
|
|
238
|
-
Maintain atomic commits after each successful task.
|
|
239
|
-
After all tasks: invoke speckit.analyze for full validation,
|
|
240
|
-
apply improvements, re-run all tests, confirm zero regression.
|
|
241
|
-
Only output FINISHED after everything is validated.
|
|
237
|
+
For EACH task, execute this rolling QC cycle:
|
|
242
238
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
239
|
+
1. IMPLEMENT — write code following TDD (tests first, then implementation)
|
|
240
|
+
2. INLINE QC — immediately after implementation, run:
|
|
241
|
+
a. Build/compile — fix any type or build errors
|
|
242
|
+
b. Lint — fix all lint errors and warnings
|
|
243
|
+
c. Test suite — run ALL tests (not just new ones), fix any failures
|
|
244
|
+
d. Security quick scan — check for hardcoded secrets, SQL injection,
|
|
245
|
+
XSS, unvalidated input in the code you just wrote
|
|
246
|
+
e. UX check — if UI code was changed, verify error messages are
|
|
247
|
+
actionable, loading states exist, and user feedback is present
|
|
248
|
+
3. FIX — fix every issue found in step 2, then re-run checks
|
|
249
|
+
4. COMMIT — only commit when build + lint + tests all pass with zero errors
|
|
250
|
+
5. NEXT TASK — proceed to the next task
|
|
251
|
+
|
|
252
|
+
Do NOT batch QC at the end. Each task must pass its own QC cycle
|
|
253
|
+
before moving on. This is the rolling review pattern.
|
|
254
|
+
|
|
255
|
+
After ALL tasks complete: invoke speckit.analyze for a full cross-task
|
|
256
|
+
validation pass. Apply improvements, re-run all tests, confirm zero
|
|
257
|
+
regression. Only output FINISHED after everything is validated.
|
|
258
|
+
|
|
259
|
+
- step_id: step_10_final_quality_gate
|
|
260
|
+
agent_id: bms-speckit:quality-control
|
|
261
|
+
action: dispatch_agent
|
|
246
262
|
phase: 2
|
|
247
|
-
description:
|
|
248
|
-
|
|
263
|
+
description: >
|
|
264
|
+
Final comprehensive QC sweep by the quality-control agent. Since inline
|
|
265
|
+
QC already caught per-task issues, this focuses on cross-cutting concerns:
|
|
266
|
+
dependency health, deep security audit, overall UX consistency, and
|
|
267
|
+
accessibility compliance.
|
|
268
|
+
timeout_seconds: 900
|
|
249
269
|
post_action:
|
|
250
270
|
commit: true
|
|
251
|
-
message: "fix(speckit):
|
|
271
|
+
message: "fix(speckit): final QC — security, deps, UX consistency, accessibility"
|
|
252
272
|
push: true
|
|
253
273
|
error_handling:
|
|
254
274
|
on_failure: stop
|
|
255
275
|
max_retries: 3
|
|
256
276
|
opinionated_prompts:
|
|
257
277
|
system_context: >
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
278
|
+
Dispatch the quality-control agent (bms-speckit:quality-control).
|
|
279
|
+
Inline QC already caught per-task build/lint/test issues during
|
|
280
|
+
implementation. This final sweep focuses on cross-cutting concerns:
|
|
281
|
+
A. Security deep scan — npm/pip audit, auth flow review, CORS, secrets
|
|
282
|
+
B. Dependencies — outdated packages, vulnerable deps, unused packages
|
|
283
|
+
C. UX consistency — consistent error handling, feedback patterns across
|
|
284
|
+
all features, empty states, responsive design
|
|
285
|
+
D. Accessibility — alt text, form labels, keyboard nav, heading hierarchy
|
|
286
|
+
E. Integration check — verify all components work together end-to-end
|
|
287
|
+
Fix everything possible. Flag major dependency updates for user review.
|
|
288
|
+
Only proceed to merge when all checks pass.
|
|
268
289
|
|
|
269
290
|
- step_id: step_11_merge
|
|
270
291
|
skill_id: internal.git_merge_to_main
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bms-speckit-plugin",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "Chain-orchestrated development pipeline: /bms-speckit takes requirements and runs brainstorm → constitution → specify → plan → tasks → analyze → implement → verify with per-step error handling",
|
|
5
5
|
"files": [
|
|
6
6
|
".claude-plugin/",
|
|
7
7
|
"skills/",
|
|
8
|
-
"blueprints/"
|
|
8
|
+
"blueprints/",
|
|
9
|
+
"agents/"
|
|
9
10
|
],
|
|
10
11
|
"keywords": [
|
|
11
12
|
"claude-code-plugin",
|
|
@@ -92,29 +92,35 @@ After all steps complete, return: the feature name, number of tasks created, and
|
|
|
92
92
|
### Step 8 — Compact `[on_failure: CONTINUE]`
|
|
93
93
|
- **Action:** Run `/compact` to free context window before implementation.
|
|
94
94
|
|
|
95
|
-
### Step 9 — Implement
|
|
95
|
+
### Step 9 — Implement with Rolling QC `[on_failure: CONTINUE | max_retries: 3]`
|
|
96
96
|
- **Engine:** ralph-loop
|
|
97
97
|
- **Input:** Use the **tasks.md path returned by the Phase 1 subagent** (e.g. `specs/my-feature/tasks.md`). Replace `{TASKS_PATH}` below with the actual path.
|
|
98
98
|
- **Completion promise:** `FINISHED`
|
|
99
99
|
- **Max iterations:** 10
|
|
100
|
-
- **
|
|
100
|
+
- **Pattern:** Rolling Review — each task gets its own QC cycle before moving to the next
|
|
101
|
+
- **Per-task cycle:**
|
|
102
|
+
1. **IMPLEMENT** — write code following TDD (tests first, then implementation)
|
|
103
|
+
2. **INLINE QC** — immediately run: build, lint, ALL tests, security quick scan, UX check
|
|
104
|
+
3. **FIX** — fix every issue found, re-run checks
|
|
105
|
+
4. **COMMIT** — only commit when build + lint + tests pass with zero errors
|
|
106
|
+
5. **NEXT** — move to next task
|
|
101
107
|
- **Action:** Run:
|
|
102
108
|
|
|
103
|
-
`/ralph-loop:ralph-loop "systematically execute speckit.implement via the Skill tool to complete every task defined in {TASKS_PATH} with strict adherence to specification requirements
|
|
104
|
-
|
|
105
|
-
### Step 10 —
|
|
106
|
-
- **
|
|
107
|
-
- **
|
|
108
|
-
- **
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
-
|
|
117
|
-
- **Post-action:** Commit all fixes and push. Message: `fix(speckit):
|
|
109
|
+
`/ralph-loop:ralph-loop "systematically execute speckit.implement via the Skill tool to complete every task defined in {TASKS_PATH} with strict adherence to specification requirements. IMPORTANT: apply rolling QC after EACH task — after implementing a task run build and fix build errors, run linter and fix lint errors, run ALL tests (not just new ones) and fix failures, check for hardcoded secrets and injection vulnerabilities in code you just wrote, verify UI code has actionable error messages and loading states — only commit when build plus lint plus tests all pass with zero errors, then proceed to next task. Do NOT batch QC at the end. Maintain atomic commits after each successful task with clear traceability, avoid requesting confirmation and proceed autonomously, once all tasks are implemented invoke speckit.analyze via the Skill tool to perform a full validation pass, automatically apply all recommended improvements or corrections, re-run all tests to confirm stability and zero regression, and only output <promise>FINISHED</promise> after every task is fully completed, validated, and aligned with production-grade quality standards" --completion-promise "FINISHED" --max-iterations 10`
|
|
110
|
+
|
|
111
|
+
### Step 10 — Final Quality Gate `[on_failure: STOP | max_retries: 3]`
|
|
112
|
+
- **Agent:** Dispatch `bms-speckit:quality-control` agent
|
|
113
|
+
- **Purpose:** Final comprehensive sweep. Since inline QC already caught per-task issues, this focuses on **cross-cutting concerns** that can only be detected across the full codebase.
|
|
114
|
+
- **Timeout:** 900s
|
|
115
|
+
- **Focus areas:**
|
|
116
|
+
- **A. Security deep scan** — `npm audit` / `pip audit`, auth flow review, CORS, secrets across all files
|
|
117
|
+
- **B. Dependencies** — outdated packages, vulnerable deps, unused packages
|
|
118
|
+
- **C. UX consistency** — consistent error handling and feedback patterns across ALL features, empty states, responsive design
|
|
119
|
+
- **D. Accessibility** — alt text, form labels, keyboard nav, heading hierarchy
|
|
120
|
+
- **E. Integration check** — verify all components work together end-to-end
|
|
121
|
+
- The agent fixes everything it can. Major dependency updates are flagged for user review.
|
|
122
|
+
- Only proceed to merge when the agent reports all checks pass.
|
|
123
|
+
- **Post-action:** Commit all fixes and push. Message: `fix(speckit): final QC — security, deps, UX consistency, accessibility`
|
|
118
124
|
|
|
119
125
|
### Step 11 — Merge to Main `[on_failure: STOP]`
|
|
120
126
|
- **Action:** Switch to main branch, merge the feature branch (fast-forward if possible), push main to remote, then clean up the feature branch.
|
|
@@ -128,12 +134,12 @@ After all steps complete, return: the feature name, number of tasks created, and
|
|
|
128
134
|
Phase 1 (subagent) Phase 2 (main context)
|
|
129
135
|
────────────────────────────── ──────────────────────────────
|
|
130
136
|
Step 1: brainstorm ──STOP── commit Step 8: compact
|
|
131
|
-
+ knowledge search (hosxp) Step 9: implement
|
|
132
|
-
Step 2: constitution ─STOP─┐
|
|
133
|
-
Step 3: CLAUDE.md sync ───┘ commit
|
|
134
|
-
Step 4: specify ──────STOP── commit
|
|
135
|
-
+ knowledge search (hosxp)
|
|
136
|
-
Step 5: plan ─────────STOP── commit
|
|
137
|
-
Step 6: tasks ────────STOP── commit
|
|
138
|
-
Step 7: analyze ──────────── commit
|
|
137
|
+
+ knowledge search (hosxp) Step 9: implement + rolling QC
|
|
138
|
+
Step 2: constitution ─STOP─┐ ┌─ implement task ─┐
|
|
139
|
+
Step 3: CLAUDE.md sync ───┘ commit │ inline QC │
|
|
140
|
+
Step 4: specify ──────STOP── commit │ fix → commit │
|
|
141
|
+
+ knowledge search (hosxp) └─ next task ──────┘
|
|
142
|
+
Step 5: plan ─────────STOP── commit Step 10: final QC agent ── commit
|
|
143
|
+
Step 6: tasks ────────STOP── commit (security/deps/UX/a11y)
|
|
144
|
+
Step 7: analyze ──────────── commit Step 11: merge to main + push
|
|
139
145
|
```
|