bmad-method 6.7.1-next.0 → 6.7.1-next.2
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/.claude-plugin/marketplace.json +1 -1
- package/package.json +1 -1
- package/removals.txt +5 -0
- package/src/bmm-skills/1-analysis/bmad-product-brief/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-prd/SKILL.md +5 -3
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/prd-template.md +4 -7
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/prd-validation-checklist.md +4 -4
- package/src/bmm-skills/2-plan-workflows/bmad-prd/references/headless.md +2 -2
- package/src/bmm-skills/2-plan-workflows/bmad-ux/SKILL.md +87 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/color-themes.md +9 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-directions.md +9 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-editorial.md +158 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-mobile.md +93 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-shadcn.md +109 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/excalidraw-wireframe.md +19 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/experience-example-mobile.md +112 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/experience-example-shadcn.md +133 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/headless-schemas.md +84 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/key-screens.md +29 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/validation-report-template.html +319 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/customize.toml +100 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/creative-tools.md +19 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/design-md-spec.md +50 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/headless.md +37 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/validate.md +115 -0
- package/src/bmm-skills/module-help.csv +1 -1
- package/src/core-skills/bmad-spec/SKILL.md +126 -0
- package/src/core-skills/bmad-spec/assets/headless-schemas.md +33 -0
- package/src/core-skills/bmad-spec/assets/spec-template.md +49 -0
- package/src/core-skills/bmad-spec/customize.toml +53 -0
- package/src/core-skills/module-help.csv +1 -1
- package/tools/skill-validator.md +1 -19
- package/tools/validate-skills.js +1 -40
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/SKILL.md +0 -75
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/customize.toml +0 -41
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md +0 -135
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md +0 -127
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md +0 -190
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md +0 -217
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -220
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md +0 -235
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-06-design-system.md +0 -253
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -255
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -225
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md +0 -225
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -242
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -249
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -238
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -265
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md +0 -177
- package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/ux-design-template.md +0 -13
- package/src/core-skills/bmad-distillator/SKILL.md +0 -177
- package/src/core-skills/bmad-distillator/agents/distillate-compressor.md +0 -116
- package/src/core-skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -68
- package/src/core-skills/bmad-distillator/resources/compression-rules.md +0 -51
- package/src/core-skills/bmad-distillator/resources/distillate-format-reference.md +0 -227
- package/src/core-skills/bmad-distillator/resources/splitting-strategy.md +0 -78
- package/src/core-skills/bmad-distillator/scripts/analyze_sources.py +0 -300
- package/src/core-skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -204
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-spec
|
|
3
|
+
description: Distill any intent input into the SPEC kernel + companions — the canonical, preservation-validated machine contract for downstream work. Use when the user says "create a spec", "distill this into a spec", "validate this spec", or "update the spec".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BMad Spec
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Canonical transformer for the BMad spec-kernel ecosystem. Takes any intent input — vague idea, brain dump, PRD, GDD, RFC, brief, Slack thread, customer email, meeting transcript, mockups, mixed multi-source — and produces **SPEC.md** carrying the five-field kernel (Why, Capabilities, Constraints, Non-goals, Success signal) plus companion files for load-bearing content that does not fit or would bloat the kernel with expansive line-item detail. Together they are the machine contract every downstream BMad skill consumes.
|
|
10
|
+
|
|
11
|
+
Multiple skills may call to update the same spec over time.
|
|
12
|
+
|
|
13
|
+
## Conventions
|
|
14
|
+
|
|
15
|
+
- Bare paths (e.g. `assets/spec-template.md`) resolve from the skill root.
|
|
16
|
+
- `{skill-root}` is this skill's install dir; `{project-root}` is the working dir.
|
|
17
|
+
- `{workflow.<name>}` resolves to fields in `customize.toml`.
|
|
18
|
+
|
|
19
|
+
## On Activation
|
|
20
|
+
|
|
21
|
+
1. Resolve customization: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly.
|
|
22
|
+
2. Run `{workflow.activation_steps_prepend}`. Treat `{workflow.persistent_facts}` as foundational context (`file:` entries are loaded).
|
|
23
|
+
3. Load `{project-root}/_bmad/core/config.yaml` (and `config.user.yaml` if present), root level and `bmm` section. Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`.
|
|
24
|
+
4. Detect mode. **Headless** when any of: no TTY, programmatic caller (another skill or non-interactive runner), or the first message pre-supplies all inputs and asks for an artifact path back. **Interactive** otherwise. In interactive mode, greet by `{user_name}` in `{communication_language}`, stay in that language, and mention that `bmad-party-mode` and `bmad-advanced-elicitation` are available for deeper exploration on any field.
|
|
25
|
+
5. Run `{workflow.activation_steps_append}`.
|
|
26
|
+
|
|
27
|
+
## Workspace
|
|
28
|
+
|
|
29
|
+
The spec is **always a folder** named `{workflow.spec_output_path}/{workflow.run_folder_pattern}`, resolving by default to `{output_folder}/specs/spec-{slug}/`.
|
|
30
|
+
|
|
31
|
+
`{slug}` describes the thing being specced, not the input shape:
|
|
32
|
+
|
|
33
|
+
- Source artifact already carries a slug (e.g., `prd-foo-bar-2026-05-23/`): inherit (`foo-bar`).
|
|
34
|
+
- Sparse, in-chat, or multi-source input: interactive asks; headless caller provides it as part of the input. If absent and underivable, headless blocks with `error_code: "missing_slug"`.
|
|
35
|
+
- Same slug = same folder. A second invocation with the same `{slug}` lands at the existing spec folder and updates in place, preserving capability IDs.
|
|
36
|
+
|
|
37
|
+
**No input.** Interactive: ask the user to share a file path, paste content, explain the idea in detail, or point to a source. Headless: respond with JSON containing `error_code: "insufficient_intent"`.
|
|
38
|
+
|
|
39
|
+
Inside the spec folder:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
<spec-folder>/
|
|
43
|
+
SPEC.md ← uppercase, the kernel
|
|
44
|
+
<companion-1>.md ← optional, content-typed (e.g. glossary.md)
|
|
45
|
+
<companion-2>.md
|
|
46
|
+
.decision-log.md ← canonical memory for this spec
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## The Operation
|
|
50
|
+
|
|
51
|
+
Read the input and its ancillary linked materials. If there is no input, follow the no-input branch in **Workspace** (ask or block). If a prior `SPEC.md` exists at the target folder, read it too — the operation becomes an update. Preserve capability IDs; new capabilities get the next unused `CAP-N`; never reuse retired IDs. Otherwise this is a create.
|
|
52
|
+
|
|
53
|
+
When the input is structured and pre-sorted (a PRD with an addendum, a GDD, a brief produced by an upstream BMad skill), trust the authored separation: lift kernel-fitting content into SPEC.md, lift overflow into appropriately-named companions. When the input is mixed (a brain dump, a transcript, an RFC, a customer email), do the sorting yourself: walk each claim, apply the three-lens load-bearing test (Spec Law rule 7), and route to the kernel field or a companion.
|
|
54
|
+
|
|
55
|
+
Distill the input into the five-field kernel using `{workflow.spec_template}` as the skeleton. When input is rich, extract directly — no elicitation. When input is sparse, choose: **express** (best-effort distill, every gap becomes an `open_questions[]` entry) or **guided** (walk the five fields with the user one at a time). Headless defaults to express and logs the choice. Interactive asks.
|
|
56
|
+
|
|
57
|
+
Write lean from the first pass: every sentence must earn its place. Decoration costs tokens and dilutes downstream readers.
|
|
58
|
+
|
|
59
|
+
If the input is genuinely too thin to distill (e.g. "an app for hikers" with no surrounding context), stop and suggest `bmad-prd` (or sibling ceremony skill). This skill distills; it does not coach.
|
|
60
|
+
|
|
61
|
+
## Load-bearing
|
|
62
|
+
|
|
63
|
+
A claim is **load-bearing** if any consumer (downstream skill, implementing agent, verification pass) would change a decision without it.
|
|
64
|
+
|
|
65
|
+
## Companions
|
|
66
|
+
|
|
67
|
+
When load-bearing content does not fit the five-field kernel, it lives in a companion. The kernel cites it; the companion holds it. Companions are part of the contract; every consumer reads `companions:` in SPEC.md frontmatter to discover them. Companions follow the same lean discipline as SPEC.md (Spec Law rule 8).
|
|
68
|
+
|
|
69
|
+
**Spawn a companion when the content needs more than one kernel-shape line:** multi-item catalogs (per-entity matrices like archetypes, drinks, modes, routes), tables, diagrams (always), editorial voice rules, long-form reference material the kernel cites by name (glossary, brownfield notes, project conventions). Single-line decision-benders stay in Constraints; intent+success pairs stay in Capabilities. If a kernel field is starting to bullet into sub-bullets, the content has outgrown the kernel and wants a companion.
|
|
70
|
+
|
|
71
|
+
Companions are either:
|
|
72
|
+
|
|
73
|
+
- **Spec-authored** companions are written by bmad-spec and live as **siblings of SPEC.md** (e.g., `glossary.md`, `patron-archetypes.md`). bmad-spec owns them and may edit them on update operations.
|
|
74
|
+
- **Adopted** companions are load-bearing artifacts written by an upstream skill that downstream still needs to read. bmad-spec references them into `companions:` by relative path but does NOT edit them (e.g., a `DESIGN.md` or `EXPERIENCE.md` from a UX run, an integration partner's API spec). The originating skill owns them.
|
|
75
|
+
|
|
76
|
+
Two rules govern companions:
|
|
77
|
+
|
|
78
|
+
1. **Name spec-authored companions for the content type they hold.** `glossary.md`, `<entity-class>.md` (e.g. `patron-archetypes.md`, `medication-routes.md`, `flight-modes.md`), `stack.md`, `conventions.md`, `brownfield.md`, `architecture-diagrams.md`, `state-machines.md`, `failure-modes.md`, `compliance-references.md`. The principle: "a reader should know what is inside before opening it." Adopted companions keep whatever name their originating skill gave them.
|
|
79
|
+
2. **Diagrams always land in a companion**, regardless of size. SPEC.md kernel holds prose only. Mermaid blocks, ASCII diagrams, and image references all live in a companion (e.g. `architecture-diagrams.md`), with sibling image files referenced from there.
|
|
80
|
+
|
|
81
|
+
Pre-existing project-wide docs (e.g. `project-context.md`) that downstream needs are listed as **adopted companions**, never duplicated into SPEC.md or a spec-authored companion.
|
|
82
|
+
|
|
83
|
+
## Spec Law
|
|
84
|
+
|
|
85
|
+
Every spec must satisfy these eight rules. The operation aims for them; the self-validate sweep enforces them.
|
|
86
|
+
|
|
87
|
+
1. **Each capability has both `intent` and `success`.** Missing either = not a capability.
|
|
88
|
+
2. **Intents describe WHAT, not HOW.** Implementation prescription belongs in a companion (stack, conventions).
|
|
89
|
+
3. **Constraints actually bend design decisions.** A "constraint" that rules nothing out is decoration.
|
|
90
|
+
4. **Non-goals are explicit.** At least one. Absence means downstream skills fill the vacuum.
|
|
91
|
+
5. **Success signal is concrete enough to test or demonstrate against.** "Users love it" doesn't qualify.
|
|
92
|
+
6. **Capability IDs are stable and unique.** Never reused, never renumbered.
|
|
93
|
+
7. **Preservation.** Every load-bearing source claim lands in SPEC.md or a companion. Wrapper ceremony does not.
|
|
94
|
+
8. **Lean prose.** Every sentence carries load-bearing content. Cut decoration, hedges, backstory, throat-clearing. Applies to SPEC.md, companions, and `.decision-log.md`.
|
|
95
|
+
|
|
96
|
+
## Self-Validate
|
|
97
|
+
|
|
98
|
+
After every create or update, sweep the resulting artifact in **two passes** before presenting.
|
|
99
|
+
|
|
100
|
+
**Pass 1 — Coherence.** Judge the spec against Spec Law rules 1–6 and 8. For anything that fails or feels weak, attempt to fix it without inventing content the input did not support. Calls made without direct confirmation become `assumptions[]`; gaps that could not be filled become `open_questions[]`.
|
|
101
|
+
|
|
102
|
+
**Pass 2 — Preservation.** Walk the source claim by claim. Confirm each load-bearing claim landed in SPEC.md or a companion. Wrapper-ceremony drops are logged under "Wrapper-only content" so the drop is on the record, not silent.
|
|
103
|
+
|
|
104
|
+
Append a one-paragraph verdict to `.decision-log.md` covering both passes. In interactive mode, review the verdict with the user. In headless mode, `.decision-log.md` is one of the files returned, so the caller (or its downstream LLM) reads the verdict there.
|
|
105
|
+
|
|
106
|
+
## Spec with no change signal
|
|
107
|
+
|
|
108
|
+
When the user points the skill at an existing spec folder (or its SPEC.md) with no change signal, offer to review assumptions or open questions, or determine what they want to do.
|
|
109
|
+
|
|
110
|
+
## Output
|
|
111
|
+
|
|
112
|
+
**Interactive** — share the spec folder path conversationally. Name the capability count, the companions produced, and the verdict in one or two sentences. If `assumptions[]` or `open_questions[]` are non-empty, list them (short — one line each) and invite the user to walk through them. Make clear that addressing them can update the source input (if it was a file), the spec, or both — whichever combination the user prefers. Do not dump JSON or present a wall of output.
|
|
113
|
+
|
|
114
|
+
**Headless** — return JSON per `assets/headless-schemas.md`.
|
|
115
|
+
|
|
116
|
+
Run `{workflow.on_complete}` if set.
|
|
117
|
+
|
|
118
|
+
## After Spec is Output
|
|
119
|
+
|
|
120
|
+
Any update to spec regarding assumptions, open questions, or other changes should be appended to that source's decision log also and offer to update the source.
|
|
121
|
+
|
|
122
|
+
## Frontmatter conventions
|
|
123
|
+
|
|
124
|
+
- `companions:` array of `.md` files downstream MUST read alongside SPEC.md to have the full contract. Paths may point inside the spec folder (spec-authored companions like `glossary.md`) or outside it (adopted companions like `../planning-artifacts/ux-designs/ux-foo-bar-2026-05-23/DESIGN.md`). The split between spec-authored and adopted is implicit by path; downstream treats both the same.
|
|
125
|
+
- `sources:` array of paths to files that were **fully absorbed** into the SPEC, with no remaining downstream value (e.g., a PRD whose every load-bearing claim is now in the kernel). Listed for audit and for bmad-spec to re-read on update. Downstream does NOT read these. Files that downstream still needs to read belong in `companions:`, not here.
|
|
126
|
+
- **Do not list** decision logs, README files, organizational artifacts, or any operational record of how upstream skills produced their artifacts. Those are not source content; they are process metadata that downstream consumers don't need.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Headless JSON Response
|
|
2
|
+
|
|
3
|
+
The default invocation is headless: input goes in, JSON comes out. The contract is intentionally tiny — return the outcome and the files touched. Anything else a caller needs is inside those files (SPEC.md, companions, `.decision-log.md`).
|
|
4
|
+
|
|
5
|
+
## Success
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"status": "complete",
|
|
10
|
+
"files": [
|
|
11
|
+
"_bmad-output/specs/spec-quarter-drop/SPEC.md",
|
|
12
|
+
"_bmad-output/specs/spec-quarter-drop/glossary.md",
|
|
13
|
+
"_bmad-output/specs/spec-quarter-drop/.decision-log.md"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`files` lists every file written or modified in this run, in any order. The spec folder, kernel filename, decision log location, capabilities, companions, and verdict are all readable from those files; no need to re-encode them in the response.
|
|
19
|
+
|
|
20
|
+
## Blocked
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"status": "blocked",
|
|
25
|
+
"error_code": "insufficient_intent",
|
|
26
|
+
"reason": "Input was a one-line idea with no surrounding context; too thin to distill. Suggest bmad-prd to draw the vision out first."
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Defined `error_code` values:
|
|
31
|
+
|
|
32
|
+
- `insufficient_intent` — input too thin to distill into a kernel.
|
|
33
|
+
- `missing_slug` — input is sparse or multi-source and no slug was provided by the caller or derivable from a source path.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: SPEC-{slug}
|
|
3
|
+
companions: [] # files downstream MUST read alongside SPEC.md. Paths may point inside the spec folder (spec-authored) or outside it (adopted from an upstream skill).
|
|
4
|
+
sources: [] # files fully absorbed into the SPEC (audit only; downstream does NOT read these). Never decision logs.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> **Canonical contract.** This SPEC and the files in `companions:` are the complete, preservation-validated contract for what to build, test, and validate. Source documents listed in frontmatter are for traceability only — consult them only if you need narrative rationale or prose color this contract intentionally omits.
|
|
8
|
+
|
|
9
|
+
# {Spec Title}
|
|
10
|
+
|
|
11
|
+
## Why
|
|
12
|
+
|
|
13
|
+
{One paragraph naming the force behind this work. A spec can exist for any of:
|
|
14
|
+
- **a pain to solve** — a user or operator is stuck on a specific gap;
|
|
15
|
+
- **an opportunity to capture** — something newly possible we want to claim;
|
|
16
|
+
- **a vision to realize** — a thing we want to make exist because we want it to exist;
|
|
17
|
+
- **a mandate to meet** — a regulation, deprecation, deadline, or contractual obligation.
|
|
18
|
+
|
|
19
|
+
Name which (or which combination) applies, who is affected, and the backdrop that makes it matter now. This is the anchor every downstream trade-off resolves against.}
|
|
20
|
+
|
|
21
|
+
## Capabilities
|
|
22
|
+
|
|
23
|
+
- id: CAP-1
|
|
24
|
+
intent: {One sentence. "User or system can do X to achieve Y." WHAT, not HOW.}
|
|
25
|
+
success: {Testable or demonstrable criterion. Something a test or a real demonstration can decide.}
|
|
26
|
+
|
|
27
|
+
## Constraints
|
|
28
|
+
|
|
29
|
+
- {A non-negotiable that bends design. If it doesn't rule anything out, it doesn't belong.}
|
|
30
|
+
|
|
31
|
+
## Non-goals
|
|
32
|
+
|
|
33
|
+
- {Explicit out-of-scope item. At least one. Stops downstream from filling the vacuum.}
|
|
34
|
+
|
|
35
|
+
## Success signal
|
|
36
|
+
|
|
37
|
+
- {One or two sentences. World-change moment, not dashboard. Concrete enough to write a test or run a demonstration against.}
|
|
38
|
+
|
|
39
|
+
## Assumptions
|
|
40
|
+
|
|
41
|
+
<!-- Optional. Omit this section entirely if empty. Inferred calls made without direct confirmation from the input. -->
|
|
42
|
+
|
|
43
|
+
- {Statement of fact the Spec proceeded under, e.g. "Assumed mobile-first since input mentioned GPS but no platform."}
|
|
44
|
+
|
|
45
|
+
## Open Questions
|
|
46
|
+
|
|
47
|
+
<!-- Optional. Omit this section entirely if empty. Gaps the input did not resolve that need a human decision before downstream skills consume the Spec. -->
|
|
48
|
+
|
|
49
|
+
- {Question phrased so a human can answer it, e.g. "Is offline playback in scope for CAP-2?"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# DO NOT EDIT -- overwritten on every update.
|
|
2
|
+
#
|
|
3
|
+
# Workflow customization surface for bmad-spec.
|
|
4
|
+
#
|
|
5
|
+
# Override files (not edited here):
|
|
6
|
+
# {project-root}/_bmad/custom/bmad-spec.toml (team)
|
|
7
|
+
# {project-root}/_bmad/custom/bmad-spec.user.toml (personal)
|
|
8
|
+
|
|
9
|
+
[workflow]
|
|
10
|
+
|
|
11
|
+
# --- Configurable below. Overrides merge per BMad structural rules: ---
|
|
12
|
+
# scalars: override wins • arrays: append
|
|
13
|
+
|
|
14
|
+
# Steps to run before the standard activation (config load, greet).
|
|
15
|
+
activation_steps_prepend = []
|
|
16
|
+
|
|
17
|
+
# Steps to run after greet but before the operation begins.
|
|
18
|
+
activation_steps_append = []
|
|
19
|
+
|
|
20
|
+
# Persistent facts the workflow keeps in mind for the whole run.
|
|
21
|
+
# Each entry is either a literal sentence, a skill prefixed with `skill:`,
|
|
22
|
+
# or a `file:`-prefixed path/glob whose contents are loaded as facts.
|
|
23
|
+
# Default points to a single top-level file; override in team/user TOML
|
|
24
|
+
# to widen the scope (e.g. `_bmad/**/project-context.md`) if needed.
|
|
25
|
+
persistent_facts = [
|
|
26
|
+
"file:{project-root}/project-context.md",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
# Executed when the workflow completes. Scalar or array of instructions.
|
|
30
|
+
on_complete = ""
|
|
31
|
+
|
|
32
|
+
# Spec template. The five-field kernel skeleton. Override the path in
|
|
33
|
+
# team/user TOML to enforce a different shape (e.g. a hypothesis field
|
|
34
|
+
# for research initiatives, or a mechanics field for games).
|
|
35
|
+
spec_template = "assets/spec-template.md"
|
|
36
|
+
|
|
37
|
+
# Canonical filename for the kernel artifact inside the spec folder.
|
|
38
|
+
# Uppercase by convention to signal "the central source of truth."
|
|
39
|
+
spec_filename = "SPEC.md"
|
|
40
|
+
|
|
41
|
+
# Output path for spec folders. Lands directly under {output_folder}
|
|
42
|
+
# so bmad-spec works in core-only installs and matches the
|
|
43
|
+
# long-term BMad direction of grouping artifacts as siblings under
|
|
44
|
+
# {output_folder}/<type>/ rather than nested inside planning vs
|
|
45
|
+
# implementation folders.
|
|
46
|
+
spec_output_path = "{output_folder}/specs"
|
|
47
|
+
|
|
48
|
+
# Run-folder pattern inside spec_output_path. Resolved against the
|
|
49
|
+
# input-derived slug at activation. Same slug = same folder, so a
|
|
50
|
+
# second invocation updates the existing spec in place (capability
|
|
51
|
+
# IDs preserved). Override to add {date} or other components if a
|
|
52
|
+
# fresh dated history is preferred.
|
|
53
|
+
run_folder_pattern = "spec-{slug}"
|
|
@@ -9,5 +9,5 @@ Core,bmad-editorial-review-prose,Editorial Review - Prose,EP,Use after drafting
|
|
|
9
9
|
Core,bmad-editorial-review-structure,Editorial Review - Structure,ES,Use when doc produced from multiple subprocesses or needs structural improvement.,,[path],anytime,,,false,report located with target document,
|
|
10
10
|
Core,bmad-review-adversarial-general,Adversarial Review,AR,"Use for quality assurance or before finalizing deliverables. Code Review in other modules runs this automatically, but also useful for document reviews.",,[path],anytime,,,false,,
|
|
11
11
|
Core,bmad-review-edge-case-hunter,Edge Case Hunter Review,ECH,Use alongside adversarial review for orthogonal coverage — method-driven not attitude-driven.,,[path],anytime,,,false,,
|
|
12
|
-
Core,bmad-
|
|
12
|
+
Core,bmad-spec,Spec,SP,"Use to distill any intent input (brief, PRD, transcript, brain dump, design folder, mixed multi-source) into a succinct, no-fluff SPEC.md contract + companions that downstream work derives from. Locks the WHAT before the HOW. Works for software, game design, research, editorial, policy, business, anything intent-bearing. Validation mode also available.",,[path],anytime,,,false,{output_folder}/specs/spec-{slug},SPEC.md + companion files
|
|
13
13
|
Core,bmad-customize,BMad Customize,BC,"Use when you want to change how an agent or workflow behaves — add persistent facts, swap templates, insert activation hooks, or customize menus. Scans what's customizable, picks the right scope (agent vs workflow), writes the override to _bmad/custom/, and verifies the merge. No TOML hand-authoring required.",,,anytime,,,false,{project-root}/_bmad/custom,TOML override files
|
package/tools/skill-validator.md
CHANGED
|
@@ -10,7 +10,7 @@ Before running inference-based validation, run the deterministic validator:
|
|
|
10
10
|
node tools/validate-skills.js --json path/to/skill-dir
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
This checks
|
|
13
|
+
This checks 12 rules deterministically: SKILL-01, SKILL-02, SKILL-03, SKILL-04, SKILL-05, SKILL-06, SKILL-07, PATH-02, STEP-01, STEP-06, STEP-07, SEQ-02.
|
|
14
14
|
|
|
15
15
|
Review its JSON output. For any rule that produced **zero findings** in the first pass, **skip it** during inference-based validation below — it has already been verified. If a rule produced any findings, the inference validator should still review that rule (some rules like SKILL-04 and SKILL-06 have sub-checks that benefit from judgment). Focus your inference effort on the remaining rules that require judgment (PATH-01, PATH-03, PATH-04, PATH-05, WF-03, STEP-02, STEP-03, STEP-04, STEP-05, SEQ-01, REF-01, REF-02, REF-03).
|
|
16
16
|
|
|
@@ -98,24 +98,6 @@ If no findings are generated (from either pass), the skill passes validation.
|
|
|
98
98
|
|
|
99
99
|
---
|
|
100
100
|
|
|
101
|
-
### WF-01 — Only SKILL.md May Have `name` in Frontmatter
|
|
102
|
-
|
|
103
|
-
- **Severity:** HIGH
|
|
104
|
-
- **Applies to:** all `.md` files except `SKILL.md`
|
|
105
|
-
- **Rule:** The `name` field belongs only in `SKILL.md`. No other markdown file in the skill directory may have `name:` in its frontmatter.
|
|
106
|
-
- **Detection:** Parse frontmatter of every non-SKILL.md markdown file and check for `name:` key.
|
|
107
|
-
- **Fix:** Remove the `name:` line from the file's frontmatter.
|
|
108
|
-
- **Exception:** `bmad-agent-tech-writer` — has sub-skill files with intentional `name` fields (to be revisited).
|
|
109
|
-
|
|
110
|
-
### WF-02 — Only SKILL.md May Have `description` in Frontmatter
|
|
111
|
-
|
|
112
|
-
- **Severity:** HIGH
|
|
113
|
-
- **Applies to:** all `.md` files except `SKILL.md`
|
|
114
|
-
- **Rule:** The `description` field belongs only in `SKILL.md`. No other markdown file in the skill directory may have `description:` in its frontmatter.
|
|
115
|
-
- **Detection:** Parse frontmatter of every non-SKILL.md markdown file and check for `description:` key.
|
|
116
|
-
- **Fix:** Remove the `description:` line from the file's frontmatter.
|
|
117
|
-
- **Exception:** `bmad-agent-tech-writer` — has sub-skill files with intentional `description` fields (to be revisited).
|
|
118
|
-
|
|
119
101
|
### WF-03 — workflow.md Frontmatter Variables Must Be Config or Runtime Only
|
|
120
102
|
|
|
121
103
|
- **Severity:** HIGH
|
package/tools/validate-skills.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Deterministic Skill Validator
|
|
3
3
|
*
|
|
4
|
-
* Validates
|
|
4
|
+
* Validates 12 deterministic rules across all skill directories.
|
|
5
5
|
* Acts as a fast first-pass complement to the inference-based skill validator.
|
|
6
6
|
*
|
|
7
7
|
* What it checks:
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
* - SKILL-05: name matches directory basename
|
|
13
13
|
* - SKILL-06: description quality (length, "Use when"/"Use if")
|
|
14
14
|
* - SKILL-07: SKILL.md has body content after frontmatter
|
|
15
|
-
* - WF-01: workflow.md frontmatter has no name
|
|
16
|
-
* - WF-02: workflow.md frontmatter has no description
|
|
17
15
|
* - PATH-02: no installed_path variable
|
|
18
16
|
* - STEP-01: step filename format
|
|
19
17
|
* - STEP-06: step frontmatter has no name/description
|
|
@@ -390,43 +388,6 @@ function validateSkill(skillDir) {
|
|
|
390
388
|
}
|
|
391
389
|
}
|
|
392
390
|
|
|
393
|
-
// --- WF-01 / WF-02: non-SKILL.md files must NOT have name/description ---
|
|
394
|
-
// TODO: bmad-agent-tech-writer has sub-skill files with intentional name/description
|
|
395
|
-
const WF_SKIP_SKILLS = new Set(['bmad-agent-tech-writer']);
|
|
396
|
-
for (const filePath of allFiles) {
|
|
397
|
-
if (path.extname(filePath) !== '.md') continue;
|
|
398
|
-
if (path.basename(filePath) === 'SKILL.md') continue;
|
|
399
|
-
if (WF_SKIP_SKILLS.has(dirName)) continue;
|
|
400
|
-
|
|
401
|
-
const relFile = path.relative(skillDir, filePath);
|
|
402
|
-
const content = safeReadFile(filePath, findings, relFile);
|
|
403
|
-
if (content === null) continue;
|
|
404
|
-
const fm = parseFrontmatter(content);
|
|
405
|
-
if (!fm) continue;
|
|
406
|
-
|
|
407
|
-
if ('name' in fm) {
|
|
408
|
-
findings.push({
|
|
409
|
-
rule: 'WF-01',
|
|
410
|
-
title: 'Only SKILL.md May Have name in Frontmatter',
|
|
411
|
-
severity: 'HIGH',
|
|
412
|
-
file: relFile,
|
|
413
|
-
detail: `${relFile} frontmatter contains \`name\` — this belongs only in SKILL.md.`,
|
|
414
|
-
fix: "Remove the `name:` line from this file's frontmatter.",
|
|
415
|
-
});
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
if ('description' in fm) {
|
|
419
|
-
findings.push({
|
|
420
|
-
rule: 'WF-02',
|
|
421
|
-
title: 'Only SKILL.md May Have description in Frontmatter',
|
|
422
|
-
severity: 'HIGH',
|
|
423
|
-
file: relFile,
|
|
424
|
-
detail: `${relFile} frontmatter contains \`description\` — this belongs only in SKILL.md.`,
|
|
425
|
-
fix: "Remove the `description:` line from this file's frontmatter.",
|
|
426
|
-
});
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
|
|
430
391
|
// --- PATH-02: no installed_path ---
|
|
431
392
|
for (const filePath of allFiles) {
|
|
432
393
|
// Only check markdown and yaml files
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: bmad-create-ux-design
|
|
3
|
-
description: 'Plan UX patterns and design specifications. Use when the user says "lets create UX design" or "create UX specifications" or "help me plan the UX"'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Create UX Design Workflow
|
|
7
|
-
|
|
8
|
-
**Goal:** Create comprehensive UX design specifications through collaborative visual exploration and informed decision-making where you act as a UX facilitator working with a product stakeholder.
|
|
9
|
-
|
|
10
|
-
## Conventions
|
|
11
|
-
|
|
12
|
-
- Bare paths (e.g. `steps/step-01-init.md`) resolve from the skill root.
|
|
13
|
-
- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
|
|
14
|
-
- `{project-root}`-prefixed paths resolve from the project working directory.
|
|
15
|
-
- `{skill-name}` resolves to the skill directory's basename.
|
|
16
|
-
|
|
17
|
-
## WORKFLOW ARCHITECTURE
|
|
18
|
-
|
|
19
|
-
This uses **micro-file architecture** for disciplined execution:
|
|
20
|
-
|
|
21
|
-
- Each step is a self-contained file with embedded rules
|
|
22
|
-
- Sequential progression with user control at each step
|
|
23
|
-
- Document state tracked in frontmatter
|
|
24
|
-
- Append-only document building through conversation
|
|
25
|
-
|
|
26
|
-
## On Activation
|
|
27
|
-
|
|
28
|
-
### Step 1: Resolve the Workflow Block
|
|
29
|
-
|
|
30
|
-
Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
|
|
31
|
-
|
|
32
|
-
**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
|
|
33
|
-
|
|
34
|
-
1. `{skill-root}/customize.toml` — defaults
|
|
35
|
-
2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
|
|
36
|
-
3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
|
|
37
|
-
|
|
38
|
-
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
|
|
39
|
-
|
|
40
|
-
### Step 2: Execute Prepend Steps
|
|
41
|
-
|
|
42
|
-
Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
|
|
43
|
-
|
|
44
|
-
### Step 3: Load Persistent Facts
|
|
45
|
-
|
|
46
|
-
Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
|
|
47
|
-
|
|
48
|
-
### Step 4: Load Config
|
|
49
|
-
|
|
50
|
-
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
51
|
-
- Use `{user_name}` for greeting
|
|
52
|
-
- Use `{communication_language}` for all communications
|
|
53
|
-
- Use `{document_output_language}` for output documents
|
|
54
|
-
- Use `{planning_artifacts}` for output location and artifact scanning
|
|
55
|
-
- Use `{project_knowledge}` for additional context scanning
|
|
56
|
-
|
|
57
|
-
### Step 5: Greet the User
|
|
58
|
-
|
|
59
|
-
Greet `{user_name}`, speaking in `{communication_language}`.
|
|
60
|
-
|
|
61
|
-
### Step 6: Execute Append Steps
|
|
62
|
-
|
|
63
|
-
Execute each entry in `{workflow.activation_steps_append}` in order.
|
|
64
|
-
|
|
65
|
-
Activation is complete. Begin the workflow below.
|
|
66
|
-
|
|
67
|
-
## Paths
|
|
68
|
-
|
|
69
|
-
- `default_output_file` = `{planning_artifacts}/ux-design-specification.md`
|
|
70
|
-
|
|
71
|
-
## EXECUTION
|
|
72
|
-
|
|
73
|
-
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
74
|
-
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
|
75
|
-
- Read fully and follow: `./steps/step-01-init.md` to begin the UX design workflow.
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# DO NOT EDIT -- overwritten on every update.
|
|
2
|
-
#
|
|
3
|
-
# Workflow customization surface for bmad-create-ux-design. Mirrors the
|
|
4
|
-
# agent customization shape under the [workflow] namespace.
|
|
5
|
-
|
|
6
|
-
[workflow]
|
|
7
|
-
|
|
8
|
-
# --- Configurable below. Overrides merge per BMad structural rules: ---
|
|
9
|
-
# scalars: override wins • arrays (persistent_facts, activation_steps_*): append
|
|
10
|
-
# arrays-of-tables with `code`/`id`: replace matching items, append new ones.
|
|
11
|
-
|
|
12
|
-
# Steps to run before the standard activation (config load, greet).
|
|
13
|
-
# Overrides append. Use for pre-flight loads, compliance checks, etc.
|
|
14
|
-
|
|
15
|
-
activation_steps_prepend = []
|
|
16
|
-
|
|
17
|
-
# Steps to run after greet but before the workflow begins.
|
|
18
|
-
# Overrides append. Use for context-heavy setup that should happen
|
|
19
|
-
# once the user has been acknowledged.
|
|
20
|
-
|
|
21
|
-
activation_steps_append = []
|
|
22
|
-
|
|
23
|
-
# Persistent facts the workflow keeps in mind for the whole run
|
|
24
|
-
# (standards, compliance constraints, stylistic guardrails).
|
|
25
|
-
# Distinct from the runtime memory sidecar — these are static context
|
|
26
|
-
# loaded on activation. Overrides append.
|
|
27
|
-
#
|
|
28
|
-
# Each entry is either:
|
|
29
|
-
# - a literal sentence, e.g. "All designs must meet WCAG 2.1 AA accessibility standards."
|
|
30
|
-
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
|
|
31
|
-
# (glob patterns are supported; the file's contents are loaded and treated as facts).
|
|
32
|
-
|
|
33
|
-
persistent_facts = [
|
|
34
|
-
"file:{project-root}/**/project-context.md",
|
|
35
|
-
]
|
|
36
|
-
|
|
37
|
-
# Scalar: executed when the workflow reaches Step 14 (Workflow Completion),
|
|
38
|
-
# after the UX design specification is finalized and status is updated. Override wins.
|
|
39
|
-
# Leave empty for no custom post-completion behavior.
|
|
40
|
-
|
|
41
|
-
on_complete = ""
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
# Step 1: UX Design Workflow Initialization
|
|
2
|
-
|
|
3
|
-
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
4
|
-
|
|
5
|
-
- 🛑 NEVER generate content without user input
|
|
6
|
-
|
|
7
|
-
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
|
8
|
-
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
|
9
|
-
- ✅ ALWAYS treat this as collaborative discovery between UX facilitator and stakeholder
|
|
10
|
-
- 📋 YOU ARE A UX FACILITATOR, not a content generator
|
|
11
|
-
- 💬 FOCUS on initialization and setup only - don't look ahead to future steps
|
|
12
|
-
- 🚪 DETECT existing workflow state and handle continuation properly
|
|
13
|
-
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
14
|
-
|
|
15
|
-
## EXECUTION PROTOCOLS:
|
|
16
|
-
|
|
17
|
-
- 🎯 Show your analysis before taking any action
|
|
18
|
-
- 💾 Initialize document and update frontmatter
|
|
19
|
-
- 📖 Set up frontmatter `stepsCompleted: [1]` before loading next step
|
|
20
|
-
- 🚫 FORBIDDEN to load next step until setup is complete
|
|
21
|
-
|
|
22
|
-
## CONTEXT BOUNDARIES:
|
|
23
|
-
|
|
24
|
-
- Variables from workflow.md are available in memory
|
|
25
|
-
- Previous context = what's in output document + frontmatter
|
|
26
|
-
- Don't assume knowledge from other steps
|
|
27
|
-
- Input document discovery happens in this step
|
|
28
|
-
|
|
29
|
-
## YOUR TASK:
|
|
30
|
-
|
|
31
|
-
Initialize the UX design workflow by detecting continuation state and setting up the design specification document.
|
|
32
|
-
|
|
33
|
-
## INITIALIZATION SEQUENCE:
|
|
34
|
-
|
|
35
|
-
### 1. Check for Existing Workflow
|
|
36
|
-
|
|
37
|
-
First, check if the output document already exists:
|
|
38
|
-
|
|
39
|
-
- Look for file at `{planning_artifacts}/*ux-design-specification*.md`
|
|
40
|
-
- If exists, read the complete file including frontmatter
|
|
41
|
-
- If not exists, this is a fresh workflow
|
|
42
|
-
|
|
43
|
-
### 2. Handle Continuation (If Document Exists)
|
|
44
|
-
|
|
45
|
-
If the document exists and has frontmatter with `stepsCompleted`:
|
|
46
|
-
|
|
47
|
-
- **STOP here** and load `./step-01b-continue.md` immediately
|
|
48
|
-
- Do not proceed with any initialization tasks
|
|
49
|
-
- Let step-01b handle the continuation logic
|
|
50
|
-
|
|
51
|
-
### 3. Fresh Workflow Setup (If No Document)
|
|
52
|
-
|
|
53
|
-
If no document exists or no `stepsCompleted` in frontmatter:
|
|
54
|
-
|
|
55
|
-
#### A. Input Document Discovery
|
|
56
|
-
|
|
57
|
-
Discover and load context documents using smart discovery. Documents can be in the following locations:
|
|
58
|
-
- {planning_artifacts}/**
|
|
59
|
-
- {output_folder}/**
|
|
60
|
-
- {product_knowledge}/**
|
|
61
|
-
- {project-root}/docs/**
|
|
62
|
-
|
|
63
|
-
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
|
64
|
-
|
|
65
|
-
Try to discover the following:
|
|
66
|
-
- Product Brief (`*brief*.md`)
|
|
67
|
-
- Research Documents (`*prd*.md`)
|
|
68
|
-
- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.)
|
|
69
|
-
- Project Context (`**/project-context.md`)
|
|
70
|
-
|
|
71
|
-
<critical>Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules</critical>
|
|
72
|
-
|
|
73
|
-
**Loading Rules:**
|
|
74
|
-
|
|
75
|
-
- Load ALL discovered files completely that the user confirmed or provided (no offset/limit)
|
|
76
|
-
- If there is a project context, whatever is relevant should try to be biased in the remainder of this whole workflow process
|
|
77
|
-
- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document
|
|
78
|
-
- index.md is a guide to what's relevant whenever available
|
|
79
|
-
- Track all successfully loaded files in frontmatter `inputDocuments` array
|
|
80
|
-
|
|
81
|
-
#### B. Create Initial Document
|
|
82
|
-
|
|
83
|
-
Copy the template from `../ux-design-template.md` to `{planning_artifacts}/ux-design-specification.md`
|
|
84
|
-
Initialize frontmatter in the template.
|
|
85
|
-
|
|
86
|
-
#### C. Complete Initialization and Report
|
|
87
|
-
|
|
88
|
-
Complete setup and report to user:
|
|
89
|
-
|
|
90
|
-
**Document Setup:**
|
|
91
|
-
|
|
92
|
-
- Created: `{planning_artifacts}/ux-design-specification.md` from template
|
|
93
|
-
- Initialized frontmatter with workflow state
|
|
94
|
-
|
|
95
|
-
**Input Documents Discovered:**
|
|
96
|
-
Report what was found:
|
|
97
|
-
"Welcome {{user_name}}! I've set up your UX design workspace for {{project_name}}.
|
|
98
|
-
|
|
99
|
-
**Documents Found:**
|
|
100
|
-
|
|
101
|
-
- PRD: {number of PRD files loaded or "None found"}
|
|
102
|
-
- Product brief: {number of brief files loaded or "None found"}
|
|
103
|
-
- Other context: {number of other files loaded or "None found"}
|
|
104
|
-
|
|
105
|
-
**Files loaded:** {list of specific file names or "No additional documents found"}
|
|
106
|
-
|
|
107
|
-
Do you have any other documents you'd like me to include, or shall we continue to the next step?
|
|
108
|
-
|
|
109
|
-
[C] Continue to UX discovery"
|
|
110
|
-
|
|
111
|
-
## NEXT STEP:
|
|
112
|
-
|
|
113
|
-
After user selects [C] to continue, ensure the file `{planning_artifacts}/ux-design-specification.md` has been created and saved, and then load `./step-02-discovery.md` to begin the UX discovery phase.
|
|
114
|
-
|
|
115
|
-
Remember: Do NOT proceed to step-02 until output file has been updated and user explicitly selects [C] to continue!
|
|
116
|
-
|
|
117
|
-
## SUCCESS METRICS:
|
|
118
|
-
|
|
119
|
-
✅ Existing workflow detected and handed off to step-01b correctly
|
|
120
|
-
✅ Fresh workflow initialized with template and frontmatter
|
|
121
|
-
✅ Input documents discovered and loaded using sharded-first logic
|
|
122
|
-
✅ All discovered files tracked in frontmatter `inputDocuments`
|
|
123
|
-
✅ User confirmed document setup and can proceed
|
|
124
|
-
|
|
125
|
-
## FAILURE MODES:
|
|
126
|
-
|
|
127
|
-
❌ Proceeding with fresh initialization when existing workflow exists
|
|
128
|
-
❌ Not updating frontmatter with discovered input documents
|
|
129
|
-
❌ Creating document without proper template
|
|
130
|
-
❌ Not checking sharded folders first before whole files
|
|
131
|
-
❌ Not reporting what documents were found to user
|
|
132
|
-
|
|
133
|
-
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
|
134
|
-
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
|
135
|
-
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|