@event4u/agent-config 8.4.0 → 8.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +73 -0
- package/README.md +17 -5
- package/dist/agent-src/README.md +1 -1
- package/dist/agent-src/commands/{analyze-reference-repo.md → analyze/reference-repo.md} +3 -1
- package/dist/agent-src/commands/analyze.md +9 -6
- package/dist/agent-src/commands/{bug-fix.md → bug/fix.md} +3 -1
- package/dist/agent-src/commands/{bug-investigate.md → bug/investigate.md} +4 -2
- package/dist/agent-src/commands/bug.md +59 -0
- package/dist/agent-src/commands/{set-cost-profile.md → cost/profile.md} +9 -6
- package/dist/agent-src/commands/{cost-report.md → cost/report.md} +18 -17
- package/dist/agent-src/commands/cost.md +57 -0
- package/dist/agent-src/commands/evals/{review-changes.json → review.json} +12 -8
- package/dist/agent-src/commands/{quality-fix.md → fix/quality.md} +5 -2
- package/dist/agent-src/commands/fix.md +7 -4
- package/dist/agent-src/commands/optimize/project.md +250 -0
- package/dist/agent-src/commands/{optimize-prompt.md → optimize/prompt.md} +3 -2
- package/dist/agent-src/commands/optimize.md +17 -12
- package/dist/agent-src/commands/{package-reset.md → package/reset.md} +2 -0
- package/dist/agent-src/commands/{package-test.md → package/test.md} +3 -1
- package/dist/agent-src/commands/package.md +56 -0
- package/dist/agent-src/commands/{project-analyze.md → project/analyze.md} +10 -8
- package/dist/agent-src/commands/{project-health.md → project/health.md} +2 -0
- package/dist/agent-src/commands/project.md +60 -0
- package/dist/agent-src/commands/{review-changes.md → review/changes.md} +26 -24
- package/dist/agent-src/commands/{review-routing.md → review/routing.md} +21 -17
- package/dist/agent-src/commands/review.md +61 -0
- package/dist/agent-src/commands/security-audit-config.md +24 -23
- package/dist/agent-src/commands/{sync-agent-settings.md → sync/agent-settings.md} +11 -7
- package/dist/agent-src/commands/{sync-gitignore → sync/gitignore}/fix.md +36 -27
- package/dist/agent-src/commands/{sync-gitignore.md → sync/gitignore.md} +22 -21
- package/dist/agent-src/commands/sync.md +58 -0
- package/dist/agent-src/commands/{e2e-heal.md → tests/e2e-heal.md} +5 -2
- package/dist/agent-src/commands/{e2e-plan.md → tests/e2e-plan.md} +5 -2
- package/dist/agent-src/commands/tests.md +11 -5
- package/dist/agent-src/contexts/augment-infrastructure.md +3 -3
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
- package/dist/agent-src/contexts/skills-and-commands.md +2 -2
- package/dist/agent-src/rules/external-reference-deep-dive.md +1 -1
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-security-auditor/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-test-coverage/SKILL.md +1 -1
- package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
- package/dist/agent-src/skills/mobile-e2e-strategy/SKILL.md +5 -5
- package/dist/agent-src/skills/prompt-optimizer/SKILL.md +2 -2
- package/dist/agent-src/skills/quality-tools/SKILL.md +1 -1
- package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/templates/agent-settings.md +1 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +2 -2
- package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
- package/dist/cli/commands/config.js +44 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/uiServe.js +1 -0
- package/dist/cli/commands/uiServe.js.map +1 -1
- package/dist/cli/help.js +38 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/initRouting.js +16 -1
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/main.js +43 -37
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +45 -44
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +419 -210
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +31 -25
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +30 -24
- package/dist/install/install.mjs +6064 -159
- package/dist/install/selectedTools.js +39 -10
- package/dist/install/selectedTools.js.map +1 -1
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/server/app.js +15 -3
- package/dist/server/app.js.map +1 -1
- package/dist/server/routes/ping.js +16 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/settings.js +42 -6
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/settingsChanges.js +55 -0
- package/dist/server/routes/settingsChanges.js.map +1 -0
- package/dist/server/routes/userMd.js +7 -2
- package/dist/server/routes/userMd.js.map +1 -1
- package/dist/server/routes/wizard.js +76 -14
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/writeRoot.js +17 -0
- package/dist/server/writeRoot.js.map +1 -1
- package/dist/shared/settingsSurface.js +120 -0
- package/dist/shared/settingsSurface.js.map +1 -0
- package/dist/ui/assets/index-BPFMZWUs.css +1 -0
- package/dist/ui/assets/index-BiEZiZ31.js +40 -0
- package/dist/ui/assets/index-BiEZiZ31.js.map +1 -0
- package/dist/ui/index.html +15 -2
- package/docs/CLAIMS.md +20 -15
- package/docs/architecture.md +1 -1
- package/docs/catalog.md +37 -31
- package/docs/command-flows.md +22 -16
- package/docs/contracts/command-clusters.md +39 -9
- package/docs/contracts/file-ownership-matrix.json +21 -0
- package/docs/contracts/frontmatter-contract.md +1 -1
- package/docs/contracts/gui-wizard.md +16 -4
- package/docs/contracts/iron-law-overrides.txt +1 -0
- package/docs/contracts/rule-classification.md +2 -2
- package/docs/contracts/settings-api.md +58 -2
- package/docs/contracts/surface-matrix.md +5 -0
- package/docs/cookbook.md +7 -7
- package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +74 -0
- package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +91 -0
- package/docs/decisions/INDEX.md +2 -0
- package/docs/featured-commands.md +1 -1
- package/docs/featured-skills.md +4 -4
- package/docs/flows.md +2 -2
- package/docs/getting-started-by-role.md +1 -1
- package/docs/getting-started-laravel.md +1 -1
- package/docs/getting-started.md +6 -3
- package/docs/governance-advantage.md +1 -1
- package/docs/guidelines/agent-infra/5w2h-analysis.md +1 -1
- package/docs/guidelines/agent-infra/ios-simulator-guide.md +1 -1
- package/docs/proof.md +11 -2
- package/package.json +6 -1
- package/src/agent-src/README.md +64 -0
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +497 -0
- package/src/agent-src/scripts/scan-seeder-violations.php +145 -0
- package/src/agent-src/scripts/update_roadmap_progress.ts +1087 -0
- package/src/agent-src/templates/AGENTS.md +34 -0
- package/src/agent-src/templates/scripts/README.md +195 -0
- package/src/agent-src/templates/scripts/check_memory.ts +662 -0
- package/src/agent-src/templates/scripts/check_memory_proposal.ts +370 -0
- package/src/agent-src/templates/scripts/historical-bug-patterns.example.yml +84 -0
- package/src/agent-src/templates/scripts/implement_ticket/__main__.ts +27 -0
- package/src/agent-src/templates/scripts/memory_hash.ts +355 -0
- package/src/agent-src/templates/scripts/memory_lookup.ts +1089 -0
- package/src/agent-src/templates/scripts/memory_report.ts +868 -0
- package/src/agent-src/templates/scripts/memory_signal.ts +444 -0
- package/src/agent-src/templates/scripts/memory_status.ts +215 -0
- package/src/agent-src/templates/scripts/ownership-map.example.yml +87 -0
- package/src/agent-src/templates/scripts/pr-risk-config.example.yml +76 -0
- package/src/agent-src/templates/scripts/pr_review_routing.ts +544 -0
- package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/src/agent-src/templates/scripts/telemetry/boundary.ts +164 -0
- package/src/agent-src/templates/scripts/telemetry/engagement.ts +479 -0
- package/src/agent-src/templates/scripts/telemetry/report_renderer.ts +394 -0
- package/src/agent-src/templates/scripts/telemetry/settings.ts +210 -0
- package/src/agent-src/templates/scripts/telemetry_record.ts +276 -0
- package/src/agent-src/templates/scripts/telemetry_report.ts +211 -0
- package/src/agent-src/templates/scripts/telemetry_status.ts +333 -0
- package/src/agent-src/templates/scripts/tier_usage_report.ts +619 -0
- package/src/agent-src/templates/scripts/work_engine/__main__.ts +14 -0
- package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +1261 -0
- package/src/agent-src/templates/scripts/work_engine/_lib/user_global_paths.ts +329 -0
- package/src/agent-src/templates/scripts/work_engine/cli.ts +206 -0
- package/src/agent-src/templates/scripts/work_engine/cli_args.ts +249 -0
- package/src/agent-src/templates/scripts/work_engine/delivery_state.ts +225 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/analyze.ts +125 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/implement.ts +189 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/index.ts +94 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/memory.ts +193 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/plan.ts +267 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/refine.ts +518 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/report.ts +379 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/test.ts +268 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/verify.ts +258 -0
- package/src/agent-src/templates/scripts/work_engine/directives/index.ts +32 -0
- package/src/agent-src/templates/scripts/work_engine/directives/mixed/contract.ts +243 -0
- package/src/agent-src/templates/scripts/work_engine/directives/mixed/index.ts +108 -0
- package/src/agent-src/templates/scripts/work_engine/directives/mixed/stitch.ts +259 -0
- package/src/agent-src/templates/scripts/work_engine/directives/mixed/ui.ts +216 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/_passthrough.ts +40 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +241 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +216 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +506 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +325 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/index.ts +102 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +462 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +474 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +352 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/_skipped.ts +33 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/apply.ts +213 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/index.ts +111 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/refine.ts +126 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/report.ts +112 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/test.ts +164 -0
- package/src/agent-src/templates/scripts/work_engine/dispatcher.ts +515 -0
- package/src/agent-src/templates/scripts/work_engine/emitters.ts +119 -0
- package/src/agent-src/templates/scripts/work_engine/errors.ts +24 -0
- package/src/agent-src/templates/scripts/work_engine/hook_bootstrap.ts +104 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +189 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_append.ts +41 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_halt_append.ts +89 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.ts +193 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +304 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/directive_set_guard.ts +110 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/halt_surface_audit.ts +118 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/index.ts +17 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +161 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/state_shape_validation.ts +45 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/trace.ts +134 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/context.ts +94 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/events.ts +58 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/exceptions.ts +85 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/index.ts +27 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/registry.ts +66 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/runner.ts +90 -0
- package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +260 -0
- package/src/agent-src/templates/scripts/work_engine/input_builders.ts +260 -0
- package/src/agent-src/templates/scripts/work_engine/intent/classify.ts +466 -0
- package/src/agent-src/templates/scripts/work_engine/migration/v0_to_v1.ts +531 -0
- package/src/agent-src/templates/scripts/work_engine/orchestration.ts +366 -0
- package/src/agent-src/templates/scripts/work_engine/persona_policy.ts +97 -0
- package/src/agent-src/templates/scripts/work_engine/resolvers/diff.ts +135 -0
- package/src/agent-src/templates/scripts/work_engine/resolvers/file.ts +175 -0
- package/src/agent-src/templates/scripts/work_engine/resolvers/prompt.ts +115 -0
- package/src/agent-src/templates/scripts/work_engine/scoring/confidence.ts +415 -0
- package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +466 -0
- package/src/agent-src/templates/scripts/work_engine/scoring/decision_trace.ts +298 -0
- package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +444 -0
- package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +252 -0
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +745 -0
- package/src/agent-src/templates/scripts/work_engine/state.ts +1151 -0
- package/src/agent-src/templates/scripts/work_engine/state_io.ts +413 -0
- package/src/config/agent-settings.template.yml +1 -1
- package/src/install/atomic.ts +111 -0
- package/src/install/conflict.ts +226 -0
- package/src/install/detect.ts +280 -0
- package/src/install/paths.ts +90 -0
- package/src/install/plan.ts +205 -0
- package/src/install/preflight.ts +210 -0
- package/src/install/selectedTools.ts +80 -0
- package/src/install/toolDetection.ts +120 -0
- package/src/install/txlog.ts +161 -0
- package/src/install/types.ts +175 -0
- package/src/install/wizard-plan.ts +216 -0
- package/src/scripts/_cli/cmd_converge.ts +38 -0
- package/src/scripts/_cli/cmd_doctor.ts +113 -2
- package/src/scripts/_cli/cmd_explain.ts +2 -2
- package/src/scripts/_cli/cmd_export.ts +3 -3
- package/src/scripts/_cli/cmd_fleet.ts +13 -1
- package/src/scripts/_cli/cmd_migrate.ts +3 -3
- package/src/scripts/_cli/cmd_prune.ts +2 -2
- package/src/scripts/_cli/cmd_refresh.ts +4 -4
- package/src/scripts/_cli/cmd_settings_check.ts +2 -2
- package/src/scripts/_cli/cmd_settings_migrate.ts +2 -2
- package/src/scripts/_cli/cmd_sync.ts +2 -2
- package/src/scripts/_cli/cmd_uninstall.ts +2 -2
- package/src/scripts/_cli/cmd_update.ts +8 -8
- package/src/scripts/_cli/cmd_upgrade.ts +4 -3
- package/src/scripts/_cli/cmd_validate.ts +3 -3
- package/src/scripts/_cli/cmd_versions.ts +2 -2
- package/src/scripts/_cli/explain_last/assumptions.ts +2 -2
- package/src/scripts/_cli/explain_last/council.ts +2 -2
- package/src/scripts/_cli/explain_last/halt.ts +2 -2
- package/src/scripts/_cli/explain_last/index.ts +2 -2
- package/src/scripts/_cli/explain_last/inputs.ts +4 -4
- package/src/scripts/_cli/explain_last/memory.ts +2 -2
- package/src/scripts/_cli/explain_last/provider.ts +2 -2
- package/src/scripts/_cli/explain_last/render.ts +2 -2
- package/src/scripts/_cli/explain_last/route.ts +2 -2
- package/src/scripts/_cli/explain_last/scrubber.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/assumptions.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/council.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/halt.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/header.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/index.ts +1 -1
- package/src/scripts/_cli/explain_last/sections/inputs.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/memory.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/pack.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/provider.ts +2 -2
- package/src/scripts/_cli/explain_last/sections/route.ts +2 -2
- package/src/scripts/_cli/explain_last/state_loader.ts +2 -2
- package/src/scripts/_dispatch.bash +20 -1
- package/src/scripts/_lib/agent_settings.ts +1 -1
- package/src/scripts/_lib/agent_src.ts +7 -7
- package/src/scripts/_lib/agents_overlay.ts +1 -1
- package/src/scripts/_lib/bench_ab_cache.ts +1 -1
- package/src/scripts/_lib/bench_ab_scoring.ts +1 -1
- package/src/scripts/_lib/bench_ab_scoring_v2.ts +3 -3
- package/src/scripts/_lib/bench_cost.ts +1 -1
- package/src/scripts/_lib/bench_quality.ts +3 -3
- package/src/scripts/_lib/bench_report.ts +4 -4
- package/src/scripts/_lib/bench_telegraph.ts +1 -1
- package/src/scripts/_lib/bench_telegraph_report.ts +4 -4
- package/src/scripts/_lib/changelog_eras.ts +1 -1
- package/src/scripts/_lib/claude_desktop_bundler.ts +1 -1
- package/src/scripts/_lib/cli_wrapper.ts +1 -1
- package/src/scripts/_lib/fs_atomic.ts +1 -1
- package/src/scripts/_lib/global_deploy_inventory.ts +1 -1
- package/src/scripts/_lib/install_layout.ts +1 -1
- package/src/scripts/_lib/install_regenerator.ts +1 -1
- package/src/scripts/_lib/installed_lock.ts +1 -1
- package/src/scripts/_lib/installed_tools.ts +1 -1
- package/src/scripts/_lib/json_pointers.ts +1 -1
- package/src/scripts/_lib/knowledge_global.ts +1 -1
- package/src/scripts/_lib/knowledge_global_promote.ts +2 -2
- package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
- package/src/scripts/_lib/link_crypto.ts +4 -4
- package/src/scripts/_lib/linked_projects.ts +4 -4
- package/src/scripts/_lib/model_tier.ts +1 -1
- package/src/scripts/_lib/module_detection.ts +2 -2
- package/src/scripts/_lib/pin_resolver.ts +1 -1
- package/src/scripts/_lib/script_output.ts +1 -1
- package/src/scripts/_lib/security_lint.ts +1 -1
- package/src/scripts/_lib/surface_tiers.ts +1 -1
- package/src/scripts/_lib/text_similarity.ts +1 -1
- package/src/scripts/_lib/update_check.ts +2 -2
- package/src/scripts/_lib/user_global_paths.ts +1 -1
- package/src/scripts/_lib/value_ladder.ts +1 -1
- package/src/scripts/_lib/value_report.ts +1 -1
- package/src/scripts/_lib/zip_min.ts +2 -2
- package/src/scripts/adoption_report.ts +3 -3
- package/src/scripts/adoption_snapshot.ts +3 -3
- package/src/scripts/adoption_status.ts +2 -2
- package/src/scripts/adr/regenerate_index.ts +3 -3
- package/src/scripts/ai_council/_default_prices.ts +2 -3
- package/src/scripts/ai_council/advisors.ts +1 -1
- package/src/scripts/ai_council/airgap.ts +1 -1
- package/src/scripts/ai_council/budget_guard.ts +1 -1
- package/src/scripts/ai_council/bundler.ts +1 -1
- package/src/scripts/ai_council/cli_hints.ts +1 -1
- package/src/scripts/ai_council/clients.ts +5 -5
- package/src/scripts/ai_council/compile_corpus.ts +1 -1
- package/src/scripts/ai_council/confidence_gate.ts +1 -1
- package/src/scripts/ai_council/config.ts +1 -1
- package/src/scripts/ai_council/consensus.ts +1 -1
- package/src/scripts/ai_council/events_log.ts +1 -1
- package/src/scripts/ai_council/learn_low_impact_preview.ts +1 -1
- package/src/scripts/ai_council/low_impact_corpus.ts +1 -1
- package/src/scripts/ai_council/low_impact_intake.ts +1 -1
- package/src/scripts/ai_council/modes.ts +1 -1
- package/src/scripts/ai_council/orchestrator.ts +3 -3
- package/src/scripts/ai_council/pricing.ts +2 -2
- package/src/scripts/ai_council/probation_gate.ts +2 -2
- package/src/scripts/ai_council/project_context.ts +1 -1
- package/src/scripts/ai_council/prompts.ts +1 -1
- package/src/scripts/ai_council/redact_low_impact_entry.ts +2 -2
- package/src/scripts/ai_council/session.ts +1 -1
- package/src/scripts/ai_council/shadow_dispatch.ts +1 -1
- package/src/scripts/ai_council/solo_dispatch.ts +1 -1
- package/src/scripts/analysis_freshness.ts +2 -2
- package/src/scripts/annotate_discovery.ts +2 -2
- package/src/scripts/apply_modules_config.ts +2 -2
- package/src/scripts/audit_adr_coverage.ts +3 -3
- package/src/scripts/audit_auto_rules.ts +2 -2
- package/src/scripts/audit_cloud_compatibility.ts +3 -3
- package/src/scripts/audit_command_surface.ts +2 -2
- package/src/scripts/audit_initial_context.ts +7 -6
- package/src/scripts/audit_likelihood.ts +5 -5
- package/src/scripts/audit_mcp_tools.ts +3 -3
- package/src/scripts/audit_overlap.ts +2 -2
- package/src/scripts/audit_skill_descriptions.ts +2 -2
- package/src/scripts/audit_skill_overlap.ts +5 -5
- package/src/scripts/audit_user_type_axis.ts +4 -4
- package/src/scripts/backfill_model_tier.ts +1 -1
- package/src/scripts/bench_ab_cache_dispatch.ts +2 -2
- package/src/scripts/bench_ab_clone.ts +2 -2
- package/src/scripts/bench_ab_diff.ts +3 -3
- package/src/scripts/bench_ab_integrity.ts +2 -2
- package/src/scripts/bench_ab_run.ts +4 -4
- package/src/scripts/bench_ab_task_runner.ts +1 -1
- package/src/scripts/bench_ab_tracka_run.ts +2 -2
- package/src/scripts/bench_ab_v2_run.ts +1 -1
- package/src/scripts/bench_ab_v2_stats.ts +2 -2
- package/src/scripts/bench_baseline_ready.ts +1 -1
- package/src/scripts/bench_condense_memory.ts +4 -4
- package/src/scripts/bench_drift_check.ts +3 -3
- package/src/scripts/bench_per_tool.ts +1 -1
- package/src/scripts/bench_rtk_savings.ts +4 -4
- package/src/scripts/bench_run.ts +4 -4
- package/src/scripts/bench_runner.ts +1 -1
- package/src/scripts/build_cloud_bundle.ts +3 -3
- package/src/scripts/build_discovery_manifest.ts +13 -15
- package/src/scripts/build_linear_digest.ts +2 -2
- package/src/scripts/build_mcp_registry_manifest.ts +3 -3
- package/src/scripts/build_proof.ts +6 -0
- package/src/scripts/build_rule_trigger_matrix.ts +2 -2
- package/src/scripts/capture_showcase_session.ts +3 -3
- package/src/scripts/chat_history.ts +1 -1
- package/src/scripts/check_always_budget.ts +1 -1
- package/src/scripts/check_artefact_checksums.ts +4 -4
- package/src/scripts/check_artefact_count_messaging.ts +197 -0
- package/src/scripts/check_augment_description_cap.ts +3 -3
- package/src/scripts/check_augmentignore.ts +1 -1
- package/src/scripts/check_beta_review_markers.ts +3 -3
- package/src/scripts/check_bite_sized_granularity.ts +1 -1
- package/src/scripts/check_cluster_patterns.ts +47 -3
- package/src/scripts/check_command_count_messaging.ts +2 -2
- package/src/scripts/check_condensation.ts +2 -2
- package/src/scripts/check_condensed_paths.ts +6 -6
- package/src/scripts/check_context_paths.ts +1 -1
- package/src/scripts/check_council_config_location.ts +3 -3
- package/src/scripts/check_council_layout.ts +2 -2
- package/src/scripts/check_council_references.ts +2 -2
- package/src/scripts/check_discovery_determinism.ts +3 -3
- package/src/scripts/check_gate_paths.ts +4 -4
- package/src/scripts/check_iron_law_prominence.ts +2 -2
- package/src/scripts/check_kernel_rule_bundle.ts +3 -3
- package/src/scripts/check_knowledge_cards.ts +4 -4
- package/src/scripts/check_knowledge_pages.ts +1 -1
- package/src/scripts/check_md_language.ts +3 -3
- package/src/scripts/check_memory.ts +3 -3
- package/src/scripts/check_memory_proposal.ts +2 -2
- package/src/scripts/check_module_management_neutral.ts +1 -1
- package/src/scripts/check_no_conflict_markers.ts +1 -1
- package/src/scripts/check_no_external_sources.ts +1 -1
- package/src/scripts/check_no_local_settings_committed.ts +2 -2
- package/src/scripts/check_no_new_legacy_path.ts +3 -3
- package/src/scripts/check_no_roadmap_refs.ts +3 -3
- package/src/scripts/check_one_off_location.ts +3 -3
- package/src/scripts/check_overlay_cascade_subdirs.ts +3 -3
- package/src/scripts/check_portability.ts +3 -3
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_public_catalog_links.ts +1 -1
- package/src/scripts/check_public_links.ts +2 -2
- package/src/scripts/check_references.ts +3 -3
- package/src/scripts/check_release_includes_discovery.ts +2 -2
- package/src/scripts/check_release_pr_shape.ts +2 -2
- package/src/scripts/check_release_published.ts +1 -1
- package/src/scripts/check_release_trunk_sync.ts +3 -3
- package/src/scripts/check_reply_consistency.ts +1 -1
- package/src/scripts/check_roadmap_trackable.ts +2 -2
- package/src/scripts/check_role_doc_links.ts +2 -2
- package/src/scripts/check_safety_floor_untouched.ts +3 -3
- package/src/scripts/check_skill_requires.ts +2 -2
- package/src/scripts/check_structural_breaking.ts +2 -2
- package/src/scripts/check_surface_tiers.ts +2 -2
- package/src/scripts/check_template_pin_drift.ts +1 -1
- package/src/scripts/check_test_coverage_diff.ts +2 -2
- package/src/scripts/check_token_optimizer_freshness.ts +3 -3
- package/src/scripts/check_trigger_evals.ts +2 -2
- package/src/scripts/check_update_banner.ts +1 -1
- package/src/scripts/ci_status.ts +0 -0
- package/src/scripts/ci_summary.ts +3 -3
- package/src/scripts/ci_time_ratio.ts +1 -1
- package/src/scripts/command_suggester/cooldown.ts +1 -1
- package/src/scripts/command_suggester/index.ts +1 -1
- package/src/scripts/command_suggester/loader.ts +1 -1
- package/src/scripts/command_suggester/match.ts +1 -1
- package/src/scripts/command_suggester/rank.ts +1 -1
- package/src/scripts/command_suggester/render.ts +1 -1
- package/src/scripts/command_suggester/sanitize.ts +1 -1
- package/src/scripts/command_suggester/settings.ts +1 -1
- package/src/scripts/command_suggester/types.ts +0 -0
- package/src/scripts/compile_router.ts +4 -4
- package/src/scripts/condense.ts +3 -3
- package/src/scripts/condense_memory.ts +1 -1
- package/src/scripts/config/index.ts +1 -1
- package/src/scripts/config/packs.ts +1 -1
- package/src/scripts/config/presets.ts +1 -1
- package/src/scripts/config/profile_explain.ts +1 -1
- package/src/scripts/config/profiles.ts +1 -1
- package/src/scripts/config/session_profiles.ts +1 -1
- package/src/scripts/context_hygiene_hook.ts +2 -2
- package/src/scripts/cost_by_conversation.ts +1 -1
- package/src/scripts/cost_summary.ts +2 -2
- package/src/scripts/council_cli.ts +1 -1
- package/src/scripts/council_prune.ts +1 -1
- package/src/scripts/cross_repo_retrieve.ts +2 -2
- package/src/scripts/discovery_stats.ts +3 -3
- package/src/scripts/evidence_report.ts +4 -4
- package/src/scripts/extract_audit_patterns.ts +2 -2
- package/src/scripts/first_run_gate_hook.ts +1 -1
- package/src/scripts/gen_discovery_baseline.ts +2 -2
- package/src/scripts/generate_capabilities_index.ts +2 -2
- package/src/scripts/generate_capability_matrix.ts +2 -2
- package/src/scripts/generate_catalog.ts +2 -2
- package/src/scripts/generate_command_flows.ts +2 -2
- package/src/scripts/generate_cookbook.ts +1 -1
- package/src/scripts/generate_index.ts +3 -3
- package/src/scripts/generate_ownership_matrix.ts +2 -2
- package/src/scripts/generate_pack_manifests.ts +2 -2
- package/src/scripts/generate_role_experiences_catalog.ts +3 -3
- package/src/scripts/hooks/block_no_verify.ts +2 -2
- package/src/scripts/hooks/dispatch_hook.ts +2 -2
- package/src/scripts/hooks/dispatch_issues.ts +1 -1
- package/src/scripts/hooks/envelope.ts +1 -1
- package/src/scripts/hooks/replay_hook.ts +1 -1
- package/src/scripts/hooks/state_io.ts +1 -1
- package/src/scripts/hooks_doctor.ts +1 -1
- package/src/scripts/hooks_status.ts +1 -1
- package/src/scripts/injection_scan_hook.ts +1 -1
- package/src/scripts/install.ts +145 -3
- package/src/scripts/inventory_abstraction_budget.ts +5 -5
- package/src/scripts/inventory_frontmatter.ts +1 -1
- package/src/scripts/inventory_meta_layers.ts +1 -1
- package/src/scripts/iron_law_sha.ts +1 -1
- package/src/scripts/knowledge_global_cli.ts +3 -3
- package/src/scripts/linked_projects_list.ts +1 -1
- package/src/scripts/lint_agent_security.ts +4 -4
- package/src/scripts/lint_agent_skill_names.ts +1 -1
- package/src/scripts/lint_agents_layout.ts +2 -2
- package/src/scripts/lint_agents_md.ts +3 -3
- package/src/scripts/lint_archived_skills.ts +2 -2
- package/src/scripts/lint_artefact_frontmatter.ts +2 -2
- package/src/scripts/lint_bench_ab.ts +2 -2
- package/src/scripts/lint_bench_corpus.ts +1 -1
- package/src/scripts/lint_command_flow_coverage.ts +1 -1
- package/src/scripts/lint_command_routing.ts +2 -2
- package/src/scripts/lint_command_tiers.ts +1 -1
- package/src/scripts/lint_command_verbs.ts +4 -4
- package/src/scripts/lint_commit_subjects.ts +2 -2
- package/src/scripts/lint_context_spine_usage.ts +3 -3
- package/src/scripts/lint_discovery_manifest.ts +4 -4
- package/src/scripts/lint_discovery_vocabulary.ts +2 -2
- package/src/scripts/lint_empty_roadmaps.ts +3 -3
- package/src/scripts/lint_eval_freshness.ts +2 -2
- package/src/scripts/lint_examples.ts +2 -2
- package/src/scripts/lint_explain_trace.ts +2 -2
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_flows.ts +5 -5
- package/src/scripts/lint_framework_leakage.ts +1 -1
- package/src/scripts/lint_framework_leakage_allowlist.json +10 -2
- package/src/scripts/lint_frontmatter_boilerplate.ts +2 -2
- package/src/scripts/lint_ghostwriter_source.ts +3 -3
- package/src/scripts/lint_global_paths.ts +1 -1
- package/src/scripts/lint_handoffs.ts +1 -1
- package/src/scripts/lint_hidden_unicode.ts +1 -1
- package/src/scripts/lint_hook_concern_budget.ts +2 -2
- package/src/scripts/lint_hook_manifest.ts +2 -2
- package/src/scripts/lint_instruction_smuggling.ts +1 -1
- package/src/scripts/lint_load_context.ts +2 -2
- package/src/scripts/lint_marketplace.ts +1 -1
- package/src/scripts/lint_marketplace_install_completeness.ts +2 -2
- package/src/scripts/lint_mcp_config_security.ts +1 -1
- package/src/scripts/lint_mcp_registry_manifest.ts +1 -1
- package/src/scripts/lint_media_policy_linkage.ts +3 -3
- package/src/scripts/lint_missions.ts +3 -3
- package/src/scripts/lint_model_tier_coverage.ts +3 -3
- package/src/scripts/lint_namespace.ts +2 -2
- package/src/scripts/lint_namespace_collisions.ts +2 -2
- package/src/scripts/lint_new_skill_gate.ts +3 -3
- package/src/scripts/lint_no_new_atomic_commands.ts +9 -6
- package/src/scripts/lint_no_python_twin_rationale.ts +102 -0
- package/src/scripts/lint_one_off_age.ts +2 -2
- package/src/scripts/lint_orchestration_dsl.ts +3 -3
- package/src/scripts/lint_orchestrator_auto_detect.ts +1 -1
- package/src/scripts/lint_pack_boundaries.ts +2 -2
- package/src/scripts/lint_pack_dependencies.ts +2 -2
- package/src/scripts/lint_pack_first_win.ts +2 -2
- package/src/scripts/lint_persona_governance.ts +3 -3
- package/src/scripts/lint_positioning.ts +1 -1
- package/src/scripts/lint_profile_overlay_set_only.ts +2 -2
- package/src/scripts/lint_readme_jargon.ts +2 -2
- package/src/scripts/lint_readme_size.ts +2 -2
- package/src/scripts/lint_regression.ts +3 -3
- package/src/scripts/lint_roadmap_ci_steps.ts +3 -3
- package/src/scripts/lint_roadmap_complexity.ts +1 -1
- package/src/scripts/lint_roadmap_later_disposition.ts +2 -2
- package/src/scripts/lint_role_experiences.ts +2 -2
- package/src/scripts/lint_rule_interactions.ts +1 -1
- package/src/scripts/lint_rule_tiers.ts +1 -1
- package/src/scripts/lint_showcase_sessions.ts +2 -2
- package/src/scripts/lint_skill_frontmatter_safety.ts +1 -1
- package/src/scripts/lint_skill_originality.ts +1 -1
- package/src/scripts/lint_skill_tools.ts +3 -3
- package/src/scripts/lint_ticket_buildable.ts +2 -2
- package/src/scripts/lint_topics_yaml.ts +3 -3
- package/src/scripts/lint_trust_coherence.ts +3 -3
- package/src/scripts/lint_value_dashboard.ts +3 -3
- package/src/scripts/lint_workflow_security.ts +3 -3
- package/src/scripts/lint_workspace_boundary.ts +2 -2
- package/src/scripts/mcp_parity_smoke.ts +1 -1
- package/src/scripts/mcp_render.ts +1 -1
- package/src/scripts/mcp_server/catalog.ts +1 -1
- package/src/scripts/mcp_server/index.ts +1 -1
- package/src/scripts/mcp_server/metadata.ts +1 -1
- package/src/scripts/mcp_server/prompts.ts +1 -1
- package/src/scripts/mcp_server/resources.ts +1 -1
- package/src/scripts/mcp_server/server.ts +1 -1
- package/src/scripts/mcp_server/telemetry.ts +1 -1
- package/src/scripts/mcp_server/tools.ts +1 -1
- package/src/scripts/mcp_telemetry_health.ts +1 -1
- package/src/scripts/mcp_telemetry_query.ts +3 -3
- package/src/scripts/mcp_telemetry_store.ts +3 -3
- package/src/scripts/measure_augment_budget.ts +2 -2
- package/src/scripts/measure_density.ts +2 -2
- package/src/scripts/measure_frugality_savings.ts +3 -3
- package/src/scripts/measure_markitdown_lift.ts +1 -1
- package/src/scripts/measure_patterns.ts +1 -1
- package/src/scripts/measure_projection_bytes.ts +1 -1
- package/src/scripts/measure_rule_budget.ts +1 -1
- package/src/scripts/measure_skill_reduction.ts +1 -1
- package/src/scripts/memory_hash.ts +1 -1
- package/src/scripts/memory_lookup.ts +6 -6
- package/src/scripts/memory_report.ts +1 -1
- package/src/scripts/memory_signal.ts +1 -1
- package/src/scripts/memory_status.ts +2 -2
- package/src/scripts/migrate_command_suggestions.ts +1 -1
- package/src/scripts/migrate_frontmatter_defaults.ts +1 -1
- package/src/scripts/mine_session.ts +3 -3
- package/src/scripts/minimal_safe_diff_hook.ts +2 -2
- package/src/scripts/move_artefact.ts +3 -3
- package/src/scripts/new_skill.ts +3 -3
- package/src/scripts/onboarding_gate_hook.ts +2 -2
- package/src/scripts/pack_mcp_content.ts +1 -1
- package/src/scripts/parity/replay.ts +3 -2
- package/src/scripts/pattern_share.ts +2 -2
- package/src/scripts/plan_physical_move.ts +3 -3
- package/src/scripts/prediction-pool/poisson_sim.ts +2 -2
- package/src/scripts/prediction-pool/pool_winsim.ts +2 -2
- package/src/scripts/prediction-pool/score_ev.ts +2 -2
- package/src/scripts/prepack-check.mjs +108 -5
- package/src/scripts/print_required_checks.ts +2 -2
- package/src/scripts/probe_projection_fidelity.ts +2 -2
- package/src/scripts/probe_skill_registration.ts +2 -2
- package/src/scripts/profile_staleness_hook.ts +2 -2
- package/src/scripts/profile_use.ts +2 -2
- package/src/scripts/project_thin_rules.ts +3 -3
- package/src/scripts/propose_modules_config.ts +2 -2
- package/src/scripts/prototype_lint_contradictions.ts +2 -2
- package/src/scripts/prove_pack_extractable.ts +1 -1
- package/src/scripts/readme_linter.ts +4 -4
- package/src/scripts/redact_hook_capture.ts +2 -2
- package/src/scripts/refine_ticket_detect.ts +1 -1
- package/src/scripts/release.ts +30 -19
- package/src/scripts/render_benchmark_md.ts +2 -2
- package/src/scripts/render_value_md.ts +2 -2
- package/src/scripts/roadmap_progress_hook.ts +1 -1
- package/src/scripts/router_telemetry.ts +1 -1
- package/src/scripts/run_skill_evals.ts +2 -2
- package/src/scripts/runtime_dispatcher.ts +1 -1
- package/src/scripts/runtime_handler.ts +1 -1
- package/src/scripts/runtime_registry.ts +3 -3
- package/src/scripts/score_skill_selection.ts +1 -1
- package/src/scripts/security_audit_config.ts +2 -2
- package/src/scripts/skill_collision_clusters.ts +1 -1
- package/src/scripts/skill_discovery.ts +1 -1
- package/src/scripts/skill_linter.ts +8 -7
- package/src/scripts/skill_overlap.ts +2 -2
- package/src/scripts/skill_preview.ts +1 -1
- package/src/scripts/skill_tools/audit_persona_coverage.ts +3 -3
- package/src/scripts/skill_tools/audit_user_type_coverage.ts +3 -3
- package/src/scripts/skill_tools/index.ts +1 -1
- package/src/scripts/skill_tools/run_block_d_eval.ts +3 -3
- package/src/scripts/skill_tools/score_skill_relevance.ts +3 -3
- package/src/scripts/skill_tools/suggest_skill_for_task.ts +3 -3
- package/src/scripts/skill_trigger_eval.ts +2 -2
- package/src/scripts/skill_usage_collect.ts +2 -2
- package/src/scripts/skill_usage_report.ts +2 -2
- package/src/scripts/smoke_path_resolution.ts +2 -2
- package/src/scripts/smoke_quickstart.ts +4 -4
- package/src/scripts/snapshot_agent_outputs.ts +2 -2
- package/src/scripts/spotcheck_thin_root.ts +2 -2
- package/src/scripts/surface-tiers.yml +1 -0
- package/src/scripts/sync_agent_settings.ts +2 -2
- package/src/scripts/sync_github_metadata.ts +4 -4
- package/src/scripts/sync_gitignore.ts +3 -3
- package/src/scripts/sync_yaml_rt.ts +2 -2
- package/src/scripts/telegraph_stats.ts +1 -1
- package/src/scripts/tool_registry.ts +2 -2
- package/src/scripts/tools/adapter_errors.ts +1 -1
- package/src/scripts/tools/base_adapter.ts +1 -1
- package/src/scripts/tools/github_adapter.ts +1 -1
- package/src/scripts/tools/jira_adapter.ts +1 -1
- package/src/scripts/trigger_coverage.ts +2 -2
- package/src/scripts/update_counts.ts +68 -6
- package/src/scripts/update_prices.ts +3 -3
- package/src/scripts/validate_agent_settings.ts +3 -3
- package/src/scripts/validate_decision_engine.ts +2 -2
- package/src/scripts/validate_discovery_manifest.ts +3 -3
- package/src/scripts/validate_frontmatter.ts +5 -5
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/scripts/validate_safe_paths.ts +2 -2
- package/src/scripts/validate_telegraph_carveouts.ts +3 -3
- package/src/scripts/verify_before_complete_hook.ts +2 -2
- package/src/scripts/verify_physical_move.ts +2 -2
- package/src/scripts/wrapper_freshness_hook.ts +3 -3
- package/src/server/schemas/settings.ts +426 -0
- package/src/shared/settingsSurface.ts +184 -0
- package/src/shared/userMd/formAdapter.ts +86 -0
- package/src/shared/userMd/schema.ts +59 -0
- package/src/shared/userMd/utils.ts +91 -0
- package/dist/agent-src/commands/optimize-project.md +0 -243
- package/dist/ui/assets/index-BbWWuFrF.css +0 -1
- package/dist/ui/assets/index-UjcTG_9O.js +0 -40
- package/dist/ui/assets/index-UjcTG_9O.js.map +0 -1
|
@@ -83,6 +83,12 @@ function render(): string {
|
|
|
83
83
|
}
|
|
84
84
|
L.push('');
|
|
85
85
|
L.push(`**${backed.length} backed claim(s)** — all evidence pointers resolve in CI.`);
|
|
86
|
+
L.push('');
|
|
87
|
+
L.push('Artefact counts in public prose (skills, commands, governed rules,');
|
|
88
|
+
L.push('guidelines, personas) are **generated from source and CI-drift-checked**:');
|
|
89
|
+
L.push('`update_counts.ts` writes the numbers, `check_artefact_count_messaging.ts`');
|
|
90
|
+
L.push('fails the build on any count-shaped prose mention that drifts from the');
|
|
91
|
+
L.push('source count — or on two different numbers for the same artefact kind.');
|
|
86
92
|
if (unbacked.length > 0) {
|
|
87
93
|
L.push('');
|
|
88
94
|
L.push(`We also publish our **debt**: ${unbacked.length} claim(s) are logged as`);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Build agents/settings/contexts/rule-trigger-matrix.md.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/build_rule_trigger_matrix.py` (ADR-200,
|
|
6
6
|
* Phase 8 / Wave 8g). Mirrors the Python contract EXACTLY — same generated
|
|
7
7
|
* markdown (byte-identical), same `CLASSIFICATION` table, same stdout
|
|
8
8
|
* (`✅ Wrote …` line) + stderr (unclassified-rule warning) split, exit codes
|
|
@@ -340,7 +340,7 @@ function emit(): number {
|
|
|
340
340
|
lines.push('');
|
|
341
341
|
lines.push('**Source:** Phase 1 of `road-to-rule-hardening.md` (self-check audit) +');
|
|
342
342
|
lines.push('Phase 1 of `road-to-context-layer-maturity.md` (`load_context:` inventory).');
|
|
343
|
-
lines.push('**Generated by:** `scripts/build_rule_trigger_matrix.
|
|
343
|
+
lines.push('**Generated by:** `src/scripts/build_rule_trigger_matrix.ts` — re-run after rule');
|
|
344
344
|
lines.push("set changes. Manual classifications live in the script's `CLASSIFICATION`");
|
|
345
345
|
lines.push('table; size and context-chain columns are derived from the rule files.');
|
|
346
346
|
lines.push('');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* capture_showcase_session.ts — wrap and measure showcase sessions.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/capture_showcase_session.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration, Phase 8 / Wave 8g). Mirrors the Python CLI contract
|
|
7
7
|
* EXACTLY — the `capture` / `metrics` subcommands, every flag, exit codes
|
|
8
8
|
* (0 success / 1 user error / 2 metric-gate pending), the stdout/stderr
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
*
|
|
25
25
|
* `commit_sha` (git HEAD) and `started`/`ended` (now) are non-deterministic;
|
|
26
26
|
* golden parity supplies fixed timestamps via `--started`/`--ended` and
|
|
27
|
-
* excludes `commit_sha`. No behaviour changes —
|
|
28
|
-
*
|
|
27
|
+
* excludes `commit_sha`. No behaviour changes — historical quirks
|
|
28
|
+
* preserved.
|
|
29
29
|
*/
|
|
30
30
|
import { spawnSync } from 'node:child_process';
|
|
31
31
|
import * as fs from 'node:fs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Persistent chat-history log for crash recovery.
|
|
2
2
|
//
|
|
3
|
-
//
|
|
3
|
+
// Ported from the retired Python `src/scripts/chat_history.py` (ADR-200 — Python→TS
|
|
4
4
|
// migration). Public API mirrors the Python module exactly (snake_case kept
|
|
5
5
|
// deliberately) so callers — including the MCP tools layer
|
|
6
6
|
// (`src/scripts/mcp_server/tools.ts`) — depend on one source of truth.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Always-rule budget gate (Phases 7.1 + 7.4 of road-to-pr-34-followups,
|
|
4
4
|
* extended by Phase 0.2 of road-to-structural-optimization).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Ported from the retired Python `src/scripts/check_always_budget.py` (ADR-200 —
|
|
7
7
|
* Python→TS migration, Phase 4 / Wave 4a). Mirrors the Python CLI
|
|
8
8
|
* contract exactly: flags (`--quiet`, `--no-trend`), exit codes
|
|
9
9
|
* (0 = pass/warn, 1 = fail, 3 = internal error), stdout/stderr split,
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Phase-6 checksum-stability gate (monorepo Phase 2, ADR-015).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4c). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_artefact_checksums.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4c). The CLI contract is pinned — `--manifest`
|
|
7
7
|
* / `--quiet` flags, exit codes (0 match, 1 drift / malformed / missing),
|
|
8
8
|
* stdout/stderr split, byte-identical messages, the same per-artefact
|
|
9
9
|
* checksum recomputation and the same error truncation (first 20 + "… and N
|
|
10
|
-
* more").
|
|
10
|
+
* more"). Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* the retired Python implementation imports `_artefact_checksum` + `_CATEGORY_SCHEMA` from
|
|
13
13
|
* `build_discovery_manifest.py` (which has no TS twin yet). To keep the TS
|
|
14
14
|
* twin self-contained AND in lockstep, the checksum primitive is ported
|
|
15
15
|
* inline here from `build_discovery_manifest._artefact_checksum` /
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
/**
|
|
3
|
+
* Artefact-count messaging gate (road-to-truth-and-reference-hygiene Phase 1).
|
|
4
|
+
*
|
|
5
|
+
* Generalises `check_command_count_messaging.ts` (which stays wired as
|
|
6
|
+
* `task check-command-count` — its badge/browse anchors are required-check
|
|
7
|
+
* contract surface and are NOT removed here) from commands-only to every
|
|
8
|
+
* artefact kind: any count-shaped prose mention of skills / commands /
|
|
9
|
+
* governed rules / guidelines / personas on a flagship public surface must
|
|
10
|
+
* equal the canonical source count, and no surface may carry two DIFFERENT
|
|
11
|
+
* numbers for the same kind (the 150-vs-162-vs-166 failure mode that
|
|
12
|
+
* motivated this gate).
|
|
13
|
+
*
|
|
14
|
+
* Ownership split:
|
|
15
|
+
* - `update_counts.ts` GENERATES the numbers into anchored positions
|
|
16
|
+
* (badges + prose) and `--check`s those exact anchors.
|
|
17
|
+
* - THIS gate SCANS the flagship surfaces for any count-shaped phrase —
|
|
18
|
+
* anchored or not — so a hand-typed new sentence with a stale number
|
|
19
|
+
* fails CI even though no anchor covers it yet.
|
|
20
|
+
* - `check_command_count_messaging.ts` keeps the command-specific
|
|
21
|
+
* active-vs-shim split checks.
|
|
22
|
+
*
|
|
23
|
+
* Scope: flagship surfaces only (SURFACES below). Dated census / analysis
|
|
24
|
+
* snapshots (SKILL_CENSUS, skills-taxonomy, positioning-evidence, …) carry
|
|
25
|
+
* point-in-time counts by design and are deliberately out of scope — the
|
|
26
|
+
* gate's charter is the surfaces a fresh reader treats as current.
|
|
27
|
+
*
|
|
28
|
+
* Exit codes: 0 clean · 1 drift or internal inconsistency.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
import * as fs from 'node:fs';
|
|
32
|
+
import * as path from 'node:path';
|
|
33
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
34
|
+
|
|
35
|
+
import { canonical_counts } from './check_command_count_messaging.js';
|
|
36
|
+
import { count } from './update_counts.js';
|
|
37
|
+
|
|
38
|
+
const _HERE = fileURLToPath(import.meta.url);
|
|
39
|
+
export const ROOT = path.resolve(path.dirname(_HERE), '..', '..');
|
|
40
|
+
|
|
41
|
+
/** Flagship public prose surfaces (repo-relative). Missing files are skipped
|
|
42
|
+
* with a warning so a doc rename does not hard-break the gate. */
|
|
43
|
+
export const SURFACES: readonly string[] = [
|
|
44
|
+
'README.md',
|
|
45
|
+
'AGENTS.md',
|
|
46
|
+
'llms.txt',
|
|
47
|
+
'docs/CLAIMS.md',
|
|
48
|
+
'docs/getting-started.md',
|
|
49
|
+
'docs/getting-started-by-role.md',
|
|
50
|
+
'docs/architecture.md',
|
|
51
|
+
'docs/command-flows.md',
|
|
52
|
+
'docs/governance-advantage.md',
|
|
53
|
+
'docs/featured-skills.md',
|
|
54
|
+
'docs/featured-commands.md',
|
|
55
|
+
'docs/proof.md',
|
|
56
|
+
'site/src/content/docs/index.mdx',
|
|
57
|
+
'site/src/content/docs/claims.md',
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
/** kind → canonical-count resolver. "governed rules" is the canonical total
|
|
61
|
+
* phrasing for rules; bare "N rules" is NOT matched (too many legitimate
|
|
62
|
+
* subset scopes: kernel rules, router rules, maintainer-only rules …). */
|
|
63
|
+
const KIND_PATTERNS: ReadonlyArray<[string, RegExp]> = [
|
|
64
|
+
['skills', /(~?)(\d+)\+?\s+skills\b/g],
|
|
65
|
+
['commands', /(~?)(\d+)\+?\s+commands\b/g],
|
|
66
|
+
['rules', /(~?)(\d+)\+?\s+governed rules\b/g],
|
|
67
|
+
['guidelines', /(~?)(\d+)\+?\s+guidelines\b/g],
|
|
68
|
+
['personas', /(~?)(\d+)\+?\s+personas\b/g],
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
export interface Finding {
|
|
72
|
+
file: string;
|
|
73
|
+
line: number;
|
|
74
|
+
kind: string;
|
|
75
|
+
found: number;
|
|
76
|
+
expected: number;
|
|
77
|
+
approx: boolean;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function canonical_for(kind: string): number {
|
|
81
|
+
if (kind === 'commands') {
|
|
82
|
+
// Prose command mentions carry the ACTIVE count (total − shims),
|
|
83
|
+
// matching the hero badge owned by check_command_count_messaging.
|
|
84
|
+
const [, , active] = canonical_counts();
|
|
85
|
+
return active;
|
|
86
|
+
}
|
|
87
|
+
return count(kind);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** Scan one text body; returns findings + the per-kind numbers seen. */
|
|
91
|
+
export function scan_text(
|
|
92
|
+
rel: string,
|
|
93
|
+
text: string,
|
|
94
|
+
expected: Readonly<Record<string, number>>,
|
|
95
|
+
): { findings: Finding[]; seen: Record<string, Set<number>> } {
|
|
96
|
+
const findings: Finding[] = [];
|
|
97
|
+
const seen: Record<string, Set<number>> = {};
|
|
98
|
+
const lines = text.split('\n');
|
|
99
|
+
for (const [kind, pattern] of KIND_PATTERNS) {
|
|
100
|
+
for (let i = 0; i < lines.length; i++) {
|
|
101
|
+
const re = new RegExp(pattern.source, pattern.flags);
|
|
102
|
+
for (const m of lines[i]!.matchAll(re)) {
|
|
103
|
+
const found = Number.parseInt(m[2]!, 10);
|
|
104
|
+
(seen[kind] ??= new Set()).add(found);
|
|
105
|
+
const exp = expected[kind]!;
|
|
106
|
+
const approx = m[1] === '~';
|
|
107
|
+
if (found !== exp || approx) {
|
|
108
|
+
findings.push({ file: rel, line: i + 1, kind, found, expected: exp, approx });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return { findings, seen };
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function main(argv: readonly string[] = process.argv.slice(2)): number {
|
|
117
|
+
const QUIET = argv.includes('--quiet');
|
|
118
|
+
const expected: Record<string, number> = {};
|
|
119
|
+
for (const [kind] of KIND_PATTERNS) {
|
|
120
|
+
expected[kind] = canonical_for(kind);
|
|
121
|
+
}
|
|
122
|
+
process.stdout.write(
|
|
123
|
+
`Canonical: skills=${expected['skills']} commands=${expected['commands']} ` +
|
|
124
|
+
`rules=${expected['rules']} guidelines=${expected['guidelines']} ` +
|
|
125
|
+
`personas=${expected['personas']}\n`,
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
const allFindings: Finding[] = [];
|
|
129
|
+
const global_seen: Record<string, Set<number>> = {};
|
|
130
|
+
for (const rel of SURFACES) {
|
|
131
|
+
const p = path.join(ROOT, rel);
|
|
132
|
+
if (!fs.existsSync(p)) {
|
|
133
|
+
process.stderr.write(` ⚠️ surface missing (skipped): ${rel}\n`);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const { findings, seen } = scan_text(rel, fs.readFileSync(p, 'utf-8'), expected);
|
|
137
|
+
allFindings.push(...findings);
|
|
138
|
+
for (const [kind, nums] of Object.entries(seen)) {
|
|
139
|
+
for (const n of nums) (global_seen[kind] ??= new Set()).add(n);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Internal-inconsistency check — the regression case this gate exists
|
|
144
|
+
// for: multiple DIFFERENT numbers for one kind across the surfaces.
|
|
145
|
+
const inconsistent: string[] = [];
|
|
146
|
+
for (const [kind, nums] of Object.entries(global_seen)) {
|
|
147
|
+
if (nums.size > 1) {
|
|
148
|
+
inconsistent.push(`${kind}: {${[...nums].sort((a, b) => a - b).join(', ')}}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (allFindings.length === 0 && inconsistent.length === 0) {
|
|
153
|
+
if (!QUIET) {
|
|
154
|
+
process.stdout.write('✅ All artefact-count prose in sync with source.\n');
|
|
155
|
+
}
|
|
156
|
+
return 0;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
process.stdout.write(
|
|
160
|
+
`❌ Artefact-count messaging drift — ${allFindings.length} mismatch(es):\n`,
|
|
161
|
+
);
|
|
162
|
+
for (const f of allFindings) {
|
|
163
|
+
const tag = f.approx ? ' (approximation "~" not allowed on flagship surfaces)' : '';
|
|
164
|
+
process.stdout.write(
|
|
165
|
+
` ${f.file}:${f.line}: ${f.kind} says ${f.found}, expected ${f.expected}${tag}\n`,
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
for (const line of inconsistent) {
|
|
169
|
+
process.stdout.write(` internal inconsistency — ${line}\n`);
|
|
170
|
+
}
|
|
171
|
+
process.stdout.write(
|
|
172
|
+
'\nFix: run `./scripts-run src/scripts/update_counts` for anchored positions,\n' +
|
|
173
|
+
'or correct the prose to the canonical number (never hand-type a new one).\n',
|
|
174
|
+
);
|
|
175
|
+
return 1;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function _isCliEntry(): boolean {
|
|
179
|
+
if (process.argv[1] === undefined) {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
183
|
+
if (import.meta.url === argvUrl) {
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
188
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
189
|
+
return here === argv;
|
|
190
|
+
} catch {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
196
|
+
process.exit(main(process.argv.slice(2)));
|
|
197
|
+
}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* Auto-rule description-length CI gate (Phase 1.3 of
|
|
4
4
|
* road-to-augment-limit-fit).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* Phase 4 / Wave 4c). The CLI contract is
|
|
6
|
+
* Ported from the retired Python `src/scripts/check_augment_description_cap.py` (ADR-200,
|
|
7
|
+
* Phase 4 / Wave 4c). The CLI contract is pinned — no flags, exit
|
|
8
8
|
* codes (0 pass, 1 over-cap), stdout/stderr split, byte-identical finding
|
|
9
9
|
* messages, same scan scope (`.agent-src.uncondensed/rules/*.md`) and file
|
|
10
|
-
* ordering.
|
|
10
|
+
* ordering. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
11
11
|
*
|
|
12
12
|
* For every `type: auto` rule under `.agent-src.uncondensed/rules/`,
|
|
13
13
|
* fail CI when the frontmatter `description:` exceeds DESC_CAP chars.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Advisory check for `.augmentignore` (road-to-governance-cleanup F6.3).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_augmentignore.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — `--quiet` flag,
|
|
7
7
|
* always exits 0, byte-identical advisory messages, same staleness /
|
|
8
8
|
* min-useful-lines thresholds, stdout-only output.
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Beta-review-marker checker for `docs/contracts/`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4c). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_beta_review_markers.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4c). The CLI contract is pinned — `--json`
|
|
7
7
|
* flag, exit codes (0 clean, 1 violations, 3 internal error), stdout/stderr
|
|
8
8
|
* split, byte-identical messages, the same scan order and the same date
|
|
9
9
|
* arithmetic (`keep-beta-until` ≤ today + 90 days). No behaviour changes —
|
|
10
|
-
*
|
|
10
|
+
* historical quirks preserved (consumers pin the exact behaviour).
|
|
11
11
|
*
|
|
12
12
|
* Every contract whose frontmatter declares `stability: beta` MUST carry
|
|
13
13
|
* exactly one of `promote-to: stable` | `keep-beta-until: YYYY-MM-DD` |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Bite-sized task granularity gate for structural roadmaps (P1.5).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_bite_sized_granularity.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4c). This module is a pure library (no CLI / main); the
|
|
7
7
|
* Python module is imported as a test surface. The exported API mirrors the
|
|
8
8
|
* Python public API EXACTLY:
|
|
@@ -2,17 +2,22 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Cluster-pattern compliance check.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4c). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_cluster_patterns.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4c). The CLI contract is pinned — no flags,
|
|
7
7
|
* exit codes (0 clean, 1 pattern violations, 3 internal error),
|
|
8
8
|
* stdout/stderr split, byte-identical finding messages, the same
|
|
9
9
|
* locked-clusters table parse, the same domains slug map (via the
|
|
10
10
|
* `_lib/agent_src` twin), and the same dispatcher-structure checks. No
|
|
11
|
-
* behaviour changes —
|
|
11
|
+
* behaviour changes — historical quirks preserved (consumers pin the exact behaviour).
|
|
12
12
|
*
|
|
13
13
|
* Compares each cluster dispatcher against the Phase 1 reference patterns
|
|
14
14
|
* (`fix`, `optimize`, `feature`).
|
|
15
15
|
*
|
|
16
|
+
* Phase 4 additions (ADR-115): every `routes_to:` entry on a dispatcher must
|
|
17
|
+
* resolve to a real src/domains command slug, and the `## Dispatch` section
|
|
18
|
+
* must document the bare-invocation behaviour (menu / default route /
|
|
19
|
+
* detection fallback) per command-clusters.md § Bare invocation.
|
|
20
|
+
*
|
|
16
21
|
* Exit codes: 0 = clean, 1 = pattern violations, 3 = internal error.
|
|
17
22
|
*/
|
|
18
23
|
|
|
@@ -212,6 +217,45 @@ export function check_dispatcher(cluster: string, slug_map: Map<string, string>)
|
|
|
212
217
|
if (body.includes('## Sub-commands') && !TABLE_HEADER_RE.test(body)) {
|
|
213
218
|
rep.errors.push('Sub-commands table header must be `| Sub-command | Routes to | Purpose |`');
|
|
214
219
|
}
|
|
220
|
+
|
|
221
|
+
// routes_to entries must resolve to real commands (Phase 4 / ADR-115).
|
|
222
|
+
const routesRaw = fm['routes_to'];
|
|
223
|
+
if (routesRaw !== undefined) {
|
|
224
|
+
const m = /^\[(.*)\]$/.exec(routesRaw.trim());
|
|
225
|
+
const entries = m
|
|
226
|
+
? (m[1] as string)
|
|
227
|
+
.split(',')
|
|
228
|
+
.map((s) => s.trim().replace(/^['"]|['"]$/g, ''))
|
|
229
|
+
.filter((s) => s.length > 0)
|
|
230
|
+
: [];
|
|
231
|
+
for (const entry of entries) {
|
|
232
|
+
// routes_to entries name either a command slug or a skill
|
|
233
|
+
// (e.g. `git-commit` routes to the `git-workflow` skill).
|
|
234
|
+
const skillPath = path.join(ROOT, 'src', 'skills', entry, 'SKILL.md');
|
|
235
|
+
if (!slug_map.has(entry) && !_isFile(skillPath)) {
|
|
236
|
+
rep.errors.push(
|
|
237
|
+
`routes_to entry \`${entry}\` resolves to no src/domains command slug ` +
|
|
238
|
+
'and no src/skills skill',
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Bare-invocation story (Phase 4 / ADR-115): the Dispatch section must say
|
|
245
|
+
// what a bare `/<cluster>` does — a menu, a default route, or detection.
|
|
246
|
+
const dispatchIdx = body.indexOf('## Dispatch');
|
|
247
|
+
if (dispatchIdx !== -1) {
|
|
248
|
+
const rest = body.slice(dispatchIdx + '## Dispatch'.length);
|
|
249
|
+
const nextSection = rest.search(/\n## /);
|
|
250
|
+
const section = nextSection === -1 ? rest : rest.slice(0, nextSection);
|
|
251
|
+
if (!/menu|bare|no argument|unknown or missing|detection|default/i.test(section)) {
|
|
252
|
+
rep.errors.push(
|
|
253
|
+
'`## Dispatch` must document the bare-invocation behaviour ' +
|
|
254
|
+
'(menu, default route, or detection fallback) per ' +
|
|
255
|
+
'command-clusters.md § Bare invocation',
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
215
259
|
return rep;
|
|
216
260
|
}
|
|
217
261
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Command-count messaging gate (road-to-pr-34-followups 1.2).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* (ADR-200, Phase 4 / Wave 4c).
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_command_count_messaging.py`
|
|
6
|
+
* (ADR-200, Phase 4 / Wave 4c). The CLI contract is pinned —
|
|
7
7
|
* `--quiet` flag (positional anywhere in argv), exit codes (0 clean,
|
|
8
8
|
* 1 drift, 1 no-commands-dir via stderr), stdout/stderr split,
|
|
9
9
|
* byte-identical messages, same canonical-count derivation
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Condensation quality checker for agent-config packages.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_condensation.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration, Phase 4 / Wave 4a). Mirrors the Python CLI
|
|
7
7
|
* contract exactly: flags (`--format text|json`, `--summary`, `--root`),
|
|
8
8
|
* exit codes (0 = clean, 1 = issues found, 3 = internal error),
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* Iron Laws / numbered) preserved per `preservation-guard`: heading
|
|
20
20
|
* verbatim at original level, structural-unit survival.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
* the retired Python implementation imports `_rewrite_paths` from `condense.py` to
|
|
23
23
|
* normalise the source side through the same path transformations the
|
|
24
24
|
* condenseor applies. `condense.py` is not yet ported (later phase), so
|
|
25
25
|
* that path-rewriter chain is replicated faithfully below as a private
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Validate condensed-output paths in `dist/agent-src/rules/*.md`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_condensed_paths.py` (ADR-200). Mirrors
|
|
6
6
|
* the Python CLI contract EXACTLY — same `--quiet` flag, same exit codes
|
|
7
7
|
* (0 clean, 1 violations, 3 internal error), same stdout/stderr split, same
|
|
8
8
|
* finding text, same forbidden-substring set, same frontmatter parsing, same
|
|
@@ -49,14 +49,14 @@ import type * as YamlModule from 'yaml';
|
|
|
49
49
|
|
|
50
50
|
// ESM-standard `require` shim. The bare `require` global is present when this
|
|
51
51
|
// module is *imported* (tsx injects it) but absent when the module is the
|
|
52
|
-
// directly-executed CLI entry, so resolve it explicitly here to
|
|
53
|
-
//
|
|
52
|
+
// directly-executed CLI entry, so resolve it explicitly here to preserve the
|
|
53
|
+
// historical lazy `import yaml` semantics in both execution modes.
|
|
54
54
|
const _require = createRequire(import.meta.url);
|
|
55
55
|
|
|
56
56
|
const QUIET = process.argv.includes('--quiet');
|
|
57
57
|
|
|
58
58
|
const _HERE = path.dirname(fileURLToPath(import.meta.url));
|
|
59
|
-
// _HERE === <repo>/src/scripts ; the Python
|
|
59
|
+
// _HERE === <repo>/src/scripts ; the retired Python implementation derives ROOT from
|
|
60
60
|
// Path(__file__).resolve().parent.parent.parent which is the repo root
|
|
61
61
|
// (src/scripts/check_condensed_paths.py → up three dirs).
|
|
62
62
|
const ROOT = path.resolve(_HERE, '..', '..');
|
|
@@ -160,8 +160,8 @@ function _split_frontmatter(text: string): [Frontmatter | null, string] {
|
|
|
160
160
|
}
|
|
161
161
|
let fm: unknown;
|
|
162
162
|
try {
|
|
163
|
-
// version '1.1' matches PyYAML
|
|
164
|
-
//
|
|
163
|
+
// version '1.1' matches the PyYAML safe_load semantics the frontmatter
|
|
164
|
+
// corpus was authored against (yaml.safe_load).
|
|
165
165
|
fm = YAML.parse(fmText, { version: '1.1' });
|
|
166
166
|
} catch {
|
|
167
167
|
return [null, text];
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Context-file path & orphan checker.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_context_paths.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — `--format`
|
|
7
7
|
* (text/json) and `--root` flags, exit codes (0 clean, 1 violations,
|
|
8
8
|
* 3 internal error), byte-identical messages, stdout-only output, same
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* CI guard: council config lives in `.ai-council.yml`, never `.agent-settings.yml`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_council_config_location.py` (ADR-200).
|
|
6
|
+
* The CLI contract is pinned — `--quiet` flag, exit codes (0 clean,
|
|
7
7
|
* 1 at least one violation), byte-identical finding messages, same scan globs
|
|
8
8
|
* (sorted), same fence tracking, same negation / `ai_council:` block detection,
|
|
9
9
|
* and the same `<!-- council-config-allowed -->` escape pragma. No behaviour
|
|
10
|
-
* changes —
|
|
10
|
+
* changes — historical quirks preserved (consumers pin the exact behaviour).
|
|
11
11
|
*
|
|
12
12
|
* Per ADR-104 (superseding ADR-093) the council reads a dedicated
|
|
13
13
|
* `.ai-council.yml` resolved ALWAYS from the user-global location
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* CI guard for the `ai-council` skill's output-path convention.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4c).
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_council_layout.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4c). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* flag (positional anywhere in argv), exit codes (0 clean, 1 violations),
|
|
8
8
|
* stdout, byte-identical finding messages, same `agents/` scan,
|
|
9
9
|
* sorted-iterdir + sorted-rglob ordering, same exemptions. No behaviour
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* CI guard for the council clause of the `no-roadmap-references` rule.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4a). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_council_references.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4a). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* flag, exit codes (0 clean, 1 forbidden refs), stdout/stderr split,
|
|
8
8
|
* byte-identical finding + footer text, same scan roots / order, and the
|
|
9
9
|
* same STRUCTURAL_CARVEOUTS logic. No behaviour changes — latent bugs
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Determinism check — runs the discovery scanner twice and diffs the output.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4c). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_discovery_determinism.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4c). The CLI contract is pinned — no flags,
|
|
7
7
|
* exit codes (0 deterministic, 1 drift), stdout/stderr split, byte-identical
|
|
8
8
|
* messages, and the same `generated_at` normalization + sorted-key JSON
|
|
9
9
|
* comparison. The scanner itself (`build_discovery_manifest.ts`) is run via the
|
|
10
|
-
* repo-local `tsx` binary, mirroring how the Python
|
|
10
|
+
* repo-local `tsx` binary, mirroring how the retired Python implementation invoked the
|
|
11
11
|
* scanner via `sys.executable`. No behaviour changes.
|
|
12
12
|
*
|
|
13
13
|
* Exit codes:
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Gate path-integrity check (R2 of road-to-test-and-gate-integrity).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_gate_paths.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — no flags, exit
|
|
7
7
|
* codes (0 all resolve, 1 missing / out-of-tree, 2 a gate failed to
|
|
8
8
|
* import / lacks GATE_CORE_PATHS), byte-identical messages, stdout/stderr
|
|
9
9
|
* split, same gate list / source-tree roots.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* the retired Python implementation read each gate's ACTUAL enforced paths via that
|
|
12
12
|
* module's `GATE_CORE_PATHS` attribute (`importlib.import_module`) — it
|
|
13
13
|
* did NOT re-declare a copy of the path strings. The gate `.py` modules are
|
|
14
14
|
* gone (ADR-200); the ported `.ts` twins each export `GATE_CORE_PATHS`, so
|
|
@@ -72,7 +72,7 @@ function _is_under_source_tree(p: string): boolean {
|
|
|
72
72
|
* missing-or-empty GATE_CORE_PATHS — surfaced as exit 2 by `main`.
|
|
73
73
|
*
|
|
74
74
|
* The gate `.py` modules are gone (ADR-200); the `.ts` twins each export a
|
|
75
|
-
* module-level `GATE_CORE_PATHS`.
|
|
75
|
+
* module-level `GATE_CORE_PATHS`. the retired Python implementation read the gate's REAL
|
|
76
76
|
* paths via `importlib` + `getattr` and never copied them — this keeps that
|
|
77
77
|
* property by importing the twin and reading its exported constant. A `tsx`
|
|
78
78
|
* subprocess (not an in-process dynamic `import()`) is used so this function
|
|
@@ -147,7 +147,7 @@ function collect_gate_paths(gate_modules: readonly string[]): Map<string, string
|
|
|
147
147
|
if ((typeof proc.status === 'number' ? proc.status : 1) !== 0) {
|
|
148
148
|
// tsx unavailable or crashed before producing JSON — treat as an
|
|
149
149
|
// import failure (exit 2 path), matching the "a gate failed to import"
|
|
150
|
-
// semantics of the Python
|
|
150
|
+
// semantics of the retired Python implementation.
|
|
151
151
|
const err = new Error(
|
|
152
152
|
(proc.stderr ?? '').trim() || 'gate introspection failed',
|
|
153
153
|
) as Error & { kind: string };
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Iron Law prominence checker — enforces that any rule file declaring an
|
|
4
4
|
* "Iron Law" places it at the top of the file at H2 level.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* Phase 4 / Wave 4c). The CLI contract is
|
|
6
|
+
* Ported from the retired Python `src/scripts/check_iron_law_prominence.py` (ADR-200,
|
|
7
|
+
* Phase 4 / Wave 4c). The CLI contract is pinned — positional
|
|
8
8
|
* paths (default `.agent-src.uncondensed/rules`), `--format` / `--quiet`
|
|
9
9
|
* flags, exit codes (0 clean, 1 violations, 3 internal error),
|
|
10
10
|
* stdout/stderr split, byte-identical finding messages, and the same
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* check_kernel_rule_bundle — Phase 4.2 of road-to-always-budget-relief.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4c). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/check_kernel_rule_bundle.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4c). The CLI contract is pinned — `--base-ref`
|
|
7
7
|
* / `--label` / `--event-path` / `--files` flags, exit codes (0 pass,
|
|
8
8
|
* 1 fail, 3 internal error), stdout/stderr split, byte-identical finding
|
|
9
9
|
* messages, the same git-diff invocation, base-ref candidate order, and
|
|
10
10
|
* PR-label parsing from the GitHub event JSON. No behaviour changes —
|
|
11
|
-
*
|
|
11
|
+
* historical quirks preserved (consumers pin the exact behaviour).
|
|
12
12
|
*
|
|
13
13
|
* Fails when a single PR (or commit range) modifies more than one
|
|
14
14
|
* kernel rule under `.agent-src.uncondensed/rules/`. Override via the
|