@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
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: team-knowledge-consolidate
|
|
4
|
+
pack: meta
|
|
5
|
+
tier: 2
|
|
6
|
+
visibility: internal
|
|
7
|
+
cluster: team-knowledge
|
|
8
|
+
sub: consolidate
|
|
9
|
+
description: Review pending typed knowledge-observation events and file them into agents/knowledge/ pages as a human-reviewed batch — never writes without approval.
|
|
10
|
+
skills: [file-editor]
|
|
11
|
+
suggestion:
|
|
12
|
+
eligible: true
|
|
13
|
+
trigger_description: "consolidate knowledge events, review pending observations, file captured knowledge, promote knowledge candidates"
|
|
14
|
+
trigger_context: "pending events have accumulated in agents/knowledge/intake/ and are ready for review"
|
|
15
|
+
workspaces:
|
|
16
|
+
- agent-config-maintainer
|
|
17
|
+
packs:
|
|
18
|
+
- meta
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /team-knowledge consolidate
|
|
22
|
+
|
|
23
|
+
Turns the gitignored, in-flight typed-observation events
|
|
24
|
+
(`convention_detected` / `mistake_made` / `api_shape_learned` /
|
|
25
|
+
`context_stale` — see `src/scripts/_lib/knowledge_events.ts`) into
|
|
26
|
+
committed `agents/knowledge/` pages. This is the ONLY path from intake
|
|
27
|
+
to a tracked page — no skill or rule writes a tracked knowledge page
|
|
28
|
+
mid-task (see [`knowledge-pages`](../../templates/contexts/knowledge-pages.md)
|
|
29
|
+
§ Storage location).
|
|
30
|
+
|
|
31
|
+
## Steps
|
|
32
|
+
|
|
33
|
+
### 1. Generate the report
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
./scripts-run src/scripts/consolidate_knowledge_events
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Aggregates pending events by topic and finds the nearest EXISTING
|
|
40
|
+
knowledge page for each aggregate (mechanical similarity only — the
|
|
41
|
+
script never decides the triage verdict).
|
|
42
|
+
|
|
43
|
+
No pending topics → tell the user and stop. Nothing to do.
|
|
44
|
+
|
|
45
|
+
### 2. Triage each topic
|
|
46
|
+
|
|
47
|
+
For each aggregate in the report, apply the same taxonomy
|
|
48
|
+
[`memory-consolidation`](../../skills/memory-consolidation/SKILL.md)
|
|
49
|
+
uses for engineering-memory facts:
|
|
50
|
+
|
|
51
|
+
| Triage | Condition | Action |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| `NEW` | No nearest page reported | Draft a new page under the appropriate typed dir |
|
|
54
|
+
| `EXTEND` | Nearest page reported, covers the topic but misses this detail | Draft an addition to that page |
|
|
55
|
+
| `CONFIRM` | Nearest page already states this exactly | Discard this aggregate — no page change |
|
|
56
|
+
| `CONFLICT` | Nearest page states the opposite or a stale variant | Draft BOTH positions into that page with `contested: true`, never silently overwrite |
|
|
57
|
+
|
|
58
|
+
A high similarity score alone does not distinguish `EXTEND` /
|
|
59
|
+
`CONFIRM` / `CONFLICT` — read the matched page and the aggregate's
|
|
60
|
+
events before deciding.
|
|
61
|
+
|
|
62
|
+
### 3. Draft and present the batch
|
|
63
|
+
|
|
64
|
+
For every `NEW` / `EXTEND` / `CONFLICT` aggregate, draft the page
|
|
65
|
+
content (following [`knowledge-pages`](../../templates/contexts/knowledge-pages.md) —
|
|
66
|
+
`date + what + why` for session entries, ≤ 200 lines per page) and
|
|
67
|
+
present the full batch to the user:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
> Knowledge consolidation — N topic(s) ready for review:
|
|
71
|
+
>
|
|
72
|
+
> 1. [NEW] <topic> → agents/knowledge/concepts/<slug>.md
|
|
73
|
+
> 2. [EXTEND] <topic> → agents/knowledge/procedures/<existing>.md
|
|
74
|
+
> 3. [CONFLICT] <topic> → agents/knowledge/concepts/<existing>.md (contested)
|
|
75
|
+
>
|
|
76
|
+
> 1. Write all — 2. Write selected — 3. Discard all — 4. Edit a draft first
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Never write before this confirmation.**
|
|
80
|
+
|
|
81
|
+
### 4. Write, regenerate, clear
|
|
82
|
+
|
|
83
|
+
On approval:
|
|
84
|
+
|
|
85
|
+
1. Write each approved page (respecting the team-sharing gate —
|
|
86
|
+
never set `visibility: private` on a page landing here).
|
|
87
|
+
2. Regenerate the index: `./scripts-run src/scripts/generate_knowledge_index`.
|
|
88
|
+
3. Clear the consumed intake: `./scripts-run src/scripts/consolidate_knowledge_events --commit`
|
|
89
|
+
(all-or-nothing — re-run step 1 first if the user picked "write
|
|
90
|
+
selected" and some topics were discarded, so only genuinely
|
|
91
|
+
consumed events are cleared).
|
|
92
|
+
|
|
93
|
+
## Rules
|
|
94
|
+
|
|
95
|
+
- Never invents a page from an aggregate the user did not approve.
|
|
96
|
+
- Never resolves a `CONFLICT` verdict automatically — both positions
|
|
97
|
+
land in the page, human resolves later.
|
|
98
|
+
- Never writes a page with `visibility: private` (belongs in the
|
|
99
|
+
ADR-100 global store instead).
|
|
100
|
+
- Do NOT commit the written pages — that is the user's call.
|
|
101
|
+
|
|
102
|
+
## See also
|
|
103
|
+
|
|
104
|
+
- [`memory-consolidation`](../../skills/memory-consolidation/SKILL.md) — the sibling loop for the 5 fixed engineering-memory types; this command is its knowledge-page counterpart.
|
|
105
|
+
- [`learning-to-rule-or-skill`](../../skills/learning-to-rule-or-skill/SKILL.md) — where a page's recurring topic graduates into a skill/rule once it crosses the skill-candidate threshold.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: team-knowledge
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
pack: meta
|
|
6
|
+
intent: "Manage the repo-tracked team-knowledge layer — consolidate typed observation events into agents/knowledge/ pages, bootstrap a project baseline"
|
|
7
|
+
routes_to: [team-knowledge-consolidate, team-knowledge-bootstrap]
|
|
8
|
+
replaces: []
|
|
9
|
+
tier: 2
|
|
10
|
+
visibility: internal
|
|
11
|
+
description: Team-knowledge orchestrator — routes to consolidate and bootstrap
|
|
12
|
+
cluster: team-knowledge
|
|
13
|
+
type: orchestrator
|
|
14
|
+
suggestion:
|
|
15
|
+
eligible: true
|
|
16
|
+
trigger_description: "consolidate knowledge events, review pending knowledge observations, promote captured knowledge into pages"
|
|
17
|
+
trigger_context: "user wants to turn accumulated in-flight observations into committed agents/knowledge/ pages"
|
|
18
|
+
workspaces:
|
|
19
|
+
- agent-config-maintainer
|
|
20
|
+
packs:
|
|
21
|
+
- meta
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# /team-knowledge
|
|
25
|
+
|
|
26
|
+
Top-level orchestrator for the `/team-knowledge` family — the
|
|
27
|
+
consolidation gate over the typed knowledge-observation events
|
|
28
|
+
captured during normal task work (see
|
|
29
|
+
[`knowledge-pages`](../templates/contexts/knowledge-pages.md) and the
|
|
30
|
+
event schema in `src/scripts/_lib/knowledge_events.ts`).
|
|
31
|
+
|
|
32
|
+
Not to be confused with the pre-existing `/knowledge` cluster (local
|
|
33
|
+
file ingestion into `agents/memory/knowledge/`) — different concern
|
|
34
|
+
(arbitrary local documents), unrelated to this repo-tracked,
|
|
35
|
+
lifecycle-typed team-knowledge layer under `agents/knowledge/`.
|
|
36
|
+
|
|
37
|
+
## Sub-commands
|
|
38
|
+
|
|
39
|
+
| Sub-command | Routes to | Purpose |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| `/team-knowledge consolidate` | `commands/team-knowledge/consolidate.md` | Read pending intake events, propose tracked-page creates/updates as a reviewable batch, write only on approval |
|
|
42
|
+
| `/team-knowledge bootstrap` | `commands/team-knowledge/bootstrap.md` | One-shot deterministic seed of a fresh project's knowledge pages from real config/directory detection — staged, never auto-committed |
|
|
43
|
+
|
|
44
|
+
Sub-command names match the locked contract in
|
|
45
|
+
[`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
|
|
46
|
+
|
|
47
|
+
## Dispatch
|
|
48
|
+
|
|
49
|
+
1. Parse the user's argument: `/team-knowledge <sub-command> [args]`.
|
|
50
|
+
2. Look up the sub-command in the table above.
|
|
51
|
+
3. Load the body of the routed file and follow its `## Steps` section
|
|
52
|
+
verbatim with the remaining args.
|
|
53
|
+
4. If the sub-command is unknown or missing, print the table above and ask:
|
|
54
|
+
|
|
55
|
+
> 1. consolidate — review pending knowledge events and file them as pages
|
|
56
|
+
> 2. bootstrap — seed a fresh project's knowledge pages from detection
|
|
57
|
+
|
|
58
|
+
## Rules
|
|
59
|
+
|
|
60
|
+
- **Never writes a tracked page without human approval.** Intake is
|
|
61
|
+
proposal-only; the consolidate flow always shows a batch and waits.
|
|
62
|
+
- **Never fires automatically** — the user invokes this explicitly.
|
|
63
|
+
- **Do NOT commit, push, or open a PR** unless the sub-command
|
|
64
|
+
explicitly authorizes it.
|
|
@@ -71,6 +71,14 @@ The pre-scan ask is the **only** permitted commit-related question
|
|
|
71
71
|
in autonomous mode. Once answered, the decision is cached for the
|
|
72
72
|
rest of the roadmap execution.
|
|
73
73
|
|
|
74
|
+
When the roadmap declares `execution.mode: autonomous |
|
|
75
|
+
phase-checkpoints`, this pre-scan ask is subsumed by the run-start
|
|
76
|
+
**execution contract** — one acceptance covers commits, the run's
|
|
77
|
+
feature branch, push to that branch only, and PR-open; see
|
|
78
|
+
[`roadmap-execution-contract`](../execution/roadmap-execution-contract.md)
|
|
79
|
+
and [`scope-mechanics § Roadmap execution contract`](scope-mechanics.md).
|
|
80
|
+
The Hard-Floor per-commit diff gate above is unaffected.
|
|
81
|
+
|
|
74
82
|
## Speech-act check on commit phrases
|
|
75
83
|
|
|
76
84
|
The same speech-act check from
|
|
@@ -55,6 +55,17 @@ A roadmap or task authorizes the *edit*; only the user-this-turn
|
|
|
55
55
|
authorizes the *commit* (row 6 of the rule's trigger table). Surface
|
|
56
56
|
the diff (paths + counts), get confirmation, then commit.
|
|
57
57
|
|
|
58
|
+
## Inspect before delete or overwrite
|
|
59
|
+
|
|
60
|
+
Before running any delete or overwrite — even one already cleared by
|
|
61
|
+
the checks above — look at the target first. If its actual contents
|
|
62
|
+
contradict how it was described (a "generated" file that turns out to
|
|
63
|
+
carry hand-edits, a "stale" branch with commits you don't recognize, an
|
|
64
|
+
"empty" directory that isn't), surface the discrepancy and stop instead
|
|
65
|
+
of proceeding on the original description. The same holds for anything
|
|
66
|
+
you did not create yourself this session: verify before assuming it is
|
|
67
|
+
safe to remove or replace.
|
|
68
|
+
|
|
58
69
|
## Failure modes
|
|
59
70
|
|
|
60
71
|
- Treating a standing autonomy directive as cover for a Hard-Floor
|
|
@@ -58,6 +58,31 @@ pinning inside it. If the user names a version in a planning
|
|
|
58
58
|
request, ask whether the artifact tracks the work or the release;
|
|
59
59
|
default to work.
|
|
60
60
|
|
|
61
|
+
## Roadmap execution contract — run-scoped standing permission
|
|
62
|
+
|
|
63
|
+
An **accepted run-start execution contract**
|
|
64
|
+
([`roadmap-execution-contract`](../execution/roadmap-execution-contract.md),
|
|
65
|
+
derived by `roadmap-process-loop § 3` when the roadmap declares
|
|
66
|
+
`execution.mode: autonomous | phase-checkpoints`) IS "explicit
|
|
67
|
+
permission … in a standing instruction not yet revoked" for
|
|
68
|
+
`scope-control § git-ops` — **for that run, and for exactly four
|
|
69
|
+
operations**:
|
|
70
|
+
|
|
71
|
+
1. Create the run's feature branch (`feat/<roadmap-slug>`, or reuse
|
|
72
|
+
the current worktree branch).
|
|
73
|
+
2. Chunked commits on that branch (Hard-Floor per-commit diff gate
|
|
74
|
+
stays; split per `commit-policy`).
|
|
75
|
+
3. Push to **that branch only** — any other ref stays Hard Floor.
|
|
76
|
+
4. Open ONE PR (description-only flow) — never merge / close /
|
|
77
|
+
retarget.
|
|
78
|
+
|
|
79
|
+
Boundaries that survive every contract: the frontmatter field alone
|
|
80
|
+
grants **nothing** (declaration of intent — no accepted contract, no
|
|
81
|
+
grants); grants expire when the run ends or halts; prod-trunk
|
|
82
|
+
operations, deploys, bulk deletions, infra commits, and merges are
|
|
83
|
+
outside contract scope always; kernel-rule edits keep their own-PR +
|
|
84
|
+
24h-soak guarantee.
|
|
85
|
+
|
|
61
86
|
## Brief-before-asking — separate branch / PR / worktree
|
|
62
87
|
|
|
63
88
|
If a task seems to need a separate branch or PR (spike, hotfix,
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Reply close — work summary + PR link
|
|
2
|
+
|
|
3
|
+
Lookup material for the reply-close carve-out in the
|
|
4
|
+
[`direct-answers`](../../../rules/direct-answers.md) Brevity Iron Law. Rule body
|
|
5
|
+
states the obligation in one line; this file is the detail.
|
|
6
|
+
|
|
7
|
+
## The carve-out
|
|
8
|
+
|
|
9
|
+
Brevity governs the reply **body**; the **close** is the exception.
|
|
10
|
+
|
|
11
|
+
- Reply that landed **substantial work** — multi-step change, roadmap/branch
|
|
12
|
+
progress, or a created/updated PR — ends with **ONE** compact status summary at
|
|
13
|
+
the very end, never mid-reply: what's done, what remains.
|
|
14
|
+
- **Simple one-answer replies still skip the summary** (Brevity Iron Law unchanged
|
|
15
|
+
for them). Summary is for work replies, not every turn.
|
|
16
|
+
|
|
17
|
+
## PR link is the literal last line
|
|
18
|
+
|
|
19
|
+
PR **created or updated this turn** → its raw GitHub URL is the **literal last
|
|
20
|
+
line**, after the summary, nothing below it — so the user never hunts for it. One
|
|
21
|
+
PR → one URL line.
|
|
22
|
+
|
|
23
|
+
- Only when a PR was actually created/updated **this turn**. No PR → no link line.
|
|
24
|
+
- Raw URL (not a masked markdown link) so it is unmistakable and clickable.
|
|
25
|
+
|
|
26
|
+
## Why it does not collide with sibling rules
|
|
27
|
+
|
|
28
|
+
- **`language-and-tone`** last-line rule: a raw URL is language-neutral → satisfies
|
|
29
|
+
the "every user-visible token mirrors the user's language" gate.
|
|
30
|
+
- **`no-pr-progress-comments`** / **`no-attribution-footers`**: those govern
|
|
31
|
+
comments posted *on the PR*. Summary + URL here are the **chat reply body**, not
|
|
32
|
+
a PR comment — neither applies.
|
|
33
|
+
- **`user-interaction`**: a numbered-options block, when present, still comes last
|
|
34
|
+
among interactive elements; the PR URL sits below it as the final line and is not
|
|
35
|
+
an "open question" → does not trip the no-trailing-open-question rule.
|
|
36
|
+
|
|
37
|
+
## Failure modes
|
|
38
|
+
|
|
39
|
+
- Burying the summary mid-reply, then continuing with more detail below it.
|
|
40
|
+
- Emitting the summary for a trivial one-answer reply (brevity says skip).
|
|
41
|
+
- Creating a PR but leaving its URL mid-reply, forcing the user to scroll/search.
|
|
42
|
+
- Masking the URL behind link text so it is not obviously the PR.
|
|
43
|
+
- Adding a PR-link line when no PR was created this turn.
|
|
@@ -104,7 +104,7 @@ package edit touches the same hot file.
|
|
|
104
104
|
`agents/settings/contexts/`, `docs/contracts/`, an existing rule body, or
|
|
105
105
|
an existing skill body. Replace in-file with a substantive
|
|
106
106
|
pointer. Never invent a new top-level dir.
|
|
107
|
-
5. **Verify.** Run
|
|
107
|
+
5. **Verify.** Run `./scripts-run src/scripts/lint_agents_md` until green;
|
|
108
108
|
`wc -c AGENTS.md` ≤ target cap; emergency-triage block intact.
|
|
109
109
|
|
|
110
110
|
## Common gotchas
|
|
@@ -213,7 +213,7 @@ rule listed above:
|
|
|
213
213
|
|
|
214
214
|
```bash
|
|
215
215
|
# Validate every line against the schema + redaction floor
|
|
216
|
-
|
|
216
|
+
node -e '
|
|
217
217
|
import pathlib, sys
|
|
218
218
|
sys.path.insert(0, ".agent-src.uncondensed/templates/scripts")
|
|
219
219
|
from telemetry.engagement import EngagementSchemaError, parse_event
|
|
@@ -232,7 +232,7 @@ print(f"{ok} valid, {bad} rejected")
|
|
|
232
232
|
'
|
|
233
233
|
|
|
234
234
|
# A bad-line spot-check that does not depend on the validator
|
|
235
|
-
|
|
235
|
+
node -e '
|
|
236
236
|
import json, pathlib, re
|
|
237
237
|
forbidden = re.compile(r"[/\\\\]|\.[a-z0-9]{1,10}$", re.IGNORECASE)
|
|
238
238
|
for line in pathlib.Path(".agent-engagement.jsonl").read_text().splitlines():
|
|
@@ -18,6 +18,7 @@ Cite the source rule in writer artifacts; do **not** restate it here.
|
|
|
18
18
|
| Numbered-options trade-off rule (real consequence, not sequencing) | [`user-interaction § Iron Law 1 — Single-Source Recommendation`](../../rules/user-interaction.md#iron-law-1--single-source-recommendation) |
|
|
19
19
|
| Cheap-question pre-send check (skip the ask if context already answers) | [`no-cheap-questions § Pre-Send Self-Check`](../../rules/no-cheap-questions.md#pre-send-self-check--mandatory-before-every-question) |
|
|
20
20
|
| Tool-call discipline, act-skip-narration, fresh output over memory | [`token-efficiency § The Iron Laws`](../../rules/token-efficiency.md#the-iron-laws) and its mechanics file |
|
|
21
|
+
| Budget is an input to the decision, never the decision — surface the trade-off before auto-rejecting a net-positive change on cost grounds | [`token-budget-discipline § Value-over-budget escalation`](../../rules/token-budget-discipline.md#value-over-budget-escalation) |
|
|
21
22
|
|
|
22
23
|
## Confirmation taxonomy
|
|
23
24
|
|
|
@@ -21,10 +21,20 @@ A task is classified **delegable** when **any** of these holds:
|
|
|
21
21
|
`parallelizable: steps | files | independent` in its frontmatter.
|
|
22
22
|
- `steps` → ordered plan → `do-in-steps`.
|
|
23
23
|
- `files` / `independent` → independent slices → `do-in-parallel`.
|
|
24
|
-
2. **Ordered-plan structure** —
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
2. **Ordered-plan structure** — explicit ordered plan (numbered steps / a roadmap
|
|
25
|
+
phase / a checklist) → `do-in-steps`. Deterministic markers:
|
|
26
|
+
- `1. … 2. … 3.` numbered list in the user message.
|
|
27
|
+
- References a roadmap phase or checklist.
|
|
28
|
+
- "first … then … finally" with distinct deliverables.
|
|
29
|
+
- "in N steps" or "phase by phase".
|
|
30
|
+
3. **Independent-slices structure** — N ≥ 3 independent targets of the same shape
|
|
31
|
+
→ `do-in-parallel`. Deterministic markers (N ≥ 3 of the same form):
|
|
32
|
+
- N file paths, each a separate analysis/edit target.
|
|
33
|
+
- N named modules/components for the same action.
|
|
34
|
+
- N named test files, adapters, endpoints, or services to convert/review/audit.
|
|
35
|
+
- "for each X in [list]" where list ≥ 3 items, no cross-item dependency.
|
|
36
|
+
Do **not** fire on interdependent lists (e.g. "add these 3 sequential
|
|
37
|
+
migrations") — those are ordered plans (signal 2).
|
|
28
38
|
|
|
29
39
|
AND the **task-size floor** is cleared: the task's estimated size exceeds a
|
|
30
40
|
minimum (trivial one-line edits never delegate — the dispatch overhead
|
|
@@ -71,3 +71,14 @@ regardless of `personal.autonomy`:
|
|
|
71
71
|
Push, merge, rebase, branch creation, PR operations, and tags
|
|
72
72
|
remain permission-gated by
|
|
73
73
|
[`scope-control § git-operations`](../../rules/scope-control.md#git-operations--permission-gated).
|
|
74
|
+
|
|
75
|
+
## End-of-turn checkpoint
|
|
76
|
+
|
|
77
|
+
Before ending a turn, check the last paragraph of the reply. If it is a
|
|
78
|
+
plan, an open question the context already answers, or a promise of
|
|
79
|
+
unexecuted work ("I'll…", "next I will…"), do that work now with tool
|
|
80
|
+
calls instead of ending the turn — this is what "the turn isn't done
|
|
81
|
+
until it's done" means in practice. This checkpoint operates inside the
|
|
82
|
+
existing bounds: the N=3 validation-loop budget and the Hard Floor
|
|
83
|
+
still apply unchanged; the checkpoint closes out work already in scope,
|
|
84
|
+
it never licenses continuing past either limit.
|
|
@@ -15,9 +15,11 @@ v1 forward-compat rule on unknown fields).
|
|
|
15
15
|
"spawn_count": 0,
|
|
16
16
|
"tiers": [],
|
|
17
17
|
"token_delta": 0,
|
|
18
|
+
"token_delta_provenance": "estimated",
|
|
18
19
|
"wall_clock_ms": 0,
|
|
19
20
|
"outcome": "DONE",
|
|
20
|
-
"verify_mode": "deterministic"
|
|
21
|
+
"verify_mode": "deterministic",
|
|
22
|
+
"verdict_changed_outcome": null
|
|
21
23
|
}
|
|
22
24
|
```
|
|
23
25
|
|
|
@@ -25,13 +27,15 @@ v1 forward-compat rule on unknown fields).
|
|
|
25
27
|
|
|
26
28
|
| Field | Type | Meaning |
|
|
27
29
|
|---|---|---|
|
|
28
|
-
| `task_size_estimate` | int | Pre-dispatch estimate of the task's size (
|
|
29
|
-
| `spawn_count` | int |
|
|
30
|
-
| `tiers` | string[] | Model tiers dispatched to, one
|
|
31
|
-
| `token_delta` | int | Net token cost
|
|
32
|
-
| `
|
|
30
|
+
| `task_size_estimate` | int | Pre-dispatch estimate of the task's size (orchestrator's sizing heuristic). Counts only, no body. |
|
|
31
|
+
| `spawn_count` | int | Subagents dispatched for this task. `0` → handled in-session. |
|
|
32
|
+
| `tiers` | string[] | Model tiers dispatched to, one per spawn class (e.g. `["sonnet","opus"]`). Tier names only, no prompts. |
|
|
33
|
+
| `token_delta` | int | Net token cost vs the in-session baseline. Positive = cost more; negative = saved. Counts only. |
|
|
34
|
+
| `token_delta_provenance` | enum | `"measured"` from host-reported `usage` metadata (preferred); `"estimated"` when self-estimated from response length (mark always when host usage unavailable). |
|
|
35
|
+
| `wall_clock_ms` | int | Dispatch wall-clock duration, milliseconds. |
|
|
33
36
|
| `outcome` | enum | One of `DONE` · `DONE_WITH_CONCERNS` · `NEEDS_CONTEXT` · `BLOCKED` · `killed`. |
|
|
34
|
-
| `verify_mode` | enum | How
|
|
37
|
+
| `verify_mode` | enum | How output was verified: `deterministic` · `judge` · `none`. |
|
|
38
|
+
| `verdict_changed_outcome` | bool \| null | **A3 extension (ADR-109 Track A).** For a review/verdict subagent (e.g. `production-validator`): did the verdict change the outcome vs the in-session baseline? `true` = caught a real issue the baseline missed / flipped a false `READY`→`NOT READY`; `false` = no lift; `null` = not a verdict dispatch / not measured. **Negative-control (clean single-file) tasks MUST record `false`** — a `true` on a control = spurious findings, fails Gate A. Additive field on THIS object, not a second schema. Boolean/counts only, no bodies. |
|
|
35
39
|
|
|
36
40
|
## Privacy floor
|
|
37
41
|
|
|
@@ -48,6 +52,27 @@ object is an additive extension on an otherwise standard audit-log-v1 line:
|
|
|
48
52
|
{"schema_version":1,"id":"01HXY...","ts":"2026-06-23T12:34:56Z","work_id":"PROJ-7-2026-06-23T12-30-00Z","phase":"implement","outcome":"success","confidence_band":"high","risk_class":"low","memory":{"asks":2,"hits":1},"verify":{"claims":1,"first_try_passes":1},"rules_applied":["verify-before-complete"],"persona":"backend","input_kind":"orchestration","type":"phase","orchestration":{"task_size_estimate":3,"spawn_count":2,"tiers":["sonnet","opus"],"token_delta":4200,"wall_clock_ms":18500,"outcome":"DONE","verify_mode":"deterministic"}}
|
|
49
53
|
```
|
|
50
54
|
|
|
55
|
+
## Emit procedure (how the orchestrating agent writes telemetry)
|
|
56
|
+
|
|
57
|
+
After every auto-dispatched orchestration run, the orchestrating agent writes one
|
|
58
|
+
telemetry line to `agents/runtime/state/audit/YYYY-MM.jsonl` (the existing
|
|
59
|
+
audit-log-v1 path; `YYYY-MM` = current UTC month). The line is a standard
|
|
60
|
+
audit-log-v1 object with `input_kind: "orchestration"` and an `orchestration`
|
|
61
|
+
sub-object carrying this shape.
|
|
62
|
+
|
|
63
|
+
**No hook or daemon required.** The agent writes directly via its file-write
|
|
64
|
+
tool — same mechanism as any other agent-written artifact. No-runtime-compatible
|
|
65
|
+
capture path (decided 2026-06-30, maintainer decision; see
|
|
66
|
+
`road-to-subagent-value-realization.md § Council notes`).
|
|
67
|
+
|
|
68
|
+
**`token_delta` sourcing priority:**
|
|
69
|
+
1. Host-reported: read `usage.output_tokens` (and `usage.input_tokens` if
|
|
70
|
+
available) from each subagent call's response metadata. Use the sum minus the
|
|
71
|
+
estimated single-agent baseline. Set `token_delta_provenance: "measured"`.
|
|
72
|
+
2. Self-estimate fallback: host usage metadata unavailable → estimate from
|
|
73
|
+
response length (chars / 4 ≈ tokens). Set `token_delta_provenance:
|
|
74
|
+
"estimated"`. Lossy; measured always preferred.
|
|
75
|
+
|
|
51
76
|
## Related
|
|
52
77
|
|
|
53
78
|
- [`audit-log-v1`](../../../../docs/contracts/audit-log-v1.md) — the frozen
|
|
@@ -56,4 +81,3 @@ object is an additive extension on an otherwise standard audit-log-v1 line:
|
|
|
56
81
|
- [`host-capability-manifest`](host-capability-manifest.md) — the manifest that
|
|
57
82
|
decides whether a dispatch is even attempted; `spawn_count` and `tiers`
|
|
58
83
|
reflect what it enabled.
|
|
59
|
-
Phase-0 instrumentation belongs to.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Roadmap Execution Contract
|
|
2
|
+
|
|
3
|
+
Loaded by [`roadmap-process-loop § 3`](roadmap-process-loop.md) when
|
|
4
|
+
resolved roadmap declares `execution.mode` in frontmatter
|
|
5
|
+
(`autonomous` | `phase-checkpoints`; absent / `interactive` = legacy
|
|
6
|
+
behavior, this context stays unloaded). Defines the run-start
|
|
7
|
+
pre-scan, the contract summary user confirms ONCE, the grants that
|
|
8
|
+
confirmation activates, and the per-mode gate table.
|
|
9
|
+
|
|
10
|
+
## Principle — declaration vs. authorization
|
|
11
|
+
|
|
12
|
+
`execution.mode` in frontmatter is a **declaration of intent** written
|
|
13
|
+
at authoring time. Grants nothing. Authorization happens exactly once
|
|
14
|
+
per run: user invokes `/roadmap:process-*` (a this-turn action), loop
|
|
15
|
+
derives the contract below from roadmap's CURRENT content, and user's
|
|
16
|
+
single confirmation converts declared mode into this-turn grants
|
|
17
|
+
**cached for this run only** (same mechanism as commit pre-scan it
|
|
18
|
+
extends). Stale frontmatter is harmless: no confirmation, no grants.
|
|
19
|
+
|
|
20
|
+
## 1. Pre-scan — four detection classes
|
|
21
|
+
|
|
22
|
+
Scan every open step (text + inline notes) for:
|
|
23
|
+
|
|
24
|
+
1. **Commit-shaped steps** — `commit:` / `git commit` / `Commit phase`
|
|
25
|
+
(existing § 3 scan).
|
|
26
|
+
2. **Git-shape needs** — steps requiring a branch / push / PR
|
|
27
|
+
(`branch`, `push`, `open a PR`, `create PR`, "in a worktree"), plus
|
|
28
|
+
run's own delivery needs when roadmap's definition of done includes
|
|
29
|
+
shipping (autonomous mode default, § 4).
|
|
30
|
+
3. **Artifact-authoring steps** — steps that create or materially
|
|
31
|
+
rewrite a skill / rule / command / guideline (verbs `add`/`create`/
|
|
32
|
+
`write`/`rewrite` + artifact nouns, or paths under
|
|
33
|
+
`src/{skills,rules}/`, command/guideline trees). Feed the batched
|
|
34
|
+
[`artifact-drafting-protocol`](../../rules/artifact-drafting-protocol.md)
|
|
35
|
+
research pass (§ 3 below).
|
|
36
|
+
4. **Open questions / ambiguity** — explicit `?` markers, "decide
|
|
37
|
+
whether", options left unresolved, or steps matching
|
|
38
|
+
[`ask-when-uncertain`](../../rules/ask-when-uncertain.md)
|
|
39
|
+
vague-trigger patterns.
|
|
40
|
+
|
|
41
|
+
## 2. Contract summary — shown once, confirmed once
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Roadmap: <path> · mode: <autonomous | phase-checkpoints>
|
|
45
|
+
|
|
46
|
+
Git: branch <feat/<roadmap-slug>> · commits: chunked (N commit steps
|
|
47
|
+
detected / delivery commits) · push: to feat/<roadmap-slug> ONLY
|
|
48
|
+
· PR: open against <default branch> (description only — no merge)
|
|
49
|
+
Artifacts: <N> planned (skills/rules/commands/guidelines) —
|
|
50
|
+
batched overlap check: <result — run NOW, against current state>
|
|
51
|
+
Open questions: <N> → resolved via AI council (<members | "none
|
|
52
|
+
configured — will halt on ambiguity">)
|
|
53
|
+
Quality: <cadence> · Dashboard: <cadence>
|
|
54
|
+
|
|
55
|
+
Always active regardless of this contract (never lifted):
|
|
56
|
+
• Hard Floor per-commit diff gate (bulk deletions / infra)
|
|
57
|
+
• Push anywhere except feat/<roadmap-slug>; any merge
|
|
58
|
+
• security-sensitive-stop on auth/billing/tenant/secret paths
|
|
59
|
+
• N=3 validation budget · context-hygiene read-loop abort
|
|
60
|
+
• Deferred-[~] archival gate
|
|
61
|
+
|
|
62
|
+
1. Accept — run under this contract
|
|
63
|
+
2. Adjust (name the change) · 3. Run interactive instead · 4. Abort
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Accept = ONE authorization of the run. Cache all grants; never re-ask
|
|
67
|
+
inside the run. Adjust → apply, re-show once. Contract re-derived on
|
|
68
|
+
every invocation — always reflects roadmap's and repo's current state.
|
|
69
|
+
|
|
70
|
+
## 3. Grants activated by acceptance
|
|
71
|
+
|
|
72
|
+
| Grant | Boundary |
|
|
73
|
+
|---|---|
|
|
74
|
+
| Create feature branch `feat/<roadmap-slug>` (or reuse the current worktree branch) | Never a prod trunk; one branch per run |
|
|
75
|
+
| 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) |
|
|
76
|
+
| Push to that branch **only** | Push to any other ref = Hard Floor, ask |
|
|
77
|
+
| Open ONE PR (description-only flow) | Never merge, never close/retarget; merge is always conversational |
|
|
78
|
+
| 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 |
|
|
79
|
+
| 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) |
|
|
80
|
+
|
|
81
|
+
Grants satisfy [`scope-control`](../../rules/scope-control.md)'s
|
|
82
|
+
"standing instruction" clause for the run — see
|
|
83
|
+
[`scope-mechanics § Roadmap execution contract`](../authority/scope-mechanics.md).
|
|
84
|
+
|
|
85
|
+
## 4. Definition of done, per mode
|
|
86
|
+
|
|
87
|
+
| Mode | End state | Halts during run |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| `autonomous` | All steps `[x]` · quality green per cadence · work committed in chunks on `feat/<roadmap-slug>` · pushed · PR open · archival sweep run. **Merge out of scope, always.** | Safety floors only (+ quality-red, + step reveals out-of-roadmap work) |
|
|
90
|
+
| `phase-checkpoints` | Same end state | Safety floors + a compact status + "continue?" prompt at each phase boundary |
|
|
91
|
+
| `interactive` (absent field) | Legacy: work lands, no git delivery without per-op permission | All gates as authored by their owning rules |
|
|
92
|
+
|
|
93
|
+
If roadmap contains **no** delivery need and no commit steps, git
|
|
94
|
+
grants are omitted from the contract (nothing to authorize —
|
|
95
|
+
[`commit-policy`](../../rules/commit-policy.md) default: never commit).
|
|
96
|
+
|
|
97
|
+
## 5. What acceptance can NEVER cover
|
|
98
|
+
|
|
99
|
+
- Any [`non-destructive-by-default`](../../rules/non-destructive-by-default.md)
|
|
100
|
+
trigger beyond the two named grants (own-branch push, PR-open):
|
|
101
|
+
prod-trunk anything, deploys, bulk deletions, infra commits.
|
|
102
|
+
- Merging, closing, or retargeting a PR.
|
|
103
|
+
- Lifting [`security-sensitive-stop`](../../rules/security-sensitive-stop.md),
|
|
104
|
+
the N=3 budget, context-hygiene aborts, or the deferred-`[~]` gate.
|
|
105
|
+
- Work outside the roadmap's scope (halt: scope-out-of-roadmap).
|
|
106
|
+
- Kernel-rule edits' own-PR + 24h-soak guarantee
|
|
107
|
+
([`kernel-rule-edits`](../authority/kernel-rule-edits.md)).
|