@event4u/agent-config 8.4.1 → 8.6.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 +92 -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} +38 -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/auto-dispatch-classification.md +30 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +15 -1
- package/dist/agent-src/contexts/execution/subagent-steering.md +54 -1
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
- package/dist/agent-src/contexts/model-recommendations.md +19 -0
- package/dist/agent-src/contexts/skills-and-commands.md +2 -2
- package/dist/agent-src/contexts/subagent-configuration.md +8 -0
- 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 +27 -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/ADR-116-memory-tripwire-activation-path.md +125 -0
- package/docs/decisions/INDEX.md +3 -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 +12 -2
- package/package.json +3 -1
- package/src/agent-src/README.md +1 -1
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
- package/src/config/agent-settings.template.yml +1 -1
- package/src/install/selectedTools.ts +38 -10
- 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/auto_dispatch.ts +63 -0
- 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/subagent_routing.ts +24 -0
- package/src/scripts/_lib/subagent_steering.ts +213 -3
- 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/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
|
@@ -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
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Validate-on-load linter for the first-class flow layer (`src/flows/*.yaml`).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_flows.py` (ADR-200, Phase 4 / Wave 4b
|
|
6
6
|
* — PORT). Mirrors the CLI contract EXACTLY — the `--quiet` flag (argparse,
|
|
7
7
|
* so `-h`/`--help` exit 0 with a usage line), the same two-check-per-file
|
|
8
8
|
* shape-vs-resolution split, byte-identical violation messages, the same
|
|
9
9
|
* stdout/stderr split (success on stdout, violations on stderr), exit codes
|
|
10
10
|
* (0 clean · 1 violations · 3 internal error), scan scope (`src/flows/*.yaml`
|
|
11
11
|
* minus `surface-map.yaml`), and ordering (sorted glob). snake_case kept.
|
|
12
|
-
*
|
|
12
|
+
* Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
13
13
|
*
|
|
14
14
|
* road-to-6.1.0 Step 8b (ADR-055). Two checks per flow file:
|
|
15
15
|
*
|
|
16
16
|
* 1. Shape — validates against `src/scripts/schemas/flow.schema.json`
|
|
17
|
-
* (Draft-07).
|
|
17
|
+
* (Draft-07). the retired Python implementation uses the `jsonschema` library; this
|
|
18
18
|
* twin hand-rolls a Draft-07 validator covering exactly the keyword set
|
|
19
19
|
* this schema uses (type, required, additionalProperties:false,
|
|
20
20
|
* properties, $ref, pattern, minLength, minItems, items) and reproduces
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* Plus the layer-level invariants: closed-set id == filename stem, and
|
|
29
29
|
* completeness (every closed-set flow has exactly one file).
|
|
30
30
|
*
|
|
31
|
-
*
|
|
31
|
+
* the retired Python implementation imports `jsonschema` and exits 3 with
|
|
32
32
|
* `lint_flows: jsonschema not installed` when it is absent. The TS twin has
|
|
33
33
|
* no such dependency, so that exit-3 path never fires — the schema check is
|
|
34
34
|
* always available, matching the installed-library case.
|
|
@@ -466,7 +466,7 @@ function _isFile(p: string): boolean {
|
|
|
466
466
|
|
|
467
467
|
function _rel(p: string): string {
|
|
468
468
|
// Path.relative_to(ROOT) raises ValueError when p is outside ROOT; the
|
|
469
|
-
//
|
|
469
|
+
// historical behaviour returns str(path) — keep the absolute path then.
|
|
470
470
|
const r = path.relative(ROOT, p);
|
|
471
471
|
if (r === '' || r.startsWith('..') || path.isAbsolute(r)) {
|
|
472
472
|
return p;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
// Lint generic skills/rules/commands for framework/language leakage.
|
|
3
3
|
//
|
|
4
|
-
// TypeScript
|
|
4
|
+
// TypeScript port of the retired Python src/scripts/lint_framework_leakage.py. Exits 1 on hit
|
|
5
5
|
// (CI-blocking). Enforces the framework-neutrality rule. Replicates the
|
|
6
6
|
// carve-out filename exemption, inventory exemption, framework-frontmatter
|
|
7
7
|
// exemption, the auto cross-stack ±10-line window heuristic, the allowlist
|
|
@@ -581,7 +581,7 @@
|
|
|
581
581
|
{
|
|
582
582
|
"file": "src/skills/code-review/SKILL.md",
|
|
583
583
|
"lines": [
|
|
584
|
-
|
|
584
|
+
222
|
|
585
585
|
],
|
|
586
586
|
"reason": "Cross-stack formatter enumeration (ECS, Prettier, Ruff, gofmt) — multi-ecosystem documentation"
|
|
587
587
|
},
|
|
@@ -618,9 +618,17 @@
|
|
|
618
618
|
{
|
|
619
619
|
"file": "src/skills/verify-completion-evidence/SKILL.md",
|
|
620
620
|
"lines": [
|
|
621
|
-
|
|
621
|
+
191
|
|
622
622
|
],
|
|
623
623
|
"reason": "Carve-out pointer to the quality-tools skill (the sanctioned one-line handoff shape from framework-neutrality-in-generic-skills)"
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
"file": "src/skills/api-endpoint/SKILL.md",
|
|
627
|
+
"lines": [
|
|
628
|
+
52,
|
|
629
|
+
69
|
|
630
|
+
],
|
|
631
|
+
"reason": "Cross-stack validation primitive enumeration and pointer to laravel-api-endpoint carve-out"
|
|
624
632
|
}
|
|
625
633
|
]
|
|
626
634
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Fail when an artefact carries a frontmatter field equal to its schema default.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_frontmatter_boilerplate.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4b). Mirrors the Python CLI contract exactly: `--quiet`,
|
|
7
7
|
* scan scope + ordering (skills / rules / commands / personas via
|
|
8
8
|
* `artefact_roots()`), finding messages, stdout/stderr split, exit codes
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* The frontmatter loader (`validate_frontmatter.apply_schema_defaults`) injects
|
|
12
12
|
* the default at read time, so omitting the field is always behaviour-preserving.
|
|
13
13
|
*
|
|
14
|
-
* NOTE (divergence candidate — DC-1): the Python
|
|
14
|
+
* NOTE (divergence candidate — DC-1): the retired Python implementation imports
|
|
15
15
|
* `_CATEGORIES`, `_iter`, `_plan_drops` from `migrate_frontmatter_defaults.py`,
|
|
16
16
|
* which has no `.ts` twin yet (out of this batch's scope). To keep TS-only
|
|
17
17
|
* dispatcher resolution working, those three helpers (and `_same`) are inlined
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint ghostwriter profile sources.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_ghostwriter_source.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* detected by argv membership, exit codes (0 / 1), stdout/stderr split,
|
|
8
8
|
* byte-identical messages, same scan scope (`*.md` sorted in each tier),
|
|
9
9
|
* same package- then consumer-side ordering. No behaviour changes —
|
|
10
|
-
*
|
|
10
|
+
* historical quirks preserved (consumers pin the exact behaviour).
|
|
11
11
|
*
|
|
12
12
|
* Two storage tiers (docs/contracts/ghostwriter-schema.md):
|
|
13
13
|
* * src/agent-src/ghostwriter/ — package source, fictional fixtures only.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Permissions-audit entry-gate for the global install tree.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_global_paths.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b). Mirrors the Python CLI contract exactly: same policy source,
|
|
7
7
|
* finding messages, finding order, stdout/stderr split, and exit codes.
|
|
8
8
|
*
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint cross-wing handoffs declared in senior-tier skills' `## Related Skills`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_handoffs.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`; `main(argv)` treats `argv[0]` as a skills-dir override,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// P1.1 — hidden-Unicode / smuggling-codepoint linter (road-to-security-pillar.md).
|
|
2
2
|
//
|
|
3
|
-
//
|
|
3
|
+
// Ported from the retired Python `src/scripts/lint_hidden_unicode.py` (ADR-200 —
|
|
4
4
|
// Python→TS migration). Behaviour mirrors the Python module byte-for-byte.
|
|
5
5
|
//
|
|
6
6
|
// Detects the invisible-character class used by the "rules-file backdoor"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint the hook concern budget against `src/scripts/hook_manifest.yaml`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_hook_concern_budget.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4b). Mirrors the CLI contract EXACTLY — `--manifest` /
|
|
7
7
|
* `--settings` / `--strict` argparse flags, exit codes (0 clean or warn-only,
|
|
8
8
|
* 1 schema load failed, 2 hard-fail with violations), byte-identical
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* `.agent-settings.yml` `hooks.concern_budget.*` line walker, and the same
|
|
11
11
|
* defaults. No behaviour changes.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
13
|
+
* the retired Python implementation imports `hooks.dispatch_hook._load_yaml` (which is
|
|
14
14
|
* `yaml.safe_load(text) or {}` when PyYAML is present). That hook module is
|
|
15
15
|
* not yet ported, so this twin inlines the equivalent `yaml`-package load
|
|
16
16
|
* (version 1.1 → PyYAML safe_load parity). When the dispatch_hook twin
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint `src/scripts/hook_manifest.yaml`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_hook_manifest.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b). Mirrors the Python CLI contract exactly: same manifest default,
|
|
7
7
|
* finding messages, finding order, stdout/stderr split, and exit codes.
|
|
8
8
|
*
|
|
@@ -97,7 +97,7 @@ function _isDir(p: string): boolean {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
/**
|
|
100
|
-
* Load the manifest.
|
|
100
|
+
* Load the manifest. the retired Python implementation reuses dispatch_hook._load_yaml
|
|
101
101
|
* which prefers PyYAML (with a narrow fallback parser when PyYAML is absent).
|
|
102
102
|
* The TS runtime always has the `yaml` package, so this mirrors the
|
|
103
103
|
* PyYAML-present path (`yaml.safe_load(text) or {}`).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// P1.2 — instruction-smuggling / suppression-phrase linter (road-to-security-pillar.md).
|
|
2
2
|
//
|
|
3
|
-
//
|
|
3
|
+
// Ported from the retired Python `src/scripts/lint_instruction_smuggling.py` (ADR-200 —
|
|
4
4
|
// Python→TS migration). Behaviour mirrors the Python module byte-for-byte.
|
|
5
5
|
//
|
|
6
6
|
// Detects instructions smuggled into rule/skill/command bodies (and MCP tool
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint the `load_context:` / `load_context_eager:` frontmatter schema.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_load_context.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* flag (positional `--quiet` detection in argv, like the Python
|
|
8
8
|
* `"--quiet" in sys.argv`), exit codes (0 clean / warnings-only, 1 errors),
|
|
9
9
|
* byte-identical error + warning + success messages, same scan dirs,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint .claude-plugin/marketplace.json for the event4u/agent-config package.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_marketplace.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b). Mirrors the Python CLI contract exactly: same cwd-relative scan
|
|
7
7
|
* roots, finding messages, stdout output, and exit codes.
|
|
8
8
|
*
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Lint that every command in `hooks/hooks.json` resolves to a real
|
|
4
4
|
* dispatcher subcommand in `scripts/_dispatch.bash`.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* (ADR-200, Phase 4 / Wave 4b). The CLI contract is
|
|
6
|
+
* Ported from the retired Python `src/scripts/lint_marketplace_install_completeness.py`
|
|
7
|
+
* (ADR-200, Phase 4 / Wave 4b). The CLI contract is pinned —
|
|
8
8
|
* `--hooks-json` / `--dispatch-bash` flags, exit codes (0 clean, 1 unknown
|
|
9
9
|
* subcommand, 2 schema/file error), stdout/stderr split, byte-identical
|
|
10
10
|
* finding messages, same command-extraction regexes and scan order.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// P1.3 — MCP-config security linter (road-to-security-pillar.md). OWASP ASI04.
|
|
2
2
|
//
|
|
3
|
-
//
|
|
3
|
+
// Ported from the retired Python `src/scripts/lint_mcp_config_security.py` (ADR-200 —
|
|
4
4
|
// Python→TS migration). Behaviour mirrors the Python module byte-for-byte.
|
|
5
5
|
//
|
|
6
6
|
// Scans shipped MCP configuration — named config files (`*.mcp.json`,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint `dist/mcp/registry-manifest.json` against its JSON Schema.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_mcp_registry_manifest.py` (ADR-200,
|
|
6
6
|
* Phase 4 / Wave 4b). Mirrors the CLI contract EXACTLY — `--quiet` flag
|
|
7
7
|
* (argparse, so a real `-h`/`--help` prints usage + exits 0), the
|
|
8
8
|
* `❌ <msg>` failures on stderr, the `✅ mcp registry manifest OK
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Lint structural reachability of media governance policies.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b).
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_media_policy_linkage.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* flag read from argv at module load, scan roots + policy ordering (policies
|
|
8
8
|
* sorted; scan files via rglob), finding messages, output channel (all on
|
|
9
9
|
* stdout except the final orphan summary on stderr), exit codes. No
|
|
10
|
-
* behaviour changes —
|
|
10
|
+
* behaviour changes — historical quirks preserved (consumers pin the exact behaviour). (note: `POLICY_DIR` /
|
|
11
11
|
* `SCAN_ROOTS` point at `agents/policies/media`, matching the .py).
|
|
12
12
|
*
|
|
13
13
|
* Every policy file under `agents/policies/media/` (except README) must be
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* WARN-ONLY mission manifest and catalog linter.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* migration). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_missions.py` (ADR-200, Python→TypeScript
|
|
6
|
+
* migration). The CLI contract is pinned — argparse flags
|
|
7
7
|
* (`--strict` / `--quiet` / `--check-precondition MISSION REPO`, `-h`/`--help`
|
|
8
8
|
* exit 0, unknown arg → exit 2), the scan order (`sorted(MISSIONS_ROOT.iterdir())`
|
|
9
9
|
* minus dot-dirs), byte-identical finding lines, the missing-schema short-circuit
|
|
10
10
|
* (exit 2 strict / 0 otherwise), the stdout/stderr split, and exit codes
|
|
11
11
|
* (0 warn-only / 1 strict+ERROR). snake_case kept.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
13
|
+
* the retired Python implementation uses the `jsonschema` Draft7Validator; this twin
|
|
14
14
|
* hand-rolls a Draft-07 validator covering exactly the keyword set the two
|
|
15
15
|
* mission schemas use (type, required, additionalProperties [false | schema],
|
|
16
16
|
* properties, $ref [#/definitions], pattern, enum, minLength, maxLength,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Fail when a skill or command lacks a `model_tier` value.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b).
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_model_tier_coverage.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
|
|
7
7
|
* flag, target enumeration + ordering (skills via artefact_roots, then
|
|
8
8
|
* commands via iter_commands), finding messages, stdout/stderr split,
|
|
9
|
-
* exit codes.
|
|
9
|
+
* exit codes. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
|
|
10
10
|
*
|
|
11
11
|
* Phase 5 coverage gate of `road-to-model-capability-tiers.md` (ADR-035):
|
|
12
12
|
* every skill and command MUST declare an explicit `model_tier`
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Namespace linter. Enforces `<stem>-<intent>` kebab-case + reserved
|
|
4
4
|
* names list across skills / rules / commands / personas.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* Wave 4b). The CLI contract is
|
|
6
|
+
* Ported from the retired Python `src/scripts/lint_namespace.py` (ADR-200, Phase 4 /
|
|
7
|
+
* Wave 4b). The CLI contract is pinned — `--name` / `--quiet`
|
|
8
8
|
* flags, exit codes (0 clean, 1 issues / single-name fail), stdout/stderr
|
|
9
9
|
* split (findings + BASELINE-on-failure to stderr; success BASELINE to
|
|
10
10
|
* stdout), byte-identical finding messages, same `sorted(root.glob(glob))`
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Single-namespace collision lint (road-to-6.0.0-D Phase 0 Step 4).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_namespace_collisions.py` (ADR-200,
|
|
6
|
+
* Phase 4 / Wave 4b). The CLI contract is pinned — exit codes
|
|
7
7
|
* (0 no collisions, 1 collision, 3 internal error), stdout/stderr split,
|
|
8
8
|
* byte-identical finding messages, same `iter_all_sources()` scan order,
|
|
9
9
|
* same normalization, same frontmatter `name:` extraction.
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Forward gate for NEW skills (6.0.0-C Phase 4 Step 8b).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_new_skill_gate.py` (ADR-200, Phase 4 /
|
|
6
6
|
* Wave 4b — PORT). Mirrors the CLI contract EXACTLY — the `--baseline` (default
|
|
7
7
|
* `main`) and `--quiet` argparse flags, the git diff/status forward-only skill
|
|
8
8
|
* detection, byte-identical violation messages, stdout-only output (no
|
|
9
9
|
* stderr split except the git-failure exit-3 path), and exit codes
|
|
10
10
|
* (0 clean · 1 violations · 3 internal/git error). snake_case kept. No
|
|
11
|
-
* behaviour changes —
|
|
11
|
+
* behaviour changes — historical quirks preserved (consumers pin the exact behaviour).
|
|
12
12
|
*
|
|
13
13
|
* A newly added skill must clear two gates before it joins the surface:
|
|
14
14
|
*
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* FORWARD-ONLY: only SKILL.md files added since `--baseline` are gated.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
* the retired Python implementation imports `_parse`, `_cosine`, `collect`, `Skill` from
|
|
23
23
|
* `audit_skill_overlap`. That module has no TS twin in this batch, so the four
|
|
24
24
|
* needed symbols are ported privately below (faithful 1:1 of the originals);
|
|
25
25
|
* when `audit_skill_overlap` is ported in its own phase these can be
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Atomic-command linter for the command-collapse policy.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* (ADR-200, Phase 4 / Wave 4b). The CLI contract is
|
|
5
|
+
* Ported from the retired Python `src/scripts/lint_no_new_atomic_commands.py`
|
|
6
|
+
* (ADR-200, Phase 4 / Wave 4b). The CLI contract is pinned —
|
|
7
7
|
* `--baseline` / `--all` flags, exit codes (0 clean, 1 violations,
|
|
8
8
|
* 3 internal error), stdout/stderr split, byte-identical messages, the
|
|
9
9
|
* same git invocations (`git diff --name-only --diff-filter=A
|
|
@@ -24,7 +24,10 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
|
24
24
|
const _HERE = fileURLToPath(import.meta.url);
|
|
25
25
|
// src/scripts/lint_no_new_atomic_commands.ts → parent.parent.parent is repo root.
|
|
26
26
|
const ROOT = path.resolve(path.dirname(_HERE), '..', '..');
|
|
27
|
-
|
|
27
|
+
// Repointed 2026-07-08 (ADR-115): the legacy uncondensed commands dir no
|
|
28
|
+
// longer exists — command sources live at src/domains/**/command.md.
|
|
29
|
+
// Only files named `command.md` are commands; pack READMEs etc. are skipped.
|
|
30
|
+
const COMMANDS_DIR = 'src/domains';
|
|
28
31
|
const CLUSTER_CONTRACT = 'docs/contracts/command-clusters.md';
|
|
29
32
|
|
|
30
33
|
interface Violation {
|
|
@@ -135,7 +138,7 @@ function added_command_files(baseline: string): string[] {
|
|
|
135
138
|
}
|
|
136
139
|
const files: string[] = [];
|
|
137
140
|
for (const p of (diff.stdout ?? '').split('\n')) {
|
|
138
|
-
if (p
|
|
141
|
+
if (p !== '' && path.basename(p) === 'command.md') {
|
|
139
142
|
files.push(p);
|
|
140
143
|
}
|
|
141
144
|
}
|
|
@@ -157,7 +160,7 @@ function added_command_files(baseline: string): string[] {
|
|
|
157
160
|
const rawPath = line.slice(3).trim();
|
|
158
161
|
const parts = rawPath.split(' -> ');
|
|
159
162
|
const p = parts[parts.length - 1]!;
|
|
160
|
-
if (
|
|
163
|
+
if (path.basename(p) === 'command.md') {
|
|
161
164
|
if (!files.includes(p)) {
|
|
162
165
|
files.push(p);
|
|
163
166
|
}
|
|
@@ -181,7 +184,7 @@ function _rglobMdSorted(dir: string): string[] {
|
|
|
181
184
|
const full = path.join(current, entry.name);
|
|
182
185
|
if (entry.isDirectory()) {
|
|
183
186
|
walk(full);
|
|
184
|
-
} else if (entry.isFile() && entry.name
|
|
187
|
+
} else if (entry.isFile() && entry.name === 'command.md') {
|
|
185
188
|
out.push(full);
|
|
186
189
|
}
|
|
187
190
|
}
|