Skill Tracer
Skills › BMAD Method › bmad-prd › headless-schemas.md

headless-schemas.md

76 lines · skills/bmad-prd/assets/headless-schemas.md at bd70c64

Open on GitHub
1# Headless Mode Output Examples
2
3Every headless run ends with one of these payloads. Omit keys for artifacts not produced.
4

Headless Mode Output Examples

Every headless run ends with one of these payloads. Omit keys for artifacts not produced.

Raw lines 1 to 4
5## Common fields
6
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 when status is "blocked"; one-sentence explanation
  • assumptions — array of inferred values that were not directly confirmed by inputs
  • open_questions — array of items that need a human decision before the artifact can be considered final
Raw lines 5 to 12
13## Create
15```json
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 ]
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 29
30## Update
32```json
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 ]
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 46
47## Validate
49```json
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
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.

Raw lines 47 to 65
66## Blocked
68```json
70 "status": "blocked",
71 "intent": "update",
72 "reason": "Change signal ambiguous — could be a scope expansion or a clarification; no inferred direction"
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.

Raw lines 66 to 76