@event4u/agent-config 16.3.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 +251 -0
- package/README.md +2 -2
- package/agents/templates/.ai-council.yml.example +26 -8
- package/dist/agent-src/commands/analyze/inbox.md +10 -7
- 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 +1 -1
- package/dist/agent-src/commands/fix/ci.md +17 -3
- 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 +3 -3
- 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/next.md +10 -1
- package/dist/agent-src/commands/roadmap/process-full.md +52 -38
- package/dist/agent-src/commands/roadmap/resolve-blockers.md +64 -14
- 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/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 +1 -1
- 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 +67 -52
- 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 +4 -10
- 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 +0 -1
- 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 +0 -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 +0 -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 +0 -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 +5 -5
- 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 +2 -3
- package/dist/agent-src/rules/delegation-policy.md +2 -3
- package/dist/agent-src/rules/design-fidelity.md +0 -1
- 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 +0 -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 +0 -1
- package/dist/agent-src/rules/domain-safety-pii.md +0 -1
- package/dist/agent-src/rules/domain-safety-retention.md +0 -1
- package/dist/agent-src/rules/downstream-changes.md +0 -1
- package/dist/agent-src/rules/engineering-safety-floor.md +0 -1
- 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 +1 -2
- package/dist/agent-src/rules/finance-safety-floor.md +0 -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 +1 -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 +0 -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 +0 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +0 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +0 -1
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
- package/dist/agent-src/rules/media-governance-routing.md +1 -2
- 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 +2 -3
- 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 +2 -3
- package/dist/agent-src/rules/question-not-instruction.md +0 -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 +3 -6
- 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 +0 -1
- package/dist/agent-src/rules/scale-discipline.md +0 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +0 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +0 -1
- 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 +0 -1
- package/dist/agent-src/rules/settings-ask-protocol.md +5 -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 +0 -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 +0 -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 +0 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +0 -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 +0 -1
- package/dist/agent-src/scripts/gate_budget.ts +47 -23
- package/dist/agent-src/scripts/gate_execute.ts +12 -4
- 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/bug-analyzer/SKILL.md +1 -1
- 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/estimate-ticket/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/jira-integration/SKILL.md +3 -3
- package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -2
- package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- 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/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/skill.md +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli-delegate/check_update_banner.js +195 -119
- package/dist/cli-delegate/{chunk-TRI6DQZ6.js → chunk-5GPULQBE.js} +60 -42
- package/dist/cli-delegate/{chunk-JQVYKIZA.js → chunk-6SRJTYJS.js} +33 -177
- package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
- 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-NQ7WT43P.js → chunk-AED2VQGM.js} +65 -11
- package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
- package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
- package/dist/cli-delegate/{chunk-NXEILF2K.js → chunk-F3QDG2GT.js} +481 -72
- package/dist/cli-delegate/{chunk-CQWX336L.js → chunk-G5VVIZRC.js} +3 -3
- package/dist/cli-delegate/{chunk-JY2I2DXV.js → chunk-H76PHZBI.js} +137 -60
- package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
- package/dist/cli-delegate/{chunk-LIYTLH6O.js → chunk-KXXWJTDO.js} +5 -10
- package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
- package/dist/cli-delegate/{chunk-S4YWNRKO.js → chunk-MDPPKQCQ.js} +34 -1
- package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-MSUL5NYP.js} +5 -5
- package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
- package/dist/cli-delegate/{chunk-GKE7ZVFA.js → chunk-PWX7CKMD.js} +1 -1
- package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
- package/dist/cli-delegate/{chunk-RQNNW7IF.js → chunk-T7XSJSUQ.js} +433 -632
- package/dist/cli-delegate/{chunk-EEHDXSYD.js → chunk-WQWXGIWB.js} +12 -273
- package/dist/cli-delegate/{chunk-QLDHIPWR.js → chunk-XQTPXKFA.js} +1 -1
- 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 +105 -35
- package/dist/cli-delegate/cmd_converge.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +15 -12
- package/dist/cli-delegate/cmd_doctor_neighbours.js +11 -4
- package/dist/cli-delegate/cmd_explain.js +43 -19
- package/dist/cli-delegate/cmd_export.js +10 -10
- package/dist/cli-delegate/cmd_git_convention.js +1851 -0
- package/dist/cli-delegate/cmd_handoff.js +40 -21
- package/dist/cli-delegate/cmd_mcp_available.js +3 -2
- package/dist/cli-delegate/cmd_migrate.js +3 -3
- package/dist/cli-delegate/cmd_packs_active.js +4 -3
- package/dist/cli-delegate/cmd_prune.js +10 -10
- package/dist/cli-delegate/cmd_route_audit.js +7 -7
- package/dist/cli-delegate/cmd_route_explain.js +5 -5
- package/dist/cli-delegate/cmd_session_recycle.js +9 -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 +10 -10
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +10 -10
- package/dist/cli-delegate/cmd_uninstall.js +10 -10
- package/dist/cli-delegate/cmd_update.js +7 -7
- package/dist/cli-delegate/cmd_upgrade.js +7 -7
- package/dist/cli-delegate/cmd_validate.js +10 -10
- package/dist/cli-delegate/cmd_versions.js +5 -5
- package/dist/cli-delegate/gate_budget.js +1 -1
- package/dist/cli-delegate/gate_execute.js +2 -2
- package/dist/cli-delegate/roadmap_gates.js +2 -2
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +129 -90
- 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 +24 -9
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +5 -4
- package/dist/hooks/dispatch.js +2151 -1820
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/install/install.mjs +462 -431
- package/dist/install/installThinLayer.js +40 -12
- package/dist/install/installedRuleLinks.js +105 -19
- 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 +2702 -1995
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +15 -120
- 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 +344 -18
- package/dist/scripts/_lib/package_root.js +68 -0
- package/dist/scripts/_lib/rule_law_section.js +1 -1
- package/dist/scripts/_lib/settings_removed_keys.js +168 -0
- package/dist/scripts/_lib/thin_rules.js +80 -3
- 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 +23 -81
- package/dist/shared/skillRanking.js +30 -4
- 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 +35 -65
- 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/gate_budget.ts +47 -23
- package/src/agent-src/scripts/gate_execute.ts +12 -4
- 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/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/config/agent-settings.template.yml +79 -312
- 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 +3 -3
- package/src/config/discovery/packs.yml +17 -1
- package/src/config/evaluator-budgets.json +19 -6
- package/src/config/gate-coverage.yml +65 -23
- package/src/config/gate-violation-baselines.json +53 -13
- package/src/config/gitignore-block.txt +19 -0
- package/src/config/hook-bundle-budget.json +1 -1
- package/src/config/release-gate-locality.yml +2 -1
- package/src/config/routing-coverage-seed.json +48 -6
- package/src/config/rule-law-ceilings.json +12 -6
- package/src/config/rule-obligations.json +833 -0
- package/src/install/installThinLayer.ts +76 -10
- package/src/install/installedRuleLinks.ts +105 -17
- 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 +10 -10
- package/src/scripts/_cli/cmd_doctor_neighbours.ts +133 -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 +37 -2
- package/src/scripts/_lib/agent_settings.ts +15 -124
- package/src/scripts/_lib/blocked_by_marker.ts +1 -1
- package/src/scripts/_lib/compile_time_toggles.ts +12 -21
- package/src/scripts/_lib/dispatch_import_closure.ts +163 -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/global_deploy_inventory.ts +74 -0
- package/src/scripts/_lib/graph_feeder_record.ts +236 -13
- package/src/scripts/_lib/installed_layer.ts +448 -23
- package/src/scripts/_lib/knowledge_global.ts +14 -1
- package/src/scripts/_lib/module_reach.ts +456 -0
- package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
- package/src/scripts/_lib/neighbour_tool_use.ts +8 -10
- 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/rule_law_section.ts +1 -1
- 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/test_red_state.ts +5 -0
- package/src/scripts/_lib/thin_rules.ts +83 -3
- package/src/scripts/_lib/touched_file_quality.ts +142 -6
- package/src/scripts/_lib/worker_budget.ts +1 -1
- package/src/scripts/adr/regenerate_index.ts +16 -1
- package/src/scripts/ai_council/config.ts +7 -7
- 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_team/config.ts +11 -16
- package/src/scripts/audit_user_type_axis.ts +20 -8
- 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/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_evaluator_budgets.ts +4 -0
- package/src/scripts/check_finding_dispositions.ts +88 -25
- 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 +107 -0
- package/src/scripts/check_kernel_edit_ratified.ts +86 -6
- package/src/scripts/check_pack_size.ts +1 -1
- package/src/scripts/check_release_manifest_content.ts +189 -0
- package/src/scripts/check_standing_rule_delivery.ts +96 -0
- package/src/scripts/check_suppression_hygiene.ts +2 -5
- 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/command_suggester/settings.ts +8 -108
- package/src/scripts/command_suggester/types.ts +4 -5
- 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/explain_run.ts +8 -13
- package/src/scripts/generate_git_convention_grammar.ts +127 -0
- package/src/scripts/generate_host_cost_table.ts +20 -3
- package/src/scripts/handoff_context_hook.ts +86 -37
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +25 -6
- package/src/scripts/hooks/block_config_weakening.ts +48 -5
- package/src/scripts/hooks/block_plumbing_writes.ts +8 -4
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
- package/src/scripts/hooks/evidence_independence.ts +12 -4
- package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
- package/src/scripts/hooks/push_settle_hook.ts +4 -3
- package/src/scripts/hooks/rule_inject_hook.ts +44 -3
- package/src/scripts/hooks/state_io.ts +8 -4
- package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
- package/src/scripts/hooks/turn_end_gate_hook.ts +1 -0
- package/src/scripts/install-hooks.sh +42 -14
- package/src/scripts/install.ts +7 -31
- 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_pack_boundaries.ts +406 -28
- 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 +151 -21
- 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 +12 -1
- package/src/scripts/measure_skill_ranker_baseline.ts +5 -0
- package/src/scripts/model_rule_injection.ts +3 -3
- 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/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_installed_rule_links.ts +118 -1
- package/src/scripts/report_module_reach.ts +212 -0
- package/src/scripts/report_obligation_mechanism.ts +16 -18
- package/src/scripts/report_parked_blockers.ts +222 -0
- package/src/scripts/report_required_checks_drift.ts +196 -0
- package/src/scripts/report_skill_ranker_confusion.ts +103 -2
- package/src/scripts/report_standing_payload_by_host.ts +1 -1
- package/src/scripts/routing_doctor.ts +2 -2
- package/src/scripts/schemas/agent-settings.schema.json +17 -31
- package/src/scripts/schemas/command.schema.json +1 -1
- package/src/scripts/schemas/skill.schema.json +1 -1
- package/src/scripts/self_review_gate.ts +39 -2
- package/src/scripts/skill_tools/score_skill_relevance.ts +28 -19
- package/src/scripts/sync_pr_branch.ts +403 -132
- package/src/scripts/trigger_eval_grandfather.json +0 -16
- package/src/server/schemas/settings.ts +33 -177
- package/src/shared/skillRanking.ts +53 -4
- package/dist/cli-delegate/chunk-NYX3L2PZ.js +0 -99
- 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,205 @@
|
|
|
1
|
+
# The ticket, the commit subject and the branch name
|
|
2
|
+
|
|
3
|
+
Detail for [`git-workflow`](../SKILL.md) and
|
|
4
|
+
[`conventional-commits-writing`](../../conventional-commits-writing/SKILL.md).
|
|
5
|
+
The one place that says how a ticket is read out of a branch name, where it goes
|
|
6
|
+
in a commit subject, which convention is in force, and how a branch name is
|
|
7
|
+
rendered. `/commit`, `/commit:in-chunks`, `/fix:commit-messages`,
|
|
8
|
+
`/create-pr:description-only`, `/worktree:create` and the `jira-integration`
|
|
9
|
+
skill defer here.
|
|
10
|
+
|
|
11
|
+
The rules are code: `agent-config git:convention` runs them, and the commands
|
|
12
|
+
call it. This page is what a command reads **when the verb cannot run** — no
|
|
13
|
+
`agent-config` on `PATH`, or exit `2` for a usage or unknown-verb error. Then
|
|
14
|
+
apply the generated block below by reading, say once that the verb was
|
|
15
|
+
unavailable, and never invent a grammar the block does not show. Exit `2` with
|
|
16
|
+
`no subjects on stdin — the verb ran` is not that case: the verb ran and
|
|
17
|
+
received nothing, so pipe the subjects again rather than falling back.
|
|
18
|
+
|
|
19
|
+
## Reading the ticket
|
|
20
|
+
|
|
21
|
+
`agent-config git:convention ticket [BRANCH] [--keys "<line>"]` — the current
|
|
22
|
+
branch when `BRANCH` is omitted. It prints `ticket <ID>` or `ticket none`, then
|
|
23
|
+
every candidate with its status:
|
|
24
|
+
|
|
25
|
+
- **Every match counts**, in order, wherever it sits (`feat/DEV-1234/...`,
|
|
26
|
+
`DEV-1234-device-export`, `fix/DEV-1234-quantity` → `DEV-1234`). The match
|
|
27
|
+
never depends on `git.branch_pattern`, so a branch named before the pattern was
|
|
28
|
+
set still yields its ticket. The first candidate with status `ticket` wins.
|
|
29
|
+
- **`standard-name`** — a key in the denylist (`UTF-8`, `ISO-8601`, `SHA-256`,
|
|
30
|
+
`CVE-2026-12345`, `CWE-79`) is never a ticket, with or without a card:
|
|
31
|
+
`fix/CVE-2026-12345-patch` yields none.
|
|
32
|
+
- **`version-like`** — without a card, a protocol or language name followed
|
|
33
|
+
by a one-digit number (`HTTP-2`, `PHP-8`; the list is the `version-like names`
|
|
34
|
+
row below) is a major version, not a ticket: `feat/HTTP-2-support` yields
|
|
35
|
+
none. Two or more digits (`PHP-12`) read as a ticket, and a card that lists
|
|
36
|
+
the key keeps it a ticket.
|
|
37
|
+
- **Case** — without a card only an upper-case key is detected, so
|
|
38
|
+
`feat/dev-12-export` yields none. With `--keys`, a key written in any case is
|
|
39
|
+
matched against the card and reported upper-cased (`dev-12` → `DEV-12`).
|
|
40
|
+
- **`unknown-key`** — `--keys` takes the `ticket_keys` line of the approved
|
|
41
|
+
convention card (`agents/memory/curated/conventions/approved/commit-subject.md`,
|
|
42
|
+
see the [`conventional-commits-writing`](../../conventional-commits-writing/SKILL.md)
|
|
43
|
+
skill § 4), as the caller reads it. A candidate whose key is not on it is
|
|
44
|
+
asked about by `/commit` — a yes adds the key to the card — and omitted by
|
|
45
|
+
`/commit:in-chunks`. Without a card the grammar, the denylist and the
|
|
46
|
+
version-like names decide alone.
|
|
47
|
+
- **`proposal`** — without `--keys`, a commitlint config's `issuePrefixes` are
|
|
48
|
+
printed as a proposed `ticket_keys` line. Offer it; the verb writes nothing.
|
|
49
|
+
|
|
50
|
+
## Placing the ticket
|
|
51
|
+
|
|
52
|
+
| `git.commit_format` | With a ticket | Without a ticket |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| `ticket-scope` (default) | `feat(DEV-1234): add export filter` | `feat: add export filter` — never `feat(): …` |
|
|
55
|
+
| `ticket-conventional` | `DEV-1234 feat(exporter): add export filter` | `feat(exporter): add export filter` |
|
|
56
|
+
|
|
57
|
+
Under `ticket-conventional` **a ticket is never in the scope** — not as the
|
|
58
|
+
scope, not inside a compound one (`feat(api,DEV-1234)` fails). The scope names
|
|
59
|
+
the system area (`api/audio`, `ci`), only where it adds clarity.
|
|
60
|
+
|
|
61
|
+
**Under an approved family** (the card's `dominant_family`) the ticket is
|
|
62
|
+
optional, as under `ticket-conventional`: with a ticket it stands in the
|
|
63
|
+
family's leading position (`[DEV-1234] Add export filter`), without one the
|
|
64
|
+
subject is the family's form without the ticket part (`Add export filter`), and
|
|
65
|
+
a ticket anywhere else fails. A branch without a ticket is therefore never a
|
|
66
|
+
stop under a card.
|
|
67
|
+
|
|
68
|
+
Git's own `fixup!`, `squash!`, `amend!` and `Revert "…"` subjects are valid under
|
|
69
|
+
both `git.commit_format` values and under every family: git writes them itself,
|
|
70
|
+
so the same rule holds everywhere a subject is checked.
|
|
71
|
+
|
|
72
|
+
**Area scope under `/commit:in-chunks`.** Several commits on one branch carry the
|
|
73
|
+
same ticket in front of each; the scope is chosen per commit from the area that
|
|
74
|
+
commit touches, and dropped where no single area fits. A chunk never inherits
|
|
75
|
+
another chunk's scope.
|
|
76
|
+
|
|
77
|
+
## Which convention is in force
|
|
78
|
+
|
|
79
|
+
`agent-config git:convention subject` reads subjects on stdin, one per line, and
|
|
80
|
+
resolves the convention in this order — the first that applies decides:
|
|
81
|
+
|
|
82
|
+
1. **A declaration** — `git.commit_format` in `.git-convention.yml` (either
|
|
83
|
+
value; ADR-283), or a developer settings file value other than the template
|
|
84
|
+
default. The rule is one for both values: `settings:sync` writes the
|
|
85
|
+
template default into every project file, so a default there cannot be told
|
|
86
|
+
apart from an insert and never outranks an approved card, whichever value
|
|
87
|
+
the default is; today that makes `ticket-conventional` the only developer
|
|
88
|
+
value that counts.
|
|
89
|
+
2. **An approved measurement** — the card's `dominant_family`.
|
|
90
|
+
3. **The default** — Conventional Commits (`ticket-scope`).
|
|
91
|
+
|
|
92
|
+
When the third case decides — no declaration and no approved card — and the
|
|
93
|
+
repository has no commitlint config, `subject` and `show` add the line `no convention established — run git:convention measure`
|
|
94
|
+
(`convention_established: false` under `--json`); the exit is unchanged.
|
|
95
|
+
A commitlint config is the repository's own subject validator, so it
|
|
96
|
+
establishes the convention: no such line, and `measure` says the config governs.
|
|
97
|
+
`agent-config git:convention measure [--limit N] [--family F] [--json]` then reads
|
|
98
|
+
the history of the default branch — the one the server names, else
|
|
99
|
+
`refs/remotes/origin/HEAD`; with neither it samples nothing, exits 1 and says so
|
|
100
|
+
(`trunk_unresolved` under `--json`) rather than guess one. It proposes a subject family when one clears the `measure bar` row
|
|
101
|
+
of the block below, otherwise names the two strongest; it proposes a
|
|
102
|
+
`branch_pattern` from the remote branch names, or `no clear pattern`; and it
|
|
103
|
+
shows the observed update style, which is never adopted. Where the chosen family
|
|
104
|
+
maps to a `git.commit_format` value or a pattern was proposed, it prints the
|
|
105
|
+
ready-to-commit content of `.git-convention.yml` (`commit_format`,
|
|
106
|
+
`branch_pattern`, never `update_strategy`); the verb writes nothing. A human
|
|
107
|
+
creates and commits that file, or, on the user's yes this turn,
|
|
108
|
+
`agent-config git:convention init --yes [--commit-format F] [--branch-pattern P]`
|
|
109
|
+
creates it once — never over an existing carrier, never `update_strategy`, and
|
|
110
|
+
uncommitted (ADR-283 § Creation). `/commit` asks the user once and writes the answer
|
|
111
|
+
to the approved card.
|
|
112
|
+
|
|
113
|
+
A repository validator — a `commit-msg` hook, a commitlint config (any of its
|
|
114
|
+
config files, or a `commitlint` key in the package manifest) — does not decide, and
|
|
115
|
+
the verb never guesses what it accepts: a hook's existence says nothing about
|
|
116
|
+
what it checks, and a config is only known by running it. Each one found adds a
|
|
117
|
+
`note:` line (and a `notes` entry under `--json`) saying it also runs at commit
|
|
118
|
+
time and may be stricter; the exit is the verdict of the order above alone. A
|
|
119
|
+
hook counts only where git will run it — the path git resolves, so
|
|
120
|
+
`core.hooksPath` is respected and `.husky/commit-msg` counts only when
|
|
121
|
+
`core.hooksPath` points at `.husky`. When the validator rejects a commit the
|
|
122
|
+
verb passed, the rejection is the answer: fix the subject or settle the two in
|
|
123
|
+
`.git-convention.yml`.
|
|
124
|
+
|
|
125
|
+
A format that cannot be read (`malformed`, `invalid`, `discarded`), or an
|
|
126
|
+
approved family with no grammar, exits `1` with the line that says why; it is
|
|
127
|
+
never read as the default.
|
|
128
|
+
Exit `1` also lists each failing subject with the rule it broke. Exit `2` is a
|
|
129
|
+
usage error; an empty stdin is one, and says `the verb ran`. How a family is measured and approved is the
|
|
130
|
+
[`conventional-commits-writing`](../../conventional-commits-writing/SKILL.md)
|
|
131
|
+
skill's procedure; this page only consumes its card.
|
|
132
|
+
|
|
133
|
+
## A title that becomes a commit
|
|
134
|
+
|
|
135
|
+
Where the forge squash-merges — the method `/pr:merge` § 9 reads — the pull
|
|
136
|
+
request title becomes the commit subject on the base, so `/create-pr:description-only`
|
|
137
|
+
§ 3 builds it as a subject in the convention in force and checks it through
|
|
138
|
+
`git:convention subject`, for `ticket-scope` as well as for `ticket-conventional`.
|
|
139
|
+
Under any other merge method the title stays `DEV-1234: summary`.
|
|
140
|
+
|
|
141
|
+
## Rendering a branch name
|
|
142
|
+
|
|
143
|
+
`agent-config git:convention branch --slug <slug> [--type <type>] [--ticket <ID>]`
|
|
144
|
+
renders `git.branch_pattern` (default `{type}/{slug}`) and prints the name:
|
|
145
|
+
|
|
146
|
+
- an empty placeholder drops with the separator after it, or the one before it
|
|
147
|
+
when it is last (`{ticket}-{slug}` without a ticket → `<slug>`);
|
|
148
|
+
- a ticket the pattern has no slot for prefixes the slug
|
|
149
|
+
(`{type}/{slug}` → `feat/DEV-1234-export`);
|
|
150
|
+
- a literal character of the pattern is never rewritten, and a value outside
|
|
151
|
+
`[A-Za-z0-9._-]` is refused (exit `1`), not repaired.
|
|
152
|
+
|
|
153
|
+
A guideline that shows another shape, such as `{type}/{ticket-id}/{short-description}`,
|
|
154
|
+
describes a team habit; the name the agent creates follows the declared pattern.
|
|
155
|
+
|
|
156
|
+
## The grammar
|
|
157
|
+
|
|
158
|
+
<!-- BEGIN GENERATED: git-convention-grammar -->
|
|
159
|
+
<!-- Written by `./scripts-run src/scripts/generate_git_convention_grammar` from `src/scripts/_lib/git_convention_grammar.ts` and `src/scripts/_lib/git_convention_measure.ts`; edit the modules, never this block. -->
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
ticket [A-Z][A-Z0-9]+-[0-9]+
|
|
163
|
+
ticket in text (?<![A-Za-z0-9])[A-Z][A-Z0-9]+-[0-9]+(?![0-9])
|
|
164
|
+
standard names UTF ISO SHA RFC CVE CWE GHSA
|
|
165
|
+
version-like names HTTP HTTPS TLS SSL OAUTH PHP PYTHON JAVA JDK NODE ES HTML CSS (one-digit number, no card)
|
|
166
|
+
format ticket-scope ^(feat|fix|chore|docs|refactor|test|perf|style|build|ci|revert)(\([^)]+\))?!?: .+
|
|
167
|
+
format ticket-conventional ^([A-Z][A-Z0-9]+-[0-9]+ )?(feat|fix|chore|docs|refactor|test|perf|style|build|ci|revert)(\([^)]+\))?!?: .+
|
|
168
|
+
family conventional ^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([^)]+\))?!?:
|
|
169
|
+
family ticket-conventional ^[A-Z][A-Z0-9]+-[0-9]+ (build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([^)]+\))?!?:
|
|
170
|
+
family ticket-prefix ^\[[A-Z][A-Z0-9]+-[0-9]+\][: ]|^[A-Z][A-Z0-9]+-[0-9]+[: ]
|
|
171
|
+
family gitmoji ^:[a-z0-9_+-]+:[[:space:]]|^[^ -~[:cntrl:][:space:]]
|
|
172
|
+
family imperative-plain ^[A-Z][a-z]+[[:space:]].*[^.]$
|
|
173
|
+
family ticket-prefix, no ticket ^\S.* (no ticket elsewhere in the subject)
|
|
174
|
+
family ticket-conventional, no ticket ^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([^)]+\))?!?: (no ticket elsewhere in the subject)
|
|
175
|
+
any format or family ^((fixup|squash|amend)! .+|Revert ".+")$ (git's own subjects)
|
|
176
|
+
measure sample newest 200 non-merge commits since 24 months ago, or regardless of age when that window yields fewer than 30; bots, automation subjects, commits over 500 files dropped
|
|
177
|
+
measure bar n >= 30; >= 80 % capped at 20 per author per half (3+ authors), else >= 90 % uncapped; both halves agree
|
|
178
|
+
measure migration the newer half, or the newest 30 commits, clearing the bar on another family than the dominant one: "migrating to <family>", and that family is proposed
|
|
179
|
+
measure branches >= 10 remote branch names, top shape >= 80 %
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Formats are JavaScript / PCRE syntax; families are POSIX extended, matched in
|
|
183
|
+
order, first hit wins. Under `format ticket-conventional` and `family
|
|
184
|
+
ticket-conventional` a ticket anywhere inside the scope fails, and a standard
|
|
185
|
+
name in the ticket position fails. A ticket is found in a branch or scope only as
|
|
186
|
+
a whole token (`ticket in text`). Without a card, a version-like name — one of
|
|
187
|
+
the keys above with a one-digit number, such as `HTTP-2` or `PHP-8` — is not a
|
|
188
|
+
ticket; `HTTP2-1` still has the ticket shape. A convention card's `ticket_keys`
|
|
189
|
+
settles both, and matches a key written in lower case; without a card a
|
|
190
|
+
lower-case key is never detected.
|
|
191
|
+
<!-- END GENERATED: git-convention-grammar -->
|
|
192
|
+
|
|
193
|
+
## Patterns that are not this grammar
|
|
194
|
+
|
|
195
|
+
- **Suggester metadata.** The `trigger_context:` frontmatter of
|
|
196
|
+
`src/domains/engineering-base/implement-ticket/command.md` and
|
|
197
|
+
`src/domains/product-basic/estimate-ticket/command.md`, and the same literal in
|
|
198
|
+
`src/scripts/migrate_command_suggestions.ts`, match a bare-key ticket in a
|
|
199
|
+
prompt to decide when a command is suggested. They keep their own pattern:
|
|
200
|
+
changing it changes when a command is offered.
|
|
201
|
+
- **The suggester's matcher.** `src/scripts/command_suggester/match.ts` carries
|
|
202
|
+
the ticket grammar above; a test pins the two equal.
|
|
203
|
+
- **A project key in a ticket body.** `src/scripts/refine_ticket_detect.ts` reads
|
|
204
|
+
a project key out of ticket text, not a branch, and is intentionally
|
|
205
|
+
independent.
|
|
@@ -54,7 +54,7 @@ fix/DEV-5678/null-pointer → DEV-5678
|
|
|
54
54
|
hotfix/DEV-999/critical-fix → DEV-999
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
Read it with `agent-config git:convention ticket` — [`commit-subject`](../git-workflow/references/commit-subject.md) § Reading the ticket.
|
|
58
58
|
|
|
59
59
|
Use `git branch --show-current` to detect, then fetch the ticket:
|
|
60
60
|
|
|
@@ -147,8 +147,8 @@ POST /issue/DEV-1234/transitions
|
|
|
147
147
|
## Linking to PRs
|
|
148
148
|
|
|
149
149
|
When creating PRs, include the Jira ticket in:
|
|
150
|
-
- **Branch name:** `
|
|
151
|
-
|
|
150
|
+
- **Branch name and PR title:** rendered by `agent-config git:convention branch` and
|
|
151
|
+
built per [`commit-subject`](../git-workflow/references/commit-subject.md)
|
|
152
152
|
- **PR description:** Link to the ticket
|
|
153
153
|
|
|
154
154
|
## Related
|
|
@@ -222,10 +222,16 @@ git add .
|
|
|
222
222
|
|
|
223
223
|
| Approach | When to use |
|
|
224
224
|
|---|---|
|
|
225
|
-
| `git merge main` | Default — preserves history, safer for shared branches |
|
|
226
|
-
| `git rebase main` |
|
|
227
|
-
|
|
228
|
-
|
|
225
|
+
| `git merge main` | Default (`git.update_strategy: merge`) — preserves history, safer for shared branches |
|
|
226
|
+
| `git rebase origin/main` | `git.update_strategy: rebase` picks it — rewrites history, linear log |
|
|
227
|
+
|
|
228
|
+
The setting picks the operation; it never authorises it. A rebase of a branch
|
|
229
|
+
that is already pushed still needs the user's answer this turn, per
|
|
230
|
+
[`git-history-discipline`](../../rules/git-history-discipline.md) § When rewrite is
|
|
231
|
+
allowed — an explicit ask, an unrevoked standing instruction, or a `pull
|
|
232
|
+
--rebase` the user started. Under `rebase` conflicts surface per commit, and the protocol — permission,
|
|
233
|
+
stops, recovery ref, the equivalence report afterwards — is
|
|
234
|
+
[`git-workflow` › branch-update](../git-workflow/references/branch-update.md).
|
|
229
235
|
|
|
230
236
|
## Output format
|
|
231
237
|
|
|
@@ -81,7 +81,7 @@ not name an implementation**. Use Given / When / Then or a numbered
|
|
|
81
81
|
list. Reject ACs that hide assumptions ("works correctly", "is fast
|
|
82
82
|
enough") — replace with measurable thresholds or strike them.
|
|
83
83
|
|
|
84
|
-
**Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md)
|
|
84
|
+
**Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md)): when the raw input includes a screenshot / mockup alongside the story text, check the sources against each other and surface any conflict as a `gap` / open question — never resolve it silently. Watch for: story text contradicting an attached screenshot; the AC contradicting the description; a clearly-needed behavior the input never states (weekend/holiday shift, empty/error state). Batch them into one clarifying question. Taxonomy: [`cross-source-consistency-mechanics`](../../guidelines/agent-infra/cross-source-consistency-mechanics.md).
|
|
85
85
|
|
|
86
86
|
### 5. Surface non-functional gaps
|
|
87
87
|
|
|
@@ -86,8 +86,8 @@ selected language.
|
|
|
86
86
|
Reuses the `jira-ticket` command's loader. Accepts:
|
|
87
87
|
|
|
88
88
|
1. **Ticket key** — `/refine-ticket PROJ-123`
|
|
89
|
-
2. **Branch detection** — `/refine-ticket` with no arg;
|
|
90
|
-
`
|
|
89
|
+
2. **Branch detection** — `/refine-ticket` with no arg; `agent-config git:convention ticket`
|
|
90
|
+
on the current branch ([`commit-subject`](../git-workflow/references/commit-subject.md) § Reading the ticket)
|
|
91
91
|
3. **Pasted text** — `/refine-ticket` followed by a markdown block
|
|
92
92
|
4. **URL** — `/refine-ticket https://acme.atlassian.net/browse/PROJ-123`
|
|
93
93
|
|
|
@@ -144,7 +144,7 @@ Check the loaded ticket for clarity signals before orchestrating:
|
|
|
144
144
|
- Is the scope one feature, or multiple tangled together?
|
|
145
145
|
- Any sentence that references an existing module name, feature flag, or domain concept?
|
|
146
146
|
|
|
147
|
-
**Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md)
|
|
147
|
+
**Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md)): the ticket is rarely a single source. Compare every source against the others and surface any conflict as an *Open question* — never resolve it silently:
|
|
148
148
|
- **text ↔ attachment** — does the ticket text agree with every attached mockup / screenshot / diagram? (Canonical miss: text says "birthdays **today**", the mockup shows a birthday from two days ago.) If an attachment cannot be read, say so — do not assume it agrees.
|
|
149
149
|
- **silent-but-needed** — is the spec silent on a clearly-needed behavior (weekend/holiday shift, empty state, error path, timezone, permissions)? Surface it and ask before it becomes an implementation assumption — an inferred behavior is a scope expansion, not a given.
|
|
150
150
|
- **intra-ticket** — do the AC, description, and comments contradict each other?
|
|
@@ -347,7 +347,7 @@ DoR check — not automatically on every refinement.
|
|
|
347
347
|
- The model tends to invent risks that sound plausible but aren't anchored in the ticket text. Every risk in Top-5 must cite a phrase, AC bullet, or sub-skill finding — no hypotheticals.
|
|
348
348
|
- Persona voices degrade into generic platitudes when the ticket is already tight. If a persona has nothing real to flag, write one sentence stating that — do not pad.
|
|
349
349
|
- Sub-skills (`validate-feature-fit`, `threat-modeling`) cost tokens; orchestrate only when the trigger matrix actually matches, not defensively on every run.
|
|
350
|
-
- Branch-detection
|
|
350
|
+
- Branch-detection takes the first `ticket` that `git:convention ticket` prints; chained keys (e.g. `feat/PROJ-1-and-PROJ-2`) pick the first and note the rest.
|
|
351
351
|
|
|
352
352
|
## Do NOT
|
|
353
353
|
|
|
@@ -100,8 +100,8 @@ roadmaps.
|
|
|
100
100
|
When the roadmap originates from a ticket/spec that carries a second
|
|
101
101
|
source — an attached mockup/screenshot, a code reality, or an internal
|
|
102
102
|
contradiction — run the **cross-source discrepancy scan** (per
|
|
103
|
-
[`cross-source-consistency`](../../rules/cross-source-consistency.md)
|
|
104
|
-
|
|
103
|
+
[`cross-source-consistency`](../../rules/cross-source-consistency.md))
|
|
104
|
+
before writing phases. A phase plan
|
|
105
105
|
built over a text↔image contradiction or a silent-but-needed behavior
|
|
106
106
|
(weekend/holiday shift, empty/error state) bakes the wrong assumption into
|
|
107
107
|
every downstream step. Surface each discrepancy as one batched open
|
|
@@ -242,6 +242,8 @@ finding never silently becomes a hard gate. Both halves, specified in
|
|
|
242
242
|
- **Reflexion** — [arxiv.org/abs/2303.11366](https://arxiv.org/abs/2303.11366)
|
|
243
243
|
Language agents that reinforce from verbal self-reflection on past
|
|
244
244
|
trials. This pipeline adapts Reflexion by gating promotion with a
|
|
245
|
-
|
|
246
|
-
|
|
245
|
+
review step — learnings only harden into rules/skills after explicit
|
|
246
|
+
approval, never auto-commit: for a proposal scoped to the package, on
|
|
247
|
+
the AI council's ratification record (user as last rung, ADR-281); for
|
|
248
|
+
a change a user asked for, on that user's approval.
|
|
247
249
|
|
|
@@ -117,7 +117,7 @@ card may exist in the per-user file-first store
|
|
|
117
117
|
`evidence_report.ts add --bucket assumed --origin global …` and **re-confirm it
|
|
118
118
|
against the live source this session** before use (version skew / schema drift
|
|
119
119
|
across projects). Never "Verified" on the global card alone.
|
|
120
|
-
- A `public`/`vendor` card seen in ≥
|
|
120
|
+
- A `public`/`vendor` card seen in ≥ 2 distinct repos
|
|
121
121
|
triggers a one-tap promotion **suggestion** (never silent). `proprietary` cards
|
|
122
122
|
are manual-only and never auto-shared. Record sightings via
|
|
123
123
|
`_lib/knowledge_global_promote.ts record-seen`.
|
|
@@ -97,7 +97,9 @@ Token authoring (DTCG 3-layer model, CSS-var/Tailwind generation) lives
|
|
|
97
97
|
in [`design-tokens`](../design-tokens/SKILL.md); its
|
|
98
98
|
`tokens.ts validate --dir <path>` is the **single token-discipline
|
|
99
99
|
linter** — the mechanical check behind this rule (no hardcoded hex / px /
|
|
100
|
-
rem outside the token files).
|
|
100
|
+
rem outside the token files). That skill ships with the `frontend-design`
|
|
101
|
+
pack: without it the rule above still binds and is checked by reading,
|
|
102
|
+
not by a linter. Greenfield Tailwind config: bundled
|
|
101
103
|
`scripts/tailwind_config_gen.ts` (Apache-2.0-derived, pure templating)
|
|
102
104
|
scaffolds `tailwind.config.{js,ts}` per framework.
|
|
103
105
|
|
|
@@ -206,7 +206,7 @@ Backstop grep — skip/xfail added to chase green (a hit in a diff that also "fi
|
|
|
206
206
|
rg -n '\b(it|test|describe)\.skip\b|\.only\b|xit\(|xdescribe\(|@pytest\.mark\.(skip|xfail)|@Disabled|->markTestSkipped\(' .
|
|
207
207
|
```
|
|
208
208
|
|
|
209
|
-
This is the test-surface instance of the `autonomous-execution`
|
|
209
|
+
This is the test-surface instance of the `autonomous-execution` allowlist-growth antipattern (bulk `skip`/`xfail` to force green counts as the tool being wrong, not the content) and the `verify-before-complete` floor (green must be *earned*, not manufactured).
|
|
210
210
|
|
|
211
211
|
### The named smells — canonical vocabulary, and what it does NOT cover
|
|
212
212
|
|
|
@@ -136,7 +136,7 @@ passes. For the global location, skip — path is outside the repo.
|
|
|
136
136
|
### 4. Create the worktree
|
|
137
137
|
|
|
138
138
|
```bash
|
|
139
|
-
git worktree add .worktrees/<branch-name> -b <branch-name>
|
|
139
|
+
git worktree add ".worktrees/<branch-name>" -b "<branch-name>"
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
**Then address the worktree by flag, not by `cd`.** Every tool that matters
|
|
@@ -75,7 +75,7 @@ regressions are detectable. Pick the verdict commands per the project's
|
|
|
75
75
|
|---|---|---|
|
|
76
76
|
| `threshold` | all targeted checks green | numeric pass bar, **absolute** (fraction of total), not "± N tests" |
|
|
77
77
|
| `allow_regressions` | `false` | a revision breaking a baseline-green check stops the loop |
|
|
78
|
-
| `max_attempts` | **3** | hard cap (test feedback is more actionable than diff critique → one more than `do-and-judge`'s 2;
|
|
78
|
+
| `max_attempts` | **3** | hard cap, this loop's own number (test feedback is more actionable than diff critique → one more than `do-and-judge`'s 2); independent of [`autonomous-execution`](../../rules/autonomous-execution.md)'s `execution.fix_loop_max` budget, which now defaults to 10 |
|
|
79
79
|
| `plateau_window` | 3 | stop if the last *window* scores sit within `tolerance` |
|
|
80
80
|
| `tolerance` | small absolute fraction | flake jitter that does **not** count as improvement |
|
|
81
81
|
|
|
@@ -294,7 +294,7 @@ iter2 fixes A, breaks B, 92% → "PASS" ✗ regression ignored
|
|
|
294
294
|
phantom-verification check bound at step 3.4, with its fixture corpus in
|
|
295
295
|
`tests/fixtures/tamper-corpus/` and its polarity proven both ways by
|
|
296
296
|
`--self-test`.
|
|
297
|
-
* [`autonomous-execution`](../../rules/autonomous-execution.md) — the
|
|
297
|
+
* [`autonomous-execution`](../../rules/autonomous-execution.md) — the `execution.fix_loop_max` cap (this loop's own `max_attempts` is a separate, smaller number).
|
|
298
298
|
* [`resident-process-governance`](../../docs/contracts/resident-process-governance.md) — the
|
|
299
299
|
runtime-free constraint this loop honors.
|
|
300
300
|
* Optional impact pre-step (when a code-graph is present, ADR-124): run
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
## Pointers
|
|
15
15
|
|
|
16
16
|
- **Filling out this AGENTS.md** — section templates, capability bullets, multi-agent entry flow, monorepo layout: [`consumer-agents-md-guide`](.augment/contexts/contracts/consumer-agents-md-guide.md).
|
|
17
|
-
- **Behavior rules** (9 always-on; rest routed) — [`.augment/rules/`](.augment/rules/). Kernel rules
|
|
17
|
+
- **Behavior rules** (9 always-on; rest routed) — [`.augment/rules/`](.augment/rules/). Kernel rules change only by a ratified edit; overrides may tighten.
|
|
18
18
|
- **Skills (on-demand expertise)** — domain skills surfaced by description, invoked on trigger match: [`.augment/skills/`](.augment/skills/).
|
|
19
19
|
- **Commands (workflows)** — slash-commands the agent runs end-to-end (`/work`, `/create-pr`, …): [`.augment/commands/`](.augment/commands/).
|
|
20
20
|
- **Project-specific docs** — your own architecture notes, roadmaps, sessions, contexts: [`agents/`](agents/).
|