@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
|
@@ -101,7 +101,7 @@ Run, in order:
|
|
|
101
101
|
| Gate | Overlapping open PR touches same files? | Action |
|
|
102
102
|
|---|---|---|
|
|
103
103
|
| exit `0`, prints `branch is current` | — | Proceed to Step 2 |
|
|
104
|
-
| exit `1` | No | **
|
|
104
|
+
| exit `1` | No | **Bring the base in** per `git.update_strategy` ([`branch-update`](../../../../skills/git-workflow/references/branch-update.md)). `merge` (default): `git fetch origin && git merge origin/{resolved-base} --no-edit` — no need to ask; state that you did it. `rebase`: ask first unless `git-history-discipline` already authorises the rewrite (see `branch-update` for the three cases), never fall back to a merge, and on an already-pushed branch run `branch-update`'s pre-rewrite stop and push with its `--force-with-lease` form. Then run the regeneration set below, then proceed. |
|
|
105
105
|
| exit `1` | **Yes** | STOP — surface the overlapping PR number, ask: stack on top of it / wait for it to land / proceed-anyway-and-accept-conflicts / cancel |
|
|
106
106
|
| exit `0`, prints `NOT VERIFIED` | — | The base could not be reached, so freshness is **unknown** — not confirmed. Re-run once; if it persists, say the check did not run rather than reporting a pass. A base that `ls-remote` cannot resolve (deleted or renamed after the PR opened, or a fork base) lands here too. |
|
|
107
107
|
| warns `could not ask the forge` | — | The **default** base was checked and an open PR against a different base was **not** ruled out. Say so; do not report it as a clean freshness pass. |
|
|
@@ -137,8 +137,22 @@ a generated-file conflict never is.
|
|
|
137
137
|
|
|
138
138
|
The gate above is not creation-only. **Every subsequent push** to a branch with
|
|
139
139
|
an open PR (a CI fix, a review response, a follow-up commit) re-runs the same
|
|
140
|
-
sequence first: `check_branch_freshness` → on exit `1`,
|
|
141
|
-
`origin/{resolved-base}` in
|
|
140
|
+
sequence first: `check_branch_freshness` → on exit `1`, bring
|
|
141
|
+
`origin/{resolved-base}` in per `git.update_strategy` (merge by default; under
|
|
142
|
+
`rebase` a rebase that is asked for, never a merge, and `sync_pr_branch` refuses
|
|
143
|
+
a behind branch with exit 3)
|
|
144
|
+
→ regenerate the derived files → verify → push (after a rebase:
|
|
145
|
+
`git push --force-with-lease=refs/heads/<b>:<sha> <remote> HEAD:refs/heads/<b>`,
|
|
146
|
+
never a plain push). A rebase runs only through § The rebase sequence in
|
|
147
|
+
[`branch-update`](../../../../skills/git-workflow/references/branch-update.md):
|
|
148
|
+
the ref the branch publishes is resolved from `@{push}` or the pull request's
|
|
149
|
+
head repository — never `@{u}`, and an unresolved target means no rewrite — its
|
|
150
|
+
SHA is pinned once after the fetch, must already be in `HEAD`, and is the lease
|
|
151
|
+
unchanged — so a collaborator's push lands either before the pin and halts the
|
|
152
|
+
stop, or after it and fails the lease, and is never overwritten.
|
|
153
|
+
Its steps 1–3 rebase and report, then stop: the regenerate → verify above runs
|
|
154
|
+
on the rebased tree, and only then does its step 4 publish, re-running step 1
|
|
155
|
+
with the `SAVE` and `EXPECTED` step 3 printed.
|
|
142
156
|
A PR that sits open while its base advances goes stale silently; keeping the
|
|
143
157
|
base merged **at every touch** means it stays `mergeStateStatus: CLEAN` instead
|
|
144
158
|
of accumulating conflicts for the moment the user wants to merge. If the gate
|
|
@@ -160,9 +174,13 @@ runner; the hook never merges, because a merge inside `pre-push` rewrites the
|
|
|
160
174
|
tree at the moment you believe your work is finished.
|
|
161
175
|
|
|
162
176
|
**The resolution is executable now, not just described.**
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
177
|
+
`agent-config git:convention sync --base origin/<base>`, `<base>` being the
|
|
178
|
+
`baseRefName` of the branch's `OPEN` pull request (`gh pr view --json
|
|
179
|
+
state,baseRefName`; a closed or merged one does not count, and without an open
|
|
180
|
+
one the base is the default branch), fetches and merges that
|
|
181
|
+
base in when the branch is behind, so a stacked or release-line PR is measured
|
|
182
|
+
against what it actually merges into. It never asks the forge itself: without
|
|
183
|
+
`--base` the target is the default branch, which is right only for a PR into it. The base is a
|
|
166
184
|
**set**: when the PR targets something other than the default branch, whether
|
|
167
185
|
the default branch joins the set is a per-target policy read from the *target's
|
|
168
186
|
own commit*, never from this branch — see `src/scripts/_lib/branch_convergence.ts`.
|
|
@@ -255,9 +273,9 @@ Run `/create-pr:description-only` Steps 1–4 to generate the PR title and body.
|
|
|
255
273
|
This handles: Jira ticket extraction, diff analysis, commit messages, **PR template filling**.
|
|
256
274
|
|
|
257
275
|
The generation honors the cached content flags from step 1 (§4f):
|
|
258
|
-
`detail_level` sets the Description tier (default `min`)
|
|
259
|
-
adds a grounded JSON block for
|
|
260
|
-
(
|
|
276
|
+
`detail_level` sets the Description tier (default `min`) and `screenshots`
|
|
277
|
+
(capability-gated) adds frontend screenshots; a grounded JSON block for
|
|
278
|
+
API-endpoint changes is always added (`/create-pr:description-only` § 4.3). Critical-info callouts
|
|
261
279
|
(breaking changes / migrations / security / rollback) appear at every tier.
|
|
262
280
|
|
|
263
281
|
**CRITICAL**: The PR body MUST use the project's PR template (`.github/pull_request_template.md`).
|
|
@@ -321,18 +339,15 @@ user request.
|
|
|
321
339
|
- **Head branch**: EXACT output of `git branch --show-current` from step 1.
|
|
322
340
|
- **Base branch**: default branch (`main` / `master`).
|
|
323
341
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
per-invocation with `:ready` / `:final` / `:draft`.
|
|
327
|
-
by flipping `routine_confirmations: true`. See
|
|
328
|
-
[`docs/customization.md` § Verbosity](../../docs/customization.md#verbosity).
|
|
342
|
+
`/create-pr` creates the PR as draft silently — draft-or-ready is a routine
|
|
343
|
+
confirmation with one obvious answer, so it is never asked. Override
|
|
344
|
+
per-invocation with `:ready` / `:final` / `:draft`.
|
|
329
345
|
|
|
330
346
|
Resolve `"draft"` (first match wins):
|
|
331
347
|
|
|
332
348
|
1. `:ready` / `:final` arg → `false`.
|
|
333
349
|
2. `:draft` arg → `true`.
|
|
334
|
-
3. `
|
|
335
|
-
4. Default → `true` (silent draft).
|
|
350
|
+
3. Default → `true` (silent draft).
|
|
336
351
|
|
|
337
352
|
#### 3a. Tool selection — single-call mandate
|
|
338
353
|
|
|
@@ -382,7 +397,7 @@ gh pr view {number} --json isDraft --jq '.isDraft'
|
|
|
382
397
|
# returns true → gh pr ready {number}
|
|
383
398
|
```
|
|
384
399
|
|
|
385
|
-
**Silent-draft postscript** (rule
|
|
400
|
+
**Silent-draft postscript** (rule 3) → see step 4b.
|
|
386
401
|
|
|
387
402
|
### 4. After creation
|
|
388
403
|
|
|
@@ -420,14 +435,10 @@ Run this strip-pass **after PR creation and after every body PATCH**:
|
|
|
420
435
|
the line entirely when nothing was stripped — silence is the
|
|
421
436
|
expected path, not "no footers found").
|
|
422
437
|
|
|
423
|
-
#### 4b. Show the PR URL
|
|
438
|
+
#### 4b. Show the PR URL
|
|
424
439
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
- `off` → nothing.
|
|
428
|
-
- `minimal` → `→ #N opened: <url>`. Append `→ created as draft — run
|
|
429
|
-
\`gh pr ready N\` to flip` when silent-draft (rule 4); omit on ready.
|
|
430
|
-
- `full` → multi-line: PR number, URL, draft state, base/head, ready-reminder.
|
|
440
|
+
`→ #N opened: <url>`. Append `→ created as draft — run \`gh pr ready N\` to
|
|
441
|
+
flip` when silent-draft (rule 3); omit on ready.
|
|
431
442
|
|
|
432
443
|
#### 4c. Status claims — verified facts only (MANDATORY)
|
|
433
444
|
|
|
@@ -498,7 +509,8 @@ turns on `gh pr checks` every minute is the tool-loop
|
|
|
498
509
|
untracked-`dist/` cases). When local and CI disagree, CI is authoritative.
|
|
499
510
|
3. **Fix, then re-verify locally** with the narrowest command that proves the
|
|
500
511
|
target green.
|
|
501
|
-
4. **Bounded
|
|
512
|
+
4. **Bounded by the `execution.fix_loop_max` budget (default 10) and its
|
|
513
|
+
ladder, per failing target** ([`autonomous-execution`](../rules/autonomous-execution.md)).
|
|
502
514
|
Same failure signature twice → the hypothesis is wrong; change approach
|
|
503
515
|
rather than spending the third attempt on a near-identical retry.
|
|
504
516
|
5. **The push stays gated — and a fix-the-CI instruction IS the gate being
|
|
@@ -571,19 +583,15 @@ an actual Jira API call succeeded** — never announce "skipped".
|
|
|
571
583
|
|
|
572
584
|
#### 4f. Settings short-circuit — single read per run
|
|
573
585
|
|
|
574
|
-
`
|
|
575
|
-
`commands.create_pr.
|
|
576
|
-
`commands.create_pr.api_examples`, `commands.create_pr.screenshots`,
|
|
577
|
-
`commands.create_pr.ui_paths`, and `commands.create_pr.api_paths` are read
|
|
578
|
-
**once** at the top of the run and cached for the whole `/create-pr`
|
|
586
|
+
`commands.create_pr.preview_description`, `commands.create_pr.detail_level`
|
|
587
|
+
and `commands.create_pr.screenshots` are read **once** at the top of the run and cached for the whole `/create-pr`
|
|
579
588
|
invocation. Do **not** re-read `.agent-settings.yml` in Step 2 or 4b / 4e —
|
|
580
589
|
every branch resolves from the cached values from step 1. The content flags
|
|
581
|
-
(`detail_level`, `
|
|
582
|
-
consumed by the `/create-pr:description-only` generation step (Step 2); the
|
|
590
|
+
(`detail_level`, `screenshots`) are consumed by the `/create-pr:description-only` generation step (Step 2); the
|
|
583
591
|
confirmation/report flags by steps 3–4.
|
|
584
592
|
|
|
585
|
-
When
|
|
586
|
-
|
|
593
|
+
When `preview_description` resolves to its silent default (`false`), steps
|
|
594
|
+
4b + 4e collapse to the single `→ #N opened: <url>` line
|
|
587
595
|
from 4b and a silent 4e. No extra file reads, no "checking settings…"
|
|
588
596
|
narration, no confirmation prompts. Step 4c is never collapsed — status
|
|
589
597
|
claims always carry evidence.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
model_tier: medium
|
|
3
3
|
name: git-pr-merge
|
|
4
4
|
disable-model-invocation: true
|
|
5
|
-
argument-hint: "[all|<pr-number>] [--no-merge]"
|
|
5
|
+
argument-hint: "[all|<pr-number>] [--merge|--no-merge]"
|
|
6
6
|
pack: git
|
|
7
7
|
intent: "Prepare an open PR to mergeable — sync the base in, resolve conflicts semantically, drive required checks green — then merge what the invocation named"
|
|
8
8
|
routes_to: [git-workflow, github-ci]
|
|
@@ -35,6 +35,9 @@ AN EXPLICIT `/pr:merge` INVOCATION IS THE THIS-TURN CONFIRMATION, AND IT
|
|
|
35
35
|
REACHES EXACTLY THE PRs § 1's MANIFEST SNAPSHOTTED FROM IT. IT NEVER REACHES
|
|
36
36
|
A PR THAT ARRIVED LATER, A HEAD THE MANIFEST DID NOT RECORD, OR ANY OTHER
|
|
37
37
|
HARD-FLOOR ACTION. `--no-merge` STILL STOPS BEFORE § 9.
|
|
38
|
+
ADR-282: AN OWNER AUTO-MERGE INSTRUCTION (`--merge`, OR THE OWNER'S OWN WORDS IN
|
|
39
|
+
THE SESSION) IS THE SAME CONFIRMATION FOR A `routine` PR. A `needs-council` PR
|
|
40
|
+
MERGES ONLY ON TWO CONVERGENT CLEARING SEATS (§ 9a) — OTHERWISE THE OWNER DECIDES.
|
|
38
41
|
```
|
|
39
42
|
|
|
40
43
|
**The invocation is the authorization, and nothing else is.** `pr-merge` is
|
|
@@ -76,7 +79,8 @@ merged (§ 5).
|
|
|
76
79
|
| `/pr:merge <N>` | exactly PR N | yes | yes — PR N |
|
|
77
80
|
| `/pr:merge` | ONE PR: green first, then infrastructure/tooling before content, then smallest diff (`changedFiles`, then additions+deletions), tiebreak ascending number | yes | yes — the one PR it selected |
|
|
78
81
|
| `/pr:merge all` | the whole open-PR list, under § 6's cutoff | yes | yes — the manifest, in queue order |
|
|
79
|
-
| `… --
|
|
82
|
+
| `… --merge` | as above | yes | yes, through § 9a's danger gate — the form [`/roadmap:process-full`](../../../product-basic/roadmap/process-full/command.md) calls when the owner gave an auto-merge instruction (ADR-282) |
|
|
83
|
+
| `… --no-merge` | as above | yes | **never**, explicitly. This is the form [`/roadmap:process-full`](../../../product-basic/roadmap/process-full/command.md) calls for its delivery loop without an auto-merge instruction. |
|
|
80
84
|
|
|
81
85
|
**Bare invocation** (`/pr:merge` with no argument) is a **documented default
|
|
82
86
|
flow**, not a menu: it runs the auto-selection in row 2 and says which PR it
|
|
@@ -132,14 +136,94 @@ says what happens to it instead.
|
|
|
132
136
|
|
|
133
137
|
## 2. Sync with the base
|
|
134
138
|
|
|
139
|
+
Check the PR out, read the strategy against its base, then let one script do
|
|
140
|
+
the update, so the branch-convergence policy (the base SET a non-default target
|
|
141
|
+
carries) is read on every path. `show` takes the same `--base` as `sync` and
|
|
142
|
+
runs after the checkout: without `--base` both read the default branch, and a PR
|
|
143
|
+
into any other base would be judged against the wrong commit. `--key
|
|
144
|
+
update_strategy` limits `show`'s exit to the strategy, so a `commit_format` or
|
|
145
|
+
`branch_pattern` the PR head breaks does not stop the update.
|
|
146
|
+
|
|
135
147
|
```bash
|
|
136
148
|
git fetch origin
|
|
137
149
|
gh pr checkout <N>
|
|
138
|
-
git
|
|
150
|
+
agent-config git:convention show --key update_strategy --base origin/<base> # value, source, state
|
|
151
|
+
agent-config git:convention sync --base origin/<base>
|
|
139
152
|
```
|
|
140
153
|
|
|
141
|
-
|
|
142
|
-
|
|
154
|
+
A `git.update_strategy` whose state is `malformed`, `invalid`, `discarded` or
|
|
155
|
+
`unresolvable` is not a strategy — `show` exits `1` on it and the script
|
|
156
|
+
refuses it with exit 4, or with exit 1 when the target itself cannot be
|
|
157
|
+
resolved — so stop on this PR and report the line `show` printed. A
|
|
158
|
+
candidate in such a state (this checkout's uncommitted value) is a warning
|
|
159
|
+
`show` prints with exit `0`; the script never reads it, so it does not stop
|
|
160
|
+
the PR.
|
|
161
|
+
The one narrowing: a base the server names whose commit could not be fetched is
|
|
162
|
+
the `unverified` warning below (exit `0`, nothing merged); origin unreachable at
|
|
163
|
+
the ref lookup is exit `1`. Otherwise
|
|
164
|
+
the strategy decides what the script does — under `merge` it merges the base
|
|
165
|
+
set in, under `rebase` it only checks, because a
|
|
166
|
+
`Merge branch '<base>' into …` commit is what that setting excludes and the
|
|
167
|
+
`/pr:merge` sentence authorises merging the named PRs, not rewriting their
|
|
168
|
+
branches ([`git-history-discipline`](../../../../rules/git-history-discipline.md)).
|
|
169
|
+
Read its exit and its line together:
|
|
170
|
+
|
|
171
|
+
- exit `0` with a `✅` line → the PR is current with its base, or under `merge`
|
|
172
|
+
the base was merged in cleanly; go on to § 3.
|
|
173
|
+
- exit `0` with a `⚠️` line reading `unverified` (the base commit or origin could not be fetched)
|
|
174
|
+
or `BYPASSED` (the convergence policy is disabled at the target) → **not
|
|
175
|
+
checked**: nothing is known about freshness. Stop on this PR and report the
|
|
176
|
+
line; it is never read as current.
|
|
177
|
+
- exit `1` → a conflict report goes to § 3; a base that could not be resolved
|
|
178
|
+
(a `--base` the server does not know, no origin, origin unreachable) stops
|
|
179
|
+
this PR.
|
|
180
|
+
- exit `3` → behind under a strategy other than `merge`. This run never
|
|
181
|
+
rebases a PR it did not author — the rebase is the author's, or a separate
|
|
182
|
+
request under
|
|
183
|
+
[`branch-update`](../../../../skills/git-workflow/references/branch-update.md).
|
|
184
|
+
What happens to the PR is an owner decision (recorded
|
|
185
|
+
2026-10-07), and it turns on one forge setting — whether the base requires an
|
|
186
|
+
up-to-date branch before merging:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
gh api repos/{owner}/{repo}/branches/<base>/protection \
|
|
190
|
+
--jq .required_status_checks.strict 2>&1; echo "exit=$?"
|
|
191
|
+
gh api repos/{owner}/{repo}/rules/branches/<base> \
|
|
192
|
+
--jq '.[] | select(.type == "required_status_checks") | .parameters.strict_required_status_checks_policy'; echo "exit=$?"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Each read has three outcomes, told apart by the exit code and the message:
|
|
196
|
+
|
|
197
|
+
| Read | Absent | Value | Failed |
|
|
198
|
+
|---|---|---|---|
|
|
199
|
+
| classic protection | non-zero exit **and** the output contains `(HTTP 404)` (`Branch not protected`); or exit `0` with `null` — the branch is protected but requires no status checks | exit `0`: `true` or `false` | any other non-zero exit, or output that is not `true` / `false` / `null` |
|
|
200
|
+
| rulesets | exit `0` with empty output (no rule requiring status checks) | exit `0`: one or more lines, each `true` or `false` | non-zero exit, or a line that is not `true` / `false` |
|
|
201
|
+
|
|
202
|
+
A `404` from the classic endpoint is not a failed read: it is what a branch
|
|
203
|
+
protected only by rulesets, or not protected at all, returns; nor is `null`
|
|
204
|
+
from a `200`, which is a protected branch with no required status checks.
|
|
205
|
+
The rulesets read prints one line per ruleset on the base that requires
|
|
206
|
+
status checks, so a base covered by several prints several lines: **any**
|
|
207
|
+
`true` line reads as `true`; all lines `false` reads as `false`. Either reading
|
|
208
|
+
`true` means the forge requires an up-to-date branch; both absent or `false`
|
|
209
|
+
means it does not; a **failed** read is treated as required. A base
|
|
210
|
+
protected by rulesets alone is decided by the rulesets read.
|
|
211
|
+
- **The forge does not require an up-to-date branch**, and the PR is green
|
|
212
|
+
and conflict-free → it goes on to § 3–§ 9 and is merged behind its base;
|
|
213
|
+
the summary row says so (`merged behind <base>; the forge does not require
|
|
214
|
+
an up-to-date branch`). Its checks never ran against the current base, and
|
|
215
|
+
the summary is where that stays visible.
|
|
216
|
+
- **The forge requires an up-to-date branch** → disposition
|
|
217
|
+
`blocked-external`, the row naming that setting as the reason.
|
|
218
|
+
- **The line reads `TARGET_POLICY_STALE`** → the PR is current with its
|
|
219
|
+
non-default target and that target is itself behind its default branch:
|
|
220
|
+
`blocked-external`, reason "the target's update", whatever the forge
|
|
221
|
+
setting. A PR also behind its target gets the ordinary behind line instead,
|
|
222
|
+
with the target's lag as a note.
|
|
223
|
+
- exit `4` → the strategy could not be read (the line names the reason code
|
|
224
|
+
and the file); nothing was checked or merged. Stop on this PR and report it.
|
|
225
|
+
- any other exit → the check could not run (internal error); stop on this PR
|
|
226
|
+
and report the script's message.
|
|
143
227
|
|
|
144
228
|
## 3. Resolve conflicts by class, never by taste
|
|
145
229
|
|
|
@@ -281,6 +365,15 @@ After each merge the base has moved, so the next PR is re-synced against the
|
|
|
281
365
|
NEW base — that is the loop, and it is why pre-greening several PRs ahead of
|
|
282
366
|
their merges is wasted work.
|
|
283
367
|
|
|
368
|
+
**Under a strategy other than `merge`**, every PR after the first is behind the
|
|
369
|
+
base the previous merge moved, and this run rebases none of them. Where the
|
|
370
|
+
forge does not require an up-to-date branch, a green, conflict-free PR that is
|
|
371
|
+
behind still merges (§ 2, exit `3`) — three green branches merge without three
|
|
372
|
+
sequential rebases — and each such row says it merged behind its base. Where
|
|
373
|
+
the forge requires an up-to-date branch, the first merge leaves every remaining
|
|
374
|
+
PR `blocked-external`, and the summary names that setting rather than leaving
|
|
375
|
+
the reader to find it.
|
|
376
|
+
|
|
284
377
|
**Under `--no-merge` that loop does not turn**, and the paragraph above is
|
|
285
378
|
written for the form that does. Nothing merges, so the base does not advance,
|
|
286
379
|
no PR leaves the open list, and the run is a **preparation sweep**: it syncs,
|
|
@@ -379,12 +472,41 @@ NO ROLLBACK, ONLY COMPENSATION, AND COMPENSATION IS A SEPARATELY AUTHORIZED
|
|
|
379
472
|
HUMAN DECISION. STOP, EMIT THE MERGE SHAs AND THE REASON, HAND OVER.
|
|
380
473
|
```
|
|
381
474
|
|
|
475
|
+
## 9a. Danger gate — before every merge (ADR-282)
|
|
476
|
+
|
|
477
|
+
Once required checks are green on the manifest head and the PR is mergeable:
|
|
478
|
+
|
|
479
|
+
```bash
|
|
480
|
+
./scripts-run src/scripts/classify_merge_risk <N>
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
The last line is the verdict; each trigger names the rule it comes from. An
|
|
484
|
+
unreadable diff is `needs-council` — the gate fails closed.
|
|
485
|
+
|
|
486
|
+
- **`routine`** → merge in § 9. No review step.
|
|
487
|
+
- **`needs-council`** → the AI council reviews the diff with a **neutral**
|
|
488
|
+
prompt (scope, diff, the triggers, two questions: *does any of the six
|
|
489
|
+
dangerous-action predicates of the authority-routing council record
|
|
490
|
+
(`agents/evidence/council/authority-routing-20261007.md` § 4) apply?* and *is
|
|
491
|
+
an owner review unnecessary?* — never an expected answer, per
|
|
492
|
+
`evaluator-independence`). A council may resolve doubt but cannot waive
|
|
493
|
+
danger: a seat finding that a predicate applies is a "dangerous" seat. Record the prompt and both
|
|
494
|
+
verdicts under `agents/evidence/`. **Both seats: not dangerous, owner review
|
|
495
|
+
unnecessary → merge.** Dangerous, split, degraded quorum, or council
|
|
496
|
+
unavailable → do not merge; record the PR `unauthorized` and hand it to the
|
|
497
|
+
owner with the seats' reasons.
|
|
498
|
+
|
|
499
|
+
A `needs-council` clearance only clears the merge. Deploy, release and every
|
|
500
|
+
other Hard-Floor action keep their own confirmation.
|
|
501
|
+
|
|
382
502
|
## 9. Merge, and the summary
|
|
383
503
|
|
|
384
504
|
```bash
|
|
385
|
-
gh pr merge <N> --<detected-method> --delete-branch
|
|
505
|
+
gh pr merge <N> --<detected-method> --delete-branch --match-head-commit <manifest-head-sha>
|
|
386
506
|
```
|
|
387
507
|
|
|
508
|
+
`--match-head-commit` makes the forge refuse a head the manifest did not record.
|
|
509
|
+
|
|
388
510
|
Detect the method once, at invocation, and reuse it for the whole queue:
|
|
389
511
|
|
|
390
512
|
```bash
|
|
@@ -409,8 +531,11 @@ run, so it does not exist until one has happened): one row per PR with queue
|
|
|
409
531
|
position, the `base_ref@base_sha` it was prepared against — without it a
|
|
410
532
|
"prepared" row records nothing checkable, since mergeability is a fact about a
|
|
411
533
|
base and not about a queue —
|
|
412
|
-
conflict classes hit, CI iterations used, disposition
|
|
413
|
-
|
|
534
|
+
conflict classes hit, CI iterations used, disposition **with its reason** —
|
|
535
|
+
`merged behind <base>` where § 2 merged a PR its forge let through behind,
|
|
536
|
+
`requires an up-to-date branch` or `TARGET_POLICY_STALE` for a behind PR left
|
|
537
|
+
blocked — and any edits dropped in conflict resolution. Every PR the run saw
|
|
538
|
+
gets a row; none is summarised away. The disposition set is closed:
|
|
414
539
|
|
|
415
540
|
`merged <sha>` · `superseded-closed` · `blocked-external` · `twice-exhausted` ·
|
|
416
541
|
`unauthorized` · `arrived-after-cutoff`
|
|
@@ -430,7 +555,9 @@ ends this run prepared and unmerged.
|
|
|
430
555
|
`--no-merge` is the explicit way to say stop before § 9.
|
|
431
556
|
- **Never widen, patch, or rebuild-around the git guard.** Verification of the
|
|
432
557
|
authorization window is read-only.
|
|
433
|
-
- **
|
|
558
|
+
- **The base comes in per `git.update_strategy`**: under `merge` it is merged
|
|
559
|
+
in; under `rebase` this command never rebases — a behind PR is reported
|
|
560
|
+
(exit 3) and the rewrite stays the author's, under `git-history-discipline`.
|
|
434
561
|
- **Never hand-merge a generated artefact**; regenerate it.
|
|
435
562
|
- **Never resolve a conflict outside the four classes**; halt instead.
|
|
436
563
|
- **Never call CI green off a local run**; re-verify on the pushed head.
|
|
@@ -73,6 +73,15 @@ git checkout {child-branch}
|
|
|
73
73
|
git merge {parent-branch} --no-edit
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
+
- **Under `git.update_strategy: rebase`** do not merge the chain: a merge
|
|
77
|
+
commit on a feature branch is what that setting excludes, and this command
|
|
78
|
+
must not leave one behind to be pushed later. Check the target branch back
|
|
79
|
+
out, report which branches are behind their parent, and finish without error
|
|
80
|
+
— the review then runs against `git merge-base HEAD origin/<parent-branch>`
|
|
81
|
+
(the remote ref step 4 fetched; a local branch may be missing or stale), the
|
|
82
|
+
target's direct parent in the chain, so parent PRs stay out of it. Updating the
|
|
83
|
+
chain is a rebase the user asks for
|
|
84
|
+
([`branch-update`](../../../skills/git-workflow/references/branch-update.md)).
|
|
76
85
|
- If a **merge conflict** occurs at any point:
|
|
77
86
|
- Run `git merge --abort`
|
|
78
87
|
- Abort the entire process immediately
|
|
@@ -87,18 +96,11 @@ Once all merges succeed:
|
|
|
87
96
|
git checkout {head-branch-of-target-PR}
|
|
88
97
|
```
|
|
89
98
|
|
|
90
|
-
### 7. Report
|
|
99
|
+
### 7. Report
|
|
91
100
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
- `off` → emit nothing on success; surface warnings/errors only.
|
|
96
|
-
- `minimal` (default) → one line:
|
|
97
|
-
`→ {branch} ready · {N} branches merged · {warnings or "clean"}`.
|
|
98
|
-
- `full` → multi-line block listing:
|
|
99
|
-
- Which branch chain was processed (in order)
|
|
100
|
-
- That the target branch is now checked out and up to date
|
|
101
|
-
- Any warnings (e.g. branch was already up to date)
|
|
101
|
+
One line on success:
|
|
102
|
+
`→ {branch} ready · {N} branches merged · {warnings or "clean"}`.
|
|
103
|
+
Warnings and errors are always surfaced.
|
|
102
104
|
|
|
103
105
|
## Rules
|
|
104
106
|
|
|
@@ -129,15 +129,8 @@ LEGACY CHECK (indicators):
|
|
|
129
129
|
═══════════════════════════════════════════════
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
- `false` → continue to Phase 2 silently (user invoked `/project-analyze`
|
|
135
|
-
for the full pass; "continue" is dominant).
|
|
136
|
-
- `true` → ask:
|
|
137
|
-
```
|
|
138
|
-
> 1. Continue with Phase 2 — architecture analysis
|
|
139
|
-
> 2. Stop here — keep the overview only
|
|
140
|
-
```
|
|
132
|
+
Continue to Phase 2 silently — the user invoked `/project-analyze` for the
|
|
133
|
+
full pass, so "continue" is dominant and asking is a routine confirmation.
|
|
141
134
|
|
|
142
135
|
### 2. Architecture mapping
|
|
143
136
|
|
|
@@ -249,15 +242,8 @@ BUSINESS DOMAINS:
|
|
|
249
242
|
═══════════════════════════════════════════════
|
|
250
243
|
```
|
|
251
244
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
- `false` → create domain analysis files silently (user invoked
|
|
255
|
-
`/project-analyze`; "yes, create" is dominant).
|
|
256
|
-
- `true` → ask:
|
|
257
|
-
```
|
|
258
|
-
> 1. Yes — create domain analysis files
|
|
259
|
-
> 2. Skip — continue with next phase
|
|
260
|
-
```
|
|
245
|
+
Create the domain analysis files silently — the user invoked
|
|
246
|
+
`/project-analyze`, so "yes, create" is dominant.
|
|
261
247
|
|
|
262
248
|
For each confirmed domain, create `agents/evidence/analysis/domains/{domain}.md` using the template
|
|
263
249
|
from the `project-analyzer` skill.
|
|
@@ -286,14 +272,7 @@ SERVICE MAP:
|
|
|
286
272
|
═══════════════════════════════════════════════
|
|
287
273
|
```
|
|
288
274
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
- `false` → create API + service analysis files silently.
|
|
292
|
-
- `true` → ask:
|
|
293
|
-
```
|
|
294
|
-
> 1. Yes — create API and service analysis files
|
|
295
|
-
> 2. Skip — continue with next phase
|
|
296
|
-
```
|
|
275
|
+
Create the API + service analysis files silently.
|
|
297
276
|
|
|
298
277
|
Create:
|
|
299
278
|
- `agents/evidence/analysis/api/endpoints-v1.md`
|
|
@@ -315,15 +294,8 @@ Write all remaining analysis files that haven't been created yet:
|
|
|
315
294
|
- `agents/evidence/analysis/modules/{module}.md` — one per module
|
|
316
295
|
- `agents/evidence/analysis/testing/test-map.md` — test suites, coverage, strategy
|
|
317
296
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
- `false` → create all listed files silently (per-file picker is pure
|
|
321
|
-
noise once the user invoked `/project-analyze`).
|
|
322
|
-
- `true` → for each file, ask:
|
|
323
|
-
```
|
|
324
|
-
> 1. Create — {filename}
|
|
325
|
-
> 2. Skip
|
|
326
|
-
```
|
|
297
|
+
Create all listed files silently — a per-file picker is pure noise once the
|
|
298
|
+
user invoked `/project-analyze`.
|
|
327
299
|
|
|
328
300
|
### 8. Gap analysis & action plan
|
|
329
301
|
|
|
@@ -28,7 +28,7 @@ packs:
|
|
|
28
28
|
Accept one of four input paths:
|
|
29
29
|
|
|
30
30
|
1. **Explicit key** — `/refine-ticket PROJ-123`
|
|
31
|
-
2. **Branch detection** — no arg → `git
|
|
31
|
+
2. **Branch detection** — no arg → `agent-config git:convention ticket` on the current branch ([`commit-subject`](../../../skills/git-workflow/references/commit-subject.md) § Reading the ticket)
|
|
32
32
|
3. **Pasted text** — markdown block under the command
|
|
33
33
|
4. **URL** — `/refine-ticket https://…/browse/PROJ-123`
|
|
34
34
|
|
|
@@ -39,10 +39,14 @@ to make sure the current branch is up to date with its base chain:
|
|
|
39
39
|
- If exactly one open PR is found → invoke `/prepare-for-review`
|
|
40
40
|
with that PR number. It will update `main`, fetch and merge the
|
|
41
41
|
full branch chain into the current branch, and leave the current
|
|
42
|
-
branch checked out.
|
|
42
|
+
branch checked out — under `git.update_strategy: rebase` it merges
|
|
43
|
+
nothing and reports the behind branches instead.
|
|
43
44
|
- If no open PR is found → fall back to a minimal local update:
|
|
44
45
|
`git fetch origin main` and `git merge origin/main --no-edit` on
|
|
45
|
-
the current branch. Abort on conflict and report.
|
|
46
|
+
the current branch. Abort on conflict and report. Under
|
|
47
|
+
`git.update_strategy: rebase` skip the merge: `git fetch origin main`
|
|
48
|
+
only, review the diff against `git merge-base HEAD origin/main`, and say
|
|
49
|
+
the branch is behind.
|
|
46
50
|
- If multiple PRs are found → ask the user which PR to use before
|
|
47
51
|
proceeding.
|
|
48
52
|
- If `/prepare-for-review` aborts (merge conflict, network error,
|
|
@@ -324,23 +328,12 @@ before re-review, hand off to
|
|
|
324
328
|
generate→run→revise→re-run loop gated by a numeric threshold, then a judge
|
|
325
329
|
confirms. Surface it as a single follow-up line; do not auto-invoke.
|
|
326
330
|
|
|
327
|
-
### 7. Quality tools
|
|
331
|
+
### 7. Quality tools
|
|
328
332
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
- `true` → ask:
|
|
334
|
-
```
|
|
335
|
-
> 1. Yes — run quality tools (formatter, static analyzer, linters)
|
|
336
|
-
> 2. No — review done
|
|
337
|
-
```
|
|
338
|
-
If yes, hand off to the project's quality workflow (e.g.
|
|
339
|
-
`/quality-fix` or the equivalent configured command). The quality and
|
|
340
|
-
test runners are resolved per-stack via the
|
|
341
|
-
[`toolchain-resolver`](../../contexts/execution/toolchain-resolver.md), so
|
|
342
|
-
the hand-off adapts to PHP / JS-TS / Python / Go / Rust rather than
|
|
343
|
-
assuming one stack.
|
|
333
|
+
Emit `→ run /quality-fix to format + lint` as a single follow-up line; do not
|
|
334
|
+
auto-invoke and do not ask. The user runs it explicitly; its quality and test
|
|
335
|
+
runners are resolved per-stack via the
|
|
336
|
+
[`toolchain-resolver`](../../contexts/execution/toolchain-resolver.md).
|
|
344
337
|
|
|
345
338
|
## Backward compatibility
|
|
346
339
|
|
|
@@ -354,7 +347,9 @@ Per `verbosity.routine_confirmations` (default `false`):
|
|
|
354
347
|
quality tools hand-off
|
|
355
348
|
- The new step 1 (`/prepare-for-review`) is **best-effort**: if no
|
|
356
349
|
open PR exists for the current branch, it falls back to a plain
|
|
357
|
-
`git fetch
|
|
350
|
+
`git fetch origin main` and, under the default `git.update_strategy:
|
|
351
|
+
merge`, `git merge origin/main --no-edit`; under `rebase` it merges
|
|
352
|
+
nothing and reports the branch as behind. Existing invocations that
|
|
358
353
|
ran on a fully detached or pre-PR branch keep working
|
|
359
354
|
|
|
360
355
|
## Use this command when
|
|
@@ -417,7 +417,7 @@ Declared by `produces_roadmap: true` in the frontmatter and enforced by
|
|
|
417
417
|
`lint_roadmap_producers`: a producer that does not end here reds CI.
|
|
418
418
|
|
|
419
419
|
Read `planning.closure_pass` (missing = `true`). When active, run
|
|
420
|
-
|
|
420
|
+
`/challenge-me closure` on the
|
|
421
421
|
roadmap this command just produced, before handing back:
|
|
422
422
|
|
|
423
423
|
```bash
|
|
@@ -83,7 +83,7 @@ Declared by `produces_roadmap: true` in the frontmatter and enforced by
|
|
|
83
83
|
`lint_roadmap_producers`: a producer that does not end here reds CI.
|
|
84
84
|
|
|
85
85
|
Read `planning.closure_pass` (missing = `true`). When active, run
|
|
86
|
-
|
|
86
|
+
`/challenge-me closure` on the
|
|
87
87
|
roadmap this command just produced, before handing back:
|
|
88
88
|
|
|
89
89
|
```bash
|
|
@@ -280,7 +280,16 @@ was for a conflict whose entire existence is a remote fact. That is the friction
|
|
|
280
280
|
this clause removes; the floor it keeps is the *unnamed* push.
|
|
281
281
|
|
|
282
282
|
**Before every push to the open PR**, bring the branch up to its base with
|
|
283
|
-
|
|
283
|
+
`agent-config git:convention sync --base origin/<base>` (`<base>` is the
|
|
284
|
+
`baseRefName` of the branch's `OPEN` pull request, read with `gh pr view --json
|
|
285
|
+
state,baseRefName`; without an open one, and without `--base`, the target is the default branch) and regenerate afterwards (under
|
|
286
|
+
`git.update_strategy: rebase` it refuses a behind branch with exit 3 — rebase on request instead, per
|
|
287
|
+
[`branch-update`](../../../../skills/git-workflow/references/branch-update.md); an exit 3
|
|
288
|
+
reading `TARGET_POLICY_STALE` means the branch is current with its non-default
|
|
289
|
+
target and the target is itself behind its default branch — that is the target's update, reported, never a rebase of this
|
|
290
|
+
branch; on exit 4 the
|
|
291
|
+
strategy could not be read, the line names the reason code and the file, nothing
|
|
292
|
+
was merged, and the run stops before the push until that file is fixed). Measured on
|
|
284
293
|
this run: the base moved three times, the push was rejected twice for it, and the
|
|
285
294
|
PR reached `CONFLICTING` in between. Verify the result afterwards with
|
|
286
295
|
`./scripts-run src/scripts/check_pr_ci_current` — a green local gate says nothing
|