@event4u/agent-config 16.2.0 → 16.4.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +337 -234
- package/README.md +15 -13
- package/agents/templates/.ai-council.yml.example +26 -8
- package/dist/agent-src/commands/analyze/inbox.md +11 -8
- package/dist/agent-src/commands/analyze/roadmap-repos.md +1 -1
- package/dist/agent-src/commands/bug/fix.md +17 -2
- package/dist/agent-src/commands/bug/investigate.md +1 -1
- package/dist/agent-src/commands/commit/in-chunks.md +40 -31
- package/dist/agent-src/commands/commit.md +72 -33
- package/dist/agent-src/commands/condense.md +2 -8
- package/dist/agent-src/commands/council/debate.md +11 -7
- package/dist/agent-src/commands/council/default.md +10 -9
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/estimate-ticket.md +1 -1
- package/dist/agent-src/commands/feature/explore.md +3 -3
- package/dist/agent-src/commands/feature/plan.md +2 -2
- package/dist/agent-src/commands/feature/roadmap.md +1 -1
- package/dist/agent-src/commands/fix/ci.md +18 -4
- package/dist/agent-src/commands/fix/commit-messages.md +48 -23
- package/dist/agent-src/commands/fix/pr-comments.md +3 -6
- package/dist/agent-src/commands/implement-ticket.md +4 -4
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/memory/add.md +4 -16
- package/dist/agent-src/commands/memory/load.md +5 -6
- package/dist/agent-src/commands/memory/promote.md +3 -16
- package/dist/agent-src/commands/mission/upgrade.md +3 -2
- package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
- package/dist/agent-src/commands/optimize/deep.md +4 -2
- package/dist/agent-src/commands/optimize/rtk.md +4 -26
- package/dist/agent-src/commands/pr/create/description-only.md +18 -15
- package/dist/agent-src/commands/pr/create.md +42 -34
- package/dist/agent-src/commands/pr/merge.md +136 -9
- package/dist/agent-src/commands/prepare-for-review.md +13 -11
- package/dist/agent-src/commands/project/analyze.md +7 -35
- package/dist/agent-src/commands/refine-ticket.md +1 -1
- package/dist/agent-src/commands/review/changes.md +14 -19
- package/dist/agent-src/commands/roadmap/create.md +1 -1
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/next.md +10 -1
- package/dist/agent-src/commands/roadmap/process-full.md +56 -42
- package/dist/agent-src/commands/roadmap/resolve-blockers.md +411 -0
- package/dist/agent-src/commands/roadmap/triage-parked.md +325 -0
- package/dist/agent-src/commands/roadmap.md +18 -4
- package/dist/agent-src/commands/tests/create.md +17 -3
- package/dist/agent-src/commands/tests/execute.md +22 -5
- package/dist/agent-src/commands/worktree/create.md +7 -3
- package/dist/agent-src/commands/worktree/verify.md +2 -1
- package/dist/agent-src/contexts/authority/decision-revisit-gate-enforcement.md +43 -0
- package/dist/agent-src/contexts/communication/rules-auto/design-fidelity-enforcement.md +24 -0
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
- package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +7 -7
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
- package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
- package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
- package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +99 -54
- package/dist/agent-src/contexts/execution/session-canary-enforcement-history.md +67 -0
- package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
- package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
- package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +95 -7
- package/dist/agent-src/contexts/subagent-configuration.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
- package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
- package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
- package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
- package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
- package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
- package/dist/agent-src/guidelines/php/git.md +15 -2
- package/dist/agent-src/rules/active-remediation.md +1 -2
- package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
- package/dist/agent-src/rules/architecture.md +0 -1
- package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
- package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
- package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
- package/dist/agent-src/rules/autonomous-execution.md +1 -1
- package/dist/agent-src/rules/brand-consistency.md +0 -1
- package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
- package/dist/agent-src/rules/broken-access-control.md +1 -1
- package/dist/agent-src/rules/cli-output-handling.md +0 -1
- package/dist/agent-src/rules/code-comment-discipline.md +0 -1
- package/dist/agent-src/rules/code-provenance.md +0 -1
- package/dist/agent-src/rules/command-suggestion-policy.md +1 -1
- package/dist/agent-src/rules/commit-conventions.md +1 -2
- package/dist/agent-src/rules/communication-through-line.md +1 -2
- package/dist/agent-src/rules/content-quoting-floor.md +1 -2
- package/dist/agent-src/rules/context-hygiene.md +6 -6
- package/dist/agent-src/rules/copilot-routing.md +1 -2
- package/dist/agent-src/rules/council-availability.md +4 -4
- package/dist/agent-src/rules/cross-source-consistency.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +17 -35
- package/dist/agent-src/rules/delegation-policy.md +2 -3
- package/dist/agent-src/rules/design-fidelity.md +12 -16
- package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
- package/dist/agent-src/rules/devcontainer-routing.md +1 -2
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
- package/dist/agent-src/rules/docker-commands.md +0 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
- package/dist/agent-src/rules/domain-safety-disclaimer.md +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +1 -1
- package/dist/agent-src/rules/domain-safety-retention.md +1 -1
- package/dist/agent-src/rules/downstream-changes.md +0 -1
- package/dist/agent-src/rules/engineering-safety-floor.md +1 -1
- package/dist/agent-src/rules/evaluator-independence.md +3 -2
- package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
- package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
- package/dist/agent-src/rules/fast-path-marker-visibility.md +2 -2
- package/dist/agent-src/rules/finance-safety-floor.md +1 -1
- package/dist/agent-src/rules/fix-what-you-see.md +6 -32
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
- package/dist/agent-src/rules/git-history-discipline.md +2 -2
- package/dist/agent-src/rules/guidelines.md +0 -1
- package/dist/agent-src/rules/history-discipline.md +0 -1
- package/dist/agent-src/rules/icon-consistency.md +0 -1
- package/dist/agent-src/rules/image-likeness-and-rights.md +1 -1
- package/dist/agent-src/rules/improve-before-implement.md +0 -1
- package/dist/agent-src/rules/invite-challenge.md +0 -1
- package/dist/agent-src/rules/laravel-routing.md +1 -2
- package/dist/agent-src/rules/laravel-translations.md +0 -1
- package/dist/agent-src/rules/legal-safety-floor.md +3 -3
- package/dist/agent-src/rules/lethal-trifecta-guard.md +1 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -1
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
- package/dist/agent-src/rules/media-governance-routing.md +13 -17
- package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
- package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
- package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
- package/dist/agent-src/rules/missing-tool-handling.md +0 -1
- package/dist/agent-src/rules/model-recommendation.md +0 -1
- package/dist/agent-src/rules/neighbour-precedence.md +64 -0
- package/dist/agent-src/rules/no-attribution-footers.md +0 -1
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
- package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
- package/dist/agent-src/rules/no-roadmap-references.md +0 -1
- package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
- package/dist/agent-src/rules/onboarding-gate.md +0 -1
- package/dist/agent-src/rules/output-discipline.md +0 -1
- package/dist/agent-src/rules/package-ci-checks.md +0 -1
- package/dist/agent-src/rules/persona-governance.md +4 -5
- package/dist/agent-src/rules/php-coding.md +0 -1
- package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
- package/dist/agent-src/rules/preservation-guard.md +0 -1
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -4
- package/dist/agent-src/rules/question-not-instruction.md +1 -1
- package/dist/agent-src/rules/reviewer-awareness.md +0 -1
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +4 -7
- package/dist/agent-src/rules/role-mode-adherence.md +0 -1
- package/dist/agent-src/rules/rule-type-governance.md +0 -1
- package/dist/agent-src/rules/runtime-safety.md +1 -1
- package/dist/agent-src/rules/scale-discipline.md +0 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +3 -3
- package/dist/agent-src/rules/self-repair-loop.md +0 -1
- package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
- package/dist/agent-src/rules/session-canary.md +7 -62
- package/dist/agent-src/rules/settings-ask-protocol.md +6 -6
- package/dist/agent-src/rules/size-enforcement.md +0 -1
- package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
- package/dist/agent-src/rules/skill-quality.md +0 -1
- package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
- package/dist/agent-src/rules/source-confidentiality.md +1 -1
- package/dist/agent-src/rules/source-discovery-gate.md +0 -1
- package/dist/agent-src/rules/source-of-truth.md +0 -1
- package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
- package/dist/agent-src/rules/symfony-routing.md +1 -2
- package/dist/agent-src/rules/think-before-action.md +0 -1
- package/dist/agent-src/rules/token-budget-discipline.md +12 -46
- package/dist/agent-src/rules/token-efficiency.md +0 -1
- package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
- package/dist/agent-src/rules/tool-safety.md +1 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +1 -1
- package/dist/agent-src/rules/upstream-proposal.md +0 -1
- package/dist/agent-src/rules/user-interaction.md +0 -1
- package/dist/agent-src/rules/user-interrupt-priority.md +1 -1
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
- package/dist/agent-src/scripts/deferral_carry.ts +339 -0
- package/dist/agent-src/scripts/gate_budget.ts +47 -23
- package/dist/agent-src/scripts/gate_execute.ts +12 -4
- package/dist/agent-src/scripts/update_roadmap_progress.ts +4 -1
- package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
- package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
- package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
- package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
- package/dist/agent-src/skills/api-design/data/manifest.json +2 -2
- package/dist/agent-src/skills/api-testing/SKILL.md +17 -0
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +14 -2
- package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
- package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
- package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
- package/dist/agent-src/skills/database/data/manifest.json +2 -2
- package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
- package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +2 -2
- package/dist/agent-src/skills/fe-design/SKILL.md +1 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
- package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
- package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
- package/dist/agent-src/skills/iconography/SKILL.md +1 -1
- package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +2 -2
- package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +11 -1
- package/dist/agent-src/skills/quality-tools/references/go-tools.md +76 -0
- package/dist/agent-src/skills/quality-tools/references/python-tools.md +104 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +5 -3
- package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +3 -3
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +4 -2
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +7 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +17 -0
- package/dist/agent-src/skills/test-performance/SKILL.md +19 -1
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +2 -2
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agent-settings.md +46 -129
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/roadmaps.md +6 -1
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +48 -6
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
- package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
- package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
- package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
- package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/dist/agent-src/templates/skill.md +1 -1
- package/dist/cli/registry.js +2 -1
- package/dist/cli-delegate/archive_completed_roadmaps.js +92 -12
- package/dist/cli-delegate/check_update_banner.js +207 -120
- package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
- package/dist/cli-delegate/{chunk-FP36SWJD.js → chunk-5GPULQBE.js} +2797 -338
- package/dist/cli-delegate/{chunk-IGD6ERX6.js → chunk-6SRJTYJS.js} +42 -176
- package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
- package/dist/cli-delegate/{chunk-M2DPGFZ4.js → chunk-6V6TA25H.js} +22 -152
- package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
- package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
- package/dist/cli-delegate/chunk-7IQE3D5S.js +191 -0
- package/dist/cli-delegate/{chunk-YJ72UIAK.js → chunk-AED2VQGM.js} +1245 -249
- package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
- package/dist/cli-delegate/chunk-DEIV7XP7.js +108 -0
- package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
- package/dist/cli-delegate/chunk-F3QDG2GT.js +2569 -0
- package/dist/cli-delegate/{chunk-6KFEC3G7.js → chunk-G5VVIZRC.js} +3 -3
- package/dist/cli-delegate/{chunk-FC75PGJE.js → chunk-H76PHZBI.js} +149 -61
- package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
- package/dist/cli-delegate/chunk-JQOM7TTM.js +1201 -0
- package/dist/cli-delegate/chunk-KB5FZ655.js +208 -0
- package/dist/cli-delegate/{chunk-7RQP4UDH.js → chunk-KR6EM23A.js} +235 -1455
- package/dist/cli-delegate/{chunk-LTYVIY76.js → chunk-KXXWJTDO.js} +6 -11
- package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
- package/dist/cli-delegate/{chunk-6KM6ORRY.js → chunk-MDPPKQCQ.js} +58 -9
- package/dist/cli-delegate/{chunk-4XFP2Y3E.js → chunk-MSUL5NYP.js} +5 -5
- package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
- package/dist/cli-delegate/{chunk-4E2W63DA.js → chunk-OKJUIAPS.js} +62 -1
- package/dist/cli-delegate/{chunk-QAJS5YWY.js → chunk-PHD7OOLE.js} +2 -1
- package/dist/cli-delegate/{chunk-P6ZHP5W2.js → chunk-PWX7CKMD.js} +4 -4
- package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
- package/dist/cli-delegate/{chunk-7XGBX6ZH.js → chunk-T7XSJSUQ.js} +1144 -589
- package/dist/cli-delegate/chunk-ULQRUR23.js +208 -0
- package/dist/cli-delegate/chunk-WQWXGIWB.js +1779 -0
- package/dist/cli-delegate/{chunk-RGNIWTEA.js → chunk-XQTPXKFA.js} +1 -1
- package/dist/cli-delegate/{chunk-NUHLI2RX.js → chunk-YCU3TIXH.js} +2 -0
- package/dist/cli-delegate/chunk-ZBZV2G5R.js +210 -0
- package/dist/cli-delegate/{chunk-WGXTVKCQ.js → chunk-ZUZKZYCN.js} +5 -3
- package/dist/cli-delegate/cmd_analyze_session.js +223 -43
- package/dist/cli-delegate/cmd_brand_status.js +3 -2
- package/dist/cli-delegate/cmd_conformance.js +1252 -249
- package/dist/cli-delegate/cmd_converge.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +19 -9
- package/dist/cli-delegate/cmd_doctor_neighbours.js +30 -0
- package/dist/cli-delegate/cmd_explain.js +45 -21
- package/dist/cli-delegate/cmd_export.js +13 -10
- package/dist/cli-delegate/cmd_fleet.js +3 -3
- package/dist/cli-delegate/cmd_git_convention.js +1851 -0
- package/dist/cli-delegate/cmd_handoff.js +44 -22
- package/dist/cli-delegate/cmd_mcp_available.js +3 -2
- package/dist/cli-delegate/cmd_memory_get.js +3 -1
- package/dist/cli-delegate/cmd_migrate.js +3 -3
- package/dist/cli-delegate/cmd_packs_active.js +5 -4
- package/dist/cli-delegate/cmd_preflight.js +6 -6
- package/dist/cli-delegate/cmd_prune.js +14 -11
- package/dist/cli-delegate/cmd_refresh.js +2 -1
- package/dist/cli-delegate/cmd_route_audit.js +10 -8
- package/dist/cli-delegate/cmd_route_explain.js +4 -4
- package/dist/cli-delegate/cmd_session_recycle.js +10 -7
- package/dist/cli-delegate/cmd_settings_check.js +54 -7
- package/dist/cli-delegate/cmd_settings_get.js +18 -8
- package/dist/cli-delegate/cmd_settings_migrate.js +13 -10
- package/dist/cli-delegate/cmd_settings_set.js +4 -4
- package/dist/cli-delegate/cmd_sync.js +14 -11
- package/dist/cli-delegate/cmd_uninstall.js +15 -12
- package/dist/cli-delegate/cmd_update.js +7 -7
- package/dist/cli-delegate/cmd_upgrade.js +9 -8
- package/dist/cli-delegate/cmd_validate.js +15 -12
- package/dist/cli-delegate/cmd_versions.js +5 -5
- package/dist/cli-delegate/deferral_carry.js +16 -0
- package/dist/cli-delegate/gate_budget.js +1 -1
- package/dist/cli-delegate/gate_execute.js +3 -3
- package/dist/cli-delegate/roadmap_gates.js +6 -6
- package/dist/cli-delegate/update_roadmap_progress.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +232 -141
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +26 -9
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +7 -4
- package/dist/hooks/dispatch.js +5655 -6623
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/install/claudePathsPlan.js +47 -6
- package/dist/install/claudeRuleRewrite.js +7 -0
- package/dist/install/emit_host_rules_cli.js +39 -36
- package/dist/install/globalRuleScope.js +87 -0
- package/dist/install/host_rule_ownership.js +160 -0
- package/dist/install/install.mjs +2336 -1249
- package/dist/install/installThinLayer.js +289 -0
- package/dist/install/installedRuleLinks.js +262 -0
- package/dist/install/wizard-plan.js +24 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
- package/dist/mcp/registry-manifest.json +5 -5
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +36504 -30986
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +26 -120
- package/dist/scripts/_lib/claude_settings_hooks.js +10 -8
- package/dist/scripts/_lib/compile_time_toggles.js +12 -21
- package/dist/scripts/_lib/git_convention.js +232 -0
- package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
- package/dist/scripts/_lib/installed_layer.js +704 -0
- package/dist/scripts/_lib/lean_projection_mode.js +218 -15
- package/dist/scripts/_lib/package_root.js +68 -0
- package/dist/scripts/_lib/rule_consequence_class.js +45 -0
- package/dist/scripts/_lib/rule_injection.js +67 -10
- package/dist/scripts/_lib/rule_law_section.js +122 -0
- package/dist/scripts/_lib/settings_removed_keys.js +168 -0
- package/dist/scripts/_lib/thin_rules.js +535 -0
- package/dist/scripts/_lib/windsurf_render.js +60 -0
- package/dist/scripts/condense.js +14 -26
- package/dist/scripts/project_thin_rules.js +14 -294
- package/dist/server/app.js +2 -1
- package/dist/server/gitKeysGate.js +105 -0
- package/dist/server/routes/settings.js +67 -8
- package/dist/server/routes/wizard.js +4 -0
- package/dist/server/schemas/settings.js +29 -81
- package/dist/shared/skillRanking.js +103 -16
- package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
- package/dist/ui/index.html +1 -1
- package/docs/MIGRATION.md +72 -1
- package/docs/contracts/settings-classes.md +39 -67
- package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
- package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
- package/docs/guidelines/agent-infra/layered-settings.md +13 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
- package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
- package/docs/guidelines/php/git.md +15 -2
- package/package.json +1 -1
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
- package/src/agent-src/scripts/deferral_carry.ts +339 -0
- package/src/agent-src/scripts/gate_budget.ts +47 -23
- package/src/agent-src/scripts/gate_execute.ts +12 -4
- package/src/agent-src/scripts/update_roadmap_progress.ts +4 -1
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
- package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +48 -6
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
- package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
- package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
- package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/src/config/agent-settings.template.yml +141 -334
- package/src/config/agents-paths.yml +16 -0
- package/src/config/assurance-capability-registry.json +7 -3
- package/src/config/ci-local-parity.yml +3 -0
- package/src/config/continuity-surface.json +10 -3
- package/src/config/discovery/packs.yml +17 -1
- package/src/config/evaluator-budgets.json +23 -10
- package/src/config/gate-coverage.yml +138 -3
- package/src/config/gate-violation-baselines.json +64 -16
- package/src/config/gitignore-block.txt +19 -0
- package/src/config/hook-bundle-budget.json +25 -0
- package/src/config/hook-token-budget.json +6 -1
- package/src/config/host-instruction-limits.json +33 -0
- package/src/config/release-gate-locality.yml +2 -1
- package/src/config/routing-coverage-seed.json +67 -4
- package/src/config/rule-activation-census.json +7 -3
- package/src/config/rule-consequence-class.json +161 -0
- package/src/config/rule-law-ceilings.json +105 -0
- package/src/config/rule-obligations.json +833 -0
- package/src/install/claudePathsPlan.ts +46 -4
- package/src/install/claudeRuleRewrite.ts +10 -1
- package/src/install/emit_host_rules_cli.ts +43 -34
- package/src/install/globalRuleScope.ts +109 -0
- package/src/install/host_rule_ownership.ts +170 -0
- package/src/install/installThinLayer.ts +378 -0
- package/src/install/installedRuleLinks.ts +308 -0
- package/src/install/wizard-plan.ts +24 -0
- package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
- package/src/scripts/_cli/cmd_conformance.ts +13 -2
- package/src/scripts/_cli/cmd_doctor.ts +33 -81
- package/src/scripts/_cli/cmd_doctor_neighbours.ts +426 -0
- package/src/scripts/_cli/cmd_explain.ts +72 -14
- package/src/scripts/_cli/cmd_git_convention.ts +637 -0
- package/src/scripts/_cli/cmd_settings_check.ts +66 -8
- package/src/scripts/_cli/cmd_settings_get.ts +18 -3
- package/src/scripts/_cli/doctor_execution.ts +72 -1
- package/src/scripts/_dispatch.bash +53 -4
- package/src/scripts/_lib/agent_settings.ts +26 -124
- package/src/scripts/_lib/blocked_by_marker.ts +1 -1
- package/src/scripts/_lib/claude_settings_hooks.ts +10 -8
- package/src/scripts/_lib/compile_time_toggles.ts +12 -21
- package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
- package/src/scripts/_lib/estate_offsets.ts +241 -0
- package/src/scripts/_lib/exemption_shape.ts +143 -0
- package/src/scripts/_lib/fnv.ts +23 -0
- package/src/scripts/_lib/foreign_scan.ts +106 -0
- package/src/scripts/_lib/git_base_ref.ts +92 -0
- package/src/scripts/_lib/git_convention.ts +291 -0
- package/src/scripts/_lib/git_convention_carrier.ts +389 -0
- package/src/scripts/_lib/git_convention_grammar.ts +246 -0
- package/src/scripts/_lib/git_convention_measure.ts +344 -0
- package/src/scripts/_lib/gitignore_block.ts +314 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +106 -0
- package/src/scripts/_lib/graph_feeder_record.ts +437 -0
- package/src/scripts/_lib/hook_settings.ts +73 -0
- package/src/scripts/_lib/host_capability.ts +40 -19
- package/src/scripts/_lib/host_hook_merge.ts +165 -0
- package/src/scripts/_lib/installed_layer.ts +963 -0
- package/src/scripts/_lib/json_merge.ts +82 -0
- package/src/scripts/_lib/json_pointers.ts +93 -11
- package/src/scripts/_lib/knowledge_global.ts +14 -1
- package/src/scripts/_lib/lean_projection_mode.ts +275 -15
- package/src/scripts/_lib/machine_wake.ts +16 -3
- package/src/scripts/_lib/module_reach.ts +456 -0
- package/src/scripts/_lib/neighbour_census.ts +760 -0
- package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
- package/src/scripts/_lib/neighbour_scan.ts +122 -0
- package/src/scripts/_lib/neighbour_tool_use.ts +187 -0
- package/src/scripts/_lib/prompt_shape.ts +46 -0
- package/src/scripts/_lib/ratification_artifact.ts +220 -1
- package/src/scripts/_lib/ratification_subject.ts +92 -0
- package/src/scripts/_lib/release_findings_ingest.ts +15 -7
- package/src/scripts/_lib/release_highlights.ts +5 -0
- package/src/scripts/_lib/release_migration_gate.ts +19 -3
- package/src/scripts/_lib/reserved_name_sweep.ts +73 -0
- package/src/scripts/_lib/review_coverage.ts +134 -0
- package/src/scripts/_lib/rule_consequence_class.ts +71 -0
- package/src/scripts/_lib/rule_injection.ts +130 -10
- package/src/scripts/_lib/rule_law_section.ts +147 -0
- package/src/scripts/_lib/rule_layer_overlap.ts +58 -0
- package/src/scripts/_lib/rule_obligations.ts +205 -0
- package/src/scripts/_lib/self_repair.ts +1 -1
- package/src/scripts/_lib/settings_removed_keys.ts +173 -0
- package/src/scripts/_lib/skill_origin.ts +254 -0
- package/src/scripts/_lib/structured_ask.ts +64 -21
- package/src/scripts/_lib/test_red_state.ts +5 -0
- package/src/scripts/_lib/thin_rules.ts +620 -0
- package/src/scripts/_lib/touched_file_quality.ts +570 -0
- package/src/scripts/_lib/turn_end_refusals.ts +77 -2
- package/src/scripts/_lib/windsurf_render.ts +63 -0
- package/src/scripts/_lib/worker_budget.ts +1 -1
- package/src/scripts/adr/regenerate_index.ts +16 -1
- package/src/scripts/ai_council/cli_call_budget.ts +13 -5
- package/src/scripts/ai_council/clients.ts +26 -57
- package/src/scripts/ai_council/config.ts +8 -8
- package/src/scripts/ai_council/modification_review.ts +100 -0
- package/src/scripts/ai_council/modification_review_questions.ts +90 -0
- package/src/scripts/ai_council/orchestrator.ts +5 -5
- package/src/scripts/ai_council/spend_gate.ts +18 -7
- package/src/scripts/ai_council/vendor_defaults.ts +45 -0
- package/src/scripts/ai_team/config.ts +11 -16
- package/src/scripts/audit_skill_overlap.ts +261 -0
- package/src/scripts/audit_user_type_axis.ts +20 -8
- package/src/scripts/before_complete_hook.ts +243 -12
- package/src/scripts/bench_ab_clone.ts +1 -2
- package/src/scripts/bench_concern_spawn_path.ts +129 -0
- package/src/scripts/bench_graph_feeder_latency.ts +584 -0
- package/src/scripts/bench_touched_file_quality.ts +238 -0
- package/src/scripts/check_agent_artifact_location.ts +36 -0
- package/src/scripts/check_branch_freshness.ts +147 -24
- package/src/scripts/check_enforcement_coverage.ts +130 -0
- package/src/scripts/check_enforcement_matrix.ts +377 -20
- package/src/scripts/check_estate_count.ts +130 -153
- package/src/scripts/check_evaluator_budgets.ts +4 -0
- package/src/scripts/check_finding_dispositions.ts +196 -21
- package/src/scripts/check_gate_coverage.ts +4 -3
- package/src/scripts/check_gate_reachability.ts +48 -1
- package/src/scripts/check_generator_sync.ts +48 -0
- package/src/scripts/check_hook_bundle_composition.ts +477 -0
- package/src/scripts/check_kernel_edit_ratified.ts +132 -14
- package/src/scripts/check_memory.ts +7 -1
- package/src/scripts/check_pack_size.ts +1 -1
- package/src/scripts/check_release_highlights.ts +10 -0
- package/src/scripts/check_release_manifest_content.ts +189 -0
- package/src/scripts/check_release_pr_shape.ts +38 -15
- package/src/scripts/check_standing_rule_delivery.ts +129 -13
- package/src/scripts/check_suppression_hygiene.ts +2 -5
- package/src/scripts/check_verify_expectation_delta.ts +521 -0
- package/src/scripts/ci_settle.ts +42 -5
- package/src/scripts/classify_merge_risk.ts +320 -0
- package/src/scripts/closure_scan.ts +91 -1
- package/src/scripts/code_graph/detect.ts +127 -7
- package/src/scripts/code_graph/foreign.ts +194 -0
- package/src/scripts/code_graph/query.ts +217 -4
- package/src/scripts/code_graph/types.ts +26 -2
- package/src/scripts/code_graph/validate.ts +3 -1
- package/src/scripts/code_graph/verbs.ts +103 -0
- package/src/scripts/command_suggester/settings.ts +8 -108
- package/src/scripts/command_suggester/types.ts +4 -5
- package/src/scripts/compile_hook_manifest.ts +33 -1
- package/src/scripts/condense.ts +14 -27
- package/src/scripts/consumer_matrix.ts +102 -0
- package/src/scripts/context_hygiene_hook.ts +13 -23
- package/src/scripts/cost/preflight.mjs +12 -1
- package/src/scripts/council_cli.ts +7 -7
- package/src/scripts/dispatch_r2_reviewer.ts +24 -11
- package/src/scripts/estate_exemption_shape.ts +202 -0
- package/src/scripts/explain_run.ts +8 -13
- package/src/scripts/generate_git_convention_grammar.ts +127 -0
- package/src/scripts/generate_host_cost_table.ts +21 -4
- package/src/scripts/handoff_context_hook.ts +86 -37
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +175 -15
- package/src/scripts/hooks/block_config_weakening.ts +115 -7
- package/src/scripts/hooks/block_plumbing_writes.ts +37 -5
- package/src/scripts/hooks/code_graph_context_hook.ts +252 -23
- package/src/scripts/hooks/concern_failure_policy.ts +280 -0
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
- package/src/scripts/hooks/dispatch_hook.ts +52 -52
- package/src/scripts/hooks/evidence_independence.ts +12 -4
- package/src/scripts/hooks/exit_codes.ts +2 -1
- package/src/scripts/hooks/host_lowering.json +1 -1
- package/src/scripts/hooks/host_lowering.ts +19 -1
- package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
- package/src/scripts/hooks/one_question_per_ask_hook.ts +41 -25
- package/src/scripts/hooks/payload_stub.ts +10 -1
- package/src/scripts/hooks/push_settle_hook.ts +4 -3
- package/src/scripts/hooks/rule_inject_hook.ts +795 -60
- package/src/scripts/hooks/state_io.ts +8 -4
- package/src/scripts/hooks/table_fingerprint.ts +21 -0
- package/src/scripts/hooks/telemetry_usage_hook.ts +24 -7
- package/src/scripts/hooks/turn_end_gate_hook.ts +85 -0
- package/src/scripts/hooks_status.ts +112 -0
- package/src/scripts/injection_scan_hook.ts +7 -0
- package/src/scripts/install-hooks.sh +42 -14
- package/src/scripts/install.ts +78 -215
- package/src/scripts/installed_layer_report.ts +103 -0
- package/src/scripts/language_mirror_hook.ts +15 -6
- package/src/scripts/learning_sidecar.ts +119 -8
- package/src/scripts/lint_blocker_citations.ts +198 -0
- package/src/scripts/lint_evidence_artifacts.ts +9 -0
- package/src/scripts/lint_hook_concern_budget.ts +10 -21
- package/src/scripts/lint_hook_manifest.ts +53 -0
- package/src/scripts/lint_major_migration_sections.ts +156 -26
- package/src/scripts/lint_pack_boundaries.ts +465 -29
- package/src/scripts/lint_roadmap_blockers.ts +282 -29
- package/src/scripts/lint_roadmap_complexity.ts +4 -2
- package/src/scripts/lint_rule_law_section.ts +647 -0
- package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
- package/src/scripts/lint_settings_classes.ts +1 -1
- package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
- package/src/scripts/lint_workflow_security.ts +173 -6
- package/src/scripts/mcp_server/consumer_tool_catalog.json +53 -0
- package/src/scripts/mcp_server/graph_tools.ts +72 -3
- package/src/scripts/measure_routing_signal.ts +54 -16
- package/src/scripts/measure_skill_ranker_baseline.ts +221 -8
- package/src/scripts/memory_learn_hook.ts +91 -6
- package/src/scripts/model_rule_injection.ts +55 -8
- package/src/scripts/onboarding_gate_hook.ts +7 -6
- package/src/scripts/print_required_checks.ts +15 -3
- package/src/scripts/probe_host_compliance.ts +33 -5
- package/src/scripts/probe_turnaround.ts +183 -3
- package/src/scripts/project_thin_rules.ts +34 -327
- package/src/scripts/ratification_header.ts +77 -0
- package/src/scripts/refusal_envelope.ts +138 -0
- package/src/scripts/release_publication.ts +29 -3
- package/src/scripts/report_dispatch_import_closure.ts +76 -0
- package/src/scripts/report_evidence_temperature.ts +657 -0
- package/src/scripts/report_installed_rule_links.ts +274 -0
- package/src/scripts/report_label_agreement.ts +233 -0
- package/src/scripts/report_module_reach.ts +212 -0
- package/src/scripts/report_obligation_mechanism.ts +228 -0
- package/src/scripts/report_parked_blockers.ts +222 -0
- package/src/scripts/report_required_checks_drift.ts +196 -0
- package/src/scripts/report_single_token_triggers.ts +277 -0
- package/src/scripts/report_skill_ranker_confusion.ts +543 -0
- package/src/scripts/report_standing_payload_by_host.ts +188 -15
- package/src/scripts/report_verification_record_coverage.ts +306 -0
- package/src/scripts/routing_doctor.ts +2 -2
- package/src/scripts/rule_activation_census.ts +5 -2
- package/src/scripts/rule_trigger_eval.ts +9 -9
- package/src/scripts/schemas/agent-settings.schema.json +17 -31
- package/src/scripts/schemas/command.schema.json +1 -1
- package/src/scripts/schemas/review-findings.schema.json +3 -2
- package/src/scripts/schemas/rule.schema.json +5 -0
- package/src/scripts/schemas/skill.schema.json +1 -1
- package/src/scripts/self_review_gate.ts +101 -9
- package/src/scripts/skill_tools/score_skill_relevance.ts +314 -40
- package/src/scripts/sweep_skill_ranker_signals.ts +129 -0
- package/src/scripts/sync_gitignore.ts +29 -235
- package/src/scripts/sync_pr_branch.ts +403 -132
- package/src/scripts/trigger_eval_grandfather.json +0 -21
- package/src/server/schemas/settings.ts +42 -176
- package/src/shared/skillRanking.ts +169 -14
- package/dist/cli-delegate/chunk-5R7HOLAF.js +0 -99
- package/dist/cli-delegate/chunk-JNMVLWLR.js +0 -4457
- package/dist/cli-delegate/chunk-YDPILCOL.js +0 -152
- package/src/scripts/_lib/config_chain.ts +0 -477
- package/src/scripts/_lib/conformance_report.ts +0 -403
- package/src/scripts/_lib/eval_discrimination.ts +0 -95
- package/src/scripts/_lib/evaluator_promotion.ts +0 -225
- package/src/scripts/_lib/file_slicer.ts +0 -117
- package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
- package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
- package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
- package/src/scripts/_lib/role_split.ts +0 -338
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: high
|
|
3
|
+
name: roadmap-triage-parked
|
|
4
|
+
pack: product-basic
|
|
5
|
+
visibility: internal
|
|
6
|
+
cluster: roadmap
|
|
7
|
+
sub: triage-parked
|
|
8
|
+
skills: [roadmap-management, roadmap-writing, decision-review, agent-docs-writing]
|
|
9
|
+
description: Drain later/ and skipped/ — verify each parked roadmap against the current tree, run its resume condition, then promote, absorb, archive, or re-park it with a fresh reason.
|
|
10
|
+
argument-hint: "[<file> | later | skipped | all] [--batch <n>] [--triage-only]"
|
|
11
|
+
suggestion:
|
|
12
|
+
eligible: false
|
|
13
|
+
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /roadmap:triage-parked name; not independently suggested (surface-consolidation)."
|
|
14
|
+
workspaces:
|
|
15
|
+
- agent-config-maintainer
|
|
16
|
+
packs:
|
|
17
|
+
- meta
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# /roadmap:triage-parked
|
|
21
|
+
|
|
22
|
+
Drain sub of the [`/roadmap`](../roadmap.md) cluster. `later/` and `skipped/`
|
|
23
|
+
are excluded from the dashboard and from every `/roadmap:process-*` run, so
|
|
24
|
+
nothing ever looks at them again unless asked. A parked roadmap is a **frozen
|
|
25
|
+
claim about a tree that has since moved**: its resume condition may have fired
|
|
26
|
+
weeks ago, its open steps may have shipped under another roadmap, its skip
|
|
27
|
+
reason may no longer hold. This command re-reads them against the current tree
|
|
28
|
+
and gives every file a decision, so the two folders shrink instead of rotting.
|
|
29
|
+
|
|
30
|
+
It is the [`/analyze:inbox`](../analyze/inbox.md) discipline applied to the
|
|
31
|
+
roadmap estate's own back room: verify every claim, prefer "already shipped" as
|
|
32
|
+
the most valuable finding, and never let a file leave the run without a named
|
|
33
|
+
disposition.
|
|
34
|
+
|
|
35
|
+
## The Iron Law
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
A PARKED ROADMAP IS A CLAIM, NOT A FACT. VERIFY ITS OPEN STEPS AND EXECUTE ITS
|
|
39
|
+
RESUME CONDITION AGAINST THE CURRENT TREE BEFORE DECIDING ANYTHING.
|
|
40
|
+
"ALREADY SHIPPED" IS THE MOST VALUABLE FINDING — MARK IT [x] WITH A file:line.
|
|
41
|
+
EVERY FILE IN SCOPE LEAVES THE RUN WITH EXACTLY ONE OF FIVE DISPOSITIONS.
|
|
42
|
+
RE-PARKING WITHOUT A REFRESHED, CHECKABLE REASON IS NOT A DISPOSITION.
|
|
43
|
+
NEVER DELETE A ROADMAP. NEVER DROP AN OPEN OR DEFERRED STEP SILENTLY.
|
|
44
|
+
NEVER WRITE [-] — CANCELLING A STEP IS OWNER-RESERVED. "OBSOLETE" IS A
|
|
45
|
+
FINDING THE OWNER RULES ON, NOT A CANCELLATION THE AGENT APPLIES.
|
|
46
|
+
AN OWNER-RESERVED BLOCKER STAYS OWNER-RESERVED — PROMOTION NEVER LIFTS IT.
|
|
47
|
+
REVIVING A skipped/ ROADMAP REOPENS A RECORDED DECISION — COUNCIL FIRST.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Argument
|
|
51
|
+
|
|
52
|
+
| Given | Scope |
|
|
53
|
+
|---|---|
|
|
54
|
+
| a file path | that roadmap only |
|
|
55
|
+
| `later` | every roadmap in `agents/roadmaps/later/` |
|
|
56
|
+
| `skipped` | every roadmap in `agents/roadmaps/skipped/` |
|
|
57
|
+
| `all` or nothing | both folders |
|
|
58
|
+
|
|
59
|
+
`README.md` is never in scope. `--batch <n>` caps the deep pass (default **15**
|
|
60
|
+
files per run); the cheap inventory in Phase 1 always covers the whole scope.
|
|
61
|
+
`--triage-only` stops after Phase 2 — the table, no edits.
|
|
62
|
+
|
|
63
|
+
> The batch default of 15 is a **stated default, not a measured optimum**.
|
|
64
|
+
> *Revisit-if:* a run reports files past the cap that the inventory had already
|
|
65
|
+
> classified as trivial (too low), or a run's verification column filling with
|
|
66
|
+
> `unverifiable` towards its end (too high — reading degraded).
|
|
67
|
+
|
|
68
|
+
## Where the work happens
|
|
69
|
+
|
|
70
|
+
Runs in the checked-out branch, like `/analyze:inbox`. Its output is roadmap
|
|
71
|
+
edits and `git mv`s — no generated tree, nothing to isolate. A worktree, a
|
|
72
|
+
branch, a commit or a PR only on an explicit ask
|
|
73
|
+
([`scope-control`](../../rules/scope-control.md) § Git operations,
|
|
74
|
+
[`commit-policy`](../../rules/commit-policy.md)).
|
|
75
|
+
|
|
76
|
+
## Instructions
|
|
77
|
+
|
|
78
|
+
### 1. Live screen and inventory — cheap, every file in scope
|
|
79
|
+
|
|
80
|
+
Read live state first, never the dashboard or an earlier screen:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
agent-config roadmap:context
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Then one row per file, from commands, not from reading:
|
|
87
|
+
|
|
88
|
+
| file | folder | `[x]` | `[ ]` | `[~]` | `[-]` | parked since | resume condition | blockers | skip reason |
|
|
89
|
+
|
|
90
|
+
- **Checkbox counts** — `grep -cE '^\s*[-*] \[x\]'` and siblings, per marker.
|
|
91
|
+
A grep also counts boxes inside fenced code blocks; where a count looks off,
|
|
92
|
+
trust the dashboard parser (`collect()` in the progress generator) over it.
|
|
93
|
+
- **Parked since** — the date the file first appeared in its folder:
|
|
94
|
+
`git log --diff-filter=A --format=%ad --date=short -- <path> | tail -1`.
|
|
95
|
+
Age is a finding: a file parked eleven days ago and one parked two hundred
|
|
96
|
+
days ago are not the same decision.
|
|
97
|
+
- **Resume condition** — the `entry_condition:` mapping (`what` / `when` /
|
|
98
|
+
`who`) or a `Blocked until` / `Resume when` line, quoted verbatim. Absent on a
|
|
99
|
+
`later/` file is itself a defect, recorded in the row.
|
|
100
|
+
- **Blockers** — every `### blocker: <slug>` with its `Status:` and
|
|
101
|
+
`Resolved when`.
|
|
102
|
+
- **Skip reason** — for `skipped/`, the top-of-file reason or
|
|
103
|
+
`> Superseded by …` pointer, quoted.
|
|
104
|
+
|
|
105
|
+
A table with fewer rows than the scope has files is the first finding of the run.
|
|
106
|
+
|
|
107
|
+
### 2. Triage — first-impression disposition, all files
|
|
108
|
+
|
|
109
|
+
Add a `candidate` column to the inventory. Most files settle here cheaply:
|
|
110
|
+
|
|
111
|
+
- **Zero open, zero deferred** (`[ ]` = 0, `[~]` = 0) → `archive` candidate. The
|
|
112
|
+
file is finished or fully cancelled and only its folder is wrong.
|
|
113
|
+
- **Superseded pointer resolves** to a roadmap that exists in `archive/` or the
|
|
114
|
+
active tree → `archive` candidate, with the pointer as its reason.
|
|
115
|
+
- **Resume condition names a PR, an ADR, a file, or a merged branch** → it is
|
|
116
|
+
mechanically checkable; Phase 3 runs it first.
|
|
117
|
+
- **Resume condition names only an owner decision or a calendar date** → read
|
|
118
|
+
the decision record (`agents/roadmaps/` `## Decisions` tables, ADRs) and the
|
|
119
|
+
date; a past date with no recorded decision is a `re-park` or an escalation,
|
|
120
|
+
never a silent pass.
|
|
121
|
+
|
|
122
|
+
Show the table before any edit. `--triage-only` ends the run here.
|
|
123
|
+
|
|
124
|
+
### 3. Verify — the load-bearing phase, up to `--batch` files
|
|
125
|
+
|
|
126
|
+
Order the deep pass: mechanically-checkable resume conditions first, then
|
|
127
|
+
`later/` by age (oldest first), then `skipped/`. Delegate when more than ~4 files
|
|
128
|
+
survive — one subagent per file, told to verify against the tree and **write no
|
|
129
|
+
repo files**; their return is a reading, re-checked against the file before any
|
|
130
|
+
edit ([`delegation-policy`](../../rules/delegation-policy.md)).
|
|
131
|
+
|
|
132
|
+
Per file, three checks:
|
|
133
|
+
|
|
134
|
+
**3a. Execute the resume condition and every blocker's `Resolved when` as a
|
|
135
|
+
check** — never trust a `Status:` word, which records the past:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
gh pr view <n> --json state,mergedAt # "PR X merged"
|
|
139
|
+
ls docs/decisions/ADR-NNN-*.md # "the ADR exists"
|
|
140
|
+
git log --oneline origin/main -- <path> # "<file> landed on main"
|
|
141
|
+
grep -n '<key>' <file> # "<key> exists"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Verdict per condition: `met` · `unmet` · `unverifiable` (with the one line why).
|
|
145
|
+
|
|
146
|
+
**3b. Verify every open `[ ]` and deferred `[~]` step against the current tree**,
|
|
147
|
+
with a `file:line` or command output for what was checked:
|
|
148
|
+
|
|
149
|
+
`already-shipped` · `still-needed` · `obsolete` (the target it acts on no longer
|
|
150
|
+
exists or was superseded) · `unverifiable`
|
|
151
|
+
|
|
152
|
+
Search wide: an open step in a parked roadmap was frequently shipped by a
|
|
153
|
+
*different* roadmap. `grep` the step's named file, flag, key or command across
|
|
154
|
+
`src/`, `docs/`, and `agents/roadmaps/archive/` before calling it `still-needed`.
|
|
155
|
+
|
|
156
|
+
**3c. Re-test the parking reason itself.** For `later/`: is the gate the file
|
|
157
|
+
names still the real gate, or has the blocking work moved (a dependency now
|
|
158
|
+
merged, a decision now recorded, a benchmark now runnable)? For `skipped/`: does
|
|
159
|
+
the skip reason still hold — is the superseding roadmap real, is the rejected
|
|
160
|
+
scope still rejected, or has a later inbox round or decision asked for this
|
|
161
|
+
again ([`recurring-criticism`](../../rules/recurring-criticism.md) owns a repeat)?
|
|
162
|
+
|
|
163
|
+
### 4. Decide — exactly one disposition per file
|
|
164
|
+
|
|
165
|
+
| Disposition | When | What it writes |
|
|
166
|
+
|---|---|---|
|
|
167
|
+
| **promote** | resume condition `met` or no longer a gate, and ≥ 1 step `still-needed` that an agent can execute now — for a `skipped/` file, only after the council ruled the rejection no longer holds (below) | `git mv` to `agents/roadmaps/`, steps adapted to the current tree (below), the active-tree shape (below), a `> Promoted from <folder>/ on YYYY-MM-DD: <condition met + evidence>` line under the title |
|
|
168
|
+
| **absorb** | the surviving steps belong to an active roadmap already covering the area | the steps copied into that roadmap as a new phase or step block, each tagged `<!-- from: <parked-slug> -->`; the target's Risk Register `reviewed:` re-stamped (a new phase is a substantial change); then the parked file is **archived** with a pointer to where its items went |
|
|
169
|
+
| **archive** | every open/deferred step is `already-shipped` or absorbed, and no blocker is still open — or the file is finished and only misfiled | shipped steps flipped to `[x]` with `<!-- shipped: <file:line or PR> -->`, `status: archived`, `git mv` to `archive/`, a `> Archived from <folder>/ on YYYY-MM-DD by /roadmap:triage-parked: <reason>` line |
|
|
170
|
+
| **re-park** | the gate is real and still `unmet` | stays in place; the resume condition rewritten as a **checkable** `entry_condition:` mapping (`what` / `when` / `who`), a `review_by: YYYY-MM-DD` in the frontmatter, a `> Last triaged: YYYY-MM-DD — <verdict of 3a>` line, shipped steps still flipped to `[x]` |
|
|
171
|
+
| **owner-decision** | the only thing between the file and a disposition is a decision an agent may not take — any step judged `obsolete` (cancelling it is `[-]`, owner-reserved), or a gate in the [`decision-revisit-gate`](../../rules/decision-revisit-gate.md) owner-reserved set | stays in place; the question written onto the file with the candidate dispositions, and the item put to the owner (Output 1) |
|
|
172
|
+
|
|
173
|
+
**Adapting a promoted or absorbed step to the current tree** is the point of the
|
|
174
|
+
command, not a nicety. Rewrite each `still-needed` step so it would execute
|
|
175
|
+
against today's tree — renamed paths, moved scripts, changed commands, current
|
|
176
|
+
gate names — and tag it `<!-- adapted: <what changed> -->` so a reader can tell
|
|
177
|
+
an update from a transcription. A step that cannot be made executable becomes a
|
|
178
|
+
`[ ]` investigation step stating what is unknown, never the stale wording.
|
|
179
|
+
|
|
180
|
+
**The active-tree shape a promoted file must have.** `later/` and `skipped/` are
|
|
181
|
+
exempt from the gates that read the active tree; a promoted file is not. Before
|
|
182
|
+
it lands at the top level it carries at least one `## Phase` heading with a
|
|
183
|
+
checkbox step under each (`check_roadmap_trackable`), a `## Risk Register` with a
|
|
184
|
+
current `reviewed:` date (`lint_plan_risk_register`), and it passes
|
|
185
|
+
`lint_roadmap_family_cap`, `lint_roadmap_complexity` and `lint_roadmap_ci_steps`.
|
|
186
|
+
Set `status: ready` only when all of that is written. A file whose plan needs
|
|
187
|
+
more rework than that is promoted as `status: draft` — off the dashboard and the
|
|
188
|
+
risk-register gate until the owner flips it.
|
|
189
|
+
|
|
190
|
+
**Constraints that come with the folder, not with the decision:**
|
|
191
|
+
|
|
192
|
+
- **Reviving a `skipped/` file reopens a recorded rejection.** It goes to the
|
|
193
|
+
council first per [`decision-revisit-gate`](../../rules/decision-revisit-gate.md)
|
|
194
|
+
(mechanism-match, then the five steps), and to the owner when the transition
|
|
195
|
+
lands in the owner-reserved set. 3c's evidence is the input; the verdict is
|
|
196
|
+
recorded on the file before the `git mv`.
|
|
197
|
+
- **`skipped/` → `archive/` is legitimate here** once 3c confirms the file holds
|
|
198
|
+
nothing to resume. This widens `archive/` from "work happened" to "nothing left
|
|
199
|
+
to do here", deliberately: the folder that must stay small is the one nobody
|
|
200
|
+
reads, and the `> Archived from skipped/` line carries the original skip reason
|
|
201
|
+
forward verbatim, so the rejection stays on record.
|
|
202
|
+
- **Deferred `[~]` steps never follow a file into `archive/` silently** —
|
|
203
|
+
[`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md) Iron Law 3
|
|
204
|
+
applies unchanged. Each one is `already-shipped` (flip to `[x]`), or absorbed /
|
|
205
|
+
carried, and then annotated in the source step as
|
|
206
|
+
`<!-- deferred-resolution: merged-into=<slug> -->` or
|
|
207
|
+
`<!-- deferred-resolution: carried-to=<slug> -->` (a carried-to target also
|
|
208
|
+
carries `parent_roadmap: <source-slug>`). A bare `[~]` in `archive/` reds
|
|
209
|
+
`lint_deferral_integrity`.
|
|
210
|
+
- **Blockers resolve before their file moves.** A blocker whose `Resolved when`
|
|
211
|
+
ran `met` in 3a gets `- **Status:** resolved` — the only closing token
|
|
212
|
+
`lint_roadmap_blockers` and the estate count accept. A file with a blocker
|
|
213
|
+
still open is not archived; it is promoted with the blocker, re-parked, or put
|
|
214
|
+
to the owner.
|
|
215
|
+
- **Promotion never lifts a blocker.** A promoted roadmap keeps every blocker
|
|
216
|
+
whose `Resolved when` is still `unmet`, and a blocker marked owner-reserved
|
|
217
|
+
stays so; the file is active because *some* step is executable now, not
|
|
218
|
+
because the gate went away.
|
|
219
|
+
- **Promote only what is executable now.** If every surviving step is gated,
|
|
220
|
+
the answer is `re-park`, however old the file is — the
|
|
221
|
+
[Active vs. Later test](../../skills/roadmap-management/references/archival.md)
|
|
222
|
+
is unchanged.
|
|
223
|
+
|
|
224
|
+
### 5. Apply — the mechanics that red CI if skipped
|
|
225
|
+
|
|
226
|
+
In this order, after all decisions of the batch are taken:
|
|
227
|
+
|
|
228
|
+
1. `git mv` each moved file and fix its own outgoing relative links:
|
|
229
|
+
`later/` or `skipped/` → top level removes exactly one `../` from each;
|
|
230
|
+
`later/` or `skipped/` → `archive/` changes none. Migrate inbound references
|
|
231
|
+
to the new path (`grep -rn '<slug>' agents/ docs/ src/`).
|
|
232
|
+
2. Frontmatter: a file leaving `later/` must not keep `status: later` —
|
|
233
|
+
`lint_roadmap_later_disposition` reads the word, not the folder. Archived →
|
|
234
|
+
`status: archived`; promoted → `status: ready` or `draft` (step 4).
|
|
235
|
+
3. **Estate ratchet — a promotion is an addition.** `check_estate_count` reads a
|
|
236
|
+
`later/x.md` → `x.md` move as a new active roadmap on both halves, and only a
|
|
237
|
+
move of an *active top-level* roadmap out of the tree offsets it — archiving
|
|
238
|
+
a parked file lowers `later_roadmaps`, never `active_roadmaps`. So each
|
|
239
|
+
promoted file needs its own `estate_offset_exempt: <reason>` written in this
|
|
240
|
+
change; the reason must name the disposition rejected instead (archive, park,
|
|
241
|
+
merge — `_lib/exemption_shape.ts`), e.g. *"promoted from later/: resume
|
|
242
|
+
condition met (PR #N); not re-parked because …; not merged because …"*. Many
|
|
243
|
+
parked files already carry an old `estate_offset_exempt` — **replace** it,
|
|
244
|
+
never inherit a reason written for a different event. The gate reads
|
|
245
|
+
`<base>...HEAD`, so it sees only committed changes: run it after the change is
|
|
246
|
+
committed, and read its `this change +N active / -M disposed, K exempt` line,
|
|
247
|
+
where `K` must equal `N`.
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
./scripts-run src/scripts/check_estate_count
|
|
251
|
+
```
|
|
252
|
+
4. Regenerate: `./agent-config roadmap:progress --no-archive` (dashboard — the
|
|
253
|
+
flag keeps it from sweeping unrelated finished roadmaps into this change) and
|
|
254
|
+
`./scripts-run src/scripts/build_archive_index` (archive index — nothing else
|
|
255
|
+
in the archival path regenerates it).
|
|
256
|
+
5. Run the lints that read what moved: `lint_roadmap_later_disposition`,
|
|
257
|
+
`lint_roadmap_blockers`, `lint_deferral_integrity`, `check_no_roadmap_refs`,
|
|
258
|
+
`check_estate_count`, and — for every promoted or absorbing file —
|
|
259
|
+
`check_roadmap_trackable`, `lint_plan_risk_register`,
|
|
260
|
+
`lint_roadmap_family_cap`, `lint_roadmap_complexity`, `lint_roadmap_ci_steps`.
|
|
261
|
+
Draining `later/` loosens ratchets: when `lint_roadmap_later_disposition`
|
|
262
|
+
reports a baseline as loose, lower it in the same change. A drop below a
|
|
263
|
+
`min_scanned` floor in `src/config/gate-coverage.yml` is the corpus shrinking,
|
|
264
|
+
not a regression — lower the floor with the evidence in its note.
|
|
265
|
+
|
|
266
|
+
### 6. Close the run
|
|
267
|
+
|
|
268
|
+
Re-read every edited file once against the decision table (pass 3 of the
|
|
269
|
+
inbox discipline): each `[x]` flip carries its evidence, each promoted step its
|
|
270
|
+
`adapted` tag, each archived file its reason line. A disposition the file does
|
|
271
|
+
not carry is not applied.
|
|
272
|
+
|
|
273
|
+
## Output
|
|
274
|
+
|
|
275
|
+
1. **Owner decisions required**, if any — at the top: the list of every pending
|
|
276
|
+
item (file, question, candidate dispositions), then **one** numbered-options
|
|
277
|
+
question for the most blocking item; the rest are asked one per turn after
|
|
278
|
+
it is answered ([`user-interaction`](../../rules/user-interaction.md),
|
|
279
|
+
[`ask-when-uncertain`](../../rules/ask-when-uncertain.md)). Each question is
|
|
280
|
+
also written onto its file, so the next run finds it posed.
|
|
281
|
+
2. The inventory table (every file in scope) with the `candidate` column.
|
|
282
|
+
3. Per deep-checked file: resume-condition verdicts, the step verification table,
|
|
283
|
+
the disposition and what was written.
|
|
284
|
+
4. **The disposition ledger — the run's completeness check:**
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
scope N files (later: L, skipped: S) · deep-checked: D · deferred to next batch: R
|
|
288
|
+
promote n → <paths>
|
|
289
|
+
absorb n → <parked> → <target roadmap>
|
|
290
|
+
archive n → <paths>
|
|
291
|
+
re-park n → <paths, with the refreshed condition>
|
|
292
|
+
owner n → <paths>
|
|
293
|
+
steps N verified → already-shipped / still-needed / obsolete / unverifiable
|
|
294
|
+
folders later/: before → after · skipped/: before → after
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Deep-checked files must sum to their dispositions. Files past the batch cap
|
|
298
|
+
are named in `deferred to next batch`, never silently absent.
|
|
299
|
+
5. One closing summary: how many files left each folder, how many steps were
|
|
300
|
+
prevented by `already-shipped`, and which gate the run is waiting on next.
|
|
301
|
+
|
|
302
|
+
## Honest enforcement — `instruction-only`
|
|
303
|
+
|
|
304
|
+
No gate checks that a resume condition was executed rather than read, or that an
|
|
305
|
+
`already-shipped` flip was verified. The ledger is the control: it carries
|
|
306
|
+
numbers and `file:line` evidence a reviewer can challenge after the fact. The
|
|
307
|
+
folder-placement and estate gates named in step 5 catch a malformed **move**;
|
|
308
|
+
they cannot see a wrong **decision**.
|
|
309
|
+
|
|
310
|
+
## Do NOT
|
|
311
|
+
|
|
312
|
+
- Promote a roadmap because it is old. Age is evidence that the parking reason
|
|
313
|
+
went unchecked, not evidence that it stopped holding.
|
|
314
|
+
- Archive a file with `still-needed` steps that were neither absorbed nor
|
|
315
|
+
carried into a follow-up.
|
|
316
|
+
- Write `[-]` to make a file archivable. An obsolete step is a finding put to
|
|
317
|
+
the owner; the agent never cancels one.
|
|
318
|
+
- Re-park with the same prose condition. If it could not be checked this run, it
|
|
319
|
+
will not be checked next run either — rewrite it as an `entry_condition:`.
|
|
320
|
+
- Execute a promoted roadmap in the same run — triage authorizes moving and
|
|
321
|
+
rewriting plans, not doing their work
|
|
322
|
+
([`scope-control`](../../rules/scope-control.md) § Authoring vs. implementation).
|
|
323
|
+
`/roadmap:next` or `/roadmap:process-full` picks it up afterwards.
|
|
324
|
+
- Resolve an owner-reserved gate into an accurate paragraph. Past the decision
|
|
325
|
+
the agent cannot take, the output is the escalation block.
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
model_tier: medium
|
|
3
3
|
name: roadmap
|
|
4
4
|
disable-model-invocation: true
|
|
5
|
-
argument-hint: "[create|ai-council|process-step|process-phase|process-full|next] [args]"
|
|
5
|
+
argument-hint: "[create|ai-council|process-step|process-phase|process-full|next|triage-parked|resolve-blockers] [args]"
|
|
6
6
|
pack: product-basic
|
|
7
|
-
intent: "Roadmap dispatcher — create, process-step, process-phase, process-full, next, ai-council"
|
|
8
|
-
routes_to: [roadmap-create, roadmap-ai-council, roadmap-materialize, roadmap-process-step, roadmap-process-phase, roadmap-process-full, roadmap-next]
|
|
7
|
+
intent: "Roadmap dispatcher — create, process-step, process-phase, process-full, next, triage-parked, resolve-blockers, ai-council"
|
|
8
|
+
routes_to: [roadmap-create, roadmap-ai-council, roadmap-materialize, roadmap-process-step, roadmap-process-phase, roadmap-process-full, roadmap-next, roadmap-triage-parked, roadmap-resolve-blockers]
|
|
9
9
|
replaces: []
|
|
10
10
|
visibility: advanced
|
|
11
|
-
description: Roadmap orchestrator —
|
|
11
|
+
description: Roadmap orchestrator — create (authoring), process-step / -phase / -full (execution), next (pick and ship), triage-parked (later/, skipped/), resolve-blockers.
|
|
12
12
|
cluster: roadmap
|
|
13
13
|
type: orchestrator
|
|
14
14
|
suggestion:
|
|
@@ -40,6 +40,8 @@ paused for confirmation before every step) was removed —
|
|
|
40
40
|
| `/roadmap:process-phase` (**default execution scope**) | `commands/roadmap/process-phase.md` | Autonomously process every open step in the current phase |
|
|
41
41
|
| `/roadmap:process-full` | `commands/roadmap/process-full.md` | Autonomously process every open step across every phase; `--all` iterates the whole active estate, `--worktree` isolates the workspace |
|
|
42
42
|
| `/roadmap:next` | `commands/roadmap/next.md` | Screen for the next executable roadmap, then carry it to a reviewable PR (selection + `process-full` + delivery) |
|
|
43
|
+
| `/roadmap:triage-parked` | `commands/roadmap/triage-parked.md` | Re-check every roadmap in `later/` and `skipped/` against the current tree; promote, absorb, archive, or re-park each one |
|
|
44
|
+
| `/roadmap:resolve-blockers` | `commands/roadmap/resolve-blockers.md` | Check every open blocker, close what the tree settled, decide the rest in the AI council, ask the owner one question at a time |
|
|
43
45
|
|
|
44
46
|
Sub-command names match the locked contract in
|
|
45
47
|
[`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
|
|
@@ -71,6 +73,8 @@ each only binds a scope delta.
|
|
|
71
73
|
> 4. process-phase — process the current phase (default)
|
|
72
74
|
> 5. process-full — process every open step across every phase
|
|
73
75
|
> 6. next — pick the next executable roadmap and ship it to a PR
|
|
76
|
+
> 7. triage-parked — drain later/ and skipped/ against the current tree
|
|
77
|
+
> 8. resolve-blockers — check and resolve open roadmap blockers, council first
|
|
74
78
|
|
|
75
79
|
## Rules
|
|
76
80
|
|
|
@@ -91,3 +95,13 @@ each only binds a scope delta.
|
|
|
91
95
|
[`/roadmap:next`](roadmap/next.md), which is the only sub that
|
|
92
96
|
screens and selects. The three `process-*` subs never choose across
|
|
93
97
|
roadmaps.
|
|
98
|
+
- **Parked-estate intents** (*"go through later/ and skipped/"*, *"geh die
|
|
99
|
+
geparkten Roadmaps durch"*, *"which parked roadmaps are unblocked now?"*) route
|
|
100
|
+
to [`/roadmap:triage-parked`](roadmap/triage-parked.md) — the only sub that
|
|
101
|
+
reads `later/` and `skipped/`. It moves and rewrites plans; it never executes
|
|
102
|
+
one.
|
|
103
|
+
- **Blocker intents** (*"resolve the blockers"*, *"lös die Blocker auf"*,
|
|
104
|
+
*"which blockers still need me?"*) route to
|
|
105
|
+
[`/roadmap:resolve-blockers`](roadmap/resolve-blockers.md) — council first,
|
|
106
|
+
the owner one question at a time. It decides and records; it never executes
|
|
107
|
+
the unblocked work.
|
|
@@ -5,7 +5,7 @@ pack: engineering-base
|
|
|
5
5
|
visibility: internal
|
|
6
6
|
cluster: tests
|
|
7
7
|
sub: create
|
|
8
|
-
skills: [test-case-discovery,
|
|
8
|
+
skills: [test-case-discovery, quality-tools]
|
|
9
9
|
description: Write meaningful tests for the current branch — stack-adaptive (pest / phpunit / vitest / jest / pytest / …)
|
|
10
10
|
suggestion:
|
|
11
11
|
eligible: false
|
|
@@ -27,7 +27,18 @@ tests in the framework the project actually uses, never a hard-coded one:
|
|
|
27
27
|
|
|
28
28
|
- **PHP** → Pest (`pestphp/pest`) or PHPUnit.
|
|
29
29
|
- **JS/TS** → Vitest or Jest. **Python** → pytest. **Go** → `testing`.
|
|
30
|
-
**Rust** → `#[test]`.
|
|
30
|
+
**Rust** → `#[test]`. **Ruby** → RSpec. **JVM** → JUnit.
|
|
31
|
+
**.NET** → `dotnet test`.
|
|
32
|
+
|
|
33
|
+
**The resolver is the only stack authority, and `skills:` deliberately names
|
|
34
|
+
no single-stack skill.** Binding `pest-testing` unconditionally made a
|
|
35
|
+
React-only repository load PHP testing guidance before it reached the sentence
|
|
36
|
+
above telling it not to, and a static list cannot express a per-repository
|
|
37
|
+
answer. So the frontmatter keeps only stack-neutral skills and the load is
|
|
38
|
+
**resolver-conditional**: once step 1 has named the runner, load the skill for
|
|
39
|
+
THAT runner if one exists — `pest-testing` for pest, `laravel` for
|
|
40
|
+
`php artisan test`, `playwright-testing` for playwright. Unconditional became
|
|
41
|
+
conditional; it did not become nothing.
|
|
31
42
|
|
|
32
43
|
Then read the existing tests under the project's test directory to match
|
|
33
44
|
the style and conventions already in use (assertion shape, naming, fixtures).
|
|
@@ -95,7 +106,10 @@ funnel per changed behavior — enumerate first, write second:
|
|
|
95
106
|
|
|
96
107
|
### 7. Verify
|
|
97
108
|
|
|
98
|
-
- Run the tests locally
|
|
109
|
+
- Run the tests locally with the command step 1 resolved — the same runner the
|
|
110
|
+
tests were written for. Reach for a container only when the resolved stack
|
|
111
|
+
calls for one, exactly as `/tests execute` branches on the resolved tool
|
|
112
|
+
before reaching for Docker.
|
|
99
113
|
- If a test fails, fix it — don't just delete it.
|
|
100
114
|
|
|
101
115
|
### Rules
|
|
@@ -5,7 +5,7 @@ pack: engineering-base
|
|
|
5
5
|
visibility: internal
|
|
6
6
|
cluster: tests
|
|
7
7
|
sub: execute
|
|
8
|
-
skills: [
|
|
8
|
+
skills: [quality-tools]
|
|
9
9
|
description: Run the project's test suite — stack-adaptive (pest / phpunit / vitest / jest / pytest / …)
|
|
10
10
|
argument-hint: "[file | filter] [--include-e2e] [--include-slow] [--php]"
|
|
11
11
|
suggestion:
|
|
@@ -31,6 +31,19 @@ returns the runner(s) to invoke per ecosystem:
|
|
|
31
31
|
phpunit (`vendor/bin/phpunit`).
|
|
32
32
|
- **JS/TS** → vitest (`npx vitest run`) or jest (`npx jest`).
|
|
33
33
|
- **Python** → pytest. **Go** → `go test ./...`. **Rust** → `cargo test`.
|
|
34
|
+
- **Ruby** → rspec (`bundle exec rspec`). **JVM** → junit (`./gradlew test`,
|
|
35
|
+
`./mvnw test`). **.NET** → `dotnet test`.
|
|
36
|
+
|
|
37
|
+
**The resolver is the only stack authority, and `skills:` deliberately names
|
|
38
|
+
no single-stack skill.** The frontmatter used to bind `pest-testing` unconditionally, which
|
|
39
|
+
contradicted the sentence directly above it: a React-only repository was handed
|
|
40
|
+
PHP testing guidance before it read the instruction not to hard-code a stack.
|
|
41
|
+
A static list cannot express a per-repository answer, so the frontmatter keeps
|
|
42
|
+
only the stack-neutral `quality-tools` and the load is
|
|
43
|
+
**resolver-conditional**: once step 1 has named the runner, load the skill for
|
|
44
|
+
THAT runner if one exists — `pest-testing` for pest, `laravel` for
|
|
45
|
+
`php artisan test`, `playwright-testing` for playwright (selected under
|
|
46
|
+
`--include-e2e`). Unconditional became conditional; it did not become nothing.
|
|
34
47
|
|
|
35
48
|
**Wrappers win.** When a `Makefile`/`Taskfile.yml` `test:` target or a
|
|
36
49
|
`package.json` `test` script exists, the resolver returns the wrapper
|
|
@@ -52,11 +65,15 @@ ask interactively, or emit `ambiguous_routing` in CI.
|
|
|
52
65
|
`vendor/bin/phpunit`) → run **inside the PHP Docker container**
|
|
53
66
|
(`docker compose exec -T <service> ...`); detect the service from
|
|
54
67
|
`docker-compose.yml` / `compose.yaml` (see `rules/docker-commands.md`).
|
|
55
|
-
- **
|
|
56
|
-
|
|
68
|
+
- **Every other direct tool** — JS, Python, Go, Rust, Ruby
|
|
69
|
+
(`bundle exec rspec`, or bare `rspec` with no Gemfile), JVM
|
|
70
|
+
(`./gradlew test` / `./mvnw test`), .NET (`dotnet test`) → run on the host,
|
|
71
|
+
or in the relevant container when the project containerises it. PHP is the
|
|
72
|
+
only ecosystem with a standing container rule.
|
|
57
73
|
- If the user named a specific file or filter, pass it through the
|
|
58
|
-
resolved runner's native flag
|
|
59
|
-
|
|
74
|
+
resolved runner's native flag: `--filter=…` or a path for pest/phpunit, a
|
|
75
|
+
path or `-t` for vitest/jest, a node-id for pytest, `-e`/a path for rspec,
|
|
76
|
+
`--tests`/`-Dtest=` for gradle/maven, `--filter` for `dotnet test`.
|
|
60
77
|
- No specific test requested → run the resolved fast suite.
|
|
61
78
|
|
|
62
79
|
### 3. Analyze results
|
|
@@ -39,9 +39,13 @@ Without a primitive, the skill's plain `git worktree add` path applies.
|
|
|
39
39
|
|
|
40
40
|
### 2. Branch naming — propose once
|
|
41
41
|
|
|
42
|
-
Derive ONE
|
|
43
|
-
`
|
|
44
|
-
|
|
42
|
+
Derive ONE type, slug and (if any) ticket from the task and render the name
|
|
43
|
+
through `git.branch_pattern`:
|
|
44
|
+
`agent-config git:convention branch --type <type> --slug <slug> [--ticket <ID>]`
|
|
45
|
+
prints the name; exit `1` names the value or pattern it refused — fix the input,
|
|
46
|
+
never hand-render ([`commit-subject`](../../../skills/git-workflow/references/commit-subject.md) § Rendering a branch name). State the name and proceed. It goes into every command
|
|
47
|
+
double-quoted (`-b "<branch>"`). Do not present a naming menu; the user can
|
|
48
|
+
override by naming a branch in the same turn.
|
|
45
49
|
|
|
46
50
|
### 3. Write the scope-lock note
|
|
47
51
|
|
|
@@ -66,4 +66,5 @@ whether checklist item 3 (evidence attached) now passes.
|
|
|
66
66
|
|
|
67
67
|
- **Do NOT commit or push.** Evidence lives in the untracked scope note.
|
|
68
68
|
- Red probe → report it plainly and stop; never downgrade to a weaker
|
|
69
|
-
probe to get green (
|
|
69
|
+
probe to get green (the `execution.fix_loop_max` budget and its ladder,
|
|
70
|
+
per `autonomous-execution`).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Decision Revisit Gate — Enforcement Reach
|
|
2
|
+
|
|
3
|
+
Loaded by [`decision-revisit-gate`](../../rules/decision-revisit-gate.md).
|
|
4
|
+
The honest-enforcement record moved out of the rule verbatim: why the gate
|
|
5
|
+
ships `instruction-only`, and the two reach limits a consumer install has.
|
|
6
|
+
|
|
7
|
+
## Honest enforcement — `instruction-only`
|
|
8
|
+
|
|
9
|
+
`adr_cite_check` is deterministic where it runs, and nothing makes it run. No
|
|
10
|
+
gate can observe an agent citing a decision it never opened, so step 2 above is
|
|
11
|
+
model-carried — the same honesty boundary
|
|
12
|
+
[`security-sensitive-stop`](security-sensitive-stop.md) and
|
|
13
|
+
[`active-remediation`](active-remediation.md) state for their own obligations.
|
|
14
|
+
|
|
15
|
+
Two reach limits, named rather than implied. The tool lives in this repository's
|
|
16
|
+
`src/scripts/` and is **not** exposed as an `agent-config` verb, so a consumer
|
|
17
|
+
install performs step 2 by hand; wiring the verb touches six further surfaces
|
|
18
|
+
plus the curated `dist/agent-src/scripts/` list and is deliberately out of this
|
|
19
|
+
change. And `docs/decisions/` is projected into no agent-visible tree at all —
|
|
20
|
+
the agent sees ADR *numbers* cited across rules and skills, almost never ADR
|
|
21
|
+
*text*. Until that changes, "evaluate before citing" means opening the file.
|
|
22
|
+
|
|
23
|
+
`docs/contracts/` is unprojected on the same terms (`dist/agent-src/` carries no
|
|
24
|
+
`docs/`), so the burden table this rule points at is maintainer-reachable only.
|
|
25
|
+
That is why the reserved-set table above stays here rather than becoming a
|
|
26
|
+
pointer: a consumer install receives these lines and not the contract.
|
|
27
|
+
|
|
28
|
+
## Why the council is the default venue — the measurement
|
|
29
|
+
|
|
30
|
+
The old "offers the user a
|
|
31
|
+
path" wording made every lock an owner interrupt; measured across 26 days of
|
|
32
|
+
transcripts, the agent reported a lock and waited while the owner voided the
|
|
33
|
+
decision retroactively — twice with the lock report timestamped **before** the
|
|
34
|
+
override demand. The ordering was the defect; the permission was never missing.
|
|
35
|
+
|
|
36
|
+
## Why the five steps are inlined rather than only routed
|
|
37
|
+
|
|
38
|
+
The five are stated here, not only behind a route, because the route was
|
|
39
|
+
measurably unreachable: `decision-review` ships `install.default: false` in the
|
|
40
|
+
non-default `analysis-workbench` pack, so a pack-legal install received the
|
|
41
|
+
obligation and not the procedure. `routes_to` now names two always-on skills;
|
|
42
|
+
the backward-audit depth in
|
|
43
|
+
`decision-review` stays optional.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Design Fidelity — Enforcement Reach
|
|
2
|
+
|
|
3
|
+
Loaded by [`design-fidelity`](../../../rules/design-fidelity.md). The
|
|
4
|
+
honest-enforcement record moved out of the rule verbatim.
|
|
5
|
+
|
|
6
|
+
## Honest enforcement — `instruction-only`
|
|
7
|
+
|
|
8
|
+
Nothing records a fidelity comparison. The estate's two design linters measure
|
|
9
|
+
generic AI-aesthetic tells (`lint_design_slop`) and accessibility
|
|
10
|
+
(`lint_design_quality`); neither opens the handover, so nothing can tell a
|
|
11
|
+
proven 1:1 from an asserted one. The proof clause in the Iron Law is therefore
|
|
12
|
+
model-carried, and the committed matrix
|
|
13
|
+
([`design-review`](../skills/design-review/SKILL.md) § Fidelity proof) is the
|
|
14
|
+
control — a reviewer can open it, which is more than any gate here does.
|
|
15
|
+
|
|
16
|
+
## Routing — why each trigger class is shaped as it is
|
|
17
|
+
|
|
18
|
+
Every class carries its own near-miss row in `ROUTING_MATRIX`
|
|
19
|
+
([`design_fidelity_routing.test.ts`](../../tests/scripts/design_fidelity_routing.test.ts)),
|
|
20
|
+
and the row must test the direction the NEW trigger opens, not one that was
|
|
21
|
+
already closed — apply that before writing a trigger, not after. Why each class
|
|
22
|
+
is shaped as it is, why `*.html` and a bare builder host are refused, and the
|
|
23
|
+
worked example behind the direction rule:
|
|
24
|
+
[`design-fidelity-routing`](../../../guidelines/design-fidelity-routing.md).
|
|
@@ -82,9 +82,11 @@ Never load full datasets into context. Extract what you need:
|
|
|
82
82
|
- Do NOT loop through trial-and-error when one targeted inspection
|
|
83
83
|
would reveal the cause.
|
|
84
84
|
- Max 2 retries for the same approach — then stop and rethink. The 2
|
|
85
|
-
retries plus the initial attempt ARE the three attempts of
|
|
86
|
-
`autonomous-execution`'s
|
|
87
|
-
same target
|
|
85
|
+
retries plus the initial attempt ARE the first three attempts of
|
|
86
|
+
`autonomous-execution`'s `execution.fix_loop_max` ladder: the 3rd
|
|
87
|
+
consecutive failure on the same target closes band 1 and triggers the
|
|
88
|
+
rule's mandatory strategy shift — never a halt, a count alone is
|
|
89
|
+
not a reason to ask — then, after repeated EPOCHS, to `context-hygiene`'s
|
|
88
90
|
fresh-session recommendation — one ladder, not competing budgets
|
|
89
91
|
([`autonomy-mechanics § Retry-budget escalation ladder`](../../execution/autonomy-mechanics.md)).
|
|
90
92
|
|
|
@@ -54,23 +54,21 @@ command says "ask the user", you ask.
|
|
|
54
54
|
- Max 3 diagnostic commands per error. Read the error, think, act.
|
|
55
55
|
- One hypothesis at a time. Pick the most likely, try it. Fails →
|
|
56
56
|
next hypothesis; failures on the same target accrue to the ONE
|
|
57
|
-
retry ladder (2 retries per approach →
|
|
57
|
+
retry ladder (2 retries per approach → the 3rd closes band 1 and
|
|
58
|
+
triggers a mandatory strategy shift, never a halt, per
|
|
58
59
|
[`autonomy-mechanics § Retry-budget escalation ladder`](../../execution/autonomy-mechanics.md))
|
|
59
60
|
— never a separate one-strike cap.
|
|
60
61
|
|
|
61
62
|
### Keep intermediate output minimal
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
`
|
|
65
|
-
|
|
66
|
-
When `personal.minimal_output: true`:
|
|
64
|
+
Not a setting — this is the behavior
|
|
65
|
+
[`direct-answers`](../../../rules/direct-answers.md) Iron Law 3 already
|
|
66
|
+
mandates:
|
|
67
67
|
|
|
68
68
|
- Multi-step work: short bullet points only, no paragraphs.
|
|
69
69
|
- No thinking out loud — user doesn't need your reasoning.
|
|
70
|
-
-
|
|
71
|
-
|
|
72
|
-
- `personal.play_by_play: true` → briefly share intermediate
|
|
73
|
-
findings.
|
|
70
|
+
- Silently investigate, report the conclusion only. Share intermediate
|
|
71
|
+
findings only when the user asks for them in the turn.
|
|
74
72
|
- At the end: concise summary — what changed, what user needs to
|
|
75
73
|
know.
|
|
76
74
|
|