@event4u/agent-config 16.3.0 → 16.5.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 +178 -78
- 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/design.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/design-antipatterns.md +1 -1
- 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 +14 -48
- 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/accessibility-auditor/data/aria-patterns.csv +2 -0
- package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +3 -3
- 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/canvas-design/SKILL.md +4 -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-intelligence/references/integration-mapping.md +13 -10
- 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/fe-design/references/design-patterns.md +49 -2
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +9 -0
- 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 +4 -2
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +16 -5
- package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
- package/dist/agent-src/skills/logo-generation/SKILL.md +12 -8
- 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/svg-authoring/SKILL.md +318 -0
- 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/skills/wireframe/SKILL.md +5 -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/commands/uiRender.js +201 -4
- package/dist/cli/commands/uiRenderAsset.js +1308 -0
- package/dist/cli/commands/uiRenderAssetCompare.js +752 -0
- package/dist/cli/commands/uiRenderAssetGrid.js +265 -0
- package/dist/cli/commands/uiRenderAssetGrounds.js +323 -0
- package/dist/cli/commands/uiRenderAssetIsolation.js +85 -0
- package/dist/cli/commands/uiRenderAssetTypes.js +145 -0
- package/dist/cli/main.js +47 -1
- package/dist/cli/registry.js +2 -1
- package/dist/cli-delegate/check_update_banner.js +195 -119
- package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-4DBG5K7M.js} +5 -5
- 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-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-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-NQ7WT43P.js → chunk-TMWYUOK4.js} +75 -12
- 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 +489 -238
- 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 +171 -107
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +7 -7
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +41 -22
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +16 -11
- package/dist/hooks/dispatch.js +2520 -1924
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/hooks/svg_rules.chunk.cjs +1626 -0
- package/dist/hooks/svg_rules.chunk.cjs.sha256 +1 -0
- 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 +3063 -2160
- 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/scan_scope.js +105 -0
- package/dist/scripts/_lib/settings_removed_keys.js +168 -0
- package/dist/scripts/_lib/svg_dom.js +284 -0
- package/dist/scripts/_lib/svg_geometry.js +477 -0
- package/dist/scripts/_lib/svg_motion.js +179 -0
- package/dist/scripts/_lib/svg_rules.js +1337 -0
- package/dist/scripts/_lib/svg_urls.js +67 -0
- package/dist/scripts/_lib/thin_rules.js +80 -3
- package/dist/scripts/lint_svg_asset.js +324 -0
- 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/design-antipatterns.md +1 -1
- package/docs/guidelines/php/git.md +15 -2
- package/package.json +4 -3
- 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 +56 -16
- 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 +55 -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/svg_dom.ts +318 -0
- package/src/scripts/_lib/svg_geometry.ts +480 -0
- package/src/scripts/_lib/svg_motion.ts +208 -0
- package/src/scripts/_lib/svg_rules.ts +1453 -0
- package/src/scripts/_lib/svg_urls.ts +72 -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/verification_command.ts +59 -0
- package/src/scripts/_lib/verify_clause.ts +27 -17
- 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/block_speaking_inbox_dir.ts +16 -1
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
- package/src/scripts/hooks/design_pass_hook.ts +157 -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/svg_obligation.ts +497 -0
- package/src/scripts/hooks/svg_rules_loader.ts +133 -0
- package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
- package/src/scripts/hooks/turn_end_gate_hook.ts +6 -3
- 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_consolidation_lineage.ts +6 -3
- package/src/scripts/lint_design_quality.ts +60 -12
- package/src/scripts/lint_evidence_artifacts.ts +9 -0
- package/src/scripts/lint_hook_concern_budget.ts +10 -21
- package/src/scripts/lint_motion_authority_drift.ts +27 -0
- 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_svg_asset.ts +365 -0
- 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
|
@@ -72,7 +72,7 @@ Roadmap: <path> · mode: <autonomous | phase-checkpoints>
|
|
|
72
72
|
|
|
73
73
|
Git: branch <feat/<roadmap-slug>> · commits: chunked (N commit steps
|
|
74
74
|
detected / delivery commits) · push: to feat/<roadmap-slug> ONLY
|
|
75
|
-
· PR: open against <default branch> (
|
|
75
|
+
· PR: open against <default branch> (no merge, except § 5)
|
|
76
76
|
Artifacts: <N> planned (skills/rules/commands/guidelines) —
|
|
77
77
|
batched overlap check: <result — run NOW, against current state>
|
|
78
78
|
Open questions: <N> → decision sheet below (<M> rows); the rest via AI
|
|
@@ -85,7 +85,7 @@ Deferred items: <wait | spawn-follow-up-draft | cancel-with-memo> (default wait)
|
|
|
85
85
|
|
|
86
86
|
Always active regardless of this contract (never lifted):
|
|
87
87
|
• Hard Floor per-commit diff gate (bulk deletions / infra)
|
|
88
|
-
• Push anywhere except feat/<roadmap-slug>;
|
|
88
|
+
• Push anywhere except feat/<roadmap-slug>; merge (§ 5)
|
|
89
89
|
• security-sensitive-stop on auth/billing/tenant/secret paths
|
|
90
90
|
• N=3 validation budget · context-hygiene read-loop abort
|
|
91
91
|
• Deferred-[~] archival gate
|
|
@@ -202,7 +202,7 @@ They are not optional reading: a slug grammar does not imply a namespace, and
|
|
|
202
202
|
| Create feature branch `feat/<roadmap-slug>` (or reuse the current worktree branch) | Never a prod trunk; one branch per run |
|
|
203
203
|
| Chunked commits on that branch | Per-commit Hard-Floor diff gate stays ([`commit-mechanics`](../authority/commit-mechanics.md)); agent picks the split per [`commit-policy`](../../rules/commit-policy.md) |
|
|
204
204
|
| Push to that branch **only** | Push to any other ref = Hard Floor, ask |
|
|
205
|
-
| Open ONE PR (description-only flow) |
|
|
205
|
+
| Open ONE PR (description-only flow) | Acceptance never merges, closes or retargets; merging is § 5's one exception |
|
|
206
206
|
| Batched artifact drafting | The drafting-protocol **Research/overlap pass runs NOW at contract time against current artifact state**; results cached; Understand/Draft phases run non-interactively during the run. Artifacts NOT in the batch still trigger the interactive protocol |
|
|
207
207
|
| Council auto-enable | In-run open questions route to the AI council silently; `high_impact` / `user_required` classifications STILL escalate to the user per [`ask-when-uncertain`](../../rules/ask-when-uncertain.md). **No council configured** → the contract summary says so and in-run true ambiguity halts (never silent guessing) |
|
|
208
208
|
|
|
@@ -211,11 +211,11 @@ the PR has to be able to reach one:
|
|
|
211
211
|
|
|
212
212
|
| Grant | Boundary |
|
|
213
213
|
|---|---|
|
|
214
|
-
| Update the PR after opening it — title, body, further pushes to the same branch | Still never
|
|
214
|
+
| Update the PR after opening it — title, body, further pushes to the same branch | Still never close or retarget; merge only per § 5 |
|
|
215
215
|
| Reversible repository / branch settings the agent can change (branch protection included) | Only settings this run needs to reach a reviewable PR, and only reversible ones; a setting the agent changes it also restores if the run's need ends |
|
|
216
216
|
| Start, re-run and fix CI; update the merge base; resolve conflicts | Standard git and CI operations on the run's own branch |
|
|
217
217
|
| Install project-local dependencies | Inside the repo; never a global or system package manager without its own confirmation |
|
|
218
|
-
| Any tool, CLI, API, model, council or external service the work needs |
|
|
218
|
+
| Any tool, CLI, API, model, council or external service the work needs | Bounded by the **configured `cost.budgets` windows** and by nothing when none is configured (ADR-279). Where the run's spend plus what it reasonably expects would cross a configured window, it **pauses and reports** before crossing rather than asking. Uncertainty is not a reason to ask. Marginal cost of an existing subscription is $0. Splitting spend across services, subagents or rounds to keep each item under a ceiling is a violation. Model-carried: nothing on a run compares a cumulative figure with anything |
|
|
219
219
|
|
|
220
220
|
These grants satisfy [`scope-control`](../../rules/scope-control.md)'s
|
|
221
221
|
"standing instruction" clause for the run — see
|
|
@@ -225,7 +225,7 @@ These grants satisfy [`scope-control`](../../rules/scope-control.md)'s
|
|
|
225
225
|
|
|
226
226
|
| Mode | End state | Halts during run |
|
|
227
227
|
|---|---|---|
|
|
228
|
-
| `autonomous` | All steps `[x]` · quality green per cadence · work committed in chunks on `feat/<roadmap-slug>` · pushed · PR open · archival sweep run. **
|
|
228
|
+
| `autonomous` | All steps `[x]` · quality green per cadence · work committed in chunks on `feat/<roadmap-slug>` · pushed · PR open · archival sweep run. **No merge without an owner auto-merge instruction (§ 5).** | Safety floors only (+ quality-red, + step reveals out-of-roadmap work) |
|
|
229
229
|
| `phase-checkpoints` | Same end state | Safety floors + a compact status + "continue?" prompt at each phase boundary |
|
|
230
230
|
| `interactive` (derived, never from an absent field) | Legacy: work lands, no git delivery without per-op permission | All gates as authored by their owning rules |
|
|
231
231
|
|
|
@@ -238,12 +238,13 @@ git grants are omitted from the contract (nothing to authorize —
|
|
|
238
238
|
**ADR-237 widens § 3 and leaves this section untouched — deliberately.** An
|
|
239
239
|
end-to-end delegation is tolerable precisely because a PR is reviewable before
|
|
240
240
|
it merges, so the boundary that keeps merging out is the one that makes the rest
|
|
241
|
-
safe. Nothing below is reachable by
|
|
241
|
+
safe. Nothing below is reachable by acceptance. A merge comes only from outside
|
|
242
|
+
it: an owner auto-merge instruction (ADR-282, `/pr:merge` § 9a).
|
|
242
243
|
|
|
243
244
|
- Any [`non-destructive-by-default`](../../rules/non-destructive-by-default.md)
|
|
244
245
|
trigger beyond the two named grants (own-branch push, PR-open):
|
|
245
246
|
prod-trunk anything, deploys, bulk deletions, infra commits.
|
|
246
|
-
- Merging
|
|
247
|
+
- Merging a PR without an owner auto-merge instruction; closing or retargeting one.
|
|
247
248
|
- Lifting [`security-sensitive-stop`](../../rules/security-sensitive-stop.md),
|
|
248
249
|
the N=3 budget, context-hygiene aborts, or the deferred-`[~]` gate.
|
|
249
250
|
- Work outside the roadmap's scope (halt: scope-out-of-roadmap).
|
|
@@ -125,25 +125,24 @@ that is already done — the exact failure this clause prevents. This is the
|
|
|
125
125
|
|
|
126
126
|
## 2. Pre-run summary — gate or inline note
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
Summary block (shown in both modes; gate-mode appends the numbered
|
|
128
|
+
The command name already names the scope; asking "Go / Different
|
|
129
|
+
roadmap / …" on every run is noise, so there is no confirmation gate and
|
|
130
|
+
no setting to bring one back (the `roadmap.skip_pre_run_gate` key was
|
|
131
|
+
retired on 2026-10-09 with its default, `true`, as fixed behavior).
|
|
132
|
+
|
|
133
|
+
- The roadmap is unambiguous (user named it, or exactly one active
|
|
134
|
+
roadmap exists) → **no interactive gate.** Emit the summary block
|
|
135
|
+
below as a one-shot inline note (no numbered options, no wait) so the
|
|
136
|
+
user can still abort mid-stream if the wrong file was picked, then
|
|
137
|
+
continue straight into § 3.
|
|
138
|
+
- The roadmap is ambiguous (multiple active roadmaps and none named),
|
|
139
|
+
**or** an unresolvable cadence / scope conflict is detected → show the
|
|
140
|
+
gate with numbered options and wait for input.
|
|
141
|
+
|
|
142
|
+
The gate is shown only for a genuine "which roadmap?" or an unresolvable
|
|
143
|
+
conflict — never as a routine confirmation.
|
|
144
|
+
|
|
145
|
+
Summary block (shown in both cases; the gate appends the numbered
|
|
147
146
|
options + wait):
|
|
148
147
|
|
|
149
148
|
> Roadmap: `<resolved-path>`
|
|
@@ -159,10 +158,6 @@ options + wait):
|
|
|
159
158
|
> 1. Go — start processing autonomously
|
|
160
159
|
> 2. Different roadmap · 3. Different scope · 4. Toggle council · 5. Abort
|
|
161
160
|
|
|
162
|
-
The invocation-level skip still applies under `skip_pre_run_gate: false`:
|
|
163
|
-
when scope, roadmap, and council are all unambiguous in the invocation
|
|
164
|
-
(e.g. `/roadmap:process-phase road-to-X.md with council`), the gate
|
|
165
|
-
does not fire.
|
|
166
161
|
|
|
167
162
|
## 3. Pre-scan — execution contract or commit-step ask
|
|
168
163
|
|
|
@@ -334,7 +329,8 @@ report.
|
|
|
334
329
|
run: branches, chunked commits, pushing that branch, opening and updating the
|
|
335
330
|
PR, reversible repository/branch settings, CI runs and re-runs, merge-base
|
|
336
331
|
updates, conflict resolution, project-local dependencies, and paid calls
|
|
337
|
-
inside
|
|
332
|
+
inside whatever `cost.budgets` windows are configured — none configured,
|
|
333
|
+
none applies (ADR-279). If yes → **run it**.
|
|
338
334
|
3. **Is it on the EXCLUDED list?** Merging to a production trunk, deploying,
|
|
339
335
|
production data / secrets / IAM / DNS, bulk deletion outside the roadmap's
|
|
340
336
|
scope, an irreversible external action beyond the PR itself. Those keep their
|
|
@@ -501,11 +497,15 @@ so the shape is settled before the runs rather than designed under pressure:
|
|
|
501
497
|
a branch.
|
|
502
498
|
- **Delivery:** one branch and one PR per lane.
|
|
503
499
|
- **Immediate removal:** a single scope-lock collision with data loss.
|
|
500
|
+
- **Refusal report:** every lane report carries the fixed field
|
|
501
|
+
`classifier_refusals` (an empty list when none) — a report without it is
|
|
502
|
+
malformed, never "clean". At drain end the orchestrator batches every lane's
|
|
503
|
+
field into ONE envelope (§ Host-classifier refusals).
|
|
504
504
|
|
|
505
505
|
## 4. Resolve cadences — read once, cache for the run
|
|
506
506
|
|
|
507
|
-
Read
|
|
508
|
-
run. Do **not** re-read inside the step loop.
|
|
507
|
+
Read `roadmap.quality_cadence` from `.agent-settings.yml` once and cache
|
|
508
|
+
it for the whole run. Do **not** re-read inside the step loop.
|
|
509
509
|
|
|
510
510
|
**`roadmap.quality_cadence`** — when to run the quality pipeline.
|
|
511
511
|
Only relevant when `quality.local_auto_run` is `true`; when it is
|
|
@@ -524,17 +524,12 @@ Missing / unreadable / unknown → fall back to `end_of_roadmap`.
|
|
|
524
524
|
The Iron Law [`verify-before-complete`](../../rules/verify-before-complete.md)
|
|
525
525
|
still forbids claiming quality output that was not produced.
|
|
526
526
|
|
|
527
|
-
|
|
528
|
-
|
|
527
|
+
**Dashboard regen cadence** — fixed, not a setting (the
|
|
528
|
+
`roadmap.dashboard_regen_cadence` key was retired on 2026-10-09 with its
|
|
529
|
+
default as the behavior): `./agent-config roadmap:progress` runs every
|
|
530
|
+
5th closed step, at every phase boundary and at reply end.
|
|
529
531
|
|
|
530
|
-
|
|
531
|
-
|---|---|
|
|
532
|
-
| `per_step` | After every checkbox flip |
|
|
533
|
-
| `every_5_steps` (default) | Every 5th closed step + at phase boundary + at reply end |
|
|
534
|
-
| `phase_boundary` | Only at phase boundaries + run end |
|
|
535
|
-
|
|
536
|
-
`process-step` ignores this — single-step runs always regen at step
|
|
537
|
-
end. Any file-shape touch (rename / phase add / archive — Iron Law 1
|
|
532
|
+
`process-step` always regens at step end. Any file-shape touch (rename / phase add / archive — Iron Law 1
|
|
538
533
|
of [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md))
|
|
539
534
|
forces an immediate regen regardless of cadence. The checkbox flip
|
|
540
535
|
itself is **never** batchable — only the subprocess.
|
|
@@ -772,16 +767,13 @@ Per-class routing, why parking is not deferring, and the scope-growth pointer:
|
|
|
772
767
|
above unchanged (agent-decidable exit/acceptance criteria remain the
|
|
773
768
|
default; `verify:` is the opt-in machine-checkable tightening).
|
|
774
769
|
|
|
775
|
-
6. **Dashboard regen — cadence
|
|
776
|
-
`./agent-config roadmap:progress
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
- `phase_boundary` → skip; the boundary handler in § 5 wrapper /
|
|
783
|
-
§ 6 runs the regen.
|
|
784
|
-
- Any file-shape touch (rename / phase add / archive — Iron Law 1)
|
|
770
|
+
6. **Dashboard regen — fixed cadence** (§ 4). Run
|
|
771
|
+
`./agent-config roadmap:progress`:
|
|
772
|
+
- after the 5th, 10th, … closed step **of this run**, or when the
|
|
773
|
+
reply ends with closed steps pending regen;
|
|
774
|
+
- at a phase boundary — the boundary handler in § 5 wrapper / § 6
|
|
775
|
+
runs it;
|
|
776
|
+
- on any file-shape touch (rename / phase add / archive — Iron Law 1)
|
|
785
777
|
→ run immediately regardless of cadence.
|
|
786
778
|
|
|
787
779
|
Skipped regens accumulate into the next due regen — the markdown
|
|
@@ -843,7 +835,7 @@ and none of them is a `blocked` outcome.
|
|
|
843
835
|
|
|
844
836
|
| # | What the refresh found | Reaction |
|
|
845
837
|
|---|---|---|
|
|
846
|
-
| a | A PR touching my owned paths **merged** since the last refresh | Run `
|
|
838
|
+
| a | A PR touching my owned paths **merged** since the last refresh | Run `agent-config git:convention sync --base origin/<this branch's PR base>` now — already the documented resolution, only push-bound until this row existed. Re-read the current step's files, continue. |
|
|
847
839
|
| b | An **open** PR touches my owned paths | Continue. Name the collision in the PR description and in the final report. **Never rebase onto a foreign branch.** |
|
|
848
840
|
| c | A peer session shows `PATH OVERLAP` | Take disjoint steps first if ordering allows; otherwise name it and continue. The register is advisory, never a lock. |
|
|
849
841
|
| d | The roadmap itself was **archived on `origin/main`** | Stop. The same **selection error** as § 1, detected late — not a halt, and no checkbox is flipped to reach it. |
|
|
@@ -1004,9 +996,11 @@ a violation of the command and the user's will:
|
|
|
1004
996
|
opened" / "a GitHub setting must change" / "CI must be re-run" / "the merge
|
|
1005
997
|
base needs updating" / "there are conflicts" / "tests fail"** — every one is
|
|
1006
998
|
remediation work the invocation authorised (ADR-237 § 1). Do it.
|
|
1007
|
-
- **"a paid service is needed"** — authorised
|
|
1008
|
-
|
|
1009
|
-
|
|
999
|
+
- **"a paid service is needed"** — authorised inside the configured
|
|
1000
|
+
`cost.budgets` windows, and with none configured there is no ceiling to be
|
|
1001
|
+
outside of (§ Spend in the wrapper). A crossing of a configured window pauses
|
|
1002
|
+
and reports; it does not ask. Uncertainty about the exact cost is explicitly
|
|
1003
|
+
NOT a reason to ask.
|
|
1010
1004
|
- **"a maintainer should do this"** when the agent can perform the same action
|
|
1011
1005
|
through git, `gh`, an API or a CLI. **Capability before role**: the role of the
|
|
1012
1006
|
person who conventionally does a thing is not a property of the thing.
|
|
@@ -1045,10 +1039,31 @@ execution either way.
|
|
|
1045
1039
|
[`roadmap-execution-contract § 4`](roadmap-execution-contract.md)):
|
|
1046
1040
|
all steps `[x]` · quality green per cadence · work committed in
|
|
1047
1041
|
chunks on the run's feature branch · pushed to that branch · ONE PR
|
|
1048
|
-
open (description-only flow) · archival sweep run. **
|
|
1049
|
-
|
|
1042
|
+
open (description-only flow) · archival sweep run. **No mode merges by
|
|
1043
|
+
itself:** a merge needs the owner's explicit auto-merge instruction and
|
|
1044
|
+
runs through `/pr:merge` § 9a's danger gate (ADR-282). Without a contract
|
|
1050
1045
|
(interactive mode), the run ends after the archival check with no
|
|
1051
1046
|
git delivery beyond explicitly authorized commit steps.
|
|
1047
|
+
|
|
1048
|
+
### 6-refusals. Host-classifier refusals — hand off, never route around
|
|
1049
|
+
|
|
1050
|
+
When the host's own classifier refuses a step of an owner-directed task, the
|
|
1051
|
+
run never reaches the same outcome by another tool, in smaller pieces or in
|
|
1052
|
+
another encoding, and never records a way around it. It finishes what does not
|
|
1053
|
+
depend on the refused step, then — owner present — asks once in-session for an
|
|
1054
|
+
explicit authorization of that exact step and, on a yes, re-runs the SAME step
|
|
1055
|
+
ONCE so the classifier decides again with the owner's word in front of it
|
|
1056
|
+
(ADR-282 § Part B). Refused again, or no owner present, it writes ONE
|
|
1057
|
+
continuation prompt for the owner and names its path in one line:
|
|
1058
|
+
|
|
1059
|
+
```bash
|
|
1060
|
+
./scripts-run src/scripts/refusal_envelope --input <envelope.json>
|
|
1061
|
+
```
|
|
1062
|
+
|
|
1063
|
+
The input is task · done · refusals · remaining · the owner-directive record
|
|
1064
|
+
when there is one; the envelope lands at `agents/tmp/round-<hex>/prompt.md`.
|
|
1065
|
+
Lane refusals arrive in each lane's `classifier_refusals` field and go into the
|
|
1066
|
+
same single envelope (ADR-282 § Part B).
|
|
1052
1067
|
- **If the entire roadmap reached `count_open == 0`** → run the full
|
|
1053
1068
|
project quality pipeline. On red → stop, surface failures, do **not**
|
|
1054
1069
|
archive. On green → run the **deferred-resolution gate** below before
|
|
@@ -12,8 +12,10 @@ provider's model or billing rule.
|
|
|
12
12
|
inherit`, per [`model-recommendations`](../model-recommendations.md)).
|
|
13
13
|
`frontier` (ADR-232) is declarable and opt-in; it is never the resolution of
|
|
14
14
|
`inherit` — see the top-band invariant below.
|
|
15
|
-
- `subagents.
|
|
15
|
+
- `subagents.quota_arbitrage`, `subagents.model_map`
|
|
16
16
|
(see [`auto-orchestration-activation`](auto-orchestration-activation.md)).
|
|
17
|
+
Downshift itself is always on — the `subagents.downshift` key was retired on
|
|
18
|
+
2026-10-09 with its default as the fixed behavior.
|
|
17
19
|
- The host-capability manifest's `separate_quota_pool`
|
|
18
20
|
([`host-capability-manifest`](host-capability-manifest.md)).
|
|
19
21
|
|
|
@@ -26,21 +28,19 @@ QUOTA ARBITRAGE IS A BONUS, NEVER LOAD-BEARING — REMOVE IT AND ROUTING IS
|
|
|
26
28
|
THE SAME MINUS THE QUOTA WIN.
|
|
27
29
|
```
|
|
28
30
|
|
|
29
|
-
1. **Downshift
|
|
30
|
-
tier. No routing change.
|
|
31
|
-
2. **Downshift on** → a sub-task runs on its declared tier; an `inherit` task
|
|
31
|
+
1. **Downshift** (always on) → a sub-task runs on its declared tier; an `inherit` task
|
|
32
32
|
runs on the session tier, **bounded by the top-band invariant below**. The
|
|
33
33
|
tier resolves to a model alias via `model_map`; an empty entry means "use
|
|
34
34
|
the tier's runtime default" — never a baked-in provider model name.
|
|
35
|
-
|
|
35
|
+
2. **Quota arbitrage** → prefer the **separate** quota pool for the sub-task
|
|
36
36
|
**only when** `subagents.quota_arbitrage == true` **and**
|
|
37
37
|
`manifest.separate_quota_pool == true`. Otherwise the shared pool is used and
|
|
38
38
|
the tier/model choice is unchanged. This is the only place the
|
|
39
39
|
"Sonnet-has-its-own-allowance" idea lives, and it lives as a runtime-detected
|
|
40
40
|
flag, never as portable prose.
|
|
41
|
-
|
|
41
|
+
3. **Budget routing — ARCHIVED 2026-08-16, there is no third step.** This
|
|
42
42
|
position used to describe a budget relation applied after the tier resolves
|
|
43
|
-
per 1–
|
|
43
|
+
per 1–2: cheapest classifier-adequate tier WITH available budget, an atomic
|
|
44
44
|
pre-dispatch reserve, a cool-down on quota errors. None of it exists any
|
|
45
45
|
more. A converged AI-council verdict (anthropic + openai, 2 of 2) archived
|
|
46
46
|
`pickTier` and the permit lifecycle, because the `routing_switch` they
|
|
@@ -196,7 +196,7 @@ rule, or context asserts "model X is free".
|
|
|
196
196
|
Tier vocabulary + cool-down state:
|
|
197
197
|
[`src/scripts/_lib/tier_budget_routing.ts`](../../../../src/scripts/_lib/tier_budget_routing.ts)
|
|
198
198
|
(`TIER_ORDER`, `readCooldowns` — the budget decision layer that used to live
|
|
199
|
-
there is archived, see step
|
|
199
|
+
there is archived, see step 3), covered by
|
|
200
200
|
[`tests/scripts/tier_budget_routing.test.ts`](../../../../tests/scripts/tier_budget_routing.test.ts);
|
|
201
201
|
live state: `agent-config routing:doctor` (orchestration section).
|
|
202
202
|
|
|
@@ -23,9 +23,11 @@ dispatch → monitor → status → escalate / kill
|
|
|
23
23
|
|
|
24
24
|
## Budget + parallel cap
|
|
25
25
|
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
- `budgetHalt()`'s per-target cap (`MAX_ATTEMPTS_PER_TARGET = 3`) is the
|
|
27
|
+
orchestrator's own number, not `autonomous-execution`'s
|
|
28
|
+
`execution.fix_loop_max` budget (now a default-10 ladder): three
|
|
29
|
+
consecutive failed attempts on the same target halts the run and surfaces
|
|
30
|
+
the three attempts. `budgetHalt()` is the deterministic counter.
|
|
29
31
|
- `subagents.max_parallel` caps concurrent dispatch. No speculative fan-out:
|
|
30
32
|
a subagent is spawned only for a classified-delegable target, never on spec.
|
|
31
33
|
|
|
@@ -175,7 +177,7 @@ requires a non-empty `emergency.orchestration_halt_justification`.
|
|
|
175
177
|
|
|
176
178
|
## Related
|
|
177
179
|
|
|
178
|
-
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the
|
|
180
|
+
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the `execution.fix_loop_max` budget and its ladder.
|
|
179
181
|
- [`auto-orchestration-activation`](auto-orchestration-activation.md) — `enabled`/`auto` keys.
|
|
180
182
|
- [`orchestration-telemetry`](orchestration-telemetry.md) — the audit signals the guardrails read.
|
|
181
183
|
- [`subagent-response-contract`](subagent-response-contract.md) — the structured body returned inside this 4-status envelope + the orchestrator's synthesis duties.
|
|
@@ -114,7 +114,7 @@ state is not `success` it names what would change it:
|
|
|
114
114
|
- [`verify-before-complete`](../../rules/verify-before-complete.md) — no
|
|
115
115
|
completion claim without fresh evidence; this names what to claim when the
|
|
116
116
|
claim is not completion.
|
|
117
|
-
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the
|
|
118
|
-
validation budget whose firing is `exhausted`.
|
|
117
|
+
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the
|
|
118
|
+
`execution.fix_loop_max` validation budget whose firing is `exhausted`.
|
|
119
119
|
- [`autonomy-mechanics`](autonomy-mechanics.md) — the budget's mechanics and the
|
|
120
120
|
adaptive-effort ordering this page's progress-primary section states.
|
|
@@ -14,15 +14,9 @@ tools and run the right one — instead of a per-stack command explosion.
|
|
|
14
14
|
> commands stay PHP-locked."
|
|
15
15
|
|
|
16
16
|
**Size budget: none of its own.** The enforced ceiling is
|
|
17
|
-
`check_depth_budget`'s 16,000 chars, and that is the
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
then 7,500, then 8,500 — and each was set just above whatever the file
|
|
21
|
-
measured that day, so the next edit of any size broke it while the same
|
|
22
|
-
sentence forbade raising it. A ceiling fitted to its own artifact is not a
|
|
23
|
-
constraint, it is a tripwire; and the third one was set with a sentence
|
|
24
|
-
claiming "real headroom" over 66 characters, which is the trap diagnosing
|
|
25
|
-
itself and walking in anyway.
|
|
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.
|
|
26
20
|
|
|
27
21
|
What actually bounds this page is **what belongs in it**: the resolver's
|
|
28
22
|
contract — the axes, the detection order, the confidence tiers, the refusal
|
|
@@ -54,7 +48,7 @@ its package count, so the cost is proportional and not negligible.
|
|
|
54
48
|
The **cache probe is the expensive path**, with the magnitude stated, not
|
|
55
49
|
implied as a SHAPE, because the arithmetic has already been published wrong
|
|
56
50
|
once: `latest_manifest_mtime` stats both fixed-name lists in every scope,
|
|
57
|
-
bounded at 200 scopes, each hit paying a second stat — and without
|
|
51
|
+
bounded at 200 scopes (`_MAX_BEHAVIOR_SCOPES`), each hit paying a second stat — and without
|
|
58
52
|
an explicit `scopes` it also expands the globs. The guard can cost more than
|
|
59
53
|
the resolution it guards, so a caller holding the scope list passes it. The
|
|
60
54
|
widening is still right: a root-only key cannot see a behavior runner
|
|
@@ -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
|
|
@@ -114,7 +114,7 @@ Within-project invariants + repetition caps. Override = declare the value in
|
|
|
114
114
|
| V2 | Glassmorphism as decoration (`backdrop-blur` + `bg-white/10`) with no functional depth hierarchy | Model defaults to it for "premium feel"; result looks like 2021 Material You clip-art | Element genuinely sits above a complex, blurred background layer; use sparingly and only for top-level floating surfaces | craft-presumption | delete → reduce | static |
|
|
115
115
|
| V3 | Ghost card: `border: 1px solid` + box-shadow ≥ 16px spread together | The combination creates visual noise — the ghost card signals no confident decision about depth | Choose either border OR shadow to indicate depth; never both on the same surface | invariant | delete → reduce | static |
|
|
116
116
|
| V4 | Over-rounded small cards or badges: `border-radius` > 16px on elements < 200px wide | Excessive rounding on small surfaces looks toy-ish; standard cap is 12–16px | Pill shape (`border-radius: 9999px`) is intentional on single-line tags/chips only | craft-presumption | retune | static |
|
|
117
|
-
| V5 | Hand-drawn or illustrated SVG icons mixed with crisp icon-system icons | Visual register collision; instantly reads as "generated asset" | Intentional illustrative section (hero illustration, empty-state art); isolate from the icon system | invariant | replace | render |
|
|
117
|
+
| V5 | Hand-drawn or illustrated SVG icons mixed with crisp icon-system icons | Visual register collision; instantly reads as "generated asset" | Intentional illustrative section (hero illustration, empty-state art); isolate from the icon system. A genuinely missing glyph is authored under [`svg-authoring`](../skills/svg-authoring/SKILL.md) against the incumbent set's own grid | invariant | replace | render |
|
|
118
118
|
| V6 | Repeating diagonal stripes as a background texture | A cliché background default; reads as generated CSS art | Brand explicitly uses pattern backgrounds (e.g., a textile brand); document the stripe definition | style-preference | delete | static |
|
|
119
119
|
| V7 | Nested cards: a card inside a card inside a card | Depth hierarchy collapses; user cannot parse elevation intent | A truly three-level hierarchy (e.g., project → board → card); ensure each level has distinct visual weight | invariant | delete → reduce | render |
|
|
120
120
|
| V9 | Noise or grain texture laid over a gradient as a "premium" surface default | The visual sibling of V6's diagonal stripes — a generated-CSS-art texture reached for to make a flat gradient look considered, applied because it is available rather than because the surface needed a texture | The texture is part of a documented brand surface treatment (a print-inspired or analog-photographic identity) with the grain opacity defined as a token, not chosen per surface | style-preference | delete | render |
|