Files
scrying-pool/.claude/skills/bmad-prd/assets/headless-schemas.md
T
uberwald 20d13fc678 Story 4.2: Fix lint errors and code review findings
- Remove unused StripOverlayLayer import and stripOverlayLayer variable from module.js
- Add comprehensive JSDoc annotations to FoundryAdapter.js methods (settings, socket, users, scenes, notifications, hooks)
- Add /* global Dialog */ comment to PlayerPrivacyPanel.js for ESLint
- Remove unused _force parameter from GMPlayerPrivacySelector.js render() method
- Fix PlayerPrivacyPanelMenu.js: add constructor() to fallback class and call super()

All 862 unit tests passing. All Story 4.2 acceptance criteria met.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-24 01:25:30 +02:00

2.0 KiB

Headless Mode JSON Schemas

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

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

Create

{
  "status": "complete",
  "intent": "create",
  "prd": "{doc_workspace}/prd.md",
  "addendum": "{doc_workspace}/addendum.md",
  "decision_log": "{doc_workspace}/.decision-log.md",
  "open_questions": [],
  "assumptions": [],
  "external_handoffs": [
    {"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
  ]
}

Update

{
  "status": "complete",
  "intent": "update",
  "prd": "{doc_workspace}/prd.md",
  "decision_log": "{doc_workspace}/.decision-log.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"}
  ]
}

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.

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.