{
  "schema_version": "0.1",
  "artifact_type": "prd",
  "canonical": true,
  "artifact_id": "PRD-008",
  "agent_summary": {
    "title": "Deterministic workflow engine and LLM judgment boundary",
    "status": "approved",
    "summary": "PRD Plugin executes every bounded operation through configurable declared workflows and calls an LLM only for explicit source-backed judgment steps whose results are validated before deterministic continuation.",
    "last_reviewed_at": "2026-07-14",
    "load_notes": "Canonical JSON; generate Markdown only on explicit human request."
  },
  "goals": [
    "Eliminate LLM orchestration and bookkeeping where a finite validated rule can decide the outcome.",
    "Provide one complete workflow authority with inspectable plans, runs, receipts, checkpoints, and outcomes.",
    "Make judgment boundaries explicit, source-backed, provider-neutral, and unable to write project truth directly.",
    "Preserve compatibility, local-first operation, safe failure, host parity, and downstream delivery."
  ],
  "non_goals": [
    "Guarantee availability of external processes, Git remotes, networks, registries, or model providers.",
    "Replace legitimate product or engineering judgment with hard-coded answers.",
    "Allow arbitrary code embedded in project-owned workflow JSON.",
    "Duplicate .prd_plugin/config.json, MCP state tools, or AI-Collab runtime execution."
  ],
  "requirements": [
    {"id": "PRD-REQ-048", "priority": "must", "summary": "Ship a versioned workflow catalog covering every supported lifecycle and operational workflow, with declared inputs, steps, postconditions, permissions, determinism class, and failure policy.", "source_ids": ["REQ-096", "BR-REQ-009", "BR-REQ-012"], "acceptance_ids": ["PRD-ACC-061", "PRD-ACC-062"], "status": "approved"},
    {"id": "PRD-REQ-049", "priority": "must", "summary": "Implement one deterministic state machine for plan, dry-run, start, resume, status, cancel, retry, and completion with strict legal transitions.", "source_ids": ["REQ-096", "BR-REQ-011", "BR-REQ-013"], "acceptance_ids": ["PRD-ACC-063"], "status": "approved"},
    {"id": "PRD-REQ-050", "priority": "must", "summary": "Persist workflow runs and step receipts atomically with duplicate-safe WFR IDs, definition/input hashes, idempotency keys, timestamps, outputs, and error state.", "source_ids": ["BR-REQ-011", "BR-REQ-013", "BR-RISK-008"], "acceptance_ids": ["PRD-ACC-064"], "status": "approved"},
    {"id": "PRD-REQ-051", "priority": "must", "summary": "Provide an allowlisted action registry whose metadata identifies mechanical, policy, external, or judgment behavior, mutation level, idempotency, inputs, outputs, and required capabilities.", "source_ids": ["BR-DEC-008", "BR-RISK-007", "BR-RISK-009"], "acceptance_ids": ["PRD-ACC-065"], "status": "approved"},
    {"id": "PRD-REQ-052", "priority": "must", "summary": "Represent LLM work only as pause/resume judgment requests containing source allowlists, schemas, constraints, and provenance; validate results before resuming and forbid direct state writes.", "source_ids": ["BR-REQ-010", "BR-DEC-009", "BR-RISK-010"], "acceptance_ids": ["PRD-ACC-066"], "status": "approved"},
    {"id": "PRD-REQ-053", "priority": "must", "summary": "Expose complete workflow configuration, enable/disable controls, policies, profiles, limits, executor selection, and effective-state explanations through the existing unified config authority.", "source_ids": ["BR-REQ-011", "BR-REQ-014"], "acceptance_ids": ["PRD-ACC-067"], "status": "approved"},
    {"id": "PRD-REQ-054", "priority": "must", "summary": "Expose workflow discovery, planning, execution, resumption, status, cancellation, audit, and action inventory through CLI and MCP, with read-only UTCP projections for runtime integration.", "source_ids": ["BR-REQ-014"], "acceptance_ids": ["PRD-ACC-068"], "status": "approved"},
    {"id": "PRD-REQ-055", "priority": "must", "summary": "Route supported hooks and lifecycle workflows through the engine, including session start/stop, request intake, planning, debugging, review, verification, closeout, maintenance, install/update, and release.", "source_ids": ["BR-REQ-009", "BR-REQ-012", "BR-RISK-011"], "acceptance_ids": ["PRD-ACC-069"], "status": "approved"},
    {"id": "PRD-REQ-056", "priority": "must", "summary": "Install and migrate definitions, runtime, state, commands, tools, host mirrors, skills, templates, and ignore policy downstream without replacing user-owned configuration or run history.", "source_ids": ["BR-REQ-014"], "acceptance_ids": ["PRD-ACC-070"], "status": "approved"},
    {"id": "PRD-REQ-057", "priority": "must", "summary": "Audit workflow definitions, action coverage, determinism claims, postconditions, traceability, compatibility, and release delivery with zero CHML findings before publication.", "source_ids": ["BR-REQ-013", "BR-REQ-014"], "acceptance_ids": ["PRD-ACC-071", "PRD-ACC-072"], "status": "approved"}
  ],
  "non_functional_requirements": [
    {"id": "PRD-NFR-027", "summary": "Soundness: completed is emitted only after every required step and postcondition succeeds; failures remain explicit.", "source_ids": ["BR-REQ-013", "BR-DEC-010"]},
    {"id": "PRD-NFR-028", "summary": "Idempotency and concurrency: replay, retry, and resume do not duplicate state or side effects; canonical writes share locking and single-writer invariants.", "source_ids": ["BR-RISK-008"]},
    {"id": "PRD-NFR-029", "summary": "Security: definitions cannot inject code, secrets/local session data are excluded from judgment bundles, and mutation/external actions require declared authority.", "source_ids": ["BR-RISK-009", "BR-RISK-010"]},
    {"id": "PRD-NFR-030", "summary": "Efficiency: workflows avoid LLM calls for deterministic steps, reuse loaded state, bound output, and invoke judgment only when required by the definition.", "source_ids": ["REQ-096", "BR-REQ-009"]},
    {"id": "PRD-NFR-031", "summary": "Portability: the core is stdlib-only, local-first, cross-platform, remote-optional, and provider-neutral; AI-Collab remains the configured external executor.", "source_ids": ["BR-REQ-014"]},
    {"id": "PRD-NFR-032", "summary": "Compatibility: existing CLI, MCP, hook, state, and installer contracts continue to work while their orchestration becomes engine-owned.", "source_ids": ["BR-RISK-011"]}
  ],
  "acceptance_criteria": [
    {"id": "PRD-ACC-061", "summary": "Catalog audit finds every shipped workflow valid, uniquely named, enabled/configured, and composed only of registered actions.", "requirement_ids": ["PRD-REQ-048"]},
    {"id": "PRD-ACC-062", "summary": "The catalog includes complete definitions for session, intake, planning, debugging, review, verification, closeout, maintenance, installation/update, and release use cases.", "requirement_ids": ["PRD-REQ-048", "PRD-REQ-055"]},
    {"id": "PRD-ACC-063", "summary": "State-machine tests cover every legal/illegal transition, dry-run, pause/resume, retry, cancel, failure, block, and completion path.", "requirement_ids": ["PRD-REQ-049", "PRD-NFR-027"]},
    {"id": "PRD-ACC-064", "summary": "Persistence tests prove atomic writes, unique WFR allocation, idempotency replay, crash-safe checkpoints, and non-duplicating resume.", "requirement_ids": ["PRD-REQ-050", "PRD-NFR-028"]},
    {"id": "PRD-ACC-065", "summary": "Action-registry tests reject unknown actions, undeclared determinism, invalid inputs, unauthorized mutations, and untrusted command injection.", "requirement_ids": ["PRD-REQ-051", "PRD-NFR-029"]},
    {"id": "PRD-ACC-066", "summary": "Judgment tests prove source-bounded bundles, provider-neutral pause/resume, strict output validation, no direct writes, and deterministic fallback/failure.", "requirement_ids": ["PRD-REQ-052", "PRD-NFR-029"]},
    {"id": "PRD-ACC-067", "summary": "Unified config inventory/audit reports all workflow controls with no unclassified, invalid, or ineffective settings and profiles expose latency tradeoffs.", "requirement_ids": ["PRD-REQ-053"]},
    {"id": "PRD-ACC-068", "summary": "CLI, MCP, and UTCP parity tests cover list/plan/run/resume/status/cancel/audit/action inventory with bounded output and worker mutation guards.", "requirement_ids": ["PRD-REQ-054"]},
    {"id": "PRD-ACC-069", "summary": "Integration tests prove shipped hooks and lifecycle definitions execute deterministic work without LLM calls and pause only at declared judgment steps.", "requirement_ids": ["PRD-REQ-055", "PRD-NFR-030", "PRD-NFR-032"]},
    {"id": "PRD-ACC-070", "summary": "Installer/parity tests prove additive downstream delivery of runtime, definitions, state, config, tools, skills, commands, and host mirrors.", "requirement_ids": ["PRD-REQ-056", "PRD-NFR-031", "PRD-NFR-032"]},
    {"id": "PRD-ACC-071", "summary": "Focused verification and repeated CRAFTE/CHML review-fix-re-audit loops report zero critical, high, medium, or low findings.", "requirement_ids": ["PRD-REQ-057"]},
    {"id": "PRD-ACC-072", "summary": "One release-wide suite, state/gate/config/traceability/wiki/manual/release/package checks, version propagation, and remote tag publication complete cleanly.", "requirement_ids": ["PRD-REQ-057"]}
  ],
  "dependencies": [
    "Existing unified config catalog and atomic writes.",
    "Existing MCP duplicate-safe canonical state tools and shared lock policy.",
    "Existing hook dispatcher, reporting bundle, Substrate contract, verification plan, gate, graph, installer, and host mirrors.",
    "AI-Collab runtime for optional external judgment and impact execution."
  ],
  "open_questions": [],
  "traceability": {
    "source_ids": ["REQ-096", "BR-REQ-009", "BR-REQ-010", "BR-REQ-011", "BR-REQ-012", "BR-REQ-013", "BR-REQ-014"],
    "request_ids": ["REQ-096"],
    "architecture_ids": ["ARCH-COMP-039", "ARCH-COMP-040", "ARCH-COMP-041", "ARCH-COMP-042", "ARCH-COMP-043", "ARCH-COMP-044", "ARCH-COMP-045", "ARCH-COMP-046"],
    "implementation_task_ids": ["IMP-TASK-058", "IMP-TASK-059", "IMP-TASK-060", "IMP-TASK-061", "IMP-TASK-062", "IMP-TASK-063", "IMP-TASK-064", "IMP-TASK-065", "IMP-TASK-066", "IMP-TASK-067"],
    "tracking_ids": ["TRK-101", "TRK-102", "TRK-103", "TRK-104", "TRK-105"],
    "health_ids": []
  }
}
