{
  "schema_version": "0.1",
  "artifact_type": "architecture",
  "canonical": true,
  "artifact_id": "ARCH-003",
  "agent_summary": {
    "title": "Delegated reporting control-plane architecture",
    "status": "approved",
    "summary": "PRD Plugin owns policy, deterministic bundle creation, result validation, and host instructions. AI-Collab is the execution plane that resolves a profile to a model and returns a source-backed result.",
    "last_reviewed_at": "2026-07-12",
    "load_notes": "This JSON artifact is canonical. Generate Markdown only on explicit human request."
  },
  "context": "The plugin already owns deterministic report readers and a UTCP surface but has no provider SDK, credentials, or model dispatch runtime.",
  "principles": [
    "One config truth; the CLI is a validated editor, not a second store.",
    "Deterministic facts cross the boundary; model prose never becomes project truth automatically.",
    "Executor capability is optional and fallback behavior is explicit."
  ],
  "components": [
    {"id": "ARCH-COMP-013", "summary": "Delegation policy registry", "responsibility": "Define defaults, enums, string-list tasks, and effective policy from .prd_plugin/config.json.", "requirement_ids": ["PRD-REQ-016"], "interface_ids": ["ARCH-IF-007"]},
    {"id": "ARCH-COMP-014", "summary": "Deterministic report bundle builder", "responsibility": "Collect sanitized status, request/health, doctor, skill-usage, and policy data into a versioned JSON contract.", "requirement_ids": ["PRD-REQ-017", "PRD-NFR-009"], "interface_ids": ["ARCH-IF-008"]},
    {"id": "ARCH-COMP-015", "summary": "Delegated result validator", "responsibility": "Validate contract version, task, summary, confidence, source references, notable items, and actions without writing canonical state.", "requirement_ids": ["PRD-REQ-018"], "interface_ids": ["ARCH-IF-009"]},
    {"id": "ARCH-COMP-016", "summary": "Host/reporting adapter", "responsibility": "Expose the bundle through CLI/UTCP and teach /prd-report skills to use an AI-Collab executor capability with configured fallback.", "requirement_ids": ["PRD-REQ-019", "PRD-REQ-020"], "interface_ids": ["ARCH-IF-010"]}
  ],
  "interfaces": [
    {"id": "ARCH-IF-007", "summary": "reporting.delegation configuration", "producer": "operator or prd_config.py", "consumer": "PRD reporting tools and AI-Collab", "contract": "enabled, executor, contract_version, profile, tasks, fallback, require_source_refs, max_input_tokens, max_output_tokens, timeout_seconds"},
    {"id": "ARCH-IF-008", "summary": "Delegation input bundle", "producer": "prd_reporting.py", "consumer": "AI-Collab runtime", "contract": "Versioned JSON containing task, repo, policy, deterministic facts/findings, source_refs, and constraints."},
    {"id": "ARCH-IF-009", "summary": "Delegated reporting result", "producer": "AI-Collab runtime", "consumer": "prd_reporting.py and primary host agent", "contract": "Versioned JSON summary, notable_items with source_refs, recommended_actions, confidence, executor, and profile."},
    {"id": "ARCH-IF-010", "summary": "Optional executor capability", "producer": "AI-Collab", "consumer": "/prd-report host skill", "contract": "A capability named prd.reporting.summarize or equivalent consumes ARCH-IF-008 and returns ARCH-IF-009; absence triggers configured fallback."}
  ],
  "data_state_model": {
    "canonical_policy": ".prd_plugin/config.json",
    "generated_local_artifacts": ".prd_plugin/local/reporting/",
    "canonical_state_writes": "none from delegated reporting"
  },
  "decisions": [
    {"id": "ARCH-DEC-008", "summary": "Separate PRD Plugin control plane from AI-Collab execution plane.", "rationale": "Avoid provider credentials, SDKs, billing, and availability concerns in the zero-dependency plugin.", "source_ids": ["PRD-REQ-016", "PRD-NFR-008", "DEC-002"]},
    {"id": "ARCH-DEC-009", "summary": "Configure a portable model profile rather than a provider model ID.", "rationale": "AI-Collab can map fast-capable to the locally available economical model without rewriting downstream PRD config.", "source_ids": ["PRD-REQ-016", "PRD-NFR-008"]},
    {"id": "ARCH-DEC-010", "summary": "Delegated results are drafts with deterministic source validation and no project-state authority.", "rationale": "Cost savings must not weaken grounding, consent, evidence, or single-writer invariants.", "source_ids": ["PRD-REQ-018", "PRD-NFR-009", "PRD-NFR-010"]}
  ],
  "risks": [
    {"id": "ARCH-RISK-006", "summary": "AI-Collab executor is absent, incompatible, or times out.", "mitigation": "Use explicit main, deterministic_only, or fail fallback; delegation defaults off.", "status": "mitigated"},
    {"id": "ARCH-RISK-007", "summary": "Cheap-model output hallucinates or cites missing sources.", "mitigation": "Require structured results and deterministic source-reference validation; never auto-write canonical state.", "status": "mitigated"}
  ],
  "validation_strategy": [
    "Unit-test policy defaults, coercion, task allowlists, bundle stability, result rejection/acceptance, and fallback decisions.",
    "Parity-test config, commands, skills, script install scope, and UTCP manual generation across hosts and skeletons.",
    "Run full local workflow, release, state, gate, and drift checks before completion."
  ],
  "traceability": {
    "source_ids": ["PRD-REQ-016", "PRD-REQ-017", "PRD-REQ-018", "PRD-REQ-019", "PRD-REQ-020", "DEC-002"],
    "decision_ids": ["DEC-002", "ARCH-DEC-008", "ARCH-DEC-009", "ARCH-DEC-010"],
    "implementation_task_ids": ["IMP-TASK-025", "IMP-TASK-026", "IMP-TASK-027", "IMP-TASK-028", "IMP-TASK-029", "IMP-TASK-030"],
    "health_ids": []
  }
}
