bms-speckit-plugin 6.8.0 → 6.9.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.9.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"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bms-speckit-plugin",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.9.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/",
|
|
@@ -169,12 +169,96 @@ After completing each step, output:
|
|
|
169
169
|
- **Post-action:** Commit all files and push. Message: `feat(speckit): add cross-artifact analysis report`
|
|
170
170
|
- **Done:** Output `[Step 8/12] DONE — analysis complete`
|
|
171
171
|
|
|
172
|
-
|
|
172
|
+
### Completion Contract — DO NOT RETURN UNTIL THIS IS SATISFIED
|
|
173
|
+
|
|
174
|
+
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.
|
|
175
|
+
|
|
176
|
+
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).
|
|
177
|
+
2. **Verify each required artifact exists and is non-empty** using `test -s <file>`:
|
|
178
|
+
- `specs/constitution.md`
|
|
179
|
+
- `specs/<slug>/research.md`
|
|
180
|
+
- `specs/<slug>/spec.md`
|
|
181
|
+
- `specs/<slug>/plan.md`
|
|
182
|
+
- `specs/<slug>/tasks.md`
|
|
183
|
+
3. **Verify commits were made:** `git log --oneline -n 12` should show at least 5 speckit commits (brainstorm, research, constitution, specify, plan, tasks, analyze).
|
|
184
|
+
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:
|
|
185
|
+
- Read the relevant template from `.specify/templates/` (spec-template.md, plan-template.md, tasks-template.md)
|
|
186
|
+
- Fill it in using the in-memory content you already produced from brainstorm/research/specify
|
|
187
|
+
- `Write` the file, `git add`, `git commit`, `git push`
|
|
188
|
+
- Re-run the verification check
|
|
189
|
+
5. **Return format — the LAST LINE of your response must be exactly this structured marker** (the main agent parses it; no prose after it):
|
|
190
|
+
|
|
191
|
+
`FEATURE=<slug>|SPEC=<path>|PLAN=<path>|TASKS=<path>|STATUS=OK`
|
|
192
|
+
|
|
193
|
+
If after the fallback write in step 4 some artifact is still missing, return:
|
|
194
|
+
|
|
195
|
+
`FEATURE=<slug-or-unknown>|MISSING=<comma-separated-list>|STATUS=INCOMPLETE`
|
|
173
196
|
"""
|
|
174
197
|
|
|
175
|
-
|
|
198
|
+
### Phase 1 → Phase 2 Handoff — Verification Gate (MANDATORY)
|
|
176
199
|
|
|
177
|
-
|
|
200
|
+
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.
|
|
201
|
+
|
|
202
|
+
**Step A — Parse the subagent marker.**
|
|
203
|
+
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`.
|
|
204
|
+
|
|
205
|
+
**Step B — Verify artifacts on disk from the main context** (the subagent lies sometimes):
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
Bash: test -s specs/constitution.md \
|
|
209
|
+
&& test -s specs/<slug>/spec.md \
|
|
210
|
+
&& test -s specs/<slug>/plan.md \
|
|
211
|
+
&& test -s specs/<slug>/tasks.md \
|
|
212
|
+
&& echo "GATE=OK" || echo "GATE=MISSING"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Step C — Branch:**
|
|
216
|
+
- `GATE=OK` and marker `STATUS=OK` → verification passed. Proceed to Step 9.
|
|
217
|
+
- Otherwise → run **Recovery Protocol**.
|
|
218
|
+
|
|
219
|
+
#### Recovery Protocol
|
|
220
|
+
|
|
221
|
+
**Attempt 1 — Retry subagent with a stricter recovery prompt.**
|
|
222
|
+
|
|
223
|
+
Re-dispatch via Task tool:
|
|
224
|
+
|
|
225
|
+
"""
|
|
226
|
+
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.
|
|
227
|
+
|
|
228
|
+
Required outputs (all must exist and be non-empty before you return):
|
|
229
|
+
- specs/constitution.md
|
|
230
|
+
- specs/<slug>/research.md
|
|
231
|
+
- specs/<slug>/spec.md
|
|
232
|
+
- specs/<slug>/plan.md
|
|
233
|
+
- specs/<slug>/tasks.md
|
|
234
|
+
|
|
235
|
+
Rules:
|
|
236
|
+
1. Read `$ARGUMENTS` and every existing file under `specs/` to pick up where the prior run left off.
|
|
237
|
+
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.
|
|
238
|
+
3. Resolve every ambiguity with a documented default in an `## Assumptions` section. Never emit `[NEEDS CLARIFICATION]` markers.
|
|
239
|
+
4. After each file you write, `git add && git commit && git push` with message `feat(speckit): <step>`.
|
|
240
|
+
5. Before returning, `test -s` each required file and `git log --oneline -n 12` to confirm.
|
|
241
|
+
6. Return with the structured marker `FEATURE=<slug>|SPEC=<path>|PLAN=<path>|TASKS=<path>|STATUS=OK` as your final line, no prose after.
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
After the retry returns, re-run Step B. If `GATE=OK`, proceed to Step 9.
|
|
245
|
+
|
|
246
|
+
**Attempt 2 — Main-context inline fallback** (runs only if the retry also fails).
|
|
247
|
+
|
|
248
|
+
Execute steps 5–8 directly in the main agent using Write/Edit/Bash, NOT via Task subagent and NOT via Skill tool:
|
|
249
|
+
|
|
250
|
+
1. Read `.specify/templates/spec-template.md`, `.specify/templates/plan-template.md`, `.specify/templates/tasks-template.md`.
|
|
251
|
+
2. Read `$ARGUMENTS` and any partial artifacts already on disk under `specs/`.
|
|
252
|
+
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.
|
|
253
|
+
4. `Write` `specs/<slug>/spec.md` filling in each template section from the requirement. Use `## Assumptions` for defaults. Zero `[NEEDS CLARIFICATION]` markers allowed.
|
|
254
|
+
5. `Write` `specs/<slug>/plan.md` with ordered steps, file paths, component boundaries, test strategy, rollback considerations.
|
|
255
|
+
6. `Write` `specs/<slug>/tasks.md` with atomic, dependency-ordered tasks, each with acceptance criteria.
|
|
256
|
+
7. Commit each as written: `git add <file> && git commit -m "feat(speckit): <step> (main-context fallback)" && git push`.
|
|
257
|
+
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.
|
|
258
|
+
|
|
259
|
+
Only after the Verification Gate passes (`GATE=OK`), update tasks 1–8 as completed using TaskUpdate, then output:
|
|
260
|
+
|
|
261
|
+
> Phase 1 complete. N tasks at specs/<slug>/tasks.md
|
|
178
262
|
> Starting Phase 2 (implementation)...
|
|
179
263
|
|
|
180
264
|
---
|