Skills › BMAD Method › bmad-prd › headless-schemas.md
headless-schemas.md
76 lines · skills/bmad-prd/assets/headless-schemas.md at bd70c64
1# Headless Mode Output Examples
3Every headless run ends with one of these payloads. Omit keys for artifacts not produced.
Headless Mode Output Examples
Every headless run ends with one of these payloads. Omit keys for artifacts not produced.
Raw lines 1 to 45## Common fields
7- `status` — `"complete"`, `"blocked"`, or `"partial"`
8- `intent` — `"create"`, `"update"`, or `"validate"` (matches the detected intent)
9- `reason` — required when `status` is `"blocked"`; one-sentence explanation
10- `assumptions` — array of inferred values that were not directly confirmed by inputs
11- `open_questions` — array of items that need a human decision before the artifact can be considered final
Common fields
status—"complete","blocked", or"partial"intent—"create","update", or"validate"(matches the detected intent)reason— required whenstatusis"blocked"; one-sentence explanationassumptions— array of inferred values that were not directly confirmed by inputsopen_questions— array of items that need a human decision before the artifact can be considered final
13## Create
15```json
16{
17 "status": "complete",
18 "intent": "create",
19 "prd": "{doc_workspace}/<folder name>.md",
20 "addendum": "{doc_workspace}/addendum.md",
21 "memlog": "{doc_workspace}/.memlog.md",
22 "open_questions": [],
23 "assumptions": [],
24 "external_handoffs": [
25 {"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
26 ]
27}
28```
Create
{
"status": "complete",
"intent": "create",
"prd": "{doc_workspace}/<folder name>.md",
"addendum": "{doc_workspace}/addendum.md",
"memlog": "{doc_workspace}/.memlog.md",
"open_questions": [],
"assumptions": [],
"external_handoffs": [
{"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
]
}Raw lines 13 to 2930## Update
32```json
33{
34 "status": "complete",
35 "intent": "update",
36 "prd": "{doc_workspace}/<folder name>.md",
37 "memlog": "{doc_workspace}/.memlog.md",
38 "changes_summary": "1-3 sentences describing what changed and why",
39 "conflicts_with_prior_decisions": [],
40 "open_questions": [],
41 "external_handoffs": [
42 {"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
43 ]
44}
45```
Update
{
"status": "complete",
"intent": "update",
"prd": "{doc_workspace}/<folder name>.md",
"memlog": "{doc_workspace}/.memlog.md",
"changes_summary": "1-3 sentences describing what changed and why",
"conflicts_with_prior_decisions": [],
"open_questions": [],
"external_handoffs": [
{"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
]
}Raw lines 30 to 4647## Validate
49```json
50{
51 "status": "complete",
52 "intent": "validate",
53 "validation_report": "{doc_workspace}/validation-report.md",
54 "findings_summary": {
55 "critical": 0,
56 "high": 0,
57 "medium": 0,
58 "low": 0
59 },
60 "offer_to_update": true
61}
62```
64`validation_report` is always written for Validate intent — the path here is required, not optional.
Validate
{
"status": "complete",
"intent": "validate",
"validation_report": "{doc_workspace}/validation-report.md",
"findings_summary": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0
},
"offer_to_update": true
}validation_report is always written for Validate intent — the path here is required, not optional.
66## Blocked
68```json
69{
70 "status": "blocked",
71 "intent": "update",
72 "reason": "Change signal ambiguous — could be a scope expansion or a clarification; no inferred direction"
73}
74```
76Always include the intent (best-guess if not certain) and a one-sentence `reason`.
Blocked
{
"status": "blocked",
"intent": "update",
"reason": "Change signal ambiguous — could be a scope expansion or a clarification; no inferred direction"
}Always include the intent (best-guess if not certain) and a one-sentence reason.