pan-wizard 3.36.0 → 3.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3645 -0
- package/README.md +36 -48
- package/agents/pan-conductor.md +2 -3
- package/agents/pan-counterfactual.md +1 -2
- package/agents/pan-debugger.md +14 -3
- package/agents/pan-design-checker.md +1 -2
- package/agents/pan-designer.md +1 -2
- package/agents/pan-document_code.md +1 -2
- package/agents/pan-hardener.md +2 -3
- package/agents/pan-integration-checker.md +1 -2
- package/agents/pan-knowledge.md +1 -2
- package/agents/pan-meta-reviewer.md +3 -3
- package/agents/pan-optimizer.md +4 -4
- package/agents/pan-phase-researcher.md +79 -488
- package/agents/pan-plan-checker.md +12 -2
- package/agents/pan-planner.md +10 -6
- package/agents/pan-previewer.md +1 -2
- package/agents/pan-project-researcher.md +70 -499
- package/agents/pan-release.md +1 -1
- package/agents/pan-reviewer.md +9 -3
- package/agents/pan-roadmapper.md +12 -7
- package/agents/pan-verifier.md +7 -2
- package/bin/install-lib.cjs +134 -14
- package/bin/install.js +59 -12
- package/commands/pan/army.md +1 -1
- package/commands/pan/autodev.md +76 -0
- package/commands/pan/exec-phase.md +3 -4
- package/commands/pan/focus-auto.md +14 -7
- package/commands/pan/focus-design.md +4 -5
- package/commands/pan/focus-docs.md +24 -0
- package/commands/pan/learn.md +13 -6
- package/commands/pan/milestone-audit.md +8 -1
- package/commands/pan/milestone-done.md +10 -5
- package/commands/pan/milestone-new.md +2 -2
- package/commands/pan/new-project.md +15 -12
- package/commands/pan/plan-phase.md +15 -9
- package/commands/pan/quick.md +1 -1
- package/commands/pan/review-deep.md +11 -5
- package/commands/pan/settings.md +6 -0
- package/commands/pan/verify-phase.md +6 -2
- package/docs/AGENTS.md +917 -0
- package/docs/ARCHITECTURE.md +1054 -0
- package/docs/CLI-REFERENCE.md +4582 -0
- package/docs/COMPARISON.md +116 -0
- package/docs/DEVELOPMENT.md +490 -0
- package/docs/ECOSYSTEM-REVIEW-2026-06.md +107 -0
- package/docs/ECOSYSTEM-REVIEW-2026-08.md +349 -0
- package/docs/EXAMPLES.md +584 -0
- package/docs/FAQ.md +254 -0
- package/docs/FIELD-HARVEST-2026-07.md +88 -0
- package/docs/FIELD-REPORT-army-2026-06.md +121 -0
- package/docs/HOOKS.md +638 -0
- package/docs/IMPROVEMENT-TODO.md +246 -0
- package/docs/INTERNALS.md +485 -0
- package/docs/MIGRATION-v2-to-v3.md +258 -0
- package/docs/SECURITY-HARDENING.md +230 -0
- package/docs/SKILLS-ENHANCEMENT-PLAN-V2.md +122 -0
- package/docs/SKILLS-FULL-TEXT.md +9685 -0
- package/docs/SKILLS-REFERENCE.md +1037 -0
- package/docs/TROUBLESHOOTING.md +1084 -0
- package/docs/USER-GUIDE.md +1437 -0
- package/docs/archive/SKILLS-ENHANCEMENT-PLAN.md +230 -0
- package/docs/audits/AUDIT-2026-08-e2e-ROADMAP.md +117 -0
- package/docs/audits/AUDIT-2026-08-e2e-VERIFICATION.md +693 -0
- package/docs/audits/AUDIT-2026-08-e2e.md +1546 -0
- package/docs/audits/OUTSTANDING-2026-08.md +275 -0
- package/docs/audits/STABILITY-TEST-2026-08.md +640 -0
- package/docs/branding/README-brand-draft.md +119 -0
- package/docs/branding/handoff/IMPLEMENTATION.md +205 -0
- package/docs/branding/handoff/README-brand-draft.md +119 -0
- package/docs/branding/handoff/image-prompts.md +46 -0
- package/docs/branding/image-prompts.md +46 -0
- package/docs/branding/nano-banana-prompts.txt +60 -0
- package/docs/context-monitor.md +13 -0
- package/docs/decisions/ADR-0001-strategic-feature-prioritization.md +83 -0
- package/docs/decisions/ADR-0002-copilot-cli-runtime.md +71 -0
- package/docs/decisions/ADR-0003-smart-execution.md +84 -0
- package/docs/decisions/ADR-0004-copilot-cli-interaction.md +89 -0
- package/docs/decisions/ADR-0005-command-naming.md +80 -0
- package/docs/decisions/ADR-0006-focus-commands.md +101 -0
- package/docs/decisions/ADR-0007-ship-v1.md +73 -0
- package/docs/decisions/ADR-0008-map-codebase-mermaid-togaf.md +80 -0
- package/docs/decisions/ADR-0009-production-deployment-checklist.md +68 -0
- package/docs/decisions/ADR-0010-standards-integration.md +79 -0
- package/docs/decisions/ADR-0011-help-commands-rewrite.md +64 -0
- package/docs/decisions/ADR-0012-contributors-attribution-index.md +42 -0
- package/docs/decisions/ADR-0013-strategic-feature-additions.md +53 -0
- package/docs/decisions/ADR-0014-internal-cleanup-code-quality.md +53 -0
- package/docs/decisions/ADR-0015-focus-auto-runner.md +296 -0
- package/docs/decisions/ADR-0016-enhanced-doc-sync.md +54 -0
- package/docs/decisions/ADR-0017-enhanced-focus-design.md +69 -0
- package/docs/decisions/ADR-0018-user-reality-testing.md +84 -0
- package/docs/decisions/ADR-0019-end-to-end-user-acceptance-testing.md +113 -0
- package/docs/decisions/ADR-0020-ai-drift-prevention.md +55 -0
- package/docs/decisions/ADR-0021-codebase-mapper-v2.md +76 -0
- package/docs/decisions/ADR-0022-lifecycle-completeness.md +63 -0
- package/docs/decisions/ADR-0023-opus-4-7-adoption.md +89 -0
- package/docs/decisions/ADR-0024-spec-b-v2-completion.md +137 -0
- package/docs/decisions/ADR-0025-behavioral-guardrails-layer.md +129 -0
- package/docs/decisions/ADR-0026-self-improvement-loop.md +171 -0
- package/docs/decisions/ADR-0027-doc-code-link-graph.md +164 -0
- package/docs/decisions/ADR-0028-unified-agents-skills-target.md +46 -0
- package/docs/decisions/ADR-0029-experiment-evaluator.md +76 -0
- package/docs/decisions/ADR-0030-planning-concurrency.md +37 -0
- package/docs/decisions/ADR-0031-focus-auto-backlog-source.md +47 -0
- package/docs/decisions/ADR-0032-squad-model.md +64 -0
- package/docs/decisions/ADR-0033-army-campaign.md +40 -0
- package/docs/decisions/ADR-0034-scheduled-campaigns.md +57 -0
- package/docs/decisions/ADR-0035-army-hud-dashboard.md +40 -0
- package/docs/decisions/ADR-0036-agentic-memory-architecture.md +106 -0
- package/docs/decisions/ADR-0037-pin-security-agents-to-opus.md +51 -0
- package/docs/decisions/ADR-0038-skill-aligned-decomposition.md +41 -0
- package/docs/decisions/ADR-0039-worktree-as-project-variant.md +37 -0
- package/docs/decisions/ADR-0040-memory-injection-defense.md +55 -0
- package/docs/decisions/ADR-0041-mcp-dual-era-bridge.md +47 -0
- package/docs/decisions/ADR-0042-design-parity-both-flows.md +45 -0
- package/docs/decisions/ADR-0043-addressable-planning-roots.md +56 -0
- package/docs/decisions/ADR-0044-bound-the-cached-context.md +104 -0
- package/docs/decisions/ADR-0045-agent-plugins-bundle.md +76 -0
- package/docs/decisions/ADR-0046-subagent-frontmatter-decisions.md +39 -0
- package/docs/decisions/ADR-0047-pan-harness.md +76 -0
- package/docs/decisions/ADR-0048-one-core-per-project.md +43 -0
- package/docs/decisions/ADR-0049-machine-verdicts-and-findings-ledger.md +116 -0
- package/docs/specs/ai_drift_prevention_featureai.md +286 -0
- package/docs/specs/codebase_mapper_v2_featureai.md +930 -0
- package/docs/specs/command_naming_optimization_featureai.md +930 -0
- package/docs/specs/comp_analysis_markdown_v1.md +149 -0
- package/docs/specs/continuous_autonomous_execution_featureai.md +304 -0
- package/docs/specs/contributors_attribution_index_featureai.md +476 -0
- package/docs/specs/copilot_cli_interaction_featureai.md +868 -0
- package/docs/specs/copilot_cli_runtime_featureai.md +647 -0
- package/docs/specs/custom-skills-assessment.md +461 -0
- package/docs/specs/deployment_audit_findings_featureai.md +243 -0
- package/docs/specs/doc_code_link_graph_featureai.md +253 -0
- package/docs/specs/documentation_alignment_cleanup_featureai.md +69 -0
- package/docs/specs/e2e_visual_testing_featureai.md +615 -0
- package/docs/specs/end_to_end_user_acceptance_testing_featureai.md +810 -0
- package/docs/specs/evidence-loop-plan.md +76 -0
- package/docs/specs/evidence_loop_featureai.md +497 -0
- package/docs/specs/focus-auto-optimize-category.md +449 -0
- package/docs/specs/focus-auto-optimize-superplan.md +188 -0
- package/docs/specs/focus_auto_runner_featureai.md +1102 -0
- package/docs/specs/focus_design_v2_featureai.md +197 -0
- package/docs/specs/focus_sync_v2_featureai.md +202 -0
- package/docs/specs/git_integration_overhaul_featureai.md +326 -0
- package/docs/specs/glm_zai_provider_featureai.md +200 -0
- package/docs/specs/googlecli_adoption_featureai.md +661 -0
- package/docs/specs/help_commands_rewrite_featureai.md +860 -0
- package/docs/specs/industry_analysis_strategic_additions_featureai.md +231 -0
- package/docs/specs/industry_comparison_and_feature_gaps_featureai.md +674 -0
- package/docs/specs/internal_cleanup_code_quality_featureai.md +486 -0
- package/docs/specs/investigations/README.md +31 -0
- package/docs/specs/investigations/digests/2026-09-28.md +47 -0
- package/docs/specs/investigations/digests/2026-10-08.md +62 -0
- package/docs/specs/investigations/digests/2026-10-10.md +61 -0
- package/docs/specs/investigations/features/debugger-red-loop-first.md +55 -0
- package/docs/specs/investigations/features/harness-cross-host-behaviour.md +93 -0
- package/docs/specs/investigations/features/optimize-apply-regression-gate.md +66 -0
- package/docs/specs/investigations/features/reviewer-smell-baseline.md +57 -0
- package/docs/specs/investigations/features/trace-failure-capture.md +69 -0
- package/docs/specs/lifecycle_completeness_featureai.md +754 -0
- package/docs/specs/local-first-ci.md +42 -0
- package/docs/specs/map_codebase_mermaid_togaf_featureai.md +805 -0
- package/docs/specs/market-delta-2026-09-superplan.md +310 -0
- package/docs/specs/market-ideas-2026-09.md +131 -0
- package/docs/specs/market-ideas-2026-10.md +428 -0
- package/docs/specs/market-ideas-ledger.md +177 -0
- package/docs/specs/memory-optimization-2026-10.md +285 -0
- package/docs/specs/multi-track-planning-roots.md +143 -0
- package/docs/specs/multi_model_routing_featureai.md +687 -0
- package/docs/specs/multi_model_routing_superplan.md +197 -0
- package/docs/specs/opus_47_existing_enhancements_featureai.md +247 -0
- package/docs/specs/opus_47_extended_features_featureai.md +363 -0
- package/docs/specs/opus_47_extended_features_v2_featureai.md +397 -0
- package/docs/specs/pan_focus_commands_featureai.md +2336 -0
- package/docs/specs/pan_zcode_mcp_bridge_featureai.md +120 -0
- package/docs/specs/product-excellence-superplan.md +315 -0
- package/docs/specs/product_excellence_program_2026_q4_featureai.md +365 -0
- package/docs/specs/production_deployment_readiness_featureai.md +433 -0
- package/docs/specs/production_readiness_ship_v1_featureai.md +698 -0
- package/docs/specs/real_test_enforcement_featureai.md +213 -0
- package/docs/specs/reality-check-2026-09-superplan.md +362 -0
- package/docs/specs/right-sized-ceremony.md +74 -0
- package/docs/specs/roadmap_and_competition_2026_q4_featureai.md +390 -0
- package/docs/specs/self_improvement_loop_featureai.md +875 -0
- package/docs/specs/skill-aligned-decomposition.md +155 -0
- package/docs/specs/standards_integration_featureai.md +833 -0
- package/docs/specs/testing-system-redesign-2026-09.md +267 -0
- package/docs/specs/user_reality_testing_system_featureai.md +788 -0
- package/docs/specs/watch-triggers.json +22 -0
- package/docs/specs/workflow-integration-redesign.md +742 -0
- package/docs/specs/workflow_state_consistency_featureai.md +183 -0
- package/hooks/dist/pan-context-monitor.js +9 -2
- package/hooks/dist/pan-cost-logger.js +5 -0
- package/hooks/dist/pan-guard.js +28 -5
- package/hooks/dist/pan-stop-guard.js +9 -9
- package/hooks/dist/pan-trace-logger.js +5 -0
- package/package.json +10 -2
- package/pan-wizard-core/bin/lib/agents-md.cjs +57 -8
- package/pan-wizard-core/bin/lib/autodev-report.cjs +180 -0
- package/pan-wizard-core/bin/lib/autodev.cjs +642 -0
- package/pan-wizard-core/bin/lib/ci.cjs +143 -0
- package/pan-wizard-core/bin/lib/commands.cjs +1 -1
- package/pan-wizard-core/bin/lib/config.cjs +31 -2
- package/pan-wizard-core/bin/lib/constants.cjs +27 -1
- package/pan-wizard-core/bin/lib/core.cjs +22 -10
- package/pan-wizard-core/bin/lib/cost.cjs +14 -4
- package/pan-wizard-core/bin/lib/cross-family.cjs +164 -0
- package/pan-wizard-core/bin/lib/debug-cases.cjs +104 -0
- package/pan-wizard-core/bin/lib/failure-class.cjs +81 -0
- package/pan-wizard-core/bin/lib/findings.cjs +34 -4
- package/pan-wizard-core/bin/lib/focus.cjs +1 -1
- package/pan-wizard-core/bin/lib/hosts.cjs +88 -0
- package/pan-wizard-core/bin/lib/init.cjs +7 -2
- package/pan-wizard-core/bin/lib/knowledge.cjs +2 -0
- package/pan-wizard-core/bin/lib/merge.cjs +50 -0
- package/pan-wizard-core/bin/lib/mutate.cjs +16 -5
- package/pan-wizard-core/bin/lib/next-action.cjs +112 -0
- package/pan-wizard-core/bin/lib/optimize.cjs +2 -2
- package/pan-wizard-core/bin/lib/phase.cjs +48 -4
- package/pan-wizard-core/bin/lib/plan-lint.cjs +150 -1
- package/pan-wizard-core/bin/lib/preview.cjs +23 -4
- package/pan-wizard-core/bin/lib/requirements-lint.cjs +130 -0
- package/pan-wizard-core/bin/lib/research-lint.cjs +150 -3
- package/pan-wizard-core/bin/lib/review-deep.cjs +14 -22
- package/pan-wizard-core/bin/lib/review-vote.cjs +105 -0
- package/pan-wizard-core/bin/lib/runner.cjs +2 -16
- package/pan-wizard-core/bin/lib/sizing.cjs +356 -0
- package/pan-wizard-core/bin/lib/squads.cjs +1 -1
- package/pan-wizard-core/bin/lib/state-write.cjs +247 -0
- package/pan-wizard-core/bin/lib/uat.cjs +149 -0
- package/pan-wizard-core/bin/lib/verdict.cjs +26 -3
- package/pan-wizard-core/bin/lib/verify-plan-set.cjs +30 -1
- package/pan-wizard-core/bin/lib/verify-preflight.cjs +2 -2
- package/pan-wizard-core/bin/lib/verify-red.cjs +37 -1
- package/pan-wizard-core/bin/lib/verify-retro.cjs +3 -2
- package/pan-wizard-core/bin/lib/verify.cjs +59 -4
- package/pan-wizard-core/bin/lib/worktree.cjs +70 -0
- package/pan-wizard-core/bin/pan-tools.cjs +168 -27
- package/pan-wizard-core/learnings/universal/autonomous-loop.md +2 -2
- package/pan-wizard-core/references/continuation-format.md +3 -3
- package/pan-wizard-core/references/guardrails.md +1 -1
- package/pan-wizard-core/references/model-profiles.md +2 -3
- package/pan-wizard-core/references/questioning.md +24 -0
- package/pan-wizard-core/references/ui-brand.md +4 -6
- package/pan-wizard-core/references/verdict-contract.md +2 -1
- package/pan-wizard-core/templates/config.json +5 -1
- package/pan-wizard-core/templates/debug.md +1 -0
- package/pan-wizard-core/templates/discovery.md +2 -2
- package/pan-wizard-core/templates/requirements.md +9 -0
- package/pan-wizard-core/workflows/add-phase.md +4 -6
- package/pan-wizard-core/workflows/assumptions.md +19 -1
- package/pan-wizard-core/workflows/diagnose-issues.md +2 -0
- package/pan-wizard-core/workflows/discuss-phase.md +4 -2
- package/pan-wizard-core/workflows/exec-lean.md +69 -0
- package/pan-wizard-core/workflows/exec-phase.md +36 -8
- package/{commands/pan → pan-wizard-core/workflows}/focus-doc-audit.md +13 -29
- package/{commands/pan → pan-wizard-core/workflows}/focus-drift-walking.md +3 -18
- package/{commands/pan → pan-wizard-core/workflows}/focus-exec.md +8 -23
- package/{commands/pan → pan-wizard-core/workflows}/focus-plan.md +6 -20
- package/{commands/pan → pan-wizard-core/workflows}/focus-scan.md +3 -16
- package/{commands/pan → pan-wizard-core/workflows}/focus-sync.md +7 -21
- package/pan-wizard-core/workflows/health.md +6 -0
- package/pan-wizard-core/workflows/help.md +31 -53
- package/pan-wizard-core/workflows/insert-phase.md +4 -6
- package/pan-wizard-core/workflows/learn.md +3 -3
- package/pan-wizard-core/workflows/milestone-audit.md +2 -2
- package/pan-wizard-core/workflows/milestone-new.md +38 -95
- package/pan-wizard-core/workflows/new-project.md +96 -258
- package/pan-wizard-core/workflows/optimize.md +107 -5
- package/pan-wizard-core/workflows/phase-tests.md +10 -0
- package/pan-wizard-core/workflows/plan-phase.md +86 -43
- package/pan-wizard-core/workflows/profile.md +50 -0
- package/pan-wizard-core/workflows/progress.md +10 -0
- package/pan-wizard-core/workflows/quick.md +34 -43
- package/pan-wizard-core/workflows/research-phase.md +118 -40
- package/pan-wizard-core/workflows/resume-project.md +18 -2
- package/pan-wizard-core/workflows/settings.md +21 -24
- package/pan-wizard-core/workflows/todo-check.md +6 -2
- package/pan-wizard-core/workflows/transition.md +22 -4
- package/pan-wizard-core/workflows/uat-walkthrough.md +90 -0
- package/pan-wizard-core/workflows/update.md +1 -1
- package/pan-wizard-core/workflows/verify-phase.md +2 -2
- package/scripts/build-agent-plugin.js +35 -15
- package/scripts/build-plugin.js +10 -1
- package/scripts/deprecate-old-versions.js +70 -3
- package/scripts/generate-skills-docs.py +1 -1
- package/scripts/git-hooks/pre-push +27 -0
- package/scripts/install-git-hooks.js +7 -5
- package/scripts/install-pre-push.cjs +38 -0
- package/scripts/land.cjs +151 -0
- package/scripts/local-ci.cjs +501 -0
- package/scripts/local-schedule.cjs +277 -0
- package/scripts/prompt-lint.cjs +32 -0
- package/scripts/prompt-rules.cjs +156 -0
- package/scripts/run-tests.cjs +7 -1
- package/scripts/test-quality-lint.cjs +3 -3
- package/scripts/test-surface.cjs +9 -2
- package/agents/pan-research-synthesizer.md +0 -246
- package/commands/pan/audit-deployment.md +0 -386
- package/commands/pan/dashboard.md +0 -22
- package/commands/pan/discord.md +0 -19
- package/commands/pan/mcp-bridge.md +0 -143
- package/commands/pan/milestone-cleanup.md +0 -19
- package/commands/pan/milestone-gaps.md +0 -35
- package/commands/pan/optimize.md +0 -115
- package/commands/pan/profile.md +0 -76
- package/commands/pan/research-phase.md +0 -189
- package/pan-wizard-core/bin/lib/bridge.cjs +0 -269
- package/pan-wizard-core/templates/research-project/architecture.md +0 -210
- package/pan-wizard-core/templates/research-project/features.md +0 -153
- package/pan-wizard-core/templates/research-project/pitfalls.md +0 -206
- package/pan-wizard-core/templates/research-project/stack.md +0 -126
- package/pan-wizard-core/templates/research-project/summary.md +0 -170
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Market ideas ledger
|
|
2
|
+
|
|
3
|
+
The dedupe record for the `/market-ideas` dev skill (`.claude/commands/market-ideas.md`). Every idea the market has offered PAN Wizard gets one row with a stable id, a status and the fact that decided it, so a later scan can tell "new" from "seen" and cannot re-propose a rejected idea without a new fact. Rows are appended, never deleted; a status change carries the date. This file lives under `docs/specs/` so it may name model versions and cite dated releases.
|
|
4
|
+
|
|
5
|
+
Companion documents: the dimension-level peer read is `docs/COMPARISON.md` ("Direct Peers"); the standing-and-claims audits are `docs/ECOSYSTEM-REVIEW-*.md` and `/reality-check`; the sized queues this ledger points at are `docs/specs/market-delta-*-superplan.md` and `docs/specs/market-ideas-*.md`.
|
|
6
|
+
|
|
7
|
+
## Rules
|
|
8
|
+
|
|
9
|
+
- **One row per concept**, not per wording or per vendor. `maxTurns` and "turn caps on subagents" are one row; the same idea shipped by two peers is one row with two sources.
|
|
10
|
+
- **A SKIP or DECLINED row is re-opened only by a new fact** that overturns the recorded reason. Name the fact in the Decision column with its date.
|
|
11
|
+
- **A WATCH row names its trigger** and is re-checked every run — against the market **and** against `CHANGELOG.md`, because PAN's own releases fire triggers too (MI-009 did).
|
|
12
|
+
- **ADOPTED / ADAPTED rows name the version or commit.** A status column is a claim; the skill re-verifies it by grep before trusting it.
|
|
13
|
+
- **No filesystem-derived counts** in this file (the counts rule in `CLAUDE.md`). State the class and the command.
|
|
14
|
+
- **No "no competitor does this."** Say "not found in the roster on `<date>`".
|
|
15
|
+
|
|
16
|
+
Statuses: OPEN · ADOPTED · ADAPTED · WATCH · SKIP · DECLINED · BLOCKED (definitions in the skill's Appendix C). An OPEN row names its queue item (`M<n>`: M1–M18 in `market-ideas-2026-09.md`, M19 onward in `market-ideas-2026-10.md`; the numbering continues across months so a reference never needs the file).
|
|
17
|
+
|
|
18
|
+
## Ledger
|
|
19
|
+
|
|
20
|
+
| ID | Idea (concept) | Seen at (who ships it) | First seen | Status | Decision / evidence | Revisit trigger |
|
|
21
|
+
|---|---|---|---|---|---|---|
|
|
22
|
+
| MI-001 | Vendor-neutral plugin bundle (Agent Plugins 1.0) so one artifact loads into Copilot CLI, Codex, Cursor, Kiro | Vercel + Amazon/Cursor/GitHub/Microsoft/OpenAI spec, published `2026-08-06` | `2026-09-10` | ADOPTED | `3.28.0` — ADR-0045; `scripts/build-agent-plugin.js` → `dist/pan-agent-plugin/`; conformance suite `tests/agent-plugin-build.test.cjs`; Codex and Copilot marketplace manifests in the repo. Live installs on Copilot/Codex/Antigravity still outstanding (no CLI on the build machine). Re-checked `2026-09-21`: spec 1.1.0 is a working draft whose diff against 1.0.0 is version strings only; PAN stays on `$schema` 1.0.0 correctly **`2026-10-03`:** 1.1.0 is still a working draft (open PRs only, none merged). Codex CLI and Copilot CLI are now on this machine, so live installs can run; M31 adds model-free discovery checks modelled on the spec's new `agent-plugins-conformance` CI **`2026-10-03`:** M31 ran `live-gate-codex` with model-free discovery here (Codex 0.157.1: plugin installed, the `pan` MCP server enabled, PAN's skills in the catalog) — passing **`2026-10-19`:** still a working draft: no commit, merge or release in the spec repo since `2026-09-28`; PRs #82, #85, #67, #66, #79 and #80 open. Holds | 1.1.0 leaving draft (the CLI half met `2026-10-03` → M31) |
|
|
23
|
+
| MI-002 | Deterministic native workflow scripts for fan-out protocols (script it when control flow is knowable pre-run) | Claude Code workflows | `2026-08-12` | ADOPTED | `3.28.0` — `pan-exec-waves`, `pan-diagnose-issues` beside `pan-map-codebase`, `pan-review-pipeline`; drift pin `tests/native-workflows-drift.test.cjs`; measured native 5/5 vs markdown 5/5, ~15% faster (R19/R23, `2026-09-11`). Claude-only, additive; markdown stays the portable path | — |
|
|
24
|
+
| MI-003 | Ship native workflows inside the Claude plugin (`workflows/` at plugin root) | Claude Code plugins | `2026-09-10` | ADOPTED | `3.28.0` — `scripts/build-plugin.js` emits them with agent types namespaced (`namespaceWorkflowAgentTypes`). Re-checked `2026-09-21`: the manifest `workflows` field only replaces the default directory, so the default-dir emission stands | 3b: bare agent names in plugin command prose — now runnable as a plugin eval case (MI-035) |
|
|
25
|
+
| MI-004 | Async observer hooks (`async: true`) so logging hooks never block the turn | Codex CLI 0.148; **Claude Code hooks reference now documents `async: true` and `asyncRewake` on command handlers** (read `2026-09-21`) | `2026-09-10` | ADOPTED (Codex) · SKIP (Claude, `2026-09-28`) | `3.28.0` — `mergeCodexHooksConfig` marks cost-logger, trace-logger and check-update async; context-monitor stays synchronous (it returns `additionalContext`). **Trigger fired `2026-09-21`:** Claude documents the flag → queue item M16 marks the same three observers async in `settings.json`; stop-guard stays synchronous (it blocks) **`2026-09-28`:** M16 declined — the cost and trace loggers share a read-modify-write cursor file, so overlapping async runs could lose each other's updates and re-read a transcript from the start (double-counted tokens). Status corrected `2026-10-03`; Copilot's hooks reference still has no async flag (1.0.91) | The cursor moving to per-transcript files or gaining a lock; Copilot documenting an async flag |
|
|
26
|
+
| MI-005 | Longer prompt-cache lifetime for subagents (`subagentPromptCacheTtl`, `experimental.cacheTtl: 1h`) | Claude Code 2.1.242 / 2.1.248 | `2026-09-10` | ADAPTED | ADR-0046 D5 — delivered as a measured recommendation: `assessCacheTtl()` in `context-budget.cjs` counts cache writes after a 5–60 min idle gap; hygiene raises an `info` finding naming the setting. Nothing emitted. Re-checked `2026-09-21`: the settings-level control is exactly what the advice names; frontmatter `cacheTtl` is fourth in precedence and ignored under usage credits — the decision holds. MI-036 improves the measurement **`2026-10-03`:** Anthropic's Opus 5.5 context post (`2026-09-24`) recommends the 1-hour cache lifetime on API keys, consistent with the measured advice; holds | A runtime other than Claude exposing a cache-lifetime control |
|
|
27
|
+
| MI-006 | Managed `modelPricing` setting as a rate override source | Claude Code 2.1.243 | `2026-09-10` | ADOPTED | `3.28.0` — `effectiveRates()` layers managed `modelPricing` beneath `cost.rates`; `models check` reports `managed_model_pricing`. **Gap found `2026-09-21`:** the `multiplier` field (2.1.271, up to 10, for chargeback) is ignored — MI-033 | — |
|
|
28
|
+
| MI-007 | Recognise a foreign `.planning/` layout (gsd-core uses the same core file names) instead of calling it broken | gsd-core (`open-gsd/gsd-core`) | `2026-09-10` | ADOPTED | `3.28.0` — `foreign-planning.cjs`, health `E006`, init refusal; hygiene and health share `detectPlanningModel`. Only the gsd-core marker set exists — see MI-028 for the second occupant of the directory | gsd-core changing its marker files |
|
|
29
|
+
| MI-008 | `--plugin-dir <folder-of-plugins>` as the no-marketplace dev loop | Claude Code 2.1.265 | `2026-09-10` | ADOPTED | `3.28.0` — documented in `marketplace/README.md` | — |
|
|
30
|
+
| MI-009 | Turn caps on subagents (`maxTurns`, partial output + resumable) as a budget checkpoint | Claude Code 2.1.246 / 2.1.259 | `2026-08-12` | BLOCKED | ADR-0046 D1 declined it for the shipped agents and named the revisit trigger: a native workflow owning the executor spawns. **`pan-exec-waves` shipped in `3.28.0` and is the recommended path on Claude Code (R23) — the trigger fired from PAN's own release and was noticed on `2026-09-21`.** Queue item M9: `maxTurns` on exec-waves' executor spawns with a scripted re-issue of a partial result; markdown agents unchanged **`2026-09-26`:** M9 checked — the Workflow `agent()` has no per-spawn turn cap; a frontmatter cap would bind the markdown path too (ADR-0046 D1, dated note). Unblocks when the engine offers a per-spawn cap. **`2026-10-03`:** still blocked — neither the Workflow docs nor the SDK reference has a per-`agent()` turn cap, and a Claude Mod's `agent.spawn` handler can return only `{model}` or `{deny}` (2.1.287) **`2026-10-19`:** still blocked. Claude Code 2.1.300 lets a Mod's `agent.spawn` rewrite a workflow agent's `prompt` and `model` (it could only refuse before), and the Workflow docs list no turn cap for `agent()`; no per-spawn turn cap exists | The Workflow engine or `agent.spawn` offering a per-spawn turn cap |
|
|
31
|
+
| MI-010 | Agent-private memory scopes (`memory: user/project/local` subagent frontmatter) and host-native cross-session memory in general | Claude Code; Codex `[features] memories` + memory v2 (0.155.0); Copilot session/memory import (1.0.85); claude-mem (94k stars, secondary) | `2026-08-12` | DECLINED | ADR-0046 D2 — PAN has `.planning/memory/*.md` (visible to every runtime and every check) and the learnings store with its promote gate; a third, host-curated, one-runtime memory would be invisible to hygiene and drift checks. Re-checked `2026-09-21`: three hosts now ship their own memory, none with a public interchange spec (Copilot's "semantic JSONL" is undocumented; W3C memory-interop CG references an IETF draft, nothing adopted) — the reason stands | A cross-runtime memory format with a primary spec adopted by a runtime PAN targets |
|
|
32
|
+
| MI-011 | Per-agent worktree isolation (`isolation: worktree`) | Claude Code | `2026-08-12` | DECLINED | ADR-0046 D3 — executors must commit where the orchestrator and verifier read; PAN owns isolation in `worktree.cjs` and the `army/<task>` branches (ADR-0033, P-1815); two isolation mechanisms with different cleanup rules is the defect class P-1815 closed | — |
|
|
33
|
+
| MI-012 | Skill preload into agents (`skills:` frontmatter) | Claude Code | `2026-08-12` | DECLINED | ADR-0046 D4 — injects full bodies into every call, the opposite of ADR-0044's cached-context discipline; PAN agents read `.agents/skills/` on demand | — |
|
|
34
|
+
| MI-013 | `fork` spawn mode (inherit the parent's context and cache) | Claude Code | `2026-09-10` | DECLINED | ADR-0046 D6 — the inverse of the fresh-context guarantee for planner, executor, verifier, reviewer **`2026-10-03`:** Anthropic's Opus 5.5 context post says forked subagents start from the parent's cache. That is a cost argument; the decline rests on the fresh-context guarantee for planners, executors and judges, so it holds | — |
|
|
35
|
+
| MI-014 | One shared `pan-wizard-core` per project instead of one copy per runtime directory | internal (footprint measurement, RC18) | `2026-09-10` | DECLINED | ADR-0048 Accepted, option A (status quo): ref-counted uninstall and path rewriting cost more than the duplicated bytes; global installs cannot share anyway | An install-size complaint from a user, or a runtime refusing a nested core path |
|
|
36
|
+
| MI-015 | Split oversized command bodies to meet the Agent Skills 5k-token body recommendation | agentskills.io spec; `/skill-doctor` | `2026-08-12` | ADAPTED (bundle, S8) | R21 A/B measured `2026-09-10`: split +7% cost, +40% time, same artefact structure. The body budget protects activation cost, and a PAN command's activation is its invocation (RC25). **Trigger checked `2026-09-21`:** Codex `skills.max_context_tokens` (cap 10,000) budgets the *available-skills catalog*, not skill bodies — not a refusal to load, the SKIP holds **New fact `2026-10-03`, re-opened:** Codex's source truncates a selected skill that came from an Agent Plugin to 8,000 bytes, with a "was truncated" warning (`codex-rs/ext/skills/src/render.rs` `MAX_SKILL_PROMPT_BYTES = 8_000`, `host_prompt.rs`; read on `main`, not run; not in the build-skills or build-plugins pages). The September re-check read only the catalog budget, and the R21 A/B measured Claude only. Many of the bundle's skill bodies exceed the limit: enumerate with `find dist/pan-agent-plugin -name SKILL.md -size +8000c` after `node scripts/build-agent-plugin.js`. Queue item M25 confirms it live on Codex (MI-022) before any conversion is sized **`2026-10-03`, M25 confirmed it live** (Codex 0.157.1, capture-only mock provider, no model): a 56,540-byte skill delivered through the Agent Plugin reached the model as its first 8,000 bytes, cut mid-sentence, with a "was truncated" warning item; a 3,188-byte plugin skill arrived whole; the `--codex` install's 54,677-byte `.agents/skills/` copy arrived whole. Only the bundle needs progressive-disclosure bodies → queue S8 **S8 built `2026-10-03`** on `feat/market-ideas-2026-10` (ADR-0045 D9): a bundle skill over 8,000 bytes is a pointer `SKILL.md` plus `references/instructions.md`; re-probed live, the pointer page reached the model whole with no truncation warning. Installs keep full bodies (they load whole) | Codex raising or removing the plugin cut, or a runtime that does not follow the pointer |
|
|
37
|
+
| MI-016 | Retire the markdown workflows in favour of native scripts | (own temptation after MI-002) | `2026-08-12` | SKIP | "What not to do" (August review §4): markdown is the only orchestration path portable across five runtimes; native is additive on one | — |
|
|
38
|
+
| MI-017 | A sixth runtime (Cursor, Kiro, Antigravity as its own installer target, …) | market breadth | `2026-06` | SKIP | "What not to do": serve new harnesses through the standard `.agents/` tree and the Agent Plugins bundle (MI-001) — more correct now that the standard tree has an ecosystem **`2026-10-03`:** Pi 1.0.0 and ZCode both read `.agents/skills/`; holds | A runtime with no standard-tree discovery gaining a large share of PAN's users |
|
|
39
|
+
| MI-018 | Standardise `.planning/` (propose or adopt a shared planning-state spec) | gsd-core shares the layout; planning-with-files writes into it too (MI-028) | `2026-08-12` | SKIP | "What not to do": the layout is the differentiator; the depth of what PAN does with it is the moat, and MI-007/MI-028 handle coexistence **`2026-10-03`:** no published planning-state spec; holds | A published planning-state spec adopted by two or more roster peers |
|
|
40
|
+
| MI-019 | Soften the behavioural harness (fewer reps, model-free only) to save spend | (own temptation) | `2026-08-12` | SKIP | "What not to do": the harness found the case for MI-002 by measurement; tier 0 is free and in CI, model tiers stay opt-in with `--max-usd` | — |
|
|
41
|
+
| MI-020 | List PAN on a skills marketplace (SkillsMP, ClawHub, …) | skills marketplaces at six-figure scale | `2026-08-12` | SKIP | "What not to do": those marketplaces index public repos without certifying safety; being listed is distribution, not endorsement. Ship the plugin first (MI-025). Distinct from the `npx skills add` channel, which installs from PAN's own repo (MI-025) **`2026-10-03`:** Anthropic's directory submission portal (blog `2026-09-25`) is the runtime's own channel, with automatic validation and safety scanning. It strengthens MI-025 and leaves this reason intact | The plugin being published on a runtime's own marketplace |
|
|
42
|
+
| MI-021 | Fork the skills compiler for the Agent Plugins bundle | (own temptation during MI-001) | `2026-09-10` | SKIP | "What not to do": one converter, two call sites — the drift class ADR-0028 killed; rewrites extracted into install-lib instead | — |
|
|
43
|
+
| MI-022 | Emit frontmatter a runtime has not been seen to read | ADR-0028 rule | `2026-06` | SKIP | Standing rule: documented ≠ observed; confirm on a live build before default-on. Applies to every WATCH row that is a frontmatter field | — |
|
|
44
|
+
| MI-023 | Rate rows for models without a primary pricing citation | seen in runtime defaults: `gemini-3.6/3.7/3.8-flash`, `gpt-6`, `gpt-6-astra`, `gpt-5.6-sol`, `GPT-OSS-120b`, MAI-Code-1.1-Flash (`2026-09-21` adds the Codex default `gpt-5.6-sol`, the OpenCode/Copilot `gpt-6-astra`, Antigravity's Gemini 3.6 Flash) | `2026-09-10` | ADOPTED (in part) | Item 13 of the September plan: `pan-tools models check`'s staleness flag governs; add only with the pricing page in the commit. Codex retires GPT-5.5 on `2026-10-14` (changelog) — the existing row stays for ledger history **`2026-09-23` (R26, R27):** the pricing pages now list `gpt-5.6-sol`, the GPT-6 family (Astra, Sol, Luna) and Gemini 3.5–3.8 Flash and 3.x Flash-Lite, and all are priced with the page cited; `GPT-OSS-120b` and MAI-Code stay unpriced (no provider pricing page found) **`2026-10-03`:** Codex's default moved to `gpt-6.1-sol` (0.159.1, `2026-09-29`) and OpenAI's pricing page lists it (the scout read `$2.00` input, `$0.10` cached input, `$10.00` output; re-read before encoding) → M19. Claude Code's `sonnet` alias resolves to Sonnet 5.5 on the Anthropic API (2.1.284); `resolveRate('claude-sonnet-5-5')` already falls back to the same-priced `claude-sonnet-5` row, but OpenCode's mid tier still pins `anthropic/claude-sonnet-5` (`core.cjs`) → M20 M19, M20 built on `feat/market-ideas-2026-10` (`2026-10-03`): `gpt-6.1-sol` and `claude-sonnet-5-5` rows from the pricing pages read that day; OpenCode's Anthropic mid tier is `anthropic/claude-sonnet-5-5`; Codex's mid tier stays `gpt-6-sol` (GPT-6.1 Sol is off on Enterprise and Edu until an administrator enables it) **`2026-10-10`:** the Anthropic page moved Sonnet 5.5 hits to $0.10 (PAN had $0.20) and added Claude Haiku 5.5 ($0.10/$0.50, hits $0.01, 5x over 100K prompt tokens); both priced with the page cited, `RATES_VERIFIED_AT` `2026-10-10` (M36, MI-107) | A provider pricing page listing the id |
|
|
45
|
+
| MI-024 | Copilot custom-agent `model:` fallback list + `model-policy` for PAN's model-pinned agents — **and** `include-custom-instructions: true` (1.0.86) so PAN agents read the AGENTS.md rules layer | Copilot CLI 1.0.83 / 1.0.86 | `2026-09-10` | ADAPTED | R13 built `2026-09-10` (converter emits `model:` list + `model-policy: prefer`, not wired) — Copilot model ids unverified and no Copilot CLI on the build machine. `2026-09-21`: `include-custom-instructions` joins the same live probe (M15); neither field is in the custom-agents reference yet, release notes only **`2026-09-26`** (`3.31.0`): `include-custom-instructions: true` on every Copilot agent, live-verified (M15). The model list: probe found `prefer` invalid and the field is `models:` — both fixed; still not wired (an `auto` session ignores agent models; fall-through needs a paid plan). **`2026-10-03`:** the Copilot CLI command reference spells the custom-agent fields camelCase (`models`, `modelPolicy`, `reasoningEffort`), and 1.0.88 applies an agent's `reasoningEffort` when it is selected; PAN writes `model-policy` and no effort (`convertClaudeToCopilotAgent`). The `2026-09-26` probe on 1.0.88 parsed the kebab key, so which spelling wins is a live question, handed to `/reality-check` **`2026-10-19`:** the Copilot custom-agents reference lists `model` as a single string (plus `disable-model-invocation`, `user-invocable`, `mcp-servers`, `metadata`) and no `models` or `modelPolicy`; 1.0.96 made model ids case-insensitive and saves them canonical. Copilot deprecates Claude Opus 4.8, Claude Opus 5 and GPT-5.6 Terra on `2026-11-16` (MI-128). Trigger not fired | The `/reality-check` hand-off settling the spelling, then wire |
|
|
46
|
+
| MI-025 | Publish the built plugins beyond npm — the "publication and positioning" gap | Official Claude marketplace lists Superpowers (external source), not PAN; planning-with-files (27k stars) and addyosmani/agent-skills (98k) are one `plugin marketplace add` or `npx skills add` away (`2026-09-21`) | `2026-09-10` | **OPEN** | Reality check §9: PAN builds both plugin formats and publishes neither beyond npm. **Path found `2026-09-21`:** Claude marketplaces accept `source: npm` (`{package, version}`; install scripts never run; ≥2.1.275 fetches with `npm pack --ignore-scripts` + integrity) → publish `dist/pan-wizard-plugin/` as its own npm package on tag, add `.claude-plugin/marketplace.json` at the repo root, submit via the official marketplace's external-plugin form; the Codex/Copilot manifests must stop pointing at an untracked `./dist/` for the same reason; `npx skills add oharms/PanWizard` needs SKILL.md directories in git. Queue item M5, decision first (second npm package vs a published `dist` branch) **New facts `2026-10-03`:** (1) Anthropic's directory now takes submissions through a developer portal (blog `2026-09-25`) from a public GitHub repo, with an optional plugin path and a branch or tag to track. This supersedes the external-plugin form recorded above, and `claude-plugins-official` takes no portal submissions. (2) A `source: npm` plugin must be a registry package; git and folder npm specs are refused (Claude Code 2.1.286). (3) OpenAI published an undated guide for submitting Claude Code plugins to Codex: commands and agents become skills, hooks are adapted to the Codex runtime, `userConfig` is unsupported, and a local MCP server needs a public HTTPS endpoint. (4) Copilot adds `copilot-plugins` and `awesome-copilot` as default marketplaces. The hosting decision is still the user's; the portal favours a tracked branch or folder over a second npm package **`2026-10-12`:** deferred by the maintainer to the Exposure phase of `product_excellence_program_2026_q4_featureai.md` (features first). | The user's hosting decision (M5) **`2026-10-11`:** reinforced. Superpowers (a roster peer) is listed in Anthropic's official marketplace pinned to a release commit (`source: url` + `sha`), vendored as a copy in Codex's `openai-curated` marketplace, and in xAI Grok's official marketplace; it is in neither of Copilot's default marketplaces (raw `marketplace.json` files parsed `2026-10-11`). No new fact on the mechanism |
|
|
47
|
+
| MI-026 | Antigravity plugin variant, or installing the Claude-format plugin via `agy plugin install` | Antigravity docs; Superpowers README | `2026-09-10` | **OPEN** (was BLOCKED) | R14 probe added `2026-09-10`. **New fact `2026-09-21`:** `antigravity.google/docs/plugins` now specifies the layout — `plugin.json` with `$schema` `antigravity.google/schemas/v1/plugin.json`, components `skills/`, `agents/`, `rules/`, `mcp_config.json`, `hooks.json`, discovered from workspace `.agents/plugins/<name>/` — the "file shapes unspecified" blocker ADR-0045 recorded is gone. Queue item M7 builds the thin variant behind a conformance test; the live gate still skips without `agy` **`2026-10-03`:** `agy` still absent here. New in Antigravity's changelog: workspace agents at `.agents/agents/<name>.md` (CLI v1.2.11), agent-level `hooks:` (2.0 v2.17.0) and a plugin marketplace tab (v2.18.1). Project config moved to `<repo>/.gemini/config.json` with flat directory scanning (v2.17.0, CLI v1.2.10); PAN writes direct-child skill directories only, so nothing breaks **`2026-10-11`:** Superpowers v7.0.0 (`2026-10-10`) ships `.antigravity-plugin/plugin.json` for `agy plugin install <repo>`; its release note says that without it `agy` imported the repo as a Gemini extension and rejected a Claude-format hooks file every session, and that `agy` has no session-start hook (its bootstrap loads through a skill description). The Antigravity docs (undated, read `2026-10-11`) still put a closed-schema `plugin.json` at the plugin root and never mention `.antigravity-plugin/`, and the schema URL they cite returns 404. Docs and field disagree: read Antigravity's source or run `agy` before building M7. PAN's hooks would not fire there either | `agy` CLI on a machine for the live gate |
|
|
48
|
+
| MI-027 | MCP Tasks extension and the deprecation of Roots / Sampling / Logging (revision `2026-07-28`) | MCP spec | `2026-09-10` | WATCH | ADR-0041's dual-era bridge scope holds: PAN exposes tools and resources only; nothing deprecated is used. `2026-09-21`: no core change since `2026-07-28` (draft changelog empty); roadmap lists Tasks → core, server-initiated events, progressive tool discovery **`2026-10-03`:** `@modelcontextprotocol/ext-tasks` v0.2.x is an SDK only, and no client in the matrix supports Tasks; holds **`2026-10-19`:** SEP PR #3440 (open) would form a Tasks and Events working group; no client support. Holds | A client PAN targets implementing Tasks, or a PAN verb needing long-running semantics |
|
|
49
|
+
| MI-028 | Recognise **planning-with-files** layouts inside `.planning/` — dated `YYYY-MM-DD-slug/` dirs holding `task_plan.md`/`findings.md`/`progress.md`, an `.active_plan` pointer, `sessions/`, `.attestation` — and warn when `.planning/` is gitignored while `commit_docs` is true | OthmanAdi/planning-with-files v3.20.4 (`2026-09-19`, ~27k stars secondary; 60+ runtimes via `npx skills`); gitignores `.planning/` by default | `2026-09-21` | ADOPTED | PAN status PARTIAL: `FOREIGN_PLANNING_MARKERS` has only `gsd`; no verb checks whether `.planning/` is ignored (`config.commit_docs` defaults true). A project with both tools has two writers in one directory and PAN's docs silently never commit. Queue item M3 **`2026-09-28`**: built on `feat/evidence-loop`. Markers re-read upstream at v3.21.0 (adds `ledger-<agent>.jsonl`); `coexists` → `validate health` I004 + `hygiene` `shared-planning-tree`, not refusal; `I005` for a gitignored tree with `commit_docs` on. **Shipped in `3.32.0`.** | planning-with-files changing its layout |
|
|
50
|
+
| MI-029 | **Failure-tier escalation** — retry a failed task on a more capable tier, capped, recorded | gsd-core `dynamic_routing.escalate_on_failure` / `max_escalations` / `provider_escalation` (CONFIGURATION.md); Superpowers SDD "fix round R≤3 resume implementer; R≥4 fresh implementer, more capable model" (v6.4.1); GitHub HydraFusion cascade pattern (`2026-09-04`, vendor claim) | `2026-09-21` | ADOPTED | PAN status MISSING: `resolveComplexityTier()` adjusts the tier by task complexity before the run, never by outcome; exec-phase/diagnose have no attempt counter. Three independent peers converged on the mechanism. Queue item M8 — thesis fit: cost control without lowering the quality floor **`2026-09-26`** (`3.31.0`): `resolve-model --attempt`, `routing.max_escalations`, `exec-phase --gaps-only` as attempt 2 (M8); the ledger `attempt`/`escalated_from` field is not done (the SubagentStop hook cannot see the attempt). **`2026-10-03`:** two refinements seen: Anthropic's Opus 5.5 cost post recommends raising effort before changing model (a vendor recommendation), and a small framework retries by failure class. Recorded as MI-077 (WATCH) | — |
|
|
51
|
+
| MI-030 | **Unrequested-work class in verification** — the verifier reports implementation that "contradicts, exceeds, or falls outside the stated intent", not only missing/partial | Spec Kit `/speckit.converge` ("completion claims are not evidence"; classes missing/partial/contradicts/unrequested) | `2026-09-21` | ADOPTED | PAN status MISSING: no scope-creep check in `pan-verifier`, `pan-reviewer` or `verify-phase.md` (grep clean). Queue item M11 **`2026-09-28`**: built on `feat/evidence-loop` (ADR-0049): `verify scope <phase>` lists changed-but-undeclared files, the verifier records `unrequested:`, the reviewer has the lens; the class is part of the `pan-verdict` contract. **Shipped in `3.32.0`.** | — |
|
|
52
|
+
| MI-031 | **Finding dispositions with recorded reasons** — every review/verify finding ends as patch / defer / dismissed-with-reason / decision-needed, "never silently" | BMAD review triage (`docs.bmad-method.org/build/review-a-change`) | `2026-09-21` | ADOPTED | PAN status MISSING: reviewer and verifier outputs carry findings but no disposition field; `milestone-audit` cannot read deferred items back. Queue item M12 **`2026-09-28`**: built on `feat/evidence-loop` (ADR-0049): `.planning/findings.jsonl` + `findings dispose` (reason required for deferred/dismissed/decision); workflows dispose what they continue past; milestone-audit reads `findings debt`. **Shipped in `3.32.0`.** gsd-core shipped per-finding dispositions in the window too (#3861) | — |
|
|
53
|
+
| MI-032 | **Prerelease dist-tag** — a version with a prerelease suffix publishes under `next`, never `latest` | BMAD `npx bmad-method@next`; gsd-core `canary` tag | `2026-09-21` | ADOPTED | PAN status MISSING: `release.yml` runs `npm publish --provenance --access public` with no `--tag` and no prerelease condition; the `3.26.0-rc.*` tags would have landed on `latest` (both are 404 today). Queue item M1 (P2) **`2026-09-26` (`3.31.0`):** `scripts/npm-dist-tag.js` picks `next` for a prerelease and `latest` otherwise, and `release.yml` publishes with it (M1). Status corrected `2026-10-03` | — |
|
|
54
|
+
| MI-033 | Honour `modelPricing.multiplier` (chargeback markup, ≤10) in the managed-rate layer | Claude Code 2.1.271 | `2026-09-21` | ADOPTED | PAN status MISSING: `ratesFromModelPricing()` reads `inputCostPer1MTokens`/`outputCostPer1MTokens` only (grep `multiplier` clean). Queue item M2 **`2026-09-26`** (`3.31.0`): honoured on the override rows and the built-in rates; the parser also moved to the documented `{multiplier, overrides}` shape (M2). | — |
|
|
55
|
+
| MI-034 | **Record the 1-hour vs 5-minute cache-write split** in ledger rows and use it for the TTL advice | Claude Code headless `--output-format json` and transcripts carry `cache_creation.ephemeral_1h_input_tokens` / `ephemeral_5m_input_tokens` (verified in this machine's transcripts `2026-09-21`) | `2026-09-21` | ADOPTED | PAN status PARTIAL: cost-logger sums `cache_creation_input_tokens` only; `assessCacheTtl()` infers TTL misses from idle gaps where the transcript states the split. Queue item M13 **`2026-09-26`** (`3.31.0`): hook + `cost rebuild` record the split; one-hour writes priced at 2x input; TTL advice says measured or inferred (M13). | — |
|
|
56
|
+
| MI-035 | **Plugin evals** — ship `evals/<case>/{prompt.md,graders/*.md}` in the Claude plugin and run `claude plugin eval` (with/without-plugin arms, graders `regex`/`tool_used`/`tool_order`/`file_exists`/`llm`/`baseline`) | Claude Code 2.1.269 (`code.claude.com/docs/en/plugin-evals`) | `2026-09-21` | ADOPTED | PAN status MISSING: `scripts/build-plugin.js` emits no `evals/`. Overlaps the harness for the Claude lane only; a `tool_used` grader is the mechanical form of the 3b probe (MI-003). Queue item M4 — **blocked on this machine** (Claude Code 2.1.233 < 2.1.269) **`2026-09-26`** (`3.31.0`): `harness/plugin-evals/` → plugin `evals/` (M4); shell-granted cases refused on Windows by Claude Code. | — |
|
|
57
|
+
| MI-036 | **State re-injection after compaction and at session start** — a hook that injects the active phase, last completed step and next action from `.planning/` | planning-with-files (`SessionStart`/`UserPromptSubmit`/`PreCompact` re-inject `task_plan.md`); Claude hooks honour `additionalContext` on `SessionStart`, `PreCompact`, `PostCompact`, `Stop`, `SubagentStop`, `PostToolUse` (decision-control table, read `2026-09-21`); Codex has `PreCompact`/`PostCompact`; Copilot `preCompact`; Gemini `PreCompress` | `2026-09-21` | ADAPTED (Claude, Codex, Copilot; Gemini built, live check blocked) | PAN status MISSING: `HOOK_EVENT_MAP` wires `SessionStart`/`PostToolUse`/`SubagentStop` only; PAN's state is on disk but nothing re-reads it into the orchestrator after compaction — the lowest-context moment PanLoop finding 0 identified. Queue item M10, Claude + Codex first **`2026-09-26`** (`3.31.0`): after compaction only, on `SessionStart` with the `compact` matcher (M10) — `PostCompact` output is discarded on both hosts. **`2026-10-03`:** two more hosts can carry it. Gemini: planning-with-files v3.20.8 moved its own injection to `BeforeAgent` (every turn) after finding that `BeforeTool` output reached only the user; host docs to re-read. Copilot: 1.0.88 merges `additionalContext` across `sessionStart` hooks and prepends `subagentStart` context to the subagent's prompt. `HOOK_EVENT_MAP` has `compact: null` for both → M33 **`2026-10-03`:** M33 deferred with its design recorded in the queue: neither host has a compact start event, so a pre-compaction marker under the temp dir is consumed by the next tool result (`AfterTool`, `postToolUse`); the multi-event registration loop and the Copilot R39 deferral need changes first, and the gate is a live, paid compaction on both hosts **`2026-10-03` (M33 built):** two steps on both hosts, as designed — `--mark` on `PreCompress` / `preCompact`, `--inject` on `AfterTool` / `postToolUse`. Live on Copilot CLI 1.0.88: a manual `/compact` left the marker and the next tool result carried the block, which the model quoted back. Gemini's live check is blocked: the machine's personal Google login is refused (`IneligibleTierError`) | A `GEMINI_API_KEY` for the Gemini live check; Copilot's PascalCase plugin-hook aliases confirmed, for the Agent Plugins bundle |
|
|
58
|
+
| MI-037 | **Stop guard on every runtime that fires a stop event** (Codex `Stop`, Copilot `agentStop`) | Codex hooks reference; Copilot hooks reference | `2026-09-21` | ADOPTED | PAN status PARTIAL: `pan-stop-guard` is attached only through the `settings.json` path (Claude, Gemini); the `isCodex`/`isCopilot` branches never register it. Queue item M14 **`2026-09-26`** (`3.31.0`): Codex `Stop`, Copilot `agentStop`, the Claude plugin and the Agent Plugins bundle (M14, R43). **Correction `2026-10-19` (R55):** the stop guard in the Agent Plugins bundle never fires on Codex. Codex loads no hooks from a plugin whose root `plugin.json` carries the agent-plugins.org schema (openai/codex#37027, `2026-08-05`). The Codex `Stop` registration in a `--codex` install is unaffected | — |
|
|
59
|
+
| MI-038 | **OpenCode observers through its plugin API** (`.opencode/plugins/*.js`: `tool.execute.after`, `session.compacted`, `session.idle`) | `opencode.ai/docs/plugins` | `2026-09-21` | OPEN | PAN status MISSING: `HOOK_EVENT_MAP.opencode = null` — the one runtime with no cost/context/trace observers. Queue item M6; live gate skips without the CLI **`2026-10-03`:** OpenCode 1.18.32 is now on this machine, so the live gate can run. OpenCode's v2 plugin API differs (a `plugins` key, a required default export, renamed hooks, auto-loading from `.opencode/plugins/`; `opencode.ai/v2/docs/build/plugins`), but no 2.x is released (npm `opencode-ai` latest is 1.18.34; the `2.0` branch has been idle since `2026-04-13`). M6 targets the v1 API **`2026-10-11` (reality check):** OpenCode 2 ships as `@opencode/cli` (2.0.26, `2026-10-08`; no GitHub release tags) and 1.19.0 (`2026-10-11`) moves users to it with `opencode upgrade --major`. Read from `opencode.ai/v2/docs/migrate-v1` and the 2.0.26 binary: v2 normalises v1 config in memory without rewriting the file (`permission` map → `permissions` rules, `mcp.<name>` → `mcp.servers`, singular `command/` and agent frontmatter translated), so PAN's config applies as written, and the published `$schema` is still the closed v1 schema, so PAN must keep writing v1 shapes. **But v1 plugin implementations do not run in v2:** the loader needs a default export with `id` and `setup` (or `effect`), so PAN's compaction plugin fails to load. Documented fix: one object carrying both `server()` (v1) and `setup()` (v2, `ctx.session.hook("compaction", …)`), OpenCode ≥1.18.29. Queue item R45 (P1); M6 should target the dual export **`2026-10-19`:** R45 shipped in `3.35.0` (`18efcb5`): `pan-wizard-core/opencode/pan-wizard.js` exports `{ id, server, setup }`, so the compaction plugin loads on both; the observers themselves are still missing (`HOOK_EVENT_MAP.opencode` is `null`), so this row stays OPEN (M6) **`2026-10-19`:** new facts: OpenCode 1.19.2 (`2026-10-16`) keeps 1.x on 1.x, but Homebrew Core now tracks OpenCode 2 (`@opencode/cli` 2.0.32, `2026-10-16`), and 1.19.0 offers `opencode upgrade --major`. gsd-core v1.17.0 (`2026-10-14`) reports that 2.x renames tool ids (`shell`, `patch`) and drops `opencode run` flags, and that 1.x freezes on `2026-12-31` (a peer's claim, not read at OpenCode's source). PAN's plugin already loads on both (R45); the observers are still missing, and the installer does not detect the OpenCode generation. Path checks handed to `/reality-check` (Addendum `2026-10-19`) **`2026-10-19`, R51 (live, model-free, OpenCode 2.0.32):** PAN's v1 config is normalised in memory, `mcp list` shows `pan connected`, `debug agents` lists every pan-* agent with legacy permission keys translated, and `plugin list --builtin` lists `pan-wizard` as a local plugin; gate `live-gate-opencode2`. Compaction through `setup` is unproven, and the observers are still missing | — |
|
|
60
|
+
| MI-039 | Versioned machine-readable state contract on JSON payloads (`contract` semver, consumers gate on MAJOR) | gsd-core `.planning/state.json` | `2026-09-21` | ADOPTED | PAN status PARTIAL: verbs emit JSON and `pan://state`/`pan://progress` exist, but no payload carries a contract version. Queue item M17 (XS) **`3.32.0`:** `contract: "1.0"` on `state`, `state json`, `progress json` and the `pan://state` / `pan://progress` resources (M17); gentle-ai v3.7.0 versions its provider contract the same way. Status corrected `2026-10-03` | — |
|
|
61
|
+
| MI-040 | `omitClaudeMd` agent frontmatter — subagents that skip user/project CLAUDE.md | Claude Code 2.1.271 | `2026-09-21` | WATCH | A decision item in ADR-0046's line: plausible for read-only judgment agents (verifier, plan-checker), wrong for executors that need project rules. MI-022 applies (live check) **`2026-10-03`:** trigger met by this machine (Claude Code 2.1.280; `stable` is 2.1.285), and the field is unchanged in the docs. The MI-022 live check is handed to `/reality-check` | The live check, then an ADR-0046 successor |
|
|
62
|
+
| MI-041 | Emit Claude skills (`.claude/skills/pan-*/SKILL.md`) instead of, or beside, `.claude/commands/pan/*.md` | Claude Code skills doc: commands are "the older format; prefer skills"; `--bare` (to become the `-p` default) skips `.claude/commands/` and `.claude/agents/` even with `--add-dir` | `2026-09-21` | ADAPTED (unified installs, `3.30.0`) · WATCH (default installs) | Commands still load; PAN's unified skills target `.agents/skills/`, which Claude Code does not read. Also handed to `/reality-check` as a path risk **`2026-09-23` (R32):** a `--unified-skills` install now writes `.claude/skills/pan-<name>/SKILL.md` copies, because Claude Code does not read `.agents/skills/`; a default install keeps `.claude/commands/pan/`, and the never-loaded flat shims are gone (R33) **`2026-10-03`:** commands are still "the older format and still work", and `--bare` is not yet the `-p` default; trigger not fired | The docs deprecating commands, or `--bare` becoming the `-p` default |
|
|
63
|
+
| MI-042 | Host-native parallel agents in worktrees replacing the bot army — Claude agent teams / `claude agents --bg`, Codex `--worktree` (0.154.0), Copilot `/worktree` (1.0.85) | three runtimes in one month | `2026-09-21` | WATCH | ADR-0033 owns the army; Claude's is a research preview behind an env flag. When two runtimes offer stable worktree sessions, the army's Claude-only status becomes the anomaly **`2026-10-03`:** the trigger is met in letter: Codex 0.156.0 turned worktree sessions on by default, and Copilot documents `/worktree`, `/new worktree`, `/move` and `/fleet` with no experimental tag. These are sessions a user starts, not agents an orchestrator dispatches, so the army has no host primitive to adopt. Claude's agent teams are still experimental. Trigger refined | A runtime letting an orchestrator dispatch an agent into a worktree (Claude agent teams leaving experimental, or a Codex or Copilot equivalent) |
|
|
64
|
+
| MI-043 | Serve PAN skills and references over MCP (`skills/list`, `skills/get`, `skill://` resources) | MCP Skills extension SEP-2640, Final `2026-09-11` | `2026-09-21` | WATCH | Client matrix shows Skills only partial in ChatGPT, fast-agent, MCP Inspector — none of PAN's runtimes **`2026-10-03`:** the client matrix adds mcpc (full support); ChatGPT, fast-agent and Inspector are partial; none is a PAN runtime. Holds | A client PAN targets implementing the extension |
|
|
65
|
+
| MI-044 | Second-opinion review from a foreign CLI / cross-family critique | gsd-core reviewer lanes (`review.reviewer_instances.<name>.cli`); HydraFusion Critique; Copilot CLI's built-in `rubber-duck` agent for every model family (1.0.87, `2026-09-21`); porch (`CodeAlive-AI/pragmatic-orchestration` v2.0.0-beta.1) | `2026-09-21` | WATCH | PAN's plan-checker is one model in one runtime; the harness already knows how to drive several CLIs **`2026-10-03`:** trigger met: Codex, Gemini, OpenCode and Copilot CLIs are now on the harness machine. Re-triaged and held: Copilot's built-in `rubber-duck` gives a cross-family critic inside one runtime, porch is a beta, and gsd-core retired its Gemini review lane. Trigger refined to a measurement | A harness rep where a single-family judge passed a planted defect that a second family caught |
|
|
66
|
+
| MI-045 | Live-DOM UAT with a browser evidence artifact | gsd-core `workflow.live_dom_uat` → `{phase}-DOM-VERIFY.md` | `2026-09-21` | WATCH | PAN's UAT is conversational; Claude Code now ships an in-app browser and browser MCPs **`2026-10-03`:** gsd-core added interaction capture through the chrome-devtools CLI (off by default); holds | A harness seed with a web UI |
|
|
67
|
+
| MI-046 | Cross-phase defect register with waive-reasons gating ship (`WINDOWS.md`) | gsd-core broken-windows ledger | `2026-09-21` | WATCH | PAN `milestone-audit` already scans TODO/stub/placeholder anti-patterns and returns `gaps_found` / `tech_debt`; the persistent register adds waive-with-reason. MI-031 gives it the disposition it would read **`2026-10-03`:** gsd-core now offers to move deferred UAT items into the backlog; PAN's `findings debt` (`3.32.0`) feeds deferred findings to `milestone-audit`. Holds | Field telemetry showing repeated `tech_debt` verdicts on one project |
|
|
68
|
+
| MI-047 | Three-layer config (team-committed / personal-gitignored / shipped) with typed merge | BMAD `_bmad/custom/*.toml` | `2026-09-21` | WATCH | `config.cjs` merges hardcoded defaults with user-level overrides only; PAN projects are single-writer today **`2026-10-03`:** BMAD's layered store config is merged for v7 but unreleased; holds | A multi-human PAN project |
|
|
69
|
+
| MI-048 | Slots/overlays: user extension of shipped workflows anchored on step ids | Spec Kit workflows | `2026-09-21` | WATCH | PAN's `patches` command re-applies local modifications after an update, which covers the survival case; anchored overlays are a richer model **`2026-10-03`:** Spec Kit v1.1.0 ships installable custom step types; no user demand, holds | User demand |
|
|
70
|
+
| MI-049 | Private acceptance criteria + a QA driver agent in the eval harness | Superpowers Quorum (`prime-radiant-inc/superpowers-evals`) | `2026-09-21` | WATCH | PAN's harness grades with fs/grep checks and model steps; a driver agent suits conversational UAT scenarios | A tier-2 scenario needing multi-turn UAT |
|
|
71
|
+
| MI-050 | Ledger export in OpenTelemetry GenAI attribute names | OTel semconv-genai (still Development); Claude Code `OTEL_LOG_TOOL_DETAILS=1` puts agent/skill/plugin names on cost metrics (2.1.273) | `2026-09-21` | WATCH | PAN's rows already carry agent and command; naming alignment waits for a stable spec **`2026-10-03`:** still `development`; the window replaced the token-usage histogram (a breaking change) and added `gen_ai.skill.*` attributes. Holds **`2026-10-19`:** semconv-genai still `development` (no stable entry; no release in the window). Anthropic's Claude Platform emits OTel traces following it (public beta, `2026-10-14`). Holds | semconv-genai stable release |
|
|
72
|
+
| MI-051 | Gemini subagents as `.gemini/agents/*.md` (`experimental.enableAgents`) | geminicli.com/docs/core/subagents | `2026-09-21` | WATCH | Experimental; MI-022 applies. The Gemini audience shrank to enterprise/API-key users on `2026-06-18` **`2026-10-03`, correction:** the subagents page says subagents are enabled by default (updated `2026-06-08`), and `experimental.enableAgents` defaults to `true` in v0.62.0, though the key still sits under Experimental. Gemini CLI 0.61.0 is on this machine; the live check is handed to `/reality-check` | The live check (MI-022) |
|
|
73
|
+
| MI-052 | Codex per-skill UI metadata `agents/openai.yaml` beside `SKILL.md` (`display_name`, `allow_implicit_invocation`, `default_prompt`) | learn.chatgpt.com/docs/build-skills | `2026-09-21` | WATCH | Optional polish outside the spec-standard `SKILL.md`; needs a Codex CLI to observe **`2026-10-03`:** trigger met: Codex CLI 0.157.1 is on this machine. The live check is handed to `/reality-check` | The live check (MI-022) |
|
|
74
|
+
| MI-053 | Cross-runtime file-claim / overlap-detection layer for parallel agents | Get-Concord-AI/concord-mcp (322 stars, secondary) | `2026-09-21` | WATCH | Relevant only if the army leaves Claude (MI-042) **`2026-10-03`:** seen only as per-tool one-writer rules, no shared layer; holds | ADR-0033 revisit |
|
|
75
|
+
| MI-054 | Browser plan-annotation UI as a human gate before execution | backnotprop/plannotator (~8.8k stars, secondary) | `2026-09-21` | SKIP | Zero-dep constraint (a local web app), and PAN's gate is the plan-checker plus conversational review in the runtime; not PAN's layer **New fact `2026-10-03` (Claude only):** Claude Mods (2.1.287) let a plugin draw panes inside Claude Code, and Anthropic's code-modernization 1.0.0 ships an in-terminal review deck that records human verdicts to a file. On Claude a review surface no longer needs a local web app, so the zero-dependency half of the reason lapses there. The "not PAN's layer" half stands, the interface is two days old, and gsd-core refuses a mod adapter before `2026-11-01`. SKIP holds (see MI-074) | MI-074 firing |
|
|
76
|
+
| MI-055 | Daily-refreshed third-party pricing feed instead of a dated rate table | getagentseal/codeburn (LiteLLM feed) | `2026-09-21` | SKIP | MI-022/MI-023: a secondary source with network access at runtime; `models check`'s staleness flag is the honest form **`2026-10-03`:** agent-console and SpecJudge also price from dated offline tables; holds | — |
|
|
77
|
+
| MI-056 | Usage telemetry (even minimal command-name pings) | OpenSpec (opt-out, command names); Agent Orchestrator (PostHog, non-anonymous) | `2026-09-21` | SKIP | PAN collects nothing and says so; the cost ledger is local. Keep it that way — a "What not to do" candidate **`2026-10-03`:** code-modernization added opt-out usage counts; holds | — |
|
|
78
|
+
| MI-057 | Auto-copy learnings to a global store at phase completion | gsd-core `features.global_learnings` | `2026-09-21` | SKIP | Conflicts with the `learn promote` gate and the no-external-harvest rule (memory `no-external-project-harvest`) | — |
|
|
79
|
+
| MI-058 | A control-plane daemon / Kanban / cross-CLI stage runner above the runtimes | Untrivial-ai/agent-orchestrator; crewplaneai/crewplane; github/gh-aw (workflows compiled to Actions) | `2026-09-21` | OPEN (re-opened `2026-10-12`) | A different layer: PAN runs inside the runtime and its headless form is the harness. Nothing to take without becoming a sixth thing (MI-017) **Re-opened `2026-10-12` by the maintainer** as a foreground loop over PAN's own state — not a daemon, not a sixth runtime (item A1 of `product_excellence_program_2026_q4_featureai.md`). New facts: Anthropic's long-running harness posts (fresh session per feature, a progress file, an evaluator with hard thresholds), bmad-loop's "no LLM in the control loop", the self-conditioning result (arXiv `2509.09677`), and PAN's own stop-guard record that prose chains drop a phase boundary. | A runtime PAN targets embedding one natively |
|
|
80
|
+
| MI-059 | Declarative agent manifests (Oracle Open Agent Spec, A2A) | oracle/agent-spec 26.3.1 (`2026-09-11`) | `2026-09-21` | SKIP | Not coding-agent-runtime specific; no PAN runtime consumes them **`2026-10-03`:** no oracle/agent-spec or A2A release since `2026-09-15`; holds | A PAN runtime consuming one |
|
|
81
|
+
| MI-060 | **Runtime-recorded failure capture**: the host's own transcript, not the agent, reports each failed tool call, localised to (command, phase, agent, tool) | Growing Harness (arXiv:2609.26760 v2, read `2026-09-28`), via `/investigate` digest `2026-09-28` | `2026-09-28` | ADOPTED | Built on `feat/evidence-loop` (ADR-0049). The trace hook writes `error/tool_error` from per-agent transcripts (Claude; redacted; `execution.error_pattern_learning` off switch), and judge verdicts reach the trace through `findings record` on every runtime. Re-measured first: 0 error events in 14 field projects vs 869 failed tool calls in 1,969 transcripts. First real capture 2026-09-28 (harness `tool-error-capture`) **Shipped in `3.32.0`.** | Copilot or Codex gains a per-subagent transcript |
|
|
82
|
+
| MI-061 | **Revertible optimizer applies with a success-first gate** | Growing Harness (same) | `2026-09-28` | ADAPTED | Revert built (`apply_id`, per-action records, LIFO per file, EOL-tolerant, re-apply guard). The advisory before/after `optimize verdict` is deferred: 1 apply run in 14 field projects **Shipped in `3.32.0`.** | `optimize stats` shows apply runs in 3 or more projects |
|
|
83
|
+
| MI-062 | **Escape free text written into planning-file tables**: a `\|` in a description must not break a markdown table for good, and readers report "could not read" apart from "nothing recorded" | gsd-core v1.15.0 (`2026-09-26`; PRs #4918, #4960, #4971) | `2026-10-03` | ADOPTED | PAN status **defect**: `pan-wizard-core/workflows/quick.md` step 7 writes `${DESCRIPTION}` unescaped into state.md's "Quick Tasks Completed" table (both row templates). Queue item M21 M21 built on `feat/market-ideas-2026-10` (`2026-10-03`): `escapeTableCell()`, `init quick` → `description_cell`, escaped metric rows, and a lint over shipped table-row templates | — |
|
|
84
|
+
| MI-063 | **Decision checkpoints name their auto-pick**: in auto mode a `checkpoint:decision` without a named choice goes to a human, and a named choice that is not a real option fails when the plan is parsed | gsd-core v1.15.0 `auto_select` (PR #4912) | `2026-10-03` | ADOPTED | PAN status MISSING: auto mode takes the first option (`agents/pan-executor.md` "Auto-select first option"; `references/checkpoints.md` rule 5), so safety depends on option order. Queue item M22 M22 built on `feat/market-ideas-2026-10` (`2026-10-03`): `auto_select` on decision checkpoints; auto mode stops for a human without it. `verify plan-structure` also stopped rejecting every documented checkpoint shape | — |
|
|
85
|
+
| MI-064 | **A check that did not run is never reported as passed**: "not checked" stays apart from "passed", with the reason | OpenSpec v1.13.2 (`/opsx:verify`, PR #1732); Anthropic code-modernization 1.0.0 (a missing fact is shown as missing) | `2026-10-03` | ADOPTED | PAN status PARTIAL: `verify-phase.md` already treats a suite that could not run as failed, but `status: passed` still allows a skipped test gate ("test gate passed or skipped"), and `references/verdict-contract.md` has no not-checked outcome. Queue item M23 M23 built on `feat/market-ideas-2026-10` (`2026-10-03`), grown to M: exec-phase's verifier ran no test gate at all; it now does, and records `test_gate` and `not_checked`, which travel into the verdict record | — |
|
|
86
|
+
| MI-065 | **Install verifies the hook entrypoints it registered**: every script and interpreter path written into runtime configs exists before "installed" is printed | gsd-core v1.15.0 (PR #4249) | `2026-10-03` | ADOPTED | PAN status PARTIAL: `verifyInstall()` (`bin/install-lib.cjs`) checks that manifest files exist and are non-empty, not the hook commands written into `settings.json`, `.codex/hooks.json` or `.github/hooks/`. Queue item M24 M24 built on `feat/market-ideas-2026-10` (`2026-10-03`): `verifyHookEntrypoints()`; a miss exits 1 before any runtime config is written | — |
|
|
87
|
+
| MI-066 | **Name config keys the tool does not recognise** (warn on set and in health; strict mode fails) | OpenSpec v1.14.0 (PR #1925) | `2026-10-03` | ADOPTED | PAN status MISSING: `cmdConfigSet` (`config.cjs`) stores any key path, so a typo is accepted silently. The real key list already exists as `config_keys` in `tests/fixtures/surface.json` (derived by `scripts/test-surface.cjs`). Queue item M26 M26 built on `feat/market-ideas-2026-10` (`2026-10-03`): `config-set` warning with the nearest key, health I006 | — |
|
|
88
|
+
| MI-067 | **Stale-verification detection**: a verification records what it covered, and a later change to those files marks it stale and routes back to the verifier | gsd-core v1.13.0 (`2026-09-06`, missed by the `2026-09-21` scan) and v1.15.0 fingerprint v2 (PRs #4749, #4818); Anthropic code-modernization ("changed since verified") | `2026-10-03` | ADAPTED | PAN status MISSING: no input hash or stale state in `verify.cjs`, `verify-scope.cjs`, `phase.cjs` or the milestone modules (grep `stale`, `fingerprint`), so an old pass still counts after later edits. Queue item M27, in PAN's idiom: record the commit the verifier read and diff the phase's files since M27 built on `feat/market-ideas-2026-10` (`2026-10-03`): `verified_commit` + `verify stale <phase>` (git diff of the covered files since that commit) instead of a content fingerprint; `progress` marks stale phases | — |
|
|
89
|
+
| MI-068 | **Dependency-ready dispatch**: a plan runs only when every `depends_on` predecessor has a summary, and blocked plans are named | gsd-core v1.15.0 (PR #4781) | `2026-10-03` | ADAPTED | PAN status PARTIAL: plans carry `depends_on` and run by wave, but after a failed plan exec-phase asks "Continue?" and then runs dependent plans anyway (`workflows/exec-phase.md`, failure handling). Queue item M28 M28 built on `feat/market-ideas-2026-10` (`2026-10-03`): `phase-plan-index --failed` lists the blocked plans; exec-phase skips and names them | — |
|
|
90
|
+
| MI-069 | **Machine-readable version and update status** (`version --json [--check]`: version, install location, update state) | OpenSpec v1.14.0 (PR #2001) | `2026-10-03` | ADOPTED | PAN status MISSING: `pan-tools` has no `version` verb, and the update check lives only in `hooks/pan-check-update.js`. Queue item M29 M29 built on `feat/market-ideas-2026-10` (`2026-10-03`): `pan-tools version [--check]` (cache only, never the network) | — |
|
|
91
|
+
| MI-070 | **Host and standard validators as gates**: `claude plugin validate` (MCP-entry, `${user_config}` and unquoted-root checks from Claude Code 2.1.281; uninstallable names fail from 2.1.283) and `gh skill publish --dry-run` (validates SKILL.md against the Agent Skills spec; GitHub CLI, preview) | Claude Code; GitHub CLI; wshobson/agents CI runs both (secondary) | `2026-10-03` | ADOPTED | PAN status PARTIAL: `tests/plugin-marketplace.test.cjs` already runs `claude plugin validate` on the marketplace and the built plugin when the CLI is present (CI has no Claude Code, so it skips there); nothing runs `gh skill publish --dry-run` on the emitted skills. Queue item M30 M30 built on `feat/market-ideas-2026-10` (`2026-10-03`): skills carry `license`; GitHub's validator runs over three converters' output when the CLI is present | — |
|
|
92
|
+
| MI-071 | **Model-free discovery checks for each runtime CLI**: install the artifact, then ask the CLI what it loaded without a model turn (`codex plugin add --json`, `codex app-server` `mcpServerStatus/list`, `opencode agent list`, `agy plugin validate`) | `agentplugins/agent-plugins-conformance` CI (pinned Codex, no API key); wshobson/agents `validate.yml` | `2026-10-03` | ADAPTED | PAN status PARTIAL: the harness live gates skip when a CLI is absent, and `live-gate-codex` adds and lists the marketplace only. Codex, OpenCode, Gemini and Copilot CLIs are now on this machine. Queue item M31 M31 built on `feat/market-ideas-2026-10` (`2026-10-03`): Codex `plugin add/list`, `mcp list` and `debug prompt-input`, OpenCode `agent list`; the Codex gate now runs in a scratch `CODEX_HOME` (it had written into the user's real one) | — |
|
|
93
|
+
| MI-072 | **A plan records decisions, not code**: steps name signatures, assertions, values and the verify command, and a proportion self-review compares the plan's length to the spec's | Superpowers v6.4.2 (`2026-09-25`; its release notes report shorter, cheaper plans, a vendor measurement) | `2026-10-03` | ADOPTED | PAN status MISSING: no such rule in `agents/pan-planner.md` (which has Write and Bash), and the plan-checker's Scope Sanity dimension counts tasks and context only. Queue item M32 M32 built on `feat/market-ideas-2026-10` (`2026-10-03`): planner rule, plan-checker red flag, and a plan-structure warning on long code in `<action>` | — |
|
|
94
|
+
| MI-073 | **Audit the shipped prompts with the host's prompt audit** (`/doctor prompt-audit`: older-model prompting, stale paths or commands, contradictions, "ritual" instructions) | Claude Code 2.1.283 (`2026-09-25`); Anthropic "What a task costs on Opus 5.5" (`2026-09-25`) | `2026-10-03` | ADOPTED (`2026-10-03`) | PAN status MISSING: no prompt audit in the harness or hygiene. Run report-only against a deployed install and fix what it finds in the sources. Queue item M34. **`2026-10-03`:** ran on Claude Code 2.1.288 against a fresh install ($9.18). Its high-confidence findings were real defects: paths an install never has, flags never forwarded, agents told to write with no Write tool, the 2021 OWASP list under the 2025 name, and AGENTS.md naming commands Claude Code does not have. Fixed and pinned by `tests/prompt-audit-fixes.test.cjs`; the style findings are queued as M35 behind a harness A/B | Re-run after a large prompt change or a host-tool release that changes the audit; M35 |
|
|
95
|
+
| MI-074 | **Claude Mods**: in-process JS/TS handlers in plugins (`agent.spawn` returning `{model}` or `{deny}`, `session.compact`, `tool.describe`, panes) | Claude Code 2.1.287 (`2026-10-01`); Anthropic blog "Customize Claude Code with mods" (`2026-10-01`); ruflo v3.50.0 measured 0.045 ms in-process against 18.2 ms for a spawned hook (vendor measurement) | `2026-10-03` | WATCH | Claude-only, plugin-only and two days old; gsd-core refuses a mod adapter before `2026-11-01`. Candidates once stable: in-process cost and trace observers, per-spawn model choice in native workflows, a progress pane. Command hooks stay the portable path (Claude-only features are additive) **`2026-10-19`:** half the trigger is met: npm `stable` is 2.1.292 (`2026-10-06`), which carries Mods (from 2.1.287); 2.1.299 passes a skill's frontmatter and source to `skill.prompt`, and 2.1.300 lets `agent.spawn` rewrite `prompt` and `model`. PAN's plugin is still unpublished (MI-025) and no hook-latency cost is measured, so it stays WATCH. A Mods doc page could not be read (`code.claude.com/docs/en/mods.md` returns 404) | Mods on the `stable` dist-tag and PAN's plugin published (MI-025), or a measured hook-latency cost in PAN runs |
|
|
96
|
+
| MI-075 | **Stall watchdog for background agents** | gsd-core v1.15.0 (`planner.stall_detection_enabled`, PR #4585); Claude Code `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` (documented in the math-proof plugin's README) | `2026-10-03` | WATCH | PAN status MISSING (no stall detection in workflows, agents or hooks), but no stall is recorded in PAN's harness or field runs, and Claude Code 2.1.286 fixed Workflow subagents restarting after a stalled connection | A measured stall in a harness rep or field run |
|
|
97
|
+
| MI-076 | **A second runtime for native workflow scripts**: Copilot dynamic workflows (orchestration code in `.github/extensions/<name>/extension.mjs`, run with `copilot workflow run NAME --args JSON --result-file`) | Copilot CLI public preview behind `--experimental` (GitHub changelog `2026-10-01`) | `2026-10-03` | WATCH | PAN's native workflow scripts are Claude-only (MI-002) and markdown stays the portable path | The feature leaving preview (no `--experimental`) |
|
|
98
|
+
| MI-077 | **Effort-first escalation and retry by failure class**: raise reasoning effort before changing model; classify failures (transport, protocol, definition) and retry only the retryable ones | Anthropic "What a task costs on Opus 5.5" (`2026-09-25`, a vendor recommendation); `ccai40359-wq/multiagents-workflow` README | `2026-10-03` | WATCH | Refines MI-029 (tier escalation shipped in `3.31.0`). Most PAN runtimes cannot set effort per spawn; Copilot applies an agent's `reasoningEffort` from 1.0.88 **`2026-10-19`:** Claude subagent frontmatter documents `effort` (per agent type, date added unknown), Copilot has applied `reasoningEffort` since 1.0.88, and OpenCode 1.19.3 generates reasoning variants from model options. None of these set effort per spawn or per attempt, which is what effort-first escalation needs. Trigger refined | A per-spawn (not per-agent-type) effort control on two runtimes PAN targets |
|
|
99
|
+
| MI-078 | **Codebase-map facts attached when a file is read** (callers, callees, rules that cite it) | Anthropic code-modernization 1.0.0 ("X-ray reads", `2026-09-25`) | `2026-10-03` | WATCH | `map-codebase` writes `.planning/codebase/`; no hook attaches it at read time (`pan-context-monitor.js` and `pan-state-reinject.js` are the only context-injecting hooks). A Claude-first mechanism | A harness rep where map facts at read time cut turns or defects on a brownfield seed |
|
|
100
|
+
| MI-079 | **A human-verdict file the build reads as a gate** (one verdict per flagged rule; an undecided rule stops the build) | Anthropic code-modernization 1.0.0 (`RULE_REVIEWS.json`) | `2026-10-03` | WATCH | `findings dispose` (`3.32.0`) records the orchestrator's dispositions with reasons and the MCP merge gate is human; no human-verdict file is read by execution | A field case where an orchestrator disposition overrode a call a human should have made |
|
|
101
|
+
| MI-080 | **Idea triage with a kill verdict before the roadmap** (capture, research, define, shape, decide: go, needs-clarification or kill; a person approves) | Spec Kit v1.0.9 `assess` bundle (PR #4504) | `2026-10-03` | WATCH | PAN has no go/kill step before an idea reaches the roadmap (`todo-add` captures; `what-if` replays an existing phase) | User demand, or a second roster peer shipping it |
|
|
102
|
+
| MI-081 | **Hook-enforced read-only judge phases** (a review mode that rejects writes) | `lennney/stop-that-shit` 0.2.3 to 0.2.4 (`2026-09-24`, `2026-09-28`) | `2026-10-03` | WATCH | PAN's plan-checker and reviewer have no Write or Edit tool, but they have Bash; nothing enforces read-only at the hook layer **`2026-10-19`:** new fact: Copilot CLI 1.0.97 (`2026-10-13`) runs a `hooks:` map from a custom agent's frontmatter only while that agent is selected (a subagent's scoped Stop runs at SubagentStop); only the hooks reference documents it, not the custom-agents reference. A per-agent pre-tool hook could reject writes for PAN's judges on Copilot. MI-022 applies; no case of a judge writing outside its report is recorded. Holds | A harness or field case of a judge writing outside its report |
|
|
103
|
+
| MI-082 | **Retire the Gemini CLI runtime** (a runtime-roster signal) | gsd-core v1.15.0 retired Gemini CLI as a runtime and a review lane, citing Google ending Gemini CLI for free, Pro and Ultra users on `2026-06-18` (PRs #4716, #4743) | `2026-10-03` | WATCH | PAN keeps `--gemini`: API-key, Vertex and gateway users still have Gemini CLI, which shipped 0.62.0 in the window, and Antigravity is served through the shared `.agents/` tree. **`2026-10-03`, seen live:** Gemini CLI 0.61.0 refuses a personal Google login (`IneligibleTierError`, pointing the user at Antigravity), which blocked M33's Gemini live check; API-key users are not affected, so the trigger has not fired **`2026-10-12`:** Gemini CLI was replaced by Antigravity CLI for unpaid and Google One accounts on `2026-06-18` (geminicli.com/docs); gsd-core removed its Gemini lane in v1.15.0. The maintainer chose to keep Gemini supported, marked behaviour-unproven, with no new Gemini-only work. | Google ending Gemini CLI for API-key and Vertex users, or a second roster peer retiring it |
|
|
104
|
+
| MI-083 | **MCP `tool-approval` extension** as a standard channel for human approval of tool calls | MCP SEP-2848 (open) | `2026-10-03` | WATCH | PAN's merge gate is nonce-bound and human (`pan-wizard-core/mcp/`); a standard channel could replace the custom one **`2026-10-19`:** still open; a Java SDK reference implementation is planned. Holds | SEP-2848 accepted and a PAN runtime implementing it |
|
|
105
|
+
| MI-084 | **Export plan tasks to GitHub issues** | Spec Kit v1.0.13 bundled `github` extension (`/speckit.github.taskstoissues`, PR #4488) | `2026-10-03` | SKIP | Spec Kit is moving it out of core itself (deprecated in stage 2, removed in stage 3). PAN's state is `.planning/`, and a tracker export is a different layer (MI-058) | — |
|
|
106
|
+
| MI-085 | **Inject plan context only when it matches a hash the user attested** | planning-with-files v3.20.5 and v3.21.0 (attestation targets) | `2026-10-03` | SKIP | `hooks/pan-state-reinject.js` injects a few capped position fields from `state.md`, not a plan body; the hash guards an injection PAN does not make | PAN injecting plan bodies |
|
|
107
|
+
| MI-086 | **Use Codex's `/usage` dashboard as the Codex cost view** | Codex 0.156.0 (`2026-09-22`) | `2026-10-03` | SKIP | Scouted as REDUNDANT; on inspection a TUI-only view of token totals and plugin and skill activity, with no per-agent or per-phase attribution and no machine-readable output, so it replaces nothing in the cost ledger | A machine-readable per-session export from Codex |
|
|
108
|
+
| MI-087 | **Antigravity `/plan` with a Plan Review Policy** as the planning step on Antigravity | Antigravity 2.0 v2.17.0 (`2026-09-22`) | `2026-10-03` | SKIP | Scouted as REDUNDANT; on inspection a single-session plan-then-edit gate with no durable state, checker or phases. PAN's plan and plan-checker are cross-runtime and live in `.planning/` | — |
|
|
109
|
+
| MI-088 | **A paid per-edit classifier enforcing AGENTS.md and CLAUDE.md rules** | TypeSafe "Jev" plugins (abide, compact-adviser, fast-jev-compaction; oh-my-claudecode v5.5.0) | `2026-10-03` | SKIP | Needs a third-party API key and a network call on every edit: the zero-dependency and no-secrets constraints | — |
|
|
110
|
+
| MI-089 | **Tests and docs inside each task group** (the last group only integrates) | OpenSpec (PR #1955) | `2026-10-03` | SKIP | PAN tasks already carry a `<verify>` step and TDD gets its own plans; `phase-tests` is an add-on after the phase. No measured cost of the difference | A harness rep where per-group tests would have caught what the verifier missed |
|
|
111
|
+
| MI-090 | **A project skill named `verify` or `simplify` that the host runs before every commit** | Claude Code 2.1.286 (`2026-09-30`) | `2026-10-03` | SKIP | PAN must never ship a skill by either name, or it would run before every executor commit; `pan-verify-phase` is named apart. Interaction recorded: a user's own `verify` skill adds one run per executor task commit | — |
|
|
112
|
+
| MI-091 | **Phase-scoped planning context** — the current phase's roadmap section, a one-line index of every phase and the requirements the phase names, instead of the whole files | Research: Chroma context rot, LongMemEval focused vs full input; the small-index pattern (Claude Code memory index, Kiro, Serena) | `2026-10-04` | ADAPTED | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O2; `79667bb`, `49b8425`, `86aa9c2` (the verifier); harness gates `90eaab7`, `8c3e848`):** `roadmap slice`; the planner, checker, researcher, executor and verifier read it. Field slices 75–98% smaller; harness `plan-phase-checker-loop` on a long project's roadmap and `markdown-exec-phase-chain` read zero whole files (transcript-counted). PAN status PARTIAL: ADR-0036's distill-and-select principle, but plan-phase hands planner and checker the whole `roadmap.md` and `requirements.md`. Measured in the field: the slice is 89–98% smaller (54-phase project ~146k → ~3k tokens). Queue `memory-optimization-2026-10.md` O2 | — |
|
|
113
|
+
| MI-092 | **Bound the roadmap and requirements** — shipped phases' detail moves to a history file, the checklist line stays | BMAD audits that only shrink; OpenSpec archive-and-merge of changes | `2026-10-04` | ADAPTED | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O3; `fc29af6`, `49b8425`):** `roadmap compact` with `roadmap-history.md`, read back by get-phase, report and slices; hygiene `compact-roadmap`. Requirements get no compactor: no field project shipped a milestone through PAN, and phase agents read only their requirement lines. ADR-0044 bounded `state.md` only. A 476 KB roadmap was measured, and hygiene's `cache-context` finding carries `fix: null` for it. Queue `memory-optimization-2026-10.md` O3 | — |
|
|
114
|
+
| MI-093 | **Cited, verified, expiring memory facts** — each fact cites code, is re-checked against the working tree before use, and expires when unused | Copilot Memory (GitHub A/B `2026-01-15`: PR merge rate 90% vs 83%) | `2026-10-04` | ADAPTED | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O4; `86aa9c2`):** `--cites`, verification and expiry in `memory select`, `--mark-used`, `memory prune`, hygiene `memory-stale`; learn lint L-007. Harness `memory-citations` passed. Found on the way: exec-phase injected the ADR-0040 quarantine; fixed. PAN status MISSING: agent-memory entries and promoted learnings carry no citation, no verification and no expiry. The only outcome A/B found in the memory field. Zero-dependency version: a filesystem check of `path[#symbol]`. Queue `memory-optimization-2026-10.md` O4 **`2026-10-04`:** the injection these checks guarded was retired (MI-095, `506d1fb`); the checks remain on `memory select`, `memory prune` and hygiene. | — |
|
|
115
|
+
| MI-094 | **Task-cued learnings selection** | agent-os `/inject-standards`, Kiro `fileMatch`, research on distractors | `2026-10-04` | ADAPTED | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O5; `fc28b6b`):** `learn topics-for --cue`. Golden set: precision 0.06 → 0.37, recall 0.45 → 0.76. `learn topics-for` ranks by static role relevance, then fills 5,000 tokens smallest-first, so most relevant topics drop whatever the task (21–24 per role). `selectMemory`'s cue scorer exists but is not used here. Queue `memory-optimization-2026-10.md` O5 | — |
|
|
116
|
+
| MI-095 | **Lessons only from observed failures, admitted through a gate**, with telemetry on whether an injected entry was used | BMAD `record`, SuperClaude reflexion; Cognee and claude-mem hit telemetry; research (lessons transfer, raw traces transfer negatively) | `2026-10-04` | DECLINED | **`2026-10-04`, retired on the owner's decision (`506d1fb`, ADR-0036 amended):** the injection and the automatic writers are gone. exec-phase's load step and `record_lessons`, plan-phase's planner memory, army's `retro --write-memory` and the optimizer's memory entries were removed; the optimizer now proposes notes naming where a lesson belongs. `memory record` stays as a command. Reason: the measurement below, against the queue's rule set before the runs. **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O6; `e41cb55`, `f00655b`; harness `154d3a8`, `c3e9970`):** `memory record` (a fixed finding or trace as evidence, a citation, no directive, no duplicate), `record_lessons` routed to planner or executor, the optimizer's `memory_entry`, `uses` telemetry. Harness, 16 reps: the write path and routing work; **no behavioural effect over the controls**, because state.md decisions, summaries and executors reading the repository carried the same knowledge within two phases. The queue's retire rule is met; retire-or-keep is with the owner. PAN's agent-memory layer has a budgeted, cue-scoped read path and almost no writes: 2 of 23 field installs ever wrote an entry. Build the gated write, or retire the layer on a harness result. Queue `memory-optimization-2026-10.md` O6 | A long-horizon run (lesson recorded in phase 1, state.md compacted, behaviour measured in phase 4) shows an effect |
|
|
117
|
+
| MI-096 | **No token countdown in injected context** | Anthropic prompting guidance for Fable 5 (countdowns trigger premature wrap-up) | `2026-10-04` | ADOPTED | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O7; `610b054`):** no figure in the context note; room left measured against the auto-compact point. Harness A/B impossible: `claude -p` runs no status line, so the monitor is blind headless (follow-up: read usage from the transcript). `pan-context-monitor.js` injects remaining-% warnings. It is also measured against the model window, so an auto-compact window below about 65% of it compacts first (Claude `autoCompactWindow`, docs only). Queue `memory-optimization-2026-10.md` O7 | The transcript fallback lands |
|
|
118
|
+
| MI-097 | **Steer the host's compaction summary** | Claude Code "Compact Instructions" in CLAUDE.md; Codex `compact_prompt`; OpenCode `experimental.session.compacting` | `2026-10-04` | ADOPTED (Claude, OpenCode) · SKIP (Codex) | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O8, O12; `c4580f3`, `1e23b86`):** Compact instructions in PAN's CLAUDE.md block; live `/compact` shows the summary follows them. OpenCode plugin pushes the position onto the compaction prompt, loaded live on 1.18.32. Codex `compact_prompt` skipped: it replaces the built-in prompt and the default provider ignores it. PAN re-injects its position after compaction (M10, M33) but says nothing to the summariser. Queue `memory-optimization-2026-10.md` O8; OpenCode with MI-038 as O12 | Codex makes compact_prompt additive |
|
|
119
|
+
| MI-098 | **PAN's instructions loaded twice on Copilot** (AGENTS.md and the CLAUDE.md `@AGENTS.md` import) | Copilot CLI 1.0.91 local probe: both listed as enabled sources | `2026-10-04` | WATCH | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O9; `b570895`):** confirmed — `copilot instruction list` on 1.0.91 enables AGENTS.md and CLAUDE.md as two sources; recorded 1.0.88 sessions show PAN's section twice (~630 bytes per request). No project-side fix; TROUBLESHOOTING gives the `/instructions` toggle. Copilot de-duplicates only identical files and expands `@` imports. Unconfirmed until a `/context` check. Queue `memory-optimization-2026-10.md` O9 **`2026-10-19`:** related new facts: Copilot's hooks reference says the CLI also reads hooks from `.claude/settings.json` and `.claude/settings.local.json` and runs every source, and has done so since 1.0.12 (`2026-03-26`). The same-day reality check found PAN already handles it: every Copilot-registered hook's `.github/hooks` copy defers to a Claude registration of the same script (`deferToClaudeRegistration`, `tests/copilot-hook-dedupe.test.cjs`), so nothing runs twice. `copilot instruction list` on 1.0.98 still enables AGENTS.md and CLAUDE.md as two sources. 1.0.99-0 (prerelease) applies path-specific `.github/instructions` automatically. No de-duplication of AGENTS.md and CLAUDE.md. Holds | Copilot dedupes imported content against a direct source, or lets a repository choose its instruction sources |
|
|
120
|
+
| MI-099 | **Observe the host's own memory store, read-only** | Claude Code memory index limits (200 lines / 25 KB loaded, a size check on each write) | `2026-10-04` | ADAPTED | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O10; `b560fd5`):** hygiene `host-memory`, read-only; field scan flagged two client indexes holding content. MI-010 unchanged. Cross-session memory accumulates in the host: field stores of 274–281 KB, index lines of 1,457 and 3,542 characters. PAN neither reads nor checks them. Observing is compatible with MI-010; owning is not. Queue `memory-optimization-2026-10.md` O10 | — |
|
|
121
|
+
| MI-100 | **A resume-cost benchmark** — stop halfway, start fresh with "continue", count turns and cost | planning-with-files evals (docs/evals.md Test 5) | `2026-10-04` | ADOPTED | **`2026-10-04`, branch `feat/memory-optimization-2026-10` (O11; `7995acd`, `fddae65`):** harness `resume-cost`. Baseline: finished 2 / 2 after "continue" in 12 and 17 turns, $0.44 and $0.62. The harness has no scenario measuring what PAN's state discipline and re-injection are worth; it would be the baseline for MI-091, MI-095, MI-096 and MI-097. Queue `memory-optimization-2026-10.md` O11 | — |
|
|
122
|
+
| MI-101 | **Vector or graph memory stores** for coding agents | claude-mem, mem0, Zep/Graphiti, Cognee, Ruflo, MemPalace, Hindsight, agentmemory | `2026-10-04` | SKIP | ADR-0036 D4 holds with new evidence. Every such tool brings a native or server dependency. The benchmarks are vendor-run, and LoCoMo itself carries 6.4% wrong gold answers with a judge that accepts 62.81% of wrong answers. Files plus grep scored 74.0% (Letta), and grep 0.967 vs hybrid 1.000 on one tool's own coding corpus. Ruflo's self-audit caught a silent fallback to mock embeddings | A dependency-free store with an outcome A/B on coding tasks |
|
|
123
|
+
| MI-102 | **Mask old tool output inside a session** | Research: JetBrains "Complexity Trap" (cost halved, solve rate matched), SWE-agent observation collapsing | `2026-10-04` | WATCH | This is the host's transcript, which PAN cannot shape except through Claude Mods (MI-074) | MI-074 leaving WATCH |
|
|
124
|
+
| MI-103 | **Repository overviews as agent input** | Gloaguen et al., arXiv 2602.11988 (overviews did not help; context files cost +19–23% with no significant success gain) | `2026-10-04` | WATCH | The verifier reads `.planning/codebase/conventions.md` (specifics) and `structure.md` (an overview). Measure before dropping either | A harness A/B with and without the overview |
|
|
125
|
+
| MI-104 | **Behavioural harness runs on every host CLI**: the portable exec-phase chain run on Codex, Copilot, Gemini and OpenCode, not only Claude Code | Hugging Face multi-harness RL study (same weights 62.1/40.0/33.6/33.2% pass@1 across four harnesses, `2026-09-24`), via `/investigate` digest `2026-10-08` | `2026-10-10` | OPEN (plumbing built) | PAN status PARTIAL: `model` steps spawn `claude` only (`harness/src/model.cjs:46-63`); other hosts get model-free discovery gates (MI-071) and one Copilot frontmatter probe. All four CLIs run headless with JSON output on this machine (probed `2026-10-08`). Not yet queued. [Write-up](investigations/features/harness-cross-host-behaviour.md) **`2026-10-10`, branch `feat/memory-optimization-2026-10`, released in `3.34.0` (corrected `2026-10-11`):** model steps take `runtime`; argv for Codex, Copilot, Gemini and OpenCode from each CLI's help; a host with no output parser is refused before anything runs (the spend cap needs its cost). ADR-0047 D4 amended. **Blocked on the owner:** one captured run per host to write its parser, then the paid chain | — |
|
|
126
|
+
| MI-105 | **Debugger reproduces before it theorises**: a command that fails on the reported symptom, run and minimised before any hypothesis, recorded in the session file and reused as the fix's check | `mattpocock/skills` `diagnosing-bugs` (`49dd158`, `2026-10-09`), via `/investigate` digest `2026-10-10` | `2026-10-10` | ADOPTED | PAN status PARTIAL: `pan-debugger` ranks 3+ hypotheses with priors (`agents/pan-debugger.md:131-139`) but checks reproduction only at the end (`:175`). Not yet queued. [Write-up](investigations/features/debugger-red-loop-first.md) **`2026-10-10`, branch `feat/memory-optimization-2026-10`, released in `3.34.0` (corrected `2026-10-11`):** Reproduction section in the session file and the template, Phase 1b before any hypothesis, diagnosis names the command, fix verified by it, native diagnose schema field (`tests/debugger-reproduction.test.cjs`). A recorded `none` with what was tried is allowed: a strong default, not a hard gate | — |
|
|
127
|
+
| MI-106 | **Reviewer code-smell baseline**: twelve named Fowler smells, always INFO, phrased as "possible …", overridden by documented project standards | `mattpocock/skills` `code-review` (`49dd158`, `2026-10-09`), via `/investigate` digest `2026-10-10` | `2026-10-10` | ADOPTED | PAN status PARTIAL: the reviewer's quality table is size thresholds plus duplicate code (`agents/pan-reviewer.md:63-70`); the two-axis split already exists (reviewer and verifier). Not yet queued. [Write-up](investigations/features/reviewer-smell-baseline.md) **`2026-10-10`, branch `feat/memory-optimization-2026-10`, released in `3.34.0` (corrected `2026-10-11`):** the reviewer's Design smells (baseline) table, INFO only, the project wins, Speculative Generality defers to Scope; the meta-reviewer never raises one (`tests/reviewer-smell-baseline.test.cjs`) | — |
|
|
128
|
+
| MI-107 | **Price by prompt length**: a model whose requests over a threshold bill at higher rates (Claude Haiku 5.5: 5x above 100,000 prompt tokens, cache included) | Anthropic pricing page "Long context pricing" (read `2026-10-10`); Claude Code 2.1.293 makes Haiku 5.5 the `haiku` alias | `2026-10-10` | ADOPTED | **`2026-10-10`, branch `feat/memory-optimization-2026-10`, released in `3.34.0` (corrected `2026-10-11`) (M36):** the cost hook and `cost rebuild` record a row's over-threshold requests as `long_prompt`; `computeCost` prices them at the row's `long` rates (`tests/cost-long-prompt.test.cjs`). With M36 (Sonnet 5.5 hits $0.10, not $0.20; renumbered from M35 `2026-10-11`, which is the prompt-style pass in the queue file) and the Haiku 5.5 row, capability row and OpenCode fast tier — see MI-023 | A second model priced by prompt length at another threshold |
|
|
129
|
+
| MI-108 | **Node compile cache for the CLI** | gsd-core v1.16.0 (#5183, `2026-10-05`) | `2026-10-10` | ADOPTED | **`2026-10-10`, branch `feat/memory-optimization-2026-10`, released in `3.34.0` (corrected `2026-10-11`) (M37):** `pan-tools` calls `module.enableCompileCache()` into the per-user 0700 hook directory (never Node's shared default); median `version` call 100 → 66 ms, hooks unchanged at ~48 ms (`tests/compile-cache.test.cjs`). OpenSpec's lazy per-command loading (v1.14.1) held: ~30 ms remains | A measured hot path where module loading dominates |
|
|
130
|
+
| MI-109 | **Stop on the host's usage window, not only on dollars** | Claude Code status-line `rate_limits.five_hour` / `seven_day` (docs, read `2026-10-10`); clodfarm v1.12.0 pauses at 80% of the weekly limit | `2026-10-10` | ADOPTED | **`2026-10-10`, branch `feat/memory-optimization-2026-10`, released in `3.34.0` (corrected `2026-10-11`) (M38):** the status line shows and records the windows; `pan-tools cost limits`; focus-auto stops resumable with `weekly_limit` at `cost.weekly_limit_stop_pct` (default 90), army checks before each mission (`tests/host-limits.test.cjs`). Claude-only, interactive sessions only (`claude -p` runs no status line) | Another runtime exposing usage windows to a hook or status line |
|
|
131
|
+
| MI-110 | **Every subagent spawn names its model** — an omitted model inherits the session's (usually top-tier) model | Superpowers v6.0.0 (`2026-06-16`; "one run put all 26 of its reviewers on the top tier", a vendor observation); open PR #2400 extends it beyond SDD | `2026-10-11` | ADOPTED (`3.35.0`, `18efcb5`; recorded `2026-10-19`) | **`2026-10-19`:** program L4 (`3.35.0`, `18efcb5`) gave every shipped spawn a `model=`, including the `general-purpose` spawns in `discuss-phase.md`, `exec-phase.md`, `plan-phase.md` and `transition.md` (`resolve-model pan-conductor`; the `exec-phase.md` one runs on `{executor_model}`), and the prompt lint (`scripts/prompt-lint.cjs`, `untyped-spawn`) fails a spawn without one. Was: PAN status PARTIAL: most spawns pass a resolved `model=`; the debugger spawn in `workflows/diagnose-issues.md` and the planner/debugger examples in `templates/{planner,debug}-subagent-prompt.md` were fixed by the `2026-10-11` doc audit; the `general-purpose` spawns in `discuss-phase.md`, `exec-phase.md`, `plan-phase.md` and `transition.md` still omit it (the open "general-purpose spawns" code finding). Queue item M39, absorbed by L4 (W1) of `product_excellence_program_2026_q4_featureai.md` | — |
|
|
132
|
+
| MI-111 | **No positional `$N` in command or skill bodies** — Claude Code replaces `$1`… with argument words | Superpowers v7.0.0 notes (#2311) | `2026-10-11` | ADOPTED (`2026-10-11`, working tree) | The doc audit found `$0.00` in `commands/pan/hud.md` and `$0` in `commands/pan/report.md` (so `/pan:hud --open` read "`--open.00`"); both reworded, and `tests/shipped-content-prefix.test.cjs` now fails on any `$<digit>` in a command body. Two command-loaded workflows lost theirs too (`exec-phase.md`, `discuss-phase.md`); whether substitution reaches `@`-included files is unverified | — |
|
|
133
|
+
| MI-112 | **Review Focus in plans** — up to five inputs or failure modes the spec implies but no test exercises, each pinned to a test in the task that owns the code | Superpowers v6.4.1 (`2026-09-19`) | `2026-10-11` | ADOPTED (`2026-10-18`, `a2fa00c`, PR #45; ships in `3.36.0`) | Shipped as program P4 in commit `f427e4f` on `feat/sprint-3b`, squash-merged to `main` as `a2fa00c` (PR #45; release `3.36.0` pending its tag): plans carry `## Review Focus`, checked by `pan-tools verify review-focus`; the plan checker judges it (Dimension 13); the reviewer reads it through `review scope`. Was: PAN status MISSING (no hit in the planner or plan-checker). Verification pillar. Queue item M41; program P4 (W3) | — |
|
|
134
|
+
| MI-113 | **The executor reports concerns, not only done** — a `DONE_WITH_CONCERNS` result, and each deviation recorded with why and its cost if wrong, all listed in the phase report | Superpowers implementer statuses (DONE / DONE_WITH_CONCERNS / NEEDS_CONTEXT / BLOCKED) and "rulings, not stalls" (v6.3.0) | `2026-10-11` | ADOPTED (`2026-10-18`, `a2fa00c`, PR #45; ships in `3.36.0`) | Shipped as program P4 in commit `f427e4f` on `feat/sprint-3b`, squash-merged to `main` as `a2fa00c` (PR #45; release `3.36.0` pending its tag): `## DONE_WITH_CONCERNS` in `agents/pan-executor.md`, cost if wrong on every deviation, `## Concerns` in the summary templates, listed by exec-phase and passed to the reviewer. Was: PAN status PARTIAL: `agents/pan-executor.md` returns `PLAN COMPLETE` or `CHECKPOINT REACHED` and logs deviations in the summary, with no concerns state and no cost-if-wrong field. Queue item M42 | — |
|
|
135
|
+
| MI-114 | **A shipped prompt rule changes only after a failing baseline** — a harness arm without the guidance shows the failure first, five or more reps, variance recorded | Superpowers writing-skills (RED/GREEN/REFACTOR for skills, no-guidance controls); prime-radiant `superpowers-autoresearch` MINE/MICRO/FULL tiers; Quorum's stock arm | `2026-10-11` | OPEN | PAN status PARTIAL: A/B scenarios exist (`harness/scenarios/focus-design-ab-*.json`) but no no-guidance arm and no rule requiring one. The method M35 (prompt-style pass) needs. Queue item M43 **Rule amended `2026-10-12` by the maintainer:** "five or more reps" is replaced by a paired, sequentially tested result (SPRT) or a stated power — at five reps 4/5 passes has a 95% Wilson interval of [0.38, 0.96] (item H3 of the product excellence program). **`2026-10-19`:** the arm is built (program H3, `3.35.0`, `18efcb5`): a scenario declares `arms`, `--arm <id>` runs one, and `quick-mode` carries `no-guidance` (`harness/src/scenario.cjs`, `harness/README.md`); no paid run through it yet and no rule requiring one, so this row stays OPEN | — |
|
|
136
|
+
| MI-115 | **Builder check on the design** — a fresh subagent reads the design as the person who will build it; its questions are sorted into answered / minor (decided and marked) / the user's, asked in one round | Superpowers v7.0.0 (`2026-10-10`) | `2026-10-11` | WATCH | PAN status PARTIAL: the plan-checker's spec-sufficiency dimension checks plans, not the design; discuss-phase asks the user directly. Reported in chat on `2026-10-10`, filed today | A tier-2 plan scenario where the planner guesses at gaps the user would have answered |
|
|
137
|
+
| MI-116 | **Size the work after understanding it** (just do it / agree in chat / design doc) | Superpowers v7.0.0 brainstorming | `2026-10-11` | WATCH | PAN routes by the command the user picks (`/pan:quick`, focus mode, full phases). Reported in chat on `2026-10-10`, filed today | A harness run where the chosen route is mis-sized |
|
|
138
|
+
| MI-117 | **Session post-mortem from transcripts** — parallel analysts (skill timeline, plan adherence, repeated work, cost and time …), every finding cites `path:line`, numbers only from the transcript | Superpowers `diagnosing-superpowers` (v6.4.1) | `2026-10-11` | WATCH | PAN's retro reads `.planning/` only; the transcript readers exist (`cost-rebuild.cjs`, per-agent attribution). Evals pillar | The next field sweep that one command could have replaced |
|
|
139
|
+
| MI-118 | **Reviewer "declined to judge" list** — every behaviour a reviewer set aside is named, not silently skipped | Superpowers `requesting-code-review` template | `2026-10-11` | WATCH | The verifier already lists `not_checked` (MI-064); the review pipeline does not | — (planned: program R2, W3) |
|
|
140
|
+
| MI-119 | Always-on bootstrap skill injected at every start, clear and compact ("check skills before any response") | Superpowers `using-superpowers` (~850 tokens per injection, measured by byte count) | `2026-10-11` | SKIP | Trades progressive disclosure for recall; PAN's commands are explicit and only planning state is re-injected (MI-036) | — |
|
|
141
|
+
| MI-120 | Resume the same implementer for early fix rounds | Superpowers SDD (rounds 1–3 resume, 4–5 fresh one tier up) | `2026-10-11` | SKIP | Conflicts with fresh context per unit of work; PAN's escalation (MI-029) stands | — |
|
|
142
|
+
| MI-121 | Never run implementers in parallel | Superpowers SDD | `2026-10-11` | SKIP | PAN's waves run in parallel behind the planner's file-overlap rule (prose today; V7 of the product excellence program moves it into code) | — |
|
|
143
|
+
| MI-122 | Delete code written before its test, as a universal law | Superpowers test-driven-development | `2026-10-11` | SKIP | PAN's TDD is a plan type (`references/tdd.md`), not a law for every task | — |
|
|
144
|
+
| MI-123 | A branch-finishing menu (merge / PR / keep / typed discard) | Superpowers finishing-a-development-branch | `2026-10-11` | SKIP | The host tools ship merge and PR flows; PAN's merge gate covers the MCP path | — |
|
|
145
|
+
| MI-124 | A model judges every stop | `obra/double-shot-latte` | `2026-10-11` | SKIP | A model call per stop; the stop guard stays deterministic | — |
|
|
146
|
+
| MI-125 | One manifest generates every harness's plugin and tests installs in a container | `prime-radiant-inc/everyharness` (v1.0.0 tag) | `2026-10-11` | SKIP | A generator dependency; PAN's builders and `scripts/test-surface.cjs --check` cover drift, and MI-017 holds | — |
|
|
147
|
+
| MI-126 | A transcript-to-cost library | `prime-radiant-inc/obol` (v0.9.0) | `2026-10-11` | SKIP | Zero dependencies; `cost rebuild` already reads transcripts | — |
|
|
148
|
+
| MI-127 | **Subagent writes to report-like basenames are refused**: Claude Code refuses a subagent's `Write` when the file's basename is `summary.md`, `report.md`, `findings.md` or `analysis.md` ("Subagents should return findings as text, not write report files"), in any case and any directory | gsd-core v1.18.0 (`2026-10-19`; probe on Claude Code 2.1.301, PR #5450) | `2026-10-19` | ADAPTED | PAN status **defect**: `agents/pan-research-synthesizer.md` writes `.planning/research/summary.md` (read by `new-project.md`, `milestone-new.md` and `pan-roadmapper`), and `agents/pan-conductor.md` writes `.planning/orchestration/summary.md`. **Reproduced here on `2026-10-19`:** a subagent in this machine's Claude Code was refused `summary.md`, `SUMMARY.md`, `report.md`, `findings.md` and `analysis.md`, and wrote `01-01-summary.md`, `research-summary.md` and `notes.md`. PAN's numbered plan summaries and quick-task summaries are not affected. gsd-core says its name list may be incomplete and did not find which part of Claude Code refuses. Queue item M44 **`2026-10-19`, M44 built (unreleased):** the synthesizer writes `research-summary.md` and the conductor `orchestration-summary.md`; readers fall back to an older project's `summary.md`; prompt-lint rule `refused-write` fails a shipped write instruction to a refused name (proven red on the five sites first) | — |
|
|
149
|
+
| MI-128 | **Copilot model deprecations reach PAN's recommended-model names** | GitHub changelog (`2026-10-15`): Claude Opus 4.8, Claude Opus 5 and GPT-5.6 Terra deprecated on `2026-11-16` (Opus 5.5, GPT-6.1 Sol or GPT-6 Luna replace them) | `2026-10-19` | ADOPTED | PAN status **stale**: `RECOMMENDED_MODELS.reasoningTier` in `bin/install.js` names `claude-opus-5 / claude-opus-4-8`. The rate rows stay for ledger history (MI-023). Queue item M45 **`2026-10-19`, M45 built (unreleased):** `reasoningTier` names `claude-opus-5-5`, tied by a test to the documented-default fixture | — |
|
|
150
|
+
| MI-129 | **Price Gemini 4 Argon, including its dated price change** | Google Gemini API pricing page (the scout read `$2` input, `$10` output, `$0.10` cached through `2026-11-30`, then `$4`/`$20`/`$0.20` from `2026-12-01`; re-read before encoding); in Copilot CLI from 1.0.98 (`2026-10-14`); Gemini CLI's changelog says it is not optimised for it | `2026-10-19` | ADOPTED | PAN status MISSING: no `gemini-4-argon` row in `cost.cjs`, and the rate table has no dated price change. MI-023's rule applies: priced only with the page cited. Queue item M46 **`2026-10-19`, M46 built (unreleased):** `gemini-4-argon` row from the page read that day ($2.00 / $10.00 / $0.10, 0.05x caching, the one Gemini row off 0.1x); change it on `2026-12-01` | A second model with a scheduled price change (then the table gains an effective-from field) |
|
|
151
|
+
| MI-130 | **Detect a truncated plan file** (an unclosed `<tasks>`, a file ending inside a tag, a leftover continuation marker) | gsd-core v1.18.0 (PR #5436, `2026-10-15`): a ~450-line plan was cut mid-tag while the write reported success | `2026-10-19` | ADOPTED | PAN status MISSING: `verify plan-structure` (`verify.cjs`) has no truncation or unclosed-tag check (grep `truncat`, `unclosed` clean). Queue item M47 **`2026-10-20`:** M47 built on `claude/s13-s14` (unreleased; see the queue row) | — |
|
|
152
|
+
| MI-131 | **Baseline a plan's own verify gates before work**: a read-only grep or count gate that already passes at HEAD, or can never match, is a plan defect | gsd-core v1.18.0 (PR #5436) | `2026-10-19` | ADAPTED | PAN status MISSING: the plan-checker judges `<verify>` steps by reading, never by running them. Only read-only grep and count forms are run (never tests or builds). Related to MI-114 (that covers prompt rules; this covers plan gates). Queue item M48 **`2026-10-20`:** M48 built on `claude/s13-s14` (unreleased; see the queue row) | — |
|
|
153
|
+
| MI-132 | **`disable-model-invocation: true` on emitted Claude skills** so their descriptions stay out of the skill-listing budget | spec-kit v1.2.0 (`--no-model-invocation`, PR #4919, `2026-10-12`); agentic-project-management v1.0.3 (`2026-10-14`); Copilot's custom-agents reference lists the field | `2026-10-19` | ADOPTED | PAN status MISSING (grep clean in `bin/`, `pan-wizard-core/`, `scripts/`). Fits PAN's explicit commands (MI-119) and progressive disclosure. MI-022 applies: confirm on this machine's Claude Code that a marked skill leaves the listing and still runs as `/pan:<name>` before default-on; Claude-only first. Queue item M49 **`2026-10-20`:** M49 built on `claude/s13-s14` (unreleased; see the queue row) | — |
|
|
154
|
+
| MI-133 | **Register a hook only where it can work**: a context monitor only on runtimes with a metrics source | gsd-core v1.17.0 (PR #5389, `2026-10-14`): monitor dropped on seven hosts without a metrics writer, and a test asserts every registered monitor has one | `2026-10-19` | ADOPTED | PAN status PARTIAL: `pan-context-monitor` is registered on Claude, Codex, Gemini and Copilot; its metrics come from the Claude status-line bridge or a Claude-shaped transcript fallback, so on the other three it may run on every tool call and measure nothing. Queue item M50: confirm per runtime, then register or drop **`2026-10-20`:** M50 built on `claude/s13-s14` (unreleased; see the queue row) | — |
|
|
155
|
+
| MI-134 | **`x-` extension keys in config are not unknown keys** | OpenSpec v1.14.2 (`2026-10-15`, a changelog line) | `2026-10-19` | ADOPTED | PAN status MISSING: `unknownConfigKeys()` (`config.cjs`, MI-066) has no escape for user metadata. Queue item M51 **`2026-10-20`:** M51 built on `claude/s13-s14` (unreleased; see the queue row) | — |
|
|
156
|
+
| MI-135 | **A "pre-existing" class for review findings**: a finding on code the change did not touch is tagged pre-existing and recorded as debt, never a blocker | Anthropic "How the Claude Code team does code review" (`2026-10-15`, a vendor practice: Important / Nit / Pre-existing tags, a per-repo `REVIEW.md`, at most three review rounds, re-review of the new diff only, the reviewer run on known-clean PRs, author responses tracked) | `2026-10-19` | ADAPTED | PAN status MISSING: no pre-existing class in `agents/pan-reviewer.md` or the findings ledger (grep clean). The rest of the post is HAVE or WATCH: dispositions (MI-031), the clean twins in the defect corpus, review scope (`3.36.0`), the round cap (MI-139). Queue item M52 **`2026-10-20`:** M52 built on `claude/s13-s14` (unreleased; see the queue row) | — |
|
|
157
|
+
| MI-136 | **Scope-checked state writes**: each `state.md` write declares the fields it must land and the region it may touch; a write outside its scope is refused | gsd-core v1.17.0 StateWriteIntent (PR #4935); no caller uses it yet | `2026-10-19` | WATCH | PAN's state writers are `pan-tools` verbs, not free edits, which removes most of the risk the intent guards | A field or harness case of a state write clobbering another field, or gsd-core migrating its callers |
|
|
158
|
+
| MI-137 | **Fail closed when an artifact lookup matches several files**: block and name every candidate instead of taking the first in directory order | gsd-core v1.18.0 (PR #5392, `2026-10-18`) | `2026-10-19` | WATCH | PAN's phase tooling finds artifacts by suffix (`isSummaryFile()` in `constants.cjs` also accepts a bare `summary.md`); no duplicate-artifact case is recorded | A field or harness case of a stale duplicate artifact being read |
|
|
159
|
+
| MI-138 | **A settled decision gets no new checkpoint** (a recorded decision, an ingested ADR or an answered checkpoint is not asked again) | gsd-core v1.18.0 (PR #5436) | `2026-10-19` | WATCH | PAN records decisions in `state.md` and `decisions` (`3.36.0`); no case of a re-asked decision is recorded | A harness or field run that re-asks a recorded decision |
|
|
160
|
+
| MI-139 | **Cap review rounds and re-review only the new diff** | Anthropic code review post (`2026-10-15`; reported mean reviews to pass fell from 2.08 to 1.32, a vendor measurement) | `2026-10-19` | WATCH | PAN's gap loop and review pipeline have no recorded round count to measure against | A harness or field measurement of verify or review rounds per phase |
|
|
161
|
+
| MI-140 | **Executor reports lose task state** | arXiv 2610.20003 "What Coding Agents Leave Unsaid" (`2026-10-14`): readers with only the agents' reports recovered 52.0% of task-state answers, full-context readers 92.7% (the paper's claim) | `2026-10-19` | WATCH | PAN's next steps read summaries, state and the repository, not the executor's transcript; `DONE_WITH_CONCERNS` (MI-113) narrows the gap. Unmeasured for PAN | A harness scenario scoring what a fresh session can recover from a phase's summaries |
|
|
162
|
+
| MI-141 | **MCP `cache_hint`** in `CallToolResult._meta`, so a server can advise against caching single-pass results | MCP SEP-2419 (open, touched in the window) | `2026-10-19` | WATCH | Touches cache-read economics for PAN's MCP tool results | SEP-2419 accepted and a PAN runtime honouring it |
|
|
163
|
+
| MI-142 | An external token-economizer controller (injects micro-skills, prunes tools, breaks failure loops) | arXiv 2610.22732 "TokenEconomizer" (`2026-10-15`; 18.4–30.9% fewer tokens reported) | `2026-10-19` | SKIP | A research controller sitting in the loop is the control-plane layer of MI-058; PAN's levers are phase budgets, the stall watchdog (MI-075) and escalation (MI-029) | A replication on a PAN runtime |
|
|
164
|
+
| MI-143 | Use the host's PR code-review product as PAN's review step | Claude Code Review generally available (`2026-10-15`; Team and Enterprise, GitHub PRs, Quick / Standard / Deep effort) | `2026-10-19` | SKIP | A GitHub app for one runtime's paid plans; PAN's review runs inside every runtime against `.planning/` | — |
|
|
165
|
+
|
|
166
|
+
## Run log
|
|
167
|
+
|
|
168
|
+
| Date | Window | Mode | Tree | Result |
|
|
169
|
+
|---|---|---|---|---|
|
|
170
|
+
| `2026-09-21` | seeded from the August review, the September plan and its reality-check addendum, ADR-0046 and ADR-0048 | seed | `main` @ `371a76b` (`3.29.0`) | Rows MI-001 to MI-027 record what was already decided |
|
|
171
|
+
| `2026-09-21` | `2026-09-10` → `2026-09-21`, plus a feature-level landscape sweep of the peers (first run) | live, three scouts (host tools · direct peers · entrants+standards+patterns), ~20 min wall clock each | `main` @ `371a76b` (`3.29.0`), Claude Code 2.1.233 on the machine (`stable` 2.1.267, `latest` 2.1.278); no other CLI | Rows MI-028 to MI-059 added; MI-004, MI-009, MI-025, MI-026 re-opened by a fired trigger or a new fact; MI-005, MI-010, MI-015 re-checked and hold. Queue: `market-ideas-2026-09.md` (M1–M18). Count rows with `grep -cE "^\| MI-" docs/specs/market-ideas-ledger.md` |
|
|
172
|
+
| `2026-10-03` | `2026-09-21` → `2026-10-03`, delta only | live, three scouts (host tools · direct peers · entrants+standards+patterns), 20–32 min each in parallel; reported in chat, then written back the same day with `--write` (doctrine 8: every PAN status re-grepped, no re-scan) | `feat/evidence-loop` @ `ab125d4` (`3.32.0`, the tree squash-merged as `main` @ `4cc8132`); Claude Code 2.1.280 (`stable` 2.1.285, `latest` 2.1.288), Codex 0.157.1, Gemini CLI 0.61.0, OpenCode 1.18.32 and Copilot CLI 1.0.88 on the machine; `agy` absent | Rows MI-062 to MI-090 added. MI-015 re-opened by a new fact (Codex cuts Agent Plugin skill bodies at 8,000 bytes); MI-032 and MI-039 corrected to ADOPTED, MI-004 to SKIP on Claude, MI-036 and MI-041 split by runtime; MI-028, MI-030, MI-031, MI-060 and MI-061 shipped in `3.32.0`. WATCH triggers met on this machine for MI-040, MI-044, MI-051 and MI-052 (live checks handed to `/reality-check`; MI-044 re-triaged and held); MI-042's trigger met in letter and refined. Queue: `market-ideas-2026-10.md` (M19–M34). Count rows with `grep -cE "^\| MI-" docs/specs/market-ideas-ledger.md` |
|
|
173
|
+
| `2026-10-04` | topic run: memory (landscape, not a delta) | live, three scouts (host tools · peers and memory tools · research and standards) in parallel, plus read-only measurement of the field installs and one live session-footprint call; written back the same day | `main` @ `9fb1a2d` (`3.33.0`) | Rows MI-091 to MI-103 added. MI-010, MI-057, MI-085 and ADR-0036 D4 re-checked: all hold. Queue: `memory-optimization-2026-10.md` (O1–O12) |
|
|
174
|
+
| `2026-10-10` | `2026-10-03` → `2026-10-10`, delta only | live, three scouts (host tools · direct peers · entrants and standards) in parallel, 4–6 min each; reported in chat; the owner said "do" to the queue, so the built items were written back the same day | `feat/memory-optimization-2026-10` @ `df07f41` (`3.33.0` + unreleased) | Rows MI-107 to MI-109 added; MI-023, MI-104, MI-105, MI-106 updated. The scan's WATCH candidates (builder check, sizing after intent, cited rule packs, RED evidence, state write intents, ReviewBench, `--debug` frontmatter names) were reported in chat and not filed |
|
|
175
|
+
| `2026-10-11` | `2026-10-10` → `2026-10-11` (same-window re-verify) plus a feature-level read of Superpowers (the user asked), then a doc audit and a reality check the same day | live, three scouts (Superpowers inventory · Superpowers releases and ecosystem · one-day delta), 5–9 min each; reported in chat, written back after the reality check | `feat/memory-optimization-2026-10` @ `4994ed5` (`3.34.0`) + the doc audit's working tree | Rows MI-110 to MI-126 added; MI-025, MI-026, MI-038 updated; MI-104 to MI-109 corrected from "unreleased" to released in `3.34.0`, and the rates item renumbered M35 → M36 (M35 is the prompt-style pass). Queue: Addendum in `market-ideas-2026-10.md` (M36–M43, R45–R49). Count rows with `grep -cE "^\| MI-" docs/specs/market-ideas-ledger.md` |
|
|
176
|
+
| `2026-10-12` | owner decisions on the product excellence program | write-back only | `feat/memory-optimization-2026-10` @ `4994ed5` + working tree | MI-058 re-opened (program A1), MI-114 rule amended (program H3), MI-082 updated, MI-025 deferred to the Exposure phase; no rows added |
|
|
177
|
+
| `2026-10-19` | `2026-10-11` → `2026-10-19`, delta only | live, three scouts (host tools · direct peers · entrants and standards) in parallel, 6–9 min each, plus a live probe of the subagent write refusal; reported in chat, written back the same day with `--write` | `claude/quirky-thompson-2c5aa3` @ `127389f` (`3.36.0`, `main` @ `e7d1011` + the unmerged deprecate-sweep fix); Claude Code 2.1.302 (`stable` 2.1.292, `latest` 2.1.303), Codex 0.163.0, Gemini CLI 0.64.0, OpenCode 1.19.3 and Copilot CLI 1.0.98 on the machine; `agy` absent | Rows MI-127 to MI-143 added; MI-001, MI-009, MI-024, MI-027, MI-038, MI-050, MI-074, MI-077, MI-081, MI-083 and MI-098 re-checked (MI-077's trigger refined; MI-074 half met). One live defect (MI-127). Queue: Addendum `2026-10-19` in `market-ideas-2026-10.md` (M44–M52). Count rows with `grep -cE "^\| MI-" docs/specs/market-ideas-ledger.md` |
|