@event4u/agent-config 14.11.0 → 14.13.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 +368 -516
- 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 +109 -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/evidence-discipline.md +26 -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-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 +247 -3
- package/dist/agent-src/scripts/guarded_baseline.ts +328 -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 +400 -0
- package/dist/agent-src/scripts/ticket_bundles.ts +84 -0
- package/dist/agent-src/scripts/update_roadmap_progress.ts +8 -4
- 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/code-refactoring/SKILL.md +45 -1
- package/dist/agent-src/skills/code-review/SKILL.md +65 -6
- package/dist/agent-src/skills/command-writing/SKILL.md +35 -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 +25 -2
- 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/project-analysis-core/SKILL.md +23 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +30 -13
- package/dist/agent-src/skills/skill-writing/references/procedure.md +29 -7
- 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/storybook-workshop/SKILL.md +9 -0
- 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 +53 -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-L43NCYPB.js → chunk-4FS4WRXP.js} +10 -0
- package/dist/cli-delegate/{chunk-OMIVVCG2.js → chunk-A4QJ6ENT.js} +24 -0
- package/dist/cli-delegate/{chunk-236PNQZK.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 +42 -10
- 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 +62 -62
- 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 +2413 -1087
- 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 +639 -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 +4818 -2645
- package/dist/server/schemas/settings.js +6 -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 +30 -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/downstream-changes-mechanics.md +91 -0
- 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 +21 -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/docs/guidelines/redundancy-taxonomy.md +180 -0
- package/llms.txt +2 -2
- package/package.json +10 -3
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +247 -3
- package/src/agent-src/scripts/guarded_baseline.ts +328 -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 +400 -0
- package/src/agent-src/scripts/ticket_bundles.ts +84 -0
- package/src/agent-src/scripts/update_roadmap_progress.ts +8 -4
- 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 +48 -3
- package/src/config/assurance-capability-registry.json +21 -9
- package/src/config/budgets.yml +19 -0
- 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 +95 -0
- package/src/config/discovery/prompt-patterns.yml +56 -0
- package/src/config/drafting-channels.yml +43 -0
- package/src/config/estate-count-budget.json +38 -31
- package/src/config/evaluator-budgets.json +14 -14
- package/src/config/gate-coverage.yml +731 -30
- package/src/config/gate-reachability-exemptions.json +21 -0
- package/src/config/gate-violation-baselines.json +38 -20
- 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 +35 -7
- package/src/config/preamble-payload-budget.json +97 -71
- 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 +43 -0
- package/src/config/rule-stub-ceilings.json +126 -112
- package/src/config/suggestion-capture.json +28 -0
- package/src/config/surface-matrix.yml +21 -2
- package/src/config/turnaround-budget.json +66 -0
- package/src/config/web-launch-readiness.json +188 -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 +27 -0
- package/src/scripts/_lib/activation_ladder.ts +211 -0
- package/src/scripts/_lib/activation_states.ts +88 -0
- package/src/scripts/_lib/adherence_detectors.ts +143 -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_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/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/council_settings_block.ts +6 -0
- package/src/scripts/_lib/curator_ops.ts +172 -0
- package/src/scripts/_lib/delivery_arm_experiment.ts +266 -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/eval_publication.ts +354 -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/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/gate_baseline.ts +150 -1
- package/src/scripts/_lib/generated_by.ts +66 -0
- package/src/scripts/_lib/harness_evolution_guards.ts +229 -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/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/prefix_stable_surfaces.ts +123 -0
- package/src/scripts/_lib/privacy_class.ts +47 -0
- package/src/scripts/_lib/regression_neighbourhood.ts +259 -0
- 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/runtime_journal.ts +1499 -0
- package/src/scripts/_lib/runtime_wiring_checks.ts +430 -0
- package/src/scripts/_lib/skill_catalogue.ts +11 -1
- package/src/scripts/_lib/skill_estate.ts +115 -0
- 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/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/argument_exhaustion.ts +130 -0
- 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/disagreement_signal.ts +338 -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/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/response_record.ts +50 -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 +126 -0
- 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 +195 -7
- package/src/scripts/check_claims.ts +576 -6
- package/src/scripts/check_command_examples.ts +557 -0
- 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 +263 -3
- 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 +144 -6
- 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_routing_coverage.ts +352 -0
- 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 +528 -0
- package/src/scripts/check_skill_admissions.ts +514 -0
- 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/check_web_launch_readiness.ts +705 -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/cost/budget.mjs +10 -3
- package/src/scripts/cost/track.mjs +10 -3
- package/src/scripts/council_cli.ts +37 -54
- package/src/scripts/description_route_check.ts +494 -0
- package/src/scripts/dispatch_r2_reviewer.ts +46 -5
- package/src/scripts/evolution_lab.ts +980 -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 -11
- 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/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 +378 -0
- 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/lint_adr_sweep_routing.ts +12 -0
- package/src/scripts/lint_budget_ownership.ts +54 -4
- package/src/scripts/lint_canonical_terms.ts +604 -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_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 +752 -0
- package/src/scripts/lint_ticket_buildable.ts +17 -1
- 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_docs_dead_links.ts +348 -0
- package/src/scripts/measure_host_capture.ts +461 -0
- package/src/scripts/migration_status.ts +3 -3
- package/src/scripts/model_rule_injection.ts +60 -0
- package/src/scripts/orchestration_record.ts +14 -0
- package/src/scripts/pack_install_smoke.ts +363 -0
- package/src/scripts/pr_conflict_census.ts +187 -0
- package/src/scripts/preamble_byte_census.ts +139 -10
- package/src/scripts/prepack-check.mjs +4 -1
- package/src/scripts/probe_turnaround.ts +384 -0
- package/src/scripts/probe_unblocked_ask.ts +279 -0
- package/src/scripts/render_benchmark_md.ts +1 -1
- package/src/scripts/report_pack_delta.ts +204 -0
- 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/select_analysis_mode.ts +112 -0
- 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 +40 -1
- package/src/scripts/trigger_eval_grandfather.json +202 -222
- package/src/scripts/utilization_report.ts +22 -2
- package/src/server/schemas/settings.ts +10 -0
- package/src/templates/marketing-copy.yml +1 -1
- package/dist/agent-src/skills/accessibility-auditor/evals/evals.json +0 -15
- package/dist/agent-src/skills/agent-security-review/evals/triggers.json +0 -52
- package/dist/agent-src/skills/ai-code-blindspots/evals/triggers.json +0 -52
- package/dist/agent-src/skills/alerting-doctrine/evals/triggers.json +0 -17
- package/dist/agent-src/skills/analysis-skill-router/evals/evals.json +0 -13
- package/dist/agent-src/skills/brand/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-asset-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-audit/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-identity/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-strategy/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-to-tokens/evals/triggers.json +0 -17
- package/dist/agent-src/skills/bug-analyzer/evals/evals.json +0 -13
- package/dist/agent-src/skills/canvas-design/evals/triggers.json +0 -17
- package/dist/agent-src/skills/character-consistency/evals/evals.json +0 -16
- package/dist/agent-src/skills/code-intelligence/evals/triggers.json +0 -52
- package/dist/agent-src/skills/code-review/evals/evals.json +0 -100
- package/dist/agent-src/skills/command-routing/evals/evals.json +0 -14
- package/dist/agent-src/skills/complexity-first-planning/evals/triggers.json +0 -17
- package/dist/agent-src/skills/contract-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/conventional-commits-writing/evals/evals.json +0 -15
- package/dist/agent-src/skills/corpus-grounding/evals/triggers.json +0 -17
- package/dist/agent-src/skills/dashboard-design/evals/evals.json +0 -16
- package/dist/agent-src/skills/dcf-modeling/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/dcf-modeling/evals/evals.json +0 -20
- package/dist/agent-src/skills/decision-record/evals/evals.json +0 -20
- package/dist/agent-src/skills/decision-record/evals/triggers.json +0 -87
- package/dist/agent-src/skills/design-intelligence/evals/evals.json +0 -14
- package/dist/agent-src/skills/design-intelligence/evals/triggers.json +0 -17
- package/dist/agent-src/skills/design-system-capture/evals/evals.json +0 -15
- package/dist/agent-src/skills/design-tokens/evals/triggers.json +0 -17
- package/dist/agent-src/skills/design-variations/evals/triggers.json +0 -17
- package/dist/agent-src/skills/developer-like-execution/evals/evals.json +0 -16
- package/dist/agent-src/skills/doc-coauthoring/evals/evals.json +0 -16
- package/dist/agent-src/skills/doc-coauthoring/evals/triggers.json +0 -17
- package/dist/agent-src/skills/docx-authoring/evals/triggers.json +0 -52
- package/dist/agent-src/skills/dpa-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/editorial-calendar/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/editorial-calendar/evals/evals.json +0 -16
- package/dist/agent-src/skills/eloquent/evals/triggers.json +0 -17
- package/dist/agent-src/skills/estimate-ticket/evals/evals.json +0 -16
- package/dist/agent-src/skills/estimate-ticket/evals/output-schema.yml +0 -20
- package/dist/agent-src/skills/estimate-ticket/evals/triggers.json +0 -19
- package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +0 -52
- package/dist/agent-src/skills/existing-ui-audit/evals/triggers.json +0 -47
- package/dist/agent-src/skills/experiment-loop/evals/output-schema.yml +0 -27
- package/dist/agent-src/skills/experiment-loop/evals/triggers.json +0 -17
- package/dist/agent-src/skills/fe-design/evals/triggers.json +0 -67
- package/dist/agent-src/skills/forecasting/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/forecasting/evals/evals.json +0 -20
- package/dist/agent-src/skills/forensics-report/evals/triggers.json +0 -17
- package/dist/agent-src/skills/frontend-render-security/evals/triggers.json +0 -52
- package/dist/agent-src/skills/fundraising-narrative/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/fundraising-narrative/evals/evals.json +0 -16
- package/dist/agent-src/skills/gated-reach/evals/triggers.json +0 -72
- package/dist/agent-src/skills/github-ci/evals/evals.json +0 -25
- package/dist/agent-src/skills/history-design/evals/triggers.json +0 -17
- package/dist/agent-src/skills/html-deck/evals/triggers.json +0 -17
- package/dist/agent-src/skills/humanizer/evals/strip_fixtures.json +0 -57
- package/dist/agent-src/skills/humanizer/evals/triggers.json +0 -17
- package/dist/agent-src/skills/iconography/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-analyser/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-creator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-editing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-provider-routing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/incident-commander/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/incident-commander/evals/evals.json +0 -20
- package/dist/agent-src/skills/js-library-packaging/evals/triggers.json +0 -17
- package/dist/agent-src/skills/judge-artifact-completeness/evals/triggers.json +0 -17
- package/dist/agent-src/skills/judge-injection-defense/evals/triggers.json +0 -17
- package/dist/agent-src/skills/judge-synthesis/evals/triggers.json +0 -17
- package/dist/agent-src/skills/launch-readiness/evals/evals.json +0 -21
- package/dist/agent-src/skills/learning-tutor/evals/triggers.json +0 -52
- package/dist/agent-src/skills/legal-intake-triage/evals/triggers.json +0 -17
- package/dist/agent-src/skills/legal-practice-profile/evals/triggers.json +0 -17
- package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +0 -52
- package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +0 -52
- package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +0 -52
- package/dist/agent-src/skills/llm-provider-knowledge/evals/triggers.json +0 -20
- package/dist/agent-src/skills/logging-monitoring/evals/evals.json +0 -16
- package/dist/agent-src/skills/logo-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/messaging-architecture/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/messaging-architecture/evals/evals.json +0 -16
- package/dist/agent-src/skills/monorepo-workspace/evals/triggers.json +0 -17
- package/dist/agent-src/skills/nda-triage/evals/triggers.json +0 -17
- package/dist/agent-src/skills/operational-readiness/evals/triggers.json +0 -17
- package/dist/agent-src/skills/pdf-tools/evals/triggers.json +0 -52
- package/dist/agent-src/skills/perf-feedback-craft/evals/evals.json +0 -16
- package/dist/agent-src/skills/persona-improvement/evals/triggers.json +0 -52
- package/dist/agent-src/skills/php-coder/evals/triggers.json +0 -17
- package/dist/agent-src/skills/prediction-pool-optimizer/evals/triggers.json +0 -21
- package/dist/agent-src/skills/prompt-engineering-image/evals/triggers.json +0 -17
- package/dist/agent-src/skills/prompt-engineering-patterns/evals/evals.json +0 -16
- package/dist/agent-src/skills/prompt-validator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/quality-tools/evals/evals.json +0 -15
- package/dist/agent-src/skills/reasoning-orchestrator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/refine-prompt/evals/evals.json +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/evals.json +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/output-schema.yml +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/triggers.json +0 -17
- package/dist/agent-src/skills/release-comms/evals/evals.json +0 -16
- package/dist/agent-src/skills/rice-prioritization/evals/evals.json +0 -20
- package/dist/agent-src/skills/runway-cognition/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/runway-cognition/evals/evals.json +0 -20
- package/dist/agent-src/skills/scenario-modeling/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/scenario-modeling/evals/evals.json +0 -20
- package/dist/agent-src/skills/schema-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +0 -52
- package/dist/agent-src/skills/security-maturity-assessment/evals/triggers.json +0 -52
- package/dist/agent-src/skills/server-hardening/evals/triggers.json +0 -17
- package/dist/agent-src/skills/skill-writing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/spreadsheet-authoring/evals/triggers.json +0 -47
- package/dist/agent-src/skills/storybook-workshop/evals/triggers.json +0 -17
- package/dist/agent-src/skills/subagent-orchestration/evals/evals.json +0 -60
- package/dist/agent-src/skills/supply-chain-intake/evals/triggers.json +0 -52
- package/dist/agent-src/skills/systematic-debugging/evals/evals.json +0 -20
- package/dist/agent-src/skills/test-case-discovery/evals/triggers.json +0 -52
- package/dist/agent-src/skills/test-driven-development/evals/evals.json +0 -16
- package/dist/agent-src/skills/threat-modeling/evals/evals.json +0 -21
- package/dist/agent-src/skills/typography-system/evals/evals.json +0 -14
- package/dist/agent-src/skills/typography-system/evals/triggers.json +0 -17
- package/dist/agent-src/skills/unit-economics-modeling/evals/domain-truth.json +0 -40
- package/dist/agent-src/skills/unit-economics-modeling/evals/evals.json +0 -24
- package/dist/agent-src/skills/verify-completion-evidence/evals/evals.json +0 -16
- package/dist/agent-src/skills/verify-repair-loop/evals/output-schema.yml +0 -20
- package/dist/agent-src/skills/verify-repair-loop/evals/triggers.json +0 -17
- package/dist/agent-src/skills/vision-articulation/evals/evals.json +0 -16
- package/dist/agent-src/skills/voice-and-tone-design/evals/evals.json +0 -16
- package/dist/agent-src/skills/wireframe/evals/triggers.json +0 -17
- package/dist/agent-src/skills/workspace-link/evals/triggers.json +0 -17
- package/dist/agent-src/skills/worktree-lifecycle/evals/evals.json +0 -38
- package/dist/agent-src/skills/worktree-lifecycle/evals/triggers.json +0 -52
- package/dist/cli/agent-config.js.map +0 -1
- package/dist/cli/bash/runBash.js.map +0 -1
- package/dist/cli/commands/commands.js.map +0 -1
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/doctorShell.js.map +0 -1
- package/dist/cli/commands/mcpServer.js.map +0 -1
- package/dist/cli/commands/packs.js.map +0 -1
- package/dist/cli/commands/profiles.js.map +0 -1
- package/dist/cli/commands/recordTriggerEval.js.map +0 -1
- package/dist/cli/commands/rtkDetect.js.map +0 -1
- package/dist/cli/commands/settings.js.map +0 -1
- package/dist/cli/commands/uiAudit.js.map +0 -1
- package/dist/cli/commands/uiRender.js.map +0 -1
- package/dist/cli/commands/uiServe.js.map +0 -1
- package/dist/cli/commands/versions.js.map +0 -1
- package/dist/cli/commands/workspaces.js.map +0 -1
- package/dist/cli/configRoot.js.map +0 -1
- package/dist/cli/discovery/loadManifest.js.map +0 -1
- package/dist/cli/firstRunNotice.js.map +0 -1
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/initRouting.js.map +0 -1
- package/dist/cli/log/logger.js.map +0 -1
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/mcp/content.js.map +0 -1
- package/dist/cli/mcp/dispatch.js.map +0 -1
- package/dist/cli/mcp/stdio.js.map +0 -1
- package/dist/cli/paths.js.map +0 -1
- package/dist/cli/python/knowledge_ingest.js.map +0 -1
- package/dist/cli/python/workspace_analytics.js.map +0 -1
- package/dist/cli/python/workspace_crypto.js.map +0 -1
- package/dist/cli/python/workspace_documents.js.map +0 -1
- package/dist/cli/python/workspace_drive.js.map +0 -1
- package/dist/cli/python/workspace_drive_health.js.map +0 -1
- package/dist/cli/python/workspace_explain.js.map +0 -1
- package/dist/cli/python/workspace_hosts.js.map +0 -1
- package/dist/cli/python/workspace_inbox.js.map +0 -1
- package/dist/cli/python/workspace_render.js.map +0 -1
- package/dist/cli/python/workspace_roles.js.map +0 -1
- package/dist/cli/python/workspace_secrets.js.map +0 -1
- package/dist/cli/python/workspace_sessions.js.map +0 -1
- package/dist/cli/python/workspace_skills.js.map +0 -1
- package/dist/cli/registry.js.map +0 -1
- package/dist/install/agentSwitchDetection.js.map +0 -1
- package/dist/install/agentSwitchProfile.js.map +0 -1
- package/dist/install/atomic.js.map +0 -1
- package/dist/install/claudePathsPlan.js.map +0 -1
- package/dist/install/conflict.js.map +0 -1
- package/dist/install/detect.js.map +0 -1
- package/dist/install/emit_host_rules_cli.js.map +0 -1
- package/dist/install/globalRuleLayers.js.map +0 -1
- package/dist/install/hostLayerFingerprint.js.map +0 -1
- package/dist/install/partitionEligibility.js.map +0 -1
- package/dist/install/paths.js.map +0 -1
- package/dist/install/plan.js.map +0 -1
- package/dist/install/preflight.js.map +0 -1
- package/dist/install/rtkDetection.js.map +0 -1
- package/dist/install/ruleInScope.js.map +0 -1
- package/dist/install/ruleLayerPartition.js.map +0 -1
- package/dist/install/rule_scope.js.map +0 -1
- package/dist/install/rule_scope_cli.js.map +0 -1
- package/dist/install/selectedTools.js.map +0 -1
- package/dist/install/toolDetection.js.map +0 -1
- package/dist/install/txlog.js.map +0 -1
- package/dist/install/types.js.map +0 -1
- package/dist/install/wizard-plan.js.map +0 -1
- package/dist/install/wizardDismissals.js.map +0 -1
- package/dist/scripts/_lib/agent_settings.js.map +0 -1
- package/dist/scripts/_lib/agent_src.js.map +0 -1
- package/dist/scripts/_lib/claude_builtin_names.js.map +0 -1
- package/dist/scripts/_lib/claude_plugin.js.map +0 -1
- package/dist/scripts/_lib/claude_settings_hooks.js.map +0 -1
- package/dist/scripts/_lib/compile_time_toggles.js.map +0 -1
- package/dist/scripts/_lib/environment_detector.js.map +0 -1
- package/dist/scripts/_lib/host_launch.js.map +0 -1
- package/dist/scripts/_lib/install_layout.js.map +0 -1
- package/dist/scripts/_lib/installed_lock.js.map +0 -1
- package/dist/scripts/_lib/lean_projection_mode.js.map +0 -1
- package/dist/scripts/_lib/model_tier.js.map +0 -1
- package/dist/scripts/_lib/prune_empty_dirs.js.map +0 -1
- package/dist/scripts/_lib/scoped_projection.js.map +0 -1
- package/dist/scripts/_lib/script_output.js.map +0 -1
- package/dist/scripts/_lib/spawn_env.js.map +0 -1
- package/dist/scripts/_lib/surface_tiers.js.map +0 -1
- package/dist/scripts/_lib/token_count.js.map +0 -1
- package/dist/scripts/_lib/trigger_eval_floors.js.map +0 -1
- package/dist/scripts/_lib/ui_surface.js.map +0 -1
- package/dist/scripts/_lib/user_global_paths.js.map +0 -1
- package/dist/scripts/ai_council/modes.js.map +0 -1
- package/dist/scripts/ai_council/transport_resolver.js.map +0 -1
- package/dist/scripts/condense.js.map +0 -1
- package/dist/scripts/project_thin_rules.js.map +0 -1
- package/dist/server/app.js.map +0 -1
- package/dist/server/io/atomicMultiWrite.js.map +0 -1
- package/dist/server/io/atomicWrite.js.map +0 -1
- package/dist/server/io/sharedWriteCheck.js.map +0 -1
- package/dist/server/io/substituteTemplate.js.map +0 -1
- package/dist/server/io/yamlIO.js.map +0 -1
- package/dist/server/nicknameResolver.js.map +0 -1
- package/dist/server/port.js.map +0 -1
- package/dist/server/routes/discovery.js.map +0 -1
- package/dist/server/routes/install.js.map +0 -1
- package/dist/server/routes/ping.js.map +0 -1
- package/dist/server/routes/schema.js.map +0 -1
- package/dist/server/routes/settings.js.map +0 -1
- package/dist/server/routes/settingsChanges.js.map +0 -1
- package/dist/server/routes/userMd.js.map +0 -1
- package/dist/server/routes/wizard.js.map +0 -1
- package/dist/server/routes/workspace.js.map +0 -1
- package/dist/server/schemas/settings.js.map +0 -1
- package/dist/server/serverInfo.js.map +0 -1
- package/dist/server/token.js.map +0 -1
- package/dist/server/writeRoot.js.map +0 -1
- package/dist/shared/capabilities.js.map +0 -1
- package/dist/shared/interactiveContext.js.map +0 -1
- package/dist/shared/nicknamePrefill.js.map +0 -1
- package/dist/shared/settingsAsks.js.map +0 -1
- package/dist/shared/settingsCarveOut.js.map +0 -1
- package/dist/shared/settingsClasses.js.map +0 -1
- package/dist/shared/settingsConsent.js.map +0 -1
- package/dist/shared/settingsSurface.js.map +0 -1
- package/dist/shared/skillRanking.js.map +0 -1
- package/dist/shared/userMd/formAdapter.js.map +0 -1
- package/dist/shared/userMd/schema.js.map +0 -1
- package/dist/shared/userMd/utils.js.map +0 -1
- package/dist/ui/assets/index-Cxgy63kz.js +0 -26
- package/dist/ui/assets/index-Cxgy63kz.js.map +0 -1
- package/src/scripts/_lib/adr_frontmatter.test.ts +0 -365
- package/src/scripts/_lib/adversarial_council_gate.test.ts +0 -112
- package/src/scripts/_lib/adversarial_reconcile.test.ts +0 -197
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +0 -150
- package/src/scripts/_lib/secret_detector.test.ts +0 -108
- package/src/scripts/_lib/secret_detector_adversarial.test.ts +0 -116
- package/src/scripts/_lib/ui_authority.test.ts +0 -251
- package/src/scripts/_lib/untrusted_content.test.ts +0 -175
- package/src/scripts/check_secret_leak.test.ts +0 -90
- package/src/scripts/design_slop_rules.test.ts +0 -246
- package/src/scripts/self_review_gate.test.ts +0 -296
- package/src/shared/capabilities.test.ts +0 -43
|
@@ -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.
|
|
@@ -7,34 +7,77 @@
|
|
|
7
7
|
|
|
8
8
|
## Indexing
|
|
9
9
|
|
|
10
|
+
Three separate things get conflated here, and keeping them apart is what makes
|
|
11
|
+
the rest of this section decidable:
|
|
12
|
+
|
|
13
|
+
1. **Declaring an integrity constraint** — a uniqueness or foreign-key
|
|
14
|
+
constraint. This is a correctness decision about the data model.
|
|
15
|
+
2. **Indexing the referencing column** — the child side of a foreign key, which
|
|
16
|
+
is what makes the lookup and the constraint check fast.
|
|
17
|
+
3. **Adding an optional query-performance index** — everything else.
|
|
18
|
+
|
|
19
|
+
The row-count guidance below governs **(3) only**. It has never governed (1),
|
|
20
|
+
and it must not be read as governing (2).
|
|
21
|
+
|
|
10
22
|
### When to add indexes
|
|
11
23
|
|
|
12
24
|
- Columns in `WHERE` clauses
|
|
13
25
|
- Columns in `JOIN` conditions
|
|
14
26
|
- Columns in `ORDER BY` (especially with pagination)
|
|
15
27
|
- Foreign key columns (Laravel adds with `foreignId()`)
|
|
28
|
+
- Columns carrying a declared uniqueness constraint
|
|
16
29
|
|
|
17
30
|
### When NOT to add indexes
|
|
18
31
|
|
|
32
|
+
These apply to **optional performance indexes** — category (3) above:
|
|
33
|
+
|
|
19
34
|
- Boolean columns with low selectivity (99% same value)
|
|
20
|
-
-
|
|
35
|
+
- Tables that are both small (< 1000 rows) **and rarely accessed**
|
|
21
36
|
- Frequently updated columns (indexes slow writes)
|
|
22
37
|
|
|
38
|
+
**Row count decides nothing on its own.** A 40-row lookup table joined in every
|
|
39
|
+
report query and a 40-row config table read twice a week are the same size and
|
|
40
|
+
not the same decision — index the first on its observed access pattern, leave
|
|
41
|
+
the second alone. "Small" without "rarely accessed" is the folklore half of this
|
|
42
|
+
rule.
|
|
43
|
+
|
|
44
|
+
**Foreign-key and uniqueness indexes are created regardless of table size.**
|
|
45
|
+
They serve integrity and lookup latency, and a row count bears on neither. A
|
|
46
|
+
40-row child table pointing at a customers table gets its foreign-key column
|
|
47
|
+
indexed like any other. Omit one only on the strength of inspected schema
|
|
48
|
+
behavior plus a representative workload measurement showing it serves no access
|
|
49
|
+
path — never on an anticipated write cost.
|
|
50
|
+
|
|
23
51
|
### Composite indexes
|
|
24
52
|
|
|
25
|
-
Order matters
|
|
53
|
+
Order matters, and what decides it is the **predicate shape**, not selectivity:
|
|
54
|
+
|
|
55
|
+
1. Columns compared with **equality** (`=`, `IN`) come first.
|
|
56
|
+
2. Then the column compared with a **range** (`<`, `>`, `BETWEEN`, `LIKE 'x%'`).
|
|
57
|
+
3. Then columns the query only **orders by**.
|
|
58
|
+
|
|
59
|
+
Selectivity is a tie-break *within* a group, never the primary key of the
|
|
60
|
+
decision. An index cannot use any column after the first range predicate for
|
|
61
|
+
lookup, so a highly selective range column placed first throws away every column
|
|
62
|
+
behind it.
|
|
26
63
|
|
|
27
64
|
```php
|
|
65
|
+
// WHERE customer_id = ? AND created_at > ? ORDER BY created_at
|
|
28
66
|
$table->index(['customer_id', 'created_at']);
|
|
29
67
|
```
|
|
30
68
|
|
|
69
|
+
`customer_id` leads because it is the **equality** predicate — not because it is
|
|
70
|
+
more selective. Reverse the order and the equality column sits behind a range,
|
|
71
|
+
where the index can no longer seek on it. That holds even when `created_at` is
|
|
72
|
+
the more selective of the two, which is exactly the case the folklore rule gets
|
|
73
|
+
wrong.
|
|
74
|
+
|
|
31
75
|
## Query Optimization
|
|
32
76
|
|
|
33
77
|
### EXPLAIN analysis
|
|
34
78
|
|
|
35
|
-
| Column |
|
|
79
|
+
| Column | Value worth a second look | The question it raises |
|
|
36
80
|
|---|---|---|
|
|
37
|
-
| `type` | `ALL` | Full table scan — needs index |
|
|
38
81
|
| `rows` | High number | Too many rows examined |
|
|
39
82
|
| `Extra` | `Using filesort` | Sorting without index |
|
|
40
83
|
| `Extra` | `Using temporary` | Temp table — optimize GROUP BY/DISTINCT |
|
|
@@ -42,6 +85,22 @@ $table->index(['customer_id', 'created_at']);
|
|
|
42
85
|
|
|
43
86
|
Good values: `type` = `ref`, `eq_ref`, `const`; `Extra` = `Using index`.
|
|
44
87
|
|
|
88
|
+
**`type = ALL` is a full table scan, and a full table scan is often the correct
|
|
89
|
+
plan.** It belongs in no "bad value" column, because the row itself does not
|
|
90
|
+
decide:
|
|
91
|
+
|
|
92
|
+
- On a table small enough to sit in a page or two, the scan is **cheaper** than
|
|
93
|
+
an index lookup — the index costs a second read plus a row fetch per hit.
|
|
94
|
+
- On a predicate that matches a large fraction of the table, the planner picks
|
|
95
|
+
the scan **on purpose**; forcing an index there is slower, and many planners
|
|
96
|
+
will ignore the hint.
|
|
97
|
+
- On a table with hundreds of thousands of rows and a predicate matching a
|
|
98
|
+
handful, `ALL` is the defect.
|
|
99
|
+
|
|
100
|
+
The question to answer is *how many rows the predicate matches, out of how
|
|
101
|
+
many* — not whether `type` reads `ALL`. Compare the planner's `rows` estimate
|
|
102
|
+
against the table's size before concluding anything.
|
|
103
|
+
|
|
45
104
|
### Anti-patterns
|
|
46
105
|
|
|
47
106
|
| Anti-pattern | Fix |
|
|
@@ -49,9 +108,20 @@ Good values: `type` = `ref`, `eq_ref`, `const`; `Extra` = `Using index`.
|
|
|
49
108
|
| `SELECT *` in production | Select only needed columns |
|
|
50
109
|
| `LIKE '%search%'` | Fulltext search or `LIKE 'search%'` |
|
|
51
110
|
| `OFFSET` on large tables | Cursor pagination |
|
|
52
|
-
| Subquery in WHERE | Rewrite as JOIN |
|
|
53
111
|
| `ORDER BY RAND()` | Application-level randomization |
|
|
54
112
|
|
|
113
|
+
**Subqueries in `WHERE` are not on that list**, and the unconditional "rewrite
|
|
114
|
+
as a JOIN" they used to carry here was wrong more often than it was right:
|
|
115
|
+
|
|
116
|
+
| The subquery is | Do |
|
|
117
|
+
|---|---|
|
|
118
|
+
| **correlated** — it references the outer row, so it re-executes per row | rewrite as a JOIN, or as a derived table joined once. This is the case the folklore rule was built for |
|
|
119
|
+
| an **uncorrelated `IN` / `EXISTS`** | leave it. Planners flatten these into a semi-join already, and the hand-written JOIN often introduces the duplicate rows a semi-join was avoiding |
|
|
120
|
+
| a **bound on the driving set** — it produces a small list the outer query then filters on | leave it. Rewriting widens the driving set, which is the opposite of the intent |
|
|
121
|
+
|
|
122
|
+
Check the plan before rewriting: if the subquery already shows as a semi-join or
|
|
123
|
+
a materialized derived table executed once, the rewrite buys nothing and costs
|
|
124
|
+
correctness.
|
|
55
125
|
### Pagination
|
|
56
126
|
|
|
57
127
|
Always paginate list endpoints — never `get()` on unbounded queries:
|
|
@@ -68,10 +138,23 @@ $users = User::query()->orderBy('id')->cursorPaginate(15);
|
|
|
68
138
|
|
|
69
139
|
- Use `php artisan make:migration` to generate.
|
|
70
140
|
- Use `decimal` for money — never `float`.
|
|
71
|
-
- Add foreign keys with `constrained()
|
|
141
|
+
- Add foreign keys with `constrained()`, and **choose** the `onDelete()` action
|
|
142
|
+
rather than copying one: `cascade` when the child is expendable without its
|
|
143
|
+
parent, `restrict` when the child is a record in its own right (an invoice, an
|
|
144
|
+
audit row, a payment), `set null` when it survives the parent with the link
|
|
145
|
+
removed — which needs a nullable column. The decision table lives in
|
|
146
|
+
[`laravel-migration`](../../../src/skills/laravel-migration/SKILL.md)
|
|
147
|
+
§ Referential action is a decision.
|
|
72
148
|
- Always add indexes for searchable/filterable columns.
|
|
73
149
|
- One logical change per migration.
|
|
74
|
-
-
|
|
150
|
+
- **Declare recovery, always.** Either a `down()` that restores the prior state,
|
|
151
|
+
or — when restoration is genuinely impossible — a roll-forward plan written in
|
|
152
|
+
the migration file itself, naming why restoration is impossible with the
|
|
153
|
+
evidence, the ordered recovery steps and their inputs, the criteria that say
|
|
154
|
+
recovery succeeded, and the responsible owner. Silence is the violation, not
|
|
155
|
+
the absence of `down()`. Full contract:
|
|
156
|
+
[`laravel-migration`](../../../src/skills/laravel-migration/SKILL.md)
|
|
157
|
+
§ The recovery contract.
|
|
75
158
|
|
|
76
159
|
### Multi-connection migrations
|
|
77
160
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Prompt Templates
|
|
2
2
|
|
|
3
|
-
Reference catalogue of prompt structures the [`prompt-optimizer`](
|
|
3
|
+
Reference catalogue of prompt structures the [`prompt-optimizer`](../../src/skills/prompt-optimizer/SKILL.md)
|
|
4
4
|
skill picks from during the **Develop** step of the 4-D methodology.
|
|
5
|
-
Cited by the [`refine-prompt`](
|
|
5
|
+
Cited by the [`refine-prompt`](../../src/skills/refine-prompt/SKILL.md)
|
|
6
6
|
skill in `mini` mode for stack-aware shaping.
|
|
7
7
|
|
|
8
8
|
Templates are tools, not dogma. Pick by request type, not by upstream
|
|
@@ -108,7 +108,7 @@ warrants either reaction. The stance slot makes the honest-when-warranted
|
|
|
108
108
|
contract explicit.
|
|
109
109
|
|
|
110
110
|
**Package equivalents** — inside this agent-config, the
|
|
111
|
-
[`adversarial-review`](
|
|
111
|
+
[`adversarial-review`](../../src/skills/adversarial-review/SKILL.md)
|
|
112
112
|
skill implements the same stance via an Attack-Defend-Revise loop and is
|
|
113
113
|
the right tool when the user submits finished work for a critical take.
|
|
114
114
|
This template is for **end-users prompting their own LLM** (ChatGPT,
|
|
@@ -155,7 +155,7 @@ are slots the model cannot fill honestly.
|
|
|
155
155
|
The catalogue's own position: a template earns its place by making a
|
|
156
156
|
request *checkable*, not by making it sound authoritative. Where a rough
|
|
157
157
|
prompt carries one of these three, the
|
|
158
|
-
[`prompt-optimizer`](
|
|
158
|
+
[`prompt-optimizer`](../../src/skills/prompt-optimizer/SKILL.md)
|
|
159
159
|
strips it in its de-inflation sub-step before any template is picked —
|
|
160
160
|
and strips nothing else, because everything outside these three is a
|
|
161
161
|
requirement the author meant. This section is own analysis; it records a
|
|
@@ -183,7 +183,7 @@ membership.
|
|
|
183
183
|
|
|
184
184
|
## See also
|
|
185
185
|
|
|
186
|
-
- [`prompt-optimizer`](
|
|
187
|
-
- [`refine-prompt`](
|
|
188
|
-
- [`prompt-engineering-patterns`](
|
|
186
|
+
- [`prompt-optimizer`](../../src/skills/prompt-optimizer/SKILL.md) — engine-outbound; cites this catalogue in its Develop step
|
|
187
|
+
- [`refine-prompt`](../../src/skills/refine-prompt/SKILL.md) — engine-inbound; uses templates in `mini` mode for stack-aware shaping
|
|
188
|
+
- [`prompt-engineering-patterns`](../../src/skills/prompt-engineering-patterns/SKILL.md) — production-LLM prompt patterns (sibling skill, not a catalogue)
|
|
189
189
|
- AI Council session: `agents/runtime/council/responses/prompt-master-mini.json` (2026-05-17) <!-- council-ref-allowed: ADR decision trace -->
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Redundancy Taxonomy
|
|
2
|
+
|
|
3
|
+
> The one place this package names what duplication *is*, what may be decided
|
|
4
|
+
> about it, and how to tell a second explanation that adds information from one
|
|
5
|
+
> that only adds length. Cited by [`code-clarity`](code-clarity.md) at the
|
|
6
|
+
> authoring moment, by `skill:code-review` at the review moment, and by
|
|
7
|
+
> `skill:code-refactoring` at the refactoring moment. Those three cite it —
|
|
8
|
+
> they do not restate it, because three copies of a redundancy taxonomy would
|
|
9
|
+
> be the defect it describes.
|
|
10
|
+
|
|
11
|
+
Finding duplication is not a decision. Every finding reaches a **named verdict**
|
|
12
|
+
with a reason, and several of the verdicts keep the duplication. The goal is not
|
|
13
|
+
the lowest clone percentage — it is **one honest authority per shared fact**,
|
|
14
|
+
without marrying independent concepts through a wrong abstraction.
|
|
15
|
+
|
|
16
|
+
## The classes
|
|
17
|
+
|
|
18
|
+
**Implementation** — the same code exists twice.
|
|
19
|
+
|
|
20
|
+
| Class | What it is |
|
|
21
|
+
|---|---|
|
|
22
|
+
| Exact clone | Same tokens. |
|
|
23
|
+
| Renamed clone | Same structure; identifiers or literals differ. |
|
|
24
|
+
| Near clone | Shared core with local additions or deletions. |
|
|
25
|
+
| Structural pattern | Same shape, no copy/paste lineage. |
|
|
26
|
+
| Boilerplate | Framework, protocol, or generated ceremony. |
|
|
27
|
+
| Test repetition | Repeated setup or assertion structure. |
|
|
28
|
+
| Intentional independence | Similar today, meant to diverge. |
|
|
29
|
+
| Wrong abstraction | Already shared, now growing caller flags and modes. |
|
|
30
|
+
|
|
31
|
+
**Knowledge** — the same *fact* is encoded twice. Usually more actionable than
|
|
32
|
+
raw clone percentage, because a clone can be harmless and a divided fact rarely is.
|
|
33
|
+
|
|
34
|
+
| Class | What it is |
|
|
35
|
+
|---|---|
|
|
36
|
+
| Knowledge duplication | One business rule, constant, or algorithm encoded more than once. |
|
|
37
|
+
| Policy duplication | One governance decision represented across independent surfaces. |
|
|
38
|
+
| Contract duplication | One external protocol or CLI contract reimplemented instead of consumed. |
|
|
39
|
+
| Delivery-authority duplication | Two authored sources can produce the same shipped artifact. |
|
|
40
|
+
|
|
41
|
+
**Representation** — the same *meaning* is presented twice to a reader: a
|
|
42
|
+
comment, label, hint, tooltip, placeholder, badge, heading, caption, or toast.
|
|
43
|
+
|
|
44
|
+
| Class | What it is |
|
|
45
|
+
|---|---|
|
|
46
|
+
| Exact text echo | The same text repeated in the same context. |
|
|
47
|
+
| Paraphrase echo | A second surface restating the first in other words. |
|
|
48
|
+
| Structural narration | Prose naming what the code or UI already shows. |
|
|
49
|
+
| Decorative metadata | An eyebrow, badge, or heading with no scanning or semantic value. |
|
|
50
|
+
| Feedback echo | Status text duplicating already-obvious state. |
|
|
51
|
+
| Accessibility conflict | Removing it would delete required semantic information. |
|
|
52
|
+
|
|
53
|
+
An accessibility conflict is a **hard guard, never a deletion candidate**. A
|
|
54
|
+
reduction that improves the visual channel by breaking the semantic one is not a
|
|
55
|
+
reduction; it is a defect.
|
|
56
|
+
|
|
57
|
+
**Naming** — the *dual* of a representation echo. An echo says one meaning twice;
|
|
58
|
+
divergent naming says one meaning with two words, so the reader cannot tell
|
|
59
|
+
whether they are looking at one concept or two. It is a modelling defect rather
|
|
60
|
+
than a style preference: a concept carries one term across the whole model, and
|
|
61
|
+
several terms for one concept is the model telling you it has not decided.
|
|
62
|
+
<!-- harvest:one-language-per-concept-inconsistency-is-a-model-defect -->
|
|
63
|
+
|
|
64
|
+
| Class | What it is |
|
|
65
|
+
|---|---|
|
|
66
|
+
| Spelling variant | One word, two spellings (`artifact` / `artefact`). No semantic difference; decidable without judgement. |
|
|
67
|
+
| Synonym drift | One concept, several terms. Needs a term map, because the terms may denote different things. |
|
|
68
|
+
| Homonym collision | One term, several meanings. The opposite failure, and usually `keep-duplicated` when the meanings are module-local. |
|
|
69
|
+
|
|
70
|
+
Naming verdicts: `canonicalize-term` · `keep-distinct` (with the recorded reason
|
|
71
|
+
— an external compatibility value, a quoted name, a genuinely different concept)
|
|
72
|
+
· `defer-for-context`.
|
|
73
|
+
|
|
74
|
+
**Only a spelling variant is mechanically decidable, and the split between the
|
|
75
|
+
prose layer and the identifier layer is decisive.** Prose is a substitution;
|
|
76
|
+
filenames, symbols and their test and task references are a rename refactor with
|
|
77
|
+
its own blast radius, and the same cluster can be committed to different sides on
|
|
78
|
+
each layer. Measure both before proposing either — the measured example is in
|
|
79
|
+
`agents/evidence/analysis/wording-baseline-2026-08-25.md`, where nothing imports
|
|
80
|
+
across the split and the identifier layer is therefore `keep-duplicated` while
|
|
81
|
+
the prose layer is `canonicalize-term`.
|
|
82
|
+
|
|
83
|
+
Synonym drift is the class to be slowest about. Words that read as synonyms in
|
|
84
|
+
translation frequently denote different mechanisms — here `route`, `dispatch`,
|
|
85
|
+
`delegate`, `spawn` and `forward` are five mechanisms, not one concept spelled
|
|
86
|
+
five ways — so a sweep over them destroys information the echo classes exist to
|
|
87
|
+
protect.
|
|
88
|
+
|
|
89
|
+
## Why any of this is worth a gate at all
|
|
90
|
+
|
|
91
|
+
Generated code trends toward duplication rather than reuse: measured
|
|
92
|
+
longitudinally over roughly 211 million changed lines, copy/pasted code rose from
|
|
93
|
+
8.3 % to 12.3 % of changes over the period assistance became common.
|
|
94
|
+
<!-- harvest:ai-agents-raise-copy-paste-share --> The pressure this document
|
|
95
|
+
resists is therefore not a hypothetical — it is the default direction of the tool
|
|
96
|
+
writing the code, which is why `keep-duplicated` needs to be a recorded verdict
|
|
97
|
+
rather than an unstated outcome.
|
|
98
|
+
|
|
99
|
+
Where enforcement follows, the shape is already known: separate the term list
|
|
100
|
+
from the rules, and control false positives by **syntax awareness** — skip
|
|
101
|
+
frontmatter, fenced code and inline code rather than matching inside them.
|
|
102
|
+
<!-- harvest:prose-linter-vocabulary-accept-reject --> `check_md_language.ts`
|
|
103
|
+
already carries exactly that skip machinery.
|
|
104
|
+
|
|
105
|
+
## The verdicts
|
|
106
|
+
|
|
107
|
+
For implementation and knowledge findings: `extract-local` · `extract-module` ·
|
|
108
|
+
`canonicalize-knowledge` · `canonicalize-contract` · `single-copy-delivery` ·
|
|
109
|
+
`data-drive` · `compose-strategy` · `generate` · **`keep-duplicated`** ·
|
|
110
|
+
`defer-for-evidence` · **`de-abstract`**.
|
|
111
|
+
|
|
112
|
+
For representation findings: `keep` · `drop` · `consolidate` ·
|
|
113
|
+
`rewrite-for-signal` · `accessibility-block` · `defer-for-context`.
|
|
114
|
+
|
|
115
|
+
`keep-duplicated` and `de-abstract` are **successful outcomes**, not failures to
|
|
116
|
+
act. A wrong abstraction costs more than the duplication it replaced, so a
|
|
117
|
+
recorded decision to leave two copies alone — or to split one shared unit back
|
|
118
|
+
apart — closes a finding as legitimately as an extraction does. What is not
|
|
119
|
+
allowed is silence: a finding with no recorded verdict stays open.
|
|
120
|
+
|
|
121
|
+
## Before sharing an implementation
|
|
122
|
+
|
|
123
|
+
1. Is it the same knowledge, or two facts that currently look alike?
|
|
124
|
+
2. Would both copies change for the same reason?
|
|
125
|
+
3. Is there one honest domain name that fits every call site?
|
|
126
|
+
4. Can the common core stay free of caller-specific flags and modes?
|
|
127
|
+
5. Is the dependency direction healthy?
|
|
128
|
+
6. Does this reduce maintenance risk, or only line count?
|
|
129
|
+
7. Are public contracts preserved, and do tests prove behavioural equivalence?
|
|
130
|
+
8. Is this generated or protocol ceremony that should stay explicit?
|
|
131
|
+
9. **If the two copies diverged tomorrow, would that be a defect or legitimate
|
|
132
|
+
evolution?**
|
|
133
|
+
|
|
134
|
+
A "legitimate evolution" answer to the last question is decisive: prefer
|
|
135
|
+
independence, verdict `keep-duplicated`.
|
|
136
|
+
|
|
137
|
+
## The Information Delta Test
|
|
138
|
+
|
|
139
|
+
Before adding any comment, docblock, label, hint, tooltip, placeholder, badge,
|
|
140
|
+
caption, empty-state line, or explanatory sentence, in code or in a user
|
|
141
|
+
interface:
|
|
142
|
+
|
|
143
|
+
- **A — Information delta.** What fact becomes unavailable if this text is
|
|
144
|
+
deleted? A non-obvious reason, an invariant, a required format, a unit, a
|
|
145
|
+
consequence, a safety warning, a recovery action, a privacy implication, an
|
|
146
|
+
unfamiliar concept, an accessibility name, or necessary grouping all count. If
|
|
147
|
+
the answer is "nothing", delete it.
|
|
148
|
+
- **B — Representation delta.** Is that fact already carried adequately by a
|
|
149
|
+
nearby representation — the name, the type, the component structure, the
|
|
150
|
+
semantic element, the visible control text, an icon, a test? If so,
|
|
151
|
+
consolidate; do not repeat.
|
|
152
|
+
- **C — Channel preservation.** Would deleting it weaken visual comprehension,
|
|
153
|
+
semantic accessibility, or both? Never optimise one channel by breaking the
|
|
154
|
+
other.
|
|
155
|
+
- **D — Persistence.** Will it still be true after the next ordinary refactor?
|
|
156
|
+
Text describing the current implementation rather than the durable constraint
|
|
157
|
+
is noise with a delay fuse.
|
|
158
|
+
- **E — Actionability.** For user-facing copy: does it change what the reader
|
|
159
|
+
understands, chooses, enters, expects, or does next? If not, it is a strong
|
|
160
|
+
deletion candidate.
|
|
161
|
+
|
|
162
|
+
The rule is **not** "less text". It is: if removing the text loses no
|
|
163
|
+
information in any required channel, remove it — and if the information is
|
|
164
|
+
required, express it once, in the strongest native form available. A visible
|
|
165
|
+
form label is required information, so it stays; a placeholder repeating that
|
|
166
|
+
label is an exact text echo, so it goes.
|
|
167
|
+
|
|
168
|
+
## Legacy is baseline, new duplication is the finding
|
|
169
|
+
|
|
170
|
+
Existing duplication does not fail an unrelated change. A review or refactor
|
|
171
|
+
raises a finding when a change **introduces** high-confidence knowledge, policy,
|
|
172
|
+
contract, or delivery-authority duplication — or when it touches a surface that
|
|
173
|
+
already carries some. Anything else is debt with a measurement, not a blocker.
|
|
174
|
+
|
|
175
|
+
## See also
|
|
176
|
+
|
|
177
|
+
- [`code-clarity`](code-clarity.md) — the authoring moment; comment discipline
|
|
178
|
+
and the banned classes this test generalises.
|
|
179
|
+
- [`abstraction-thresholds`](abstraction-thresholds.md) — how much repetition
|
|
180
|
+
earns an abstraction, per artifact class.
|
package/llms.txt
CHANGED
|
@@ -281,9 +281,9 @@ technical-specification: Use when the user says \"write a spec\", \"create RFC\"
|
|
|
281
281
|
terraform: Use when writing Terraform — AWS modules, resources, variables, outputs, remote state — even when the user just says 'provision this infra' or 'add an S3 bucket' without naming Terraform.
|
|
282
282
|
terragrunt: Use when working with Terragrunt — DRY multi-env configs, module dependencies, remote state orchestration — even when the user just says 'deploy this to staging and prod' without naming Terragrunt.
|
|
283
283
|
test-case-discovery: Use BEFORE writing any test — enumerate cases per behavior (happy / boundary / error / abuse), prioritize by likelihood × impact, cross-check via subagent — even if the user just says 'add tests'.
|
|
284
|
-
test-driven-development: Use when implementing a feature, fixing a bug, or refactoring — write
|
|
284
|
+
test-driven-development: Use when implementing a feature, fixing a bug, or refactoring — write the failing test first, then the code, even on 'add this function'. Owns the ORDER; test shape is `testing-anti-patterns`.
|
|
285
285
|
test-performance: Use when optimizing test suite performance — database setup, seeder optimization, parallel testing, CI pipeline efficiency, or RefreshDatabase alternatives.
|
|
286
|
-
testing-anti-patterns: Use BEFORE writing/changing tests
|
|
286
|
+
testing-anti-patterns: Use BEFORE writing/changing tests or adding mocks — mocking-the-mock, production pollution, overfit assertions — even on 'is this test any good?'. Test SHAPE; the order is `test-driven-development`.
|
|
287
287
|
threat-modeling: Use when adding auth, webhooks, uploads, queues, secrets, tenant boundaries, or public endpoints — produces trust boundaries + abuse cases mapped to files, BEFORE implementation.
|
|
288
288
|
throughput-vs-morale-tradeoff: Use when balancing eng-team velocity vs quality vs burnout — on-call load, focus fragmentation, reorg shock. Triggers on 'team is burning out', 'why is velocity dropping'.
|
|
289
289
|
token-optimizer: Use BEFORE any verbose CLI run, large file read, doc conversion, or near-context handoff — decision tree keyed by intent citing the canonical token-saving asset.
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event4u/agent-config",
|
|
3
3
|
"mcpName": "io.github.event4u-app/agent-config",
|
|
4
|
-
"version": "14.
|
|
5
|
-
"description": "Governed skills, rules and commands for AI coding tools (Claude Code, Cursor, Windsurf, Copilot) — every claim machine-checked, including
|
|
4
|
+
"version": "14.13.0",
|
|
5
|
+
"description": "Governed skills, rules and commands for AI coding tools (Claude Code, Cursor, Windsurf, Copilot) — every claim machine-checked, including the counts in these badges.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"private": false,
|
|
8
8
|
"type": "module",
|
|
@@ -52,14 +52,21 @@
|
|
|
52
52
|
"AGENTS.md",
|
|
53
53
|
"CHANGELOG.md",
|
|
54
54
|
"CONTRIBUTING.md",
|
|
55
|
+
"CREDITS.md",
|
|
55
56
|
"LICENSE",
|
|
56
57
|
"MIGRATION.md",
|
|
58
|
+
"NOTICE",
|
|
59
|
+
"docs/THIRD-PARTY-NOTICES.md",
|
|
57
60
|
"README.md",
|
|
58
61
|
"llms.txt",
|
|
59
62
|
"!dist/**/*.test.js",
|
|
60
63
|
"!dist/**/*.test.js.map",
|
|
61
64
|
"!dist/**/*.spec.js",
|
|
62
|
-
"!dist/**/*.spec.js.map"
|
|
65
|
+
"!dist/**/*.spec.js.map",
|
|
66
|
+
"!src/**/*.test.ts",
|
|
67
|
+
"!src/**/*.spec.ts",
|
|
68
|
+
"!dist/agent-src/skills/**/evals/**",
|
|
69
|
+
"!dist/**/*.map"
|
|
63
70
|
],
|
|
64
71
|
"bin": {
|
|
65
72
|
"agent-config": "dist/cli/agent-config.js"
|