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.3.0",
4
- "description": "Chain-orchestrated development pipeline with per-step error handling. /bms-speckit runs brainstorm → constitution → specify → plan → tasks → analyze → implement → verify.",
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: step_9_implement
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: Execute all tasks with TDD workflow via ralph-loop
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
- Systematically execute speckit.implement to complete every task.
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
- - step_id: step_10_verify_and_fix
244
- skill_id: speckit.analyze
245
- action: execute
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: Run all tests, lint, and build — find and fix all coding errors
248
- timeout_seconds: 600
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): verify and fix all coding errors"
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
- Final quality gate. This step MUST find and fix all coding errors:
259
- 1. Run the full test suite — fix any failing tests
260
- 2. Run linter (eslint/flake8/etc.) fix all lint errors and warnings
261
- 3. Run build/compilefix any type errors or build failures
262
- 4. Run static analysis if available fix flagged issues
263
- 5. Check for runtime errors by reviewing error-prone patterns
264
- 6. Verify all imports resolve and no dead code references exist
265
- 7. Re-run all checks after fixes to confirm zero errors
266
- Repeat until all checks pass cleanly. Do NOT skip or suppress errors.
267
- Only proceed to merge when build + tests + lint all pass with zero errors.
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": "4.3.2",
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 (loop) `[on_failure: CONTINUE | max_retries: 3]`
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
- - **Commit strategy:** Atomic commit after each completed task
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, enforce TDD workflow including writing and passing unit, integration, and end-to-end tests before marking any task complete, ensure code quality through linting, static analysis, and consistent architecture with reusable components and centralized business logic, 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`
104
-
105
- ### Step 10 — Verify & Fix `[on_failure: STOP | max_retries: 3]`
106
- - **Purpose:** Find and fix ALL coding errors. This is the final quality gate before merge.
107
- - **Timeout:** 600s
108
- - **Actions (repeat until all pass cleanly):**
109
- 1. Run the full test suite — fix any failing tests
110
- 2. Run linter (eslint/flake8/etc.)fix all lint errors and warnings
111
- 3. Run build/compile fix any type errors or build failures
112
- 4. Run static analysis if available fix flagged issues
113
- 5. Check for runtime errors by reviewing error-prone patterns
114
- 6. Verify all imports resolve and no dead code references exist
115
- 7. Re-run all checks after fixes to confirm zero errors
116
- - **Do NOT** skip or suppress errors. Repeat until build + tests + lint all pass with zero errors.
117
- - **Post-action:** Commit all fixes and push. Message: `fix(speckit): verify and fix all coding errors`
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 (ralph-loop)
132
- Step 2: constitution ─STOP─┐ commit per task
133
- Step 3: CLAUDE.md sync ───┘ commit Step 10: verify & fix ── commit
134
- Step 4: specify ──────STOP── commit Step 11: merge to main + push
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
  ```