@event4u/agent-config 14.12.0 → 14.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +118 -155
- package/CONTRIBUTING.md +38 -0
- package/CREDITS.md +135 -0
- package/NOTICE +13 -0
- package/README.md +8 -6
- package/dist/agent-src/commands/analyze/inbox.md +145 -2
- package/dist/agent-src/commands/feature/dev.md +7 -2
- package/dist/agent-src/commands/ghostwriter/write.md +5 -1
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/orchestrate.md +2 -2
- package/dist/agent-src/commands/post-as/me.md +5 -1
- package/dist/agent-src/commands/pr/merge.md +19 -6
- package/dist/agent-src/commands/roadmap/process-full.md +19 -5
- package/dist/agent-src/commands/tdd/red.md +12 -2
- package/dist/agent-src/commands/work.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +40 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +5 -2
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +21 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +1 -0
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +40 -0
- package/dist/agent-src/contexts/execution/subagent-steering.md +13 -1
- package/dist/agent-src/contexts/execution/terminal-states.md +96 -0
- package/dist/agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/dist/agent-src/rules/broken-access-control.md +4 -0
- package/dist/agent-src/rules/code-comment-discipline.md +6 -0
- package/dist/agent-src/rules/code-provenance.md +4 -0
- package/dist/agent-src/rules/design-fidelity.md +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +4 -0
- package/dist/agent-src/rules/domain-safety-retention.md +4 -0
- package/dist/agent-src/rules/engineering-safety-floor.md +2 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +14 -12
- package/dist/agent-src/rules/improve-before-implement.md +6 -8
- package/dist/agent-src/rules/laravel-routing.md +1 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +4 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +2 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +12 -34
- package/dist/agent-src/rules/symfony-routing.md +1 -1
- package/dist/agent-src/rules/token-efficiency.md +14 -0
- package/dist/agent-src/rules/tool-safety.md +4 -0
- package/dist/agent-src/rules/untrusted-input-defense.md +4 -0
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +252 -8
- package/dist/agent-src/scripts/guarded_baseline.ts +343 -0
- package/dist/agent-src/scripts/roadmap_set_step.ts +253 -0
- package/dist/agent-src/scripts/stub_queue.ts +82 -0
- package/dist/agent-src/scripts/stubs_due.ts +516 -0
- package/dist/agent-src/scripts/ticket_bundles.ts +84 -0
- package/dist/agent-src/scripts/update_roadmap_progress.ts +16 -12
- package/dist/agent-src/skills/brand-asset-generation/SKILL.md +17 -4
- package/dist/agent-src/skills/brand-audit/SKILL.md +33 -0
- package/dist/agent-src/skills/code-intelligence/SKILL.md +57 -0
- package/dist/agent-src/skills/database/SKILL.md +8 -0
- package/dist/agent-src/skills/dependency-upgrade/SKILL.md +27 -0
- package/dist/agent-src/skills/design-review/SKILL.md +1 -1
- package/dist/agent-src/skills/doc-coauthoring/SKILL.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +17 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +9 -2
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +44 -0
- package/dist/agent-src/skills/git-workflow/SKILL.md +1 -1
- package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.ts +38 -4
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/ticket-quality-score.json +2 -2
- package/dist/agent-src/skills/laravel/SKILL.md +35 -0
- package/dist/agent-src/skills/laravel-migration/SKILL.md +57 -3
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +26 -0
- package/dist/agent-src/skills/playbook-authoring/SKILL.md +28 -1
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-writing/references/procedure.md +5 -5
- package/dist/agent-src/skills/sql-writing/SKILL.md +7 -1
- package/dist/agent-src/skills/standards-from-config/SKILL.md +27 -4
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +11 -4
- package/dist/agent-src/skills/symfony-workflow/SKILL.md +35 -0
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +85 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +33 -9
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +37 -0
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +45 -2
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +38 -1
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +9 -4
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +97 -3
- package/dist/agent-src/templates/scripts/check_memory.ts +258 -17
- package/dist/agent-src/templates/scripts/check_memory_proposal.ts +9 -3
- package/dist/agent-src/templates/scripts/memory_lookup.ts +86 -0
- package/dist/agent-src/templates/scripts/memory_signal.ts +44 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/implement.ts +90 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/index.ts +11 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/test.ts +23 -1
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/verify.ts +10 -1
- package/dist/agent-src/templates/scripts/work_engine/directives/mixed/stitch.ts +5 -1
- package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +102 -14
- package/dist/cli/commands/uiAudit.js +124 -5
- package/dist/cli/registry.js +2 -0
- package/dist/cli-delegate/{chunk-HYWSRNUX.js → chunk-2DK2VJWG.js} +3 -3
- package/dist/cli-delegate/{chunk-JCW7ZLHK.js → chunk-4FS4WRXP.js} +5 -0
- package/dist/cli-delegate/{chunk-OMIVVCG2.js → chunk-A4QJ6ENT.js} +24 -0
- package/dist/cli-delegate/{chunk-JJA2QEWA.js → chunk-AKJGUQNO.js} +466 -285
- package/dist/cli-delegate/{chunk-E46KPN6K.js → chunk-BTWUYDGN.js} +424 -363
- package/dist/cli-delegate/{chunk-K4FFODTS.js → chunk-ILMUPLGW.js} +1227 -316
- package/dist/cli-delegate/{chunk-FF7WAFMR.js → chunk-KPBWFOPZ.js} +5 -1
- package/dist/cli-delegate/cmd_adr_effective.js +102 -0
- package/dist/cli-delegate/cmd_conformance.js +80 -11
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_export.js +3 -2
- package/dist/cli-delegate/cmd_fleet.js +2 -2
- package/dist/cli-delegate/cmd_handoff.js +1 -1
- package/dist/cli-delegate/cmd_preflight.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +3 -2
- package/dist/cli-delegate/cmd_settings_get.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +3 -2
- package/dist/cli-delegate/cmd_settings_set.js +2 -2
- package/dist/cli-delegate/cmd_sync.js +3 -2
- package/dist/cli-delegate/cmd_uninstall.js +3 -2
- package/dist/cli-delegate/cmd_validate.js +3 -2
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +58 -58
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/hooks/dispatch.js +2900 -1049
- package/dist/install/claudeRuleRewrite.js +254 -0
- package/dist/install/detect.js +29 -16
- package/dist/install/detect_php_shape.js +159 -0
- package/dist/install/install.mjs +634 -428
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +3 -3
- package/dist/mcp/server.mjs +4895 -2627
- package/dist/server/schemas/settings.js +3 -0
- package/dist/ui/assets/index-D0jaCRPM.js +29 -0
- package/dist/ui/index.html +1 -1
- package/docs/MIGRATION.md +1 -1
- package/docs/THIRD-PARTY-NOTICES.md +25 -0
- package/docs/contracts/provider-lifecycle.md +1 -1
- package/docs/contracts/settings-classes.md +10 -4
- package/docs/guidelines/agent-infra/5w2h-analysis.md +3 -3
- package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +1 -0
- package/docs/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +58 -3
- package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +3 -3
- package/docs/guidelines/agent-infra/break-glass-usage.md +7 -7
- package/docs/guidelines/agent-infra/carve-out-predicates.md +3 -3
- package/docs/guidelines/agent-infra/comparison-matrix.md +1 -1
- package/docs/guidelines/agent-infra/critical-thinking.md +4 -4
- package/docs/guidelines/agent-infra/direct-answers-demos.md +2 -2
- package/docs/guidelines/agent-infra/domain-eval-anti-pattern.md +1 -1
- package/docs/guidelines/agent-infra/engineering-memory-data-format.md +3 -3
- package/docs/guidelines/agent-infra/existence-question-verdicts.md +80 -0
- package/docs/guidelines/agent-infra/first-principles.md +2 -2
- package/docs/guidelines/agent-infra/framework-neutrality-patterns.md +2 -2
- package/docs/guidelines/agent-infra/guarded-baseline.md +39 -0
- package/docs/guidelines/agent-infra/inversion-thinking.md +5 -5
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +1 -1
- package/docs/guidelines/agent-infra/layered-settings.md +10 -10
- package/docs/guidelines/agent-infra/memory-access.md +1 -1
- package/docs/guidelines/agent-infra/mental-models.md +3 -3
- package/docs/guidelines/agent-infra/reuse-verdict-mechanics.md +71 -0
- package/docs/guidelines/agent-infra/review-routing-data-format.md +7 -7
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +13 -7
- package/docs/guidelines/agent-infra/role-contracts.md +2 -2
- package/docs/guidelines/agent-infra/role-mode-router.md +3 -3
- package/docs/guidelines/agent-infra/rule-type-governance.md +2 -2
- package/docs/guidelines/agent-infra/scqa-framework.md +5 -5
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +6 -6
- package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +2 -2
- package/docs/guidelines/agent-infra/six-hats.md +3 -3
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +6 -6
- package/docs/guidelines/agent-infra/source-confidentiality-mechanics.md +109 -0
- package/docs/guidelines/agent-infra/systems-thinking.md +1 -1
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +2 -2
- package/docs/guidelines/augment-portability-patterns.md +6 -4
- package/docs/guidelines/code-clarity.md +18 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +3 -2
- package/docs/guidelines/cross-role-handoff.md +2 -2
- package/docs/guidelines/design-fidelity-mechanics.md +1 -1
- package/docs/guidelines/docs/readme-size-and-splitting.md +3 -3
- package/docs/guidelines/php/database.md +90 -7
- package/docs/guidelines/prompt-templates.md +7 -7
- package/llms.txt +2 -2
- package/package.json +5 -2
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +252 -8
- package/src/agent-src/scripts/guarded_baseline.ts +343 -0
- package/src/agent-src/scripts/roadmap_set_step.ts +253 -0
- package/src/agent-src/scripts/stub_queue.ts +82 -0
- package/src/agent-src/scripts/stubs_due.ts +516 -0
- package/src/agent-src/scripts/ticket_bundles.ts +84 -0
- package/src/agent-src/scripts/update_roadmap_progress.ts +16 -12
- package/src/agent-src/templates/scripts/check_memory.ts +258 -17
- package/src/agent-src/templates/scripts/check_memory_proposal.ts +9 -3
- package/src/agent-src/templates/scripts/memory_lookup.ts +86 -0
- package/src/agent-src/templates/scripts/memory_signal.ts +44 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/implement.ts +90 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/index.ts +11 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/test.ts +23 -1
- package/src/agent-src/templates/scripts/work_engine/directives/backend/verify.ts +10 -1
- package/src/agent-src/templates/scripts/work_engine/directives/mixed/stitch.ts +5 -1
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +102 -14
- package/src/config/agent-settings.template.yml +32 -3
- package/src/config/assurance-capability-registry.json +21 -9
- package/src/config/canonical-terms.yml +119 -0
- package/src/config/capability-native-outcome-bars.json +81 -0
- package/src/config/ci-local-parity.yml +80 -0
- package/src/config/drafting-channels.yml +43 -0
- package/src/config/estate-count-budget.json +57 -36
- package/src/config/evaluator-budgets.json +14 -14
- package/src/config/gate-coverage.yml +729 -63
- package/src/config/gate-reachability-exemptions.json +21 -0
- package/src/config/gate-violation-baselines.json +42 -19
- package/src/config/harness-evolution-budget.json +25 -0
- package/src/config/lapsed-beta-baseline.json +96 -0
- package/src/config/memory-twin-verdicts.yml +129 -0
- package/src/config/metric-registry.yml +124 -0
- package/src/config/pack-size-budget.json +16 -15
- package/src/config/preamble-payload-budget.json +12 -4
- package/src/config/profiles/balanced.ini +27 -0
- package/src/config/profiles/full.ini +27 -0
- package/src/config/profiles/minimal.ini +27 -0
- package/src/config/publish-surface.json +9 -2
- package/src/config/routing-coverage-seed.json +16 -2
- package/src/config/rule-stub-ceilings.json +133 -112
- package/src/config/turnaround-budget.json +66 -0
- package/src/install/claudeRuleRewrite.ts +288 -0
- package/src/install/detect.ts +60 -17
- package/src/install/detect_php_shape.ts +191 -0
- package/src/scripts/_cli/cmd_doctor.ts +27 -112
- package/src/scripts/_dispatch.bash +23 -0
- package/src/scripts/_lib/activation_ladder.ts +255 -0
- package/src/scripts/_lib/activation_receipt_producer.ts +341 -0
- package/src/scripts/_lib/activation_states.ts +88 -0
- package/src/scripts/_lib/adherence_detectors.ts +143 -0
- package/src/scripts/_lib/adr_frontmatter.ts +26 -0
- package/src/scripts/_lib/arith_claims.ts +181 -0
- package/src/scripts/_lib/arm_ranking.ts +62 -0
- package/src/scripts/_lib/asset_delivery_ledger.ts +303 -0
- package/src/scripts/_lib/audit_field_provenance.ts +54 -0
- package/src/scripts/_lib/auto_dispatch.ts +32 -3
- package/src/scripts/_lib/bench_ab_size_claim.ts +98 -4
- package/src/scripts/_lib/benchmark_cache_fields.ts +158 -0
- package/src/scripts/_lib/candidate_pair_delta.ts +349 -0
- package/src/scripts/_lib/candidate_proposer.ts +402 -0
- package/src/scripts/_lib/candidate_record.ts +601 -0
- package/src/scripts/_lib/capture_rate.ts +319 -0
- package/src/scripts/_lib/carrier_status.ts +118 -0
- package/src/scripts/_lib/cascade_stage_enumeration.ts +92 -0
- package/src/scripts/_lib/collector_denominator.ts +771 -0
- package/src/scripts/_lib/collector_record.ts +340 -0
- package/src/scripts/_lib/collector_store.ts +664 -0
- package/src/scripts/_lib/collector_supervision.ts +827 -0
- package/src/scripts/_lib/concern_estate.ts +77 -0
- package/src/scripts/_lib/config_chain.ts +477 -0
- package/src/scripts/_lib/config_cost.ts +209 -0
- package/src/scripts/_lib/corpus_manifest.ts +726 -0
- package/src/scripts/_lib/council_settings_block.ts +6 -0
- package/src/scripts/_lib/curator_ops.ts +172 -0
- package/src/scripts/_lib/delivery_arm_experiment.ts +282 -0
- package/src/scripts/_lib/delivery_criticality.ts +126 -0
- package/src/scripts/_lib/doctor_runtime_checks.ts +70 -0
- package/src/scripts/_lib/empty_cycles.ts +88 -0
- package/src/scripts/_lib/estate_carrier_cases.ts +72 -0
- package/src/scripts/_lib/eval_publication.ts +354 -0
- package/src/scripts/_lib/evaluation_cascade.ts +452 -0
- package/src/scripts/_lib/evaluation_vector.ts +283 -0
- package/src/scripts/_lib/evaluator_promotion.ts +225 -0
- package/src/scripts/_lib/evidence_basis.ts +118 -0
- package/src/scripts/_lib/evolution_roi.ts +562 -0
- package/src/scripts/_lib/exec_evidence.ts +8 -0
- package/src/scripts/_lib/experience_card.ts +272 -0
- package/src/scripts/_lib/experience_report.ts +151 -0
- package/src/scripts/_lib/experiment_freeze.ts +112 -0
- package/src/scripts/_lib/generated_by.ts +66 -0
- package/src/scripts/_lib/harness_evolution_guards.ts +239 -0
- package/src/scripts/_lib/hook_effect_probe.ts +141 -0
- package/src/scripts/_lib/host_denominator.ts +687 -0
- package/src/scripts/_lib/host_projection_reach.ts +157 -0
- package/src/scripts/_lib/ignored_blocker.ts +148 -0
- package/src/scripts/_lib/install_reach_checks.ts +495 -0
- package/src/scripts/_lib/json_duplicate_keys.ts +150 -0
- package/src/scripts/_lib/judge_hygiene.ts +228 -0
- package/src/scripts/_lib/legacy_boundary_map.ts +228 -0
- package/src/scripts/_lib/lexical_shortlist.ts +215 -0
- package/src/scripts/_lib/llm_candidate_proposer.ts +461 -0
- package/src/scripts/_lib/llm_proposer_transport.ts +153 -0
- package/src/scripts/_lib/loop_guards.ts +299 -0
- package/src/scripts/_lib/loss_class.ts +129 -0
- package/src/scripts/_lib/machine_wake.ts +51 -0
- package/src/scripts/_lib/md_prose_lines.ts +177 -0
- package/src/scripts/_lib/minimality_tiebreak.ts +168 -0
- package/src/scripts/_lib/one_resolver_invariant.ts +449 -0
- package/src/scripts/_lib/orchestration_record.ts +253 -5
- package/src/scripts/_lib/outcome_envelope.ts +227 -0
- package/src/scripts/_lib/outcome_vocabularies.ts +125 -0
- package/src/scripts/_lib/paired_stats.ts +245 -0
- package/src/scripts/_lib/paired_verdict.ts +226 -0
- package/src/scripts/_lib/pathology_archive.ts +393 -0
- package/src/scripts/_lib/prefix_stable_surfaces.ts +123 -0
- package/src/scripts/_lib/privacy_class.ts +47 -0
- package/src/scripts/_lib/promotion_capability.ts +315 -0
- package/src/scripts/_lib/promotion_evidence.ts +414 -0
- package/src/scripts/_lib/promotion_review.ts +294 -0
- package/src/scripts/_lib/prompt_shape.ts +92 -0
- package/src/scripts/_lib/regression_neighbourhood.ts +259 -0
- package/src/scripts/_lib/release_highlights.ts +70 -1
- package/src/scripts/_lib/release_material.ts +125 -2
- package/src/scripts/_lib/repeated_failure.ts +105 -0
- package/src/scripts/_lib/repo_root.ts +111 -0
- package/src/scripts/_lib/review_skipped_record.ts +37 -0
- package/src/scripts/_lib/role_split.ts +338 -0
- package/src/scripts/_lib/routing_corpus.ts +307 -0
- package/src/scripts/_lib/routing_index_input.ts +104 -0
- package/src/scripts/_lib/rule_injection.ts +22 -1
- package/src/scripts/_lib/runtime_journal.ts +1499 -0
- package/src/scripts/_lib/runtime_wiring_checks.ts +430 -0
- package/src/scripts/_lib/semantic_noop.ts +167 -0
- package/src/scripts/_lib/skill_catalogue.ts +11 -1
- package/src/scripts/_lib/source_digest.ts +200 -0
- package/src/scripts/_lib/source_redact.ts +260 -0
- package/src/scripts/_lib/source_shape.ts +502 -0
- package/src/scripts/_lib/source_snapshot_dedup.ts +199 -0
- package/src/scripts/_lib/strip_comments.d.mts +8 -0
- package/src/scripts/_lib/strip_comments.mjs +65 -0
- package/src/scripts/_lib/test_red_state.ts +154 -0
- package/src/scripts/_lib/trigger_shift.ts +144 -0
- package/src/scripts/_lib/untrusted_content.ts +82 -7
- package/src/scripts/activation_receipt.ts +258 -0
- package/src/scripts/adoption_report.ts +1 -1
- package/src/scripts/adr/evidence_census.ts +1 -1
- package/src/scripts/adr/regenerate_index.ts +26 -2
- package/src/scripts/adr_cite_check.ts +164 -1
- package/src/scripts/ai_council/blind_review.ts +11 -1
- package/src/scripts/ai_council/clients.ts +4 -0
- package/src/scripts/ai_council/config.ts +3 -0
- package/src/scripts/ai_council/consensus.ts +28 -8
- package/src/scripts/ai_council/consensus_round.ts +226 -0
- package/src/scripts/ai_council/cross_exam.ts +128 -0
- package/src/scripts/ai_council/disagreement_signal.ts +338 -0
- package/src/scripts/ai_council/explain_route.ts +157 -0
- package/src/scripts/ai_council/information_gain.ts +293 -0
- package/src/scripts/ai_council/inline_findings.ts +340 -0
- package/src/scripts/ai_council/judge_position_bias.ts +197 -0
- package/src/scripts/ai_council/leakage_corpus.ts +385 -0
- package/src/scripts/ai_council/leakage_patterns.ts +453 -0
- package/src/scripts/ai_council/minority_retention.ts +171 -0
- package/src/scripts/ai_council/orchestrator.ts +16 -203
- package/src/scripts/ai_council/orchestrator_results.ts +23 -3
- package/src/scripts/ai_council/pricing.ts +106 -0
- package/src/scripts/ai_council/prompts.ts +74 -7
- package/src/scripts/ai_council/provider_leakage_bench.ts +327 -0
- package/src/scripts/ai_council/py_format.ts +14 -3
- package/src/scripts/ai_council/recouncil_guard.ts +293 -0
- package/src/scripts/ai_council/recouncil_savings.ts +299 -0
- package/src/scripts/ai_council/replay_route.ts +223 -0
- package/src/scripts/ai_council/response_record.ts +50 -0
- package/src/scripts/ai_council/reviewer_assignment.ts +279 -0
- package/src/scripts/ai_council/routing_training_row.ts +197 -0
- package/src/scripts/ai_council/synthesis_strategy.ts +159 -0
- package/src/scripts/ai_council/topology_bench_manifest.ts +860 -0
- package/src/scripts/ai_council/topology_vocabulary.ts +175 -0
- package/src/scripts/asset_delivery_ledger.ts +157 -0
- package/src/scripts/attest_artifact.ts +193 -0
- package/src/scripts/audit_auto_rules.ts +2 -1
- package/src/scripts/audit_command_surface.ts +1 -1
- package/src/scripts/audit_mcp_tools.ts +2 -2
- package/src/scripts/audit_skill_overlap_allowlist.json +6 -1
- package/src/scripts/audit_user_type_axis.ts +2 -1
- package/src/scripts/bench_ab_clone.ts +215 -10
- package/src/scripts/bench_ab_integrity.ts +119 -5
- package/src/scripts/bench_ab_v2_stats.ts +40 -213
- package/src/scripts/build_archive_index.ts +1 -1
- package/src/scripts/build_linear_digest.ts +1 -1
- package/src/scripts/build_proof.ts +11 -4
- package/src/scripts/build_rule_trigger_matrix.ts +1 -1
- package/src/scripts/build_source_digests.ts +157 -0
- package/src/scripts/cache_realization_report.ts +103 -0
- package/src/scripts/check_adr_frontmatter.ts +131 -10
- package/src/scripts/check_benchmark_report_fields.ts +207 -0
- package/src/scripts/check_beta_review_markers.ts +235 -6
- package/src/scripts/check_bundle_path_leakage.ts +34 -1
- package/src/scripts/check_claims.ts +576 -6
- package/src/scripts/check_composite_arming.ts +35 -0
- package/src/scripts/check_concern_admissions.ts +365 -0
- package/src/scripts/check_enforcement_coverage.ts +28 -0
- package/src/scripts/check_estate_count.ts +347 -25
- package/src/scripts/check_gate_reachability.ts +383 -0
- package/src/scripts/check_host_loadability.ts +104 -0
- package/src/scripts/check_loss_class_declared.ts +308 -0
- package/src/scripts/check_md_language.ts +15 -98
- package/src/scripts/check_memory_proposal.ts +18 -11
- package/src/scripts/check_no_currency_in_cost_surfaces.ts +225 -0
- package/src/scripts/check_no_external_sources.ts +281 -6
- package/src/scripts/check_pack_conformance_fixture.ts +11 -1
- package/src/scripts/check_pack_size.ts +59 -2
- package/src/scripts/check_preamble_payload_budget.ts +114 -3
- package/src/scripts/check_prefix_stable_mutation.ts +372 -0
- package/src/scripts/check_publish_surface.ts +10 -1
- package/src/scripts/check_references.ts +24 -1
- package/src/scripts/check_release_highlights.ts +96 -13
- package/src/scripts/check_roadmap_trackable.ts +17 -2
- package/src/scripts/check_rule_evidence_declaration.ts +316 -0
- package/src/scripts/check_rule_projection_integrity.ts +14 -4
- package/src/scripts/check_score_contract.ts +26 -3
- package/src/scripts/check_static_parity.ts +285 -0
- package/src/scripts/check_supervision_claim_atomicity.ts +498 -0
- package/src/scripts/check_suppression_hygiene.ts +15 -0
- package/src/scripts/ci_settle.ts +39 -2
- package/src/scripts/code_graph/build.ts +60 -3
- package/src/scripts/code_graph/extract.ts +44 -0
- package/src/scripts/code_graph/types.ts +24 -0
- package/src/scripts/collector_daemon.ts +714 -0
- package/src/scripts/config_cost_report.ts +302 -0
- package/src/scripts/consumer_matrix.ts +74 -1
- package/src/scripts/corpus_manifest.ts +235 -0
- package/src/scripts/cost/budget.mjs +10 -3
- package/src/scripts/cost/track.mjs +10 -3
- package/src/scripts/council_cli.ts +37 -54
- package/src/scripts/dispatch_r2_reviewer.ts +46 -5
- package/src/scripts/evolution_lab.ts +1153 -0
- package/src/scripts/external_sources_denylist.json +5 -18
- package/src/scripts/extract_audit_patterns.ts +21 -0
- package/src/scripts/fold_intake.ts +12 -1
- package/src/scripts/gen_discovery_baseline.ts +1 -1
- package/src/scripts/generate_capabilities_index.ts +12 -5
- package/src/scripts/generate_capability_matrix.ts +3 -3
- package/src/scripts/generate_command_flows.ts +2 -2
- package/src/scripts/generate_cookbook.ts +2 -2
- package/src/scripts/generate_index.ts +8 -1
- package/src/scripts/generate_knowledge_index.ts +2 -1
- package/src/scripts/generate_ownership_matrix.ts +2 -1
- package/src/scripts/generate_pack_manifests.ts +10 -2
- package/src/scripts/generate_role_experiences_catalog.ts +2 -2
- package/src/scripts/generate_settings_reference.ts +1 -1
- package/src/scripts/git_authorization_hook.ts +22 -1
- package/src/scripts/grade_target_readiness.ts +48 -5
- package/src/scripts/hook_effect_doctor.ts +261 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +125 -16
- package/src/scripts/hooks/block_speaking_inbox_dir.ts +271 -0
- package/src/scripts/hooks/block_unauthorized_git.ts +18 -0
- package/src/scripts/hooks/comment_discipline_hook.ts +146 -0
- package/src/scripts/hooks/concern_registry.ts +6 -0
- package/src/scripts/hooks/dispatch_hook.ts +32 -0
- package/src/scripts/hooks/journal_record_hook.ts +345 -0
- package/src/scripts/hooks/prepush_metadata_sources.sh +110 -0
- package/src/scripts/hooks/run_continuation_hook.ts +44 -9
- package/src/scripts/hooks/shims/install.sh +61 -0
- package/src/scripts/hooks/shims/php +101 -0
- package/src/scripts/hooks/suggestion_capture_hook.ts +10 -0
- package/src/scripts/hooks/turn_end_gate_hook.ts +9 -1
- package/src/scripts/hot_context_hook.ts +16 -0
- package/src/scripts/install-hooks.sh +20 -5
- package/src/scripts/install.ts +17 -35
- package/src/scripts/inventory_frontmatter.ts +2 -1
- package/src/scripts/language_mirror_hook.ts +14 -2
- package/src/scripts/lint_adr_sweep_routing.ts +12 -0
- package/src/scripts/lint_canonical_terms.ts +604 -0
- package/src/scripts/lint_carrier_integrity.ts +820 -0
- package/src/scripts/lint_code_comments.ts +643 -0
- package/src/scripts/lint_composition_review.ts +619 -0
- package/src/scripts/lint_consolidation_lineage.ts +666 -0
- package/src/scripts/lint_eval_specs.ts +593 -0
- package/src/scripts/lint_hook_manifest.ts +19 -0
- package/src/scripts/lint_host_portability.ts +373 -0
- package/src/scripts/lint_judge_prompt_expectation.ts +27 -1
- package/src/scripts/lint_memory_twin_parity.ts +335 -0
- package/src/scripts/lint_metric_consumers.ts +355 -0
- package/src/scripts/lint_plan_risk_register.ts +39 -19
- package/src/scripts/lint_promotion_paths.ts +779 -0
- package/src/scripts/lint_skill_descriptions.ts +18 -1
- package/src/scripts/lint_skill_frontmatter_safety.ts +58 -0
- package/src/scripts/lint_skill_link_reach.ts +252 -0
- package/src/scripts/lint_skill_trigger_corpus.ts +426 -23
- package/src/scripts/lint_ticket_buildable.ts +17 -1
- package/src/scripts/llm_propose.ts +256 -0
- package/src/scripts/mcp_server/consumer_tool_catalog.json +1 -1
- package/src/scripts/mcp_server/tool_catalog_source.ts +1 -1
- package/src/scripts/measure_delivery_sets.ts +361 -0
- package/src/scripts/measure_docs_dead_links.ts +348 -0
- package/src/scripts/measure_host_capture.ts +461 -0
- package/src/scripts/measure_routing_signal.ts +307 -0
- package/src/scripts/migration_status.ts +3 -3
- package/src/scripts/model_rule_injection.ts +76 -0
- package/src/scripts/orchestration_record.ts +14 -0
- package/src/scripts/preamble_byte_census.ts +139 -10
- package/src/scripts/prepack-check.mjs +4 -1
- package/src/scripts/probe_council_retention.ts +495 -0
- package/src/scripts/probe_turnaround.ts +384 -0
- package/src/scripts/probe_unblocked_ask.ts +279 -0
- package/src/scripts/release.ts +21 -37
- package/src/scripts/release_drill.ts +143 -0
- package/src/scripts/release_env.ts +35 -0
- package/src/scripts/release_publication.ts +84 -0
- package/src/scripts/render_benchmark_md.ts +1 -1
- package/src/scripts/rule_activation_census.ts +70 -9
- package/src/scripts/rule_backlinks.ts +1 -1
- package/src/scripts/run_lifecycle_suite.ts +208 -0
- package/src/scripts/run_skill_evals.ts +40 -0
- package/src/scripts/schemas/delivery-manifest.schema.json +43 -0
- package/src/scripts/schemas/drafting-channels.schema.json +43 -0
- package/src/scripts/schemas/evals.schema.json +24 -1
- package/src/scripts/schemas/rule.schema.json +52 -1
- package/src/scripts/schemas/skill.schema.json +17 -2
- package/src/scripts/skill_overlap.ts +7 -1
- package/src/scripts/skill_tools/run_block_d_eval.ts +8 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +84 -3
- package/src/scripts/skill_tools/suggest_skill_for_task.ts +8 -1
- package/src/scripts/skill_usage_report.ts +2 -1
- package/src/scripts/stubs_due.ts +211 -0
- package/src/scripts/sweep_source_surfaces.ts +678 -0
- package/src/scripts/sync_pr_branch.ts +3 -3
- package/src/scripts/trigger_eval_grandfather.json +202 -222
- package/src/scripts/utilization_report.ts +22 -2
- package/src/server/schemas/settings.ts +5 -0
- package/src/templates/marketing-copy.yml +1 -1
- package/dist/ui/assets/index-Cxgy63kz.js +0 -26
|
@@ -232,8 +232,11 @@ NEVER A SILENTLY DEGRADED ANSWER. NO LLM CLASSIFIER FALLBACK (CUT C3).
|
|
|
232
232
|
**Why rg-first** (council 2026-07-28, 2 rounds): the pre-registered benchmark
|
|
233
233
|
behind the `code-graph-retrieval-null` claim (`docs/CLAIMS.md`) measured
|
|
234
234
|
native-graph recall 0.365 vs grep 0.797 on graph-shaped questions — an
|
|
235
|
-
indexing gap that keeps `code_graph.enabled` false
|
|
236
|
-
|
|
235
|
+
indexing gap that keeps `code_graph.enabled` false BY DEFAULT — not
|
|
236
|
+
permanently: the 2026-08-15 withdrawal retracted that, and the figures predate
|
|
237
|
+
the 2026-08-22 extractor repair. The accelerant clause above is that bound's
|
|
238
|
+
escape hatch; `classifyLookup` reads the flag, so turning it on is the whole
|
|
239
|
+
change.
|
|
237
240
|
|
|
238
241
|
**Escalation, not degradation:** a primitive that returns nothing (index miss,
|
|
239
242
|
pattern too ambiguous, report script absent) — **or an unusable result**
|
|
@@ -157,6 +157,27 @@ When validating a single target, run the **specific** check, not a meta-task tha
|
|
|
157
157
|
|
|
158
158
|
Concrete tool mapping — verify with the narrowest tool that proves the target green: a single `curl` / Playwright spec / browser run for HTTP behavior, the project's test runner with a `--filter` for one test, a debugger / `xdebug` step-through for one frame. Never substitute a meta-pipeline for a tool that pinpoints the failure.
|
|
159
159
|
|
|
160
|
+
### Progress-primary ordering — and why the cap stays
|
|
161
|
+
|
|
162
|
+
Where the objective is **countable** — findings closed, tests passing,
|
|
163
|
+
occurrences remaining — the primary stop signal is **no progress** or a **new
|
|
164
|
+
minimum**, and the N=3 iteration cap is the **backstop**. A counter alone cannot
|
|
165
|
+
tell three attempts that each closed a finding from three that changed nothing.
|
|
166
|
+
|
|
167
|
+
**Do not remove the cap.** A no-progress signal is only as good as the metric
|
|
168
|
+
behind it, and a metric that stops moving because the MEASUREMENT broke looks
|
|
169
|
+
exactly like one that stops moving because the work is done. The cap bounds the
|
|
170
|
+
damage when the primary signal is wrong.
|
|
171
|
+
|
|
172
|
+
The two stops are different outcomes and are reported as different words: the cap
|
|
173
|
+
firing is `exhausted`, a repeating failure signature with budget left is
|
|
174
|
+
`stagnated` — see
|
|
175
|
+
[`terminal-states`](terminal-states.md). Collapsing them invites the wrong
|
|
176
|
+
remedy, because raising a budget helps the first and never the second.
|
|
177
|
+
|
|
178
|
+
Where the objective is NOT countable, the cap is the only signal and the N=3
|
|
179
|
+
budget above applies unchanged.
|
|
180
|
+
|
|
160
181
|
## Adaptive effort & stop (RDP)
|
|
161
182
|
|
|
162
183
|
Scale effort to task difficulty, and stop when marginal evidence drops — coupled
|
|
@@ -39,6 +39,7 @@ v1 forward-compat rule on unknown fields).
|
|
|
39
39
|
|---|---|---|
|
|
40
40
|
| `task_size_estimate` | int | Pre-dispatch estimate of the task's size (the orchestrator's sizing heuristic). Counts only, no body. |
|
|
41
41
|
| `spawn_count` | int | Number of subagents dispatched for this task. `0` → handled in-session. |
|
|
42
|
+
| `empty_cycles` | int \| null | Trigger fires suppressed as duplicates since the last outcome record. Reported as its OWN quantity and never folded into a success rate's numerator or denominator: a duplicate is not an outcome, and it is also not nothing — a rising count is what an idle loop looks like from outside. `null` = not tracked by this producer, which is **not** the same as zero duplicates observed. Deduplication rule in `src/scripts/_lib/empty_cycles.ts`: same key AND inside the window, both conjuncts required. |
|
|
42
43
|
| `tiers` | string[] | Model tiers dispatched to, one entry per spawn class (e.g. `["sonnet","opus"]`). Tier names only, no prompts. |
|
|
43
44
|
| `token_delta` | int | Net token cost of the dispatch versus the in-session baseline. Positive = orchestration cost more; negative = saved tokens. Counts only. |
|
|
44
45
|
| `token_delta_provenance` | enum | `"measured"` when sourced from host-reported `usage` metadata (preferred); `"estimated"` when self-estimated from response length (mark always when host usage is unavailable). |
|
|
@@ -47,6 +47,46 @@ Direction chosen: **narrow the contract to what the validator already accepts**,
|
|
|
47
47
|
not widen the validator. Widening makes every future divergence legal by
|
|
48
48
|
construction, which is how one contract came to have three states.
|
|
49
49
|
|
|
50
|
+
## Why success is gated, and not accepted
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
AN UNVERIFIED SELF-REPORT IS INDISTINGUISHABLE FROM A RESULT.
|
|
54
|
+
A RETURN THAT CLAIMS SUCCESS AND SHOWS NO CHANGE AGAINST ITS OWN DECLARED
|
|
55
|
+
OUTPUT CONTRACT IS NOT EVIDENCE OF SUCCESS. IT IS EVIDENCE OF A CLAIM.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**The failure this prevents.** Every downstream aggregation reads the recorded
|
|
59
|
+
outcome, not the return. `src/scripts/extract_audit_patterns.ts` mines repeated
|
|
60
|
+
patterns from it, and the per-asset effectiveness report is built on the same
|
|
61
|
+
stream. A forged `success` does not stay one line: it becomes signal, and the
|
|
62
|
+
report then recommends keeping an asset that never worked and retiring one that
|
|
63
|
+
did. Nothing downstream can detect it, because at that point the forgery is
|
|
64
|
+
indistinguishable from the thing it imitates — which is the whole reason the
|
|
65
|
+
check has to happen where the record is written rather than where it is read.
|
|
66
|
+
|
|
67
|
+
**Why the gate reads the declared output contract and not the diff.** The
|
|
68
|
+
obvious rule — claimed success plus an empty diff is never a success — is wrong
|
|
69
|
+
here, and wrong in a way that is worse than doing nothing. Analysis, review and
|
|
70
|
+
read-only research dispatches are a large share of this repository's subagent
|
|
71
|
+
traffic, and every one of them legitimately produces no diff. The unconditional
|
|
72
|
+
rule would mark them all as failures and poison the same aggregation in the
|
|
73
|
+
opposite direction. **Zero diff may be valid, so "zero diff = failure" must not
|
|
74
|
+
be global.** The gate therefore fires only where the dispatch itself declared
|
|
75
|
+
that a code change was the expected output.
|
|
76
|
+
|
|
77
|
+
**An unmeasured diff is not an empty diff.** Where the producer did not measure,
|
|
78
|
+
the gate does not fire. Treating "not measured" as zero manufactures the same
|
|
79
|
+
forgery with the opposite sign, and an aggregation cannot tell the two apart any
|
|
80
|
+
better than it can tell a forged success from a real one.
|
|
81
|
+
|
|
82
|
+
Implemented by `envelopeOutcome` in `src/scripts/_lib/orchestration_record.ts`,
|
|
83
|
+
the tree's only cross-domain outcome mapping. Because it is the only one, the
|
|
84
|
+
mapping is **versioned**: lines carry `outcome_semantics`, and an absent field
|
|
85
|
+
means the pre-2026-08-30 unconditional semantics. `audit-log-v1` is append-only,
|
|
86
|
+
so a labelling change cannot be rolled back the way a gate can — a reader
|
|
87
|
+
aggregating across the cutover segments on that field rather than inferring from
|
|
88
|
+
a date.
|
|
89
|
+
|
|
50
90
|
### Per-field divergence, one row per field
|
|
51
91
|
|
|
52
92
|
| Field | spawn-contract (f) | `team_dispatch` model JSON (`:297`) | `subagent_response.ts` validator | `dispatch_r2_reviewer` |
|
|
@@ -104,11 +104,23 @@ doing its job; the orchestrator verifies (or revises) the parent first.
|
|
|
104
104
|
## Rollback guardrails — surfaced, not auto-disabled
|
|
105
105
|
|
|
106
106
|
```
|
|
107
|
-
A
|
|
107
|
+
A RESIDENT PROCESS HERE IS GOVERNED, NEVER AUTOMATIC. NO COHORT-DISABLE.
|
|
108
108
|
BREACHES ARE SURFACED FROM THE AUDIT LOG FOR THE MAINTAINER / USER TO ACT ON.
|
|
109
109
|
THE ONLY AUTOMATIC STOP IS THE PER-TARGET N=3 BUDGET.
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
+
> **Amended 2026-08-27 (ADR-249).** The first line used to read *"A CONFIG
|
|
113
|
+
> PACKAGE RUNS NO DAEMON"*, and that premise no longer holds: a **supervised**
|
|
114
|
+
> resident process is permitted in core under four governance conditions
|
|
115
|
+
> (`docs/contracts/resident-process-governance.md`, class P1). The block's force
|
|
116
|
+
> is unchanged, because the daemon clause was never what it governed — the rule
|
|
117
|
+
> here is that a breach never stops a cohort by itself, and that is if anything
|
|
118
|
+
> more load-bearing now than when nothing could be running. The replacement
|
|
119
|
+
> states the adopted constraint rather than an absence, which is the wording rule
|
|
120
|
+
> the same reversal imposes on every surface: name what the repository holds
|
|
121
|
+
> itself to, never a state of the world.
|
|
122
|
+
|
|
123
|
+
|
|
112
124
|
The guardrail thresholds (`breachedGuardrails()`), read off the
|
|
113
125
|
[`orchestration-telemetry`](orchestration-telemetry.md) audit signals:
|
|
114
126
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Terminal states — what a run REPORTS when it stops
|
|
2
|
+
|
|
3
|
+
> `road-to-skill-ecosystem-runtime-enforcement` Phase 4. Loaded on demand;
|
|
4
|
+
> the obligation surface is [`verify-before-complete`](../../rules/verify-before-complete.md).
|
|
5
|
+
|
|
6
|
+
A run has exactly one terminal state, and reporting the wrong one is not a
|
|
7
|
+
wording problem. **An error or an exhausted budget is never reported as
|
|
8
|
+
success.** The failure this vocabulary exists to stop is the one that reads
|
|
9
|
+
identically to a win: a loop that hit its iteration cap, a gate that could not
|
|
10
|
+
run, an approval that never came — each ending with a summary that says the work
|
|
11
|
+
is done.
|
|
12
|
+
|
|
13
|
+
## The six states
|
|
14
|
+
|
|
15
|
+
| state | what it means | what it is NOT |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `success` | The stated objective is met AND verified by a command run this turn. | Not "the edits landed". Landing is not verifying. |
|
|
18
|
+
| `clean-no-op` | Nothing needed doing, and that was **established**, not assumed. | Not "I found nothing" from a scan that never ran. A dead scope is `blocked`. |
|
|
19
|
+
| `blocked` | An external precondition is missing: a credential, a permission, a service, a decision only the user can make. | Not "hard". A blocker is a thing that is absent, not a thing that is difficult. |
|
|
20
|
+
| `approval-required` | The work is ready and the next action crosses a gate the agent may not cross alone. | Not `blocked`: nothing is missing, and the run produced a deliverable. |
|
|
21
|
+
| `exhausted` | A declared budget ran out — iterations, tokens, spend, wall-clock. | **Never** `success`, whatever partial progress exists. The cap firing IS the outcome. |
|
|
22
|
+
| `stagnated` | The budget has not run out and progress has stopped: the same failure signature is repeating. | Not `exhausted`. Stagnation is detected by a NO-PROGRESS signal, not by a counter. |
|
|
23
|
+
|
|
24
|
+
**Why `exhausted` and `stagnated` are separate**, when both stop a loop: they
|
|
25
|
+
have different remedies and different next actions. `exhausted` says *the work
|
|
26
|
+
may be fine and the budget was too small* — raising it is a legitimate response.
|
|
27
|
+
`stagnated` says *more of the same will not help* — raising the budget is the
|
|
28
|
+
wrong response, and a vocabulary that collapses them invites exactly that.
|
|
29
|
+
|
|
30
|
+
## The mapping onto roadmap glyphs, and the three states glyphs cannot express
|
|
31
|
+
|
|
32
|
+
Roadmap checkboxes carry four glyphs. They describe a **step's disposition**, not
|
|
33
|
+
a **run's outcome**, and the gap is not an oversight — it is what makes a
|
|
34
|
+
budget-exhausted stop indistinguishable from a completed one in a dashboard.
|
|
35
|
+
|
|
36
|
+
| glyph | meaning | nearest terminal state |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| `[x]` | done | `success` — and only when a verify clause was met |
|
|
39
|
+
| `[ ]` | open | *(no state — the step has not run)* |
|
|
40
|
+
| `[~]` | deferred | `blocked` or `approval-required`, undistinguished |
|
|
41
|
+
| `[-]` | cancelled | *(a decision, not a run outcome)* |
|
|
42
|
+
|
|
43
|
+
**Three states have no glyph, and they are exactly the ones a validation budget
|
|
44
|
+
and a hard-blocker class produce:**
|
|
45
|
+
|
|
46
|
+
1. **`exhausted`** — the run stopped at its cap with the step still open. The
|
|
47
|
+
glyph stays `[ ]`, which is identical to *never attempted*. A reader cannot
|
|
48
|
+
tell three failed attempts from zero.
|
|
49
|
+
2. **`stagnated`** — same `[ ]`, and the distinction that matters (retrying is
|
|
50
|
+
pointless) is invisible.
|
|
51
|
+
3. **`approval-required`** — collapses into `[~]` alongside `blocked`, so a
|
|
52
|
+
roadmap cannot show that the work is FINISHED and waiting on a human, versus
|
|
53
|
+
not startable at all.
|
|
54
|
+
|
|
55
|
+
**This is recorded rather than fixed.** Adding glyphs would change a format that
|
|
56
|
+
`update_roadmap_progress`, `check_roadmap_trackable`, `lint_empty_roadmaps` and
|
|
57
|
+
every archived roadmap already parse — a migration, not a step. What the
|
|
58
|
+
vocabulary buys today is that a run's CLOSING REPORT can say the word the glyph
|
|
59
|
+
cannot.
|
|
60
|
+
|
|
61
|
+
## Progress-primary ordering
|
|
62
|
+
|
|
63
|
+
When the objective is **countable** — findings closed, tests passing, occurrences
|
|
64
|
+
remaining — the primary stop signal is **no progress** or a **new minimum**, and
|
|
65
|
+
the iteration cap is the **backstop**.
|
|
66
|
+
|
|
67
|
+
**Do not remove the cap.** A no-progress signal is only as good as the metric
|
|
68
|
+
behind it, and a metric that stops moving because the measurement broke looks
|
|
69
|
+
exactly like a metric that stops moving because the work is done. The cap is what
|
|
70
|
+
bounds the damage when the primary signal is wrong.
|
|
71
|
+
|
|
72
|
+
Where the objective is not countable, the cap is the only signal and the N=3
|
|
73
|
+
validation budget in [`autonomous-execution`](../../rules/autonomous-execution.md)
|
|
74
|
+
applies unchanged.
|
|
75
|
+
|
|
76
|
+
## Reporting contract
|
|
77
|
+
|
|
78
|
+
A closing report names the state **by one of the six words above**, and where the
|
|
79
|
+
state is not `success` it names what would change it:
|
|
80
|
+
|
|
81
|
+
- `exhausted` — the budget that ran out, its value, and what was achieved inside it.
|
|
82
|
+
- `stagnated` — the repeating failure signature, and the attempts it survived.
|
|
83
|
+
- `blocked` — the missing thing, by name.
|
|
84
|
+
- `approval-required` — the exact action awaiting approval.
|
|
85
|
+
- `clean-no-op` — what was scanned, so "nothing to do" is distinguishable from
|
|
86
|
+
"nothing was read".
|
|
87
|
+
|
|
88
|
+
## See also
|
|
89
|
+
|
|
90
|
+
- [`verify-before-complete`](../../rules/verify-before-complete.md) — no
|
|
91
|
+
completion claim without fresh evidence; this names what to claim when the
|
|
92
|
+
claim is not completion.
|
|
93
|
+
- [`autonomous-execution`](../../rules/autonomous-execution.md) — the N=3
|
|
94
|
+
validation budget whose firing is `exhausted`.
|
|
95
|
+
- [`autonomy-mechanics`](autonomy-mechanics.md) — the budget's mechanics and the
|
|
96
|
+
adaptive-effort ordering this page's progress-primary section states.
|
|
@@ -44,7 +44,7 @@ Fires once per creation task, not once per edit.
|
|
|
44
44
|
|
|
45
45
|
## The three phases
|
|
46
46
|
|
|
47
|
-
**A — Understand** (≤ 5 clarifying questions: problem, trigger surface, should-trigger examples, near-misses, artifact type) · **B — Research** (mandatory four-surface overlap scan; open + skim the 3 nearest matches; extend-vs-create decision) · **C — Draft** (2-3 description variants first, then the body; live size enforcement). Per-phase procedure + the roadmap batch-mode carve-out: the mechanics guideline below.
|
|
47
|
+
**A — Understand** (≤ 5 clarifying questions: problem, trigger surface, should-trigger examples, near-misses, artifact type) · **B — Research** (mandatory four-surface overlap scan; open + skim the 3 nearest matches; extend-vs-create decision, written into the artifact as `composition_review:`) · **C — Draft** (2-3 description variants first, then the body; live size enforcement). Per-phase procedure + the roadmap batch-mode carve-out: the mechanics guideline below.
|
|
48
48
|
|
|
49
49
|
## Golden rules
|
|
50
50
|
|
|
@@ -25,6 +25,10 @@ collision_ok:
|
|
|
25
25
|
"tenant": "cross-tenant isolation is this rule's core subject"
|
|
26
26
|
# obligation: line 55
|
|
27
27
|
obligation_frequency: "per-edit"
|
|
28
|
+
evidence:
|
|
29
|
+
source_type: external-standard
|
|
30
|
+
verified_on: 2026-08-30
|
|
31
|
+
normative_level: recommended
|
|
28
32
|
---
|
|
29
33
|
|
|
30
34
|
# Broken Access Control
|
|
@@ -22,6 +22,9 @@ collision_ok:
|
|
|
22
22
|
"implement": "fresh implementation is where over-commenting lands"
|
|
23
23
|
# obligation: line 5
|
|
24
24
|
obligation_frequency: "per-edit"
|
|
25
|
+
enforced_by:
|
|
26
|
+
- "validator:src/scripts/lint_code_comments.ts"
|
|
27
|
+
- "hook:comment-discipline"
|
|
25
28
|
---
|
|
26
29
|
|
|
27
30
|
# Code Comment Discipline
|
|
@@ -37,6 +40,9 @@ NO DOCBLOCK THAT ONLY MIRRORS THE NATIVE SIGNATURE.
|
|
|
37
40
|
DOCBLOCKS EARN THEIR PLACE ONLY WITH MACHINE-RELEVANT PRECISION
|
|
38
41
|
(GENERICS, ARRAY SHAPES, NON-TRIVIAL UNIONS) OR GENUINE WHY-CONTEXT.
|
|
39
42
|
WHEN IN DOUBT: NO COMMENT. SHORTER IS BETTER. NONE IS OFTEN BEST.
|
|
43
|
+
A COMMENT NAMING WHERE THE CODE CAME FROM — A ROADMAP PATH, A PHASE AND STEP,
|
|
44
|
+
A PROTOTYPE — IS EVIDENCE IN THE WRONG PLACE. PROVENANCE IS NOT A WHY.
|
|
45
|
+
A ROADMAP CANNOT LICENSE A COMMENT THIS RULE FORBIDS.
|
|
40
46
|
```
|
|
41
47
|
|
|
42
48
|
## What a comment is FOR
|
|
@@ -25,6 +25,10 @@ enforced_by:
|
|
|
25
25
|
- "instruction-only: close-the-source-and-re-derive is a pre-write reasoning step only the model observes; CI checks the ledger, never the derivation"
|
|
26
26
|
# obligation: line 40
|
|
27
27
|
obligation_frequency: "per-edit"
|
|
28
|
+
evidence:
|
|
29
|
+
source_type: external-research
|
|
30
|
+
verified_on: 2026-08-30
|
|
31
|
+
normative_level: informative
|
|
28
32
|
---
|
|
29
33
|
|
|
30
34
|
# Code Provenance
|
|
@@ -98,7 +98,7 @@ MANDATE, NEVER A **PIXEL** MANDATE — WHATEVER `design.fidelity_mode` SAYS.
|
|
|
98
98
|
REPRODUCING A WIREFRAME'S GREYS 1:1 HONOURS THE WRONG HALF OF THE ARTEFACT.
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
`strict` means *do not redesign*; never *reproduce a wireframe's placeholder
|
|
101
|
+
`strict` means *do not redesign*; never *reproduce a wireframe's placeholder grays*, which
|
|
102
102
|
are **non-decisions** ([`wireframe`](../skills/wireframe/SKILL.md) § Gotchas).
|
|
103
103
|
**The discriminator reads the ARTEFACT, never the prose.** A finished comp whose prose
|
|
104
104
|
mentions a wireframe it replaces routes **strictly** — a reference to a previous artefact,
|
|
@@ -44,6 +44,10 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
|
|
|
44
44
|
packs: [meta]
|
|
45
45
|
# obligation: line 52
|
|
46
46
|
obligation_frequency: "per-task"
|
|
47
|
+
evidence:
|
|
48
|
+
source_type: external-standard
|
|
49
|
+
verified_on: 2026-08-30
|
|
50
|
+
normative_level: mandatory
|
|
47
51
|
---
|
|
48
52
|
|
|
49
53
|
# Domain Safety — PII Redaction
|
|
@@ -29,6 +29,10 @@ workspaces: [agent-config-maintainer, construction, engineering, finance, founde
|
|
|
29
29
|
packs: [meta]
|
|
30
30
|
# obligation: line 47
|
|
31
31
|
obligation_frequency: "per-turn"
|
|
32
|
+
evidence:
|
|
33
|
+
source_type: external-standard
|
|
34
|
+
verified_on: 2026-08-30
|
|
35
|
+
normative_level: mandatory
|
|
32
36
|
---
|
|
33
37
|
|
|
34
38
|
# Domain Safety — Data Retention
|
|
@@ -24,13 +24,12 @@ obligation_frequency: "per-turn"
|
|
|
24
24
|
# External Code-Graph Interop
|
|
25
25
|
|
|
26
26
|
Some repos commit a pre-built code-intelligence index — a `graph.json`-shaped
|
|
27
|
-
artifact or a SCIP index (`index.scip`, `*.scip`).
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
where it wins** (ADR-124): query a consumer-shipped index when it
|
|
31
|
-
and fresh; where none is shipped
|
|
32
|
-
|
|
33
|
-
way — query first, grep as fallback, and name which source answered.
|
|
27
|
+
artifact or a SCIP index (`index.scip`, `*.scip`). One that exists is already
|
|
28
|
+
built and structured, so it is the cheap first question for "who calls X",
|
|
29
|
+
"where is Y used", "what does this import". This suite is an **orchestrator
|
|
30
|
+
first, owner where it wins** (ADR-124): query a consumer-shipped index when it
|
|
31
|
+
is present and fresh; where none is shipped, the native engine (default-off,
|
|
32
|
+
benchmark-gated) covers the gap.
|
|
34
33
|
|
|
35
34
|
## The rule
|
|
36
35
|
|
|
@@ -59,6 +58,11 @@ AND the repo contains a detectable index:
|
|
|
59
58
|
3. **Fall back to `grep`/read** only for what the index does not cover, and say
|
|
60
59
|
so ("the index has no entry for X, so I grepped").
|
|
61
60
|
|
|
61
|
+
Query-first is an **ordering** heuristic, never a claim the index answers better:
|
|
62
|
+
measured 2026-08-28, zero of four graph-shaped classes beat `grep`, so no class
|
|
63
|
+
is graph-first. Routing changes; permission does not. Figures:
|
|
64
|
+
[`code-intelligence`](../skills/code-intelligence/SKILL.md) § Measured.
|
|
65
|
+
|
|
62
66
|
## When NOT to fire
|
|
63
67
|
|
|
64
68
|
- No such index in the repo — normal `grep`/read is the right first move.
|
|
@@ -67,11 +71,9 @@ AND the repo contains a detectable index:
|
|
|
67
71
|
## See also
|
|
68
72
|
|
|
69
73
|
- [`code-intelligence`](../skills/code-intelligence/SKILL.md) — the executable
|
|
70
|
-
routing skill
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
session; on instruction-file hosts this rule is the surface. Which of the two
|
|
74
|
-
you are on is `agent-config hooks:status`, not a guess from the host name.
|
|
74
|
+
routing skill (`agent-config code-graph detect|query|affected|path`), the
|
|
75
|
+
measured per-class figures, and the hook-vs-instruction-file surface question
|
|
76
|
+
(`agent-config hooks:status`, never a guess from the host name).
|
|
75
77
|
- [`discovery_graph`](../scripts/discovery_graph.ts) — this suite's OWN artefact
|
|
76
78
|
relation-graph (`affected`/`explain`); the external code-graph is the
|
|
77
79
|
*source-code* analogue this rule defers to for code questions.
|
|
@@ -64,16 +64,14 @@ Trigger-set above activates this routing on demand, independent of the disciplin
|
|
|
64
64
|
**Challenge to improve, never to refuse.**
|
|
65
65
|
|
|
66
66
|
The agent is a thought partner, not a gatekeeper. After presenting concerns:
|
|
67
|
-
- User picks an option → execute immediately
|
|
68
|
-
- User says "just do it" → execute immediately
|
|
67
|
+
- User picks an option, or says "just do it" → execute immediately
|
|
69
68
|
- Never argue twice about the same point
|
|
70
69
|
- Never block work — delay is only justified if it prevents a clear mistake
|
|
71
70
|
|
|
72
71
|
## Creating new agent artifacts
|
|
73
72
|
|
|
74
|
-
When the request is to create or significantly rewrite a skill, rule, command,
|
|
75
|
-
|
|
76
|
-
[`artifact-drafting-protocol`](artifact-drafting-protocol.md)'s Phase B
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
before creating a new file.
|
|
73
|
+
When the request is to create or significantly rewrite a skill, rule, command, or
|
|
74
|
+
guideline, the "fit the existing architecture" check is handled by
|
|
75
|
+
[`artifact-drafting-protocol`](artifact-drafting-protocol.md)'s Phase B (Research).
|
|
76
|
+
Follow that protocol instead of improvising a one-shot check — it scans `src/` for
|
|
77
|
+
overlap and reports candidates to extend before creating a new file.
|
|
@@ -26,7 +26,7 @@ obligation_frequency: "none"
|
|
|
26
26
|
|
|
27
27
|
# Laravel Routing
|
|
28
28
|
|
|
29
|
-
**Iron Law.** Laravel-flavoured PHP
|
|
29
|
+
**Iron Law.** Laravel-flavoured PHP → `laravel`. Discriminator: entry point and router, not the dependency list — `illuminate/*` with no skeleton marker is the third verdict.
|
|
30
30
|
|
|
31
31
|
Body migrated to `skill:laravel`. Disambiguates the laravel ↔ symfony-workflow cluster head per [`adr-architectural-consensus-mechanism`](../docs/contracts/adr-architectural-consensus-mechanism.md).
|
|
32
32
|
Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
|
|
@@ -22,6 +22,10 @@ collision_ok:
|
|
|
22
22
|
"src/agent-src/commands/": "command authoring reviews the three trifecta legs"
|
|
23
23
|
# obligation: line 60
|
|
24
24
|
obligation_frequency: "per-edit"
|
|
25
|
+
evidence:
|
|
26
|
+
source_type: external-standard
|
|
27
|
+
verified_on: 2026-08-30
|
|
28
|
+
normative_level: recommended
|
|
25
29
|
---
|
|
26
30
|
|
|
27
31
|
# Lethal-Trifecta Guard
|
|
@@ -91,43 +91,21 @@ substitute for not writing the attribution in the first place.
|
|
|
91
91
|
|
|
92
92
|
## Why this rule is not path-scoped
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
rules
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
migrated POINTER stubs held at their pointer's size by
|
|
106
|
-
`check_rule_stub_ceiling` — prose added there is prose in the wrong place by that
|
|
107
|
-
gate's own contract, which is what caught the first attempt to duplicate it.
|
|
108
|
-
|
|
109
|
-
AI council 2026-08-20, 2/2 convergent on this option over three alternatives, with
|
|
110
|
-
two independent decisive arguments. First: the obligation governs an **authoring
|
|
111
|
-
decision**, which happens before any file exists for a path trigger to match — so
|
|
112
|
-
path-scoping fails at greenfield creation whether or not a compaction ever occurs.
|
|
113
|
-
Second: the measured cost is small against what the partition returns. Keeping an
|
|
114
|
-
unscoped global copy was rejected because it re-creates the duplication the
|
|
115
|
-
partition exists to remove; splitting the four by "has a CI gate" was rejected by
|
|
116
|
-
both seats as the wrong axis — a validator observes an outcome, it does not hold an
|
|
117
|
-
obligation during the session, and `rule-type-governance` has no gate at all.
|
|
118
|
-
|
|
119
|
-
**Cost, measured and corrected.** An earlier revision of this note claimed 1,754
|
|
120
|
-
tokens (1.8 % of the partition's 96,584-token saving). That figure was a
|
|
121
|
-
`chars / 4` proxy over the projected files and **understated the real cost by about
|
|
122
|
-
half**: `check_rule_activation_census`, which counts with the exact BPE tokenizer,
|
|
123
|
-
measures the unconditional corpus growing **108,130 → 111,642, i.e. +3,512 tokens
|
|
124
|
-
(3.6 %)** — and that number includes this rationale, which is why it lives in one
|
|
125
|
-
place instead of four. The verdict does not depend on the figure: one seat argued
|
|
126
|
-
the token axis was the wrong one entirely, the other that cost is a legitimate axis
|
|
127
|
-
which simply loses this particular comparison. Both readings survive 3.6 %.
|
|
94
|
+
Delivered unconditionally by the PROJECT layer, with no `paths:` triggers: the
|
|
95
|
+
obligation governs an **authoring decision** taken before any file exists for a
|
|
96
|
+
path trigger to match, and a path-scoped rule is not re-injected after
|
|
97
|
+
`/compact`, so scoping it would make the obligation vanish mid-session. The
|
|
98
|
+
measurement, the AI-council record of 2026-08-20, the three rejected
|
|
99
|
+
alternatives and the +3,512-token cost this shared note carries for four rules
|
|
100
|
+
live in
|
|
101
|
+
[`source-confidentiality-mechanics`](../docs/guidelines/agent-infra/source-confidentiality-mechanics.md)
|
|
102
|
+
§ Why these four rules are unconditional — moved there 2026-08-29 because a
|
|
103
|
+
rationale paid on every subagent spawn is the most expensive place to keep an
|
|
104
|
+
argument nobody re-reads.
|
|
128
105
|
|
|
129
106
|
## See also
|
|
130
107
|
|
|
108
|
+
- [`source-confidentiality-mechanics`](../docs/guidelines/agent-infra/source-confidentiality-mechanics.md) — the claim/residual honesty clause, the two-class split by path, and the gate's shape checks and tiering.
|
|
131
109
|
- [`source-of-truth`](source-of-truth.md) — edit `src/`, never the projections.
|
|
132
110
|
- [`augment-edit-discipline`](augment-edit-discipline.md) — portability + cross-ref sync.
|
|
133
111
|
- `src/scripts/_lib/link_crypto.ts` — encrypted link storage.
|
|
@@ -22,7 +22,7 @@ obligation_frequency: "none"
|
|
|
22
22
|
|
|
23
23
|
# Symfony Routing
|
|
24
24
|
|
|
25
|
-
**Iron Law.** Symfony-flavoured PHP
|
|
25
|
+
**Iron Law.** Symfony-flavoured PHP → `symfony-workflow`. Discriminator: entry point and router, not the dependency list — `symfony/*` with no skeleton marker is the third verdict.
|
|
26
26
|
|
|
27
27
|
Body migrated to `skill:symfony-workflow`. Disambiguates the laravel ↔ symfony-workflow cluster head per [`adr-architectural-consensus-mechanism`](../docs/contracts/adr-architectural-consensus-mechanism.md).
|
|
28
28
|
Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
|
|
@@ -28,6 +28,20 @@ NEVER CALL THE SAME TOOL >2 TIMES IN A ROW WITH SIMILAR PARAMETERS.
|
|
|
28
28
|
IF YOU CATCH YOURSELF REPEATING → STOP, RETHINK, ASK.
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
+
## Independent calls go in ONE block
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
CALLS WITH NO DEPENDENCY BETWEEN THEM GO IN THE SAME BLOCK.
|
|
35
|
+
A CALL THAT DOES NOT READ THE PREVIOUS RESULT IS NOT A SECOND TURN.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The ceiling above forbids repetition; this forbids splitting work that had no
|
|
39
|
+
reason to be split — measured mean batch size **1.01**, i.e. fully serial. The
|
|
40
|
+
discriminator is the dependency, never the count. NOT "write shorter commands":
|
|
41
|
+
the long commands are already the batching. `instruction-only` — nothing can
|
|
42
|
+
observe a call that was not batched. Evidence + the absent-cause finding:
|
|
43
|
+
[`token-efficiency-mechanics`](../contexts/communication/rules-auto/token-efficiency-mechanics.md).
|
|
44
|
+
|
|
31
45
|
## Enumerated file sets are ONE operation, not N repetitions
|
|
32
46
|
|
|
33
47
|
The same-tool ceiling counts *repetition without new information* — the loop where the agent re-runs a tool because it did not learn from the last result. Reading N **declared, enumerated** files is the opposite: each read returns different content and the set was known before the first call. Counting it as N repetitions puts this rule in direct conflict with [`downstream-changes`](downstream-changes.md) ("find **ALL** callers, tests, imports") and with [`source-discovery-gate`](source-discovery-gate.md), which cannot be satisfied in two calls.
|
|
@@ -12,6 +12,10 @@ enforced_by:
|
|
|
12
12
|
- "validator:src/scripts/lint_agent_security.ts"
|
|
13
13
|
# obligation: line 19
|
|
14
14
|
obligation_frequency: "per-edit"
|
|
15
|
+
evidence:
|
|
16
|
+
source_type: external-standard
|
|
17
|
+
verified_on: 2026-08-30
|
|
18
|
+
normative_level: recommended
|
|
15
19
|
---
|
|
16
20
|
|
|
17
21
|
# Tool Safety
|
|
@@ -21,6 +21,10 @@ enforced_by:
|
|
|
21
21
|
- "instruction-only: no deterministic gate inspects fetched content for injected instructions; injection_scan_hook is warn-only and default-OFF"
|
|
22
22
|
# obligation: line 38
|
|
23
23
|
obligation_frequency: "per-event"
|
|
24
|
+
evidence:
|
|
25
|
+
source_type: external-standard
|
|
26
|
+
verified_on: 2026-08-30
|
|
27
|
+
normative_level: recommended
|
|
24
28
|
---
|
|
25
29
|
|
|
26
30
|
<!-- security-lint: allow instruction-smuggling "defense rule: quotes role-takeover phrases (ignore previous instructions, you are now, <IMPORTANT>) to teach refusal" -->
|