{
  "schema_version": "0.1",
  "changes": [
    {
      "id": "CHG-060",
      "timestamp": "2026-07-12",
      "summary": "Released v0.8.0 delegated-reporting control plane: JSON and prd_config.py configure eligible non-deterministic tasks, fast-capable AI-Collab execution, deterministic bundles, source validation, and explicit fallbacks while canonical state remains under PRD Plugin control (REQ-084).",
      "artifact_refs": [
        "scripts/prd_reporting.py",
        "scripts/prd_config.py",
        "scripts/prd_tools.py",
        "utcp.json",
        "commands/prd-report.md",
        "wiki/integrations/delegated-reporting.md"
      ],
      "source_ids": [
        "REQ-084",
        "TRK-070",
        "DEC-002",
        "EV-056"
      ]
    },
    {
      "id": "CHG-059",
      "timestamp": "2026-07-11",
      "summary": "Released v0.7.1 audit correctness and drift cleanup: eliminated false positives for non-contiguous imported/reserved IDs and explicitly guarded hub-helper references, repaired request/health traceability, refreshed the wiki, and proved the full seven-validator re-audit clean (REQ-083).",
      "artifact_refs": [
        "scripts/prd_self_audit.py",
        "tests/test_prd_self_audit.py",
        ".prd_plugin/state/health.json",
        "wiki/index.md",
        "wiki/mcp/mcp-state-server.md",
        "wiki/operations/drift-detection.md"
      ],
      "source_ids": [
        "REQ-083",
        "TRK-067",
        "EV-055"
      ]
    },
    {
      "id": "CHG-001",
      "timestamp": "2026-06-16",
      "summary": "Added an opencode-compatible delivery layer to PRD Plugin (v0.5.30): .opencode/plugin.json, .opencode/skill/ mirror, generalized prd_install_skills.py with --target-agent, generalized version_advice/release_check/local_workflow_check to read .opencode/plugin.json, neutralized Codex-only language in project-fold-it-in/project-request-intake/project-session-close, mirrored skills into templates/repo-skeleton/.opencode/skill/, added release metadata, and bumped plugin version 0.5.29 -> 0.5.30.",
      "artifact_refs": [
        ".opencode/plugin.json",
        ".codex-plugin/plugin.json",
        ".opencode/skill/",
        ".agents/skills/",
        "templates/repo-skeleton/.opencode/skill/",
        "templates/repo-skeleton/.opencode/plugin.json",
        "scripts/prd_install_skills.py",
        "scripts/version_advice.py",
        "scripts/release_check.py",
        "scripts/local_workflow_check.py",
        "templates/skill-install-scope.json",
        "templates/config.json",
        "templates/repo-skeleton/.prd_plugin/templates/config.json",
        "templates/repo-skeleton/.prd_plugin/templates/skill-install-scope.json",
        "templates/repo-skeleton/.prd_plugin/METHOD.md",
        "templates/script-install-scope.json",
        "templates/repo-skeleton/.prd_plugin/templates/script-install-scope.json",
        "skills/project-fold-it-in/SKILL.md",
        "skills/project-request-intake/SKILL.md",
        "skills/project-session-close/SKILL.md",
        "README.md",
        "docs/METHOD.md",
        ".prd_plugin/state/releases.json",
        "templates/releases.json"
      ],
      "source_refs": [
        "REQ-002",
        "TRK-001"
      ],
      "created_from_session": "SES-002",
      "created_by_agent": "AGENT-001"
    },
    {
      "id": "CHG-002",
      "timestamp": "2026-06-16",
      "summary": "Historical optional integration from v0.5.31 was removed by user request.",
      "artifact_refs": [
        "skills/project-prd-plugin-setup/SKILL.md",
        "skills/project-memory/SKILL.md",
        "skills/project-traceability-sync/SKILL.md",
        "skills/project-health/SKILL.md",
        "skills/project-request-intake/SKILL.md",
        "skills/project-session-close/SKILL.md",
        "templates/config.json",
        "templates/repo-skeleton/.prd_plugin/templates/config.json",
        "templates/script-install-scope.json",
        "templates/repo-skeleton/.prd_plugin/templates/script-install-scope.json",
        "templates/repo-skeleton/.opencode/skill/",
        "templates/repo-skeleton/.opencode/plugin.json",
        ".prd_plugin/config.json",
        ".prd_plugin/state/releases.json",
        "templates/releases.json"
      ],
      "source_refs": [
        "REQ-001",
        "TRK-007",
        "TRK-008",
        "TRK-009",
        "TRK-010",
        "TRK-011",
        "TRK-012",
        "TRK-013"
      ],
      "created_from_session": "SES-003",
      "created_by_agent": "AGENT-001"
    },
    {
      "id": "CHG-003",
      "timestamp": "2026-06-16",
      "summary": "Acted on the audit-driven recommendations from the D:\\Projects\\Improve corpus (v0.5.32): retrospective guidance, selective-promotion safeguards, project self-audit, read-with-offset documentation, fold-it-in guardrails, and state-consistency extra-work findings. Renamed six pre-existing Spanish-locale-corrupted skill directories across all discovery paths.",
      "artifact_refs": [
        "scripts/prd_selective_promote.py",
        "scripts/prd_self_audit.py",
        "scripts/state_consistency_check.py",
        "tests/test_prd_selective_promote.py",
        "tests/test_prd_self_audit.py",
        "tests/test_state_consistency_check.py",
        "skills/project-memory/SKILL.md",
        "skills/project-traceability-sync/SKILL.md",
        "skills/project-health/SKILL.md",
        "skills/project-request-intake/SKILL.md",
        "skills/project-session-close/SKILL.md",
        "skills/project-fold-it-in/SKILL.md",
        "skills/project-self-audit/SKILL.md",
        "templates/config.json",
        "templates/repo-skeleton/.prd_plugin/templates/config.json",
        "templates/script-install-scope.json",
        "templates/repo-skeleton/.prd_plugin/templates/script-install-scope.json",
        "docs/METHOD.md",
        ".prd_plugin/state/releases.json",
        "templates/releases.json",
        "skills/"
      ],
      "source_refs": [
        "REQ-001",
        "TRK-022",
        "TRK-014",
        "TRK-015",
        "TRK-016",
        "TRK-017",
        "TRK-018",
        "TRK-019",
        "TRK-020",
        "TRK-021"
      ],
      "created_from_session": "SES-004",
      "created_by_agent": "AGENT-001"
    },
    {
      "id": "CHG-004",
      "timestamp": "2026-06-17",
      "summary": "Added opencode CLI-driven downstream system/integration test harness (v0.5.49): system_tests/ with pytest, mock-driven smoke tests, optional OpencodeAgentDriver, ScenarioOrchestrator, StateAssertionLibrary, boundary monitors for secrets/hub/git, .github/workflows/ci.yml, local_workflow_check.py --include-system-tests, package.json test:system script, and documentation. Completed REQ-028 planning chain (PRD-001, ARCH-001, IMP-001, TRC-001) and decision record DEC-001.",
      "artifact_refs": [
        "system_tests/harness.py",
        "system_tests/conftest.py",
        "system_tests/test_harness_smoke.py",
        "system_tests/scenarios/test_feature_idea_to_plan.py",
        ".github/workflows/ci.yml",
        "scripts/local_workflow_check.py",
        "package.json",
        "README.md",
        "docs/decisions/DEC-001.json",
        "docs/evidence/EV-001-downstream-system-test-harness.md",
        ".prd_plugin/state/artifacts/prd/PRD-001.json",
        ".prd_plugin/state/artifacts/architecture/ARCH-001.json",
        ".prd_plugin/state/artifacts/implementation/IMP-001.json",
        "docs/traceability/TRC-001.json",
        ".prd_plugin/state/releases.json",
        "templates/releases.json"
      ],
      "source_refs": [
        "REQ-028",
        "PRD-001",
        "ARCH-001",
        "IMP-001"
      ],
      "created_from_session": "SES-AUDIT",
      "created_by_agent": "AGENT-001"
    },
    {
      "id": "CHG-005",
      "timestamp": "2026-06-17",
      "summary": "Expanded downstream system-test scenario library (v0.5.49): added mock-driven scenarios for bug report/fix, session close/memory promotion, upstream bug report export, and health check/stale refresh. Added optional opencode-driven counterparts for all scenarios and fixed the post-teardown assertion in test_feature_idea_to_plan.py.",
      "artifact_refs": [
        "system_tests/scenarios/test_bug_report_and_fix.py",
        "system_tests/scenarios/test_session_close.py",
        "system_tests/scenarios/test_upstream_bug_report.py",
        "system_tests/scenarios/test_health_check.py",
        "system_tests/scenarios/test_feature_idea_to_plan.py",
        "docs/evidence/EV-002-downstream-system-test-scenarios.md",
        "scripts/local_workflow_check.py",
        "tests/test_local_workflow_check.py",
        "README.md"
      ],
      "source_refs": [
        "REQ-028",
        "IMP-001",
        "PRD-001"
      ],
      "created_from_session": "SES-AUDIT",
      "created_by_agent": "AGENT-001"
    },
    {
      "id": "CHG-006",
      "timestamp": "2026-06-17",
      "summary": "Created planning chain for longitudinal drift monitoring (v0.5.49): brainstorm BR-2026-06-17-longitudinal-drift-monitoring, PRD-002, ARCH-002, IMP-002. Deferred REQ-030 (SpacetimeDB-backed state) with MSG-004/MSG-005. Updated AGENTS.md with simple-commit autonomy rule.",
      "artifact_refs": [
        "docs/brainstorm/BR-2026-06-17-longitudinal-drift-monitoring.json",
        ".prd_plugin/state/artifacts/prd/PRD-002.json",
        ".prd_plugin/state/artifacts/architecture/ARCH-002.json",
        ".prd_plugin/state/artifacts/implementation/IMP-002.json",
        ".prd_plugin/state/requests.json",
        "AGENTS.md"
      ],
      "source_refs": [
        "BR-2026-06-17-longitudinal-drift-monitoring",
        "REQ-002"
      ],
      "created_from_session": "SES-AUDIT",
      "created_by_agent": "AGENT-001"
    },
    {
      "id": "CHG-007",
      "timestamp": "2026-06-20",
      "summary": "Guarded the Codex Stop hook so it no-ops (exit 0) when archive_automation_session.py is absent, and pointed the downstream/skeleton hook at .prd_plugin/scripts/ (REQ-029, from ai-collab-v3). The unguarded hook previously errored on every Codex session stop in downstream installs because the downstream_optional archive helper is not installed by default. Documented the downstream script layout (installed helpers under .prd_plugin/scripts/; most validators hub-only).",
      "artifact_refs": [
        ".codex/hooks.json",
        "templates/repo-skeleton/.codex/hooks.json",
        "tests/test_automation_session_archive_policy.py",
        "docs/INSTALL-MATRIX.md",
        "README.md",
        ".prd_plugin/state/requests.json"
      ],
      "source_refs": [
        "REQ-029",
        "EV-004"
      ]
    },
    {
      "id": "CHG-008",
      "timestamp": "2026-06-20",
      "summary": "Workflow correctness, tiered autonomy, and enforcement (REQ-031, v0.5.56): added project-decision-policy router/autonomy skill with three tiers (autonomous/key_decision/guided), a non-negotiable floor, and a two-stage decision-quality heuristic (correct/proper/robust/verifiable/aligned/proportionate/consistent); added automation.autonomy_level (default key_decision) and decision provenance (decided_by/autonomy_tier); resolved the 5 cross-skill autonomy conflicts and clarified ownership boundaries + dead-ends; added the prd_gate.py enforcement validator + CI + pre-commit hook (makes the dormant config policy flags real); added staleness_audit.py and traceability_sync_auto.py; and centralized shared rules in .prd_plugin/method/.",
      "artifact_refs": [
        "skills/project-decision-policy/SKILL.md",
        "scripts/prd_gate.py",
        "scripts/staleness_audit.py",
        "scripts/traceability_sync_auto.py",
        ".prd_plugin/method/",
        "templates/config.json",
        ".github/workflows/prd-gate.yml"
      ],
      "source_refs": [
        "REQ-031",
        "TRK-023",
        "EV-005"
      ]
    },
    {
      "id": "CHG-009",
      "timestamp": "2026-06-21",
      "summary": "Added grounding (anti-hallucination) and estimation method docs, a CLAUDE.md for each host (hub + skeleton) reconciled with AGENTS.md, the no-timescales rule (complexity + confidence ratings) across AGENTS/CLAUDE and the planning/intake skills, and a prd_gate timescale warning (REQ-032, v0.5.57).",
      "artifact_refs": [
        "CLAUDE.md",
        "templates/repo-skeleton/CLAUDE.md",
        ".prd_plugin/method/grounding.md",
        ".prd_plugin/method/estimation.md",
        "AGENTS.md",
        "scripts/prd_gate.py"
      ],
      "source_refs": [
        "REQ-032",
        "TRK-024",
        "EV-006"
      ]
    },
    {
      "id": "CHG-010",
      "timestamp": "2026-06-21",
      "summary": "Added project-change-request, a mid-development change orchestrator (classify add/change/remove/defer -> capture as REQ/DBR/DEC -> scope checkpoint -> cascade through PRD/architecture/plan -> traceability sync), and routed mid-development changes to it in project-decision-policy (REQ-033, v0.5.58).",
      "artifact_refs": [
        "skills/project-change-request/SKILL.md",
        "skills/project-decision-policy/SKILL.md",
        "templates/skill-install-scope.json",
        "docs/INSTALL-MATRIX.md"
      ],
      "source_refs": [
        "REQ-033",
        "TRK-025",
        "EV-007"
      ]
    },
    {
      "id": "CHG-011",
      "timestamp": "2026-06-21",
      "summary": "Closed the Claude-vs-Codex skill-usage gap (REQ-034, v0.5.59): added the hub root .claude/skills mirror, a per-task skill routing map in CLAUDE.md (hub+skeleton), and a SessionStart/UserPromptSubmit nudge hook (.claude/settings.json + .claude/hooks/prd_nudge.py) that injects the project-decision-policy routing reminder every turn. Nudge layer only; hard enforcement stays in prd_gate.",
      "artifact_refs": [
        ".claude/skills",
        ".claude/settings.json",
        ".claude/hooks/prd_nudge.py",
        "CLAUDE.md",
        "templates/repo-skeleton/.claude/"
      ],
      "source_refs": [
        "REQ-034",
        "TRK-026",
        "EV-008"
      ]
    },
    {
      "id": "CHG-012",
      "timestamp": "2026-06-21",
      "summary": "Added skill-usage observability (REQ-035, v0.5.60): a Claude Code PostToolUse hook (.claude/hooks/prd_log_skill.py, matcher Skill) logs each skill invocation to .prd_plugin/local/skill-usage.jsonl, and scripts/skill_usage_report.py joins it with the ID records into a timeline + per-session summary and flags work shipped without logged verification/TDD skill use.",
      "artifact_refs": [
        ".claude/hooks/prd_log_skill.py",
        ".claude/settings.json",
        "scripts/skill_usage_report.py",
        "templates/repo-skeleton/.claude/"
      ],
      "source_refs": [
        "REQ-035",
        "TRK-027",
        "EV-009"
      ]
    },
    {
      "id": "CHG-013",
      "timestamp": "2026-06-21",
      "summary": "Added a Claude Code Stop hook (.claude/hooks/prd_session_report.py) that auto-regenerates .prd_plugin/local/skill-usage-report.md every turn, so the skill-usage report is no longer a manual script run (REQ-036, v0.5.61). Kept to the fast report; heavier validators stay in CI.",
      "artifact_refs": [
        ".claude/hooks/prd_session_report.py",
        ".claude/settings.json",
        "templates/repo-skeleton/.claude/"
      ],
      "source_refs": [
        "REQ-036",
        "TRK-028",
        "EV-010"
      ]
    },
    {
      "id": "CHG-014",
      "timestamp": "2026-06-21",
      "summary": "Added /prd-autonomy and /prd-hooks Claude Code slash commands (REQ-037, v0.5.62): /prd-autonomy [autonomous|key_decision|guided] sets the tier via prd_gate.py set-autonomy; /prd-hooks [status|enable|disable] toggles the Claude hooks via new prd_hooks.py (stashes the .claude/settings.json hooks block). Commands shipped in .claude/commands (hub + skeleton) and top-level commands/ (marketplace plugin).",
      "artifact_refs": [
        "scripts/prd_hooks.py",
        ".claude/commands/",
        "commands/",
        "templates/repo-skeleton/.claude/commands/"
      ],
      "source_refs": [
        "REQ-037",
        "TRK-029",
        "EV-011"
      ]
    },
    {
      "id": "CHG-015",
      "timestamp": "2026-06-21",
      "summary": "Synced the stale downstream templates/repo-skeleton/docs/INSTALL-MATRIX.md to the hub doc (it had drifted to 'four options', no claude column, and was missing the skills/scripts added across 0.5.54-0.5.62). v0.5.63.",
      "artifact_refs": [
        "templates/repo-skeleton/docs/INSTALL-MATRIX.md",
        "docs/INSTALL-MATRIX.md"
      ],
      "source_refs": [
        "REQ-034"
      ]
    },
    {
      "id": "CHG-016",
      "timestamp": "2026-06-23",
      "summary": "Added tracking/admin slash commands and scripts/prd_status.py (read-only one-screen status). Commands in .claude/commands/, top-level commands/, and the skeleton; prd_status.py registered downstream_runtime and added to both INSTALL-MATRIX script tables. v0.5.64.",
      "artifact_refs": [
        "scripts/prd_status.py",
        ".claude/commands/prd-status.md",
        "commands/prd-status.md",
        "templates/repo-skeleton/.claude/commands/prd-status.md",
        "templates/script-install-scope.json",
        "docs/INSTALL-MATRIX.md",
        "tests/test_tracking_commands.py"
      ],
      "source_refs": [
        "REQ-038"
      ]
    },
    {
      "id": "CHG-017",
      "timestamp": "2026-06-23",
      "summary": "Added a 'Parallel Work And Subagents' section to AGENTS.md and a 'Parallel work' bullet to CLAUDE.md (hub + skeleton): agents may self-manage subagents/parallel/agent-teams under single-writer state safety, worktree isolation, and the inherited consent floor + method; PRD Plugin does not orchestrate. v0.5.65.",
      "artifact_refs": [
        "AGENTS.md",
        "CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md",
        "tests/test_grounding_estimation.py"
      ],
      "source_refs": [
        "REQ-039"
      ]
    },
    {
      "id": "CHG-018",
      "timestamp": "2026-06-24",
      "summary": "Added reporting.md (plain-language-first; no 'shall I proceed?' in autonomous), a 'Reporting To The User' section in AGENTS.md and a reporting bullet in CLAUDE.md (hub + skeleton), and a 'continuing is not a decision' rule + red flags in project-decision-policy (all 7 mirrors). v0.5.66.",
      "artifact_refs": [
        ".prd_plugin/method/reporting.md",
        "AGENTS.md",
        "CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md",
        "skills/project-decision-policy/SKILL.md"
      ],
      "source_refs": [
        "REQ-040"
      ]
    },
    {
      "id": "CHG-019",
      "timestamp": "2026-06-24",
      "summary": "Added prd_graph.py (read-only machine-first traceability graph: nodes per ID, {cause,effect,rel} edges, provenance/impact traversal, gap detection, AI-Collab-v3 {cause,effect,label} export) and the /prd-graph command in all 3 locations; registered downstream_runtime + INSTALL-MATRIX; added automation.graph_auto_refresh (default false) wired into the existing Stop hook. v0.5.67.",
      "artifact_refs": [
        "scripts/prd_graph.py",
        ".claude/commands/prd-graph.md",
        "commands/prd-graph.md",
        "templates/repo-skeleton/.claude/commands/prd-graph.md",
        ".claude/hooks/prd_session_report.py",
        "templates/script-install-scope.json",
        "docs/INSTALL-MATRIX.md"
      ],
      "source_refs": [
        "REQ-041"
      ]
    },
    {
      "id": "CHG-020",
      "timestamp": "2026-06-24",
      "summary": "Added prd_stop_guard.py Stop hook (autonomous run-until-done toward the active TRK goal; deterministic; consent-floor pause escape via .prd_plugin/local/autonomy-pause; per-session continue cap). Config flags autonomous_run_until_done (default true) + autonomous_continue_cap (25). Wired into Stop hooks (hub + skeleton); documented in project-decision-policy (7 mirrors). v0.5.68.",
      "artifact_refs": [
        ".claude/hooks/prd_stop_guard.py",
        "templates/repo-skeleton/.claude/hooks/prd_stop_guard.py",
        ".claude/settings.json",
        "templates/repo-skeleton/.claude/settings.json",
        "skills/project-decision-policy/SKILL.md",
        "templates/config.json"
      ],
      "source_refs": [
        "REQ-042"
      ]
    },
    {
      "id": "CHG-021",
      "timestamp": "2026-06-24",
      "summary": "Hardening pass (audit findings): prd_graph real-schema field mapping + contains-edges + requirement_without_coverage gap rule + malformed-JSON surfacing; prd_stop_guard cumulative atomic counter + most-recent-goal; active-goal workflow wired into /prd-track, project-memory, project-decision-policy + autonomy-pause documented in project-blocker-resolution; gap_audit/config-write/prd_status/prd_gate robustness. v0.5.69.",
      "artifact_refs": [
        "scripts/prd_graph.py",
        ".claude/hooks/prd_stop_guard.py",
        "scripts/gap_audit.py",
        "scripts/prd_status.py",
        "scripts/prd_gate.py",
        "skills/project-decision-policy/SKILL.md",
        "skills/project-blocker-resolution/SKILL.md",
        "skills/project-memory/SKILL.md",
        ".claude/commands/prd-track.md",
        ".claude/commands/prd-hooks.md"
      ],
      "source_refs": [
        "REQ-043"
      ]
    },
    {
      "id": "CHG-022",
      "timestamp": "2026-06-25",
      "summary": "Made generated Claude Code hook commands use an install-time-detected Python interpreter (REQ-044, v0.5.70). prd_install.py now detects a runnable Python-3 token (prefers python3, falls back to python, probes that it really runs Python 3 so a broken Windows python3 App Execution Alias / Python-2 `python` is skipped) and rewrites the leading interpreter token in each .claude/settings.json hook command it writes this run; reported as claude_settings.interpreter (also in --dry-run). The skeleton template and the hub's own settings.json keep `python`. Fixes hooks silently failing to launch on python3-only hosts.",
      "artifact_refs": [
        "scripts/prd_install.py",
        "tests/test_prd_install.py",
        "tests/test_local_workflow_check.py",
        "tests/test_release_check.py",
        "docs/INSTALL-MATRIX.md",
        ".prd_plugin/state/releases.json",
        "templates/releases.json"
      ],
      "source_refs": [
        "REQ-044",
        "TRK-036",
        "EV-018"
      ],
      "created_from_session": "SES-CLAUDE-20260625",
      "created_by_agent": "AGENT-CLAUDE"
    },
    {
      "id": "CHG-023",
      "timestamp": "2026-06-24",
      "summary": "Removed wrap-up/session-close nagging: prd_nudge.py drops the per-prompt session-close line; reporting.md gains 'Never nag the user to stop'; AGENTS.md/CLAUDE.md add the rule (hub+skeleton); decision-policy red flag + user-invoked session-close framing (7 mirrors). v0.5.71.",
      "artifact_refs": [
        ".claude/hooks/prd_nudge.py",
        ".prd_plugin/method/reporting.md",
        "AGENTS.md",
        "CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md",
        "skills/project-decision-policy/SKILL.md"
      ],
      "source_refs": [
        "REQ-045"
      ]
    },
    {
      "id": "CHG-024",
      "timestamp": "2026-06-24",
      "summary": "Added 'Decision-quality bar' one-liner to AGENTS.md + CLAUDE.md always-in-force blocks (hub + skeleton), naming the 7 criteria and pointing to project-decision-policy Stage 2. Content of the bar unchanged. v0.5.72.",
      "artifact_refs": [
        "AGENTS.md",
        "CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md"
      ],
      "source_refs": [
        "REQ-046"
      ]
    },
    {
      "id": "CHG-025",
      "timestamp": "2026-06-24",
      "summary": "Removed templates/repo-skeleton/README.md (was the hub's '# PRD Plugin' README) and added NEVER_OVERWRITE_DOWNSTREAM guard so prd_install.py never overwrites a downstream README.md even with --force. Fixes downstream agents thinking the repo is the plugin. v0.5.73.",
      "artifact_refs": [
        "scripts/prd_install.py",
        "templates/repo-skeleton/README.md",
        "tests/test_prd_install.py"
      ],
      "source_refs": [
        "REQ-047"
      ]
    },
    {
      "id": "CHG-026",
      "timestamp": "2026-06-24",
      "summary": "Added prd_precommit_gate.py PreToolUse hook: blocks `git commit` (exit 2 + findings) when prd_gate reports error-severity findings. Opt-in via automation.precommit_gate (default false; true in hub config), fail-open, warnings don't block. Wired into settings.json (hub+skeleton) + /prd-hooks. v0.5.74.",
      "artifact_refs": [
        ".claude/hooks/prd_precommit_gate.py",
        ".claude/settings.json",
        "templates/repo-skeleton/.claude/settings.json",
        ".claude/commands/prd-hooks.md",
        "tests/test_precommit_gate.py"
      ],
      "source_refs": [
        "REQ-048"
      ]
    },
    {
      "id": "CHG-027",
      "timestamp": "2026-06-24",
      "summary": "Added a 'Use the skills — don't work from memory' directive to AGENTS.md (was missing) and reinforced CLAUDE.md's line with the instructions-not-FYI + compaction-drift point (hub + skeleton). Targeted, not blanket. v0.5.75.",
      "artifact_refs": [
        "AGENTS.md",
        "CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md"
      ],
      "source_refs": [
        "REQ-049"
      ]
    },
    {
      "id": "CHG-028",
      "timestamp": "2026-06-24",
      "summary": "prd_install.py merges extraKnownMarketplaces['prd-plugin'] + enabledPlugins['prd-plugin@prd-plugin']=true into the target .claude/settings.json on --claude installs (additive, preserves existing keys). Plugin is now enabled per-repo (committed). v0.5.76.",
      "artifact_refs": [
        "scripts/prd_install.py",
        "tests/test_prd_install.py"
      ],
      "source_refs": [
        "REQ-050"
      ]
    },
    {
      "id": "CHG-029",
      "timestamp": "2026-06-24",
      "summary": "Claude plugin-primary delivery (per-provider redesign Phase 2): --claude stops copying project .claude/skills (plugin delivers them); skeleton never plants .claude/skills; --claude-skills escape hatch; main() option-building fixed to honor --claude-skills + CLI regression test. v0.5.77.",
      "artifact_refs": [
        "scripts/prd_install.py",
        "tests/test_prd_install.py",
        "tests/test_claude_adapter.py",
        "docs/design/per-provider-delivery.md"
      ],
      "source_refs": [
        "REQ-051"
      ]
    },
    {
      "id": "CHG-030",
      "timestamp": "2026-07-02",
      "summary": "Added the MCP state server (mcp/server.cjs, ten validated tools, zero deps) + prd-install .mcp.json wiring; gate errors point at the tools; stop-guard deferred/parked fix; status vocabulary normalized with legacy mapping; skills/README/matrix updated. Full planning chain PRD-002/ARCH-002/IMP-002. v0.5.78.",
      "artifact_refs": [
        "mcp/server.cjs",
        "tests/node/server.test.cjs",
        "tests/test_mcp_server.py",
        "scripts/prd_install.py",
        "scripts/prd_gate.py",
        "scripts/prd_status.py",
        ".claude/hooks/prd_stop_guard.py",
        "README.md"
      ],
      "source_refs": [
        "REQ-052"
      ]
    },
    {
      "id": "CHG-031",
      "timestamp": "2026-07-02",
      "summary": "Hardening audit loop over the MCP server (TRK-045): 2 audit rounds, ~35 C/H/M/L findings fixed — lock ownership/takeover + all-writes serialization, evidence existence check, no burned IDs, collision rejection, nested smuggling blocked, CRLF/BOM/indent preservation, installer never-clobber + dry-run disclosure, zero_pad-aware consistency check, mirror byte-equality tests, VERSION drift guard. Folded into v0.5.78.",
      "artifact_refs": [
        "mcp/server.cjs",
        "tests/node/server.test.cjs",
        "scripts/prd_install.py",
        "scripts/state_consistency_check.py",
        "scripts/prd_status.py",
        "tests/test_prd_install.py",
        "tests/test_state_consistency_check.py",
        "tests/test_tracking_commands.py",
        "package.json"
      ],
      "source_refs": [
        "REQ-052",
        "TRK-045"
      ]
    },
    {
      "id": "CHG-032",
      "timestamp": "2026-07-02",
      "summary": "Stop guard multi-session fix: PRD_STOP_GUARD=off/PRD_WORKER_SESSION=1 hard opt-out + goal-ownership binding (first blocked session owns the goal; only that session_id blocked; binding pruned on close incl. deferred/parked). Spawner contract documented in guard docstring, decision-policy (7 copies), AGENTS.md (hub+skeleton). Verified the 0.5.78 npm tarball already contained the hardening commit (LF/CRLF false alarm). v0.5.79.",
      "artifact_refs": [
        ".claude/hooks/prd_stop_guard.py",
        "templates/repo-skeleton/.claude/hooks/prd_stop_guard.py",
        "tests/test_stop_guard.py",
        "skills/project-decision-policy/SKILL.md",
        "AGENTS.md"
      ],
      "source_refs": [
        "REQ-053"
      ]
    },
    {
      "id": "CHG-033",
      "timestamp": "2026-07-10",
      "summary": "Intake sweep (v0.5.80): prd_graph FIELD_REL gains validation_ids/phase_id/applies_to with a shipped-template-shaped regression test (REQ-055, GRAPH_LANG); positive commit-discipline rule in project-git-workflow + AGENTS.md/CLAUDE.md hub and skeleton (REQ-056, AI-Collab-v3); new prd_gate warning check unsubmitted_plugin_request plus unconditional upstream-submission rules in project-request-intake and project-local-integration (REQ-057). Also fixed three true requirement_without_coverage findings the sharper graph exposed in ARCH-002, and graduated the stale REQ-002/REQ-009 pair.",
      "artifact_refs": [
        "scripts/prd_graph.py",
        "scripts/prd_gate.py",
        "tests/test_prd_graph.py",
        "tests/test_unsubmitted_plugin_request.py",
        "skills/project-git-workflow/SKILL.md",
        "skills/project-request-intake/SKILL.md",
        "skills/project-local-integration/SKILL.md",
        "AGENTS.md",
        "CLAUDE.md",
        ".prd_plugin/state/artifacts/architecture/ARCH-002.json"
      ],
      "source_refs": [
        "REQ-055",
        "REQ-056",
        "REQ-057"
      ]
    },
    {
      "id": "CHG-034",
      "timestamp": "2026-07-10",
      "summary": "Automatic upstream submission (v0.5.81, REQ-058): new scripts/request_autosubmit.py flags, exports, and delivers plugin-surface requests; mcp/server.cjs prd_file_request calls it on every filing (fail-open); new requests.upstream_hub_path config key + PRD_UPSTREAM_HUB env override, delivering only into a verified hub checkout; prd_gate remediation rewritten; project-request-intake and project-local-integration now describe the mechanism instead of asking agents to remember it.",
      "artifact_refs": [
        "scripts/request_autosubmit.py",
        "mcp/server.cjs",
        "scripts/prd_gate.py",
        "templates/script-install-scope.json",
        "templates/config.json",
        "skills/project-request-intake/SKILL.md",
        "skills/project-local-integration/SKILL.md",
        "tests/test_request_autosubmit.py",
        "tests/test_mcp_server.py",
        "README.md",
        "docs/INSTALL-MATRIX.md"
      ],
      "source_refs": [
        "REQ-058"
      ]
    },
    {
      "id": "CHG-035",
      "timestamp": "2026-07-10",
      "summary": "Tiered consent floor (v0.5.82, REQ-059/DEC-001): autonomy tier is standing consent to ship (commit/push/merge/tag/publish, gate-green precondition); hard floor (secrets, force-push, other-repo edits, irreversible spend) holds in every tier. Rewrote project-decision-policy Part 3 + tier table + Stage-1 gate + red flags (7 mirrors); updated CLAUDE.md/AGENTS.md (hub+skeleton), project-git-workflow, self-service.md; added decisions.json/DEC-001.",
      "artifact_refs": [
        "skills/project-decision-policy/SKILL.md",
        "CLAUDE.md",
        "AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "skills/project-git-workflow/SKILL.md",
        ".prd_plugin/method/self-service.md",
        ".prd_plugin/state/decisions.json",
        "tests/test_decision_policy.py"
      ],
      "source_refs": [
        "REQ-059",
        "DEC-001"
      ]
    },
    {
      "id": "CHG-036",
      "timestamp": "2026-07-11",
      "summary": "Adopted the Karpathy LLM-wiki as project-llm-wiki (v0.5.83, REQ-060): new skill (MIT, Yuhan Lei) + reference templates + LICENSE; automatic wiring via session-start nudge, project-session-close ingest+lint step, project-verification-before-completion as-built ingest, self-service source list, and decision-policy router; knowledge.llm_wiki config block (default on, lazy init, per-repo wiki/+raw/); registered in 7 mirrors + install-scope + required_skills + INSTALL-MATRIX; THIRD_PARTY_NOTICES attribution.",
      "artifact_refs": [
        "skills/project-llm-wiki/SKILL.md",
        "skills/project-llm-wiki/LICENSE",
        "skills/project-session-close/SKILL.md",
        "skills/project-verification-before-completion/SKILL.md",
        "skills/project-decision-policy/SKILL.md",
        ".prd_plugin/method/self-service.md",
        ".claude/hooks/prd_nudge.py",
        "templates/skill-install-scope.json",
        "templates/config.json",
        "docs/INSTALL-MATRIX.md",
        "THIRD_PARTY_NOTICES.md",
        "tests/test_llm_wiki.py"
      ],
      "source_refs": [
        "REQ-060"
      ]
    },
    {
      "id": "CHG-037",
      "timestamp": "2026-07-11",
      "summary": "Deep LLM-wiki backfill for updating repos (v0.5.84, REQ-061): prd-install flag_wiki_backfill_if_needed writes .prd_plugin/local/wiki-backfill-needed for established repos gaining the wiki; new read-only scripts/prd_wiki_backfill.py (--plan/--status) surveys code/docs/state/git/memory into a grounded topic plan; conditional nudge line + prd_status wiki_backfill_pending surface it; project-llm-wiki Backfill mode added (7 mirrors); script registered downstream_runtime.",
      "artifact_refs": [
        "scripts/prd_wiki_backfill.py",
        "scripts/prd_install.py",
        "scripts/prd_status.py",
        ".claude/hooks/prd_nudge.py",
        "skills/project-llm-wiki/SKILL.md",
        "templates/script-install-scope.json",
        "tests/test_wiki_backfill.py"
      ],
      "source_refs": [
        "REQ-061"
      ]
    },
    {
      "id": "CHG-038",
      "timestamp": "2026-07-11",
      "summary": "Windows-console encoding fix (v0.5.85, REQ-062): prd_status.py no longer emits U+26A0 (crashed /prd-status + MCP prd_status on cp1252) and hardens stdout to UTF-8; prd_precommit_gate.py U+2192 -> ->; new tests/test_windows_console_safe.py scans scripts+hooks for cp1252-unencodable chars. Lesson ingested into the hub wiki (operations gotchas).",
      "artifact_refs": [
        "scripts/prd_status.py",
        ".claude/hooks/prd_precommit_gate.py",
        "templates/repo-skeleton/.claude/hooks/prd_precommit_gate.py",
        "tests/test_windows_console_safe.py",
        "wiki/operations/build-and-operational-gotchas.md"
      ],
      "source_refs": [
        "REQ-062"
      ]
    },
    {
      "id": "CHG-039",
      "timestamp": "2026-07-11",
      "summary": "Wiki backfill survey no longer counts generated report artifacts as repo knowledge (v0.5.86, REQ-063): prd_wiki_backfill.py adds request-report to SKIP_DIRS (covering nested long-run-drift-calibration report trees) and a ('docs','evidence') anchored path-prefix skip so build_plan excludes generated request reports and captured evidence records from the code/docs inventory; prd_install.flag_wiki_backfill_if_needed mirrors the exclusions; test added.",
      "artifact_refs": [
        "scripts/prd_wiki_backfill.py",
        "scripts/prd_install.py",
        "tests/test_wiki_backfill.py"
      ],
      "source_refs": [
        "REQ-063"
      ]
    },
    {
      "id": "CHG-040",
      "timestamp": "2026-07-11",
      "summary": "LLM wiki commit provenance (v0.5.87, REQ-064): Commit field added to article + archive templates; project-llm-wiki records it on ingest/backfill + in the log + a lint heuristic for articles behind HEAD; prd_wiki_backfill --plan emits head_commit; hub's 18 wiki articles stamped @ 4bb8434. Parity across 7 skill mirrors + reference templates.",
      "artifact_refs": [
        "skills/project-llm-wiki/references/article-template.md",
        "skills/project-llm-wiki/references/archive-template.md",
        "skills/project-llm-wiki/SKILL.md",
        "scripts/prd_wiki_backfill.py",
        "tests/test_llm_wiki.py",
        "wiki/"
      ],
      "source_refs": [
        "REQ-064"
      ]
    },
    {
      "id": "CHG-041",
      "timestamp": "2026-07-11",
      "summary": "Drift coverage refresh + on-Stop drift check (v0.5.88, REQ-065): drift_monitor adds prd_gate/prd_self_audit/prd_graph/staleness_audit validators + archetypes + validator_command(); new prd_drift_check.py Stop hook (fail-open, surfaces one-line summary) gated by drift.monitoring.on_stop (default off); /prd-drift command + prd_hooks drift subcommand; config flags; wiki ingested (hooks/integrations/commands).",
      "artifact_refs": [
        "scripts/drift_monitor.py",
        ".claude/hooks/prd_drift_check.py",
        "scripts/prd_hooks.py",
        "commands/prd-drift.md",
        "templates/config.json",
        ".claude/settings.json",
        "tests/test_drift_monitor.py",
        "wiki/hooks/claude-code-hooks.md"
      ],
      "source_refs": [
        "REQ-065"
      ]
    },
    {
      "id": "CHG-042",
      "timestamp": "2026-07-11",
      "summary": "/prd-drift command delivery fix (v0.5.89, REQ-066): copied prd-drift.md to .claude/commands and templates/repo-skeleton/.claude/commands (was only in root commands/, so it never shipped downstream); strengthened test_slash_commands to enforce full command parity across all three locations.",
      "artifact_refs": [
        "commands/prd-drift.md",
        ".claude/commands/prd-drift.md",
        "templates/repo-skeleton/.claude/commands/prd-drift.md",
        "tests/test_slash_commands.py"
      ],
      "source_refs": [
        "REQ-066"
      ]
    },
    {
      "id": "CHG-043",
      "timestamp": "2026-07-11",
      "summary": "Drift-event feed (v0.5.90, REQ-067): drift_monitor appends a compact schema_version-1.0 event to events.jsonl on every run (drift_event_from_snapshot + _append_drift_event wired into session_start/end/delta/stop_check); read_drift_events() + --log/--limit reader; load_plugin_version falls back to config installed_version; schema documented in the wiki.",
      "artifact_refs": [
        "scripts/drift_monitor.py",
        "tests/test_drift_monitor.py",
        "wiki/integrations/optional-integrations.md"
      ],
      "source_refs": [
        "REQ-067"
      ]
    },
    {
      "id": "CHG-044",
      "timestamp": "2026-07-11",
      "summary": "Auto plugin-version-available detection (v0.5.91, REQ-068): new downstream_runtime prd_version_check.py (npm query, TTL cache, fail-open, cross-platform npm resolution); nudge surfaces update_available (cache-only) + /prd-status Plugin version section; prd_session_report.py refreshes the cache on Stop (TTL-gated); automation.version_check config (default on); /prd-version command in all 3 command locations.",
      "artifact_refs": [
        "scripts/prd_version_check.py",
        ".claude/hooks/prd_nudge.py",
        ".claude/hooks/prd_session_report.py",
        "scripts/prd_status.py",
        "commands/prd-version.md",
        "templates/config.json",
        "templates/script-install-scope.json",
        "tests/test_version_check.py"
      ],
      "source_refs": [
        "REQ-068"
      ]
    },
    {
      "id": "CHG-045",
      "timestamp": "2026-07-11",
      "summary": "Drift-event export toggle (v0.5.92, REQ-069): drift.monitoring.export {enabled default off, path default .prd_plugin/drift/events.jsonl committed}; _append_drift_event also writes the committed feed when enabled (best-effort); prd_hooks drift export on|off + /prd-drift export doc.",
      "artifact_refs": [
        "scripts/drift_monitor.py",
        "scripts/prd_hooks.py",
        "commands/prd-drift.md",
        "templates/config.json",
        "tests/test_drift_monitor.py"
      ],
      "source_refs": [
        "REQ-069"
      ]
    },
    {
      "id": "CHG-046",
      "timestamp": "2026-07-11",
      "summary": "Config toggle surface (v0.5.93, REQ-070): new downstream_runtime scripts/prd_config.py with a canonical TOGGLES registry + get/set/list over .prd_plugin/config.json (validated, style-preserving); list --json is the external-app contract; /prd-config command in all 3 locations; documented in the wiki.",
      "artifact_refs": [
        "scripts/prd_config.py",
        "commands/prd-config.md",
        "templates/script-install-scope.json",
        "wiki/integrations/optional-integrations.md",
        "tests/test_config_toggles.py"
      ],
      "source_refs": [
        "REQ-070"
      ]
    },
    {
      "id": "CHG-047",
      "timestamp": "2026-07-11",
      "summary": "Cross-host hook parity Phase 1 (v0.5.94, REQ-071): shared .prd_plugin/hooks/ (byte-identical mirror of .claude/hooks/, installed all hosts); .codex/hooks.json wires nudge (SessionStart+UserPromptSubmit) + stop_guard/session_report/drift_check/archive (Stop); parity tests; archive-wiring test updated to find the archive hook among multiple Stop hooks. Phase 1b (precommit/log payload adapters) + Phase 2 (opencode JS plugin) pending.",
      "artifact_refs": [
        ".prd_plugin/hooks/",
        ".codex/hooks.json",
        "templates/repo-skeleton/.codex/hooks.json",
        "tests/test_cross_host_hook_parity.py",
        "tests/test_automation_session_archive_policy.py"
      ],
      "source_refs": [
        "REQ-071"
      ]
    },
    {
      "id": "CHG-048",
      "timestamp": "2026-07-11",
      "summary": "Cross-host hook parity complete (v0.5.95, REQ-071): Codex .codex/hooks.json adds PreToolUse->precommit_gate + PostToolUse->log_skill (all 5 events; no adapter needed - same payload/exit-2 as Claude); new opencode .opencode/plugins/prd-hooks.js on session.idle + tool.execute.before shelling to the shared .prd_plugin/hooks/ scripts. Documented opencode run-until-done limitation (session.idle non-blocking).",
      "artifact_refs": [
        ".codex/hooks.json",
        ".opencode/plugins/prd-hooks.js",
        "templates/repo-skeleton/.opencode/plugins/prd-hooks.js",
        "tests/test_cross_host_hook_parity.py",
        "wiki/hooks/claude-code-hooks.md"
      ],
      "source_refs": [
        "REQ-071"
      ]
    },
    {
      "id": "CHG-049",
      "timestamp": "2026-07-11",
      "summary": "Promote the LLM wiki in the always-in-force docs (v0.5.96, REQ-073): added a 'Query and grow the wiki' bullet + a project-llm-wiki skill-table/list entry to AGENTS.md and CLAUDE.md (hub + skeleton), so the wiki is promoted alongside skills and workflows.",
      "artifact_refs": [
        "AGENTS.md",
        "CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md",
        "tests/test_llm_wiki.py"
      ],
      "source_refs": [
        "REQ-073"
      ]
    },
    {
      "id": "CHG-050",
      "timestamp": "2026-07-11",
      "summary": "Version-check freshness fix (v0.5.97, REQ-074): nudge now calls check() in-session (TTL-gated, 4s timeout, fail-open) instead of cache-only status(); fetch_latest gains a timeout param; default ttl_hours 24->1 across configs + the prd_config TOGGLES registry. Surfaces a new version within ~1h, in-session.",
      "artifact_refs": [
        ".claude/hooks/prd_nudge.py",
        ".prd_plugin/hooks/prd_nudge.py",
        "scripts/prd_version_check.py",
        "scripts/prd_config.py",
        "templates/config.json",
        "tests/test_version_check.py"
      ],
      "source_refs": [
        "REQ-074"
      ]
    },
    {
      "id": "CHG-051",
      "timestamp": "2026-07-11",
      "summary": "Fix prd-install --force to refresh plugin files state-preservingly (v0.5.98, REQ-075): _copy_skeleton now protects .prd_plugin/state|ids|local + config.json (overwrite only with allow_state=--yes); removed the pre-copy StateOverwriteError abort for --force; install report gains a 'preserved' list; onboarding CLAUDE.md clarifies --force vs --yes.",
      "artifact_refs": [
        "scripts/prd_install.py",
        "tests/test_prd_install.py",
        "templates/repo-skeleton/CLAUDE.md"
      ],
      "source_refs": [
        "REQ-075"
      ]
    },
    {
      "id": "CHG-052",
      "timestamp": "2026-07-11",
      "summary": "Wiki drift detection on Stop (v0.5.99, REQ-076): new wiki_drift(root) + --drift mode in prd_wiki_backfill.py (stale-vs-HEAD via Commit stamp, unstamped, index inconsistency; fail-open, no-wiki=ok); wired into drift_monitor DEFAULT_VALIDATORS + ON_STOP_VALIDATORS + SCRIPT_MAP + validator_command (--drift) + archetype; config on_stop_validators/validators gain wiki_drift.",
      "artifact_refs": [
        "scripts/prd_wiki_backfill.py",
        "scripts/drift_monitor.py",
        "templates/config.json",
        "tests/test_wiki_backfill.py",
        "wiki/integrations/optional-integrations.md"
      ],
      "source_refs": [
        "REQ-076"
      ]
    },
    {
      "id": "CHG-053",
      "timestamp": "2026-07-11",
      "summary": "Adopt ingest-manual-kit + ship validated docs/prd-plugin-ingest-manual.html (v0.6.0, REQ-077): dropped in the ingest-manual/v1 authoring toolkit (template, schema, authoring guide, write-ingest-manual skill, validate_ingest_manual.py) and authored a self-contained, chunked-by-heading manual (meta block + 6 data-im sections + architecture + recipes) grounded in the hub wiki and verified against real command output; passes the conformance validator.",
      "artifact_refs": [
        "ingest-manual-kit/",
        "docs/prd-plugin-ingest-manual.html"
      ],
      "source_refs": [
        "REQ-077"
      ]
    },
    {
      "id": "CHG-054",
      "timestamp": "2026-07-11",
      "summary": "Ingest-manual drift detection on Stop (v0.6.0, REQ-078): new scripts/ingest_manual_drift.py with ingest_manual_drift(root) + --drift mode (flags manual meta.commit far behind HEAD, unstamped, or no-longer-conformant; conformance via the vendored kit validator when present, staleness-only otherwise; fail-open, no-manual=ok); wired into drift_monitor DEFAULT_VALIDATORS + ON_STOP_VALIDATORS + DEFAULT_WEIGHTS + SCRIPT_MAP + validator_command(--drift) + archetype; registered downstream_runtime in script-install-scope (hub + skeleton).",
      "artifact_refs": [
        "scripts/ingest_manual_drift.py",
        "scripts/drift_monitor.py",
        "templates/script-install-scope.json",
        "templates/repo-skeleton/.prd_plugin/templates/script-install-scope.json",
        "tests/test_ingest_manual_drift.py"
      ],
      "source_refs": [
        "REQ-078"
      ]
    },
    {
      "id": "CHG-055",
      "timestamp": "2026-07-11",
      "summary": "Source-path-aware ingest-manual drift (v0.6.1, REQ-079): ingest_manual_drift.py now flags precisely when a repo file/dir the manual cites (paths in <code> blocks that resolve in-repo) changed since its meta.commit stamp -- git diff meta.commit..HEAD intersected with cited paths -- instead of the blunt commits-behind proxy. Silent for unrelated churn, immediate for relevant changes; commits-behind kept only as a coarse fallback when no citable paths exist. Unstamped/non-conformant remain zero-tolerance. Refreshed docs/prd-plugin-ingest-manual.html (counts, detector) and re-stamped it.",
      "artifact_refs": [
        "scripts/ingest_manual_drift.py",
        "scripts/drift_monitor.py",
        "docs/prd-plugin-ingest-manual.html",
        "tests/test_ingest_manual_drift.py"
      ],
      "source_refs": [
        "REQ-079"
      ]
    },
    {
      "id": "CHG-056",
      "timestamp": "2026-07-11",
      "summary": "Fix prd-install --force not refreshing config.json's plugin.installed_version (v0.6.2, REQ-080): _record_install now also surgically stamps .prd_plugin/config.json (the field prd_version_check reads), preserving all other user config. config.json is state-protected so the skeleton copy skips it, but installed_version is a plugin-owned marker; left unstamped it went stale on every update and silently masked releases downstream.",
      "artifact_refs": [
        "scripts/prd_install.py",
        "tests/test_prd_install.py"
      ],
      "source_refs": [
        "REQ-080"
      ]
    },
    {
      "id": "CHG-057",
      "timestamp": "2026-07-11",
      "summary": "Fork version drift monitoring on Stop (v0.6.3, REQ-081): new scripts/fork_version_check.py -- a generic upstream-version check that polls a configured JSON URL (static manifest or a node /v1/status), reads a configured version field (dotted paths), and compares to a local marker (default FORK-VERSION); surfaces 'a new fork version is available' via a nudge line and the drift monitor. Inert by default (fork.version_check.enabled false), a no-op unless the repo is a configured fork consumer, TTL-cached, fail-open. Added 5 fork.version_check config toggles; wired fork_drift into drift_monitor (default+on-Stop+weights+SCRIPT_MAP+validator_command+archetype) and script-install-scope; nudge surfaces it on Stop. Also retroactively added ingest_manual_drift + fork_drift to the config validators/on_stop_validators lists in all four config copies (they pinned an older list that dropped ingest_manual_drift added in 0.6.0).",
      "artifact_refs": [
        "scripts/fork_version_check.py",
        "scripts/drift_monitor.py",
        "scripts/prd_config.py",
        ".claude/hooks/prd_nudge.py",
        "templates/config.json",
        "templates/script-install-scope.json",
        "tests/test_fork_version_check.py"
      ],
      "source_refs": [
        "REQ-081"
      ]
    },
    {
      "id": "CHG-058",
      "timestamp": "2026-07-11",
      "summary": "UTCP tool surface owned in-repo (v0.7.0, REQ-082): new scripts/prd_tools.py defines prd-plugin's read-only observe/recall tools (status, tracking, decisions, evidence, wiki, drift, gate) over a repo's .prd_plugin state, from a single TOOLS spec that drives both subcommand dispatch and a UTCP manual (--utcp-manual / repo-root utcp.json). Tools are cli call templates that run this repo's own scripts, so a UTCP host (AI-Collab hub / @utcp/mcp-bridge) mounts them instead of re-implementing them; zero runtime deps, no server. Writes stay on the validated MCP/script path. Registered prd_tools.py downstream_runtime; ingest manual utcp_manual is no longer null.",
      "artifact_refs": [
        "scripts/prd_tools.py",
        "utcp.json",
        "tests/test_prd_tools.py",
        "docs/prd-plugin-ingest-manual.html",
        "templates/script-install-scope.json"
      ],
      "source_refs": [
        "REQ-082"
      ]
    },
    {
      "id": "CHG-061",
      "timestamp": "2026-07-12",
      "summary": "Released v0.9.0 minimal CRAFTE state tools: bounded find/get, safe create/update/link, duplicate-proof allocation, guarded lifecycle transitions, and cross-file link rollback (REQ-085).",
      "artifact_refs": [
        "mcp/server.cjs",
        "tests/node/server.test.cjs",
        "README.md",
        "docs/ID-SCHEME.md",
        "wiki/mcp/mcp-state-server.md"
      ],
      "source_refs": [
        "REQ-085",
        "DEC-003",
        "EV-057"
      ],
      "linked_ids": [
        "REQ-085"
      ]
    },
    {
      "id": "CHG-062",
      "timestamp": "2026-07-12",
      "summary": "Corrected and enforced hub release publication: remote v* tag push is the npm publication action; GitHub Actions is inspectable/rerunnable; local npm credentials are irrelevant; policy is tested and persisted in workflow guidance, wiki, ingest manual, and MEM-001.",
      "artifact_refs": [
        ".github/workflows/npm-publish.yml",
        "AGENTS.md",
        "skills/project-git-workflow/SKILL.md",
        "mcp/server.cjs",
        "tests/test_release_publication_policy.py",
        "tests/node/server.test.cjs",
        "wiki/release/release-ceremony.md",
        ".prd_plugin/state/memory.json"
      ],
      "source_refs": [
        "REQ-086",
        "HLT-007",
        "EV-058",
        "MEM-001"
      ],
      "linked_ids": [
        "REQ-086"
      ]
    },
    {
      "id": "CHG-063",
      "timestamp": "2026-07-13",
      "summary": "Added duplicate-safe agent tracking branches, serialized promotion, validators, graph provenance, configuration toggles, downstream method/docs/templates, release metadata, package-cache exclusions, and regression coverage for 0.9.2.",
      "artifact_refs": [
        "mcp/server.cjs",
        "scripts/state_consistency_check.py",
        "scripts/prd_graph.py",
        "templates/config.json",
        "docs/DOCUMENT-BRANCHING.md",
        "docs/doc-branches/DBR-001-agent-tracking-branches/BRANCH.json"
      ],
      "source_refs": [
        "REQ-087",
        "TRK-079",
        "DBR-001",
        "EV-060",
        "DEC-004"
      ]
    },
    {
      "id": "CHG-064",
      "timestamp": "2026-07-13",
      "summary": "Enforced duplicate-safe parallel tracking branches and worker write isolation; added DBR discovery, required downstream state validation, synchronized workflow guidance, regression coverage, and release 0.9.4 metadata.",
      "artifact_refs": [
        "mcp/server.cjs",
        "scripts/prd_status.py",
        "scripts/prd_gate.py",
        "templates/script-install-scope.json",
        "skills/",
        "templates/repo-skeleton/",
        "docs/",
        "wiki/",
        "tests/"
      ],
      "source_refs": [
        "REQ-088",
        "HLT-009",
        "TRK-083",
        "TRK-084",
        "TRK-085",
        "EV-062",
        "PRD-002",
        "ARCH-002",
        "IMP-002"
      ],
      "linked_ids": [
        "REQ-088",
        "HLT-009"
      ]
    },
    {
      "id": "CHG-065",
      "timestamp": "2026-07-13",
      "summary": "Hardened DBR discovery so malformed branch files cannot break canonical state search while status and exact retrieval still surface the defect.",
      "artifact_refs": [
        "mcp/server.cjs",
        "tests/node/server.test.cjs"
      ],
      "source_refs": [
        "REQ-088",
        "HLT-009",
        "EV-063",
        "CHG-064"
      ],
      "linked_ids": [
        "REQ-088",
        "HLT-009"
      ]
    },
    {
      "id": "CHG-066",
      "timestamp": "2026-07-13",
      "summary": "prd-install now creates and idempotently maintains a bounded downstream root .gitignore block without clobbering project rules (v0.9.5).",
      "artifact_refs": [
        "scripts/prd_install.py",
        "tests/test_prd_install.py",
        "README.md",
        "docs/INSTALL-MATRIX.md",
        "templates/repo-skeleton/docs/INSTALL-MATRIX.md",
        "docs/prd-plugin-ingest-manual.html",
        "wiki/operations/build-and-operational-gotchas.md",
        "templates/releases.json"
      ],
      "source_refs": [
        "REQ-089",
        "TRK-086",
        "HLT-010"
      ]
    },
    {
      "id": "CHG-067",
      "timestamp": "2026-07-14",
      "summary": "Added configurable categorized Stop-hook reflections with per-question activation, full duplicate-safe CLI/MCP CRUD, recursion-safe host adapters, and upgrade-preserving downstream delivery in v0.10.0.",
      "artifact_refs": [
        "scripts/prd_reflections.py",
        ".prd_plugin/hooks/prd_reflection.py",
        "mcp/server.cjs",
        ".opencode/plugins/prd-hooks.js",
        ".prd_plugin/config.json",
        "docs/prd-plugin-ingest-manual.html"
      ],
      "source_refs": [
        "REQ-090",
        "PRD-004",
        "ARCH-004",
        "IMP-005",
        "EV-066",
        "HLT-011"
      ]
    },
    {
      "id": "CHG-068",
      "timestamp": "2026-07-14",
      "summary": "Shipped the config-toggleable PRD Plugin to AI-Collab Substrate adapter, corrected upgrade migration and npm privacy gaps found during downstream re-audit, published prd-plugin 0.11.1, and pushed the verified AI-Collab runtime branch.",
      "artifact_refs": [
        "PRD-005",
        "ARCH-005",
        "IMP-006",
        "EV-073",
        "v0.11.1",
        "4d19290",
        "648cf1f"
      ],
      "source_refs": [
        "REQ-091",
        "TRK-091",
        "DEC-005",
        "HLT-012"
      ]
    },
    {
      "id": "CHG-069",
      "timestamp": "2026-07-14",
      "summary": "State consistency validation skips binary evidence while retaining strict textual claim scanning; released as 0.11.2.",
      "artifact_refs": [
        "scripts/state_consistency_check.py",
        "tests/test_state_consistency_check.py",
        "tests/test_mcp_server.py",
        "npm:prd-plugin@0.11.2"
      ],
      "source_refs": [
        "REQ-092",
        "TRK-092",
        "HLT-013",
        "EV-074"
      ],
      "linked_ids": [
        "REQ-092"
      ]
    },
    {
      "id": "CHG-070",
      "timestamp": "2026-07-14",
      "summary": "Add configurable, fail-closed impact-scoped verification planning for AI-Collab execution.",
      "artifact_refs": [
        "scripts/prd_test_scope.py",
        "scripts/prd_config.py",
        "scripts/prd_substrate.py",
        "scripts/prd_tools.py",
        "skills/project-verification-before-completion/SKILL.md"
      ],
      "source_refs": [
        "REQ-094",
        "TRK-094",
        "PRD-006",
        "ARCH-006",
        "IMP-007",
        "EV-079"
      ]
    },
    {
      "id": "CHG-071",
      "timestamp": "2026-07-14",
      "summary": "Unified all shipped PRD Plugin configuration into a validated catalog and management surface, added latency profiles and config-gated single-process hook dispatch, and folded the controls through MCP, UTCP, installer, host mirrors, templates, docs, and release 0.14.0.",
      "artifact_refs": [
        "PRD-007",
        "ARCH-007",
        "IMP-008",
        "EV-082"
      ],
      "source_refs": [
        "REQ-095",
        "TRK-097",
        "TRK-098",
        "TRK-099",
        "TRK-100"
      ]
    },
    {
      "id": "CHG-072",
      "timestamp": "2026-07-14",
      "summary": "Adopted the owner release preference: successful hub tag pushes are treated as published unless the owner reports otherwise; routine Actions/npm polling is skipped and recovery checks are exception-driven.",
      "artifact_refs": [
        "MEM-001",
        "EV-083"
      ],
      "source_refs": [
        "REQ-095",
        "TRK-097"
      ]
    },
    {
      "id": "CHG-073",
      "timestamp": "2026-07-14",
      "summary": "Added complete configurable deterministic workflow authority with persistent WFR runs, explicit AI-Collab judgment contracts, lifecycle hooks, MCP/UTCP management, downstream delivery, CHML audit, and release-safe focused/full verification.",
      "artifact_refs": [
        "scripts/prd_workflows.py",
        "templates/workflows.json",
        "mcp/server.cjs",
        ".prd_plugin/hooks/prd_hook_dispatch.py",
        "scripts/workflow_chml_audit.py",
        "docs/prd-plugin-ingest-manual.html"
      ],
      "source_refs": [
        "REQ-096",
        "DEC-006",
        "IMP-009",
        "EV-084",
        "WFR-002"
      ]
    },
    {
      "id": "CHG-074",
      "timestamp": "2026-07-14",
      "summary": "Repaired the complete shipped skill surface, added semantic feature-to-skill release enforcement, normalized workflow command receipts, and hardened the Windows workflow-state lock for PRD Plugin 0.15.1.",
      "artifact_refs": [
        "templates/feature-skill-map.json",
        "scripts/feature_skill_audit.py",
        "skills/",
        "templates/repo-skeleton/",
        "scripts/prd_workflows.py"
      ],
      "source_refs": [
        "TRK-106",
        "EV-087"
      ]
    },
    {
      "id": "CHG-075",
      "timestamp": "2026-07-14",
      "summary": "Synchronized the installed repo-skeleton config authority with canonical defaults, added parity and fresh-install workflow regressions, and prepared the 0.15.2 corrective release.",
      "artifact_refs": [
        "templates/config.json",
        "templates/repo-skeleton/.prd_plugin/templates/config.json",
        "tests/test_prd_install.py",
        "wiki/integrations/unified-configuration.md",
        "raw/configuration/2026-07-14-installer-config-template-parity-defect.md"
      ],
      "source_refs": [
        "REQ-097",
        "TRK-107",
        "EV-089"
      ]
    },
    {
      "id": "CHG-076",
      "timestamp": "2026-07-15",
      "summary": "Guarded destructive installer resets, made --force the explicit safe update path, refused non-interactive --yes resets, required exact interactive confirmation, and updated all downstream agent guidance for PRD Plugin 0.15.3.",
      "artifact_refs": [
        "scripts/prd_install.py",
        "tests/test_prd_install.py",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md",
        "skills/project-prd-plugin-setup/SKILL.md",
        "wiki/operations/build-and-operational-gotchas.md"
      ],
      "source_refs": [
        "REQ-054",
        "HLT-002",
        "TRK-108",
        "EV-093",
        "WFR-015",
        "WFR-016"
      ]
    },
    {
      "id": "CHG-077",
      "timestamp": "2026-07-15",
      "summary": "Made self-service Substrate-memory/wiki/tool-first, moved detailed subagent safety into an on-demand shipped method, and limited subagents to explicit user plus host/runtime permission across hub and downstream guidance for PRD Plugin 0.15.4.",
      "artifact_refs": [
        "AGENTS.md",
        "CLAUDE.md",
        ".prd_plugin/method/self-service.md",
        ".prd_plugin/method/subagents.md",
        "skills/project-decision-policy/SKILL.md",
        "skills/project-code-review/SKILL.md",
        "skills/project-git-workflow/SKILL.md",
        "skills/project-document-branch/SKILL.md",
        "templates/feature-skill-map.json",
        "wiki/skills/skills-and-the-router.md"
      ],
      "source_refs": [
        "TRK-109",
        "DEC-007",
        "EV-095",
        "WFR-017"
      ]
    },
    {
      "id": "CHG-078",
      "timestamp": "2026-07-15",
      "summary": "Enforced directly navigable inline links for local Markdown references across hub and downstream LLM wikis, repaired all 32 hub findings, and excluded workflow receipt snapshots from canonical ID duplicate detection for PRD Plugin 0.15.5.",
      "artifact_refs": [
        "scripts/prd_wiki_backfill.py",
        "scripts/prd_gate.py",
        "scripts/prd_config.py",
        "mcp/server.cjs",
        "skills/project-llm-wiki/SKILL.md",
        "templates/config.json",
        "templates/feature-skill-map.json",
        "wiki/knowledge/the-llm-wiki.md",
        "README.md",
        "docs/METHOD.md"
      ],
      "source_refs": [
        "REQ-098",
        "TRK-110",
        "EV-097",
        "WFR-020"
      ]
    },
    {
      "id": "CHG-079",
      "timestamp": "2026-07-15",
      "summary": "Added the source-backed AI-Collab Substrate capability parity audit and canonical synchronization brainstorm, PRD, architecture, and phased implementation plan.",
      "artifact_refs": [
        "docs/audits/substrate-capability-parity-2026-07-15.json",
        "docs/brainstorm/BR-2026-07-15-substrate-capability-parity.json",
        ".prd_plugin/state/artifacts/prd/PRD-009.json",
        ".prd_plugin/state/artifacts/architecture/ARCH-009.json",
        ".prd_plugin/state/artifacts/implementation_plan/IMP-010.json"
      ],
      "source_refs": [
        "REQ-099",
        "TRK-111",
        "DEC-008"
      ]
    },
    {
      "id": "CHG-080",
      "timestamp": "2026-07-15",
      "summary": "Cascaded the repository service consume/provide manifest into the approved Substrate parity brainstorm, PRD, architecture, and implementation plan.",
      "artifact_refs": [
        "docs/brainstorm/BR-2026-07-15-substrate-capability-parity.json",
        ".prd_plugin/state/artifacts/prd/PRD-009.json",
        ".prd_plugin/state/artifacts/architecture/ARCH-009.json",
        ".prd_plugin/state/artifacts/implementation_plan/IMP-010.json"
      ],
      "source_refs": [
        "REQ-100",
        "TRK-112",
        "DEC-009"
      ]
    },
    {
      "id": "CHG-081",
      "timestamp": "2026-07-15",
      "summary": "Implemented the complete contract-v2 AI-Collab Substrate runtime, deterministic execution/fallback paths, and repository-owned service consume/provide manifests for PRD Plugin 0.16.0, then closed all parity findings at CHML zero.",
      "artifact_refs": [
        "ARCH-009",
        "IMP-010",
        "PRD-009",
        "docs/audits/substrate-capability-parity-2026-07-15-reaudit.json"
      ],
      "source_refs": [
        "REQ-099",
        "REQ-100",
        "TRK-112",
        "EV-101"
      ]
    },
    {
      "id": "CHG-082",
      "timestamp": "2026-07-15",
      "summary": "Published PRD Plugin 0.16.0 through the remote v0.16.0 tag and closed the Substrate parity/service-manifest implementation goal with verified CHML zero.",
      "artifact_refs": [
        "package.json",
        "templates/releases.json",
        "docs/audits/substrate-capability-parity-2026-07-15-reaudit.json"
      ],
      "source_refs": [
        "REQ-099",
        "REQ-100",
        "TRK-112",
        "EV-101",
        "EV-102"
      ]
    },
    {
      "id": "CHG-083",
      "timestamp": "2026-07-15",
      "summary": "Fixed record-backed ID allocation so transported request snapshots cannot masquerade as duplicate canonical requests; added regression coverage, synchronized 0.16.1 release surfaces, and documented canonical ownership.",
      "artifact_refs": [
        "mcp/server.cjs",
        "tests/node/server.test.cjs",
        "docs/ID-SCHEME.md",
        "wiki/state/id-system-and-state.md"
      ],
      "source_refs": [
        "REQ-101",
        "TRK-113"
      ]
    },
    {
      "id": "CHG-084",
      "timestamp": "2026-07-15",
      "summary": "Pre-route installed PRD Plugin request submission to the fixed workspace hub and migrate old null routes safely.",
      "artifact_refs": [
        "templates/config.json",
        "templates/repo-skeleton/.prd_plugin/config.json",
        "templates/repo-skeleton/.prd_plugin/templates/config.json",
        "scripts/prd_install.py",
        "tests/test_prd_install.py",
        "README.md",
        "wiki/requests/intake-and-upstream-submission.md"
      ],
      "source_refs": [
        "TRK-114",
        "DEC-010"
      ]
    },
    {
      "id": "CHG-085",
      "timestamp": "2026-07-16",
      "summary": "Ship staleness_audit.py as downstream_runtime and reconcile UTCP/MCP registrations through the canonical tool-surface contract: new templates/tool-surface.json (+ skeleton copy), prd_tools.load_tool_surface_catalog, installer delivery to .prd_plugin/tool-surface.json, regenerated utcp.json, parity tests on both transports.",
      "artifact_refs": [
        "templates/tool-surface.json",
        "templates/repo-skeleton/.prd_plugin/templates/tool-surface.json",
        "templates/script-install-scope.json",
        "templates/repo-skeleton/.prd_plugin/templates/script-install-scope.json",
        "scripts/prd_tools.py",
        "scripts/prd_install.py",
        "utcp.json",
        "tests/test_prd_tools.py",
        "tests/test_mcp_server.py",
        "tests/test_prd_install.py",
        "tests/test_script_install_scope_policy.py"
      ],
      "source_refs": [
        "REQ-102",
        "REQ-103",
        "TRK-115"
      ]
    },
    {
      "id": "CHG-086",
      "timestamp": "2026-07-16",
      "summary": "Stop guard no longer conscripts sessions toward another host runtime's goals: owner_agent host filtering via PRD_HOOK_HOST exported by the hook dispatcher; guard and dispatcher synced across hub and skeleton copies.",
      "artifact_refs": [
        ".claude/hooks/prd_stop_guard.py",
        ".prd_plugin/hooks/prd_stop_guard.py",
        ".prd_plugin/hooks/prd_hook_dispatch.py",
        "templates/repo-skeleton/.claude/hooks/prd_stop_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_stop_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_hook_dispatch.py",
        "tests/test_stop_guard.py",
        "tests/test_hook_dispatcher.py",
        "wiki/hooks/claude-code-hooks.md"
      ],
      "source_refs": [
        "REQ-105",
        "TRK-116"
      ]
    },
    {
      "id": "CHG-087",
      "timestamp": "2026-07-16",
      "summary": "Repair stale planning-prefix registry counters and add CONS-ERR-004 so state_consistency_check flags counters at or behind planning-artifact ID maxima.",
      "artifact_refs": [
        ".prd_plugin/ids/registry.json",
        "scripts/state_consistency_check.py",
        "tests/test_state_consistency_check.py"
      ],
      "source_refs": [
        "REQ-107",
        "TRK-117"
      ]
    },
    {
      "id": "CHG-088",
      "timestamp": "2026-07-16",
      "summary": "UTCP-first stage 1: complete 57-tool UTCP manual (2.0.0) with bridged mcp call templates for all state-server tools; generated mcp/tool-metadata.json projection; installer delivery; catalog policy manual_coverage:complete.",
      "artifact_refs": [
        "utcp.json",
        "scripts/prd_tools.py",
        "mcp/server.cjs",
        "mcp/tool-metadata.json",
        "templates/tool-surface.json",
        "templates/repo-skeleton/.prd_plugin/templates/tool-surface.json",
        "scripts/prd_install.py",
        "tests/test_utcp_first_catalog.py"
      ],
      "source_refs": [
        "REQ-107",
        "TRK-117"
      ]
    },
    {
      "id": "CHG-089",
      "timestamp": "2026-07-16",
      "summary": "Official @utcp/mcp-bridge round-trip parity proven and gated in CI (npm ci); build_manual() emits the strict-spec mountable manual, utcp.json becomes the hub-feed static manifest via --static-manifest, mcp templates keyed by contract mount name prd_plugin.",
      "artifact_refs": [
        "scripts/prd_tools.py",
        "utcp.json",
        "tests/test_utcp_first_catalog.py",
        "tests/test_prd_tools.py",
        "package.json",
        "package-lock.json",
        ".github/workflows/ci.yml",
        "wiki/mcp/mcp-state-server.md"
      ],
      "source_refs": [
        "REQ-107",
        "TRK-117"
      ]
    },
    {
      "id": "CHG-090",
      "timestamp": "2026-07-16",
      "summary": "Add prd_import_request: validated duplicate-safe hub inbox intake with full transport provenance; catalog/metadata/manual regenerated (46 MCP tools, 58 manual entries).",
      "artifact_refs": [
        "mcp/server.cjs",
        "mcp/tool-metadata.json",
        "utcp.json",
        "templates/tool-surface.json",
        "templates/repo-skeleton/.prd_plugin/templates/tool-surface.json",
        "tests/test_mcp_server.py",
        "wiki/mcp/mcp-state-server.md"
      ],
      "source_refs": [
        "REQ-106",
        "TRK-117"
      ]
    },
    {
      "id": "CHG-091",
      "timestamp": "2026-07-16",
      "summary": "Host-native command parity: 13 generated source-command-* skills (91 mirror files) from commands/*.md via scripts/generate_command_skills.py, parity-tested; stale source-command gitignore rules removed; prd_import_request type-alias normalization.",
      "artifact_refs": [
        "scripts/generate_command_skills.py",
        "skills/source-command-*",
        "templates/skill-install-scope.json",
        "tests/test_command_skill_parity.py",
        "mcp/server.cjs",
        "scripts/prd_install.py",
        "wiki/commands/slash-commands.md"
      ],
      "source_refs": [
        "REQ-108",
        "TRK-118"
      ]
    },
    {
      "id": "CHG-092",
      "timestamp": "2026-07-16",
      "summary": "Wiki page read/export contract v1 (wiki tool list/read actions) plus the offline self-contained HTML viewer with copy/download buttons; exporter classified downstream_runtime; manual regenerated.",
      "artifact_refs": [
        "scripts/prd_tools.py",
        "scripts/wiki_html_export.py",
        "utcp.json",
        "templates/script-install-scope.json",
        "tests/test_wiki_page_contract.py",
        "tests/test_wiki_html_export.py",
        "wiki/knowledge/the-llm-wiki.md"
      ],
      "source_refs": [
        "REQ-109",
        "TRK-119"
      ]
    },
    {
      "id": "CHG-093",
      "timestamp": "2026-07-16",
      "summary": "Workspace all-wikis super index: wiki_html_export.py --all discovers PRD-enabled wiki repos, regenerates per-repo viewers with back-links, and emits all-wikis.html repo cards.",
      "artifact_refs": [
        "scripts/wiki_html_export.py",
        "tests/test_wiki_html_export.py",
        "wiki/knowledge/the-llm-wiki.md"
      ],
      "source_refs": [
        "REQ-110",
        "TRK-120"
      ]
    },
    {
      "id": "CHG-094",
      "timestamp": "2026-07-16",
      "summary": "Super index discovery keys on the wiki/index.md convention marker; plugin-less convention wikis (Fork) included with host-side guest viewers.",
      "artifact_refs": [
        "scripts/wiki_html_export.py",
        "tests/test_wiki_html_export.py",
        "wiki/knowledge/the-llm-wiki.md"
      ],
      "source_refs": [
        "REQ-111",
        "TRK-121"
      ]
    },
    {
      "id": "CHG-095",
      "timestamp": "2026-07-16",
      "summary": "Combined cross-wiki changelog tab in all-wikis.html: shared log convention parsed deterministically, newest-day-first grouping, repo badges, lint toggle.",
      "artifact_refs": [
        "scripts/wiki_html_export.py",
        "tests/test_wiki_html_export.py",
        "wiki/knowledge/the-llm-wiki.md"
      ],
      "source_refs": [
        "REQ-112",
        "TRK-122"
      ]
    },
    {
      "id": "CHG-096",
      "timestamp": "2026-07-16",
      "summary": "Stop guard freshness window: goals not updated within automation.stop_guard_goal_max_age_days (default 2) only drive run-until-done for the session that owns them; stale-only repos stop freely.",
      "artifact_refs": [
        ".claude/hooks/prd_stop_guard.py",
        ".prd_plugin/hooks/prd_stop_guard.py",
        "templates/repo-skeleton/.claude/hooks/prd_stop_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_stop_guard.py",
        "scripts/prd_config.py",
        "templates/config.json",
        "tests/test_stop_guard.py",
        "wiki/hooks/claude-code-hooks.md"
      ],
      "source_refs": [
        "REQ-114",
        "TRK-123"
      ]
    },
    {
      "id": "CHG-097",
      "timestamp": "2026-07-16",
      "summary": "Tool/reachability parity: coverage map gains tool_capabilities/tool_exemption per feature, audit enforces both drift directions, method rule in gate + 3 skills, map backfilled to 25 features with 4 stale guidances fixed.",
      "artifact_refs": [
        "templates/feature-skill-map.json",
        "scripts/feature_skill_audit.py",
        ".prd_plugin/method/completion-gate.md",
        "skills/project-implementation-plan",
        "skills/project-verification-before-completion",
        "skills/project-planning-lifecycle",
        "tests/test_feature_skill_audit.py",
        "wiki/skills/skills-and-the-router.md"
      ],
      "source_refs": [
        "REQ-115",
        "TRK-124"
      ]
    },
    {
      "id": "CHG-098",
      "timestamp": "2026-07-18",
      "summary": "Built-in 'off' config profile + /prd-off and /prd-on commands (native Claude + generated host skills); decision-policy documents the switch.",
      "artifact_refs": [
        "scripts/prd_config.py",
        "commands/prd-off.md",
        "commands/prd-on.md",
        "templates/skill-install-scope.json",
        "templates/feature-skill-map.json",
        "skills-manifest.json"
      ],
      "source_refs": [
        "REQ-119",
        "TRK-126"
      ]
    },
    {
      "id": "CHG-099",
      "timestamp": "2026-07-18",
      "summary": "fabric.* evidence-bound model-profile binding policy: managed structured key with audit validation, fail-safe raw default for unmapped models, fail-closed set-fabric-binding CLI, read-only UTCP fabric tool (capability fabric.resolve).",
      "artifact_refs": [
        "scripts/prd_config.py",
        "scripts/prd_tools.py",
        "utcp.json",
        "templates/tool-surface.json",
        "templates/feature-skill-map.json",
        "templates/config.json",
        "commands/prd-config.md",
        "tests/test_fabric_bindings.py",
        "wiki/integrations/unified-configuration.md",
        ".prd_plugin/state/artifacts/implementation_plan/IMP-012.json"
      ],
      "source_refs": [
        "REQ-120",
        "TRK-127"
      ]
    },
    {
      "id": "CHG-100",
      "timestamp": "2026-07-18",
      "summary": "Release false-green fixed end to end: LF-normalized, POSIX-string-ordered skill hashes (cross-platform identical); publish_verify registry read-back gate; publish workflow test-dependency parity; 0.16.20 published and registry-confirmed as the backfill for unpublished 0.16.16-0.16.19.",
      "artifact_refs": [
        "scripts/generate_skills_manifest.py",
        "scripts/publish_verify.py",
        ".github/workflows/npm-publish.yml",
        "tests/test_skills_manifest.py",
        "tests/test_publish_verify.py",
        "wiki/release/release-ceremony.md",
        "wiki/release/npm-publish-quirks.md"
      ],
      "source_refs": [
        "REQ-121",
        "TRK-128"
      ]
    },
    {
      "id": "CHG-101",
      "timestamp": "2026-07-18",
      "summary": "Service manifest runtime bindings (bind_host/port/public/restart_requires_consent) with fail-closed loopback validation; public-service stop/restart/rebind added to the hard consent floor in every tier; 0.16.21 registry-confirmed.",
      "artifact_refs": [
        "scripts/prd_services.py",
        "tests/test_prd_services.py",
        "skills/project-decision-policy/SKILL.md",
        "AGENTS.md",
        "CLAUDE.md",
        "templates/feature-skill-map.json",
        "wiki/integrations/repository-service-manifest.md",
        "wiki/decisions/autonomy-and-consent-floor.md"
      ],
      "source_refs": [
        "REQ-122",
        "TRK-129"
      ]
    },
    {
      "id": "CHG-102",
      "timestamp": "2026-07-18",
      "summary": "Repo-owned extensions.* config namespace (audit-exempt, object-validated); upstream resolution replies + scoped mailbox delivered to ai-collab-v3.",
      "artifact_refs": [
        "scripts/prd_config.py",
        "tests/test_unified_config.py",
        "commands/prd-config.md"
      ],
      "source_refs": [
        "REQ-123",
        "TRK-130"
      ]
    },
    {
      "id": "CHG-103",
      "timestamp": "2026-07-18",
      "summary": "Resolution loop closure: message_check unanswered_resolutions detector, intake Close-the-Loop rule, six historical gaps answered and mailboxed to ai-collab-v3.",
      "artifact_refs": [
        "scripts/message_check.py",
        "tests/test_message_check.py",
        "skills/project-request-intake/SKILL.md",
        "wiki/requests/intake-and-upstream-submission.md"
      ],
      "source_refs": [
        "REQ-124",
        "TRK-131"
      ]
    },
    {
      "id": "CHG-104",
      "timestamp": "2026-07-19",
      "summary": "Downstream loop closure: mailbox rows resolve by source_request_id and stamp upstream_request_id, unknown rows reported not planted, pulls idempotent, and session.start applies delivered mailboxes automatically via the new requests.pull action.",
      "artifact_refs": [
        "scripts/request_pull.py",
        "scripts/prd_workflows.py",
        "templates/workflows.json",
        "tests/test_request_protocol.py",
        "skills/project-request-intake/SKILL.md",
        "wiki/requests/intake-and-upstream-submission.md"
      ],
      "source_refs": [
        "REQ-125",
        "TRK-132"
      ]
    },
    {
      "id": "CHG-105",
      "timestamp": "2026-07-19",
      "summary": "Transport residue cleared: request_pull prunes resolved outbox packages and consumes fully-applied mailboxes (keeping mailboxes with unmatched rows); real downstream repo restored to clear.",
      "artifact_refs": [
        "scripts/request_pull.py",
        "tests/test_request_protocol.py",
        "skills/project-request-intake/SKILL.md",
        "wiki/requests/intake-and-upstream-submission.md"
      ],
      "source_refs": [
        "REQ-126",
        "TRK-133"
      ]
    },
    {
      "id": "CHG-106",
      "timestamp": "2026-07-19",
      "summary": "Repo identity resolution: install resolves the 'auto' placeholder, installed repos carrying it are an audit finding, workspace_peers boundary predicate, prd_services identity CLI; substrate drift gate and manifest parity corrected.",
      "artifact_refs": [
        "scripts/prd_services.py",
        "scripts/prd_install.py",
        "scripts/prd_substrate_catalog.py",
        "tests/test_repo_identity.py"
      ],
      "source_refs": [
        "REQ-127",
        "TRK-134"
      ]
    },
    {
      "id": "CHG-107",
      "timestamp": "2026-07-19",
      "summary": "Decision-quality bar becomes CRAFTES: Secure defined (secrets, fail closed, least privilege, bounded blast radius) across skills, always-in-force docs, and the wiki with a where-it-matters section.",
      "artifact_refs": [
        "skills/project-decision-policy/SKILL.md",
        "skills/project-deterministic-workflows/SKILL.md",
        "AGENTS.md",
        "CLAUDE.md",
        "wiki/method/the-method-and-craft-bar.md",
        "tests/test_decision_policy.py",
        "tests/test_grounding_estimation.py"
      ],
      "source_refs": [
        "REQ-128",
        "TRK-135"
      ]
    },
    {
      "id": "CHG-108",
      "timestamp": "2026-07-19",
      "summary": "Resolution replies deliver their body: deliverable-only answer detection, non-silent mailbox withholding with silent_resolutions warning, corrected intake visibility rule, nine replies redelivered.",
      "artifact_refs": [
        "scripts/message_check.py",
        "scripts/request_mailbox.py",
        "skills/project-request-intake/SKILL.md",
        "tests/test_message_check.py",
        "tests/test_request_protocol.py"
      ],
      "source_refs": [
        "REQ-130",
        "TRK-136"
      ]
    },
    {
      "id": "CHG-109",
      "timestamp": "2026-07-19",
      "summary": "needs_info joins body-dependent statuses in silent-delivery detection; append_reply clears needs_info only on inbound replies.",
      "artifact_refs": [
        "scripts/request_mailbox.py",
        "scripts/request_reply.py",
        "tests/test_request_protocol.py"
      ],
      "source_refs": [
        "REQ-131",
        "TRK-137"
      ]
    },
    {
      "id": "CHG-110",
      "timestamp": "2026-07-19",
      "summary": "Verified reply delivery: request_reply --deliver appends, packages, delivers and reads back (id + body digest), failing visibly when sanitization rejects the body and updating already-submitted packages.",
      "artifact_refs": [
        "scripts/request_reply.py",
        "tests/test_request_protocol.py",
        "skills/project-request-intake/SKILL.md"
      ],
      "source_refs": [
        "REQ-132",
        "TRK-138"
      ]
    },
    {
      "id": "CHG-111",
      "timestamp": "2026-07-19",
      "summary": "Replies carry delivery state and flush automatically at session start; inbox updates reconcile into canonical requests. Unsent replies and unread answers are both structurally prevented.",
      "artifact_refs": [
        "scripts/request_reply.py",
        "scripts/request_import.py",
        "scripts/message_check.py",
        "scripts/prd_workflows.py",
        "tests/test_request_protocol.py"
      ],
      "source_refs": [
        "REQ-133",
        "REQ-134",
        "TRK-139"
      ]
    },
    {
      "id": "CHG-112",
      "timestamp": "2026-07-19",
      "summary": "The accepted journal.* configuration contract ships: seven activation keys with safe defaults, dependency-aware effective state, a closed archive-only retention enum, and fail-closed partial-family validation.",
      "artifact_refs": [
        "scripts/prd_config.py",
        "templates/config.json",
        ".prd_plugin/config.json",
        "templates/repo-skeleton/.prd_plugin/config.json",
        "tests/test_unified_config.py"
      ],
      "source_refs": [
        "REQ-135",
        "TRK-140"
      ]
    },
    {
      "id": "CHG-113",
      "timestamp": "2026-07-19",
      "summary": "Requests can be addressed to a declared peer repo and delivered into its inbox with read-back verification; the filing never fails because of routing.",
      "artifact_refs": [
        "scripts/request_routing.py",
        "scripts/request_export.py",
        "scripts/prd_workflows.py",
        "mcp/server.cjs",
        "templates/config.json",
        "templates/tool-surface.json",
        "templates/feature-skill-map.json",
        "skills/project-request-intake/SKILL.md",
        "tests/test_request_routing.py"
      ],
      "source_refs": [
        "REQ-136",
        "TRK-141",
        "DEC-012"
      ]
    },
    {
      "id": "CHG-114",
      "timestamp": "2026-07-19",
      "summary": "The decision-quality bar gains Bounded: CRAFTES becomes CRAFTESB, and scope inflation is now a named, testable failure rather than an unstated one.",
      "artifact_refs": [
        "skills/project-decision-policy/SKILL.md",
        "skills/project-deterministic-workflows/SKILL.md",
        "AGENTS.md",
        "CLAUDE.md",
        "wiki/method/the-method-and-craft-bar.md",
        "tests/test_decision_policy.py",
        "tests/test_grounding_estimation.py"
      ],
      "source_refs": [
        "REQ-139",
        "TRK-142",
        "DEC-013"
      ]
    },
    {
      "id": "CHG-115",
      "timestamp": "2026-07-19",
      "summary": "The version check reads both install channels, so a stale host plugin can no longer sit silently behind a current repo.",
      "artifact_refs": [
        "scripts/prd_version_check.py",
        "scripts/prd_status.py",
        "wiki/delivery/per-provider-delivery.md",
        "tests/test_host_plugin_version.py"
      ],
      "source_refs": [
        "REQ-140",
        "TRK-143"
      ]
    },
    {
      "id": "CHG-116",
      "timestamp": "2026-07-19",
      "summary": "PRD Plugin has a UI: a self-contained page that embeds in a host app shell or opens standalone, and a loopback control surface where the toggles actually switch.",
      "artifact_refs": [
        "scripts/prd_ui_export.py",
        "scripts/prd_ui_serve.py",
        "tests/test_prd_ui_export.py",
        "tests/test_prd_ui_serve.py",
        "templates/script-install-scope.json",
        "scripts/prd_install.py"
      ],
      "source_refs": [
        "REQ-141",
        "TRK-144"
      ]
    },
    {
      "id": "CHG-117",
      "timestamp": "2026-07-20",
      "summary": "Debugging is a bounded loop: three consecutive finds stop the fixing and force re-grounding, research, and a re-plan against the bug class.",
      "artifact_refs": [
        "skills/project-systematic-debugging/SKILL.md",
        "skills/project-decision-policy/SKILL.md",
        "tests/test_debug_loop.py"
      ],
      "source_refs": [
        "REQ-143",
        "TRK-145"
      ]
    },
    {
      "id": "CHG-118",
      "timestamp": "2026-07-20",
      "summary": "Unrelated bugs found while debugging are parked as REQ-* and looped back to at the completion gate, instead of being chased or forgotten.",
      "artifact_refs": [
        "skills/project-systematic-debugging/SKILL.md",
        "skills/project-verification-before-completion/SKILL.md",
        "tests/test_debug_loop.py"
      ],
      "source_refs": [
        "REQ-144",
        "TRK-146"
      ]
    },
    {
      "id": "CHG-119",
      "timestamp": "2026-07-20",
      "summary": "Windows Codex hooks no longer spawn a shell, --force refreshes an existing .claude/skills mirror, and the reply-delivery invariant is stated upstream.",
      "artifact_refs": [
        ".codex/hooks.json",
        "templates/repo-skeleton/.codex/hooks.json",
        "scripts/prd_install.py",
        "skills/project-request-intake/SKILL.md",
        "tests/test_inbound_regressions.py"
      ],
      "source_refs": [
        "REQ-146",
        "REQ-147",
        "REQ-148",
        "TRK-147"
      ]
    },
    {
      "id": "CHG-120",
      "timestamp": "2026-07-20",
      "summary": "The plugin ships native Claude Code hooks, so all five events fire in every enabled repo without a per-repo settings file, deferring to settings hooks when present.",
      "artifact_refs": [
        "hooks/hooks.json",
        "templates/repo-skeleton/hooks/hooks.json",
        ".prd_plugin/hooks/prd_hook_dispatch.py",
        "package.json",
        "wiki/hooks/claude-code-hooks.md",
        "tests/test_claude_plugin_hooks.py"
      ],
      "source_refs": [
        "REQ-149",
        "TRK-148"
      ]
    },
    {
      "id": "CHG-121",
      "timestamp": "2026-07-21",
      "summary": "key_decision stops only for actual key decisions: the Stop guard now blocks an undeclared stop while a goal is open, with the pause marker as the declared escape.",
      "artifact_refs": [
        ".claude/hooks/prd_stop_guard.py",
        "scripts/prd_config.py",
        "templates/config.json",
        "skills/project-decision-policy/SKILL.md",
        "tests/test_stop_guard.py"
      ],
      "source_refs": [
        "REQ-150",
        "TRK-149"
      ]
    },
    {
      "id": "CHG-122",
      "timestamp": "2026-07-21",
      "summary": "Removed an abandoned worktree that kept a deleted skill alive on disk, and made every install report exactly which config.json keys it changed.",
      "artifact_refs": [
        "scripts/prd_install.py",
        "tests/test_install_config_diff.py",
        ".claude/worktrees/"
      ],
      "source_refs": [
        "REQ-152",
        "REQ-153",
        "TRK-150"
      ]
    },
    {
      "id": "CHG-123",
      "timestamp": "2026-07-21",
      "summary": "The suite no longer goes red because the machine is busy, or because an operator configured their own repo.",
      "artifact_refs": [
        "tests/support.py",
        "tests/test_suite_load_tolerance.py",
        "tests/test_reflections.py",
        "tests/test_claude_adapter.py",
        "tests/test_agent_artifact_readability_policy.py"
      ],
      "source_refs": [
        "REQ-151",
        "TRK-151"
      ]
    },
    {
      "id": "CHG-124",
      "timestamp": "2026-07-21",
      "summary": "Wiki ingest falling behind shipped work is now a reported condition rather than an instruction agents skip.",
      "artifact_refs": [
        "scripts/wiki_ingest_drift.py",
        "scripts/prd_status.py",
        "tests/test_wiki_ingest_drift.py",
        "templates/script-install-scope.json"
      ],
      "source_refs": [
        "REQ-145",
        "TRK-151"
      ]
    },
    {
      "id": "CHG-125",
      "timestamp": "2026-07-21",
      "summary": "Tool definitions moved from the hand-written MCP server into an authored spec that generates the UTCP manual, inverting authority to UTCP-first.",
      "artifact_refs": [
        "templates/tool-spec.json",
        "mcp/server.cjs",
        "scripts/prd_tools.py",
        "scripts/prd_install.py",
        "templates/utcp-config.json",
        "tests/test_utcp_first_authority.py"
      ],
      "source_refs": [
        "REQ-107",
        "DEC-014"
      ]
    },
    {
      "id": "CHG-126",
      "timestamp": "2026-07-21",
      "summary": "A finished request thread can be closed through a validated entry point, so message_check stops reporting settled conversations as unresolved.",
      "artifact_refs": [
        "scripts/request_thread.py",
        "templates/tool-spec.json",
        "templates/tool-surface.json",
        "mcp/server.cjs",
        "tests/test_thread_close.py"
      ],
      "source_refs": [
        "REQ-113",
        "TRK-151"
      ]
    },
    {
      "id": "CHG-127",
      "timestamp": "2026-07-23",
      "summary": "Verification now resolves allowlisted executables before launch on Windows; the full-suite guard fixture is isolated from live Git state; plugin version advances to 0.16.47.",
      "artifact_refs": [
        "scripts/prd_test_scope.py",
        "tests/test_test_scope_execution.py",
        "tests/test_test_scope_guard.py",
        ".prd_plugin/state/releases.json",
        "templates/releases.json",
        ".codex-plugin/plugin.json",
        ".opencode/plugin.json",
        ".claude-plugin/plugin.json",
        "docs/evidence/EV-197.md"
      ],
      "source_refs": [
        "REQ-166",
        "TRK-152",
        "EV-197"
      ]
    },
    {
      "id": "CHG-128",
      "timestamp": "2026-07-23",
      "summary": "Promoted the full CRAFTESB decision-quality philosophy to a dedicated near-top section in hub and downstream AGENTS.md/CLAUDE.md, enforced its position and complete definitions with regression coverage, and prepared release 0.16.48.",
      "artifact_refs": [
        "AGENTS.md",
        "CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md",
        "tests/test_instruction_parity.py",
        "tests/test_prd_install.py",
        "docs/evidence/EV-199.md",
        ".prd_plugin/state/releases.json",
        "templates/releases.json"
      ],
      "source_refs": [
        "REQ-167",
        "TRK-153",
        "EV-199"
      ]
    },
    {
      "id": "CHG-129",
      "timestamp": "2026-07-23",
      "summary": "Corrected project-git-workflow so autonomous runs integrate and push clean verified commits without redundant consent prompts, mirrored the rule across all host discovery surfaces, added regression coverage, and prepared release 0.16.49.",
      "artifact_refs": [
        "skills/project-git-workflow/SKILL.md",
        ".agents/skills/project-git-workflow/SKILL.md",
        ".claude/skills/project-git-workflow/SKILL.md",
        ".opencode/skill/project-git-workflow/SKILL.md",
        "templates/repo-skeleton/.agents/skills/project-git-workflow/SKILL.md",
        "templates/repo-skeleton/.claude/skills/project-git-workflow/SKILL.md",
        "templates/repo-skeleton/.opencode/skill/project-git-workflow/SKILL.md",
        "tests/test_workflow_consistency.py",
        "tests/test_prd_skill_install.py",
        "wiki/decisions/autonomy-and-consent-floor.md",
        "raw/decisions/2026-07-23-autonomous-push-is-completion.md"
      ],
      "source_refs": [
        "REQ-168",
        "TRK-154",
        "EV-200"
      ]
    },
    {
      "id": "CHG-130",
      "timestamp": "2026-07-24",
      "summary": "Made human-readable names the required primary UI text across hub and downstream agent instructions, with internal IDs limited to secondary technical detail and parity enforcement for release 0.16.50.",
      "artifact_refs": [
        "AGENTS.md",
        "CLAUDE.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md",
        ".prd_plugin/method/reporting.md",
        "templates/repo-skeleton/.prd_plugin/method/reporting.md",
        "templates/agent-rule-parity.json",
        "tests/test_grounding_estimation.py",
        "tests/test_method_docs.py"
      ],
      "source_refs": [
        "REQ-169",
        "TRK-155",
        "WFR-392"
      ]
    },
    {
      "id": "CHG-131",
      "timestamp": "2026-07-24",
      "summary": "Grouped the PRD Plugin settings UI into human-purpose collapsible categories and added readable labels plus expandable use-case, on/off, and latency guidance for higher-impact controls; preserved the existing technical snapshot fields for compatibility and released version 0.16.51.",
      "artifact_refs": [
        "scripts/prd_ui_export.py",
        "tests/test_prd_ui_export.py",
        "wiki/delivery/plugin-ui.md",
        "raw/delivery/2026-07-24-prd-plugin-settings-decision-guidance.md",
        ".prd_plugin/state/releases.json",
        "templates/releases.json"
      ],
      "source_refs": [
        "REQ-170",
        "TRK-156",
        "EV-202",
        "WFR-395",
        "WFR-396",
        "WFR-397"
      ]
    },
    {
      "id": "CHG-132",
      "timestamp": "2026-07-24",
      "summary": "Preserved the owner-corrected message-checking rule in durable project memory: verify canonical filing outcomes, distinguish them from transport and implementation, and never infer filing failure from Git dirtiness.",
      "artifact_refs": [
        ".prd_plugin/state/memory.json"
      ],
      "source_refs": [
        "REQ-171",
        "REQ-196",
        "MEM-003"
      ]
    },
    {
      "id": "CHG-133",
      "timestamp": "2026-07-24",
      "summary": "Shipped the report-by-default configurable cross-host Reasoning Guard with category overrides, sanitized atomic lifecycle state, evidence binding, session isolation, human-readable UI guidance, latency reporting, and Claude/Codex/OpenCode parity.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        ".prd_plugin/hooks/prd_hook_dispatch.py",
        "scripts/prd_config.py",
        "scripts/prd_status.py",
        "scripts/prd_ui_export.py",
        "docs/REASONING-GUARD.md",
        "tests/test_reason_guard.py"
      ],
      "source_refs": [
        "REQ-171",
        "TRK-157",
        "EV-203"
      ]
    },
    {
      "id": "CHG-134",
      "timestamp": "2026-07-24",
      "summary": "Correct Codex Reasoning Guard coverage by extracting only visible summaries from a bounded trusted rollout tail, accumulating session observations, recovering malformed legacy coverage, synchronizing downstream templates/docs, and preparing release 0.16.53.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_reason_guard.py",
        "tests/test_reason_guard.py",
        "tests/test_hook_dispatcher.py",
        "docs/REASONING-GUARD.md",
        "wiki/hooks/reasoning-guard.md"
      ],
      "source_refs": [
        "REQ-172",
        "REQ-171",
        "TRK-158",
        "EV-204"
      ],
      "linked_ids": [
        "EV-204"
      ]
    },
    {
      "id": "CHG-135",
      "timestamp": "2026-07-24",
      "summary": "Implemented the local Structured Reasoning Diagnostic kernel for PRD Plugin 0.16.54 with report-default modes, bounded explicit evidence contracts, typed deterministic acceptance, coalesced diagnostics, coverage-qualified clearance, and Claude/Codex/OpenCode parity; no RSP or standalone server.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        "scripts/prd_status.py",
        "scripts/prd_ui_export.py",
        "docs/REASONING-GUARD.md",
        "wiki/hooks/reasoning-guard.md",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_reason_guard.py"
      ],
      "source_refs": [
        "REQ-173",
        "PRD-011",
        "ARCH-011",
        "IMP-013",
        "TRK-159",
        "EV-205",
        "EV-206",
        "WFR-414"
      ]
    },
    {
      "id": "CHG-136",
      "timestamp": "2026-07-25",
      "summary": "Reasoning Guard resolves Codex visible summaries from a trusted UUID session rollout when transcript_path is null, with fail-closed ambiguity and private-reasoning protections.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_reason_guard.py",
        "tests/test_reason_guard.py",
        "docs/REASONING-GUARD.md",
        "wiki/hooks/reasoning-guard.md"
      ],
      "source_refs": [
        "REQ-172",
        "TRK-160",
        "EV-207",
        "EV-208"
      ]
    },
    {
      "id": "CHG-137",
      "timestamp": "2026-07-25",
      "summary": "Added a deterministic semantic-lite Reason Guard classifier for active visible-summary checks, conditional clearance for unresolved inferred work, aggregate classification telemetry, status and UI reporting, and accuracy/latency release gates.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_reason_guard.py",
        "scripts/reason_guard_benchmark.py",
        "scripts/prd_status.py",
        "scripts/prd_ui_export.py",
        "docs/REASONING-GUARD.md",
        "wiki/hooks/reasoning-guard.md"
      ],
      "source_refs": [
        "REQ-174",
        "TRK-161",
        "IMP-014",
        "EV-210"
      ],
      "linked_ids": [
        "TRK-161"
      ]
    },
    {
      "id": "CHG-138",
      "timestamp": "2026-07-25",
      "summary": "Fixed Reason Guard classification of Codex Markdown-emphasized active headings after live in-repository session replay exposed the boundary mismatch.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_reason_guard.py",
        "tests/test_reason_guard.py",
        "scripts/reason_guard_benchmark.py",
        "docs/REASONING-GUARD.md",
        "wiki/hooks/reasoning-guard.md"
      ],
      "source_refs": [
        "REQ-174",
        "TRK-161",
        "IMP-014",
        "EV-211",
        "WFR-426",
        "WFR-427",
        "WFR-428"
      ],
      "linked_ids": [
        "TRK-161"
      ]
    },
    {
      "id": "CHG-139",
      "timestamp": "2026-07-25",
      "summary": "Replaced vocabulary-leaky Reason Guard accuracy claims with representative real-session evaluation and confidence-bounded abstention; uncertain active summaries now prevent false-clear receipts without creating obligations or adding model latency.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_reason_guard.py",
        "scripts/reason_guard_benchmark.py",
        "scripts/prd_status.py",
        "scripts/prd_ui_export.py",
        "docs/REASONING-GUARD.md",
        "raw/hooks/2026-07-25-reason-guard-confidence-bounded-abstention.md"
      ],
      "source_refs": [
        "REQ-174",
        "IMP-014",
        "EV-212",
        "WFR-433",
        "WFR-434"
      ]
    },
    {
      "id": "CHG-140",
      "timestamp": "2026-07-25",
      "summary": "Added configurable Reason Guard visible-summary backfill with recent-20 default, live/full alternatives, ordered exactly-once cursor ingestion, fail-safe source anchors, truthful coverage, telemetry, UI guidance, documentation, and schema 3 migration.",
      "artifact_refs": [
        "IMP-015",
        "IMP-TASK-116",
        "IMP-VAL-102",
        ".prd_plugin/hooks/prd_reason_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_reason_guard.py",
        "docs/REASONING-GUARD.md",
        "wiki/hooks/reasoning-guard.md",
        "0.16.59"
      ],
      "source_refs": [
        "REQ-175",
        "PRD-011",
        "ARCH-011",
        "TRK-162",
        "EV-213",
        "EV-214"
      ]
    },
    {
      "id": "CHG-141",
      "timestamp": "2026-07-25",
      "summary": "Reason Guard now retains bounded provider, surface, model, effort, and session history for Claude, Codex, and OpenCode, including trusted offline Claude backfill, readable status/UI projection, migration, privacy, and downstream parity.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        ".opencode/plugins/prd-hooks.js",
        "scripts/prd_status.py",
        "scripts/prd_ui_export.py",
        "docs/REASONING-GUARD.md"
      ],
      "source_refs": [
        "REQ-176",
        "TRK-163",
        "PRD-011",
        "ARCH-011",
        "IMP-016",
        "EV-216"
      ]
    },
    {
      "id": "CHG-142",
      "timestamp": "2026-07-25",
      "summary": "Tightened Reason Guard inferred-obligation classification, evidence affinity, lifecycle diagnostics, transition telemetry, and Claude visible-text normalization; aligned all v0.16.61 downstream manifests.",
      "artifact_refs": [
        ".prd_plugin/hooks/prd_reason_guard.py",
        "templates/repo-skeleton/.prd_plugin/hooks/prd_reason_guard.py",
        "tests/test_reason_guard.py",
        "tests/test_mcp_server.py",
        "docs/REASONING-GUARD.md",
        "wiki/hooks/reasoning-guard.md",
        "package.json",
        "skills-manifest.json"
      ],
      "source_refs": [
        "REQ-174",
        "REQ-176",
        "TRK-164",
        "EV-218",
        "WFR-454",
        "WFR-457",
        "WFR-459"
      ]
    },
    {
      "id": "CHG-143",
      "timestamp": "2026-07-28",
      "summary": "Made ?check messages? deterministically inspect the current repository PRD Plugin inbox first across Codex, Claude, and OpenCode, backed by a first-class read-only MCP tool and default-installed runtime.",
      "artifact_refs": [
        "mcp/server.cjs",
        "templates/tool-spec.json",
        "templates/script-install-scope.json",
        "AGENTS.md",
        "CLAUDE.md",
        "skills/project-request-intake/SKILL.md",
        "templates/repo-skeleton/AGENTS.md",
        "templates/repo-skeleton/CLAUDE.md"
      ],
      "source_refs": [
        "REQ-007",
        "TRK-165",
        "EV-219"
      ]
    }
  ]
}
