bms-speckit-plugin 6.8.0 → 6.10.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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bms-speckit",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.10.0",
|
|
4
4
|
"description": "Chain-orchestrated development pipeline with 12-step autonomous workflow (brainstorm → research → constitution → specify → plan → tasks → analyze → implement with rolling QC → final quality gate → merge) and 9-dimension QC agent (code errors, security incl. SQL parameterization, deps, UX/UI, accessibility, deployment artifacts, cross-DB compatibility, real-DB integration testing, HOSxP business logic validation, brand/layout polish). Runs autonomously — never prompts for clarification.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "manoirx"
|
|
@@ -250,17 +250,7 @@ chain_sequence:
|
|
|
250
250
|
|
|
251
251
|
# ── Phase 2: Implementation (main context) ────────────────────────────────
|
|
252
252
|
|
|
253
|
-
- step_id:
|
|
254
|
-
skill_id: internal.compact
|
|
255
|
-
action: execute
|
|
256
|
-
phase: 2
|
|
257
|
-
description: Free context window before implementation
|
|
258
|
-
timeout_seconds: 30
|
|
259
|
-
error_handling:
|
|
260
|
-
on_failure: continue
|
|
261
|
-
max_retries: 0
|
|
262
|
-
|
|
263
|
-
- step_id: step_10_implement_with_rolling_qc
|
|
253
|
+
- step_id: step_9_implement_with_rolling_qc
|
|
264
254
|
skill_id: speckit.implement
|
|
265
255
|
action: execute_loop
|
|
266
256
|
phase: 2
|
|
@@ -320,7 +310,7 @@ chain_sequence:
|
|
|
320
310
|
validation pass. Apply improvements, re-run all tests, confirm zero
|
|
321
311
|
regression. Only output FINISHED after everything is validated.
|
|
322
312
|
|
|
323
|
-
- step_id:
|
|
313
|
+
- step_id: step_10_final_quality_gate
|
|
324
314
|
agent_id: bms-speckit:quality-control
|
|
325
315
|
action: dispatch_agent
|
|
326
316
|
phase: 2
|
|
@@ -355,7 +345,7 @@ chain_sequence:
|
|
|
355
345
|
Proceed to merge unless unfixed build errors, test failures, or
|
|
356
346
|
critical security vulnerabilities remain.
|
|
357
347
|
|
|
358
|
-
- step_id:
|
|
348
|
+
- step_id: step_11_merge
|
|
359
349
|
skill_id: internal.git_merge_to_main
|
|
360
350
|
action: execute
|
|
361
351
|
phase: 2
|
|
@@ -396,6 +386,6 @@ metadata:
|
|
|
396
386
|
reason: Preserve main context window for implementation
|
|
397
387
|
phase_2:
|
|
398
388
|
name: Implementation & Verification & Merge
|
|
399
|
-
steps: [step_9 through
|
|
389
|
+
steps: [step_9 through step_11]
|
|
400
390
|
execution: main_context
|
|
401
391
|
reason: Implementation needs full tool access and ralph-loop
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bms-speckit-plugin",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.10.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/",
|
|
@@ -48,10 +48,9 @@ TaskCreate: "Step 5: Specify — feature specification"
|
|
|
48
48
|
TaskCreate: "Step 6: Plan — implementation plan"
|
|
49
49
|
TaskCreate: "Step 7: Tasks — task list"
|
|
50
50
|
TaskCreate: "Step 8: Analyze — consistency check"
|
|
51
|
-
TaskCreate: "Step 9:
|
|
52
|
-
TaskCreate: "Step 10:
|
|
53
|
-
TaskCreate: "Step 11:
|
|
54
|
-
TaskCreate: "Step 12: Merge to main"
|
|
51
|
+
TaskCreate: "Step 9: Implement with rolling QC"
|
|
52
|
+
TaskCreate: "Step 10: Final quality gate"
|
|
53
|
+
TaskCreate: "Step 11: Merge to main"
|
|
55
54
|
```
|
|
56
55
|
|
|
57
56
|
Then output a message to the user:
|
|
@@ -74,14 +73,14 @@ You are running the BMS Speckit specification and planning chain. Execute each s
|
|
|
74
73
|
|
|
75
74
|
**IMPORTANT — Progress reporting:** Before starting each step, output a progress message to the user in this format:
|
|
76
75
|
|
|
77
|
-
`[Step N/
|
|
76
|
+
`[Step N/11] step_name — description...`
|
|
78
77
|
|
|
79
78
|
After completing each step, output:
|
|
80
79
|
|
|
81
|
-
`[Step N/
|
|
80
|
+
`[Step N/11] DONE — brief result summary`
|
|
82
81
|
|
|
83
82
|
### Step 1 — Brainstorm `[on_failure: STOP]`
|
|
84
|
-
- **Progress:** Output `[Step 1/
|
|
83
|
+
- **Progress:** Output `[Step 1/11] Brainstorm — exploring requirements and design...`
|
|
85
84
|
- **Skill:** `superpowers.brainstorm`
|
|
86
85
|
- **Input:** "$ARGUMENTS"
|
|
87
86
|
- **Purpose:** Explore intent, requirements, design alternatives, and edge cases
|
|
@@ -89,10 +88,10 @@ After completing each step, output:
|
|
|
89
88
|
- **Output:** Detailed specification document
|
|
90
89
|
- **Timeout:** 300s
|
|
91
90
|
- **Post-action:** Commit all files and push. Message: `feat(speckit): brainstorm — explore requirements and design`
|
|
92
|
-
- **Done:** Output `[Step 1/
|
|
91
|
+
- **Done:** Output `[Step 1/11] DONE — brainstorm complete`
|
|
93
92
|
|
|
94
93
|
### Step 2 — Research `[on_failure: CONTINUE]`
|
|
95
|
-
- **Progress:** Output `[Step 2/
|
|
94
|
+
- **Progress:** Output `[Step 2/11] Research — surveying best practices and technologies...`
|
|
96
95
|
- **Purpose:** Research external best practices, proven patterns, recommended libraries/frameworks, and informative reference material relevant to the user's requirement. This grounds the pipeline in current industry knowledge before specification begins.
|
|
97
96
|
- **Tools:** Use `WebSearch` and `mcp__plugin_context7_context7__resolve-library-id` + `mcp__plugin_context7_context7__query-docs` for library documentation
|
|
98
97
|
- **Timeout:** 300s
|
|
@@ -111,25 +110,25 @@ After completing each step, output:
|
|
|
111
110
|
- **Security/compliance notes** — standards to adhere to (if applicable)
|
|
112
111
|
- **Prior art** — reference implementations or architectures found
|
|
113
112
|
- **Post-action:** Commit all files and push. Message: `feat(speckit): research — best practices and technology survey`
|
|
114
|
-
- **Done:** Output `[Step 2/
|
|
113
|
+
- **Done:** Output `[Step 2/11] DONE — research brief created (N topics researched)`
|
|
115
114
|
|
|
116
115
|
### Step 3 — Constitution `[on_failure: STOP]`
|
|
117
|
-
- **Progress:** Output `[Step 3/
|
|
116
|
+
- **Progress:** Output `[Step 3/11] Constitution — establishing engineering principles...`
|
|
118
117
|
- **Skill:** `speckit.constitution`
|
|
119
118
|
- **Input:** "Establish and enforce a comprehensive set of engineering principles that prioritize high code quality, strict adherence to Test-Driven Development (TDD) practices, and well-defined testing standards across unit, component, integration, and API levels to ensure system reliability and maintainability, maintain a consistent, user-friendly, and professional user interface aligned with strong user experience (UX) guidelines, optimize application performance through efficient architecture and resource management; enforce disciplined version control practices with frequent, atomic commits to minimize risk and improve traceability, promote the development and reuse of modular components and functions while centralizing business logic to avoid duplication and ensure consistency, provide clear, informative user feedback and progress reporting throughout system interactions, and leverage all available tools, frameworks, and domain-specific expertise to support developers in delivering robust, scalable, and high-quality applications."
|
|
120
119
|
- **Output:** `specs/constitution.md`
|
|
121
120
|
- **Timeout:** 300s
|
|
122
|
-
- **Done:** Output `[Step 3/
|
|
121
|
+
- **Done:** Output `[Step 3/11] DONE — constitution created`
|
|
123
122
|
|
|
124
123
|
### Step 4 — CLAUDE.md Sync `[on_failure: CONTINUE]`
|
|
125
|
-
- **Progress:** Output `[Step 4/
|
|
124
|
+
- **Progress:** Output `[Step 4/11] CLAUDE.md Sync — verifying compliance...`
|
|
126
125
|
- **Action:** Read CLAUDE.md and verify it complies with the constitution in `specs/constitution.md`. Update CLAUDE.md if it conflicts with or is missing constitution rules.
|
|
127
126
|
- **Timeout:** 120s
|
|
128
127
|
- **Post-action:** Commit all files and push. Message: `feat(speckit): add constitution and sync CLAUDE.md`
|
|
129
|
-
- **Done:** Output `[Step 4/
|
|
128
|
+
- **Done:** Output `[Step 4/11] DONE — CLAUDE.md synced`
|
|
130
129
|
|
|
131
130
|
### Step 5 — Specify `[on_failure: STOP]`
|
|
132
|
-
- **Progress:** Output `[Step 5/
|
|
131
|
+
- **Progress:** Output `[Step 5/11] Specify — creating feature specification...`
|
|
133
132
|
- **Skill:** `speckit.specify`
|
|
134
133
|
- **Input:** Use the detailed specification output from Step 1 (brainstorm) **enriched with the research findings from Step 2**. Include recommended libraries, best practices, and compliance requirements from the research brief in the specification input.
|
|
135
134
|
- **Knowledge lookup:** Use `mcp__bms-knowledge-mcp__search_knowledge` to search the `hosxp` collection for exact table names, field names, data types, and relationships needed by this feature. Reference actual HOSxP data structures in the spec.
|
|
@@ -139,42 +138,126 @@ After completing each step, output:
|
|
|
139
138
|
- **Timeout:** 300s
|
|
140
139
|
- **Retry:** up to 2 attempts
|
|
141
140
|
- **Post-action:** Commit all files and push. Message: `feat(speckit): add feature specification`
|
|
142
|
-
- **Done:** Output `[Step 5/
|
|
141
|
+
- **Done:** Output `[Step 5/11] DONE — specification created`
|
|
143
142
|
|
|
144
143
|
### Step 6 — Plan `[on_failure: STOP]`
|
|
145
|
-
- **Progress:** Output `[Step 6/
|
|
144
|
+
- **Progress:** Output `[Step 6/11] Plan — generating implementation plan...`
|
|
146
145
|
- **Skill:** `speckit.plan`
|
|
147
146
|
- **Input:** reads from step 5 artifacts
|
|
148
147
|
- **Output:** `specs/*/plan.md`
|
|
149
148
|
- **Timeout:** 300s
|
|
150
149
|
- **Retry:** up to 2 attempts
|
|
151
150
|
- **Post-action:** Commit all files and push. Message: `feat(speckit): add implementation plan`
|
|
152
|
-
- **Done:** Output `[Step 6/
|
|
151
|
+
- **Done:** Output `[Step 6/11] DONE — plan created`
|
|
153
152
|
|
|
154
153
|
### Step 7 — Tasks `[on_failure: STOP]`
|
|
155
|
-
- **Progress:** Output `[Step 7/
|
|
154
|
+
- **Progress:** Output `[Step 7/11] Tasks — generating task list...`
|
|
156
155
|
- **Skill:** `speckit.tasks`
|
|
157
156
|
- **Input:** reads from step 6 artifacts
|
|
158
157
|
- **Output:** `specs/*/tasks.md`
|
|
159
158
|
- **Timeout:** 300s
|
|
160
159
|
- **Retry:** up to 2 attempts
|
|
161
160
|
- **Post-action:** Commit all files and push. Message: `feat(speckit): add task list`
|
|
162
|
-
- **Done:** Output `[Step 7/
|
|
161
|
+
- **Done:** Output `[Step 7/11] DONE — N tasks created`
|
|
163
162
|
|
|
164
163
|
### Step 8 — Analyze `[on_failure: CONTINUE]`
|
|
165
|
-
- **Progress:** Output `[Step 8/
|
|
164
|
+
- **Progress:** Output `[Step 8/11] Analyze — cross-artifact consistency check...`
|
|
166
165
|
- **Skill:** `speckit.analyze`
|
|
167
166
|
- **Purpose:** Cross-artifact consistency check (spec ↔ plan ↔ tasks ↔ research). Non-destructive — report only.
|
|
168
167
|
- **Timeout:** 300s
|
|
169
168
|
- **Post-action:** Commit all files and push. Message: `feat(speckit): add cross-artifact analysis report`
|
|
170
|
-
- **Done:** Output `[Step 8/
|
|
169
|
+
- **Done:** Output `[Step 8/11] DONE — analysis complete`
|
|
170
|
+
|
|
171
|
+
### Completion Contract — DO NOT RETURN UNTIL THIS IS SATISFIED
|
|
172
|
+
|
|
173
|
+
Before returning to the main agent, perform these verification checks yourself using Bash/Read. Do NOT return a success message if any file is missing — exploration-only returns are a bug, not an acceptable outcome.
|
|
174
|
+
|
|
175
|
+
1. **Identify the feature directory.** Run `ls -dt specs/*/ | head -1` — this is your feature path (e.g. `specs/003-my-feature/`). Capture the feature slug (basename without trailing slash).
|
|
176
|
+
2. **Verify each required artifact exists and is non-empty** using `test -s <file>`:
|
|
177
|
+
- `specs/constitution.md`
|
|
178
|
+
- `specs/<slug>/research.md`
|
|
179
|
+
- `specs/<slug>/spec.md`
|
|
180
|
+
- `specs/<slug>/plan.md`
|
|
181
|
+
- `specs/<slug>/tasks.md`
|
|
182
|
+
3. **Verify commits were made:** `git log --oneline -n 12` should show at least 5 speckit commits (brainstorm, research, constitution, specify, plan, tasks, analyze).
|
|
183
|
+
4. **If any artifact is missing or empty, do NOT return failure — write it directly.** The `Skill` tool sometimes fails inside subagents (tool-access restrictions, one-shot mode). Your job is to ensure the artifact exists on disk regardless of how it got there:
|
|
184
|
+
- Read the relevant template from `.specify/templates/` (spec-template.md, plan-template.md, tasks-template.md)
|
|
185
|
+
- Fill it in using the in-memory content you already produced from brainstorm/research/specify
|
|
186
|
+
- `Write` the file, `git add`, `git commit`, `git push`
|
|
187
|
+
- Re-run the verification check
|
|
188
|
+
5. **Return format — the LAST LINE of your response must be exactly this structured marker** (the main agent parses it; no prose after it):
|
|
189
|
+
|
|
190
|
+
`FEATURE=<slug>|SPEC=<path>|PLAN=<path>|TASKS=<path>|STATUS=OK`
|
|
191
|
+
|
|
192
|
+
If after the fallback write in step 4 some artifact is still missing, return:
|
|
193
|
+
|
|
194
|
+
`FEATURE=<slug-or-unknown>|MISSING=<comma-separated-list>|STATUS=INCOMPLETE`
|
|
195
|
+
"""
|
|
196
|
+
|
|
197
|
+
### Phase 1 → Phase 2 Handoff — Verification Gate (MANDATORY)
|
|
198
|
+
|
|
199
|
+
The subagent is one-shot — the Task tool dispatches it, waits, and returns a single text response. There is no SendMessage chaining. So the main agent **must verify artifacts exist on disk before proceeding**. A subagent that did only read-only exploration will return success-looking prose but leave `specs/*/` empty — do not trust the prose.
|
|
200
|
+
|
|
201
|
+
**Step A — Parse the subagent marker.**
|
|
202
|
+
Find the line beginning with `FEATURE=` in the subagent's output. Extract `<slug>`, `<spec>`, `<plan>`, `<tasks>`, `<status>`. If no marker is present, treat as `STATUS=INCOMPLETE`.
|
|
203
|
+
|
|
204
|
+
**Step B — Verify artifacts on disk from the main context** (the subagent lies sometimes):
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
Bash: test -s specs/constitution.md \
|
|
208
|
+
&& test -s specs/<slug>/spec.md \
|
|
209
|
+
&& test -s specs/<slug>/plan.md \
|
|
210
|
+
&& test -s specs/<slug>/tasks.md \
|
|
211
|
+
&& echo "GATE=OK" || echo "GATE=MISSING"
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Step C — Branch:**
|
|
215
|
+
- `GATE=OK` and marker `STATUS=OK` → verification passed. Proceed to Step 9.
|
|
216
|
+
- Otherwise → run **Recovery Protocol**.
|
|
217
|
+
|
|
218
|
+
#### Recovery Protocol
|
|
219
|
+
|
|
220
|
+
**Attempt 1 — Retry subagent with a stricter recovery prompt.**
|
|
221
|
+
|
|
222
|
+
Re-dispatch via Task tool:
|
|
171
223
|
|
|
172
|
-
After all steps complete, return: the feature name, number of tasks created, and the path to tasks.md.
|
|
173
224
|
"""
|
|
225
|
+
RECOVERY RUN. A previous Phase 1 execution returned without producing artifacts on disk at `specs/<slug>/`. The existing files may be partial. Your job now is to produce the missing artifacts — not to re-explore, not to re-research, not to ask questions.
|
|
226
|
+
|
|
227
|
+
Required outputs (all must exist and be non-empty before you return):
|
|
228
|
+
- specs/constitution.md
|
|
229
|
+
- specs/<slug>/research.md
|
|
230
|
+
- specs/<slug>/spec.md
|
|
231
|
+
- specs/<slug>/plan.md
|
|
232
|
+
- specs/<slug>/tasks.md
|
|
233
|
+
|
|
234
|
+
Rules:
|
|
235
|
+
1. Read `$ARGUMENTS` and every existing file under `specs/` to pick up where the prior run left off.
|
|
236
|
+
2. If the `Skill` tool fails or is unavailable, do NOT retry it — `Write` the artifact directly using `.specify/templates/*.md` as the structure and content you know from the user requirement as the body.
|
|
237
|
+
3. Resolve every ambiguity with a documented default in an `## Assumptions` section. Never emit `[NEEDS CLARIFICATION]` markers.
|
|
238
|
+
4. After each file you write, `git add && git commit && git push` with message `feat(speckit): <step>`.
|
|
239
|
+
5. Before returning, `test -s` each required file and `git log --oneline -n 12` to confirm.
|
|
240
|
+
6. Return with the structured marker `FEATURE=<slug>|SPEC=<path>|PLAN=<path>|TASKS=<path>|STATUS=OK` as your final line, no prose after.
|
|
241
|
+
"""
|
|
242
|
+
|
|
243
|
+
After the retry returns, re-run Step B. If `GATE=OK`, proceed to Step 9.
|
|
244
|
+
|
|
245
|
+
**Attempt 2 — Main-context inline fallback** (runs only if the retry also fails).
|
|
174
246
|
|
|
175
|
-
|
|
247
|
+
Execute steps 5–8 directly in the main agent using Write/Edit/Bash, NOT via Task subagent and NOT via Skill tool:
|
|
176
248
|
|
|
177
|
-
|
|
249
|
+
1. Read `.specify/templates/spec-template.md`, `.specify/templates/plan-template.md`, `.specify/templates/tasks-template.md`.
|
|
250
|
+
2. Read `$ARGUMENTS` and any partial artifacts already on disk under `specs/`.
|
|
251
|
+
3. If the feature branch does not exist yet: `.specify/scripts/bash/create-new-feature.sh "$ARGUMENTS" --json --short-name <derived-slug> "$ARGUMENTS"` to create branch + spec directory.
|
|
252
|
+
4. `Write` `specs/<slug>/spec.md` filling in each template section from the requirement. Use `## Assumptions` for defaults. Zero `[NEEDS CLARIFICATION]` markers allowed.
|
|
253
|
+
5. `Write` `specs/<slug>/plan.md` with ordered steps, file paths, component boundaries, test strategy, rollback considerations.
|
|
254
|
+
6. `Write` `specs/<slug>/tasks.md` with atomic, dependency-ordered tasks, each with acceptance criteria.
|
|
255
|
+
7. Commit each as written: `git add <file> && git commit -m "feat(speckit): <step> (main-context fallback)" && git push`.
|
|
256
|
+
8. Re-run Step B verification. If still `GATE=MISSING`, halt the pipeline with a clear error listing the missing files — do NOT proceed to Phase 2 with a broken spec tree.
|
|
257
|
+
|
|
258
|
+
Only after the Verification Gate passes (`GATE=OK`), update tasks 1–8 as completed using TaskUpdate, then output:
|
|
259
|
+
|
|
260
|
+
> Phase 1 complete. N tasks at specs/<slug>/tasks.md
|
|
178
261
|
> Starting Phase 2 (implementation)...
|
|
179
262
|
|
|
180
263
|
---
|
|
@@ -183,13 +266,8 @@ After the subagent completes, update tasks 1-8 as completed using TaskUpdate, th
|
|
|
183
266
|
|
|
184
267
|
> **Execution context:** Runs in main context after subagent completes.
|
|
185
268
|
|
|
186
|
-
### Step 9 —
|
|
187
|
-
- **Progress:** Output `[Step 9/
|
|
188
|
-
- **Action:** Run `/compact` to free context window before implementation.
|
|
189
|
-
- **Done:** Update task 9 as completed.
|
|
190
|
-
|
|
191
|
-
### Step 10 — Implement with Rolling QC `[on_failure: CONTINUE | max_retries: 3]`
|
|
192
|
-
- **Progress:** Output `[Step 10/12] Implement — starting rolling QC loop (N tasks)...`
|
|
269
|
+
### Step 9 — Implement with Rolling QC `[on_failure: CONTINUE | max_retries: 3]`
|
|
270
|
+
- **Progress:** Output `[Step 9/11] Implement — starting rolling QC loop (N tasks)...`
|
|
193
271
|
- **Engine:** ralph-loop
|
|
194
272
|
- **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.
|
|
195
273
|
- **Completion promise:** `FINISHED`
|
|
@@ -220,10 +298,10 @@ After the subagent completes, update tasks 1-8 as completed using TaskUpdate, th
|
|
|
220
298
|
|
|
221
299
|
`/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. RUNTIME SAFETY: always add explicit return type annotations on data transformation functions, never spread or iterate a function return value without verifying it returns the expected collection type, use strict equality and null guards for external data, write tests that execute data transformers and verify output type and shape. SQL VALIDATION: before writing any SQL statement verify exact table and column names exist via bms-session-mcp-server list_tables/describe_table or bms-knowledge-mcp search_knowledge with hosxp collection, never guess column names, after writing test each query with EXPLAIN or LIMIT 0 via the query tool to confirm it executes without error. INTEGRATION TESTING: for every task that touches database or data-dependent logic run an integration test using the real bms-session-mcp-server query tool to execute the feature's SQL against the real HOSxP database (not mocks), flow the result through the actual code path, assert on concrete properties (row count, columns populated, types match, masked fields handled), use small LIMIT to avoid large result sets. If integration test fails investigate the real cause and fix it — do not relax the assertion. BUSINESS LOGIC: before writing any SQL state the business question it answers then consult bms-knowledge-mcp search_knowledge on hosxp collection to verify canonical table selection, soft-delete filters, correct date columns, join keys (hn/vn/an); use graph_search for multi-table relationships; for reporting queries also check moph or nhso collections for regulatory rules; cite the HOSxP convention in a code comment next to the query. Only commit when build plus lint plus tests all pass with zero errors then proceed to next task. Report progress to the user after each task: output [Task N/total] DONE — task_name. 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`
|
|
222
300
|
|
|
223
|
-
- **Done:** Update task
|
|
301
|
+
- **Done:** Update task 9 as completed. Output `[Step 9/11] DONE — all tasks implemented and verified`
|
|
224
302
|
|
|
225
|
-
### Step
|
|
226
|
-
- **Progress:** Output `[Step 11
|
|
303
|
+
### Step 10 — Final Quality Gate `[on_failure: STOP | max_retries: 3]`
|
|
304
|
+
- **Progress:** Output `[Step 10/11] Final QC — running comprehensive quality audit...`
|
|
227
305
|
- **Agent:** Dispatch `bms-speckit:quality-control` agent
|
|
228
306
|
- **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.
|
|
229
307
|
- **Timeout:** 900s
|
|
@@ -240,15 +318,15 @@ After the subagent completes, update tasks 1-8 as completed using TaskUpdate, th
|
|
|
240
318
|
- **H. Integration testing (real database, end-to-end)** — run actual integration tests against the real HOSxP database via `bms-session-mcp-server`. For every DB-touching feature verify there's an integration test that: executes the feature's real SQL via the `query` tool, flows real data through the actual code path (transformers, filters, UI components), asserts on concrete properties (row count range, column presence, type correctness, masked field handling, Thai encoding). Create missing integration tests. Never fix failures by mocking responses, skipping tests, or loosening assertions. Flag slow queries for user review. (skipped if bms-session-mcp-server is not available)
|
|
241
319
|
- **I. Business logic semantic validation** — verify every SQL statement actually retrieves the correct data per the user's intent and HOSxP conventions, not just that it runs without error. For each SQL: state the business question it should answer, cross-reference `mcp__bms-knowledge-mcp__search_knowledge` on `hosxp` collection for canonical table selection, soft-delete/status filters, correct date columns, join keys (hn/vn/an), code system usage (ICD-10/LOINC/TMT). Use `graph_search` for multi-table relationship questions. Check regulatory compliance via `moph` and `nhso` collections (43 files reporting, reimbursement rules). Verify Thai conventions (Buddhist calendar, CID validation, pre-masked fields). Fix semantic mismatches with code comments citing the HOSxP convention. Flag ambiguous intent for user review. (skipped if bms-knowledge-mcp is not available)
|
|
242
320
|
- The agent fixes everything it can. Major dependency updates are flagged for user review.
|
|
243
|
-
- **Completion rule:** When the QC agent returns its report, proceed to Step
|
|
321
|
+
- **Completion rule:** When the QC agent returns its report, proceed to Step 11 **unless** the report contains unfixed build errors, unfixed test failures, or unfixed critical security vulnerabilities. Informational findings, flagged-for-review items, and already-fixed issues do NOT block progression. If uncertain, proceed — the QC agent already fixed what it could.
|
|
244
322
|
- **Post-action:** Commit all fixes and push. Message: `fix(speckit): final QC — security, deps, UX consistency, accessibility`
|
|
245
|
-
- **Done:** Update task
|
|
323
|
+
- **Done:** Update task 10 as completed. Output `[Step 10/11] DONE — quality gate passed`
|
|
246
324
|
|
|
247
|
-
### Step
|
|
248
|
-
- **Progress:** Output `[Step
|
|
325
|
+
### Step 11 — Merge to Main `[on_failure: STOP]`
|
|
326
|
+
- **Progress:** Output `[Step 11/11] Merge — merging to main branch...`
|
|
249
327
|
- **Action:** Switch to main branch, merge the feature branch (fast-forward if possible), push main to remote, then clean up the feature branch.
|
|
250
328
|
- **Timeout:** 120s
|
|
251
|
-
- **Done:** Update task
|
|
329
|
+
- **Done:** Update task 11 as completed. Output:
|
|
252
330
|
|
|
253
331
|
> Pipeline complete! Feature merged to main.
|
|
254
332
|
|
|
@@ -259,15 +337,15 @@ After the subagent completes, update tasks 1-8 as completed using TaskUpdate, th
|
|
|
259
337
|
```
|
|
260
338
|
Phase 1 (subagent) Phase 2 (main context)
|
|
261
339
|
────────────────────────────── ──────────────────────────────
|
|
262
|
-
Step 1: brainstorm ──STOP── commit Step 9:
|
|
263
|
-
+ knowledge search (hosxp)
|
|
264
|
-
Step 2: research ────────── commit
|
|
265
|
-
+ WebSearch + context7 │
|
|
266
|
-
Step 3: constitution ─STOP─┐
|
|
267
|
-
Step 4: CLAUDE.md sync ───┘ commit
|
|
268
|
-
Step 5: specify ──────STOP── commit
|
|
269
|
-
+ knowledge search (hosxp)
|
|
270
|
-
Step 6: plan ─────────STOP── commit
|
|
340
|
+
Step 1: brainstorm ──STOP── commit Step 9: implement + rolling QC
|
|
341
|
+
+ knowledge search (hosxp) ┌─ implement task ─┐
|
|
342
|
+
Step 2: research ────────── commit │ inline QC │
|
|
343
|
+
+ WebSearch + context7 │ fix → commit │
|
|
344
|
+
Step 3: constitution ─STOP─┐ └─ next task ──────┘
|
|
345
|
+
Step 4: CLAUDE.md sync ───┘ commit Step 10: final QC agent ── commit
|
|
346
|
+
Step 5: specify ──────STOP── commit (security/deps/UX/a11y/deploy)
|
|
347
|
+
+ knowledge search (hosxp) Step 11: merge to main + push
|
|
348
|
+
Step 6: plan ─────────STOP── commit
|
|
271
349
|
Step 7: tasks ────────STOP── commit
|
|
272
350
|
Step 8: analyze ──────────── commit
|
|
273
351
|
```
|