@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
|
@@ -13,7 +13,16 @@ tools and run the right one — instead of a per-stack command explosion.
|
|
|
13
13
|
> pytest / go / cargo, not N per-stack variants. "Only genuine PHP-space
|
|
14
14
|
> commands stay PHP-locked."
|
|
15
15
|
|
|
16
|
-
**Size budget
|
|
16
|
+
**Size budget: none of its own.** The enforced ceiling is
|
|
17
|
+
`check_depth_budget`'s 16,000 chars (`DEPTH_CEILING_CHARS`), and that is the
|
|
18
|
+
only one. Do not add a page-local ceiling: one fitted to the file's current
|
|
19
|
+
size breaks on the next edit and constrains nothing.
|
|
20
|
+
|
|
21
|
+
What actually bounds this page is **what belongs in it**: the resolver's
|
|
22
|
+
contract — the axes, the detection order, the confidence tiers, the refusal
|
|
23
|
+
doctrine, the cache key. Narration, worked examples and per-round history
|
|
24
|
+
belong in the roadmap and the review artifacts, not here. That rule is
|
|
25
|
+
checkable by a reader; a character count was only ever checkable by `wc`.
|
|
17
26
|
|
|
18
27
|
## 1. The resolver
|
|
19
28
|
|
|
@@ -29,9 +38,25 @@ for (const r of result.selected) {
|
|
|
29
38
|
}
|
|
30
39
|
```
|
|
31
40
|
|
|
32
|
-
Resolution
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
Resolution costs **per scope**, not per repository: a fixed name list stat-ed,
|
|
42
|
+
six-or-so manifests read, and the .NET probe's directory listings — three at
|
|
43
|
+
the root with no .NET target present, where the native axis lists once and the
|
|
44
|
+
behavior axis twice. They run in every repository, .NET or not; WITH a root
|
|
45
|
+
target the descent runs too and the count rises with the project tree. A wide workspace pays that times
|
|
46
|
+
its package count, so the cost is proportional and not negligible.
|
|
47
|
+
|
|
48
|
+
The **cache probe is the expensive path**, with the magnitude stated, not
|
|
49
|
+
implied as a SHAPE, because the arithmetic has already been published wrong
|
|
50
|
+
once: `latest_manifest_mtime` stats both fixed-name lists in every scope,
|
|
51
|
+
bounded at 200 scopes (`_MAX_BEHAVIOR_SCOPES`), each hit paying a second stat — and without
|
|
52
|
+
an explicit `scopes` it also expands the globs. The guard can cost more than
|
|
53
|
+
the resolution it guards, so a caller holding the scope list passes it. The
|
|
54
|
+
widening is still right: a root-only key cannot see a behavior runner
|
|
55
|
+
arriving in a package, and a key invalidating too often is recoverable where
|
|
56
|
+
one that never invalidates is not.
|
|
57
|
+
|
|
58
|
+
Resolution **never raises** — a malformed manifest or unknown stack degrades
|
|
59
|
+
to a `LOW`-confidence empty result so the command can ask, never crash. This
|
|
35
60
|
mirrors the recoverable-error contract of the frontend `detect_stack`.
|
|
36
61
|
|
|
37
62
|
## 2. Detection order — per ecosystem, first match wins
|
|
@@ -47,6 +72,30 @@ mirrors the recoverable-error contract of the frontend `detect_stack`.
|
|
|
47
72
|
| Python | `pytest` in pyproject / `pytest.ini` | pytest | `pytest` |
|
|
48
73
|
| Go | `go.mod` present | go-test | `go test ./...` |
|
|
49
74
|
| Rust | `Cargo.toml` present | cargo-test | `cargo test` |
|
|
75
|
+
| Ruby | `rspec` gem in `Gemfile`/`gems.rb`, `.rspec`, `spec/spec_helper.rb` | rspec | `bundle exec rspec`, or bare `rspec` with no Gemfile |
|
|
76
|
+
| JVM | `build.gradle[.kts]` / `settings.gradle[.kts]` by PRESENCE; `pom.xml` by CONTENT | junit | `./mvnw`/`./gradlew test`, else `mvn`/`gradle test` |
|
|
77
|
+
| .NET | `*.sln[x]` or `*.csproj`/`*.fsproj`/`*.vbproj` **in the scope root** | dotnet-test | `dotnet test` |
|
|
78
|
+
|
|
79
|
+
Each Ruby signal stands alone, and Ruby has **no MEDIUM default** (minitest is
|
|
80
|
+
in the stdlib): no signal, no row. JVM defaults to `junit` at MEDIUM when the
|
|
81
|
+
build file names no runner. A wrapper wins where one exists, since it pins the
|
|
82
|
+
build-tool version.
|
|
83
|
+
|
|
84
|
+
**.NET needs a target in the scope ROOT, because `dotnet test` is not
|
|
85
|
+
recursive.** With no project or solution in the working directory it fails
|
|
86
|
+
MSB1003, whatever sits below — so the row is gated on the root listing, and
|
|
87
|
+
`global.json` / `Directory.Build.props` never produce one on their own. They
|
|
88
|
+
are SDK pins, not targets, and confidence does not gate `selected`
|
|
89
|
+
(`_apply_guard` has never read it), so a row emitted on one would be a
|
|
90
|
+
command the repository cannot run.
|
|
91
|
+
|
|
92
|
+
Given a root target: HIGH when a PROJECT file names a test stack
|
|
93
|
+
(`Microsoft.NET.Test.Sdk`, xunit, nunit, mstest), MEDIUM otherwise. A root
|
|
94
|
+
`.sln` IS a valid target even though its own body names no package, so the
|
|
95
|
+
projects it references are read to decide the tier — which is the one case
|
|
96
|
+
the scan descends for. A `src/<Name>/<Name>.csproj` layout with NO root
|
|
97
|
+
solution therefore emits nothing: correct, because `dotnet test` from that
|
|
98
|
+
root does not run either.
|
|
50
99
|
|
|
51
100
|
**Task-runner wrappers win.** When the project root has a `Makefile`
|
|
52
101
|
`test:` target, a `Taskfile.yml` `test:` task, or a `package.json`
|
|
@@ -57,6 +106,33 @@ container access, env, and parallelism (the architecture rule's
|
|
|
57
106
|
The package manager is read from the lockfile (`pnpm-lock.yaml` → pnpm,
|
|
58
107
|
`yarn.lock` → yarn, else npm).
|
|
59
108
|
|
|
109
|
+
## 2b. Behavior-runner axis — per scope, detection only
|
|
110
|
+
|
|
111
|
+
`result.behavior_runners` is a **separate list** from `runners`: it reports
|
|
112
|
+
which behavior runner each scope already owns, across the same ecosystems.
|
|
113
|
+
|
|
114
|
+
- **`command` is relative to `scope_root`, not to the project root.** It is
|
|
115
|
+
built from files inside the scope (`vendor/bin/behat`, `./gradlew test`), so
|
|
116
|
+
a consumer runs it WITH `scope_root` as the working directory. Every NATIVE
|
|
117
|
+
`runners` command is root-relative; this axis is the exception.
|
|
118
|
+
- **Per scope, never repository-wide.** Each row carries `scope_root` (the
|
|
119
|
+
root plus every declared workspace package). A monorepo
|
|
120
|
+
returns a row per owning package and none for the others; one answer would
|
|
121
|
+
erase which package owns it.
|
|
122
|
+
- **Two of the SAME ecosystem in one scope is a refusal, not a pick** —
|
|
123
|
+
`runner: "unknown"` plus `conflict: [both names]`, the same refusal the
|
|
124
|
+
frontend detector makes between two mutually exclusive workspaces. Two
|
|
125
|
+
DIFFERENT ecosystems are a polyglot repository, not a conflict: a PHP app
|
|
126
|
+
with a JS frontend returns two rows.
|
|
127
|
+
- **Detection, never adoption.** No row recommends installing anything and the
|
|
128
|
+
axis is unreachable from `selected`, so nothing runs *because* this axis
|
|
129
|
+
reported it. That is reachability, not execution: for four of the eight
|
|
130
|
+
labels the behavior command equals a native command already in `selected`
|
|
131
|
+
(`pytest-bdd`/`pytest`, `cucumber-jvm`/`jvm.command`, `reqnroll` and
|
|
132
|
+
`specflow`/`dotnet test`), and those rows are `SPEED_FAST`, so the suite
|
|
133
|
+
runs anyway as part of the native run. The axis adds nothing to what
|
|
134
|
+
executes and removes nothing from it.
|
|
135
|
+
|
|
60
136
|
## 3. Confidence tiers — declarative, shared with the non-interactive contract
|
|
61
137
|
|
|
62
138
|
Each runner carries a `confidence` (`HIGH` / `MEDIUM` / `LOW`) and a
|
|
@@ -71,6 +147,17 @@ tables:
|
|
|
71
147
|
asking (interactive) or `ambiguous_routing` (CI, per the
|
|
72
148
|
non-interactive contract).
|
|
73
149
|
|
|
150
|
+
**`confidence` is about the RUNNER, never about `quality`.** The three
|
|
151
|
+
ecosystems this change added — ruby, jvm, dotnet — contribute a runner and NO
|
|
152
|
+
quality commands, because picking `rubocop`, a Spotless task or
|
|
153
|
+
`dotnet format` is an adoption decision this resolver has no standing to make.
|
|
154
|
+
The consequence is worth stating because it is silent: a Ruby-, JVM- or
|
|
155
|
+
.NET-only repository used to resolve `LOW` with an empty `quality`, which is
|
|
156
|
+
the tier that makes a command ASK; it now resolves `HIGH` with an empty
|
|
157
|
+
`quality`, which a quality pass can read as nothing to do. An empty `quality`
|
|
158
|
+
means **no quality tool was resolved**, never **no quality step is needed** —
|
|
159
|
+
a command that finds one should ask rather than report success.
|
|
160
|
+
|
|
74
161
|
## 4. Monorepo guard — fast by default, opt-in for the rest
|
|
75
162
|
|
|
76
163
|
`resolve_toolchain` returns the full `runners` inventory **and** a
|
|
@@ -91,9 +178,10 @@ e2e and slow stay out until their flag is passed.
|
|
|
91
178
|
|
|
92
179
|
`write_config(root, result)` persists the resolved per-stack commands to
|
|
93
180
|
`agents/runtime/state/toolchain.json` (best-effort; never raises). The
|
|
94
|
-
config is keyed on the
|
|
95
|
-
|
|
96
|
-
hook the frontend detector uses
|
|
181
|
+
config is keyed on the latest `mtime` across every scope's manifests and
|
|
182
|
+
markers — not the root's alone, or a behavior runner arriving in a workspace
|
|
183
|
+
package would never invalidate it. Same hook the frontend detector uses,
|
|
184
|
+
widened to the scopes the behavior axis reads.
|
|
97
185
|
|
|
98
186
|
## 6. What stays stack-locked
|
|
99
187
|
|
|
@@ -10,7 +10,7 @@ Loaded by the `subagent-orchestration` skill and the `/do-and-judge`,
|
|
|
10
10
|
|---|---|---|
|
|
11
11
|
| `subagents.implementer_model` | _(empty → session model)_ | Model alias used for implementer subagents |
|
|
12
12
|
| `subagents.judge_model` | _(empty → one tier up)_ | Model alias used for judge subagents |
|
|
13
|
-
| `subagents.max_parallel` | `3` |
|
|
13
|
+
| `subagents.max_parallel` | `3` | Limit on concurrent subagent invocations the model reads from settings — no code counts spawns against it |
|
|
14
14
|
|
|
15
15
|
## Model tier ladder
|
|
16
16
|
|
|
@@ -150,6 +150,45 @@ artifact exists because the issue is still owed, and "it failed one of six" is n
|
|
|
150
150
|
something a later triage can act on. A deferral with no reason is the
|
|
151
151
|
note-and-forget this rule already forbids, wearing an artifact's clothes.
|
|
152
152
|
|
|
153
|
+
## fix-what-you-see — why a separate rule, and its activation gap
|
|
154
|
+
|
|
155
|
+
Moved verbatim from [`fix-what-you-see`](../../rules/fix-what-you-see.md)
|
|
156
|
+
on 2026-10-06 to pay for the standing-payload cost of `neighbour-precedence`;
|
|
157
|
+
the rule keeps a pointer here.
|
|
158
|
+
|
|
159
|
+
### Why separate from `active-remediation`
|
|
160
|
+
|
|
161
|
+
That rule forbids ignoring a spotted issue and its ladder permits **note + ask**.
|
|
162
|
+
Two properties made it insufficient, both measured 2026-08-20: it is `type: auto`
|
|
163
|
+
on `refactor`/`legacy`/`cleanup` triggers — **none of which a failing CI job
|
|
164
|
+
matches**, so it does not load when the obligation matters most — and its
|
|
165
|
+
note-and-ask tier is what let a session name a red check's cause, name the
|
|
166
|
+
file's author, and hand it back still red.
|
|
167
|
+
|
|
168
|
+
Mechanics (fix-now size criteria, follow-up shape) stay there; this rule only
|
|
169
|
+
deletes the two escapes.
|
|
170
|
+
|
|
171
|
+
### Honest activation gap — this rule is `auto`, and it wanted to be `always`
|
|
172
|
+
|
|
173
|
+
It shipped `auto` for a budget reason, not a design one, and the gap that leaves
|
|
174
|
+
is exactly the one it was written to close: **a red check the agent sees in tool
|
|
175
|
+
output triggers nothing.** Keyword triggers match the PROMPT. So the rule loads
|
|
176
|
+
when a human says "CI is red" or "not my test", and does NOT load when a test
|
|
177
|
+
run comes back red and nobody has said a word.
|
|
178
|
+
|
|
179
|
+
`check_always_budget` is the reason: the extended always-budget sat at
|
|
180
|
+
60,252 / 60,254 chars — **two characters of headroom** — and the cap is a
|
|
181
|
+
ratchet that may only move down. The other nine always-rules are the kernel,
|
|
182
|
+
which `block_kernel_rule_writes` denies agent writes to, so no room can be made
|
|
183
|
+
from this side. A 2,332-char rule puts the total at 103.9 %.
|
|
184
|
+
|
|
185
|
+
Closing the gap needs one of: the ext-cap ratchet opened deliberately (a
|
|
186
|
+
maintainer decision, recorded), a kernel rule shortened to make room, or a
|
|
187
|
+
`post_tool_use` carrier that notices a non-zero verification exit — the only
|
|
188
|
+
option that would fire on tool output rather than on wording. Until then, `auto`
|
|
189
|
+
plus this paragraph is the honest state: the obligation is real, its delivery is
|
|
190
|
+
partial, and the partiality is named rather than implied away.
|
|
191
|
+
|
|
153
192
|
## See also
|
|
154
193
|
|
|
155
194
|
- [`active-remediation`](../../rules/active-remediation.md) — the rule this file details (Iron Law + ladder + live-security carve-out).
|
|
@@ -69,7 +69,7 @@ If you need an ignored skill: read its SKILL.md directly, apply guidance, then a
|
|
|
69
69
|
GitHub Copilot has no `PostToolUse` hook surface, so
|
|
70
70
|
`scripts/context_hygiene_hook.ts` cannot run structurally and
|
|
71
71
|
`agents/state/context-hygiene.json` is not maintained automatically
|
|
72
|
-
(tool-call count,
|
|
72
|
+
(tool-call count, freshness milestones at 20/40/60).
|
|
73
73
|
|
|
74
74
|
The cooperative path: track turns and tool-loop signals from memory
|
|
75
75
|
during the conversation and apply the suggest-a-new-chat / 3-failure
|
|
@@ -37,19 +37,17 @@ from a ticket/spec that carries a second source:
|
|
|
37
37
|
4. **Classify confidence.** High = the sources plainly disagree, or the missing
|
|
38
38
|
behavior is clearly load-bearing. Low = the "conflict" is a plausible
|
|
39
39
|
re-reading, or the missing behavior may be intentionally out of scope.
|
|
40
|
-
5. **
|
|
41
|
-
|
|
40
|
+
5. **Batch** every surviving discrepancy into ONE question folded into this
|
|
41
|
+
turn's single `ask-when-uncertain` prompt.
|
|
42
42
|
|
|
43
|
-
##
|
|
43
|
+
## Noise control
|
|
44
44
|
|
|
45
45
|
The rule fires only under a real trade-off (it must pass the
|
|
46
|
-
`no-cheap-questions` Pre-Send Self-Check).
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
| `auto` | Surface + ask. | State as an explicit assumption and proceed (no question). |
|
|
52
|
-
| `off` | No cross-source checking — legacy behavior. | No cross-source checking. |
|
|
46
|
+
`no-cheap-questions` Pre-Send Self-Check). Every real discrepancy, high- or
|
|
47
|
+
low-confidence, is surfaced and asked — batched into the same question. That
|
|
48
|
+
is the fixed behavior since the `consistency.cross_source` key (which offered
|
|
49
|
+
`auto` and `off`) was retired on 2026-10-09 with this, its default, as the only
|
|
50
|
+
mode.
|
|
53
51
|
|
|
54
52
|
Batching is the anti-noise mechanism: N discrepancies for one artefact become
|
|
55
53
|
one numbered-options block, never N prompts. Plain vagueness (a single unclear
|
|
@@ -141,8 +141,9 @@ is therefore **agent self-assessed**, never looked up (roadmap L10/L17):
|
|
|
141
141
|
**One** constraint-light scaffold ships — no heavy/light content variants, since
|
|
142
142
|
two variants would be a hidden model→band table. A standard host **expands it on
|
|
143
143
|
request**. Two gates, both default-on: automatic (task signal + agent
|
|
144
|
-
self-assessment) + the user `reasoning
|
|
145
|
-
|
|
144
|
+
self-assessment) + the user's `reasoning.enabled` hard off. The per-component
|
|
145
|
+
toggles and `reasoning.auto_gate` were retired on 2026-10-09; the automatic gate
|
|
146
|
+
decides per component.
|
|
146
147
|
|
|
147
148
|
## Notes template grounding
|
|
148
149
|
|
|
@@ -18,7 +18,7 @@ on user request.
|
|
|
18
18
|
| File | Git | Scope | Owner | Example values |
|
|
19
19
|
|---|---|---|---|---|
|
|
20
20
|
| `.agent-project-settings.yml` | **committed** | team / repo | lead maintainer | `project.stack`, `quality.php.tools`, `memory.dogfood` |
|
|
21
|
-
| `~/.event4u/agent-config/agent-settings.yml` | **n/a** (outside repo) | individual developer · cross-project | individual | `name`, `ide`, `rule_loading_tier`, `personal.
|
|
21
|
+
| `~/.event4u/agent-config/agent-settings.yml` | **n/a** (outside repo) | individual developer · cross-project | individual | `name`, `ide`, `rule_loading_tier`, `personal.autonomy` — the full whitelist is `MERGEABLE_KEYS` in `scripts/_lib/agent_settings.ts` (legacy `~/.config/agent-config/agent-settings.yml` read as fallback) |
|
|
22
22
|
| `agents/settings/.agent-settings.yml` | **gitignored** | individual developer · this project | individual | `personal.ide`, `personal.user_name`, `subagents.max_parallel`, `onboarding.onboarded` | <!-- ref-ignore -->
|
|
23
23
|
|
|
24
24
|
> **Canonical location (ADR-038):** the developer file lives in the settings
|
|
@@ -27,6 +27,12 @@ on user request.
|
|
|
27
27
|
> `.agent-settings.yml` is read as a **back-compat fallback** and is migrated
|
|
28
28
|
> into the canonical location by `install` on the next run.
|
|
29
29
|
|
|
30
|
+
The `git.*` keys (`commit_format`, `branch_pattern`, `update_strategy`) have a
|
|
31
|
+
fourth home a team uses instead: `.git-convention.yml` at the repository root,
|
|
32
|
+
committed, read over every file above (ADR-283). `update_strategy` is read from
|
|
33
|
+
it at the commit a pull request is judged against, the other two at `HEAD`.
|
|
34
|
+
The team file carries no `git.*` key.
|
|
35
|
+
|
|
30
36
|
All three are YAML. Schemas:
|
|
31
37
|
|
|
32
38
|
- Developer (project-local): [`agent-settings.md`](../../templates/agent-settings.md).
|
|
@@ -45,6 +51,12 @@ Lowest priority → highest priority:
|
|
|
45
51
|
4. agents/settings/.agent-settings.yml (developer file, gitignored; legacy repo-root .agent-settings.yml read as fallback — ADR-038) <!-- ref-ignore -->
|
|
46
52
|
```
|
|
47
53
|
|
|
54
|
+
For the `git.*` keys, `.git-convention.yml` sits above all four layers when it
|
|
55
|
+
sets a key, and either value there is a declaration; a key it does not set
|
|
56
|
+
falls through to this order, read at the repository root rather than per
|
|
57
|
+
directory. `agent-config git:convention show` prints the value in force and a
|
|
58
|
+
differing checkout value as a candidate.
|
|
59
|
+
|
|
48
60
|
Keys from higher layers win unless a lower layer marks them
|
|
49
61
|
`locked` (team file only). The user-global file does **not** support
|
|
50
62
|
`locked` — its purpose is cross-project comfort, never policy.
|
|
@@ -224,7 +224,7 @@ Keep aligned with the dashboard counter in `scripts/update_roadmap_progress.ts`
|
|
|
224
224
|
|
|
225
225
|
See [`guarded-baseline`](guarded-baseline.md).
|
|
226
226
|
|
|
227
|
-
**Dashboard regen cadence —
|
|
227
|
+
**Dashboard regen cadence — fixed batching.** The checkbox flip is non-batchable. The **subprocess regen** (`./agent-config roadmap:progress`) batches to every 5th closed step — a fixed cadence since the `roadmap.dashboard_regen_cadence` key was retired on 2026-10-09 with that default as the behavior. Run end, phase boundary, and any file-shape touch (rename / phase add / archive — Iron Law 1) always force an immediate regen.
|
|
228
228
|
|
|
229
229
|
**Blockers follow the same cadence as checkboxes.** Clearing a `## Blockers` entry (per `templates/roadmaps.md` rule 20) flips its `Status: resolved` and regenerates the dashboard in the same reply — Iron Law 1's "same response" obligation applies to blocker resolution exactly as it applies to a checkbox flip.
|
|
230
230
|
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# Self-Improvement Pipeline
|
|
2
2
|
|
|
3
3
|
Five-stage flow that turns real project experience into reviewed
|
|
4
|
-
rule / skill / command / guideline changes.
|
|
5
|
-
|
|
4
|
+
rule / skill / command / guideline changes. Self-modification is a goal
|
|
5
|
+
(ADR-281): for a proposal scoped to the package the approval is the AI
|
|
6
|
+
council's ratification record, and the user is its last rung; a change a
|
|
7
|
+
user asked for keeps that user's approval as now. A passing record makes a
|
|
8
|
+
change ready, not landed — every upstream change still ships via a PR.
|
|
6
9
|
|
|
7
10
|
Referenced by `road-to-curated-self-improvement.md`. Consumed by the live
|
|
8
11
|
artifacts — the `skill-improvement-trigger` rule and the existing skills
|
|
@@ -84,7 +87,11 @@ blocks — it does not hand a half-filled doc to the next stage.
|
|
|
84
87
|
|
|
85
88
|
### Stage 5 — Upstream
|
|
86
89
|
|
|
87
|
-
- **Trigger:** gate passed AND a
|
|
90
|
+
- **Trigger:** gate passed AND, for a proposal scoped to the package, a
|
|
91
|
+
council ratification record whose `subject` matches the proposal's change
|
|
92
|
+
passed it (ADR-281); where the council cannot conclude, the user decides by
|
|
93
|
+
the route ADR-281 § 5 names. A proposal scoped to a consumer's own project
|
|
94
|
+
needs that user's approval, as before.
|
|
88
95
|
- **Executor:** `upstream-contribute` skill. Refuses invocation if
|
|
89
96
|
the proposal frontmatter is not `stage: gated`.
|
|
90
97
|
- **Input:** gated proposal doc.
|
|
@@ -221,6 +221,42 @@ Before creating or modifying:
|
|
|
221
221
|
5. Is this entrypoint → AGENTS.md
|
|
222
222
|
6. Is this behavior hint → copilot-instructions.md
|
|
223
223
|
|
|
224
|
+
## Rich-class size band — moved from `token-budget-discipline`
|
|
225
|
+
|
|
226
|
+
Moved verbatim from the rule on 2026-10-06 to pay for the standing-payload cost
|
|
227
|
+
of `neighbour-precedence`; the rule keeps the band and a pointer here.
|
|
228
|
+
|
|
229
|
+
### Candidate rich skills (justified, not exhaustive)
|
|
230
|
+
|
|
231
|
+
These skills are approved `rich` by this roadmap's council:
|
|
232
|
+
|
|
233
|
+
| Skill | Justification summary |
|
|
234
|
+
|---|---|
|
|
235
|
+
| `design-intelligence` | 11 corpus CSVs + 16 design-language prose specs + a 10-category checklist; grounded selection needs the full reference to avoid random corpus subsets |
|
|
236
|
+
| `typography-system` | Modular-scale math + 6 worked example type systems; condensing to "use 1.25 ratio" produces agents that invent arbitrary px values |
|
|
237
|
+
| `accessibility-auditor` | WCAG criteria are non-negotiable detail; every criterion has a testable condition + failure mode; compression loses the test procedures |
|
|
238
|
+
| `design-system-capture` (Phase 6) | Writes + maintains DESIGN.md + PRODUCT.md; needs full templates + worked examples to generate useful artifacts |
|
|
239
|
+
|
|
240
|
+
### The size band is measured, and only its ceiling is gated
|
|
241
|
+
|
|
242
|
+
The `rich` band is **2,000–3,500 tokens** (ADR-217, `docs/decisions/ADR-217-rich-class-band-measured-and-enforced.md`).
|
|
243
|
+
It was 2,000–5,000 and enforced by nothing until that record: measured with the
|
|
244
|
+
exact BPE tokenizer, the largest rich artifact in the tree is 3,331 tokens, so
|
|
245
|
+
the old ceiling described no artifact that existed. An unused permission costs
|
|
246
|
+
nothing until someone uses it.
|
|
247
|
+
|
|
248
|
+
`lint_token_budget_discipline.ts` gates the **ceiling** and publishes every rich
|
|
249
|
+
artifact's size on the green path. It does **not** gate the floor, and that is a
|
|
250
|
+
finding rather than an omission: running the check once surfaced a 1,931-token
|
|
251
|
+
skill legitimately holding the class, because `rich` buys exemption from
|
|
252
|
+
condensation — a claim about what compression would *lose*, not about file size.
|
|
253
|
+
The published study supplies a degradation threshold, which is a ceiling.
|
|
254
|
+
Nothing measures a minimum.
|
|
255
|
+
|
|
256
|
+
Measurement is exact where `js-tiktoken` resolves and the character proxy where
|
|
257
|
+
it does not; the gate says which, and a proxy reading within its own error
|
|
258
|
+
margin of the ceiling is reported **unresolved** rather than classified.
|
|
259
|
+
|
|
224
260
|
---
|
|
225
261
|
|
|
226
262
|
# Final principle
|
|
@@ -34,6 +34,11 @@ hotfix/DEV-999/critical-payment-bug
|
|
|
34
34
|
- Always include the Jira ticket ID when one exists
|
|
35
35
|
- Use kebab-case for the description part
|
|
36
36
|
- Keep branch names short but descriptive
|
|
37
|
+
- The shape above is this guideline's convention; the agent renders branches from `git.branch_pattern` per [`commit-subject`](../../skills/git-workflow/references/commit-subject.md).
|
|
38
|
+
- A team declares `git.branch_pattern`, `git.commit_format` and
|
|
39
|
+
`git.update_strategy` in `.git-convention.yml` at the repository root, committed
|
|
40
|
+
so every checkout, worktree and CI run reads the same value; there either value
|
|
41
|
+
is a declaration. `agent-config git:convention show` prints what is in force.
|
|
37
42
|
|
|
38
43
|
## Commit Messages
|
|
39
44
|
|
|
@@ -68,9 +73,14 @@ that is not better classified as `build`, `ci`, or `docs`.
|
|
|
68
73
|
|
|
69
74
|
Use a scope when it adds clarity. Good scopes:
|
|
70
75
|
|
|
71
|
-
- Jira ticket ID: `
|
|
76
|
+
- Jira ticket ID: placed per [`commit-subject`](../../skills/git-workflow/references/commit-subject.md) § Placing the ticket
|
|
72
77
|
- Module/area: `api`, `auth`, `skills`, `rules`, `ci`, `frontend`, `linter`
|
|
73
78
|
|
|
79
|
+
Under `git.commit_format: ticket-conventional` the ticket leads the subject and is
|
|
80
|
+
**never** in the scope (`DEV-1234 feat(exporter-models): …`); tooling that parses
|
|
81
|
+
subjects (commitlint, release automation, changelog generators) must be
|
|
82
|
+
configured for that prefixed form.
|
|
83
|
+
|
|
74
84
|
Do not add a scope if it adds no value. `fix(core): fix typo` → just `fix: fix typo`.
|
|
75
85
|
|
|
76
86
|
### Description rules
|
|
@@ -157,7 +167,10 @@ Before writing the commit message:
|
|
|
157
167
|
|
|
158
168
|
## Pull Requests
|
|
159
169
|
|
|
160
|
-
- PR title
|
|
170
|
+
- PR title per [`commit-subject`](../../skills/git-workflow/references/commit-subject.md) § A title that becomes a commit
|
|
171
|
+
- Bring the branch up to date per `git.update_strategy` — merge the base in
|
|
172
|
+
(default) or rebase onto `origin/main` and push with `--force-with-lease`;
|
|
173
|
+
see `git-workflow` › `references/branch-update.md`
|
|
161
174
|
- Fill in the PR template (checklist, description, testing notes)
|
|
162
175
|
- Link the Jira ticket in the PR description
|
|
163
176
|
- Ensure all quality gates pass before requesting review
|
|
@@ -20,7 +20,6 @@ enforced_by:
|
|
|
20
20
|
- "instruction-only: the note, the ask and the user decision are all prose, so no gate can tell a discharged issue from a mentioned one"
|
|
21
21
|
collision_ok:
|
|
22
22
|
"refactor": "an explicit clean-up/refactor ask is the remediation ladder's own trigger"
|
|
23
|
-
# obligation: line 31
|
|
24
23
|
obligation_frequency: "per-edit"
|
|
25
24
|
---
|
|
26
25
|
|
|
@@ -103,7 +102,7 @@ The note, the ask and the user's decision are all prose, and the issue set is
|
|
|
103
102
|
whatever the agent happened to see, so no gate can tell a discharged issue from a
|
|
104
103
|
mentioned one. This rule ships `instruction-only` — the honesty boundary
|
|
105
104
|
[`security-sensitive-stop`](security-sensitive-stop.md) and
|
|
106
|
-
|
|
105
|
+
`ui-audit-gate` state for their own obligations. The ladder
|
|
107
106
|
is the control; skipping it is caught by nothing.
|
|
108
107
|
|
|
109
108
|
Body migrated to [`guideline:agent-infra/active-remediation-mechanics`](../guidelines/agent-infra/active-remediation-mechanics.md) (per P4 of `road-to-kernel-and-router.md`) — per-tier fix-now/note+ask/follow-up-PR criteria, version-gated modernization, anti-nagging guardrails.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "3"
|
|
4
|
+
consequence_class: "authority-bypass"
|
|
4
5
|
description: "Ask-or-act on a workflow step — trivial-vs-blocking, autonomy opt-in, commit default; Hard Floor stays"
|
|
5
6
|
alwaysApply: false
|
|
6
7
|
load_context:
|
|
@@ -13,7 +14,6 @@ triggers:
|
|
|
13
14
|
self_contained: true
|
|
14
15
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
15
16
|
packs: [meta]
|
|
16
|
-
# obligation: line 4
|
|
17
17
|
obligation_frequency: "per-turn"
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "2a"
|
|
4
4
|
alwaysApply: false
|
|
5
|
+
consequence_class: "security-boundary"
|
|
5
6
|
description: "Endpoint/query on user/tenant data — authenticated ≠ authorized: server-derived ownership/tenant/role + negative tests (401/non-owner/cross-tenant)"
|
|
6
7
|
triggers:
|
|
7
8
|
- keyword: "endpoint"
|
|
@@ -23,7 +24,6 @@ collision_ok:
|
|
|
23
24
|
"controller": "controllers return user data — the ownership/tenant check floor"
|
|
24
25
|
"endpoint": "every data-returning endpoint needs the three negative tests"
|
|
25
26
|
"tenant": "cross-tenant isolation is this rule's core subject"
|
|
26
|
-
# obligation: line 55
|
|
27
27
|
obligation_frequency: "per-edit"
|
|
28
28
|
evidence:
|
|
29
29
|
source_type: external-standard
|
|
@@ -35,7 +35,6 @@ collision_ok:
|
|
|
35
35
|
"composer": "composer output is verbose — rtk wrap applies"
|
|
36
36
|
"docker": "docker output is verbose — rtk wrap applies"
|
|
37
37
|
"rector": "rector output is verbose — rtk wrap applies"
|
|
38
|
-
# obligation: line 42
|
|
39
38
|
obligation_frequency: "per-edit"
|
|
40
39
|
---
|
|
41
40
|
|
|
@@ -20,7 +20,6 @@ packs: [engineering-base]
|
|
|
20
20
|
collision_ok:
|
|
21
21
|
"refactor": "refactors churn comments — the keep/drop discipline applies"
|
|
22
22
|
"implement": "fresh implementation is where over-commenting lands"
|
|
23
|
-
# obligation: line 5
|
|
24
23
|
obligation_frequency: "per-edit"
|
|
25
24
|
enforced_by:
|
|
26
25
|
- "validator:src/scripts/lint_code_comments.ts"
|
|
@@ -23,7 +23,6 @@ packs: [engineering-base]
|
|
|
23
23
|
roles: [developer, reviewer, tester, po, incident, planner]
|
|
24
24
|
enforced_by:
|
|
25
25
|
- "instruction-only: close-the-source-and-re-derive is a pre-write reasoning step only the model observes; CI checks the ledger, never the derivation"
|
|
26
|
-
# obligation: line 40
|
|
27
26
|
obligation_frequency: "per-edit"
|
|
28
27
|
evidence:
|
|
29
28
|
source_type: external-research
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "mechanical-already"
|
|
4
|
+
consequence_class: "authority-bypass"
|
|
4
5
|
description: "Prompt matches an eligible slash command — surface as numbered options with as-is escape; never auto-execute"
|
|
5
6
|
triggers:
|
|
6
7
|
- phrase: "free-form prompt"
|
|
@@ -11,7 +12,6 @@ load_context:
|
|
|
11
12
|
- "../contexts/contracts/command-suggestion-flow.md"
|
|
12
13
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
13
14
|
packs: [meta]
|
|
14
|
-
# obligation: line 18
|
|
15
15
|
obligation_frequency: "per-turn"
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -12,13 +12,12 @@ workspaces: [engineering]
|
|
|
12
12
|
packs: [engineering-base]
|
|
13
13
|
collision_ok:
|
|
14
14
|
"commit": "format floor for every commit message"
|
|
15
|
-
# obligation: line 19
|
|
16
15
|
obligation_frequency: "per-commit"
|
|
17
16
|
---
|
|
18
17
|
|
|
19
18
|
# Commit Conventions
|
|
20
19
|
|
|
21
|
-
**Iron Law.** Match
|
|
20
|
+
**Iron Law.** Match a repo's configured, then git.* settings, then approved convention; else Conventional Commits, branches `<type>/<short-slug>`; never invent one. Subjects + branch names stay emoji-free per [`no-decorative-emojis-in-git-surfaces`](no-decorative-emojis-in-git-surfaces.md); body emojis need an in-artifact legend.
|
|
22
21
|
|
|
23
22
|
Body migrated to `skill:conventional-commits-writing` (per P4 of `road-to-kernel-and-router.md`).
|
|
24
23
|
Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
|
|
@@ -8,7 +8,6 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
|
|
|
8
8
|
packs: [meta]
|
|
9
9
|
triggers:
|
|
10
10
|
- phrase: "reporting progress"
|
|
11
|
-
# obligation: line 20
|
|
12
11
|
obligation_frequency: "per-turn"
|
|
13
12
|
---
|
|
14
13
|
|
|
@@ -34,7 +33,7 @@ CLOSE THE LOOP WITH ONE END-SUMMARY. NEVER MAKE THE USER RE-DERIVE WHERE THINGS
|
|
|
34
33
|
## When NOT to over-apply
|
|
35
34
|
|
|
36
35
|
- A one-shot answer or trivial reply needs no plan-anchor or end-summary (`direct-answers` brevity wins).
|
|
37
|
-
- Don't narrate for its own sake — the thread is orientation, not play-by-play
|
|
36
|
+
- Don't narrate for its own sake — the thread is orientation, not play-by-play.
|
|
38
37
|
- Never let the through-line inflate a reply past what the task needs; brevity and the one-recommendation rule win on conflict.
|
|
39
38
|
|
|
40
39
|
## See also
|
|
@@ -9,7 +9,6 @@ triggers:
|
|
|
9
9
|
self_contained: true
|
|
10
10
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
11
11
|
packs: [meta]
|
|
12
|
-
# obligation: line 19
|
|
13
12
|
obligation_frequency: "per-event"
|
|
14
13
|
---
|
|
15
14
|
|
|
@@ -88,7 +87,7 @@ does not substitute for engaging with the source.
|
|
|
88
87
|
**markup**: a design artifact the user hands over is their own material, so
|
|
89
88
|
adapting its code is not a borrow. Third-party code arriving inside that
|
|
90
89
|
handover is not covered, on either side.
|
|
91
|
-
-
|
|
90
|
+
- `docs/contracts/write-engine.md` —
|
|
92
91
|
ghostwriter's disclosure-footer contract; this rule's quote floor
|
|
93
92
|
applies to any ghostwriter draft that cites an external source.
|
|
94
93
|
- [`source-confidentiality`](source-confidentiality.md) — the license-
|