@event4u/agent-config 7.5.0 → 8.0.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/.claude-plugin/marketplace.json +8 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +325 -0
- package/README.md +35 -5
- package/dist/agent-src/commands/analytics/prune.md +1 -1
- package/dist/agent-src/commands/analytics/show.md +1 -1
- package/dist/agent-src/commands/analyze/decision.md +2 -2
- package/dist/agent-src/commands/analyze/incident.md +2 -2
- package/dist/agent-src/commands/analyze/near-miss.md +2 -2
- package/dist/agent-src/commands/analyze/postmortem.md +2 -2
- package/dist/agent-src/commands/analyze/premortem.md +2 -2
- package/dist/agent-src/commands/cost-report.md +25 -0
- package/dist/agent-src/commands/evals/analyze.json +30 -0
- package/dist/agent-src/commands/evals/mission-upgrade.json +30 -0
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/knowledge/forget.md +1 -1
- package/dist/agent-src/commands/knowledge/ingest.md +1 -1
- package/dist/agent-src/commands/knowledge/list.md +1 -1
- package/dist/agent-src/commands/memory/load.md +12 -11
- package/dist/agent-src/commands/memory/promote.md +30 -0
- package/dist/agent-src/commands/memory/propose.md +16 -2
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +11 -7
- package/dist/agent-src/commands/optimize-project.md +243 -0
- package/dist/agent-src/commands/optimize.md +5 -0
- package/dist/agent-src/commands/pr/create.md +37 -8
- package/dist/agent-src/commands/prediction-pool.md +2 -2
- package/dist/agent-src/commands/profile/activate.md +3 -3
- package/dist/agent-src/commands/profile/deactivate.md +2 -2
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/research/deep.md +5 -0
- package/dist/agent-src/commands/research/report.md +2 -1
- package/dist/agent-src/commands/roadmap/create.md +88 -10
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/process-full.md +15 -2
- package/dist/agent-src/commands/roadmap/process-phase.md +18 -6
- package/dist/agent-src/commands/roadmap/process-step.md +4 -0
- package/dist/agent-src/commands/roadmap.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +1 -1
- package/dist/agent-src/commands/sync-gitignore/fix.md +42 -6
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +106 -0
- package/dist/agent-src/commands/team-knowledge/consolidate.md +105 -0
- package/dist/agent-src/commands/team-knowledge.md +64 -0
- package/dist/agent-src/contexts/authority/commit-mechanics.md +8 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +11 -0
- package/dist/agent-src/contexts/authority/scope-mechanics.md +25 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +43 -0
- package/dist/agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +2 -2
- package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +14 -4
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +11 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +32 -8
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +107 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +71 -15
- package/dist/agent-src/contexts/execution/subagent-steering.md +41 -1
- package/dist/agent-src/contexts/override-system.md +1 -1
- package/dist/agent-src/personas/brand-strategist.md +0 -1
- package/dist/agent-src/personas/data-integrity.md +66 -0
- package/dist/agent-src/personas/design-director.md +0 -1
- package/dist/agent-src/personas/performance-engineer.md +66 -0
- package/dist/agent-src/personas/production-validator.md +73 -0
- package/dist/agent-src/rules/agent-authority.md +3 -4
- package/dist/agent-src/rules/analysis-skill-routing.md +3 -5
- package/dist/agent-src/rules/architecture.md +2 -4
- package/dist/agent-src/rules/artifact-drafting-protocol.md +35 -6
- package/dist/agent-src/rules/artifact-engagement-recording.md +2 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +10 -14
- package/dist/agent-src/rules/augment-edit-discipline.md +3 -5
- package/dist/agent-src/rules/autonomous-execution.md +3 -5
- package/dist/agent-src/rules/brand-consistency.md +3 -5
- package/dist/agent-src/rules/brand-source-of-truth.md +3 -5
- package/dist/agent-src/rules/cli-output-handling.md +4 -6
- package/dist/agent-src/rules/command-suggestion-policy.md +3 -5
- package/dist/agent-src/rules/commit-conventions.md +3 -5
- package/dist/agent-src/rules/commit-policy.md +8 -10
- package/dist/agent-src/rules/content-quoting-floor.md +88 -0
- package/dist/agent-src/rules/context-hygiene.md +3 -5
- package/dist/agent-src/rules/copilot-routing.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +120 -0
- package/dist/agent-src/rules/delegation-policy.md +10 -6
- package/dist/agent-src/rules/design-fidelity.md +3 -5
- package/dist/agent-src/rules/devcontainer-routing.md +4 -6
- package/dist/agent-src/rules/direct-answers.md +13 -17
- package/dist/agent-src/rules/docker-commands.md +3 -5
- package/dist/agent-src/rules/domain-adoption-policy.md +3 -5
- package/dist/agent-src/rules/domain-safety-disclaimer.md +3 -5
- package/dist/agent-src/rules/domain-safety-pii.md +3 -5
- package/dist/agent-src/rules/domain-safety-retention.md +3 -5
- package/dist/agent-src/rules/downstream-changes.md +3 -4
- package/dist/agent-src/rules/engineering-safety-floor.md +3 -5
- package/dist/agent-src/rules/external-reference-deep-dive.md +3 -5
- package/dist/agent-src/rules/fast-path-marker-visibility.md +3 -5
- package/dist/agent-src/rules/finance-safety-floor.md +3 -6
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -5
- package/dist/agent-src/rules/git-history-discipline.md +3 -5
- package/dist/agent-src/rules/guidelines.md +2 -4
- package/dist/agent-src/rules/icon-consistency.md +3 -5
- package/dist/agent-src/rules/image-likeness-and-rights.md +3 -5
- package/dist/agent-src/rules/improve-before-implement.md +5 -5
- package/dist/agent-src/rules/invite-challenge.md +3 -5
- package/dist/agent-src/rules/language-and-tone.md +13 -15
- package/dist/agent-src/rules/laravel-routing.md +3 -5
- package/dist/agent-src/rules/laravel-translations.md +3 -5
- package/dist/agent-src/rules/legal-safety-floor.md +3 -5
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -5
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +4 -7
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -5
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -4
- package/dist/agent-src/rules/media-governance-routing.md +3 -5
- package/dist/agent-src/rules/media-sync-ground-truth.md +3 -5
- package/dist/agent-src/rules/minimal-safe-diff.md +5 -5
- package/dist/agent-src/rules/missing-tool-handling.md +3 -5
- package/dist/agent-src/rules/model-recommendation.md +4 -6
- package/dist/agent-src/rules/no-attribution-footers.md +3 -5
- package/dist/agent-src/rules/no-cheap-questions.md +5 -8
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +3 -6
- package/dist/agent-src/rules/no-pr-progress-comments.md +3 -6
- package/dist/agent-src/rules/no-roadmap-references.md +3 -5
- package/dist/agent-src/rules/non-destructive-by-default.md +11 -13
- package/dist/agent-src/rules/notes-first-reasoning.md +3 -5
- package/dist/agent-src/rules/onboarding-gate.md +4 -6
- package/dist/agent-src/rules/output-discipline.md +3 -5
- package/dist/agent-src/rules/package-ci-checks.md +3 -5
- package/dist/agent-src/rules/persona-governance.md +2 -4
- package/dist/agent-src/rules/php-coding.md +3 -5
- package/dist/agent-src/rules/preservation-guard.md +2 -4
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -5
- package/dist/agent-src/rules/reviewer-awareness.md +5 -6
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +3 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +5 -5
- package/dist/agent-src/rules/role-mode-adherence.md +2 -4
- package/dist/agent-src/rules/rule-type-governance.md +3 -5
- package/dist/agent-src/rules/runtime-safety.md +2 -4
- package/dist/agent-src/rules/scope-control.md +10 -11
- package/dist/agent-src/rules/security-sensitive-stop.md +4 -5
- package/dist/agent-src/rules/size-enforcement.md +2 -4
- package/dist/agent-src/rules/skill-improvement-trigger.md +3 -5
- package/dist/agent-src/rules/skill-quality.md +3 -5
- package/dist/agent-src/rules/slash-command-routing-policy.md +3 -5
- package/dist/agent-src/rules/source-confidentiality.md +3 -5
- package/dist/agent-src/rules/source-discovery-gate.md +3 -5
- package/dist/agent-src/rules/source-of-truth.md +3 -5
- package/dist/agent-src/rules/strategy-safety-floor.md +3 -5
- package/dist/agent-src/rules/symfony-routing.md +4 -6
- package/dist/agent-src/rules/telegraph-speak.md +4 -5
- package/dist/agent-src/rules/think-before-action.md +7 -4
- package/dist/agent-src/rules/token-budget-discipline.md +29 -5
- package/dist/agent-src/rules/token-efficiency.md +3 -5
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -5
- package/dist/agent-src/rules/tool-safety.md +2 -4
- package/dist/agent-src/rules/ui-audit-gate.md +3 -6
- package/dist/agent-src/rules/untrusted-input-defense.md +3 -5
- package/dist/agent-src/rules/upstream-proposal.md +4 -6
- package/dist/agent-src/rules/user-interaction.md +7 -5
- package/dist/agent-src/rules/user-interrupt-priority.md +17 -8
- package/dist/agent-src/rules/verify-before-complete.md +12 -22
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +3 -3
- package/dist/agent-src/scripts/update_roadmap_progress.ts +197 -7
- package/dist/agent-src/skills/adr-create/SKILL.md +48 -42
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +18 -0
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/ai-council/SKILL.md +14 -1
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +0 -3
- package/dist/agent-src/skills/brand/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-identity/SKILL.md +3 -3
- package/dist/agent-src/skills/brand-strategy/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -3
- package/dist/agent-src/skills/canvas-design/SKILL.md +6 -0
- package/dist/agent-src/skills/check-refs/SKILL.md +7 -4
- package/dist/agent-src/skills/code-review/SKILL.md +1 -0
- package/dist/agent-src/skills/complexity-first-planning/SKILL.md +6 -5
- package/dist/agent-src/skills/condense-memory/SKILL.md +11 -11
- package/dist/agent-src/skills/context-document/SKILL.md +17 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -3
- package/dist/agent-src/skills/decision-record/SKILL.md +6 -0
- package/dist/agent-src/skills/decision-review/SKILL.md +5 -3
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +6 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +5 -2
- package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
- package/dist/agent-src/skills/design-tokens/SKILL.md +10 -4
- package/dist/agent-src/skills/design-variations/SKILL.md +127 -0
- package/dist/agent-src/skills/design-variations/evals/triggers.json +17 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +4 -4
- package/dist/agent-src/skills/fe-design/SKILL.md +20 -0
- package/dist/agent-src/skills/html-deck/SKILL.md +123 -0
- package/dist/agent-src/skills/html-deck/evals/triggers.json +17 -0
- package/dist/agent-src/skills/html-deck/templates/deck-shell.html +77 -0
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
- package/dist/agent-src/skills/laravel/SKILL.md +0 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +46 -0
- package/dist/agent-src/skills/lint-skills/SKILL.md +6 -6
- package/dist/agent-src/skills/md-language-check/SKILL.md +3 -3
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +66 -1
- package/dist/agent-src/skills/migration-architect/SKILL.md +1 -0
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +2 -2
- package/dist/agent-src/skills/performance-analysis/SKILL.md +2 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/premortem/SKILL.md +0 -3
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +16 -0
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +3 -1
- package/dist/agent-src/skills/release-comms/SKILL.md +46 -45
- package/dist/agent-src/skills/roadmap-management/SKILL.md +21 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +32 -2
- package/dist/agent-src/skills/root-cause-frameworks/SKILL.md +0 -3
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -0
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -0
- package/dist/agent-src/skills/source-discovery/SKILL.md +22 -3
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +33 -14
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +11 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +8 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +29 -0
- package/dist/agent-src/skills/threat-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -0
- package/dist/agent-src/skills/wireframe/SKILL.md +118 -0
- package/dist/agent-src/skills/wireframe/evals/triggers.json +17 -0
- package/dist/agent-src/templates/agent-settings.md +22 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/contexts/knowledge-pages.md +116 -0
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +1 -1
- package/dist/agent-src/templates/roadmaps.md +70 -2
- package/dist/agent-src/templates/rule.md +1 -1
- package/dist/agent-src/templates/scripts/README.md +3 -3
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +109 -0
- package/dist/agent-src/templates/tickets.md +8 -8
- package/dist/cli/commands/recordTriggerEval.test.js +1 -1
- package/dist/cli/commands/recordTriggerEval.test.js.map +1 -1
- package/dist/cli/initRouting.js +4 -2
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +718 -240
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +43 -28
- package/dist/discovery/trust-report.md +12 -11
- package/dist/discovery/workspaces.json +29 -18
- package/dist/install/preflight.js +173 -0
- package/dist/install/preflight.js.map +1 -0
- package/dist/mcp/registry-manifest.json +4 -4
- package/dist/router.json +1 -1
- package/dist/server/routes/settings.js +4 -0
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +3 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +108 -0
- package/docs/MIGRATION.md +3 -3
- package/docs/architecture.md +5 -5
- package/docs/benchmark.md +133 -2
- package/docs/benchmark.pinned.yml +31 -0
- package/docs/capability-matrix.md +1 -0
- package/docs/catalog.md +70 -60
- package/docs/command-flows.md +15 -3
- package/docs/comparison.yaml +35 -0
- package/docs/contracts/agents-layout.md +148 -0
- package/docs/contracts/brand-token-consumption.md +5 -0
- package/docs/contracts/capability-boundary.md +5 -0
- package/docs/contracts/command-category-governance.md +5 -0
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/command-surface-tiers.md +1 -1
- package/docs/contracts/conformance.md +84 -0
- package/docs/contracts/creative-pack-boundary.md +5 -0
- package/docs/contracts/discovery-manifest.schema.json +5 -4
- package/docs/contracts/file-ownership-matrix.json +4605 -985
- package/docs/contracts/governance-enforcement-projection.md +5 -0
- package/docs/contracts/gui-wizard.md +1 -1
- package/docs/contracts/hook-architecture-v1.md +2 -2
- package/docs/contracts/implement-ticket-flow.md +1 -1
- package/docs/contracts/kernel-membership.md +13 -0
- package/docs/contracts/mcp-tool-inventory.md +23 -23
- package/docs/contracts/no-runtime-boundary.md +6 -1
- package/docs/contracts/review-lens-schema.md +5 -0
- package/docs/contracts/rule-router.md +102 -8
- package/docs/contracts/skill-bundled-assets.md +1 -1
- package/docs/contracts/skill-dry-run.md +1 -1
- package/docs/contracts/subagent-boundary.md +5 -0
- package/docs/contracts/ticket-bundle-format.md +9 -4
- package/docs/contracts/tier-3-contrib-plugin.md +2 -2
- package/docs/contracts/write-engine.md +3 -0
- package/docs/customization.md +87 -15
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +1 -1
- package/docs/decisions/ADR-109-subagent-v1-contract.md +246 -0
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +105 -0
- package/docs/decisions/INDEX.md +2 -0
- package/docs/distribution/awesome-list-submission.md +46 -0
- package/docs/distribution/launch-story-draft.md +58 -0
- package/docs/end-to-end-walkthroughs.md +2 -2
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +24 -0
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +1 -1
- package/docs/guidelines/agent-infra/linked-projects-onboarding-gate.md +2 -2
- package/docs/guidelines/agent-infra/missing-tool-handling.md +3 -3
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +2 -2
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/guidelines/code-clarity.md +19 -0
- package/docs/guidelines/design-antipatterns-triggers.json +2 -1
- package/docs/guidelines/design-antipatterns.md +10 -1
- package/docs/guidelines/design-modes.md +6 -0
- package/docs/guidelines/php/general.md +9 -1
- package/docs/guidelines/php/php-coding-patterns.md +7 -0
- package/docs/guides/cross-repo-retrieval.md +1 -1
- package/docs/guides/frontend-design-corpus-refresh.md +2 -2
- package/docs/guides/local-analytics.md +4 -4
- package/docs/guides/skill-discovery.md +1 -1
- package/docs/guides/skill-preview.md +1 -1
- package/docs/hook-payload-capture.md +6 -6
- package/docs/install-friction-report.md +66 -0
- package/docs/installation.md +1 -1
- package/docs/maintainers/optional-media-deps.md +50 -0
- package/docs/mcp-server.md +11 -12
- package/docs/media/proof-demo.cast +14 -0
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +1 -1
- package/docs/migration/divergences/bench-stats-float-precision.md +1 -1
- package/docs/migration/node-floor.md +1 -1
- package/docs/migration/yaml-roundtrip-spike.md +1 -1
- package/docs/personas.md +16 -5
- package/docs/positioning-evidence.md +86 -0
- package/docs/proof.md +86 -0
- package/docs/skills-catalog.md +1 -1
- package/docs/troubleshooting.md +8 -8
- package/docs/wedge/production-validator/README.md +57 -0
- package/docs/wedge/production-validator/production-validator.md +56 -0
- package/docs/wizard.md +2 -2
- package/package.json +1 -1
- package/src/config/agent-settings.template.yml +59 -4
- package/src/config/agents-paths.yml +254 -0
- package/src/config/budgets.yml +16 -0
- package/src/config/discovery/packs.yml +1 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/gitignore-block.txt +25 -0
- package/src/config/host-capabilities.yml +31 -0
- package/src/config/profiles/balanced.ini +4 -0
- package/src/config/profiles/full.ini +4 -0
- package/src/config/profiles/minimal.ini +4 -0
- package/src/scripts/_cli/cmd_conformance.ts +716 -0
- package/src/scripts/_cli/cmd_doctor.ts +23 -2
- package/src/scripts/_cli/cmd_fleet.ts +401 -0
- package/src/scripts/_cli/cmd_preflight.ts +159 -0
- package/src/scripts/_dispatch.bash +10 -0
- package/src/scripts/_lib/knowledge_events.ts +193 -0
- package/src/scripts/_lib/subagent_steering.ts +115 -3
- package/src/scripts/_lib/text_similarity.ts +75 -0
- package/src/scripts/ai-video/test-pipeline.sh +1 -1
- package/src/scripts/ai_council/clients.ts +19 -3
- package/src/scripts/append_contested.ts +112 -0
- package/src/scripts/audit_auto_rules.ts +11 -1
- package/src/scripts/audit_mcp_tools.ts +25 -11
- package/src/scripts/bench_ab_v2_run.ts +527 -40
- package/src/scripts/bench_ab_v2_stats.ts +6 -0
- package/src/scripts/bench_matrix.ts +266 -0
- package/src/scripts/bootstrap_knowledge.ts +267 -0
- package/src/scripts/build_discovery_manifest.ts +42 -2
- package/src/scripts/build_proof.ts +214 -0
- package/src/scripts/check_always_budget.ts +3 -0
- package/src/scripts/check_augment_description_cap.ts +2 -2
- package/src/scripts/check_claims.ts +270 -0
- package/src/scripts/check_comparison.ts +79 -0
- package/src/scripts/check_generated_artefact_headers.ts +109 -0
- package/src/scripts/check_generator_output_coverage.ts +142 -0
- package/src/scripts/check_gitignore_freshness.ts +127 -0
- package/src/scripts/check_knowledge_pages.ts +210 -0
- package/src/scripts/check_knowledge_sharing.ts +162 -0
- package/src/scripts/check_media_deps.ts +91 -0
- package/src/scripts/check_memory_contradiction.ts +280 -0
- package/src/scripts/check_memory_similarity.ts +134 -0
- package/src/scripts/check_quality_regression.ts +56 -10
- package/src/scripts/check_references.ts +3 -1
- package/src/scripts/check_release_pr_shape.ts +4 -0
- package/src/scripts/check_site_links.ts +135 -0
- package/src/scripts/check_skill_gaps.ts +99 -0
- package/src/scripts/check_token_quality_golden.ts +197 -11
- package/src/scripts/check_tracked_but_ignored.ts +67 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +30 -3
- package/src/scripts/condense.ts +350 -14
- package/src/scripts/consolidate_knowledge_events.ts +192 -0
- package/src/scripts/degrade_to_pointer.ts +136 -0
- package/src/scripts/design_slop_rules.test.ts +15 -0
- package/src/scripts/design_slop_rules.ts +28 -0
- package/src/scripts/emit_knowledge_event.ts +158 -0
- package/src/scripts/export_replay_corpus.ts +187 -0
- package/src/scripts/external_sources_denylist.json +7 -2
- package/src/scripts/fold_intake.ts +281 -0
- package/src/scripts/generate_capability_matrix.ts +9 -1
- package/src/scripts/generate_knowledge_index.ts +222 -0
- package/src/scripts/hook_manifest.yaml +26 -14
- package/src/scripts/hooks/dispatch_hook.ts +18 -0
- package/src/scripts/hot_context_hook.ts +372 -0
- package/src/scripts/install +47 -0
- package/src/scripts/install-hooks.sh +17 -0
- package/src/scripts/inventory_meta_layers.ts +11 -0
- package/src/scripts/janitor.ts +258 -0
- package/src/scripts/lint_agents_layout.ts +74 -15
- package/src/scripts/lint_bench_ab.ts +4 -1
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_framework_leakage_allowlist.json +26 -3
- package/src/scripts/lint_knowledge_scale.ts +250 -0
- package/src/scripts/lint_legal_pack.ts +67 -0
- package/src/scripts/lint_persona_governance.ts +8 -3
- package/src/scripts/lint_regression.ts +15 -0
- package/src/scripts/lint_roadmap_blockers.ts +202 -0
- package/src/scripts/lint_roadmap_complexity.ts +81 -2
- package/src/scripts/lint_subagent_determinism.ts +125 -0
- package/src/scripts/measure_augment_budget.ts +46 -6
- package/src/scripts/measure_patterns.ts +4 -3
- package/src/scripts/measure_skill_reduction.ts +6 -6
- package/src/scripts/migration_status.ts +6 -2
- package/src/scripts/mine_missing_guardrails.ts +189 -0
- package/src/scripts/parity/phase_gate.ts +1 -1
- package/src/scripts/parity/replay.ts +21 -0
- package/src/scripts/project_thin_rules.ts +120 -16
- package/src/scripts/release.ts +39 -1
- package/src/scripts/render_benchmark_composite.ts +378 -0
- package/src/scripts/roadmap_progress_hook.ts +101 -43
- package/src/scripts/schemas/skill.schema.json +27 -0
- package/src/scripts/schemas/subagent.schema.json +106 -0
- package/src/scripts/skill_linter.ts +1 -0
- package/src/scripts/smoke/kernel.sh +5 -4
- package/src/scripts/surface-tiers.yml +1 -0
- package/src/scripts/sync_gitignore.ts +4 -0
- package/src/scripts/update_skill_candidates.ts +172 -0
- package/src/scripts/validate_frontmatter.ts +1 -0
|
@@ -64,7 +64,7 @@ Finish drives the **whole** install through `POST /api/v1/wizard/apply` →
|
|
|
64
64
|
without `DISPLAY`), or a CLI-mode flag (`--no-ui` / `--tools` / `--ai` /
|
|
65
65
|
`--yes` / `--quiet` / `--dry-run` / `--minimal` / `--settings-only` /
|
|
66
66
|
`--list-tools`). `install.py`'s own tail-launch (`_wizard_spawn`, matching the
|
|
67
|
-
`WIZARD_READY <url>` handshake) remains for direct
|
|
67
|
+
`WIZARD_READY <url>` handshake) remains for direct CLI install runs.
|
|
68
68
|
|
|
69
69
|
### `WIZARD_READY` stdout contract
|
|
70
70
|
|
|
@@ -25,12 +25,12 @@ Last refreshed: 2026-05-04.
|
|
|
25
25
|
| **Concern** | A single agent-config behaviour wired to one or more lifecycle events — e.g. `chat-history`, `roadmap-progress`, `verify-before-complete`. Lives as a Python script under `scripts/hooks/concerns/<name>.py`. |
|
|
26
26
|
| **Event** | The agent-config-internal event vocabulary the dispatcher exposes — `session_start`, `session_end`, `user_prompt_submit`, `pre_tool_use`, `post_tool_use`, `stop`, `pre_compact`, `agent_error`. Per-platform native names map to these. `agent_error` is synthetic — fired by the agent (or wrapper) when the host crashes outside a concern, so chat-history can checkpoint partial sessions on abnormal exit. (Added in Round 2 — 2026-05-04.) |
|
|
27
27
|
| **Trampoline** | A 5–10 line per-platform shell script that reads the platform's native payload, calls the dispatcher with `--platform <name>`, and forwards the platform's exit-code semantics. |
|
|
28
|
-
| **Dispatcher** | `scripts/hooks/dispatch_hook.
|
|
28
|
+
| **Dispatcher** | `src/scripts/hooks/dispatch_hook.ts` — single Python entrypoint that reads the manifest, resolves which concerns fire on `(platform, event)`, runs each one with the contract envelope below, and reduces their exit codes. |
|
|
29
29
|
|
|
30
30
|
## Dispatcher invocation
|
|
31
31
|
|
|
32
32
|
```
|
|
33
|
-
|
|
33
|
+
./scripts-run src/scripts/hooks/dispatch_hook \
|
|
34
34
|
--platform <name> \
|
|
35
35
|
--event <agent-config-event> \
|
|
36
36
|
[--native-event <platform-event>] \
|
|
@@ -101,7 +101,7 @@ A v0 file (no `version` key, ticket under flat `ticket`) is
|
|
|
101
101
|
upgraded by `work_engine.migration.v0_to_v1`:
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
|
|
104
|
+
node agent-config-templates/scripts/work_engine/migration/v0_to_v1.js .implement-ticket-state.json
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
The migration:
|
|
@@ -100,6 +100,19 @@ demote largest projected, re-sum; abort after 3 rounds.
|
|
|
100
100
|
under median projection. Headroom = 1929 chars (= ~one median rule)
|
|
101
101
|
absorbs pilot variance for the 6 untested rules.
|
|
102
102
|
|
|
103
|
+
**2026-07-06 demotion (council: claude-sonnet-4-5 + gpt-4o, 2-round
|
|
104
|
+
debate).** `user-interrupt-priority` had been added as an 11th-hour
|
|
105
|
+
`type: always` rule without a membership amendment, pushing the live
|
|
106
|
+
always set to 10 and the Augment workspace-guidelines budget past its
|
|
107
|
+
empirical cap. Demoted back to `type: auto` (trigger-loaded); its
|
|
108
|
+
one-line interrupt essence lives in `agent-authority § Rules` so the
|
|
109
|
+
always-loaded surface keeps the STOP → run → ASK contract visible.
|
|
110
|
+
The locked kernel remains the 9 rules below. In the same pass the 9
|
|
111
|
+
rules' post-P2.2 prose growth was telegraph-trimmed back under the
|
|
112
|
+
26k bucket (Iron-Law fences byte-stable; load-bearing additions —
|
|
113
|
+
direct-answers' live-state clause, verify-before-complete's mechanics
|
|
114
|
+
pointer — retained per council verdict).
|
|
115
|
+
|
|
103
116
|
## § 4 — Locked kernel set
|
|
104
117
|
|
|
105
118
|
| id | current | projected (× 0.712) | inclusion criterion |
|
|
@@ -5,10 +5,10 @@ keep-beta-until: 2026-08-14
|
|
|
5
5
|
|
|
6
6
|
# MCP tool inventory
|
|
7
7
|
|
|
8
|
-
> Generated by [`scripts/audit_mcp_tools.
|
|
8
|
+
> Generated by [`src/scripts/audit_mcp_tools.ts`](../../src/scripts/audit_mcp_tools.ts)
|
|
9
9
|
> from the source-of-truth catalog
|
|
10
|
-
> [`scripts/mcp_server/consumer_tool_catalog.json`](../../scripts/mcp_server/consumer_tool_catalog.json).
|
|
11
|
-
> Do **not** hand-edit; rerun
|
|
10
|
+
> [`src/scripts/mcp_server/consumer_tool_catalog.json`](../../src/scripts/mcp_server/consumer_tool_catalog.json).
|
|
11
|
+
> Do **not** hand-edit; rerun `./scripts-run src/scripts/audit_mcp_tools --write`.
|
|
12
12
|
>
|
|
13
13
|
> Step-11 Phase 5 Step 3 (an internal parity roadmap (local-only)).
|
|
14
14
|
|
|
@@ -23,26 +23,26 @@ keep-beta-until: 2026-08-14
|
|
|
23
23
|
|
|
24
24
|
| Tool | Side-effect | Transports | Catalog | Handler |
|
|
25
25
|
|---|---|---|---|---|
|
|
26
|
-
| `lint_skills` | `ro` | stdio | [`consumer_tool_catalog.json:7`](../../scripts/mcp_server/consumer_tool_catalog.json#L7) | [`tools.
|
|
27
|
-
| `chat_history_append` | `fs-write` | stdio | [`consumer_tool_catalog.json:24`](../../scripts/mcp_server/consumer_tool_catalog.json#L24) | [`tools.
|
|
28
|
-
| `chat_history_read` | `ro` | stdio | [`consumer_tool_catalog.json:43`](../../scripts/mcp_server/consumer_tool_catalog.json#L43) | [`tools.
|
|
29
|
-
| `memory_lookup` | `ro` | stdio | [`consumer_tool_catalog.json:59`](../../scripts/mcp_server/consumer_tool_catalog.json#L59) | [`tools.
|
|
30
|
-
| `memory_signal` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:75`](../../scripts/mcp_server/consumer_tool_catalog.json#L75) | _stub-only_ |
|
|
31
|
-
| `memory_status` | `ro` | stdio | [`consumer_tool_catalog.json:91`](../../scripts/mcp_server/consumer_tool_catalog.json#L91) | [`tools.
|
|
32
|
-
| `skill_trigger_eval` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:98`](../../scripts/mcp_server/consumer_tool_catalog.json#L98) | _stub-only_ |
|
|
33
|
-
| `suggest_command` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:114`](../../scripts/mcp_server/consumer_tool_catalog.json#L114) | _stub-only_ |
|
|
34
|
-
| `suggest_skill_for_task` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:129`](../../scripts/mcp_server/consumer_tool_catalog.json#L129) | _stub-only_ |
|
|
35
|
-
| `mine_session` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:144`](../../scripts/mcp_server/consumer_tool_catalog.json#L144) | _stub-only_ |
|
|
36
|
-
| `update_form_request_messages` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:158`](../../scripts/mcp_server/consumer_tool_catalog.json#L158) | _stub-only_ |
|
|
37
|
-
| `sync_gitignore` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:173`](../../scripts/mcp_server/consumer_tool_catalog.json#L173) | _stub-only_ |
|
|
38
|
-
| `sync_agent_settings` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:186`](../../scripts/mcp_server/consumer_tool_catalog.json#L186) | _stub-only_ |
|
|
39
|
-
| `run_tests` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:200`](../../scripts/mcp_server/consumer_tool_catalog.json#L200) | _stub-only_ |
|
|
40
|
-
| `run_quality_checks` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:214`](../../scripts/mcp_server/consumer_tool_catalog.json#L214) | _stub-only_ |
|
|
41
|
-
| `list_skills` | `ro` | stdio | [`consumer_tool_catalog.json:227`](../../scripts/mcp_server/consumer_tool_catalog.json#L227) | [`tools.
|
|
42
|
-
| `list_commands` | `ro` | stdio | [`consumer_tool_catalog.json:234`](../../scripts/mcp_server/consumer_tool_catalog.json#L234) | [`tools.
|
|
43
|
-
| `list_rules` | `ro` | stdio | [`consumer_tool_catalog.json:241`](../../scripts/mcp_server/consumer_tool_catalog.json#L241) | [`tools.
|
|
44
|
-
| `compile_router` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:248`](../../scripts/mcp_server/consumer_tool_catalog.json#L248) | _stub-only_ |
|
|
45
|
-
| `read_resource_body` | `ro` | stdio | [`consumer_tool_catalog.json:261`](../../scripts/mcp_server/consumer_tool_catalog.json#L261) | [`tools.
|
|
26
|
+
| `lint_skills` | `ro` | stdio | [`consumer_tool_catalog.json:7`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L7) | [`tools.ts:575`](../../src/scripts/mcp_server/tools.ts#L575) |
|
|
27
|
+
| `chat_history_append` | `fs-write` | stdio | [`consumer_tool_catalog.json:24`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L24) | [`tools.ts:603`](../../src/scripts/mcp_server/tools.ts#L603) |
|
|
28
|
+
| `chat_history_read` | `ro` | stdio | [`consumer_tool_catalog.json:43`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L43) | [`tools.ts:664`](../../src/scripts/mcp_server/tools.ts#L664) |
|
|
29
|
+
| `memory_lookup` | `ro` | stdio | [`consumer_tool_catalog.json:59`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L59) | [`tools.ts:706`](../../src/scripts/mcp_server/tools.ts#L706) |
|
|
30
|
+
| `memory_signal` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:75`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L75) | _stub-only_ |
|
|
31
|
+
| `memory_status` | `ro` | stdio | [`consumer_tool_catalog.json:91`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L91) | [`tools.ts:748`](../../src/scripts/mcp_server/tools.ts#L748) |
|
|
32
|
+
| `skill_trigger_eval` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:98`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L98) | _stub-only_ |
|
|
33
|
+
| `suggest_command` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:114`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L114) | _stub-only_ |
|
|
34
|
+
| `suggest_skill_for_task` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:129`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L129) | _stub-only_ |
|
|
35
|
+
| `mine_session` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:144`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L144) | _stub-only_ |
|
|
36
|
+
| `update_form_request_messages` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:158`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L158) | _stub-only_ |
|
|
37
|
+
| `sync_gitignore` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:173`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L173) | _stub-only_ |
|
|
38
|
+
| `sync_agent_settings` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:186`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L186) | _stub-only_ |
|
|
39
|
+
| `run_tests` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:200`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L200) | _stub-only_ |
|
|
40
|
+
| `run_quality_checks` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:214`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L214) | _stub-only_ |
|
|
41
|
+
| `list_skills` | `ro` | stdio | [`consumer_tool_catalog.json:227`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L227) | [`tools.ts:762`](../../src/scripts/mcp_server/tools.ts#L762) |
|
|
42
|
+
| `list_commands` | `ro` | stdio | [`consumer_tool_catalog.json:234`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L234) | [`tools.ts:777`](../../src/scripts/mcp_server/tools.ts#L777) |
|
|
43
|
+
| `list_rules` | `ro` | stdio | [`consumer_tool_catalog.json:241`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L241) | [`tools.ts:792`](../../src/scripts/mcp_server/tools.ts#L792) |
|
|
44
|
+
| `compile_router` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:248`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L248) | _stub-only_ |
|
|
45
|
+
| `read_resource_body` | `ro` | stdio | [`consumer_tool_catalog.json:261`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L261) | [`tools.ts:808`](../../src/scripts/mcp_server/tools.ts#L808) |
|
|
46
46
|
|
|
47
47
|
## Glossary
|
|
48
48
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-17
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# No-Runtime Boundary Contract
|
|
2
7
|
|
|
3
8
|
> **Audience:** Every Mission-Mode decision, skill author, and recipe reviewer.
|
|
@@ -52,5 +57,5 @@ and violating the no-runtime principle).
|
|
|
52
57
|
## Decision authority
|
|
53
58
|
|
|
54
59
|
A mission step that is unclear against this contract goes to the AI Council
|
|
55
|
-
(
|
|
60
|
+
(`./scripts-run src/scripts/council_cli`) before any build work starts.
|
|
56
61
|
The council verdict becomes an ADR if it changes this table.
|
|
@@ -29,10 +29,10 @@ are preserved. New / formalized fields:
|
|
|
29
29
|
| Key | Required | Values | Purpose |
|
|
30
30
|
|---|---|---|---|
|
|
31
31
|
| `type` | yes | `always` \| `auto` | Existing. Kernel = `always`; everything else = `auto`. |
|
|
32
|
-
| `tier` | yes | `kernel` \| `tier-1` \| `tier-2` | New names. Kernel = always-loaded; tier-1 =
|
|
32
|
+
| `tier` | yes | `kernel` \| `tier-1` \| `tier-2` | New names. Kernel = always-loaded; tier-1 / tier-2 = trigger-routed on demand, in every discipline profile (ADR-040 / ADR-110). |
|
|
33
33
|
| `triggers` | yes for non-kernel | list of objects | When the rule activates. **Forbidden** on kernel rules. |
|
|
34
34
|
| `routes_to` | yes for non-kernel | list of strings | Skills / guidelines whose body fulfils the rule. **Forbidden** on kernel rules. |
|
|
35
|
-
| `profile` | no | `minimal` \| `
|
|
35
|
+
| `profile` | no | `minimal` \| `essential` \| `full` | Override the tier-derived default profile. Rare; currently unused by any shipped rule. |
|
|
36
36
|
| `triggered_by` | back-ref, on routed artifact | list of strings | Skill / guideline frontmatter declares which rule(s) route to it. Bidirectional check (P3.3). |
|
|
37
37
|
|
|
38
38
|
### `triggers:` shape
|
|
@@ -82,13 +82,13 @@ whose body is fully covered by an existing architectural contract.
|
|
|
82
82
|
|
|
83
83
|
## Compiled output — `router.json`
|
|
84
84
|
|
|
85
|
-
`scripts/compile_router.
|
|
85
|
+
`src/scripts/compile_router.ts` reads every rule frontmatter and emits
|
|
86
86
|
`dist/router.json` (tracked in git), used by host agents at session
|
|
87
87
|
start. Deterministic key order, sorted lists, stable across runs.
|
|
88
88
|
|
|
89
89
|
```json
|
|
90
90
|
{
|
|
91
|
-
"schema_version":
|
|
91
|
+
"schema_version": 2,
|
|
92
92
|
"kernel": ["agent-authority", "ask-when-uncertain", "commit-policy",
|
|
93
93
|
"direct-answers", "language-and-tone", "no-cheap-questions",
|
|
94
94
|
"non-destructive-by-default", "scope-control",
|
|
@@ -96,18 +96,75 @@ start. Deterministic key order, sorted lists, stable across runs.
|
|
|
96
96
|
"tier_1": [{"id": "source-of-truth",
|
|
97
97
|
"triggers": [{"path_prefix": "agents/"},
|
|
98
98
|
{"path_prefix": "dist/agent-src/"}],
|
|
99
|
-
"routes_to": ["skill:agent-docs-writing"]
|
|
99
|
+
"routes_to": ["skill:agent-docs-writing"],
|
|
100
|
+
"workspaces": ["agent-config-maintainer"],
|
|
101
|
+
"packs": ["meta"]}],
|
|
100
102
|
"tier_2": [/* same shape as tier_1 */],
|
|
101
103
|
"profiles": {
|
|
102
|
-
"minimal":
|
|
103
|
-
"
|
|
104
|
-
"full":
|
|
104
|
+
"minimal": ["__kernel__"],
|
|
105
|
+
"essential": ["__kernel__", "downstream-changes"],
|
|
106
|
+
"full": ["__kernel__", "__tier_1__", "__tier_2__"]
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
109
|
```
|
|
108
110
|
|
|
109
111
|
Generated alongside `marketplace.json` during `task generate-tools`.
|
|
110
112
|
|
|
113
|
+
### Schema v2 — installation-scoping fields (2026-07-07)
|
|
114
|
+
|
|
115
|
+
Every **non-kernel** entry carries `workspaces:` and `packs:`, copied
|
|
116
|
+
verbatim (sorted) from the rule's frontmatter. They let projection- and
|
|
117
|
+
install-time tooling filter rule bodies AND thin-projection pointer lines
|
|
118
|
+
by the installed workspace/pack set (`road-to-request-scoped-rule-load`
|
|
119
|
+
Phase 1) — per ADR-040 the filtering happens at projection time; there is
|
|
120
|
+
no runtime resolver.
|
|
121
|
+
|
|
122
|
+
- **Additive only.** v1 readers ignore unknown keys; nothing else in the
|
|
123
|
+
shape changed. Readers MUST NOT hard-fail on `schema_version: 2`.
|
|
124
|
+
- **Kernel entries stay bare id strings.** The kernel is unconditional
|
|
125
|
+
and workspace-independent by definition — it never carries scoping
|
|
126
|
+
fields and is never filtered by installation.
|
|
127
|
+
- **Source of the values:** `src/rules/*.md` frontmatter.
|
|
128
|
+
`lint_artefact_frontmatter` (wired into `task ci`) enforces that every
|
|
129
|
+
rule declares non-empty `workspaces:` + `packs:` lists whose ids exist
|
|
130
|
+
in `src/config/discovery/{workspaces,packs}.yml` — unknown ids fail
|
|
131
|
+
lint before they can reach the router.
|
|
132
|
+
|
|
133
|
+
## Host-native glob activation (Cursor / Windsurf)
|
|
134
|
+
|
|
135
|
+
Since 2026-07-07 (`road-to-request-scoped-rule-load` Phase 2) the
|
|
136
|
+
Cursor/Windsurf projectors derive `globs:` from the rule's path-shaped
|
|
137
|
+
triggers: `file_pattern` maps verbatim, `path_prefix` maps as
|
|
138
|
+
`<prefix>**`. Rules with ≥1 path-shaped trigger auto-attach host-natively
|
|
139
|
+
(Cursor auto-attach / Windsurf `trigger: glob`) — deterministic, no
|
|
140
|
+
model-compliance dependency. Keyword/phrase/intent-only rules keep
|
|
141
|
+
description-based activation (Agent-Requested / `model_decision`).
|
|
142
|
+
|
|
143
|
+
**No-double-fire invariant:** when thin projection lands on those hosts, a
|
|
144
|
+
glob-attached rule must NOT also ship an eager inline body there — the
|
|
145
|
+
host-native attach IS its conditional load. The thin projector treats
|
|
146
|
+
glob-capable rules on glob-capable hosts as already-conditional; the
|
|
147
|
+
pointer mechanism is for hosts without a native equivalent (Claude Code).
|
|
148
|
+
|
|
149
|
+
### Profiles — the always-honoured surface (ADR-110)
|
|
150
|
+
|
|
151
|
+
Profiles name the **always-honoured** rule surface per discipline tier;
|
|
152
|
+
entries without the `__` wrapper are individual rule ids. Trigger routing of
|
|
153
|
+
tier-1/tier-2 stays active under **every** profile — trigger semantics are
|
|
154
|
+
configuration-independent (ADR-040). The runtime knob is
|
|
155
|
+
`discipline_profile: auto | off | essential | full` (`off` → `minimal`
|
|
156
|
+
surface); resolution semantics (including the legacy `rule_loading_tier`
|
|
157
|
+
mapping and the `auto` host-capability check against
|
|
158
|
+
`src/config/host-capabilities.yml`) live in `resolve_discipline_profile()`
|
|
159
|
+
in the work-engine settings lib.
|
|
160
|
+
|
|
161
|
+
**`balanced` was retired 2026-07-07** (deleted, not renamed): the size cut
|
|
162
|
+
(kernel + tier_1) measured a NULL discipline lift (p=0.81, n=24 —
|
|
163
|
+
`docs/benchmark.md § Cost-factor sweep`) because it missed the lift-carrying
|
|
164
|
+
`downstream-changes`. Its successor `essential` is cut by measured content
|
|
165
|
+
(kernel + the lift-carrying rules; +0.458 lift at ~3.3x tokens, p=0.0135).
|
|
166
|
+
Legacy `rule_loading_tier: balanced` values map to `essential`.
|
|
167
|
+
|
|
111
168
|
## Activation semantics
|
|
112
169
|
|
|
113
170
|
The host agent reads `dist/router.json` once per session. Per turn:
|
|
@@ -123,6 +180,43 @@ The host agent reads `dist/router.json` once per session. Per turn:
|
|
|
123
180
|
No runtime profile resolution — the profile is fixed at session
|
|
124
181
|
start, the router lookup is keyword/phrase/path/intent matching only.
|
|
125
182
|
|
|
183
|
+
### Intent-trigger semantics — two gates, two purposes (reconciled 2026-07-07)
|
|
184
|
+
|
|
185
|
+
Two tools consume `intent:` triggers with deliberately different semantics.
|
|
186
|
+
This divergence is **justified and locked**, not drift
|
|
187
|
+
(`road-to-token-proof-and-story` Phase 2):
|
|
188
|
+
|
|
189
|
+
| Tool | Intent semantics | Purpose |
|
|
190
|
+
|---|---|---|
|
|
191
|
+
| `trigger_coverage.ts` + the golden-set fires-check | word-set inclusion (every alpha word >2 chars of the intent appears in the prompt) | **Falsifiability floor** — a deliberately generous mechanical proxy proving a rule CAN fire on a phrasing; gates coverage claims. |
|
|
192
|
+
| `router_telemetry.ts` (replay / field evidence) | informational-only — never auto-matches | **Field estimation** — real hosts resolve intents by model judgment, which cannot be replayed deterministically; pretending the word-set proxy models host behaviour would fabricate activation counts. |
|
|
193
|
+
|
|
194
|
+
Consequence: **replay UNDERCOUNTS intent-triggered rule loads.** Every
|
|
195
|
+
replay-derived figure (field-token-evidence report, benchmark refresh,
|
|
196
|
+
release story) MUST state the chosen semantics and carry this caveat. Rules
|
|
197
|
+
relying on intent triggers alone have no mechanical signal at all — hence
|
|
198
|
+
the intent-only backstop audit (Phase 0 of
|
|
199
|
+
`road-to-request-scoped-rule-load`: every intent-only rule gained
|
|
200
|
+
keyword/phrase backstops or a written disposition).
|
|
201
|
+
|
|
202
|
+
## Activation end-state — one runtime knob (token program, 2026-07-07)
|
|
203
|
+
|
|
204
|
+
Locked by the token-program integration council
|
|
205
|
+
(`agents/settings/contexts/token-program-integration-verdict.md`) so no
|
|
206
|
+
track ships a competing setting:
|
|
207
|
+
|
|
208
|
+
- **Runtime:** ONE knob — `discipline_profile: auto | off | essential |
|
|
209
|
+
full` (shipped default `auto` = ON once its evidence gates pass; owned by
|
|
210
|
+
`road-to-discipline-profile-tiering`). Thin projection, when un-deferred,
|
|
211
|
+
folds under `essential` as an implementation detail; `lean_projection.mode`
|
|
212
|
+
is then absorbed/retired. No new runtime toggles for this layer.
|
|
213
|
+
- **Install-time (not a runtime setting):** consumer scoping via
|
|
214
|
+
`projection.rule_workspaces` / `projection.rule_packs` — default flips
|
|
215
|
+
`legacy-all` → scoped as a reviewed release decision after the
|
|
216
|
+
misclassification audit (done 2026-07-07) + measured before/after.
|
|
217
|
+
- **Host-native (no setting):** Cursor/Windsurf glob auto-attach (§ above)
|
|
218
|
+
is always on — deterministic, no compliance risk.
|
|
219
|
+
|
|
126
220
|
## Kill-switch — thin-projection rollback (lean-initial-context Phase 2.3)
|
|
127
221
|
|
|
128
222
|
Phase 3 of the lean-initial-context migration makes the per-tool projector
|
|
@@ -27,7 +27,7 @@ A BUNDLED SCRIPT RESOLVES EVERY SIBLING ASSET VIA ITS OWN FILE LOCATION
|
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
- The agent invokes bundled scripts with an **absolute or skills-root-
|
|
30
|
-
relative path**: `
|
|
30
|
+
relative path**: `node_modules/.bin/tsx <skills-root>/<name>/scripts/<tool>.ts …`.
|
|
31
31
|
`<skills-root>` = `~/.claude/skills` (Claude Code consumer install),
|
|
32
32
|
the tool-specific projection dir for other agents, or `src/skills`
|
|
33
33
|
inside this repo.
|
|
@@ -17,7 +17,7 @@ plain-language "this skill will…" summary. It surfaces:
|
|
|
17
17
|
- its **execution type** (`manual` / `assisted` / `automated`, default `manual`) and **handler**
|
|
18
18
|
(`none` / `shell` / `php` / `node` / `internal`);
|
|
19
19
|
- its declared **`allowed_tools`**;
|
|
20
|
-
- any **file or command targets** named in the body (backtick paths,
|
|
20
|
+
- any **file or command targets** named in the body (backtick paths, `./scripts-run src/scripts/…` invocations).
|
|
21
21
|
|
|
22
22
|
## Explicit non-goals
|
|
23
23
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-17
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Ticket-bundle format
|
|
2
7
|
|
|
3
8
|
> The contract every downstream artifact reads from: the `emit-tickets` skill,
|
|
@@ -62,9 +67,9 @@ source_refs: # files the build reads/changes, SHA-pinned (drif
|
|
|
62
67
|
- { path: src/scripts/build_linear_digest.py, sha: <git-blob-sha> }
|
|
63
68
|
assets: [T-001.assets/wireframe.png] # relative to the bundle dir
|
|
64
69
|
acceptance: # runnable AND isolation-testable; no prose-only
|
|
65
|
-
- "
|
|
70
|
+
- "./scripts-run src/scripts/lint_ticket_buildable exits 0"
|
|
66
71
|
boundaries: # ENFORCED by the work_engine boundary guard
|
|
67
|
-
must_touch: [src/scripts/lint_ticket_buildable
|
|
72
|
+
must_touch: [src/scripts/lint_ticket_buildable]
|
|
68
73
|
may_touch: [Taskfile.yml]
|
|
69
74
|
must_not_touch: [src/scripts/work_engine/**, ".github/**"]
|
|
70
75
|
---
|
|
@@ -91,7 +96,7 @@ context spine or `source_refs`, the ticket is incomplete.
|
|
|
91
96
|
|
|
92
97
|
## 5. Self-containedness floor (per `model_tier`)
|
|
93
98
|
|
|
94
|
-
Enforced by `lint_ticket_buildable
|
|
99
|
+
Enforced by `lint_ticket_buildable`. A ticket FAILS the gate if its tier's
|
|
95
100
|
row is not satisfied:
|
|
96
101
|
|
|
97
102
|
| tier | acceptance | ≥1 concrete path | non-empty boundaries | resolvable assets | size floor |
|
|
@@ -177,7 +182,7 @@ Git LFS is **not** configured in this repo today, and wiring it (install +
|
|
|
177
182
|
remote LFS store) is heavier than v1 needs. v1 decision: assets are git-tracked
|
|
178
183
|
binaries under a **size cap** — ≤ 500 KB per asset — and authors prefer vector /
|
|
179
184
|
text context (Mermaid, ASCII, SVG, example-I/O Markdown) over raster where it
|
|
180
|
-
carries the same information. `lint_ticket_buildable
|
|
185
|
+
carries the same information. `lint_ticket_buildable` warns on any asset over
|
|
181
186
|
the cap. LFS is revisited only if `agents/tickets/**` binary weight is proven a
|
|
182
187
|
real problem (same "defer until observed" discipline as the mutable-tickets
|
|
183
188
|
mode). Non-binary design context lives as plain Markdown in the `.assets/` folder.
|
|
@@ -58,10 +58,10 @@ When the first user request lands, the responder MUST:
|
|
|
58
58
|
schema below.
|
|
59
59
|
2. Add the tool ID to `_VALID_TOOLS`, `USER_SCOPE_PATHS`,
|
|
60
60
|
`SCOPE_SUPPORT`, and the bash `VALID_TOOLS` set.
|
|
61
|
-
3. Implement `ensure_<tool>_bridge` in `
|
|
61
|
+
3. Implement `ensure_<tool>_bridge` in `src/install/` (≤60 LOC
|
|
62
62
|
— if larger, escalate via ADR per Phase 2.5 gate).
|
|
63
63
|
4. Append a row to the `README.md` "Supported Tools" table.
|
|
64
|
-
5. Re-run `task lint-skills` + `
|
|
64
|
+
5. Re-run `task lint-skills` + `task test`.
|
|
65
65
|
|
|
66
66
|
```yaml
|
|
67
67
|
# agents/manifests/contrib/<tool-id>.yml
|
|
@@ -132,6 +132,9 @@ effects on disk.
|
|
|
132
132
|
blending voices is deferred.
|
|
133
133
|
- **No file writes.** The engine prints; the user copies. Saving the
|
|
134
134
|
output to `agents/` or anywhere else is a future feature.
|
|
135
|
+
- **Quote floor applies.** Any draft citing an external source follows
|
|
136
|
+
[`content-quoting-floor`](../../src/rules/content-quoting-floor.md) —
|
|
137
|
+
≤15 words per quote, one quote per source, paraphrase by default.
|
|
135
138
|
|
|
136
139
|
## See also
|
|
137
140
|
|
package/docs/customization.md
CHANGED
|
@@ -229,17 +229,28 @@ the sourced rationale lives in the design dossier
|
|
|
229
229
|
> a budget is tight, reach for the **model** lever first — lowering the rule
|
|
230
230
|
> tier saves little and drops guardrails.
|
|
231
231
|
|
|
232
|
-
`rule_loading_tier` is the master switch for rule-tier loading
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
232
|
+
`rule_loading_tier` is the **legacy** master switch for rule-tier loading; its
|
|
233
|
+
successor is the single runtime knob `discipline_profile: auto | off |
|
|
234
|
+
essential | full` (ADR-110 — when set, it wins; legacy values map
|
|
235
|
+
minimal→off, balanced→essential, full→full). The kernel (always-loaded
|
|
236
|
+
Iron-Law floor, ≤ 26k chars across 9 rules) ships in every profile. Tier-1
|
|
237
|
+
and tier-2 trigger routing stays active under every profile (trigger
|
|
238
|
+
semantics are configuration-independent, ADR-040); the profile names the
|
|
239
|
+
always-honoured surface, resolved at session start from `dist/router.json`
|
|
240
|
+
(compiled by `scripts/compile_router.ts`).
|
|
241
|
+
|
|
242
|
+
| Profile | Always-honoured surface | Token footprint | Best for |
|
|
238
243
|
|---|---|---|---|
|
|
239
|
-
| `minimal` | kernel only
|
|
240
|
-
| `
|
|
241
|
-
| `full` | kernel + tier-1 + tier-2 (everything) | highest |
|
|
242
|
-
| `
|
|
244
|
+
| `off` (legacy `minimal`) | kernel only | ~1x (lowest) | Hosts with a MEASURED null discipline lift (`src/config/host-capabilities.yml`); cost-sensitive sessions |
|
|
245
|
+
| `essential` | kernel + the lift-carrying rules (`downstream-changes`) | ~3.3x | Day-to-day work — keeps the measured weak-host discipline lift (+0.458, p=0.0135) |
|
|
246
|
+
| `full` | kernel + tier-1 + tier-2 (everything) | ~11.7x (highest) | EXPERIMENTAL opt-in — residual lift over `essential` not established (p=0.37); agent-config development |
|
|
247
|
+
| `auto` | resolved per session: measured-null host → `off`, otherwise → `essential` | varies | The evidence-gated default target |
|
|
248
|
+
| `custom` (legacy) | profile ignored — every matrix value must be set explicitly | varies | Power users with bespoke rule sets |
|
|
249
|
+
|
|
250
|
+
> **`balanced` was retired 2026-07-07** — the size cut (kernel + tier-1)
|
|
251
|
+
> measured a NULL discipline lift (p=0.81, `docs/benchmark.md § Cost-factor
|
|
252
|
+
> sweep`) because it missed the lift-carrying `downstream-changes`. Existing
|
|
253
|
+
> `rule_loading_tier: balanced` settings keep working and map to `essential`.
|
|
243
254
|
|
|
244
255
|
The kernel-and-router architecture is documented in
|
|
245
256
|
[`docs/contracts/rule-router.md`](contracts/rule-router.md) and
|
|
@@ -345,19 +356,80 @@ level.
|
|
|
345
356
|
|
|
346
357
|
---
|
|
347
358
|
|
|
359
|
+
## Autonomous roadmap execution
|
|
360
|
+
|
|
361
|
+
Roadmaps can declare how `/roadmap:process-full` / `process-phase`
|
|
362
|
+
should interact, via frontmatter (`/roadmap:create` asks this as one
|
|
363
|
+
question at creation time):
|
|
364
|
+
|
|
365
|
+
```yaml
|
|
366
|
+
execution:
|
|
367
|
+
mode: autonomous # autonomous | phase-checkpoints | interactive
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
- `interactive` (absent-field default) — every gate fires as today.
|
|
371
|
+
- `phase-checkpoints` — one compact status + continue prompt per phase
|
|
372
|
+
boundary.
|
|
373
|
+
- `autonomous` — at run start the loop derives an **execution
|
|
374
|
+
contract** (feature branch, chunked commits, push to that branch
|
|
375
|
+
only, PR-open — never merge, batched artifact drafting, council
|
|
376
|
+
auto-enable). ONE acceptance activates all grants for the run; after
|
|
377
|
+
that the run is uninterrupted except the safety floors (Hard Floor,
|
|
378
|
+
security-sensitive-stop, N=3 validation budget, context-hygiene
|
|
379
|
+
aborts, deferred-`[~]` archival gate).
|
|
380
|
+
|
|
381
|
+
The frontmatter field is a declaration of intent, never a permission
|
|
382
|
+
grant — authorization happens only at the run-start contract, derived
|
|
383
|
+
fresh from the roadmap's current content on every invocation. Details:
|
|
384
|
+
`contexts/execution/roadmap-execution-contract.md`, template rule 18 in
|
|
385
|
+
`templates/roadmaps.md`. Global `roadmap.*` keys in
|
|
386
|
+
`.agent-settings.yml` (quality/dashboard cadence, pre-run gate) keep
|
|
387
|
+
their meaning in every mode.
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
348
391
|
## Project documentation
|
|
349
392
|
|
|
350
393
|
Consumer projects can maintain their own agent documentation:
|
|
351
394
|
|
|
352
395
|
```
|
|
353
396
|
agents/
|
|
354
|
-
├──
|
|
355
|
-
├──
|
|
356
|
-
├──
|
|
357
|
-
├──
|
|
358
|
-
|
|
397
|
+
├── overrides/ ← Skill/rule/command overrides (required after migrate)
|
|
398
|
+
├── .event4u-bridge.yml ← Global-only bridge marker (ADR-020)
|
|
399
|
+
├── knowledge/ ← Optional: curated project-specific knowledge pages
|
|
400
|
+
├── memory/ ← Optional: memory promotion pipeline
|
|
401
|
+
├── roadmaps/ ← Optional: project-local roadmaps
|
|
402
|
+
├── tmp/ ← Optional: user inbox (gitignored)
|
|
403
|
+
└── tmp.old/ ← Optional: processed inbox archive (gitignored)
|
|
359
404
|
```
|
|
360
405
|
|
|
406
|
+
Full classification (git policy, retention, owner) for every allowed entry:
|
|
407
|
+
[`docs/contracts/agents-layout.md`](contracts/agents-layout.md).
|
|
408
|
+
|
|
409
|
+
#### User inbox workflow (`agents/tmp/` → `agents/tmp.old/`)
|
|
410
|
+
|
|
411
|
+
Drop a note or draft into `agents/tmp/` and point a command at it
|
|
412
|
+
(e.g. "create a roadmap from `agents/tmp/my-idea.md`"). The agent reads
|
|
413
|
+
the file, processes it, and moves it to `agents/tmp.old/` in the same
|
|
414
|
+
reply. The archive decays via a 30-day janitor TTL.
|
|
415
|
+
|
|
416
|
+
- Both dirs are **gitignored** — they never enter the commit graph.
|
|
417
|
+
- The agent's own scratch goes to `agents/runtime/tmp/` — never into `agents/tmp/`.
|
|
418
|
+
- Run `task janitor` for a dry-run report; `task janitor-apply` to sweep.
|
|
419
|
+
|
|
420
|
+
#### Keeping your consumer `agents/` clean
|
|
421
|
+
|
|
422
|
+
Run the sync-gitignore fix command after an install or migration:
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
agent-config sync-gitignore --cleanup-legacy
|
|
426
|
+
# Or via the chat command: /sync-gitignore:fix
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
This scrubs legacy patterns, syncs the managed block, and reports any
|
|
430
|
+
files that are tracked but now ignored (the `git rm --cached` commands
|
|
431
|
+
to fix them are printed — never run automatically).
|
|
432
|
+
|
|
361
433
|
Module-level documentation goes into `app/Modules/*/agents/`.
|
|
362
434
|
|
|
363
435
|
### `agents/` overlay cascade
|
|
@@ -43,7 +43,7 @@ experimental`, flipping `default_install` to anything but `false`, or any
|
|
|
43
43
|
commercial / hosted surface, is **blocked** until a licensed German attorney has
|
|
44
44
|
reviewed the *framing* (the `legal-safety-floor` rule, `LEGAL_NOTICE.md`, and the
|
|
45
45
|
RDG individual-case wording — **not** skill correctness) and the review is recorded
|
|
46
|
-
in `LEGAL_NOTICE.md` as `Framing reviewed by <name>, Rechtsanwalt/Rechtsanwältin,
|
|
46
|
+
in `LEGAL_NOTICE.md` as `Framing reviewed by <name>, Rechtsanwalt/Rechtsanwältin, <!-- md-language-check: ignore -->
|
|
47
47
|
<date>`. The deep AI-council (2026-06-24) scoped this as a bounded (~€300–800,
|
|
48
48
|
1–2h) one-time gate, **not** a blocker for the current lab release (lab is
|
|
49
49
|
explicitly unvetted; users opt in knowingly via the consent gate). Enforced by
|