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,319 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<!--
|
|
3
|
+
UX Design Validation Report — skeleton template.
|
|
4
|
+
|
|
5
|
+
This file is a starter the synthesis pass fills in directly. There is no
|
|
6
|
+
substitution engine. The LLM:
|
|
7
|
+
1. Reads {doc_workspace}/review-rubric.md and every review-{slug}.md from
|
|
8
|
+
additional reviewers.
|
|
9
|
+
2. Copies this skeleton.
|
|
10
|
+
3. Replaces the placeholder content (everything between TEMPLATE markers)
|
|
11
|
+
with the consolidated review, preserving the structure and CSS.
|
|
12
|
+
4. Writes the result to {doc_workspace}/validation-report.html.
|
|
13
|
+
5. Writes a markdown twin to {doc_workspace}/validation-report.md.
|
|
14
|
+
|
|
15
|
+
Visual rules the LLM must preserve:
|
|
16
|
+
- The container width, the color tokens, the typography.
|
|
17
|
+
- One dimension = one collapsible <section class="dimension">.
|
|
18
|
+
- Verdict pill uses the verdict-* class matching its judgment.
|
|
19
|
+
- Severity badge uses the badge-sev-* class matching its level.
|
|
20
|
+
- Each extra reviewer (accessibility, adversarial, etc.) gets its own
|
|
21
|
+
collapsible section below the rubric dimensions.
|
|
22
|
+
- The footer always shows the artifact paths and timestamp.
|
|
23
|
+
-->
|
|
24
|
+
<html lang="en">
|
|
25
|
+
<head>
|
|
26
|
+
<meta charset="utf-8">
|
|
27
|
+
<title>UX Design Validation: TEMPLATE_UX_SPEC_NAME</title>
|
|
28
|
+
<style>
|
|
29
|
+
:root {
|
|
30
|
+
--bg: #fafaf9;
|
|
31
|
+
--surface: #ffffff;
|
|
32
|
+
--border: #e7e5e4;
|
|
33
|
+
--text: #1c1917;
|
|
34
|
+
--muted: #78716c;
|
|
35
|
+
|
|
36
|
+
--verdict-strong: #16a34a;
|
|
37
|
+
--verdict-adequate: #65a30d;
|
|
38
|
+
--verdict-thin: #d97706;
|
|
39
|
+
--verdict-broken: #dc2626;
|
|
40
|
+
|
|
41
|
+
--sev-low: #64748b;
|
|
42
|
+
--sev-medium: #ca8a04;
|
|
43
|
+
--sev-high: #ea580c;
|
|
44
|
+
--sev-critical: #dc2626;
|
|
45
|
+
}
|
|
46
|
+
* { box-sizing: border-box; }
|
|
47
|
+
html, body { margin: 0; padding: 0; }
|
|
48
|
+
body {
|
|
49
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
|
|
50
|
+
background: var(--bg);
|
|
51
|
+
color: var(--text);
|
|
52
|
+
line-height: 1.6;
|
|
53
|
+
font-size: 15px;
|
|
54
|
+
}
|
|
55
|
+
.container { max-width: 960px; margin: 0 auto; padding: 32px 24px 64px; }
|
|
56
|
+
|
|
57
|
+
header.report-header {
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: flex-start;
|
|
60
|
+
justify-content: space-between;
|
|
61
|
+
gap: 24px;
|
|
62
|
+
padding-bottom: 16px;
|
|
63
|
+
border-bottom: 1px solid var(--border);
|
|
64
|
+
margin-bottom: 24px;
|
|
65
|
+
}
|
|
66
|
+
.title h1 { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -0.01em; }
|
|
67
|
+
.title .subtitle { color: var(--muted); font-size: 13px; margin-top: 4px; font-family: ui-monospace, "SF Mono", Menlo, monospace; }
|
|
68
|
+
|
|
69
|
+
.synthesis {
|
|
70
|
+
background: var(--surface);
|
|
71
|
+
border: 1px solid var(--border);
|
|
72
|
+
border-left: 3px solid var(--muted);
|
|
73
|
+
border-radius: 8px;
|
|
74
|
+
padding: 18px 22px;
|
|
75
|
+
margin-bottom: 24px;
|
|
76
|
+
font-size: 15.5px;
|
|
77
|
+
}
|
|
78
|
+
.synthesis p { margin: 0 0 10px; }
|
|
79
|
+
.synthesis p:last-child { margin-bottom: 0; }
|
|
80
|
+
|
|
81
|
+
.dimension-summary {
|
|
82
|
+
display: grid;
|
|
83
|
+
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
84
|
+
gap: 10px;
|
|
85
|
+
margin-bottom: 24px;
|
|
86
|
+
}
|
|
87
|
+
.dim-card {
|
|
88
|
+
background: var(--surface);
|
|
89
|
+
border: 1px solid var(--border);
|
|
90
|
+
border-radius: 8px;
|
|
91
|
+
padding: 12px 14px;
|
|
92
|
+
}
|
|
93
|
+
.dim-card .dim-name { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
|
|
94
|
+
.dim-card .dim-verdict { font-size: 14px; font-weight: 600; }
|
|
95
|
+
|
|
96
|
+
section.dimension, section.reviewer-section { margin-bottom: 14px; }
|
|
97
|
+
section.dimension details, section.reviewer-section details {
|
|
98
|
+
background: var(--surface);
|
|
99
|
+
border: 1px solid var(--border);
|
|
100
|
+
border-radius: 8px;
|
|
101
|
+
overflow: hidden;
|
|
102
|
+
}
|
|
103
|
+
section summary {
|
|
104
|
+
padding: 14px 20px;
|
|
105
|
+
cursor: pointer;
|
|
106
|
+
user-select: none;
|
|
107
|
+
list-style: none;
|
|
108
|
+
display: flex;
|
|
109
|
+
align-items: center;
|
|
110
|
+
gap: 12px;
|
|
111
|
+
}
|
|
112
|
+
section summary::-webkit-details-marker { display: none; }
|
|
113
|
+
section summary::before {
|
|
114
|
+
content: "▸";
|
|
115
|
+
display: inline-block;
|
|
116
|
+
color: var(--muted);
|
|
117
|
+
transition: transform 0.15s ease;
|
|
118
|
+
}
|
|
119
|
+
section details[open] summary::before { transform: rotate(90deg); }
|
|
120
|
+
section summary h2 {
|
|
121
|
+
display: inline;
|
|
122
|
+
margin: 0;
|
|
123
|
+
font-size: 16px;
|
|
124
|
+
font-weight: 600;
|
|
125
|
+
letter-spacing: -0.005em;
|
|
126
|
+
flex: 1;
|
|
127
|
+
}
|
|
128
|
+
.verdict-pill {
|
|
129
|
+
font-size: 11px;
|
|
130
|
+
padding: 3px 10px;
|
|
131
|
+
border-radius: 999px;
|
|
132
|
+
font-weight: 600;
|
|
133
|
+
text-transform: uppercase;
|
|
134
|
+
letter-spacing: 0.04em;
|
|
135
|
+
color: white;
|
|
136
|
+
}
|
|
137
|
+
.verdict-strong { background: var(--verdict-strong); }
|
|
138
|
+
.verdict-adequate { background: var(--verdict-adequate); }
|
|
139
|
+
.verdict-thin { background: var(--verdict-thin); }
|
|
140
|
+
.verdict-broken { background: var(--verdict-broken); }
|
|
141
|
+
|
|
142
|
+
.dim-body { padding: 4px 20px 18px; }
|
|
143
|
+
.dim-judgment { color: var(--text); font-size: 14.5px; }
|
|
144
|
+
.dim-judgment p { margin: 0 0 10px; }
|
|
145
|
+
|
|
146
|
+
.findings-list { padding: 0 20px 4px; }
|
|
147
|
+
article.finding {
|
|
148
|
+
padding: 14px 0;
|
|
149
|
+
border-top: 1px solid var(--border);
|
|
150
|
+
}
|
|
151
|
+
article.finding:first-child { border-top: none; }
|
|
152
|
+
article.finding header {
|
|
153
|
+
display: flex;
|
|
154
|
+
align-items: center;
|
|
155
|
+
gap: 10px;
|
|
156
|
+
flex-wrap: wrap;
|
|
157
|
+
margin-bottom: 6px;
|
|
158
|
+
}
|
|
159
|
+
.badge {
|
|
160
|
+
font-size: 10.5px;
|
|
161
|
+
padding: 3px 8px;
|
|
162
|
+
border-radius: 4px;
|
|
163
|
+
font-weight: 600;
|
|
164
|
+
text-transform: uppercase;
|
|
165
|
+
letter-spacing: 0.04em;
|
|
166
|
+
line-height: 1.4;
|
|
167
|
+
}
|
|
168
|
+
.badge-sev-low { background: rgba(100, 116, 139, 0.12); color: var(--sev-low); }
|
|
169
|
+
.badge-sev-medium { background: rgba(202, 138, 4, 0.14); color: var(--sev-medium); }
|
|
170
|
+
.badge-sev-high { background: rgba(234, 88, 12, 0.14); color: var(--sev-high); }
|
|
171
|
+
.badge-sev-critical { background: rgba(220, 38, 38, 0.14); color: var(--sev-critical); }
|
|
172
|
+
.finding-title { margin: 0; font-size: 15px; font-weight: 500; flex: 1; min-width: 200px; }
|
|
173
|
+
.finding-location { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12.5px; color: var(--muted); }
|
|
174
|
+
.finding-note, .finding-fix { margin-top: 6px; font-size: 14px; }
|
|
175
|
+
.finding-fix strong { color: var(--muted); font-weight: 500; }
|
|
176
|
+
|
|
177
|
+
.reviewer-source {
|
|
178
|
+
font-size: 12px;
|
|
179
|
+
color: var(--muted);
|
|
180
|
+
font-family: ui-monospace, "SF Mono", Menlo, monospace;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.mechanical {
|
|
184
|
+
background: var(--surface);
|
|
185
|
+
border: 1px solid var(--border);
|
|
186
|
+
border-radius: 8px;
|
|
187
|
+
padding: 16px 20px;
|
|
188
|
+
margin-top: 24px;
|
|
189
|
+
font-size: 14px;
|
|
190
|
+
}
|
|
191
|
+
.mechanical h3 { margin: 0 0 10px; font-size: 14px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
|
|
192
|
+
.mechanical ul { margin: 0; padding-left: 20px; }
|
|
193
|
+
.mechanical li { margin-bottom: 4px; color: var(--text); }
|
|
194
|
+
|
|
195
|
+
footer.report-footer {
|
|
196
|
+
margin-top: 40px;
|
|
197
|
+
padding-top: 16px;
|
|
198
|
+
border-top: 1px solid var(--border);
|
|
199
|
+
font-size: 12px;
|
|
200
|
+
color: var(--muted);
|
|
201
|
+
font-family: ui-monospace, "SF Mono", Menlo, monospace;
|
|
202
|
+
}
|
|
203
|
+
footer .meta { display: flex; gap: 24px; flex-wrap: wrap; }
|
|
204
|
+
</style>
|
|
205
|
+
</head>
|
|
206
|
+
<body>
|
|
207
|
+
<div class="container">
|
|
208
|
+
|
|
209
|
+
<!-- TEMPLATE: header. Fill ux spec name and ux spec path. No overall grade —
|
|
210
|
+
per-category verdicts and severity counts below carry the picture. -->
|
|
211
|
+
<header class="report-header">
|
|
212
|
+
<div class="title">
|
|
213
|
+
<h1>TEMPLATE_UX_SPEC_NAME — UX Design Validation Report</h1>
|
|
214
|
+
<div class="subtitle">TEMPLATE_UX_SPEC_PATH</div>
|
|
215
|
+
</div>
|
|
216
|
+
</header>
|
|
217
|
+
|
|
218
|
+
<!-- TEMPLATE: overall synthesis paragraphs. Lift directly from
|
|
219
|
+
review-rubric.md "Overall verdict" section; expand if extra reviewers
|
|
220
|
+
(accessibility, adversarial, etc.) materially shift the picture.
|
|
221
|
+
Wrap each paragraph in <p>. -->
|
|
222
|
+
<div class="synthesis">
|
|
223
|
+
<p>TEMPLATE_SYNTHESIS_PARAGRAPH</p>
|
|
224
|
+
</div>
|
|
225
|
+
|
|
226
|
+
<!-- TEMPLATE: dimension summary cards. One per rubric category, in this
|
|
227
|
+
canonical order (from references/validate.md):
|
|
228
|
+
1. Flow coverage
|
|
229
|
+
2. Token completeness
|
|
230
|
+
3. Component coverage
|
|
231
|
+
4. State coverage
|
|
232
|
+
5. Visual reference coverage
|
|
233
|
+
6. Bloat & overspecification
|
|
234
|
+
7. Inheritance discipline
|
|
235
|
+
8. Shape fit
|
|
236
|
+
The dim-verdict text uses one of: strong | adequate | thin | broken. -->
|
|
237
|
+
<div class="dimension-summary">
|
|
238
|
+
<div class="dim-card">
|
|
239
|
+
<div class="dim-name">TEMPLATE_CATEGORY_NAME</div>
|
|
240
|
+
<div class="dim-verdict" style="color: var(--verdict-TEMPLATE_VERDICT)">TEMPLATE_VERDICT_TEXT</div>
|
|
241
|
+
</div>
|
|
242
|
+
<!-- repeat for each of the eight rubric categories -->
|
|
243
|
+
</div>
|
|
244
|
+
|
|
245
|
+
<!-- TEMPLATE: one section per rubric category, same canonical order as the
|
|
246
|
+
summary cards above. Skip a category entirely if the rubric review
|
|
247
|
+
marked it n/a for this UX spec. Open the section by default if verdict
|
|
248
|
+
is thin or broken. -->
|
|
249
|
+
<section class="dimension">
|
|
250
|
+
<details open>
|
|
251
|
+
<summary>
|
|
252
|
+
<h2>TEMPLATE_CATEGORY_NAME</h2>
|
|
253
|
+
<span class="verdict-pill verdict-TEMPLATE_VERDICT">TEMPLATE_VERDICT_TEXT</span>
|
|
254
|
+
</summary>
|
|
255
|
+
<div class="dim-body">
|
|
256
|
+
<div class="dim-judgment">
|
|
257
|
+
<p>TEMPLATE_DIMENSION_JUDGMENT</p>
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
<div class="findings-list">
|
|
261
|
+
<!-- TEMPLATE: zero or more findings -->
|
|
262
|
+
<article class="finding">
|
|
263
|
+
<header>
|
|
264
|
+
<span class="badge badge-sev-TEMPLATE_SEVERITY">TEMPLATE_SEVERITY</span>
|
|
265
|
+
<h3 class="finding-title">TEMPLATE_FINDING_TITLE</h3>
|
|
266
|
+
<span class="finding-location">TEMPLATE_LOCATION</span>
|
|
267
|
+
</header>
|
|
268
|
+
<div class="finding-note">TEMPLATE_FINDING_NOTE</div>
|
|
269
|
+
<div class="finding-fix"><strong>Fix:</strong> TEMPLATE_SUGGESTED_FIX</div>
|
|
270
|
+
</article>
|
|
271
|
+
</div>
|
|
272
|
+
</details>
|
|
273
|
+
</section>
|
|
274
|
+
|
|
275
|
+
<!-- TEMPLATE: one section per extra reviewer that ran (accessibility,
|
|
276
|
+
adversarial, brand-conformance, etc.). Skip this block entirely if
|
|
277
|
+
only the rubric walker ran. -->
|
|
278
|
+
<section class="reviewer-section">
|
|
279
|
+
<details>
|
|
280
|
+
<summary>
|
|
281
|
+
<h2>Accessibility review</h2>
|
|
282
|
+
<span class="reviewer-source">TEMPLATE_REVIEWER_SOURCE_FILE</span>
|
|
283
|
+
</summary>
|
|
284
|
+
<div class="dim-body">
|
|
285
|
+
<div class="dim-judgment">
|
|
286
|
+
<p>TEMPLATE_REVIEWER_PREAMBLE</p>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
<div class="findings-list">
|
|
290
|
+
<article class="finding">
|
|
291
|
+
<header>
|
|
292
|
+
<span class="badge badge-sev-TEMPLATE_SEVERITY">TEMPLATE_SEVERITY</span>
|
|
293
|
+
<h3 class="finding-title">TEMPLATE_FINDING_TITLE</h3>
|
|
294
|
+
<span class="finding-location">TEMPLATE_LOCATION</span>
|
|
295
|
+
</header>
|
|
296
|
+
<div class="finding-note">TEMPLATE_FINDING_NOTE</div>
|
|
297
|
+
<div class="finding-fix"><strong>Fix:</strong> TEMPLATE_SUGGESTED_FIX</div>
|
|
298
|
+
</article>
|
|
299
|
+
</div>
|
|
300
|
+
</details>
|
|
301
|
+
</section>
|
|
302
|
+
|
|
303
|
+
<!-- TEMPLATE: mechanical notes — short, bulleted. Skip if there are none. -->
|
|
304
|
+
<div class="mechanical">
|
|
305
|
+
<h3>Mechanical notes</h3>
|
|
306
|
+
<ul>
|
|
307
|
+
<li>TEMPLATE_MECHANICAL_NOTE</li>
|
|
308
|
+
</ul>
|
|
309
|
+
</div>
|
|
310
|
+
|
|
311
|
+
<footer class="report-footer">
|
|
312
|
+
<div class="meta">
|
|
313
|
+
<span>Rubric: TEMPLATE_RUBRIC_PATH</span>
|
|
314
|
+
<span>Generated: TEMPLATE_TIMESTAMP</span>
|
|
315
|
+
</div>
|
|
316
|
+
</footer>
|
|
317
|
+
</div>
|
|
318
|
+
</body>
|
|
319
|
+
</html>
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# DO NOT EDIT -- overwritten on every update.
|
|
2
|
+
#
|
|
3
|
+
# Workflow customization surface for bmad-ux.
|
|
4
|
+
# Overrides:
|
|
5
|
+
# {project-root}/_bmad/custom/bmad-ux.toml (team)
|
|
6
|
+
# {project-root}/_bmad/custom/bmad-ux.user.toml (personal)
|
|
7
|
+
# Merge rules: scalars override, arrays append.
|
|
8
|
+
|
|
9
|
+
[workflow]
|
|
10
|
+
|
|
11
|
+
# Steps to run before/after standard activation. Append-only.
|
|
12
|
+
activation_steps_prepend = []
|
|
13
|
+
activation_steps_append = []
|
|
14
|
+
|
|
15
|
+
# Persistent facts loaded at activation and kept in mind for the run.
|
|
16
|
+
# Entries: literal sentence, `skill:NAME`, or `file:PATH` (glob ok).
|
|
17
|
+
persistent_facts = [
|
|
18
|
+
"file:{project-root}/**/project-context.md",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
# Runs at workflow completion. String or array of instructions.
|
|
22
|
+
on_complete = ""
|
|
23
|
+
|
|
24
|
+
# Reference DESIGN.md spines the distillation subagent reads to anchor shape
|
|
25
|
+
# and editorial richness. Convention-compliant with the Google Labs DESIGN.md
|
|
26
|
+
# spec (https://github.com/google-labs-code/design.md). Append entries via
|
|
27
|
+
# override TOML to seed an org-specific canonical aesthetic.
|
|
28
|
+
# Each entry: `file:PATH` (or bare relative path, resolved skill-relative).
|
|
29
|
+
design_md_examples = [
|
|
30
|
+
"assets/design-example-mobile.md",
|
|
31
|
+
"assets/design-example-shadcn.md",
|
|
32
|
+
"assets/design-example-editorial.md",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
# Reference EXPERIENCE.md spines for the behavioral/flow/IA layer. Each entry:
|
|
36
|
+
# `file:PATH` (or bare relative path, resolved skill-relative).
|
|
37
|
+
experience_md_examples = [
|
|
38
|
+
"assets/experience-example-mobile.md",
|
|
39
|
+
"assets/experience-example-shadcn.md",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
# Design handoff targets — external tools that can take over the design /
|
|
43
|
+
# visual identity work. The user runs the tool externally and saves outputs
|
|
44
|
+
# (whatever the tool produces — DESIGN.md, Figma files, React components,
|
|
45
|
+
# HTML mocks) to {doc_workspace}.
|
|
46
|
+
# Each entry: `tool:NAME: <directive>`, `skill:NAME`, or plain-text descriptor.
|
|
47
|
+
# Default: Google Stitch (emits DESIGN.md + per-screen HTML). Other producers:
|
|
48
|
+
# Vercel v0, Figma, Galileo, Anima, internal generators.
|
|
49
|
+
design_handoffs = [
|
|
50
|
+
"Google Stitch (https://stitch.withgoogle.com) — emits DESIGN.md + per-screen HTML. Paste assembled prompt; save outputs to {doc_workspace}.",
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
# HTML skeleton filled in by the validation synthesis pass.
|
|
54
|
+
validation_report_template = "assets/validation-report-template.html"
|
|
55
|
+
|
|
56
|
+
# Run folder. DESIGN.md, EXPERIENCE.md, .decision-log.md, .working/
|
|
57
|
+
# (creative-tool artifacts), imports/ (user-supplied screens / brand decks /
|
|
58
|
+
# Figma exports / sketches), optional mockups/ and wireframes/ (promoted
|
|
59
|
+
# artifacts), optional validation-report.* all land inside
|
|
60
|
+
# {ux_output_path}/{run_folder_pattern}/.
|
|
61
|
+
ux_output_path = "{planning_artifacts}/ux-designs"
|
|
62
|
+
run_folder_pattern = "ux-{project_name}-{date}"
|
|
63
|
+
|
|
64
|
+
# Creative tools registry. Collaborative renderers invoked on demand during
|
|
65
|
+
# Discovery and at Finalize. Entry forms: `file:PATH`, `skill:NAME`,
|
|
66
|
+
# `tool:MCP_TOOL: <directive>`, or plain text. Defaults ship for HTML color
|
|
67
|
+
# themes, HTML design directions, Excalidraw wireframes (Discovery), and
|
|
68
|
+
# 1:1 HTML key-screen mockups (Finalize). Working artifacts land in
|
|
69
|
+
# {doc_workspace}/.working/; finalize promotes those with lasting reference
|
|
70
|
+
# value to mockups/ or wireframes/. See references/creative-tools.md.
|
|
71
|
+
creative_tools = [
|
|
72
|
+
"file:assets/color-themes.md",
|
|
73
|
+
"file:assets/design-directions.md",
|
|
74
|
+
"file:assets/excalidraw-wireframe.md",
|
|
75
|
+
"file:assets/key-screens.md",
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
# Polish passes applied to DESIGN.md and EXPERIENCE.md at finalize.
|
|
79
|
+
# Entries: `skill:NAME`, `file:PATH`, or plain text directive.
|
|
80
|
+
# Suggested order: structural → content/voice → prose mechanics.
|
|
81
|
+
doc_standards = [
|
|
82
|
+
"skill:bmad-editorial-review-structure",
|
|
83
|
+
"skill:bmad-editorial-review-prose",
|
|
84
|
+
]
|
|
85
|
+
|
|
86
|
+
# Information retrieval registry. Consulted on demand when the conversation
|
|
87
|
+
# surfaces a matching need. Distinct from creative_tools (artifact production).
|
|
88
|
+
# Example: "When researching component patterns, consult corp:design_system_search."
|
|
89
|
+
external_sources = []
|
|
90
|
+
|
|
91
|
+
# Routes outputs beyond local files at Finalize. Returned URLs/IDs surfaced
|
|
92
|
+
# to the user. Unavailable tools skipped and flagged.
|
|
93
|
+
# Example: "Upload DESIGN.md to Confluence via corp:confluence_upload (space_key='DESIGN')."
|
|
94
|
+
external_handoffs = []
|
|
95
|
+
|
|
96
|
+
# Reviewers spawned at Finalize step 4 and at Validate intent, alongside
|
|
97
|
+
# the rubric walker. Entries: `skill:NAME`, `file:PATH`, or plain text.
|
|
98
|
+
# Common ad-hoc add (judged by the skill): accessibility-focused reviewer
|
|
99
|
+
# for consumer / regulated work.
|
|
100
|
+
finalize_reviewers = []
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Creative Tools
|
|
2
|
+
|
|
3
|
+
`{workflow.creative_tools}` is a registry of collaborative renderers invoked on demand when seeing options helps the user decide. Entries follow the standard prefix convention: `skill:NAME`, `file:PATH`, `tool:MCP_TOOL_NAME: <directive>`, or plain-text directive.
|
|
4
|
+
|
|
5
|
+
Defaults ship for HTML color themes, HTML design directions, Excalidraw wireframes (Discovery), and 1:1 HTML key-screen mocks (Finalize). Teams append more via override TOML — Figma MCP, custom skills, prompt-based mood boards.
|
|
6
|
+
|
|
7
|
+
## When to invoke
|
|
8
|
+
|
|
9
|
+
Decision moments where a visual beats more conversation: picking color tokens, picking a visual personality among directions, sketching IA, mocking a tricky flow. Fast-path users typically skip; coaching-path users typically lean in. Read the room.
|
|
10
|
+
|
|
11
|
+
## Artifact handling
|
|
12
|
+
|
|
13
|
+
Every renderer writes to `{doc_workspace}/.working/` with a descriptive filename. `.working/` is the audit trail and survives the run. At Finalize, the facilitator walks `.working/` with the user and promotes artifacts with lasting reference value to `{doc_workspace}/mockups/` (HTML anchoring a brand or layout decision) or `{doc_workspace}/wireframes/` (Excalidraw a dev would glance at). Bar for promotion: *would a future reader of `DESIGN.md` or `EXPERIENCE.md` open this?* Default is leave-in-`.working/`.
|
|
14
|
+
|
|
15
|
+
## Renderer contract
|
|
16
|
+
|
|
17
|
+
The parent passes the subagent: current `.decision-log.md`, relevant prior `.working/` captures, the user's stated intent for this pass, the output path. The subagent writes its artifact under `.working/` and returns ONLY a compact summary (file path, one line per variant, mode coverage). Parent never holds the full payload.
|
|
18
|
+
|
|
19
|
+
For HTML, open in browser when interactive: `python3 -c "import webbrowser, pathlib; webbrowser.open(pathlib.Path('PATH').resolve().as_uri())"`. Skip in headless.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# DESIGN.md Spec — Working Reference
|
|
2
|
+
|
|
3
|
+
Source of truth: [google-labs-code/design.md](https://github.com/google-labs-code/design.md) (Apache 2.0, Google Labs, April 2026). This file is a working summary; the URL wins on conflict.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
YAML frontmatter (machine-readable tokens) + markdown body (human-readable rationale, prose sections).
|
|
8
|
+
|
|
9
|
+
## Frontmatter tokens
|
|
10
|
+
|
|
11
|
+
| Key | Type | Notes |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `name` | string | Required. Brand or system name. |
|
|
14
|
+
| `description` | string | One-line statement of what this system is. |
|
|
15
|
+
| `colors` | flat object | Kebab-case keys. Values are hex strings (`'#FBF9F4'`). |
|
|
16
|
+
| `typography` | nested object | Each value: an object with any subset of `fontFamily`, `fontSize`, `fontWeight`, `lineHeight`, `letterSpacing`. |
|
|
17
|
+
| `rounded` | object | Scale names (`sm`, `md`, `lg`, `xl`, `full`, `DEFAULT`) → CSS dimensions. `full` is conventionally `9999px`. |
|
|
18
|
+
| `spacing` | object | Scale levels (`'1'`, `'2'`, ...) or named tokens (`gutter`, `margin-mobile`, `editorial-gap`) → dimensions. |
|
|
19
|
+
| `components` | object | Component-name → object of component tokens mapped to values or `{path.to.token}` references. |
|
|
20
|
+
|
|
21
|
+
## Body sections (omittable, order-locked when present)
|
|
22
|
+
|
|
23
|
+
1. **Brand & Style** — Aesthetic posture in prose. The editorial voice — what *kind* of thing this is.
|
|
24
|
+
2. **Colors** — Per-color story. Why each exists, where it's used, what it's *not* used for.
|
|
25
|
+
3. **Typography** — Type roles, ramp, and rules. Platform conventions noted semantically when inherited.
|
|
26
|
+
4. **Layout & Spacing** — Spacing scale narrative, grid behavior, margins, gutters, breakpoint rules.
|
|
27
|
+
5. **Elevation & Depth** — Shadow language and tonal layering rules.
|
|
28
|
+
6. **Shapes** — Corner radii rules and the aesthetic logic behind them.
|
|
29
|
+
7. **Components** — Per-component visual specs: anatomy, color usage, sizing, state appearance.
|
|
30
|
+
8. **Do's and Don'ts** — Hard visual rules — what to do, what to avoid.
|
|
31
|
+
|
|
32
|
+
Sections may be omitted when not relevant; order is locked when present.
|
|
33
|
+
|
|
34
|
+
## Cross-reference syntax
|
|
35
|
+
|
|
36
|
+
`{path.to.token}` used in prose and inside component objects to reference frontmatter tokens. Examples:
|
|
37
|
+
|
|
38
|
+
- `{colors.primary}`
|
|
39
|
+
- `{typography.body.fontSize}`
|
|
40
|
+
- `{rounded.md}`
|
|
41
|
+
- `{spacing.4}`
|
|
42
|
+
|
|
43
|
+
The path follows the YAML structure.
|
|
44
|
+
|
|
45
|
+
## Common patterns
|
|
46
|
+
|
|
47
|
+
- **Light/dark mode.** Either separate kebab-case tokens (`surface-base` / `surface-base-dark`) or separate DESIGN.md files per mode. The spec allows either; pick the form that reads cleanest for the product.
|
|
48
|
+
- **Platform conventions.** When inheriting from native platforms (iOS UIKit, Android Compose, Apple Human Interface Guidelines), use a `note` field instead of literal values: `{ note: 'iOS Title 1 · Android Headline Small' }`. The spec is the spec; the platform owns the rendered values.
|
|
49
|
+
- **UI-system inheritance.** When inheriting from shadcn / MUI / Tailwind / internal design system, reference the system's tokens by name rather than restating values. DESIGN.md specifies only the deltas (brand color overrides, typography swaps, component customizations).
|
|
50
|
+
- **Component tokens.** The `components` frontmatter entry maps each named component (e.g., `button-primary`) to its specific token values. Use `{path.to.token}` references freely; the resolver flattens at consumption time.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Headless Mode
|
|
2
|
+
|
|
3
|
+
Load this file when invoked headless. Follow it for the whole run.
|
|
4
|
+
|
|
5
|
+
## Detection
|
|
6
|
+
|
|
7
|
+
Headless when any of: caller sets `headless: true` (or harness equivalent); invocation is from another skill or non-interactive runner; `{workflow.activation_steps_prepend}` declares it; first message is an automation context pre-supplying inputs. Ambiguous → default interactive.
|
|
8
|
+
|
|
9
|
+
## Inputs
|
|
10
|
+
|
|
11
|
+
Free-form structured payload in the first message:
|
|
12
|
+
|
|
13
|
+
- `intent` — `"create"`, `"update"`, or `"validate"`. If absent, infer from the artifact set.
|
|
14
|
+
- **Create**: any source spec (PRD, brief, requirements list, design-thinking output, prior UX — text, path, or URL) plus brand / platform / accessibility notes; `doc_workspace` if a specific run folder is required.
|
|
15
|
+
- **Update**: existing workspace containing `DESIGN.md` + `EXPERIENCE.md` (or path to either) + change signal.
|
|
16
|
+
- **Validate**: existing workspace containing `DESIGN.md` + `EXPERIENCE.md` (or path to either). Workspace defaults to the spines' containing directory.
|
|
17
|
+
|
|
18
|
+
Inferences → `assumptions[]`. Gaps needing a human decision → `open_questions[]`. Do not invent persona, brand, accessibility, or scope detail.
|
|
19
|
+
|
|
20
|
+
Creative tools default off in headless. Caller can override; artifacts land in `.working/` and are not promoted unless the caller signals.
|
|
21
|
+
|
|
22
|
+
## Behavior
|
|
23
|
+
|
|
24
|
+
Do not ask. Do not greet. Complete the intent from what's provided, what exists in `{doc_workspace}`, or what you can discover. If intent stays ambiguous after inference, halt with `status: "blocked"` and a one-sentence `reason`.
|
|
25
|
+
|
|
26
|
+
`status`:
|
|
27
|
+
- `"complete"` — stands on its own.
|
|
28
|
+
- `"partial"` — artifact produced but `open_questions[]` non-empty or critical inputs inferred.
|
|
29
|
+
- `"blocked"` — no artifact produced.
|
|
30
|
+
|
|
31
|
+
End with JSON matching `assets/headless-schemas.md`. `intent` reflects detected intent. Omit keys for artifacts not produced.
|
|
32
|
+
|
|
33
|
+
## Mode-specific overrides
|
|
34
|
+
|
|
35
|
+
**Update.** Apply the change. Log to `.decision-log.md` with rationale. Surface conflicts in `conflicts_with_prior_decisions[]`.
|
|
36
|
+
|
|
37
|
+
**Validate.** Always write both `validation-report.html` and `validation-report.md` regardless of finding count. Always include `"offer_to_update": true`. Skip the browser-open step.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Validate
|
|
2
|
+
|
|
3
|
+
Critique an existing spine pair (`DESIGN.md` + `EXPERIENCE.md`) or any format of UX the user provides, without changing it. The synthesis pipeline below is also used at the Reviewer Gate during Create / Update Finalize.
|
|
4
|
+
|
|
5
|
+
## Orient
|
|
6
|
+
|
|
7
|
+
Subagent-extract from `.decision-log.md`, sources in frontmatter, `imports/`, `mockups/`, `wireframes/`, `DESIGN.md`, `EXPERIENCE.md`. Parent assembles from extracts.
|
|
8
|
+
|
|
9
|
+
## Reviewer Gate
|
|
10
|
+
|
|
11
|
+
**Opt-in.** Reviewers are costly. At Finalize, ask first if the user wants to run UX validation with multiple subagent lenses. Default offered, easy skip. At Validate intent, skip that question, the user already invoked it.
|
|
12
|
+
|
|
13
|
+
**Lens menu.** UNLESS HEADLESS MODE: Always present the lens picks before dispatching. Build the menu from: rubric walker (this file) + `{workflow.finalize_reviewers}` + ad-hoc reviewers the skill judges relevant. The user picks all, a subset, or none. Only picked lenses dispatch.
|
|
14
|
+
|
|
15
|
+
Rubric walker prompt:
|
|
16
|
+
|
|
17
|
+
> Validate the spine pair (`DESIGN.md` + `EXPERIENCE.md`) as the contract for downstream consumers (architecture, story-dev — human or AI). Can a consumer source-extract cleanly, with every reference resolving and every load-bearing decision committed? Read `{workflow.design_md_examples}` and `{workflow.experience_md_examples}` first.
|
|
18
|
+
>
|
|
19
|
+
> **Pass 1 — mechanical coverage.** Per category: extract, then list misses with location citations. No misses = **strong**.
|
|
20
|
+
>
|
|
21
|
+
> 1. **Flow coverage** (EXPERIENCE.md). Sources frontmatter → extract every UJ / requirement name. Verify each has a Key Flow with named protagonist, numbered steps, a climax beat, and a failure path where applicable.
|
|
22
|
+
>
|
|
23
|
+
> 2. **Token completeness** (DESIGN.md). Extract every token in the YAML frontmatter and every `{path.to.token}` reference in the prose. Verify each defined (see `references/design-md-spec.md` for type rules). **Color tokens missing hex (or light/dark pairs where applicable) are critical** — downstream code mirrors the spine. Platform conventions (native dynamic type, 8pt grid) may stay semantic. Contrast targets stated for load-bearing combinations.
|
|
24
|
+
>
|
|
25
|
+
> 3. **Component coverage** (both spines). Extract every component name used anywhere. Verify each has a row in DESIGN.md.Components (visual spec) *and* EXPERIENCE.md.Component Patterns (behavioral spec) — real rules, not one-word descriptions.
|
|
26
|
+
>
|
|
27
|
+
> 4. **State coverage** (EXPERIENCE.md). Walk every IA surface. List states it should have (empty, cold-load, focus, error, offline, permission-denied — whichever apply). Verify each covered.
|
|
28
|
+
>
|
|
29
|
+
> 5. **Visual reference coverage.** List every file in `mockups/`, `wireframes/`, `imports/`. Spines link to each inline at the relevant section and name what it illustrates; spines-win-on-conflict stated once. List orphans and unspecific references.
|
|
30
|
+
>
|
|
31
|
+
> **Pass 2 — judgment.** Verdict per category (*strong / adequate / thin / broken*); findings only where they add information.
|
|
32
|
+
>
|
|
33
|
+
> 6. **Bloat & overspecification.** Pixel specs where tokens cover it; source restatement (personas, FRs, scope); prose where a table works; sections no downstream consumer would read; decorative narrative untied to a decision. DESIGN.md prose may carry editorial voice; EXPERIENCE.md prose should not.
|
|
34
|
+
>
|
|
35
|
+
> 7. **Inheritance discipline.** `sources` frontmatter resolves. UJ / requirement names verbatim from sources. Glossary identical across spines and sources. Component names identical across all sections in both files. EXPERIENCE.md token references resolve to DESIGN.md tokens by name.
|
|
36
|
+
>
|
|
37
|
+
> 8. **Shape fit.** DESIGN.md sections in canonical order (Brand & Style → Colors → Typography → Layout & Spacing → Elevation & Depth → Shapes → Components → Do's and Don'ts; omittable but order-locked when present). EXPERIENCE.md required defaults present (Foundation, IA, Voice and Tone, Component Patterns, State Patterns, Interaction Primitives, Accessibility Floor, Key Flows). Dropped defaults defensible. Required-when-applicable present where triggered (Inspiration when sources / log show reference products or rejects; Responsive when multi-surface or breakpoints). Invented sections earn their place.
|
|
38
|
+
>
|
|
39
|
+
> Severity = downstream impact, not fix difficulty.
|
|
40
|
+
>
|
|
41
|
+
> Write to `{doc_workspace}/review-rubric.md`:
|
|
42
|
+
>
|
|
43
|
+
> ```markdown
|
|
44
|
+
> # Spine Pair Review — {project_name}
|
|
45
|
+
>
|
|
46
|
+
> ## Overall verdict
|
|
47
|
+
> [2–3 sentences]
|
|
48
|
+
>
|
|
49
|
+
> ## 1. Flow coverage — [verdict]
|
|
50
|
+
> [What was checked.]
|
|
51
|
+
> ### Findings
|
|
52
|
+
> - **[critical|high|medium|low]** [finding] (location). *Fix:* [suggestion].
|
|
53
|
+
>
|
|
54
|
+
> (repeat 2–8)
|
|
55
|
+
>
|
|
56
|
+
> ## Mechanical notes
|
|
57
|
+
> [Name inconsistencies, broken cross-refs, frontmatter completeness, Mermaid syntax.]
|
|
58
|
+
> ```
|
|
59
|
+
>
|
|
60
|
+
> Return ONLY a compact summary: overall verdict, per-section verdicts, finding counts by severity, file path.
|
|
61
|
+
|
|
62
|
+
The gate may dispatch `{workflow.finalize_reviewers}` and ad-hoc reviewers (accessibility for consumer / regulated). Each writes `review-{slug}.md` and returns a compact summary. Parallel.
|
|
63
|
+
|
|
64
|
+
## Synthesis pipeline
|
|
65
|
+
|
|
66
|
+
Under Validate intent, after every reviewer returns, render one consolidated report. Don't skip.
|
|
67
|
+
|
|
68
|
+
1. Read every `{doc_workspace}/review-*.md`.
|
|
69
|
+
2. Fill `{workflow.validation_report_template}`. No overall grade — the per-category verdicts and severity counts already say what's true. Synthesis paragraph lifts the rubric's overall verdict; add a second if extra reviewers shift the picture. One section per rubric category (open if thin / broken), one per extra reviewer (closed, adversarial voice preserved).
|
|
70
|
+
3. Write `{doc_workspace}/validation-report.html`.
|
|
71
|
+
4. Write the Markdown twin `{doc_workspace}/validation-report.md` — same content grouped by severity.
|
|
72
|
+
5. Open HTML: `python3 -c "import webbrowser, pathlib; webbrowser.open(pathlib.Path('{doc_workspace}/validation-report.html').resolve().as_uri())"`. Skip headless.
|
|
73
|
+
|
|
74
|
+
Re-running overwrites the consolidated report; individual `review-*.md` files persist.
|
|
75
|
+
|
|
76
|
+
## Markdown twin shape
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
# Validation Report — {project_name}
|
|
80
|
+
|
|
81
|
+
- **DESIGN.md:** `{design_path}`
|
|
82
|
+
- **EXPERIENCE.md:** `{experience_path}`
|
|
83
|
+
- **Run at:** {ISO timestamp}
|
|
84
|
+
|
|
85
|
+
## Overall verdict
|
|
86
|
+
{synthesis paragraphs}
|
|
87
|
+
|
|
88
|
+
## Category verdicts
|
|
89
|
+
- Flow coverage — {verdict}
|
|
90
|
+
- Token completeness — {verdict}
|
|
91
|
+
- Component coverage — {verdict}
|
|
92
|
+
- State coverage — {verdict}
|
|
93
|
+
- Visual reference coverage — {verdict}
|
|
94
|
+
- Bloat & overspecification — {verdict}
|
|
95
|
+
- Inheritance discipline — {verdict}
|
|
96
|
+
- Shape fit — {verdict}
|
|
97
|
+
|
|
98
|
+
## Findings by severity
|
|
99
|
+
|
|
100
|
+
### Critical (n)
|
|
101
|
+
**[Category or Reviewer]** — Title (§ location)
|
|
102
|
+
{Note}
|
|
103
|
+
Fix: {suggested fix}
|
|
104
|
+
|
|
105
|
+
### High (n) / Medium (n) / Low (n)
|
|
106
|
+
...
|
|
107
|
+
|
|
108
|
+
## Reviewer files
|
|
109
|
+
- `review-rubric.md`
|
|
110
|
+
- ...
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Close
|
|
114
|
+
|
|
115
|
+
Surface artifact paths. Always offer to roll findings into an Update.
|
|
@@ -16,7 +16,7 @@ BMad Method,bmad-technical-research,Technical Research,TR,Technical feasibility
|
|
|
16
16
|
BMad Method,bmad-product-brief,Create Brief,CB,An expert guided experience to nail down your product idea in a brief. a gentler approach than PRFAQ when you are already sure of your concept and nothing will sway you.,,-A,1-analysis,,,false,planning_artifacts,product brief
|
|
17
17
|
BMad Method,bmad-prfaq,PRFAQ Challenge,WB,Working Backwards guided experience to forge and stress-test your product concept to ensure you have a great product that users will love and need through the PRFAQ gauntlet to determine feasibility and alignment with user needs. alternative to product brief.,,-H,1-analysis,,,false,planning_artifacts,prfaq document
|
|
18
18
|
BMad Method,bmad-prd,Create Edit and Review PRD,PRD,"Facilitated PRD workflow — create a new PRD via coached discovery, update an existing one against a change signal, or validate a finished PRD against a checklist with an HTML findings report.",,,2-planning,bmad-product-brief,,true,planning_artifacts,prd
|
|
19
|
-
BMad Method,bmad-
|
|
19
|
+
BMad Method,bmad-ux,Create UX,CU,"Guidance through realizing the plan for your UX, strongly recommended if a UI is a primary piece of the proposed project.",,,2-planning,bmad-prd,,false,planning_artifacts,ux design
|
|
20
20
|
BMad Method,bmad-create-architecture,Create Architecture,CA,Guided workflow to document technical decisions.,,,3-solutioning,,,true,planning_artifacts,architecture
|
|
21
21
|
BMad Method,bmad-create-epics-and-stories,Create Epics and Stories,CE,,,,3-solutioning,bmad-create-architecture,,true,planning_artifacts,epics and stories
|
|
22
22
|
BMad Method,bmad-check-implementation-readiness,Check Implementation Readiness,IR,Ensure PRD UX Architecture and Epics Stories are aligned.,,,3-solutioning,bmad-create-epics-and-stories,,true,planning_artifacts,readiness report
|