@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
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Reuse-verdict mechanics — the verdict set, the cheap question, and the routing that was refused
|
|
2
|
+
|
|
3
|
+
> The detail behind § 8b of
|
|
4
|
+
> [`agent-interaction-and-decision-quality`](agent-interaction-and-decision-quality.md),
|
|
5
|
+
> which [`improve-before-implement`](../../../src/rules/improve-before-implement.md)
|
|
6
|
+
> routes to. It lives here rather than inline because that guideline sits at the
|
|
7
|
+
> 16,000-char depth ceiling `check_depth_budget` holds as a growth ratchet, and
|
|
8
|
+
> the gate states plainly that raising its baseline is a defect rather than a fix.
|
|
9
|
+
|
|
10
|
+
## 8b-verdict. The verdict set, and what `new` owes
|
|
11
|
+
|
|
12
|
+
The ladder's answer is a **named verdict, never a yes/no**:
|
|
13
|
+
|
|
14
|
+
| verdict | meaning |
|
|
15
|
+
|---|---|
|
|
16
|
+
| `reuse` | the existing thing carries the requirement as-is |
|
|
17
|
+
| `extract` | it carries it once a shared part is pulled out |
|
|
18
|
+
| `refactor` | it carries it once reshaped, same responsibility |
|
|
19
|
+
| `extend` | it carries it with an added, non-distorting case |
|
|
20
|
+
| `migrate` | it should carry it, and the move is the work |
|
|
21
|
+
| `new` | nothing carries it, and the search that establishes that is the evidence |
|
|
22
|
+
|
|
23
|
+
**`new` owes negative evidence** — the closest existing candidate **by name and
|
|
24
|
+
path**, and why it does not carry the requirement. *"Nothing similar exists"*
|
|
25
|
+
naming no candidate is an unrun search, not an answer, and it is the shape this
|
|
26
|
+
verdict set exists to make visible.
|
|
27
|
+
|
|
28
|
+
Two clauses hold the set honest, and both cut against reading it as a ranking:
|
|
29
|
+
|
|
30
|
+
- **The order is a thinking preference, not a ranking.** A `new` after a real
|
|
31
|
+
search beats an `extend` that bends a helper out of shape. Preferring reuse is
|
|
32
|
+
not preferring reuse *at any cost*.
|
|
33
|
+
- **Textual similarity alone is never grounds for an abstraction.** Two blocks
|
|
34
|
+
that read alike and change for different reasons are two blocks — the
|
|
35
|
+
per-class bars are in [`abstraction-thresholds`](../abstraction-thresholds.md).
|
|
36
|
+
|
|
37
|
+
**Reach the verdict with the engine, not a fresh grep protocol.** `agent-config
|
|
38
|
+
code-graph query` and `code-graph affected`;
|
|
39
|
+
[`external-code-graph-interop`](../../../src/rules/external-code-graph-interop.md)
|
|
40
|
+
already mandates query-before-grep and names grep the fallback, so a second
|
|
41
|
+
search specification here would contradict it rather than add to it.
|
|
42
|
+
|
|
43
|
+
## 8b-cheap. Why the exclusions buy the checks and never the question
|
|
44
|
+
|
|
45
|
+
The rule excludes bug fixes, config changes, user-fenced tasks and trivial
|
|
46
|
+
changes from the **three heavy checks**. The one cheap question — *does this
|
|
47
|
+
already exist in the tree* — fires on all four rows anyway.
|
|
48
|
+
|
|
49
|
+
The reason is empirical rather than tidy: **bug fixes and renames re-add an
|
|
50
|
+
existing helper more often than features do**, because the author is inside one
|
|
51
|
+
file and reaching for something small. Switching the reuse rung off there
|
|
52
|
+
switches it off where it pays most.
|
|
53
|
+
|
|
54
|
+
Cheap means cheap, on the [`ui-audit-gate`](../../../src/rules/ui-audit-gate.md)
|
|
55
|
+
precedent: one `code-graph query`, one named verdict, no interview.
|
|
56
|
+
|
|
57
|
+
**The skip is decidable from the diff alone** — ≤ 1 file, ≤ 5 changed lines, no
|
|
58
|
+
new symbol, no new dependency. A typo satisfies all four with no state to
|
|
59
|
+
consult; an added symbol never does.
|
|
60
|
+
|
|
61
|
+
## 8b-routing. Why this is not routed through the TDD cluster
|
|
62
|
+
|
|
63
|
+
Two source proposals put the existence question in `/tdd`'s design mode, as the
|
|
64
|
+
one point every behavior passes through. **It cannot live there, and the reason
|
|
65
|
+
is delivery rather than design:**
|
|
66
|
+
`src/domains/engineering-base/tdd/command.md` carries `visibility: internal` and
|
|
67
|
+
`disable-model-invocation: true`, so **a consumer cannot reach it.** The routing
|
|
68
|
+
is undeliverable, not merely unwanted.
|
|
69
|
+
|
|
70
|
+
Recorded here so the next author does not re-derive the proposal and re-propose
|
|
71
|
+
it.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Review Routing Data Format
|
|
2
2
|
|
|
3
3
|
Schema and conventions for the two project-local YAML files that feed the
|
|
4
|
-
[`reviewer-awareness`](
|
|
5
|
-
and the [`review-routing`](
|
|
4
|
+
[`reviewer-awareness`](../../../src/rules/reviewer-awareness.md) rule
|
|
5
|
+
and the [`review-routing`](../../../src/skills/review-routing/SKILL.md) skill.
|
|
6
6
|
|
|
7
7
|
Both files are **optional** and live in the consumer repository — never
|
|
8
8
|
in package-shipped artifacts. Absence is handled gracefully: routing
|
|
@@ -69,7 +69,7 @@ Field semantics:
|
|
|
69
69
|
`pr-risk-config.yml`. First match wins; later entries are ignored for
|
|
70
70
|
that path.
|
|
71
71
|
- **roles** (required, list) — role identifiers from the common
|
|
72
|
-
vocabulary in [`reviewer-awareness`](
|
|
72
|
+
vocabulary in [`reviewer-awareness`](../../../src/rules/reviewer-awareness.md)
|
|
73
73
|
or project-custom roles.
|
|
74
74
|
- **focus** (optional, string) — one-line description of what reviewers
|
|
75
75
|
should look at. Surfaced in the PR comment verbatim.
|
|
@@ -124,8 +124,8 @@ Field semantics:
|
|
|
124
124
|
diff when **any** changed file matches any glob.
|
|
125
125
|
- **required_test** (required, string) — the specific assertion or
|
|
126
126
|
regression test the pattern demands. Feeds
|
|
127
|
-
[`verify-before-complete`](
|
|
128
|
-
[`judge-test-coverage`](
|
|
127
|
+
[`verify-before-complete`](../../../src/rules/verify-before-complete.md) and
|
|
128
|
+
[`judge-test-coverage`](../../../src/skills/judge-test-coverage/SKILL.md).
|
|
129
129
|
- **references** (optional, list) — links to prior PRs, incidents, or
|
|
130
130
|
postmortems. Agents quote these verbatim when warning about a match.
|
|
131
131
|
|
|
@@ -139,5 +139,5 @@ Field semantics:
|
|
|
139
139
|
|
|
140
140
|
## See also
|
|
141
141
|
|
|
142
|
-
- [`reviewer-awareness`](
|
|
143
|
-
- [`review-routing`](
|
|
142
|
+
- [`reviewer-awareness`](../../../src/rules/reviewer-awareness.md)
|
|
143
|
+
- [`review-routing`](../../../src/skills/review-routing/SKILL.md)
|
|
@@ -10,7 +10,7 @@ _Origin: migrated from `.agent-src.uncondensed/rules/roadmap-progress-sync.md` p
|
|
|
10
10
|
# Roadmap Progress Sync
|
|
11
11
|
|
|
12
12
|
> **Enforced by (defence in depth):**
|
|
13
|
-
> 1. [`scripts/roadmap_progress_hook.ts`](
|
|
13
|
+
> 1. [`scripts/roadmap_progress_hook.ts`](../../../src/scripts/roadmap_progress_hook.ts)
|
|
14
14
|
> on Augment + Claude Code (`PostToolUse`) — auto-regen on write.
|
|
15
15
|
> 2. `.git/hooks/pre-commit` (installed by `scripts/install-hooks.sh`) —
|
|
16
16
|
> blocks any commit whose staged set touches `agents/roadmaps/` or
|
|
@@ -147,7 +147,7 @@ dashboard, commit if commit policy allows.
|
|
|
147
147
|
A reply that lands a verified step without flipping its checkbox is a rule violation.
|
|
148
148
|
|
|
149
149
|
**Deterministic flip-guard.** The autonomous loop carries a per-step
|
|
150
|
-
guard at [`roadmap-process-loop § 5b`](
|
|
150
|
+
guard at [`roadmap-process-loop § 5b`](../../../src/agent-src/contexts/execution/roadmap-process-loop.md#5b-flip-guard--deterministic):
|
|
151
151
|
after the atomic flip, the loop runs
|
|
152
152
|
`git diff --name-only -- agents/roadmaps/<file>.md` and halts loudly
|
|
153
153
|
when the diff is empty. The `command:` triggers on
|
|
@@ -164,11 +164,13 @@ the step lands; that's a normal `[ ] → [x]` transition.
|
|
|
164
164
|
## Mechanics — triggers, regen command, self-check, failures
|
|
165
165
|
|
|
166
166
|
The triggers table, the regen command (`./agent-config roadmap:progress`),
|
|
167
|
-
the
|
|
168
|
-
|
|
169
|
-
[`
|
|
170
|
-
|
|
171
|
-
|
|
167
|
+
the pre-send self-check, the failure-mode catalog and the `Do NOT` list are
|
|
168
|
+
**in this file**; the rule
|
|
169
|
+
[`roadmap-progress-sync`](../../../src/rules/roadmap-progress-sync.md) is the
|
|
170
|
+
obligation surface.
|
|
171
|
+
|
|
172
|
+
> **Corrected 2026-08-26.** This pointed at a `rules-auto` mechanics file that
|
|
173
|
+
> exists nowhere — a split that never happened, while the content was here.
|
|
172
174
|
|
|
173
175
|
## Copilot fallback
|
|
174
176
|
|
|
@@ -218,6 +220,10 @@ Keep aligned with the dashboard counter in `scripts/update_roadmap_progress.ts`
|
|
|
218
220
|
|
|
219
221
|
`[~]` is **not** an "in-progress" indicator. Mid-reply work-in-flight has no checkbox change until the step lands; that's a normal `[ ] → [x]` transition.
|
|
220
222
|
|
|
223
|
+
#### `guarded-baseline` — a sub-state of `[ ]`, never a fifth glyph
|
|
224
|
+
|
|
225
|
+
See [`guarded-baseline`](guarded-baseline.md).
|
|
226
|
+
|
|
221
227
|
**Dashboard regen cadence — opt-in batching.** The checkbox flip is non-batchable. The **subprocess regen** (`./agent-config roadmap:progress`) is batchable per `roadmap.dashboard_regen_cadence` in `.agent-settings.yml` (`every_5_steps` default · `per_step` · `phase_boundary`). Run end, phase boundary, and any file-shape touch (rename / phase add / archive — Iron Law 1) always force an immediate regen regardless of cadence.
|
|
222
228
|
|
|
223
229
|
**Blockers follow the same cadence as checkboxes.** Clearing a `## Blockers` entry (per `templates/roadmaps.md` rule 20) flips its `Status: resolved` and regenerates the dashboard in the same reply — Iron Law 1's "same response" obligation applies to blocker resolution exactly as it applies to a checkbox flip.
|
|
@@ -77,7 +77,7 @@ Referenced by `road-to-role-modes.md` Phase 1. Each contract is a
|
|
|
77
77
|
mode exits, the agent MUST either emit an intake signal via
|
|
78
78
|
[`memory-access`](memory-access.md) (`scripts/memory_signal.ts`
|
|
79
79
|
append — one line, fire-and-forget) or draft a curated entry with
|
|
80
|
-
[`/memory-add incident-learnings`](
|
|
80
|
+
[`/memory-add incident-learnings`](../../../src/domains/meta/memory/add/command.md).
|
|
81
81
|
Pattern + consequence + guardrail, redacted. Skipping this field
|
|
82
82
|
means the incident did not produce a learning — log the absence,
|
|
83
83
|
do not pretend verification happened.
|
|
@@ -150,7 +150,7 @@ output contract.
|
|
|
150
150
|
|
|
151
151
|
This table is **advisory**, not enforcing. A skill may cite any
|
|
152
152
|
persona inside any mode; the mapping below is just the most common
|
|
153
|
-
fit. See [`../../personas/README.md`](
|
|
153
|
+
fit. See [`../../personas/README.md`](../../../src/agent-src/personas/README.md) for
|
|
154
154
|
the persona catalog and schema.
|
|
155
155
|
|
|
156
156
|
| Mode | Typical persona companions | Why |
|
|
@@ -62,11 +62,11 @@ both the number and the spelled-out slash command.
|
|
|
62
62
|
## Interactions
|
|
63
63
|
|
|
64
64
|
- [`role-contracts`](role-contracts.md) — the contracts this router targets.
|
|
65
|
-
- [`role-mode-adherence`](
|
|
65
|
+
- [`role-mode-adherence`](../../../src/rules/role-mode-adherence.md) — enforces
|
|
66
66
|
the contract once a mode is active.
|
|
67
|
-
- [`ask-when-uncertain`](
|
|
67
|
+
- [`ask-when-uncertain`](../../../src/rules/ask-when-uncertain.md) — the
|
|
68
68
|
fallback when no signal matches.
|
|
69
|
-
- [`/mode`](
|
|
69
|
+
- [`/mode`](../../../src/domains/meta/mode/command.md) — user-facing override.
|
|
70
70
|
|
|
71
71
|
## Signal table maintenance
|
|
72
72
|
|
|
@@ -48,7 +48,7 @@ The `description` field IS the trigger. It must describe **when** the rule appli
|
|
|
48
48
|
|
|
49
49
|
Every new rule, and every edited rule whose body changes the trigger
|
|
50
50
|
or the obligation, MUST classify itself against the hardening tiers
|
|
51
|
-
documented in [`rule-trigger-matrix.md`](
|
|
51
|
+
documented in [`rule-trigger-matrix.md`](../../../agents/settings/contexts/rule-trigger-matrix.md):
|
|
52
52
|
|
|
53
53
|
| Tier | Meaning |
|
|
54
54
|
|---|---|
|
|
@@ -64,7 +64,7 @@ Classification surface: the optional `tier:` frontmatter field
|
|
|
64
64
|
rules; bulk-retrofit of existing rules is tracked separately.
|
|
65
65
|
|
|
66
66
|
Tier 3 dispositions are recorded centrally in
|
|
67
|
-
[`agents/settings/contexts/tier-3-dispositions.md`](
|
|
67
|
+
[`agents/settings/contexts/tier-3-dispositions.md`](../../../agents/settings/contexts/tier-3-dispositions.md)
|
|
68
68
|
with a 6-month re-audit clock. New Tier 3 rules append to that list
|
|
69
69
|
on landing.
|
|
70
70
|
|
|
@@ -17,16 +17,16 @@ refresh trigger.
|
|
|
17
17
|
|
|
18
18
|
Cross-referenced from:
|
|
19
19
|
|
|
20
|
-
- [`deep-reading-analyst`](
|
|
20
|
+
- [`deep-reading-analyst`](../../../src/skills/deep-reading-analyst/SKILL.md)
|
|
21
21
|
— Step 2B structural decomposition (always run, all depths).
|
|
22
|
-
- [`agent-docs-writing`](
|
|
22
|
+
- [`agent-docs-writing`](../../../src/skills/agent-docs-writing/SKILL.md)
|
|
23
23
|
— narrative structure for module docs and AGENTS.md.
|
|
24
|
-
- [`requesting-code-review`](
|
|
24
|
+
- [`requesting-code-review`](../../../src/skills/requesting-code-review/SKILL.md)
|
|
25
25
|
— PR description structure (S = current state, C = pain point,
|
|
26
26
|
Q = scope, A = the diff).
|
|
27
|
-
- [`refine-prompt`](
|
|
27
|
+
- [`refine-prompt`](../../../src/skills/refine-prompt/SKILL.md)
|
|
28
28
|
— reconstruct a free-form prompt into S-C-Q-A acceptance criteria.
|
|
29
|
-
- [`refine-ticket`](
|
|
29
|
+
- [`refine-ticket`](../../../src/skills/refine-ticket/SKILL.md)
|
|
30
30
|
— Jira / Linear ticket clarification through the four-element lens.
|
|
31
31
|
|
|
32
32
|
> **The 4 elements:** S (Situation) · C (Complication) · Q (Question)
|
|
@@ -28,7 +28,7 @@ blocks — it does not hand a half-filled doc to the next stage.
|
|
|
28
28
|
|
|
29
29
|
- **Trigger:** a rule-worthy event. Bug pattern repeats, review
|
|
30
30
|
finding recurs, a successful pattern is worth codifying.
|
|
31
|
-
The existing `
|
|
31
|
+
The existing `skill-improvement-trigger` rule signals the event.
|
|
32
32
|
- **Input:** raw observation (PR link, log line, review comment).
|
|
33
33
|
- **Output:** learning note at `agents/learnings/<date>-<slug>.md`
|
|
34
34
|
with frontmatter `source`, `evidence[]` (≥1 link), `stage: captured`.
|
|
@@ -55,7 +55,7 @@ blocks — it does not hand a half-filled doc to the next stage.
|
|
|
55
55
|
- **Input:** classified learning + any referenced existing artefact.
|
|
56
56
|
- **Output:** proposal doc at
|
|
57
57
|
`agents/proposals/<proposal_id>.md` following
|
|
58
|
-
[`proposal.example.md`](
|
|
58
|
+
[`proposal.example.md`](../../../src/agent-src/templates/agents/proposal.example.md).
|
|
59
59
|
Frontmatter `stage: proposed`.
|
|
60
60
|
- **Guardrails:** the draft body and the proposal doc are a single
|
|
61
61
|
file. An artefact draft without its proposal wrapper is rejected.
|
|
@@ -99,7 +99,7 @@ blocks — it does not hand a half-filled doc to the next stage.
|
|
|
99
99
|
|
|
100
100
|
| Stage | Human role | Automation |
|
|
101
101
|
|---|---|---|
|
|
102
|
-
| 1 Capture | Any contributor | `
|
|
102
|
+
| 1 Capture | Any contributor | `skill-improvement-trigger` rule auto-triggers |
|
|
103
103
|
| 2 Classify | Drafter | `learning-to-rule-or-skill` suggests |
|
|
104
104
|
| 3 Propose | Drafter + reviewer | `skill-improvement-pipeline` refines |
|
|
105
105
|
| 4 Gate | Gate script | fully automated, block is final |
|
|
@@ -129,6 +129,6 @@ unreviewed upstream changes is not.
|
|
|
129
129
|
|
|
130
130
|
## See also
|
|
131
131
|
|
|
132
|
-
- [`proposal.example.md`](
|
|
133
|
-
- [`artifact-drafting-protocol`](
|
|
134
|
-
- [`preservation-guard`](
|
|
132
|
+
- [`proposal.example.md`](../../../src/agent-src/templates/agents/proposal.example.md) — the template every proposal derives from
|
|
133
|
+
- [`artifact-drafting-protocol`](../../../src/rules/artifact-drafting-protocol.md) — Understand → Research → Draft sequence used inside Stage 3
|
|
134
|
+
- [`preservation-guard`](../../../src/rules/preservation-guard.md) — invoked by the gate to check replacement proposals
|
|
@@ -10,7 +10,7 @@ prose_delta:
|
|
|
10
10
|
|
|
11
11
|
# Simplicity and Goal Discipline — wrong/right demos
|
|
12
12
|
|
|
13
|
-
Recognition surface for [`minimal-safe-diff § Anti-over-engineering`](
|
|
13
|
+
Recognition surface for [`minimal-safe-diff § Anti-over-engineering`](../../../src/rules/minimal-safe-diff.md)
|
|
14
14
|
(own-orphan cleanup, speculative-complexity bans) and the goal-driven
|
|
15
15
|
execution clause in `think-before-action`. Per council convergence
|
|
16
16
|
(2026-07-10): the demos ARE the enforcement — an agent that has never seen
|
|
@@ -166,7 +166,7 @@ pre-existing debt: mention it, don't delete it.
|
|
|
166
166
|
|
|
167
167
|
The boundary is mechanical (grep after editing), so there is no
|
|
168
168
|
judgment call to rationalize — see
|
|
169
|
-
[`minimal-safe-diff § Own-orphan cleanup`](
|
|
169
|
+
[`minimal-safe-diff § Own-orphan cleanup`](../../../src/rules/minimal-safe-diff.md#own-orphan-cleanup).
|
|
170
170
|
|
|
171
171
|
## Demo 6 — Vague plan vs. verifiable per-step plan
|
|
172
172
|
|
|
@@ -7,12 +7,12 @@ separate thinking modes and avoid the cross-talk that derails group
|
|
|
7
7
|
decisions. Adopted under the **Reference-Guideline Sunset Policy** and
|
|
8
8
|
cross-referenced from:
|
|
9
9
|
|
|
10
|
-
- [`deep-reading-analyst`](
|
|
10
|
+
- [`deep-reading-analyst`](../../../src/skills/deep-reading-analyst/SKILL.md)
|
|
11
11
|
— L2 Standard analysis depth (multi-perspective sweep).
|
|
12
|
-
- [`ai-council`](
|
|
12
|
+
- [`ai-council`](../../../src/skills/ai-council/SKILL.md)
|
|
13
13
|
— multi-model consultation pattern; Six Hats is the per-perspective
|
|
14
14
|
decomposition the council voices use when adjudicating a decision.
|
|
15
|
-
- [`/council`](
|
|
15
|
+
- [`/council`](../../../src/domains/meta/council/command.md)
|
|
16
16
|
— internal council orchestrator routing to per-hat persona prompts.
|
|
17
17
|
|
|
18
18
|
> **Core principle:** "Wear one hat at a time." — separating thinking
|
|
@@ -72,7 +72,7 @@ trigger-rich descriptions are required — polite or hedged ones cause
|
|
|
72
72
|
undertriggering. The full recipe (concrete verb phrase, ≥2 triggers,
|
|
73
73
|
`even if they don't explicitly ask for …` tail, ≤200 chars,
|
|
74
74
|
litmus test) lives in
|
|
75
|
-
[`contexts/communication/rules-auto/skill-quality-mechanics.md`](
|
|
75
|
+
[`contexts/communication/rules-auto/skill-quality-mechanics.md`](../../../src/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md)
|
|
76
76
|
§ Description Triggering.
|
|
77
77
|
|
|
78
78
|
## Skill Independence
|
|
@@ -94,7 +94,7 @@ When merging or condensing skills, the result MUST preserve the
|
|
|
94
94
|
strongest validation, strongest examples, all anti-patterns, all
|
|
95
95
|
decision criteria, and trigger quality. Full preservation invariants
|
|
96
96
|
and "merge is invalid if …" / "condensation may remove …" lists in
|
|
97
|
-
[`contexts/communication/rules-auto/skill-quality-mechanics.md`](
|
|
97
|
+
[`contexts/communication/rules-auto/skill-quality-mechanics.md`](../../../src/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md)
|
|
98
98
|
§ Merge Preservation and § Condensation Preservation.
|
|
99
99
|
|
|
100
100
|
## Refactor Safety
|
|
@@ -125,7 +125,7 @@ check. No retrofit pass on existing Wing-1 skills.
|
|
|
125
125
|
|
|
126
126
|
Subsection specs (≤ 6-line spec + 1 reference example each), good /
|
|
127
127
|
bad pattern pairs, and the WHEN-NOT routing peer rules live in
|
|
128
|
-
[`contexts/communication/rules-auto/skill-quality-mechanics.md`](
|
|
128
|
+
[`contexts/communication/rules-auto/skill-quality-mechanics.md`](../../../src/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md)
|
|
129
129
|
§ Senior-tier patterns.
|
|
130
130
|
|
|
131
131
|
## Structural Malice Floor
|
|
@@ -139,10 +139,10 @@ linter exits with code **3** (security-failure), distinct from
|
|
|
139
139
|
exit 2 (build-failure) so CI surfaces can split the two.
|
|
140
140
|
|
|
141
141
|
The check is **structural**, not semantic — it catches the shapes
|
|
142
|
-
the [`tool-safety`](tool-safety.md) rule denies in prose: hidden
|
|
142
|
+
the [`tool-safety`](../../../src/rules/tool-safety.md) rule denies in prose: hidden
|
|
143
143
|
credentials, arbitrary execution, write-without-approval. Fixtures
|
|
144
144
|
and the exit-code-3 contract live in
|
|
145
|
-
[`tests/test_skill_linter_malice.py`](
|
|
145
|
+
[`tests/test_skill_linter_malice.py`](../../../tests/scripts/skill_linter.test.ts).
|
|
146
146
|
|
|
147
147
|
## Confidence Tagging
|
|
148
148
|
|
|
@@ -152,6 +152,6 @@ across steps. Optional but recommended when a step's output feeds a
|
|
|
152
152
|
downstream decision.
|
|
153
153
|
|
|
154
154
|
Text-tag form is deliberate. Emoji 🟢 / 🟡 / 🔴 is **not** allowed —
|
|
155
|
-
collides with [`direct-answers`](direct-answers.md) § Emoji scope
|
|
155
|
+
collides with [`direct-answers`](../../../src/rules/direct-answers.md) § Emoji scope
|
|
156
156
|
(functional markers only). Linter does not enforce the tag itself;
|
|
157
157
|
the rule documents the placement so authors converge on one form.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Source confidentiality — mechanics
|
|
2
|
+
|
|
3
|
+
Migrated out of [`source-confidentiality`](../../../src/rules/source-confidentiality.md)
|
|
4
|
+
on 2026-08-29. The rule is delivered on **every subagent spawn**, so its body is
|
|
5
|
+
paid per spawn; this material is reference read on demand. Nothing was dropped —
|
|
6
|
+
the three sections below are the rule's own text, verbatim, and the rule keeps
|
|
7
|
+
its Iron Laws and points here.
|
|
8
|
+
|
|
9
|
+
### What "source-anonymous" claims, and what it explicitly does not
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
THE CLAIM IS ABOUT WHAT IS WRITTEN NEXT, NEVER ABOUT WHAT IS ALREADY RECORDED.
|
|
13
|
+
NEVER DESCRIBE THIS AS ERADICATION, REMOVAL FROM HISTORY, OR A CLEAN REPOSITORY.
|
|
14
|
+
COMMIT MESSAGES, MERGED PR BODIES AND OLD DIFFS REMAIN RECOVERABLE BY ANYONE
|
|
15
|
+
WITH REPOSITORY ACCESS, AND NO PHASE OF THIS PROGRAMME CHANGES THAT.
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The `whether-history-gets-rewritten` decision resolved **no rewrite** (AI
|
|
19
|
+
council 2026-08-28, 2/2): the evidence estate rests on stable commit pins, and a
|
|
20
|
+
`git filter-repo` would convert every past `reproduced at <sha>` into an
|
|
21
|
+
unverifiable claim — a larger loss than the residual it removes, and one that
|
|
22
|
+
would still not reach a pre-rewrite clone, a fork or a PR mirror. So the
|
|
23
|
+
residual is **counted, not hidden**: the census artefact
|
|
24
|
+
(`agents/evidence/reports/source-attribution-census.md`) carries a `residual:`
|
|
25
|
+
field for the immutable surfaces, and "clean" always means "clean minus the
|
|
26
|
+
recorded residual".
|
|
27
|
+
|
|
28
|
+
### The two classes are opposites, and only one of them is a leak
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
HARVEST ATTRIBUTION IS PROHIBITED EVERYWHERE.
|
|
32
|
+
LICENSE-REQUIRED ATTRIBUTION IS MANDATORY, AND LIVES ONLY IN THE LICENSE SURFACES.
|
|
33
|
+
CONFLATING THEM IN EITHER DIRECTION IS A DEFECT: SCRUBBING A LICENSE NOTICE
|
|
34
|
+
BREAKS A LEGAL OBLIGATION, AND HIDING A HARVEST BEHIND ONE IS THE LEAK.
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The three license surfaces, by path — no others:
|
|
38
|
+
|
|
39
|
+
- `CREDITS.md`
|
|
40
|
+
- `docs/THIRD-PARTY-NOTICES.md`
|
|
41
|
+
- `provenance/borrows.jsonl`
|
|
42
|
+
|
|
43
|
+
An upstream name there is required by the license or by
|
|
44
|
+
[`code-provenance`](code-provenance.md) and is never scrubbed. The same name in
|
|
45
|
+
a roadmap, skill, rule, ADR or commit message is harvest attribution and is a
|
|
46
|
+
defect. Every other `skip_paths` entry is a gate-own file or a vendored-cluster
|
|
47
|
+
member carrying its own notice.
|
|
48
|
+
|
|
49
|
+
## The gate also checks SHAPE, not only names
|
|
50
|
+
|
|
51
|
+
A deny list can only catch a name somebody already wrote down; the next unknown
|
|
52
|
+
source walks straight through it. `check_no_external_sources` therefore also
|
|
53
|
+
flags attribution by **form** — a `> **Source:**` header whose value is neither
|
|
54
|
+
an opaque round identifier nor an `ENC1:` token, a quoted
|
|
55
|
+
`agents/tmp(.old)/<name>/` directory whose name is not opaque, and an
|
|
56
|
+
un-allowlisted `github.com/<owner>/<repo>` URL — and it matches tracked **paths**
|
|
57
|
+
against the deny set, not only file contents.
|
|
58
|
+
|
|
59
|
+
Tiering, per the resolved `how-loud-the-slug-heuristic-is` decision (AI council
|
|
60
|
+
2026-08-28, 2/2): **block inside `agents/**`, warn elsewhere** — slugs are
|
|
61
|
+
ordinary content in integration code and docs, where blocking globally would
|
|
62
|
+
drive the broad allowlisting that is worse than the gap it closes. The warn tier
|
|
63
|
+
is written to a retained CI report (`--report <path>`), not merely printed, so
|
|
64
|
+
it stays auditable. Pre-existing occurrences are a **shrink-only count** in
|
|
65
|
+
`src/config/gate-violation-baselines.json`, never an allowlist: nothing is
|
|
66
|
+
excused and a new occurrence fails immediately.
|
|
67
|
+
|
|
68
|
+
## Why these four rules are unconditional
|
|
69
|
+
|
|
70
|
+
Under ADR-236 (`docs/decisions/ADR-236-one-artefact-one-layer.md`) this rule is
|
|
71
|
+
delivered by the PROJECT layer only — it exists to maintain this package, so the
|
|
72
|
+
global layer no longer carries an unscoped twin of it. A `paths:`-scoped rule is
|
|
73
|
+
**not re-injected after `/compact`** (ADR-227:79-80), so scoping it would mean the
|
|
74
|
+
obligation silently disappears mid-session with nothing left to reload it.
|
|
75
|
+
|
|
76
|
+
It is therefore delivered unconditionally, and the path triggers were removed
|
|
77
|
+
rather than worked around. **This section is the shared record for all four such
|
|
78
|
+
rules** — `no-roadmap-references`, `rule-type-governance` and `skill-quality` carry
|
|
79
|
+
the same change and no note of their own. Two reasons: four copies of the rationale
|
|
80
|
+
cost more standing context than the decision they explain, and the other three are
|
|
81
|
+
migrated POINTER stubs held at their pointer's size by
|
|
82
|
+
`check_rule_stub_ceiling` — prose added there is prose in the wrong place by that
|
|
83
|
+
gate's own contract, which is what caught the first attempt to duplicate it.
|
|
84
|
+
|
|
85
|
+
AI council 2026-08-20, 2/2 convergent on this option over three alternatives, with
|
|
86
|
+
two independent decisive arguments. First: the obligation governs an **authoring
|
|
87
|
+
decision**, which happens before any file exists for a path trigger to match — so
|
|
88
|
+
path-scoping fails at greenfield creation whether or not a compaction ever occurs.
|
|
89
|
+
Second: the measured cost is small against what the partition returns. Keeping an
|
|
90
|
+
unscoped global copy was rejected because it re-creates the duplication the
|
|
91
|
+
partition exists to remove; splitting the four by "has a CI gate" was rejected by
|
|
92
|
+
both seats as the wrong axis — a validator observes an outcome, it does not hold an
|
|
93
|
+
obligation during the session, and `rule-type-governance` has no gate at all.
|
|
94
|
+
|
|
95
|
+
**Cost, measured and corrected.** An earlier revision of this note claimed 1,754
|
|
96
|
+
tokens (1.8 % of the partition's 96,584-token saving). That figure was a
|
|
97
|
+
`chars / 4` proxy over the projected files and **understated the real cost by about
|
|
98
|
+
half**: `check_rule_activation_census`, which counts with the exact BPE tokenizer,
|
|
99
|
+
measures the unconditional corpus growing **108,130 → 111,642, i.e. +3,512 tokens
|
|
100
|
+
(3.6 %)** — and that number includes this rationale, which is why it lives in one
|
|
101
|
+
place instead of four. The verdict does not depend on the figure: one seat argued
|
|
102
|
+
the token axis was the wrong one entirely, the other that cost is a legitimate axis
|
|
103
|
+
which simply loses this particular comparison. Both readings survive 3.6 %.
|
|
104
|
+
|
|
105
|
+
## See also
|
|
106
|
+
|
|
107
|
+
- [`source-confidentiality`](../../../src/rules/source-confidentiality.md) — the rule these mechanics belong to.
|
|
108
|
+
- [`code-provenance`](../../../src/rules/code-provenance.md) — the license-required-attribution obligation the two-class split defers to.
|
|
109
|
+
- `src/scripts/check_no_external_sources.ts` — the gate that implements the shape checks.
|
|
@@ -7,7 +7,7 @@ feedback loops, leverage points, and cross-domain archetypes that
|
|
|
7
7
|
reveal where intervention has the highest impact. Adopted under the
|
|
8
8
|
**Reference-Guideline Sunset Policy** and cross-referenced from:
|
|
9
9
|
|
|
10
|
-
- [`deep-reading-analyst`](
|
|
10
|
+
- [`deep-reading-analyst`](../../../src/skills/deep-reading-analyst/SKILL.md)
|
|
11
11
|
— L3 Deep analysis depth.
|
|
12
12
|
- [`mental-models`](mental-models.md) — Munger's lattice; systems
|
|
13
13
|
thinking is one of the strongest engineering / biology lenses.
|
|
@@ -13,9 +13,9 @@ prose_delta:
|
|
|
13
13
|
> Wrong / right / why demos for the `verify-before-complete` Iron
|
|
14
14
|
> Law (no completion claim without fresh evidence in this message).
|
|
15
15
|
> Linked from
|
|
16
|
-
> [`verify-before-complete`](
|
|
16
|
+
> [`verify-before-complete`](../../../src/rules/verify-before-complete.md)
|
|
17
17
|
> § Examples. Outcome baseline at
|
|
18
|
-
> [`tests/golden/outcomes/verify_before_complete.json`](
|
|
18
|
+
> [`tests/golden/outcomes/verify_before_complete.json`](../../../tests/golden/outcomes/verify_before_complete.json).
|
|
19
19
|
|
|
20
20
|
## Demo 1 — Hedged completion claim
|
|
21
21
|
|
|
@@ -54,10 +54,12 @@ installer, gitignored). Artefacts MUST prefer the CLI over raw
|
|
|
54
54
|
|
|
55
55
|
The full `task`-to-script translation table, the `./agent-config`
|
|
56
56
|
CLI mapping, and the rationale (Task absence on consumers,
|
|
57
|
-
maintainer-vs-artefact split)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
maintainer-vs-artefact split) are **in this file**.
|
|
58
|
+
|
|
59
|
+
> **Corrected 2026-08-26** (`road-to-contract-review-deadlines` 4.2): this
|
|
60
|
+
> paragraph used to point at a `rules-auto` mechanics file under the contexts
|
|
61
|
+
> tree, which exists nowhere in it. The pointer described a split that was never
|
|
62
|
+
> made; the material it names was already here.
|
|
61
63
|
|
|
62
64
|
## Enforcement
|
|
63
65
|
|
|
@@ -315,6 +315,24 @@ Behavioral baseline: `tests/code-comments/eval-fixtures.md`
|
|
|
315
315
|
`ccd-untouched-preservation`, `ccd-explicit-teaching-override`); the decidable
|
|
316
316
|
criteria are proven by `tests/scripts/code_comment_fixtures.test.ts`.
|
|
317
317
|
|
|
318
|
+
### Evidence belongs in the roadmap that asked for it
|
|
319
|
+
|
|
320
|
+
Measured 2026-09-02 in a consumer repository: **509 German comment lines** and
|
|
321
|
+
**21 report- or provenance-shaped comments** across **41 of 45** changed source
|
|
322
|
+
files, the worst a 101-line colour-analysis report inside a CSS file. The cause
|
|
323
|
+
was a roadmap requiring proof for every checked step: the run read that as
|
|
324
|
+
*evidence should be documented* and wrote the measurements into the source too,
|
|
325
|
+
where the roadmap already carried them.
|
|
326
|
+
|
|
327
|
+
The provenance of a value is not a WHY, and a roadmap cannot license a comment
|
|
328
|
+
the rule forbids.
|
|
329
|
+
|
|
330
|
+
Two enforcers carry this because neither rule could fire on a write:
|
|
331
|
+
`code-comment-discipline` matches prompt keywords, and `language-and-tone`'s
|
|
332
|
+
English-comment clause named a `.md`-only validator. `lint_code_comments`
|
|
333
|
+
refuses on the diff; the `comment-discipline` concern reports on the text as
|
|
334
|
+
written. Neither replaces the discipline.
|
|
335
|
+
|
|
318
336
|
## See also
|
|
319
337
|
|
|
320
338
|
- Language-specific anchors that link to this guideline:
|
|
@@ -129,8 +129,9 @@ compose don't duplicate) is paradigm-independent; only its *shape* is OO here:
|
|
|
129
129
|
|
|
130
130
|
Language / framework carve-outs (never restated here): PHP →
|
|
131
131
|
[`php-coding-patterns`](php/php-coding-patterns.md) +
|
|
132
|
-
[`patterns.md`](php/patterns.md) (+ `patterns/strategy.md`,
|
|
133
|
-
`patterns/dependency-injection.md`, `patterns/factory.md`,
|
|
132
|
+
[`patterns.md`](php/patterns.md) (+ `php/patterns/strategy.md`,
|
|
133
|
+
`php/patterns/dependency-injection.md`, `php/patterns/factory.md`,
|
|
134
|
+
`php/patterns/service-layer.md`)
|
|
134
135
|
+ skills [`php-coder`](../../src/skills/php-coder/SKILL.md) /
|
|
135
136
|
[`php-service`](../../src/skills/php-service/SKILL.md); Laravel →
|
|
136
137
|
[`laravel`](../../src/skills/laravel/SKILL.md); Symfony →
|
|
@@ -93,7 +93,7 @@ Council Q3 (2026-05-05) locks the disambiguation between L4
|
|
|
93
93
|
shipping — becomes **input to L4**. The escalation is one-way:
|
|
94
94
|
L4 produces the dissent log that decides whether C8's verdict
|
|
95
95
|
is overridden, with the override recorded in
|
|
96
|
-
[`decision-record`](
|
|
96
|
+
[`decision-record`](../../src/skills/decision-record/SKILL.md).
|
|
97
97
|
|
|
98
98
|
The boundary keeps the two skills sharp — neither absorbs the other —
|
|
99
99
|
and gives the agent a deterministic rule for which one to load when
|
|
@@ -108,7 +108,7 @@ acquisition channel is paid search, but only if CAC payback < 6 months"*:
|
|
|
108
108
|
2. The CAC question is Wing-4 cognition — `unit-economics-modeling`.
|
|
109
109
|
3. `refine-ticket` hands off via:
|
|
110
110
|
- WHEN NOT entry: *"CAC / payback questions — route to
|
|
111
|
-
[`unit-economics-modeling`](
|
|
111
|
+
[`unit-economics-modeling`](../../src/skills/unit-economics-modeling/SKILL.md)"*.
|
|
112
112
|
- Composes line in the procedure step that needs the answer.
|
|
113
113
|
4. The delegate's `## Input` block lists the fields (channel,
|
|
114
114
|
cohort, time horizon); `refine-ticket` passes them.
|
|
@@ -161,7 +161,7 @@ The Iron Law and both discriminator clauses stay in
|
|
|
161
161
|
|
|
162
162
|
| The artefact declares | The spec is | The spec is NOT |
|
|
163
163
|
|---|---|---|
|
|
164
|
-
| low fidelity — greyscale, box-and-line, placeholder copy | layout · element set · hierarchy · states shown |
|
|
164
|
+
| low fidelity — greyscale, box-and-line, placeholder copy | layout · element set · hierarchy · states shown | grays · placeholder text · borders · exact spacing |
|
|
165
165
|
| finished — colour, real copy, real assets | everything visible (the 1:1 floor, unchanged) | — |
|
|
166
166
|
|
|
167
167
|
Grounded in [`wireframe`](../../src/skills/wireframe/SKILL.md) § Gotchas. The near-miss
|
|
@@ -38,9 +38,9 @@ Hard triggers — split immediately:
|
|
|
38
38
|
deep links
|
|
39
39
|
- **More than 3 framework adapters** → each adapter gets its own doc
|
|
40
40
|
- **Architecture or design rationale > 30 lines** → `docs/architecture.md`
|
|
41
|
-
- **API reference > 50 lines** → `docs/api.md` or auto-generated reference
|
|
41
|
+
- **API reference > 50 lines** → `docs/api.md` or auto-generated reference <!-- ref-ignore -->
|
|
42
42
|
- **Multiple audiences with different needs** → audience-specific docs
|
|
43
|
-
(`docs/consumers.md`, `docs/contributors.md`)
|
|
43
|
+
(`docs/consumers.md`, `docs/contributors.md`) <!-- ref-ignore -->
|
|
44
44
|
|
|
45
45
|
Soft triggers — review and probably split:
|
|
46
46
|
|
|
@@ -122,7 +122,7 @@ deep-link the other:
|
|
|
122
122
|
- **Package repo** → consumers primary; contributors go to
|
|
123
123
|
`CONTRIBUTING.md` or `docs/development.md`
|
|
124
124
|
- **Application repo** → contributors/team primary; end users (if any)
|
|
125
|
-
go to `docs/user-guide.md`
|
|
125
|
+
go to `docs/user-guide.md` <!-- ref-ignore -->
|
|
126
126
|
|
|
127
127
|
The README must declare its audience within the first screen. Readers
|
|
128
128
|
in the other audience must find their link within the first screen too.
|