@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
package/src/scripts/install.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Agent Config — Project Bridge Installer (TypeScript twin).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* The CLI contract
|
|
5
|
+
* Ported from the retired Python `src/scripts/install.py` (ADR-200).
|
|
6
|
+
* The CLI contract pins the historical contract exactly — same flags, same
|
|
7
7
|
* exit codes, same stdout/stderr split, byte-identical emitted output,
|
|
8
8
|
* same filesystem effects, same subprocess argv/cwd/env. No behaviour
|
|
9
9
|
* changes — latent quirks are replicated and flagged inline, not fixed.
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
* import-resolution detail with no observable effect.
|
|
52
52
|
* - `scripts._cli.cmd_migrate` now has a `.ts` twin, so `_run_migrate_to_global`
|
|
53
53
|
* calls `cmd_migrate.main([], { cwd })` directly in-process — exactly as the
|
|
54
|
-
* Python
|
|
54
|
+
* retired Python implementation ran it via `sys.stdout`. The migrator's `out`/`err` sinks
|
|
55
55
|
* default to `process.stdout`/`process.stderr`, preserving the prior
|
|
56
56
|
* `stdio:['ignore','inherit','pipe']` observable contract (stdout text + exit
|
|
57
57
|
* code). Inline reason at the call site.
|
|
@@ -80,6 +80,9 @@ import * as user_global_paths from './_lib/user_global_paths.js';
|
|
|
80
80
|
import * as claude_desktop_bundler from './_lib/claude_desktop_bundler.js';
|
|
81
81
|
import * as claude_settings_hooks from './_lib/claude_settings_hooks.js';
|
|
82
82
|
import { find_project_root_with_anchor, load_agent_settings } from './_lib/agent_settings.js';
|
|
83
|
+
import { flattenSurface, computeSurfaceDelta, type SettingsSurface } from '../shared/settingsSurface.js';
|
|
84
|
+
import { settingsSchema } from '../server/schemas/settings.js';
|
|
85
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
83
86
|
import { detect_module_roots } from './_lib/module_detection.js';
|
|
84
87
|
import {
|
|
85
88
|
TIER_TO_CLAUDE_MODEL,
|
|
@@ -2832,6 +2835,66 @@ function _deploy_claude_desktop(
|
|
|
2832
2835
|
return [bundle_count, 0, 'deployed', [bundles_dir, ...marker_paths]];
|
|
2833
2836
|
}
|
|
2834
2837
|
|
|
2838
|
+
/**
|
|
2839
|
+
* Claude Code flat-command mitigation (council 2026-07-08,
|
|
2840
|
+
* cc-user-command-discovery). Claude Code ≤ 2.1.204 does not register FLAT
|
|
2841
|
+
* user-scope command files (`~/.claude/commands/<name>.md`) — probed and
|
|
2842
|
+
* confirmed: nested commands (`/cluster:sub`) and user-scope skills DO
|
|
2843
|
+
* register. Until upstream fixes discovery, tier-0/1 VISIBLE flat commands
|
|
2844
|
+
* are re-projected as skill wrappers (`~/.claude/skills/<name>/SKILL.md`)
|
|
2845
|
+
* and their flat command file is dropped from the claude-code anchor —
|
|
2846
|
+
* single source, so no duplicate `/name` appears once upstream fixes flat
|
|
2847
|
+
* discovery (revert = one package release, no per-machine gating).
|
|
2848
|
+
* Tier-2/internal flat commands stay command files. A command whose name
|
|
2849
|
+
* collides with a real skill is skipped (the skill already owns `/name`).
|
|
2850
|
+
*/
|
|
2851
|
+
const _CLAUDE_FLAT_WRAPPER_EXTRA = new Set(['commit']); // essential; absent from the manifest
|
|
2852
|
+
export function _apply_claude_flat_command_wrappers(
|
|
2853
|
+
anchor: string,
|
|
2854
|
+
package_root: string,
|
|
2855
|
+
current_files: Set<string>,
|
|
2856
|
+
): { wrapped: string[]; collisions: string[] } {
|
|
2857
|
+
const wrapped: string[] = [];
|
|
2858
|
+
const collisions: string[] = [];
|
|
2859
|
+
// Tier-0/1 visible command slugs from the locked discovery manifest.
|
|
2860
|
+
const eligible = new Set<string>(_CLAUDE_FLAT_WRAPPER_EXTRA);
|
|
2861
|
+
try {
|
|
2862
|
+
const manifest = JSON.parse(
|
|
2863
|
+
fs.readFileSync(path.join(package_root, 'dist', 'discovery', 'discovery-manifest.json'), 'utf8'),
|
|
2864
|
+
) as { artefacts?: Array<{ category?: string; slug?: string; tier?: number; visibility?: string }> };
|
|
2865
|
+
for (const a of manifest.artefacts ?? []) {
|
|
2866
|
+
if (a.category !== 'command' || typeof a.slug !== 'string') continue;
|
|
2867
|
+
if ((a.tier ?? 2) <= 1 && a.visibility !== 'internal') eligible.add(a.slug);
|
|
2868
|
+
}
|
|
2869
|
+
} catch {
|
|
2870
|
+
// No manifest → wrap only the hardcoded essentials.
|
|
2871
|
+
}
|
|
2872
|
+
for (const slug of [...eligible].sort()) {
|
|
2873
|
+
const flat_rel = `commands/${slug}.md`;
|
|
2874
|
+
const flat_abs = path.join(anchor, 'commands', `${slug}.md`);
|
|
2875
|
+
if (!fs.existsSync(flat_abs)) continue;
|
|
2876
|
+
const skill_dir = path.join(anchor, 'skills', slug);
|
|
2877
|
+
if (fs.existsSync(skill_dir)) {
|
|
2878
|
+
// A real skill owns /<slug> — never overwrite it.
|
|
2879
|
+
collisions.push(slug);
|
|
2880
|
+
continue;
|
|
2881
|
+
}
|
|
2882
|
+
let body = fs.readFileSync(flat_abs, 'utf8');
|
|
2883
|
+
// SKILL.md requires a `name:` — inject it into the existing
|
|
2884
|
+
// frontmatter when absent (command frontmatter carries description).
|
|
2885
|
+
if (body.startsWith('---\n') && !/^name:/m.test(body.split('\n---')[0] ?? '')) {
|
|
2886
|
+
body = body.replace('---\n', `---\nname: ${slug}\n`);
|
|
2887
|
+
}
|
|
2888
|
+
fs.mkdirSync(skill_dir, { recursive: true });
|
|
2889
|
+
fs.writeFileSync(path.join(skill_dir, 'SKILL.md'), body, 'utf8');
|
|
2890
|
+
fs.rmSync(flat_abs, { force: true });
|
|
2891
|
+
current_files.delete(flat_rel);
|
|
2892
|
+
current_files.add(`skills/${slug}/SKILL.md`);
|
|
2893
|
+
wrapped.push(slug);
|
|
2894
|
+
}
|
|
2895
|
+
return { wrapped, collisions };
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2835
2898
|
function _deploy_global_content(
|
|
2836
2899
|
tools: Set<string>,
|
|
2837
2900
|
force: boolean,
|
|
@@ -2874,6 +2937,20 @@ function _deploy_global_content(
|
|
|
2874
2937
|
global_deploy_inventory.expected_deploy_files(src, dest_sub ? dest_sub : ''),
|
|
2875
2938
|
);
|
|
2876
2939
|
}
|
|
2940
|
+
// Flat-command → skill-wrapper re-projection for Claude Code
|
|
2941
|
+
// (discovery regression mitigation; see the helper's doc block).
|
|
2942
|
+
// Runs before the postcheck + inventory record so `current_files`
|
|
2943
|
+
// reflects the transformed tree and reaping stays consistent.
|
|
2944
|
+
if (tool_id === 'claude-code') {
|
|
2945
|
+
const res = _apply_claude_flat_command_wrappers(anchor, package_root, current_files);
|
|
2946
|
+
if (res.wrapped.length > 0 && !state.QUIET) {
|
|
2947
|
+
info(
|
|
2948
|
+
` claude-code: ${res.wrapped.length} visible flat command(s) projected as ` +
|
|
2949
|
+
'skill wrappers (Claude Code flat-command discovery workaround)',
|
|
2950
|
+
);
|
|
2951
|
+
}
|
|
2952
|
+
}
|
|
2953
|
+
|
|
2877
2954
|
const missing_targets = _verify_deploy_targets(anchor, plan);
|
|
2878
2955
|
if (missing_targets.length > 0) {
|
|
2879
2956
|
if (!state.QUIET) {
|
|
@@ -3275,6 +3352,20 @@ function install_global(
|
|
|
3275
3352
|
}
|
|
3276
3353
|
}
|
|
3277
3354
|
|
|
3355
|
+
// Settings-surface snapshot + upgrade delta (road-to-settings-change-
|
|
3356
|
+
// review; council 2026-07-08, 2/2 converged on snapshot-at-install).
|
|
3357
|
+
// Every global install persists the flattened settings surface; when a
|
|
3358
|
+
// PREVIOUS snapshot from a different version exists, the semantic delta
|
|
3359
|
+
// (added / default_changed / enum_added / enum_removed / type_changed)
|
|
3360
|
+
// is written to state/settings-delta.json — the pending-review flag the
|
|
3361
|
+
// GUI banner, the review page, and doctor consume. Never fatal: a
|
|
3362
|
+
// snapshot failure must not sink the install.
|
|
3363
|
+
try {
|
|
3364
|
+
_write_settings_surface_snapshot(installed_version);
|
|
3365
|
+
} catch (e) {
|
|
3366
|
+
if (!state.QUIET) warn(`settings-surface snapshot failed — ${String(e)}`);
|
|
3367
|
+
}
|
|
3368
|
+
|
|
3278
3369
|
if (!state.QUIET) {
|
|
3279
3370
|
process.stdout.write('\n');
|
|
3280
3371
|
success(`Global install completed (v${installed_version}).`);
|
|
@@ -3283,6 +3374,55 @@ function install_global(
|
|
|
3283
3374
|
return 0;
|
|
3284
3375
|
}
|
|
3285
3376
|
|
|
3377
|
+
const SETTINGS_SURFACE_REL = path.join('state', 'settings-surface.json');
|
|
3378
|
+
const SETTINGS_DELTA_REL = path.join('state', 'settings-delta.json');
|
|
3379
|
+
|
|
3380
|
+
function _current_settings_surface(version: string): SettingsSurface {
|
|
3381
|
+
const jsonSchema = zodToJsonSchema(settingsSchema, {
|
|
3382
|
+
name: 'AgentSettings',
|
|
3383
|
+
$refStrategy: 'none',
|
|
3384
|
+
target: 'jsonSchema7',
|
|
3385
|
+
}) as Parameters<typeof flattenSurface>[0];
|
|
3386
|
+
return flattenSurface(jsonSchema, version);
|
|
3387
|
+
}
|
|
3388
|
+
|
|
3389
|
+
function _write_settings_surface_snapshot(installed_version: string): void {
|
|
3390
|
+
const root = user_global_paths.event4u_root();
|
|
3391
|
+
const surface_path = path.join(root, SETTINGS_SURFACE_REL);
|
|
3392
|
+
const delta_path = path.join(root, SETTINGS_DELTA_REL);
|
|
3393
|
+
const next = _current_settings_surface(installed_version);
|
|
3394
|
+
|
|
3395
|
+
let previous: SettingsSurface | null = null;
|
|
3396
|
+
try {
|
|
3397
|
+
const parsed = JSON.parse(fs.readFileSync(surface_path, 'utf8')) as SettingsSurface;
|
|
3398
|
+
if (parsed !== null && typeof parsed === 'object' && parsed.entries !== undefined) previous = parsed;
|
|
3399
|
+
} catch {
|
|
3400
|
+
// First run after this feature ships — seed-only (council Q1:
|
|
3401
|
+
// no template fallback; the transition cost is paid once).
|
|
3402
|
+
}
|
|
3403
|
+
|
|
3404
|
+
if (previous !== null && previous.version !== next.version) {
|
|
3405
|
+
const delta = computeSurfaceDelta(previous, next);
|
|
3406
|
+
if (delta.changes.length > 0) {
|
|
3407
|
+
fs.mkdirSync(path.dirname(delta_path), { recursive: true, mode: 0o700 });
|
|
3408
|
+
fs.writeFileSync(delta_path, `${JSON.stringify(delta, null, 2)}\n`, { mode: 0o600 });
|
|
3409
|
+
if (!state.QUIET) {
|
|
3410
|
+
const counts: Record<string, number> = {};
|
|
3411
|
+
for (const c of delta.changes) counts[c.kind] = (counts[c.kind] ?? 0) + 1;
|
|
3412
|
+
const parts = Object.entries(counts).map(([k, v]) => `${v} ${k.replace('_', ' ')}`);
|
|
3413
|
+
info(
|
|
3414
|
+
`Settings surface changed ${delta.oldVersion} → ${delta.newVersion}: ` +
|
|
3415
|
+
`${parts.join(', ')}. Review with \`agent-config config\` ` +
|
|
3416
|
+
'(Settings → banner) — nothing was changed automatically.',
|
|
3417
|
+
);
|
|
3418
|
+
}
|
|
3419
|
+
}
|
|
3420
|
+
}
|
|
3421
|
+
|
|
3422
|
+
fs.mkdirSync(path.dirname(surface_path), { recursive: true, mode: 0o700 });
|
|
3423
|
+
fs.writeFileSync(surface_path, `${JSON.stringify(next, null, 2)}\n`, { mode: 0o600 });
|
|
3424
|
+
}
|
|
3425
|
+
|
|
3286
3426
|
function arrayStrEqual(a: string[], b: string[]): boolean {
|
|
3287
3427
|
return a.length === b.length && a.every((v, i) => v === b[i]);
|
|
3288
3428
|
}
|
|
@@ -4531,6 +4671,8 @@ export {
|
|
|
4531
4671
|
_wizard_should_launch,
|
|
4532
4672
|
_dry_run_summary,
|
|
4533
4673
|
_apply_payload_preview,
|
|
4674
|
+
_write_settings_surface_snapshot,
|
|
4675
|
+
_current_settings_surface,
|
|
4534
4676
|
jsonDumpsIndent,
|
|
4535
4677
|
jsonDumpsCompact,
|
|
4536
4678
|
_canonical_settings_target,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Abstraction-budget inventory — read-only discovery pass.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/inventory_abstraction_budget.py`
|
|
6
6
|
* (ADR-200 — Python→TS migration, Phase 8 / Wave 8c). Mirrors the
|
|
7
7
|
* Python CLI contract EXACTLY — the `--quiet` flag, exit code (always
|
|
8
8
|
* 0), the stdout/stderr split routed through the `script_output` twin,
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
* quoting).
|
|
12
12
|
*
|
|
13
13
|
* Imports the `_lib/agent_src` + `_lib/script_output` twins (the SAME
|
|
14
|
-
* surfaces the Python
|
|
14
|
+
* surfaces the retired Python implementation imports). Reference counts are grep-backed
|
|
15
15
|
* (ripgrep with python-walk fallback) — `rg` is invoked as a subprocess
|
|
16
|
-
* exactly like the Python
|
|
16
|
+
* exactly like the retired Python implementation, so the counts agree.
|
|
17
17
|
*
|
|
18
18
|
* Read-only. Touches no abstraction file. No behaviour changes — latent
|
|
19
19
|
* Python quirks replicated.
|
|
@@ -127,7 +127,7 @@ function newStats(): Stats {
|
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
function _log(level: 'info' | 'success' | 'warn' | 'error', msg: string): void {
|
|
130
|
-
// script_output twin is always present here (unlike the Python
|
|
130
|
+
// script_output twin is always present here (unlike the retired Python implementation's
|
|
131
131
|
// graceful-degradation guard, which exists only for the rare run outside the
|
|
132
132
|
// repo). Mirror the Python branch: when script_output is None it would print
|
|
133
133
|
// only on error to stderr — but in this twin the module is always imported.
|
|
@@ -466,7 +466,7 @@ export function inventory_packs(stats: Stats): void {
|
|
|
466
466
|
// FileNotFoundError when the directory does not exist (it is NOT guarded
|
|
467
467
|
// by an is_dir() check, unlike the other inventory passes). Replicate that
|
|
468
468
|
// latent crash faithfully: on the current src/-based layout (no packages/
|
|
469
|
-
// dir) the Python
|
|
469
|
+
// dir) the retired Python implementation aborts with a FileNotFoundError traceback and
|
|
470
470
|
// exit 1. See the divergence note in the wave report — this is a real
|
|
471
471
|
// latent Python bug being mirrored, not a TS choice.
|
|
472
472
|
for (const child of _iterdirSortedStrict(packs_dir)) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Inventory frontmatter keys across all agent artefacts.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/inventory_frontmatter.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract
|
|
7
7
|
* EXACTLY: no flags, exit code 0, byte-identical Markdown stdout. No
|
|
8
8
|
* behaviour changes — latent bugs (line-based frontmatter parse, the
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Meta-layer / concept-surface inventory — read-only discovery pass.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/inventory_meta_layers.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract EXACTLY:
|
|
7
7
|
* flag (`--quiet`), exit code 0, byte-identical stdout, and the byte-identical
|
|
8
8
|
* written `meta-layer-inventory.md` (`\n`-joined) + `meta-layer-inventory.csv`
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* SHA-256 of every triple-fence block in a rule file (Iron Law preservation).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `iron_law_sha.py` (Phase 8 / Wave 8e). Mirrors the
|
|
6
6
|
* Python CLI contract byte-for-byte: flags, exit codes, stdout layout.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Command surface for the file-first global knowledge-card store (ADR-100).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* contract
|
|
5
|
+
* Ported from the retired Python `src/scripts/knowledge_global_cli.py` (ADR-200). The CLI
|
|
6
|
+
* contract pins the historical contract exactly — same subcommands, flags,
|
|
7
7
|
* exit codes, stdout/stderr split, byte-identical messages, table layout,
|
|
8
8
|
* provenance write, and kill-switch no-op behavior. No behaviour changes.
|
|
9
9
|
*
|
|
@@ -392,7 +392,7 @@ function cmd_validate(args: { check_urls: boolean }): number {
|
|
|
392
392
|
return 0;
|
|
393
393
|
}
|
|
394
394
|
|
|
395
|
-
//
|
|
395
|
+
// the retired Python implementation spawns `python3 check_knowledge_cards.py --global
|
|
396
396
|
// --strict`. The TS twin spawns the sibling `check_knowledge_cards.ts`
|
|
397
397
|
// via the same tsx runtime (process spawn, not an import).
|
|
398
398
|
const tsxBin = path.join(
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* `agent-config linked-projects:list` — list opted-in IDE-attached siblings.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `linked_projects_list.py` (Phase 8 / Wave 8e).
|
|
6
6
|
*
|
|
7
7
|
* Phase 4 of `road-to-leaner-core-and-discovery`; closes the ADR-032 follow-up
|
|
8
8
|
* "expose the detector as a CLI subcommand for consumer reach". Pure wrapper over
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* P1.6 — umbrella runner for the agent-security self-audit linters.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_agent_security.py` (ADR-200 —
|
|
6
6
|
* Python→TS migration). Mirrors the CLI contract EXACTLY: the `--sarif PATH`
|
|
7
7
|
* / `--quiet` flags, the per-linter glyph lines, the aggregated summary, the
|
|
8
8
|
* byte-identical SARIF report (`json.dumps(indent=2)` parity), and the exit
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
* (road-to-security-pillar.md P1).
|
|
16
16
|
*
|
|
17
17
|
* The four child linters now have TypeScript twins, so this runner spawns each
|
|
18
|
-
* `<child>.ts --json` via the repo-local `tsx` binary (the Python
|
|
18
|
+
* `<child>.ts --json` via the repo-local `tsx` binary (the retired Python implementations
|
|
19
19
|
* were deleted in the ADR-200 migration). Each child is a separate process so
|
|
20
|
-
* its JSON findings are aggregated here exactly as the Python
|
|
20
|
+
* its JSON findings are aggregated here exactly as the retired Python implementation
|
|
21
21
|
* aggregated `subprocess.run` output.
|
|
22
22
|
*
|
|
23
23
|
* Usage:
|
|
@@ -51,7 +51,7 @@ const LINTERS: ReadonlyArray<[string, string]> = [
|
|
|
51
51
|
|
|
52
52
|
function _run(script: string): [number, Finding[]] {
|
|
53
53
|
// Spawn the child linter's `.ts` twin via the repo-local tsx binary
|
|
54
|
-
// (capture_output=True, text=True equivalent). Mirrors the Python
|
|
54
|
+
// (capture_output=True, text=True equivalent). Mirrors the retired Python implementation's
|
|
55
55
|
// `subprocess.run([sys.executable, HERE/<child>.py, "--json"])`, now that the
|
|
56
56
|
// children are TypeScript and the `.py` originals are deleted.
|
|
57
57
|
const proc = spawnSync(tsxBin, [path.join(_HERE, script), "--json"], {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
// Agent-Skills name-compliance linter (2026-06 Zed fix).
|
|
3
3
|
//
|
|
4
|
-
// TypeScript
|
|
4
|
+
// TypeScript port of the retired Python src/scripts/lint_agent_skill_names.py — same two
|
|
5
5
|
// blocking checks (command name == path-derived slug; skill name == dir),
|
|
6
6
|
// same Agent-Skills name pattern, same stdout/stderr split, same exit codes
|
|
7
7
|
// (0 clean / 1 violations / 3 internal error), same `--quiet` flag.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* CI guard for the `agents/` top-level layout.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_agents_layout.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* / `--strict` flags (parsed by membership test, like the Python which
|
|
8
8
|
* scans `sys.argv[1:]`), exit codes (0 clean / warnings, 1 unknown
|
|
9
9
|
* flat-file violation), stdout/stderr split (everything goes to stdout),
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Thin-Root contract linter for AGENTS.md files (Phase 7).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_agents_md.py` (ADR-200, Phase 4 /
|
|
6
|
+
* Wave 4b). The CLI contract is pinned — `--quiet` detected by
|
|
7
7
|
* argv membership (no argparse), exit codes (0 / 1), stdout-only output,
|
|
8
8
|
* byte-identical messages, same target order. No behaviour changes —
|
|
9
|
-
*
|
|
9
|
+
* historical quirks preserved (consumers pin the exact behaviour).
|
|
10
10
|
*
|
|
11
11
|
* Enforces caps + pointer-ratio + pointer-anatomy + emergency-triage
|
|
12
12
|
* contract from `.agent-src.uncondensed/skills/agents-md-thin-root/SKILL.md`.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint archive notes under agents/evidence/archived-skills/.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_archived_skills.py` (ADR-200, Phase 4
|
|
6
|
+
* / Wave 4b). The CLI contract is pinned — `--quiet` flag, exit
|
|
7
7
|
* codes (0 contract holds, 1 violations), stdout/stderr split,
|
|
8
8
|
* byte-identical finding messages, same scan trees and order, same
|
|
9
9
|
* frontmatter parser, same `artefact_roots()` skill-root discovery.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint Phase-4 discovery frontmatter on every artefact.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_artefact_frontmatter.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* flag, exit codes (0 clean, 1 violation), stdout/stderr split,
|
|
8
8
|
* byte-identical finding messages (including Python-shaped list repr),
|
|
9
9
|
* same scan trees and order, same `validate_frontmatter.parse_frontmatter`
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Validate the A/B bench corpora + `docs/benchmark.md` shape.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_bench_ab.py` (ADR-200, Phase 4 /
|
|
6
|
+
* Wave 4b). The CLI contract is pinned — `--quiet` flag, exit
|
|
7
7
|
* codes (0 success, 1 first violation), stdout/stderr split, byte-identical
|
|
8
8
|
* finding messages (including the `lint_bench_ab: <relpath>: <msg>` prefix
|
|
9
9
|
* and the Python `repr()`-shaped value formatting), same check order, same
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint benchmark corpora under tests/eval/corpus-*.yaml.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_bench_corpus.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b). Mirrors the Python CLI contract exactly: same scan scope + glob
|
|
7
7
|
* ordering, finding messages (including Python-repr rendering of bad values),
|
|
8
8
|
* stdout/stderr split, and exit codes.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Command → flow coverage lint (the Flows primary view).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_command_flow_coverage.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4b). Mirrors the CLI contract EXACTLY — the `--quiet`
|
|
7
7
|
* argparse flag, exit codes (0 clean, 1 violations, 3 internal error),
|
|
8
8
|
* byte-identical stdout/stderr lines, the same violation ordering
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Routing-metadata + routing-eval linter for visible commands.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_command_routing.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b). Mirrors the Python CLI contract exactly: same `--quiet` flag,
|
|
7
7
|
* scan scope (src/domains/**\/command.md, legacy packages fallback), file
|
|
8
8
|
* ordering, frontmatter parsing, finding messages, stdout/stderr split, and
|
|
9
9
|
* exit codes (0 clean, 1 violations, 3 internal error). No behaviour changes —
|
|
10
|
-
*
|
|
10
|
+
* historical quirks preserved (consumers pin the exact behaviour).
|
|
11
11
|
*
|
|
12
12
|
* Every VISIBLE command (tier 0/1) must carry:
|
|
13
13
|
* - `intent` — non-empty one-line existence justification
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint slash-command frontmatter for the `tier:` key.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_command_tiers.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b). Mirrors the Python CLI contract exactly: same scan scope, file
|
|
7
7
|
* ordering, finding messages, stdout/stderr split, and exit codes
|
|
8
8
|
* (return-code bitwise-OR accumulation across the domain + per-root +
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Controlled-verb linter for visible commands.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_command_verbs.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--baseline`
|
|
7
7
|
* / `--all` / `--quiet` flags, exit codes (0 clean, 1 violations, 3
|
|
8
8
|
* internal error), stdout/stderr split, byte-identical finding messages,
|
|
9
9
|
* same scan scope (forward-only git diff + working-tree status, or every
|
|
10
10
|
* visible command under `--all`), and the same sorted iteration order.
|
|
11
|
-
* snake_case kept.
|
|
11
|
+
* snake_case kept. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
12
12
|
*
|
|
13
13
|
* A VISIBLE command (tier 0/1) must have a leading token drawn from the
|
|
14
14
|
* approved verb allowlist in `src/config/discovery/command-verbs.yml`.
|
|
@@ -312,7 +312,7 @@ function parse_args(argv: readonly string[]): ParsedArgs {
|
|
|
312
312
|
|
|
313
313
|
function _argparse_error(message: string): never {
|
|
314
314
|
// Mirror Python argparse: usage line + program error, both on stderr,
|
|
315
|
-
// exit code 2. The prog name is the basename of the Python
|
|
315
|
+
// exit code 2. The prog name is the basename of the retired Python implementation.
|
|
316
316
|
process.stderr.write(
|
|
317
317
|
'usage: lint_command_verbs.py [-h] [--baseline BASELINE] [--all] [--quiet]\n',
|
|
318
318
|
);
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Commit-subject linter.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_commit_subjects.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--base`
|
|
7
7
|
* / `--head` / `--quiet` flags, exit codes (0 clean / advisory, 1
|
|
8
8
|
* violations), stdout/stderr split, byte-identical finding messages
|
|
9
9
|
* (the issue strings are grepped by tests), and the same git invocation
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Context-spine usage linter.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_context_spine_usage.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* detected by argv membership (no argparse), exit codes (0 clean,
|
|
8
8
|
* 1 violations / no files), stdout/stderr split, byte-identical messages,
|
|
9
|
-
* same glob scan order.
|
|
9
|
+
* same glob scan order. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
10
10
|
*
|
|
11
11
|
* For every slot declared in frontmatter (`context_spine: [...]`), the skill
|
|
12
12
|
* body MUST cite the slot at least once (link, bold, or inline-code form).
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint a generated discovery-manifest.json against schema + checksum.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_discovery_manifest.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--manifest`
|
|
7
7
|
* / `--quiet` flags, exit codes (0 / 1), stdout/stderr split, byte-identical
|
|
8
8
|
* SUCCESS + vocab + determinism + checksum messages, same check order, and
|
|
9
9
|
* a byte-identical checksum recomputation (recursive key-sort + indent-2,
|
|
10
|
-
* `ensure_ascii=False`).
|
|
10
|
+
* `ensure_ascii=False`). Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
11
11
|
*
|
|
12
12
|
* DIVERGENCE CANDIDATES:
|
|
13
|
-
* 1.
|
|
13
|
+
* 1. the retired Python implementation imports `jsonschema` and exits 1 with the message
|
|
14
14
|
* `error: jsonschema not installed (...)` when it is absent. The TS twin
|
|
15
15
|
* has no such dependency, so that exit-1 path never fires — the schema
|
|
16
16
|
* check always runs.
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Vocabulary linter for `src/config/discovery/{workspaces,packs}.yml`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_discovery_vocabulary.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4b). Mirrors the Python CLI contract exactly: `--quiet`
|
|
7
7
|
* flag, same scan scope, finding messages, stdout/stderr split (errors to
|
|
8
8
|
* stderr, OK line to stdout), and exit codes (0 clean, 1 on failure, 2 if
|
|
9
9
|
* YAML loader is unavailable — N/A here, `yaml` is bundled). No behaviour
|
|
10
|
-
* changes —
|
|
10
|
+
* changes — historical quirks preserved (consumers pin the exact behaviour).
|
|
11
11
|
*
|
|
12
12
|
* Source-of-truth check: the YAML files MUST mirror the closed vocabulary in
|
|
13
13
|
* ADR-013 exactly. Cross-reference + bidirectional integrity + non-overlap
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Hard-Gate linter: no empty roadmap files under `agents/roadmaps/`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_empty_roadmaps.py` (ADR-200).
|
|
6
6
|
* Byte-identical CLI contract: same stdout, same exit codes (0 = clean,
|
|
7
7
|
* 1 = at least one empty roadmap). `--quiet` is a bare argv membership check
|
|
8
|
-
* (computed at import, NOT argparse), mirroring the Python
|
|
8
|
+
* (computed at import, NOT argparse), mirroring the retired Python implementation.
|
|
9
9
|
*
|
|
10
10
|
* A roadmap `.md` that is 0 bytes (or only whitespace) is never valid — it
|
|
11
11
|
* carries no goal, no phases, no content. Scope: every `*.md` under
|
|
@@ -85,7 +85,7 @@ function _rglobMdSorted(base: string): string[] {
|
|
|
85
85
|
// Python `str.strip()` (no args) strips every character for which
|
|
86
86
|
// `str.isspace()` is true: ASCII whitespace + the C0 separators \x1c-\x1f +
|
|
87
87
|
// NEL \x85 + the Unicode whitespace set. Match that exact class so a
|
|
88
|
-
// "whitespace-only" file is detected identically to the Python
|
|
88
|
+
// "whitespace-only" file is detected identically to the retired Python implementation.
|
|
89
89
|
const _PY_WS = /[\t\n\v\f\r \u001c\u001d\u001e\u001f\u0085\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000]/g;
|
|
90
90
|
|
|
91
91
|
function _toPosix(target: string, root: string): string {
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* `upstream.last_eval` (the corpus-refresh DoD, ADR-061 §6 + road-to-image-brand-
|
|
5
5
|
* typography Phase D).
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* Python→TypeScript migration). The CLI contract is
|
|
7
|
+
* Ported from the retired Python `src/scripts/lint_eval_freshness.py` (ADR-200,
|
|
8
|
+
* Python→TypeScript migration). The CLI contract is pinned — the
|
|
9
9
|
* `--quiet` flag, the `argparse` usage / error text (`-h`/`--help` → exit 0,
|
|
10
10
|
* unknown arg → exit 2), the scan order (`sorted(SKILLS_DIR.glob(
|
|
11
11
|
* "<skill>/data/manifest.json"))` — pathlib component-wise sort), byte-identical
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Phase 3.4 demo-shape linter — wrong / right / why per demo.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_examples.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b). Mirrors the CLI contract EXACTLY — the `--quiet` flag is a
|
|
7
7
|
* bare `sys.argv` membership check (NOT argparse, so there is no real
|
|
8
8
|
* `-h`/`--help`), the same `glob` (non-recursive) over
|
|
9
9
|
* `docs/guidelines/agent-infra/*-demos.md`, byte-identical finding
|
|
10
10
|
* messages, stdout/stderr split, exit codes, and file ordering
|
|
11
|
-
* (sorted glob).
|
|
11
|
+
* (sorted glob). Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
12
12
|
*
|
|
13
13
|
* Validates every `docs/guidelines/agent-infra/*-demos.md`: frontmatter
|
|
14
14
|
* keys (`demo_for:`, `layer: pattern-memory`, `prose_delta:` with
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint an ExplainTrace v1 JSON payload against the schema.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_explain_trace.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b). Reads a JSON file (or stdin via `--stdin`) and validates it
|
|
7
7
|
* against `docs/contracts/explain-trace.schema.json`.
|
|
8
8
|
*
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* - error lines ordered by `sorted(absolute_path)`.
|
|
15
15
|
*
|
|
16
16
|
* DOCUMENTED DIVERGENCE (validation-failure message text):
|
|
17
|
-
*
|
|
17
|
+
* the retired Python implementation uses `jsonschema.Draft202012Validator`; its
|
|
18
18
|
* `ValidationError.message` wording is library-specific. This twin
|
|
19
19
|
* implements a faithful Draft-2020-12 *subset* validator covering only the
|
|
20
20
|
* keywords the explain-trace schema uses (type / const / enum / required /
|
|
Binary file
|