@event4u/agent-config 14.12.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 +234 -0
- 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/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/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 +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 +57 -57
- 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 +1836 -712
- 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 +4818 -2645
- 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/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 +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 +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 +38 -36
- package/src/config/evaluator-budgets.json +14 -14
- package/src/config/gate-coverage.yml +579 -63
- package/src/config/gate-reachability-exemptions.json +21 -0
- package/src/config/gate-violation-baselines.json +37 -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 +8 -8
- 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 +126 -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 +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/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/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/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 +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 +142 -1
- 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_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/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 +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 +98 -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 +4 -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/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_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 +426 -23
- 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/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/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,101 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
# Container-only tooling shim — road-to-skill-ecosystem-runtime-enforcement
|
|
3
|
+
# Phase 1 Steps 2-4. AI council 2/2 (2026-08-25) scoped Phase 1 to THIS shim
|
|
4
|
+
# alone; the hook-bypass-flag and package-manager candidates are recorded as
|
|
5
|
+
# out of scope at `blocker: shim-scope-decision`.
|
|
6
|
+
#
|
|
7
|
+
# WHAT IT DOES. Refuses a host invocation of a tool the container-only rule
|
|
8
|
+
# reserves for the project container, and prints the sanctioned in-container
|
|
9
|
+
# form with the caller's own arguments re-quoted, so the alternative is
|
|
10
|
+
# directly runnable rather than a template to adapt.
|
|
11
|
+
#
|
|
12
|
+
# WHY SHELL AND NOT AN INTERPRETED RUNTIME. Startup dominates: this runs on
|
|
13
|
+
# every invocation of the shimmed names, most of which are legitimate, so a
|
|
14
|
+
# node or python start would be paid constantly to say nothing. Same reason the
|
|
15
|
+
# fast-pass below is a case statement rather than a parse.
|
|
16
|
+
#
|
|
17
|
+
# WHY A PATH PREPEND AND NOT A PER-TOOL-CALL HOOK. A prepend costs nothing per
|
|
18
|
+
# call and works for any process the session starts, including ones no hook
|
|
19
|
+
# surface observes. It is also session-scoped and reversible by construction --
|
|
20
|
+
# the installer never writes a profile.
|
|
21
|
+
#
|
|
22
|
+
# EXIT CODE. Non-zero (2) on refusal. Never 0 on a refusal: a shim that exits 0
|
|
23
|
+
# has told the caller nothing the caller must act on, and the recorded trap on
|
|
24
|
+
# this host is the opposite mistake -- an ADVISORY exit 2 read as a hard block.
|
|
25
|
+
# This one is not advisory; the refusal is the point.
|
|
26
|
+
|
|
27
|
+
set -eu
|
|
28
|
+
|
|
29
|
+
# --- The global kill switch (Step 7) -------------------------------------
|
|
30
|
+
#
|
|
31
|
+
# One variable disables every hook for one invocation. It is checked FIRST so
|
|
32
|
+
# the escape hatch cannot be shadowed by anything below, and it re-execs the
|
|
33
|
+
# real binary rather than exiting, so `AGENT_CONFIG_DISABLE_HOOKS=1 php -v`
|
|
34
|
+
# does what it says instead of merely not refusing.
|
|
35
|
+
#
|
|
36
|
+
# Finding the real binary: strip this shim's own directory out of PATH and look
|
|
37
|
+
# again. Without that the re-exec finds the shim and loops.
|
|
38
|
+
if [ "${AGENT_CONFIG_DISABLE_HOOKS:-}" = "1" ]; then
|
|
39
|
+
_shim_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
|
|
40
|
+
_clean_path=$(printf '%s' "${PATH:-}" | tr ':' '\n' | while IFS= read -r _p; do
|
|
41
|
+
[ -n "$_p" ] || continue
|
|
42
|
+
_rp=$(CDPATH= cd -- "$_p" 2>/dev/null && pwd -P) || continue
|
|
43
|
+
[ "$_rp" = "$_shim_dir" ] && continue
|
|
44
|
+
printf '%s:' "$_p"
|
|
45
|
+
done)
|
|
46
|
+
_real=$(PATH="${_clean_path%:}" command -v "$(basename -- "$0")" 2>/dev/null || true)
|
|
47
|
+
if [ -n "$_real" ]; then
|
|
48
|
+
exec "$_real" "$@"
|
|
49
|
+
fi
|
|
50
|
+
# Disabled, and there is no real binary to fall through to. Say so rather
|
|
51
|
+
# than exiting 0: the caller asked for the tool, not for silence.
|
|
52
|
+
printf '%s: hooks disabled, but no %s found outside the shim directory\n' \
|
|
53
|
+
"shims/php" "$(basename -- "$0")" >&2
|
|
54
|
+
exit 127
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# The basename this was invoked as. Dispatch on it so one script serves several
|
|
58
|
+
# names (Step 3) -- today the set is deliberately one entry wide.
|
|
59
|
+
INVOKED="$(basename -- "$0")"
|
|
60
|
+
|
|
61
|
+
case "$INVOKED" in
|
|
62
|
+
php) ;;
|
|
63
|
+
*)
|
|
64
|
+
# Invoked under a name this shim does not claim. Say so rather than
|
|
65
|
+
# guessing: a silent pass-through would make the shim look installed and
|
|
66
|
+
# inert, which is worse than an error.
|
|
67
|
+
printf '%s: shim invoked under an unclaimed basename %s\n' "shims/php" "$INVOKED" >&2
|
|
68
|
+
exit 2
|
|
69
|
+
;;
|
|
70
|
+
esac
|
|
71
|
+
|
|
72
|
+
# --- Re-quote the received arguments -------------------------------------
|
|
73
|
+
#
|
|
74
|
+
# Single-quote each argument and escape embedded single quotes as '\'' so the
|
|
75
|
+
# printed line survives copy-paste through a shell unchanged. Without this a
|
|
76
|
+
# suggestion containing a space or a quote is a suggestion that silently does
|
|
77
|
+
# something else when run.
|
|
78
|
+
quoted=''
|
|
79
|
+
for arg in "$@"; do
|
|
80
|
+
esc=$(printf '%s' "$arg" | sed "s/'/'\\\\''/g")
|
|
81
|
+
quoted="$quoted '$esc'"
|
|
82
|
+
done
|
|
83
|
+
|
|
84
|
+
SERVICE="${AGENT_CONFIG_PHP_SERVICE:-php}"
|
|
85
|
+
|
|
86
|
+
cat >&2 <<EOF
|
|
87
|
+
❌ \`$INVOKED\` was run on the HOST. This project's tooling is container-only.
|
|
88
|
+
|
|
89
|
+
Run it in the container instead:
|
|
90
|
+
|
|
91
|
+
docker compose exec -T $SERVICE $INVOKED$quoted
|
|
92
|
+
|
|
93
|
+
Why: the container-only tooling rule reserves php / artisan / composer /
|
|
94
|
+
phpstan / rector / ecs / phpunit for the project container, because a host
|
|
95
|
+
run picks up the host's PHP version and extensions and produces results
|
|
96
|
+
that do not match CI.
|
|
97
|
+
|
|
98
|
+
Override for one command: AGENT_CONFIG_DISABLE_HOOKS=1 $INVOKED ...
|
|
99
|
+
Service name: AGENT_CONFIG_PHP_SERVICE=<name> (default: php)
|
|
100
|
+
EOF
|
|
101
|
+
exit 2
|
|
@@ -50,6 +50,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
|
50
50
|
|
|
51
51
|
import { unwrap } from './envelope.js';
|
|
52
52
|
import { readHookStdin } from './hook_stdin.js';
|
|
53
|
+
import { humanTypedThisTurn } from '../_lib/machine_wake.js';
|
|
53
54
|
|
|
54
55
|
const EXIT_ALLOW = 0;
|
|
55
56
|
const SETTINGS_FILE = '.agent-settings.yml';
|
|
@@ -328,6 +329,15 @@ export function main(_argv: readonly string[] = [], now: Date = new Date()): num
|
|
|
328
329
|
return EXIT_ALLOW;
|
|
329
330
|
}
|
|
330
331
|
if (event === 'user_prompt_submit') {
|
|
332
|
+
// A machine wake is not a user turn. Without this, a background task
|
|
333
|
+
// notification arriving between the block and the user's "1"
|
|
334
|
+
// consumes the latch, and the real pick then classifies as `other`
|
|
335
|
+
// — the instrument records a miss that never happened. Same defect,
|
|
336
|
+
// same predicate, as the git-authorization ledger; see
|
|
337
|
+
// `_lib/machine_wake.ts` for the captured discriminator.
|
|
338
|
+
if (!humanTypedThisTurn(str(payload['prompt'] as JsonValue | undefined))) {
|
|
339
|
+
return EXIT_ALLOW;
|
|
340
|
+
}
|
|
331
341
|
const latch = consumeLatch(root);
|
|
332
342
|
const v = classifyTurn(str(payload['prompt'] as JsonValue | undefined), latch, now.getTime());
|
|
333
343
|
if (v.record) {
|
|
@@ -10,6 +10,22 @@
|
|
|
10
10
|
* Contract (per the verdict):
|
|
11
11
|
* - `agents/runtime/state/hot-context.md`, gitignored, OVERWRITTEN on every
|
|
12
12
|
* `stop` (cache, not journal). 400-word hard cap.
|
|
13
|
+
*
|
|
14
|
+
* loss_class: ephemeral-lossy
|
|
15
|
+
*
|
|
16
|
+
* Named, not changed (`road-to-runtime-context-floors` step 3.1). The two losses
|
|
17
|
+
* here are both deliberate and both unrecoverable, which is exactly what the
|
|
18
|
+
* class asserts: the 400-word cap discards the older half of the window, and
|
|
19
|
+
* `_redact_lines` DROPS any line the low-impact redactor refuses — including on
|
|
20
|
+
* a redactor error, which is fail-closed per line. Neither is retrievable from
|
|
21
|
+
* the output, and neither should be: this file is a privacy-floored cache whose
|
|
22
|
+
* source of truth is the transcript it was built from, and storing a recovery
|
|
23
|
+
* for a line dropped for privacy would defeat the reason it was dropped.
|
|
24
|
+
*
|
|
25
|
+
* `recoverable-lossy` would be the WRONG class here even though the transcript
|
|
26
|
+
* still exists, and the distinction is the point of the vocabulary: the class
|
|
27
|
+
* describes what THIS transform guarantees to its consumer, and this one
|
|
28
|
+
* guarantees nothing about the dropped content on purpose.
|
|
13
29
|
* - Written by DETERMINISTIC extraction from the chat-history JSONL
|
|
14
30
|
* (`agents/runtime/.agent-chat-history`) — never LLM summarization.
|
|
15
31
|
* - Every extracted line passes the low-impact privacy floor
|
|
@@ -32,8 +32,12 @@ cat > "$HOOKS_DIR/pre-push" << 'EOF'
|
|
|
32
32
|
# outputs (e.g. a new guideline bumping the count in README + docs/architecture).
|
|
33
33
|
# `task consistency` is the EXACT CI mirror (sync-check + sync + generate-tools
|
|
34
34
|
# + compile-router + compile-corpus + `git diff --quiet`),
|
|
35
|
-
# so any derived-output drift blocks the push here. Runtime ~
|
|
36
|
-
#
|
|
35
|
+
# so any derived-output drift blocks the push here. Runtime ~10s: three
|
|
36
|
+
# consecutive timed runs on 2026-08-30 measured 9.79s / 10.19s / 10.26s
|
|
37
|
+
# (road-to-agent-turnaround 3.2). The header said "~15-40s" until then, which
|
|
38
|
+
# over-stated this half of the hook by 1.5-4x while the hook AS A WHOLE was far
|
|
39
|
+
# more expensive than either number — see the preflight block below. Still
|
|
40
|
+
# cheaper than a red CI run and a fixup re-push.
|
|
37
41
|
|
|
38
42
|
# A delete-only push has no content to gate, so every check below is answering
|
|
39
43
|
# a question nobody asked. Measured 2026-08-18 during the 14.0.0 release:
|
|
@@ -83,9 +87,20 @@ fi
|
|
|
83
87
|
# preflight gates read that tree, so on a FRESH worktree (this repo's standard
|
|
84
88
|
# workflow) running preflight first would fail with "produced by regeneration
|
|
85
89
|
# but absent before" — red for a reason the contributor did not cause, which is
|
|
86
|
-
# exactly the anti-pattern this gate set exists to avoid.
|
|
87
|
-
#
|
|
88
|
-
#
|
|
90
|
+
# exactly the anti-pattern this gate set exists to avoid.
|
|
91
|
+
#
|
|
92
|
+
# BUDGET: measured 36.05s on 2026-08-30 (road-to-agent-turnaround 3.2, a clean
|
|
93
|
+
# exit-0 run), against the 25s `pre_push_budget_seconds` ceiling in
|
|
94
|
+
# src/config/ci-local-parity.yml. That is 44% OVER, and the header claimed 15s
|
|
95
|
+
# until this measurement. The ceiling's own comment calls it "a real budget, not
|
|
96
|
+
# a wish" — and nothing measures the hook, so the gate set grew past it with no
|
|
97
|
+
# signal. Recorded rather than fixed here: narrowing preflight to the pushed
|
|
98
|
+
# paths is one edit away from turning a push-blocking mirror into a partial one,
|
|
99
|
+
# which is how drift reaches CI instead of the developer.
|
|
100
|
+
#
|
|
101
|
+
# The hook's local cost is therefore ~46s (10s consistency + 36s preflight),
|
|
102
|
+
# which is what the 67s median `git push` in the ten-session corpus is mostly
|
|
103
|
+
# made of. `check_enforcement_coverage` (30.7s) stays out of preflight by design.
|
|
89
104
|
echo "🔍 Preflight — the CI-only repo-content gates..."
|
|
90
105
|
if [ "${AGENT_CONFIG_SKIP_PREPUSH_PREFLIGHT:-}" = "1" ]; then
|
|
91
106
|
echo "⏭️ skipped via AGENT_CONFIG_SKIP_PREPUSH_PREFLIGHT=1"
|
package/src/scripts/install.ts
CHANGED
|
@@ -98,6 +98,7 @@ import {
|
|
|
98
98
|
type RuleScope,
|
|
99
99
|
} from '../install/rule_scope.js';
|
|
100
100
|
import { isExclusivelyPackageOnly, stampHostLayerFingerprint } from '../install/partitionEligibility.js'; // ADR-236
|
|
101
|
+
import * as claude_rule_rewrite from '../install/claudeRuleRewrite.js';
|
|
101
102
|
import { RULE_SOURCE_REL } from '../install/wizard-plan.js';
|
|
102
103
|
import { flattenSurface, computeSurfaceDelta, type SettingsSurface } from '../shared/settingsSurface.js';
|
|
103
104
|
import { settingsSchema } from '../server/schemas/settings.js';
|
|
@@ -109,6 +110,7 @@ import {
|
|
|
109
110
|
render_native_model_md,
|
|
110
111
|
} from './_lib/model_tier.js';
|
|
111
112
|
import { main as cmdMigrateMain } from './_cli/cmd_migrate.js';
|
|
113
|
+
import { SCOPE_DETECT_AI_DIRS, SCOPE_DETECT_MANIFESTS } from '../install/detect.js';
|
|
112
114
|
|
|
113
115
|
// ---------------------------------------------------------------------------
|
|
114
116
|
// Python-runtime parity helpers
|
|
@@ -2328,28 +2330,12 @@ function _run_scope_prompt(opts: Options, reason: string, custom_path: string |
|
|
|
2328
2330
|
return 'project';
|
|
2329
2331
|
}
|
|
2330
2332
|
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
'Gemfile',
|
|
2338
|
-
];
|
|
2339
|
-
const SCOPE_DETECT_AI_DIRS: readonly string[] = [
|
|
2340
|
-
'.claude',
|
|
2341
|
-
'.cursor',
|
|
2342
|
-
'.windsurf',
|
|
2343
|
-
'.augment',
|
|
2344
|
-
'.clinerules',
|
|
2345
|
-
'.copilot',
|
|
2346
|
-
'.gemini',
|
|
2347
|
-
'.codex',
|
|
2348
|
-
'.aider',
|
|
2349
|
-
'.continue',
|
|
2350
|
-
'.roo',
|
|
2351
|
-
'.kilocode',
|
|
2352
|
-
];
|
|
2333
|
+
// SCOPE_DETECT_MANIFESTS and SCOPE_DETECT_AI_DIRS were duplicated here, byte
|
|
2334
|
+
// for byte, alongside their definitions in `src/install/detect.ts`. Two copies
|
|
2335
|
+
// of a detection constant is the shape that makes divergence invisible: the
|
|
2336
|
+
// test pinned ONE of them exactly, so a change to the other would have passed
|
|
2337
|
+
// CI. De-duplicated 2026-08-26 (road-to-internal-estate-fit 2.3) — one exported
|
|
2338
|
+
// definition, imported here.
|
|
2353
2339
|
const SCOPE_DETECT_AI_FILES: readonly string[] = [
|
|
2354
2340
|
'CLAUDE.md',
|
|
2355
2341
|
'AGENTS.md',
|
|
@@ -3246,20 +3232,16 @@ function _deploy_global_content(
|
|
|
3246
3232
|
// Runs before the postcheck + inventory record so `current_files`
|
|
3247
3233
|
// reflects the transformed tree and reaping stays consistent.
|
|
3248
3234
|
if (tool_id === 'claude-code') {
|
|
3235
|
+
// Rules land verbatim from the copy above; see the module. It also
|
|
3236
|
+
// renders the flat-command wrapper report, unchanged.
|
|
3249
3237
|
const res = _apply_claude_flat_command_wrappers(anchor, package_root, current_files);
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
info(
|
|
3258
|
-
` claude-code: ${res.reserved.length} flat command(s) withheld — name is a ` +
|
|
3259
|
-
`Claude Code built-in (${res.reserved.join(', ')}); nested /cluster:sub ` +
|
|
3260
|
-
'commands remain available',
|
|
3261
|
-
);
|
|
3262
|
-
}
|
|
3238
|
+
claude_rule_rewrite.rewriteAndReport(
|
|
3239
|
+
path.join(anchor, 'rules'),
|
|
3240
|
+
state.QUIET,
|
|
3241
|
+
info,
|
|
3242
|
+
warn,
|
|
3243
|
+
res,
|
|
3244
|
+
);
|
|
3263
3245
|
}
|
|
3264
3246
|
|
|
3265
3247
|
const missing_targets = _verify_deploy_targets(anchor, plan);
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
import * as fs from 'node:fs';
|
|
29
29
|
import * as path from 'node:path';
|
|
30
30
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
31
|
+
import { generatedBy } from './_lib/generated_by.js';
|
|
31
32
|
|
|
32
33
|
const _HERE = fileURLToPath(import.meta.url);
|
|
33
34
|
// src/scripts/inventory_frontmatter.ts → parents[2] is the repo root.
|
|
@@ -266,7 +267,7 @@ function _mostCommon(counter: Map<string, number>): [string, number][] {
|
|
|
266
267
|
export function main(): number {
|
|
267
268
|
_OUT.length = 0;
|
|
268
269
|
emit('# Frontmatter inventory (generated)\n');
|
|
269
|
-
emit('
|
|
270
|
+
emit(generatedBy('inventory_frontmatter', 'Raw material for'));
|
|
270
271
|
emit('Phase 1 of the frontmatter-schema roadmap. Do not edit by hand.\n');
|
|
271
272
|
|
|
272
273
|
inventory_type('skills', gather_files(path.join(SRC, 'skills'), (b) => b === 'SKILL.md'));
|
|
@@ -43,6 +43,7 @@ import * as path from 'node:path';
|
|
|
43
43
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
44
44
|
|
|
45
45
|
import { runGateCli, runSelfTest, type SelfTestCase } from './_lib/gate_self_test.js';
|
|
46
|
+
import { GateLedger } from './_lib/gate_ledger.js';
|
|
46
47
|
import { assertScanned, DeadScopeError } from './_lib/scan_scope.js';
|
|
47
48
|
|
|
48
49
|
const _HERE = fileURLToPath(import.meta.url);
|
|
@@ -317,6 +318,13 @@ export function main(argv: string[] = process.argv.slice(2)): number {
|
|
|
317
318
|
names = [];
|
|
318
319
|
}
|
|
319
320
|
|
|
321
|
+
// Per-artifact accounting. `scanned` counts candidate ROWS, so a sweep
|
|
322
|
+
// artifact whose table the parser walked past contributes zero rows and is
|
|
323
|
+
// indistinguishable from one with no candidates — exactly the "looked at
|
|
324
|
+
// almost nothing" reading the ledger exists to separate from "found
|
|
325
|
+
// nothing".
|
|
326
|
+
const ledger = new GateLedger('lint_adr_sweep_routing');
|
|
327
|
+
ledger.plan(names);
|
|
320
328
|
const violations: Violation[] = [];
|
|
321
329
|
let scanned = 0;
|
|
322
330
|
for (const name of names) {
|
|
@@ -325,7 +333,11 @@ export function main(argv: string[] = process.argv.slice(2)): number {
|
|
|
325
333
|
const [v, n] = lintSweep(rel, fs.readFileSync(abs, 'utf-8'));
|
|
326
334
|
violations.push(...v);
|
|
327
335
|
scanned += n;
|
|
336
|
+
if (v.length > 0) ledger.fail(name, `${String(v.length)} unrouted candidate row(s)`);
|
|
337
|
+
else if (n === 0) ledger.skip(name, 'no_applicable_files');
|
|
338
|
+
else ledger.complete(name);
|
|
328
339
|
}
|
|
340
|
+
ledger.report(json ? () => undefined : undefined);
|
|
329
341
|
|
|
330
342
|
process.stdout.write(`scanned: ${scanned}\n`);
|
|
331
343
|
try {
|