@event4u/agent-config 14.10.0 → 14.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +161 -208
- package/README.md +1 -1
- package/dist/agent-src/commands/design.md +88 -0
- package/dist/agent-src/commands/project/analyze.md +47 -0
- package/dist/agent-src/commands/review/changes.md +67 -6
- package/dist/agent-src/commands/roadmap/create.md +49 -0
- package/dist/agent-src/commands/roadmap/next.md +27 -11
- package/dist/agent-src/commands/roadmap/process-full.md +14 -0
- package/dist/agent-src/commands/video/from-script.md +60 -3
- package/dist/agent-src/commands/video/stitch.md +14 -0
- package/dist/agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -0
- package/dist/agent-src/contexts/execution/evidence-discipline.md +26 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +154 -2
- package/dist/agent-src/rules/active-remediation.md +3 -3
- package/dist/agent-src/rules/code-provenance.md +2 -2
- package/dist/agent-src/rules/context-hygiene.md +13 -33
- package/dist/agent-src/rules/council-availability.md +2 -2
- package/dist/agent-src/rules/decision-revisit-gate.md +3 -1
- package/dist/agent-src/rules/design-fidelity.md +18 -0
- package/dist/agent-src/rules/design-review-after-ui-write.md +2 -2
- package/dist/agent-src/rules/evaluator-independence.md +56 -44
- package/dist/agent-src/rules/fix-what-you-see.md +9 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/minimal-safe-diff.md +14 -20
- package/dist/agent-src/rules/missing-skill-recovery.md +13 -1
- package/dist/agent-src/rules/playbook-precedence.md +105 -0
- package/dist/agent-src/rules/recurring-criticism.md +3 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +14 -13
- package/dist/agent-src/rules/scale-discipline.md +24 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +2 -2
- package/dist/agent-src/rules/settings-ask-protocol.md +2 -2
- package/dist/agent-src/rules/ui-audit-gate.md +27 -15
- package/dist/agent-src/rules/untrusted-input-defense.md +2 -2
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +19 -0
- package/dist/agent-src/skills/adr-create/SKILL.md +7 -0
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +33 -0
- package/dist/agent-src/skills/ai-council/references/advanced-modes.md +17 -3
- package/dist/agent-src/skills/ai-council/references/output-and-synthesis.md +31 -0
- package/dist/agent-src/skills/ai-council/references/procedure.md +19 -0
- package/dist/agent-src/skills/alerting-doctrine/SKILL.md +225 -0
- package/dist/agent-src/skills/authz-review/SKILL.md +0 -1
- package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +32 -0
- package/dist/agent-src/skills/brand/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-asset-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-audit/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-identity/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-strategy/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -0
- package/dist/agent-src/skills/check-refs/SKILL.md +3 -0
- package/dist/agent-src/skills/code-refactoring/SKILL.md +45 -1
- package/dist/agent-src/skills/code-review/SKILL.md +75 -5
- package/dist/agent-src/skills/command-routing/SKILL.md +6 -0
- package/dist/agent-src/skills/command-writing/SKILL.md +35 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +3 -0
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +3 -0
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +10 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -0
- package/dist/agent-src/skills/design-intelligence/SKILL.md +3 -0
- package/dist/agent-src/skills/design-intelligence/data/landing.csv +36 -35
- package/dist/agent-src/skills/design-intelligence/data/stacks/threejs.csv +1 -0
- package/dist/agent-src/skills/design-review/SKILL.md +79 -1
- package/dist/agent-src/skills/design-review/references/verification-automation.md +41 -0
- package/dist/agent-src/skills/design-system-capture/SKILL.md +35 -40
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +50 -0
- package/dist/agent-src/skills/design-tokens/SKILL.md +3 -0
- package/dist/agent-src/skills/design-variations/SKILL.md +3 -0
- package/dist/agent-src/skills/developer-like-execution/SKILL.md +3 -0
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +3 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +28 -4
- package/dist/agent-src/skills/fe-design/SKILL.md +74 -41
- package/dist/agent-src/skills/fe-design/references/craft-floor.md +52 -0
- package/dist/agent-src/skills/fe-design/references/source-led-port.md +36 -0
- package/dist/agent-src/skills/file-editor/SKILL.md +5 -0
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/dist/agent-src/skills/git-workflow/SKILL.md +3 -0
- package/dist/agent-src/skills/html-deck/SKILL.md +3 -0
- package/dist/agent-src/skills/iconography/SKILL.md +3 -0
- package/dist/agent-src/skills/image-editing/SKILL.md +3 -0
- package/dist/agent-src/skills/image-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +3 -0
- package/dist/agent-src/skills/incident-commander/SKILL.md +10 -0
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +173 -0
- package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.ts +270 -0
- package/dist/agent-src/skills/laravel-migration/SKILL.md +3 -0
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +3 -0
- package/dist/agent-src/skills/lint-skills/SKILL.md +3 -0
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +3 -0
- package/dist/agent-src/skills/logging-monitoring/SKILL.md +234 -51
- package/dist/agent-src/skills/logo-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/md-language-check/SKILL.md +3 -0
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +149 -0
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -0
- package/dist/agent-src/skills/multi-tenancy/SKILL.md +4 -0
- package/dist/agent-src/skills/operational-readiness/SKILL.md +184 -0
- package/dist/agent-src/skills/override-management/SKILL.md +3 -0
- package/dist/agent-src/skills/persona-improvement/SKILL.md +3 -0
- package/dist/agent-src/skills/pest-testing/SKILL.md +3 -0
- package/dist/agent-src/skills/playbook-authoring/SKILL.md +162 -0
- package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -0
- package/dist/agent-src/skills/privacy-review/SKILL.md +3 -0
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +23 -0
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -0
- package/dist/agent-src/skills/quality-tools/SKILL.md +5 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +81 -33
- package/dist/agent-src/skills/readme-reviewer/SKILL.md +3 -0
- package/dist/agent-src/skills/readme-writing/SKILL.md +3 -0
- package/dist/agent-src/skills/readme-writing-package/SKILL.md +3 -0
- package/dist/agent-src/skills/receiving-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/refine-prompt/SKILL.md +3 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -0
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +23 -41
- package/dist/agent-src/skills/roadmap-writing/references/follow-up-roadmap-shape.md +47 -0
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +22 -6
- package/dist/agent-src/skills/runway-cognition/SKILL.md +3 -0
- package/dist/agent-src/skills/scene-expander/scene-blueprint.schema.yaml +26 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +4 -0
- package/dist/agent-src/skills/server-hardening/SKILL.md +159 -0
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-management/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-reviewer/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-writing/SKILL.md +6 -0
- package/dist/agent-src/skills/skill-writing/references/procedure.md +24 -2
- package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +3 -0
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +203 -0
- package/dist/agent-src/skills/storybook-workshop/scripts/story_contrast_floor.ts +134 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +25 -0
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +12 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +1 -1
- package/dist/agent-src/skills/terraform/SKILL.md +3 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +0 -3
- package/dist/agent-src/skills/token-optimizer/SKILL.md +3 -0
- package/dist/agent-src/skills/typography-system/SKILL.md +3 -0
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +17 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +3 -0
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -0
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -2
- package/dist/agent-src/skills/wireframe/SKILL.md +3 -0
- package/dist/agent-src/skills/wireframe/references/story-beat-ledger.schema.json +115 -0
- package/dist/agent-src/skills/workspace-link/SKILL.md +131 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/playbook.md +75 -0
- package/dist/agent-src/templates/roadmaps.md +37 -0
- package/dist/agent-src/templates/scripts/check_playbook_invokes.ts +231 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +24 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +216 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +159 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +73 -4
- package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +325 -40
- package/dist/cli/commands/uiAudit.js +221 -0
- package/dist/cli/commands/uiRender.js +206 -0
- package/dist/cli/main.js +22 -1
- package/dist/cli/mcp/content.js +64 -1
- package/dist/cli/mcp/dispatch.js +175 -10
- package/dist/cli/registry.js +3 -0
- package/dist/cli-delegate/{chunk-G23AT6GD.js → chunk-DMSZHXZS.js} +57 -1
- package/dist/cli-delegate/{chunk-77GR3VD4.js → chunk-FF7WAFMR.js} +58 -3
- package/dist/cli-delegate/{chunk-YM4GZDJG.js → chunk-JCW7ZLHK.js} +10 -0
- package/dist/cli-delegate/{chunk-H4VIVD4C.js → chunk-JJA2QEWA.js} +413 -391
- package/dist/cli-delegate/{chunk-PLSG6UL5.js → chunk-K4FFODTS.js} +341 -204
- package/dist/cli-delegate/{chunk-B2ERU2VA.js → chunk-WOKWX5PL.js} +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +8 -6
- package/dist/cli-delegate/cmd_conformance.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +1 -1
- package/dist/cli-delegate/cmd_preflight.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_session_recycle.js +70 -9
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +4 -4
- package/dist/cli-delegate/cmd_uninstall.js +4 -4
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +362 -127
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +18 -8
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +16 -6
- package/dist/hooks/dispatch.js +2575 -1472
- package/dist/install/install.mjs +800 -708
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +1685 -1250
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/lean_projection_mode.js +40 -0
- package/dist/scripts/_lib/scoped_projection.js +84 -0
- package/dist/scripts/_lib/ui_surface.js +89 -0
- package/dist/scripts/condense.js +6 -10
- package/dist/scripts/project_thin_rules.js +40 -2
- package/dist/server/schemas/settings.js +6 -0
- package/dist/shared/skillRanking.js +159 -0
- package/docs/contracts/provider-lifecycle.md +47 -18
- package/docs/contracts/settings-classes.md +35 -5
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +49 -0
- package/docs/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
- package/docs/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
- package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +45 -1
- package/docs/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
- package/docs/guidelines/code-clarity.md +21 -0
- package/docs/guidelines/design-antipatterns.md +4 -2
- package/docs/guidelines/design-asset-discipline.md +38 -0
- package/docs/guidelines/design-fidelity-mechanics.md +45 -29
- package/docs/guidelines/design-handover-extraction.md +35 -5
- package/docs/guidelines/design-modes.md +41 -1
- package/docs/guidelines/monorepo-antipatterns.md +141 -0
- package/docs/guidelines/redundancy-taxonomy.md +180 -0
- package/llms.txt +50 -39
- package/package.json +6 -2
- package/src/agent-src/templates/scripts/check_playbook_invokes.ts +231 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +24 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +216 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +159 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +73 -4
- package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +325 -40
- package/src/config/agent-settings.template.yml +44 -0
- package/src/config/assurance-capability-registry.json +223 -0
- package/src/config/assurance-threshold-budget.json +65 -0
- package/src/config/budgets.yml +19 -0
- package/src/config/ci-local-parity.yml +29 -0
- package/src/config/discovery/prompt-patterns.yml +56 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/dispatch-economy-metrics.json +4 -2
- package/src/config/estate-count-budget.json +8 -3
- package/src/config/evaluator-budgets.json +14 -14
- package/src/config/gate-coverage.yml +392 -8
- package/src/config/gate-violation-baselines.json +76 -72
- package/src/config/hook-latency-budget.json +1 -0
- package/src/config/hook-token-budget.json +137 -125
- package/src/config/pack-size-budget.json +39 -10
- package/src/config/preamble-payload-budget.json +97 -71
- package/src/config/quorum-attendance-budget.json +12 -4
- package/src/config/routing-coverage-seed.json +29 -0
- package/src/config/rule-activation-census.json +7 -3
- package/src/config/rule-enforcement-baseline.json +0 -1
- package/src/config/rule-stub-ceilings.json +112 -91
- package/src/config/suggestion-capture.json +28 -0
- package/src/config/surface-matrix.yml +21 -2
- package/src/config/web-launch-readiness.json +188 -0
- package/src/scripts/_cli/cmd_doctor.ts +15 -16
- package/src/scripts/_cli/doctor_install_mode.ts +49 -0
- package/src/scripts/_cli/doctor_overrides.ts +154 -0
- package/src/scripts/_dispatch.bash +17 -0
- package/src/scripts/_lib/as_of.ts +412 -0
- package/src/scripts/_lib/exec_evidence.ts +7 -0
- package/src/scripts/_lib/gate_baseline.ts +150 -1
- package/src/scripts/_lib/hook_settings.ts +33 -0
- package/src/scripts/_lib/host_listing_model.ts +192 -0
- package/src/scripts/_lib/lean_projection_mode.ts +44 -0
- package/src/scripts/_lib/mcp_bridge.ts +199 -0
- package/src/scripts/_lib/review_independence.ts +62 -10
- package/src/scripts/_lib/rule_injection.ts +239 -0
- package/src/scripts/_lib/run_checkpoint.ts +54 -1
- package/src/scripts/_lib/scoped_projection.ts +96 -0
- package/src/scripts/_lib/session_register.ts +44 -2
- package/src/scripts/_lib/skill_catalogue.ts +38 -2
- package/src/scripts/_lib/skill_estate.ts +115 -0
- package/src/scripts/_lib/transcript_reads.ts +207 -0
- package/src/scripts/_lib/ui_authority.ts +343 -0
- package/src/scripts/ai-video/adapters/fal.sh +8 -3
- package/src/scripts/ai-video/adapters/gemini-veo.sh +10 -0
- package/src/scripts/ai-video/adapters/higgsfield.sh +10 -2
- package/src/scripts/ai-video/adapters/kling.sh +10 -0
- package/src/scripts/ai-video/adapters/sora.sh +10 -0
- package/src/scripts/ai-video/lib/calibrate-cost.sh +145 -0
- package/src/scripts/ai-video/lib/model-capabilities/README.md +53 -7
- package/src/scripts/ai-video/lib/model-capabilities/comfyui.json +15 -3
- package/src/scripts/ai-video/lib/model-capabilities/fal.json +36 -6
- package/src/scripts/ai-video/lib/model-capabilities/gemini-veo.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/higgsfield.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/kling.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/musetalk.json +8 -2
- package/src/scripts/ai-video/lib/model-capabilities/replicate.json +36 -6
- package/src/scripts/ai-video/lib/model-capabilities/sora.json +45 -0
- package/src/scripts/ai-video/lib/model-capabilities/syncso.json +8 -2
- package/src/scripts/ai-video/lib/parse-blueprint.sh +52 -5
- package/src/scripts/ai-video/lib/resume-scan.sh +92 -3
- package/src/scripts/ai-video/lib/seam-plan.sh +212 -0
- package/src/scripts/ai-video/smoke-trace.sh +450 -2
- package/src/scripts/ai-video/stitch.sh +191 -10
- package/src/scripts/ai-video/test-pipeline.sh +84 -6
- package/src/scripts/ai_council/argument_exhaustion.ts +130 -0
- package/src/scripts/ai_council/cli_agency_bounds.ts +139 -0
- package/src/scripts/ai_council/cli_least_agency_canary.ts +347 -0
- package/src/scripts/ai_council/clients.ts +3 -2
- package/src/scripts/ai_council/consensus.ts +63 -6
- package/src/scripts/ai_council/events_log.ts +46 -1
- package/src/scripts/ai_council/orchestrator.ts +103 -108
- package/src/scripts/ai_council/orchestrator_results.ts +166 -0
- package/src/scripts/ai_council/prompts.ts +12 -5
- package/src/scripts/ai_council/quorum.ts +82 -1
- package/src/scripts/ai_council/quorum_wiring.ts +82 -5
- package/src/scripts/ai_council/stance_tally.ts +22 -0
- package/src/scripts/bench_hook_latency.ts +62 -0
- package/src/scripts/build_proof.ts +12 -1
- package/src/scripts/capture_skill_catalogue.ts +21 -0
- package/src/scripts/check_always_budget.ts +2 -1
- package/src/scripts/check_augmentignore.ts +2 -1
- package/src/scripts/check_beta_review_markers.ts +2 -1
- package/src/scripts/check_bundle_path_leakage.ts +162 -7
- package/src/scripts/check_command_examples.ts +557 -0
- package/src/scripts/check_composite_arming.ts +364 -0
- package/src/scripts/check_corpus_staleness.ts +2 -1
- package/src/scripts/check_council_pin_staleness.ts +3 -1
- package/src/scripts/check_enforcement_coverage.ts +116 -3
- package/src/scripts/check_enforcement_denominator.ts +365 -0
- package/src/scripts/check_estate_count.ts +122 -3
- package/src/scripts/check_gate_coverage.ts +2 -1
- package/src/scripts/check_hook_bundle_freshness.ts +13 -1
- package/src/scripts/check_knowledge_cards.ts +2 -1
- package/src/scripts/check_knowledge_pages.ts +3 -2
- package/src/scripts/check_memory.ts +2 -1
- package/src/scripts/check_no_automerge_key.ts +287 -0
- package/src/scripts/check_pack_conformance_fixture.ts +565 -0
- package/src/scripts/check_preamble_payload_budget.ts +30 -3
- package/src/scripts/check_proposal.ts +2 -1
- package/src/scripts/check_reach_staleness.ts +2 -1
- package/src/scripts/check_release_adjacent_health.ts +2 -1
- package/src/scripts/check_release_pr_shape.ts +5 -0
- package/src/scripts/check_review_schema.ts +34 -1
- package/src/scripts/check_roadmap_trackable.ts +48 -3
- package/src/scripts/check_routing_coverage.ts +352 -0
- package/src/scripts/check_score_contract.ts +505 -0
- package/src/scripts/check_skill_admissions.ts +514 -0
- package/src/scripts/check_source_size_budget.ts +2 -1
- package/src/scripts/check_standing_payload_delta.ts +505 -0
- package/src/scripts/check_trigger_evals.ts +2 -1
- package/src/scripts/check_web_launch_readiness.ts +705 -0
- package/src/scripts/classify_change_risk.ts +281 -0
- package/src/scripts/compute_skill_tiers.ts +186 -0
- package/src/scripts/condense.ts +8 -13
- package/src/scripts/council_attendance_metrics.ts +183 -0
- package/src/scripts/council_cli.ts +10 -8
- package/src/scripts/council_parse_rate.ts +116 -0
- package/src/scripts/derive_playbooks.ts +406 -0
- package/src/scripts/description_route_check.ts +494 -0
- package/src/scripts/design_slop_rules.ts +56 -2
- package/src/scripts/dispatch_r2_reviewer.ts +16 -0
- package/src/scripts/frontend_corpus_hash.ts +116 -0
- package/src/scripts/grade_target_readiness.ts +478 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +124 -16
- package/src/scripts/hooks/concern_registry.ts +6 -0
- package/src/scripts/hooks/design_pass_hook.ts +356 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +30 -7
- package/src/scripts/hooks/rule_inject_hook.ts +318 -0
- package/src/scripts/hooks/suggestion_capture_hook.ts +368 -0
- package/src/scripts/hot_context_hook.ts +74 -7
- package/src/scripts/install.ts +40 -89
- package/src/scripts/lint_adapter_tier.ts +663 -0
- package/src/scripts/lint_archived_skills.ts +93 -0
- package/src/scripts/lint_budget_ownership.ts +56 -5
- package/src/scripts/lint_deterministic_time.ts +470 -0
- package/src/scripts/lint_framework_leakage.ts +5 -0
- package/src/scripts/lint_handoffs.ts +525 -1
- package/src/scripts/lint_judge_prompt_expectation.ts +155 -0
- package/src/scripts/lint_marketplace.ts +88 -0
- package/src/scripts/lint_media_policy_linkage.ts +140 -1
- package/src/scripts/lint_one_off_age.ts +6 -1
- package/src/scripts/lint_override_kernel_guard.ts +87 -5
- package/src/scripts/lint_roadmap_complexity.ts +56 -0
- package/src/scripts/lint_rule_enforcement_declaration.ts +24 -7
- package/src/scripts/lint_rule_norm_pin.ts +321 -0
- package/src/scripts/lint_skill_trigger_corpus.ts +349 -0
- package/src/scripts/lint_spawn_payload.ts +42 -5
- package/src/scripts/lint_symptom_intake.ts +2 -1
- package/src/scripts/mcp_parity_smoke.ts +30 -4
- package/src/scripts/mcp_render.ts +66 -1
- package/src/scripts/mcp_tool_fingerprint.ts +241 -0
- package/src/scripts/measure_risk_class_drift.ts +140 -0
- package/src/scripts/measure_skill_ranker_baseline.ts +212 -0
- package/src/scripts/media/lib/adapter-common.sh +211 -1
- package/src/scripts/media/lib/adapter-contract.md +74 -6
- package/src/scripts/model_rule_injection.ts +907 -0
- package/src/scripts/pack_install_smoke.ts +363 -0
- package/src/scripts/pr_conflict_census.ts +187 -0
- package/src/scripts/project_thin_rules.ts +45 -2
- package/src/scripts/release.ts +66 -860
- package/src/scripts/release_drill.ts +59 -3
- package/src/scripts/release_env.ts +298 -0
- package/src/scripts/release_publication.ts +720 -0
- package/src/scripts/report_pack_delta.ts +204 -0
- package/src/scripts/roadmap_context.ts +778 -0
- package/src/scripts/schemas/fidelity-measurement-sheet.schema.json +169 -0
- package/src/scripts/schemas/rule.schema.json +24 -2
- package/src/scripts/schemas/skill.schema.json +39 -0
- package/src/scripts/schemas/ui-authority.schema.json +114 -0
- package/src/scripts/select_analysis_mode.ts +112 -0
- package/src/scripts/session_register_hook.ts +29 -3
- package/src/scripts/sessions_cli.ts +67 -3
- package/src/scripts/skill_tools/score_skill_relevance.ts +36 -53
- package/src/scripts/sync_pr_branch.ts +40 -1
- package/src/scripts/token_sink_report.ts +239 -0
- package/src/scripts/trigger_coverage.ts +122 -3
- package/src/scripts/update_counts.ts +7 -3
- package/src/scripts/validate_frontmatter.ts +66 -0
- package/src/server/schemas/settings.ts +10 -0
- package/src/shared/skillRanking.ts +183 -0
- package/dist/agent-src/skills/accessibility-auditor/evals/evals.json +0 -15
- package/dist/agent-src/skills/agent-security-review/evals/triggers.json +0 -52
- package/dist/agent-src/skills/ai-code-blindspots/evals/triggers.json +0 -52
- package/dist/agent-src/skills/analysis-skill-router/evals/evals.json +0 -13
- package/dist/agent-src/skills/brand/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-asset-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-audit/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-identity/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-strategy/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-to-tokens/evals/triggers.json +0 -17
- package/dist/agent-src/skills/bug-analyzer/evals/evals.json +0 -13
- package/dist/agent-src/skills/canvas-design/evals/triggers.json +0 -17
- package/dist/agent-src/skills/character-consistency/evals/evals.json +0 -16
- package/dist/agent-src/skills/code-intelligence/evals/triggers.json +0 -52
- package/dist/agent-src/skills/code-review/evals/evals.json +0 -100
- package/dist/agent-src/skills/command-routing/evals/evals.json +0 -14
- package/dist/agent-src/skills/complexity-first-planning/evals/triggers.json +0 -17
- package/dist/agent-src/skills/contract-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/conventional-commits-writing/evals/evals.json +0 -15
- package/dist/agent-src/skills/corpus-grounding/evals/triggers.json +0 -17
- package/dist/agent-src/skills/dashboard-design/evals/evals.json +0 -16
- package/dist/agent-src/skills/dcf-modeling/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/dcf-modeling/evals/evals.json +0 -20
- package/dist/agent-src/skills/decision-record/evals/evals.json +0 -20
- package/dist/agent-src/skills/decision-record/evals/triggers.json +0 -87
- package/dist/agent-src/skills/design-intelligence/evals/evals.json +0 -14
- package/dist/agent-src/skills/design-intelligence/evals/triggers.json +0 -17
- package/dist/agent-src/skills/design-system-capture/evals/evals.json +0 -15
- package/dist/agent-src/skills/design-tokens/evals/triggers.json +0 -17
- package/dist/agent-src/skills/design-variations/evals/triggers.json +0 -17
- package/dist/agent-src/skills/developer-like-execution/evals/evals.json +0 -16
- package/dist/agent-src/skills/doc-coauthoring/evals/evals.json +0 -16
- package/dist/agent-src/skills/doc-coauthoring/evals/triggers.json +0 -17
- package/dist/agent-src/skills/docx-authoring/evals/triggers.json +0 -52
- package/dist/agent-src/skills/dpa-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/editorial-calendar/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/editorial-calendar/evals/evals.json +0 -16
- package/dist/agent-src/skills/eloquent/evals/triggers.json +0 -17
- package/dist/agent-src/skills/estimate-ticket/evals/evals.json +0 -16
- package/dist/agent-src/skills/estimate-ticket/evals/output-schema.yml +0 -20
- package/dist/agent-src/skills/estimate-ticket/evals/triggers.json +0 -19
- package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +0 -52
- package/dist/agent-src/skills/existing-ui-audit/evals/triggers.json +0 -47
- package/dist/agent-src/skills/experiment-loop/evals/output-schema.yml +0 -27
- package/dist/agent-src/skills/experiment-loop/evals/triggers.json +0 -17
- package/dist/agent-src/skills/fe-design/evals/triggers.json +0 -55
- package/dist/agent-src/skills/forecasting/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/forecasting/evals/evals.json +0 -20
- package/dist/agent-src/skills/forensics-report/evals/triggers.json +0 -17
- package/dist/agent-src/skills/frontend-render-security/evals/triggers.json +0 -52
- package/dist/agent-src/skills/fundraising-narrative/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/fundraising-narrative/evals/evals.json +0 -16
- package/dist/agent-src/skills/gated-reach/evals/triggers.json +0 -72
- package/dist/agent-src/skills/github-ci/evals/evals.json +0 -25
- package/dist/agent-src/skills/history-design/evals/triggers.json +0 -17
- package/dist/agent-src/skills/html-deck/evals/triggers.json +0 -17
- package/dist/agent-src/skills/humanizer/evals/strip_fixtures.json +0 -57
- package/dist/agent-src/skills/humanizer/evals/triggers.json +0 -17
- package/dist/agent-src/skills/iconography/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-analyser/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-creator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-editing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-provider-routing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/incident-commander/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/incident-commander/evals/evals.json +0 -20
- package/dist/agent-src/skills/judge-artifact-completeness/evals/triggers.json +0 -17
- package/dist/agent-src/skills/judge-injection-defense/evals/triggers.json +0 -17
- package/dist/agent-src/skills/judge-synthesis/evals/triggers.json +0 -17
- package/dist/agent-src/skills/launch-readiness/evals/evals.json +0 -21
- package/dist/agent-src/skills/learning-tutor/evals/triggers.json +0 -52
- package/dist/agent-src/skills/legal-intake-triage/evals/triggers.json +0 -17
- package/dist/agent-src/skills/legal-practice-profile/evals/triggers.json +0 -17
- package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +0 -52
- package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +0 -52
- package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +0 -52
- package/dist/agent-src/skills/llm-provider-knowledge/evals/triggers.json +0 -20
- package/dist/agent-src/skills/logging-monitoring/evals/evals.json +0 -16
- package/dist/agent-src/skills/logo-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/messaging-architecture/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/messaging-architecture/evals/evals.json +0 -16
- package/dist/agent-src/skills/nda-triage/evals/triggers.json +0 -17
- package/dist/agent-src/skills/pdf-tools/evals/triggers.json +0 -52
- package/dist/agent-src/skills/perf-feedback-craft/evals/evals.json +0 -16
- package/dist/agent-src/skills/persona-improvement/evals/triggers.json +0 -52
- package/dist/agent-src/skills/php-coder/evals/triggers.json +0 -17
- package/dist/agent-src/skills/prediction-pool-optimizer/evals/triggers.json +0 -21
- package/dist/agent-src/skills/prompt-engineering-image/evals/triggers.json +0 -17
- package/dist/agent-src/skills/prompt-engineering-patterns/evals/evals.json +0 -16
- package/dist/agent-src/skills/prompt-validator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/quality-tools/evals/evals.json +0 -15
- package/dist/agent-src/skills/reasoning-orchestrator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/refine-prompt/evals/evals.json +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/evals.json +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/output-schema.yml +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/triggers.json +0 -17
- package/dist/agent-src/skills/release-comms/evals/evals.json +0 -16
- package/dist/agent-src/skills/rice-prioritization/evals/evals.json +0 -20
- package/dist/agent-src/skills/runway-cognition/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/runway-cognition/evals/evals.json +0 -20
- package/dist/agent-src/skills/scenario-modeling/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/scenario-modeling/evals/evals.json +0 -20
- package/dist/agent-src/skills/schema-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +0 -52
- package/dist/agent-src/skills/security-maturity-assessment/evals/triggers.json +0 -52
- package/dist/agent-src/skills/skill-writing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/spreadsheet-authoring/evals/triggers.json +0 -47
- package/dist/agent-src/skills/subagent-orchestration/evals/evals.json +0 -60
- package/dist/agent-src/skills/supply-chain-intake/evals/triggers.json +0 -52
- package/dist/agent-src/skills/systematic-debugging/evals/evals.json +0 -20
- package/dist/agent-src/skills/test-case-discovery/evals/triggers.json +0 -52
- package/dist/agent-src/skills/test-driven-development/evals/evals.json +0 -16
- package/dist/agent-src/skills/threat-modeling/evals/evals.json +0 -21
- package/dist/agent-src/skills/typography-system/evals/evals.json +0 -14
- package/dist/agent-src/skills/typography-system/evals/triggers.json +0 -17
- package/dist/agent-src/skills/unit-economics-modeling/evals/domain-truth.json +0 -40
- package/dist/agent-src/skills/unit-economics-modeling/evals/evals.json +0 -24
- package/dist/agent-src/skills/verify-completion-evidence/evals/evals.json +0 -16
- package/dist/agent-src/skills/verify-repair-loop/evals/output-schema.yml +0 -20
- package/dist/agent-src/skills/verify-repair-loop/evals/triggers.json +0 -17
- package/dist/agent-src/skills/vision-articulation/evals/evals.json +0 -16
- package/dist/agent-src/skills/voice-and-tone-design/evals/evals.json +0 -16
- package/dist/agent-src/skills/wireframe/evals/triggers.json +0 -17
- package/dist/agent-src/skills/worktree-lifecycle/evals/evals.json +0 -38
- package/dist/agent-src/skills/worktree-lifecycle/evals/triggers.json +0 -52
- package/dist/cli/agent-config.js.map +0 -1
- package/dist/cli/bash/runBash.js.map +0 -1
- package/dist/cli/commands/commands.js.map +0 -1
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/doctorShell.js.map +0 -1
- package/dist/cli/commands/mcpServer.js.map +0 -1
- package/dist/cli/commands/packs.js.map +0 -1
- package/dist/cli/commands/profiles.js.map +0 -1
- package/dist/cli/commands/recordTriggerEval.js.map +0 -1
- package/dist/cli/commands/rtkDetect.js.map +0 -1
- package/dist/cli/commands/settings.js.map +0 -1
- package/dist/cli/commands/uiServe.js.map +0 -1
- package/dist/cli/commands/versions.js.map +0 -1
- package/dist/cli/commands/workspaces.js.map +0 -1
- package/dist/cli/configRoot.js.map +0 -1
- package/dist/cli/discovery/loadManifest.js.map +0 -1
- package/dist/cli/firstRunNotice.js.map +0 -1
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/initRouting.js.map +0 -1
- package/dist/cli/log/logger.js.map +0 -1
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/mcp/content.js.map +0 -1
- package/dist/cli/mcp/dispatch.js.map +0 -1
- package/dist/cli/mcp/stdio.js.map +0 -1
- package/dist/cli/paths.js.map +0 -1
- package/dist/cli/python/knowledge_ingest.js.map +0 -1
- package/dist/cli/python/workspace_analytics.js.map +0 -1
- package/dist/cli/python/workspace_crypto.js.map +0 -1
- package/dist/cli/python/workspace_documents.js.map +0 -1
- package/dist/cli/python/workspace_drive.js.map +0 -1
- package/dist/cli/python/workspace_drive_health.js.map +0 -1
- package/dist/cli/python/workspace_explain.js.map +0 -1
- package/dist/cli/python/workspace_hosts.js.map +0 -1
- package/dist/cli/python/workspace_inbox.js.map +0 -1
- package/dist/cli/python/workspace_render.js.map +0 -1
- package/dist/cli/python/workspace_roles.js.map +0 -1
- package/dist/cli/python/workspace_secrets.js.map +0 -1
- package/dist/cli/python/workspace_sessions.js.map +0 -1
- package/dist/cli/python/workspace_skills.js.map +0 -1
- package/dist/cli/registry.js.map +0 -1
- package/dist/install/agentSwitchDetection.js.map +0 -1
- package/dist/install/agentSwitchProfile.js.map +0 -1
- package/dist/install/atomic.js.map +0 -1
- package/dist/install/claudePathsPlan.js.map +0 -1
- package/dist/install/conflict.js.map +0 -1
- package/dist/install/detect.js.map +0 -1
- package/dist/install/emit_host_rules_cli.js.map +0 -1
- package/dist/install/globalRuleLayers.js.map +0 -1
- package/dist/install/hostLayerFingerprint.js.map +0 -1
- package/dist/install/partitionEligibility.js.map +0 -1
- package/dist/install/paths.js.map +0 -1
- package/dist/install/plan.js.map +0 -1
- package/dist/install/preflight.js.map +0 -1
- package/dist/install/rtkDetection.js.map +0 -1
- package/dist/install/ruleInScope.js.map +0 -1
- package/dist/install/ruleLayerPartition.js.map +0 -1
- package/dist/install/rule_scope.js.map +0 -1
- package/dist/install/rule_scope_cli.js.map +0 -1
- package/dist/install/selectedTools.js.map +0 -1
- package/dist/install/toolDetection.js.map +0 -1
- package/dist/install/txlog.js.map +0 -1
- package/dist/install/types.js.map +0 -1
- package/dist/install/wizard-plan.js.map +0 -1
- package/dist/install/wizardDismissals.js.map +0 -1
- package/dist/scripts/_lib/agent_settings.js.map +0 -1
- package/dist/scripts/_lib/agent_src.js.map +0 -1
- package/dist/scripts/_lib/claude_builtin_names.js.map +0 -1
- package/dist/scripts/_lib/claude_plugin.js.map +0 -1
- package/dist/scripts/_lib/claude_settings_hooks.js.map +0 -1
- package/dist/scripts/_lib/compile_time_toggles.js.map +0 -1
- package/dist/scripts/_lib/environment_detector.js.map +0 -1
- package/dist/scripts/_lib/host_launch.js.map +0 -1
- package/dist/scripts/_lib/install_layout.js.map +0 -1
- package/dist/scripts/_lib/installed_lock.js.map +0 -1
- package/dist/scripts/_lib/model_tier.js.map +0 -1
- package/dist/scripts/_lib/prune_empty_dirs.js.map +0 -1
- package/dist/scripts/_lib/scoped_projection.js.map +0 -1
- package/dist/scripts/_lib/script_output.js.map +0 -1
- package/dist/scripts/_lib/spawn_env.js.map +0 -1
- package/dist/scripts/_lib/surface_tiers.js.map +0 -1
- package/dist/scripts/_lib/token_count.js.map +0 -1
- package/dist/scripts/_lib/trigger_eval_floors.js.map +0 -1
- package/dist/scripts/_lib/user_global_paths.js.map +0 -1
- package/dist/scripts/ai_council/modes.js.map +0 -1
- package/dist/scripts/ai_council/transport_resolver.js.map +0 -1
- package/dist/scripts/condense.js.map +0 -1
- package/dist/scripts/project_thin_rules.js.map +0 -1
- package/dist/server/app.js.map +0 -1
- package/dist/server/io/atomicMultiWrite.js.map +0 -1
- package/dist/server/io/atomicWrite.js.map +0 -1
- package/dist/server/io/sharedWriteCheck.js.map +0 -1
- package/dist/server/io/substituteTemplate.js.map +0 -1
- package/dist/server/io/yamlIO.js.map +0 -1
- package/dist/server/nicknameResolver.js.map +0 -1
- package/dist/server/port.js.map +0 -1
- package/dist/server/routes/discovery.js.map +0 -1
- package/dist/server/routes/install.js.map +0 -1
- package/dist/server/routes/ping.js.map +0 -1
- package/dist/server/routes/schema.js.map +0 -1
- package/dist/server/routes/settings.js.map +0 -1
- package/dist/server/routes/settingsChanges.js.map +0 -1
- package/dist/server/routes/userMd.js.map +0 -1
- package/dist/server/routes/wizard.js.map +0 -1
- package/dist/server/routes/workspace.js.map +0 -1
- package/dist/server/schemas/settings.js.map +0 -1
- package/dist/server/serverInfo.js.map +0 -1
- package/dist/server/token.js.map +0 -1
- package/dist/server/writeRoot.js.map +0 -1
- package/dist/shared/capabilities.js.map +0 -1
- package/dist/shared/interactiveContext.js.map +0 -1
- package/dist/shared/nicknamePrefill.js.map +0 -1
- package/dist/shared/settingsAsks.js.map +0 -1
- package/dist/shared/settingsCarveOut.js.map +0 -1
- package/dist/shared/settingsClasses.js.map +0 -1
- package/dist/shared/settingsConsent.js.map +0 -1
- package/dist/shared/settingsSurface.js.map +0 -1
- package/dist/shared/userMd/formAdapter.js.map +0 -1
- package/dist/shared/userMd/schema.js.map +0 -1
- package/dist/shared/userMd/utils.js.map +0 -1
- package/dist/ui/assets/index-Cxgy63kz.js.map +0 -1
- package/src/scripts/_lib/adr_frontmatter.test.ts +0 -365
- package/src/scripts/_lib/adversarial_council_gate.test.ts +0 -112
- package/src/scripts/_lib/adversarial_reconcile.test.ts +0 -197
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +0 -150
- package/src/scripts/_lib/secret_detector.test.ts +0 -108
- package/src/scripts/_lib/secret_detector_adversarial.test.ts +0 -116
- package/src/scripts/_lib/untrusted_content.test.ts +0 -175
- package/src/scripts/check_secret_leak.test.ts +0 -90
- package/src/scripts/design_slop_rules.test.ts +0 -239
- package/src/scripts/self_review_gate.test.ts +0 -296
- package/src/shared/capabilities.test.ts +0 -43
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: design
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
argument-hint: "[audit|render|review|polish|quieter|bolder|distill|harden|clarify] [path]"
|
|
6
|
+
pack: engineering-base
|
|
7
|
+
intent: "Design dispatcher — inventory, capture, review, or run one bounded intervention verb"
|
|
8
|
+
routes_to: [existing-ui-audit, design-review, fe-design]
|
|
9
|
+
replaces: []
|
|
10
|
+
visibility: internal
|
|
11
|
+
description: Design orchestrator — routes audit/render/review to the Class-A commands and the six intervention verbs to fe-design with a declared operation
|
|
12
|
+
cluster: design
|
|
13
|
+
type: orchestrator
|
|
14
|
+
suggestion:
|
|
15
|
+
eligible: true
|
|
16
|
+
trigger_description: "audit this UI, render it, review the design, polish or tighten this screen"
|
|
17
|
+
trigger_context: "user wants something done to an existing UI surface without naming which design workflow"
|
|
18
|
+
workspaces:
|
|
19
|
+
- agent-config-maintainer
|
|
20
|
+
packs:
|
|
21
|
+
- meta
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# /design
|
|
25
|
+
|
|
26
|
+
One entry point for work on an existing UI surface. A **command**, not a skill —
|
|
27
|
+
the skill catalogue is already the largest standing cost in this suite, and this
|
|
28
|
+
adds a router rather than a 295th entry to it.
|
|
29
|
+
|
|
30
|
+
## Sub-commands
|
|
31
|
+
|
|
32
|
+
| Verb | Routes to | What it does |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| `audit` | `agent-config ui:audit` | Inventory the tree into `agents/runtime/state/ui-audit.json`. Class A. |
|
|
35
|
+
| `render` | `agent-config ui:render` | Capture desktop / 375 / 320 into `agents/runtime/state/render/`. Class A. |
|
|
36
|
+
| `review` | [`design-review`](../../../skills/design-review/SKILL.md) | Two-pass review — judgement before detector, or the `DEGRADED: single-context` banner. |
|
|
37
|
+
| `polish` | [`fe-design`](../../../skills/fe-design/SKILL.md) | Spacing, rhythm, alignment. |
|
|
38
|
+
| `quieter` | `fe-design` | Spacing, weight, contrast within the palette. |
|
|
39
|
+
| `bolder` | `fe-design` | Palette, type family, weight, scale. |
|
|
40
|
+
| `distill` | `fe-design` | Content density, spacing. |
|
|
41
|
+
| `harden` | `fe-design` | Accessibility, focus, contrast within the palette. |
|
|
42
|
+
| `clarify` | `fe-design` | Hierarchy, copy, labels. |
|
|
43
|
+
|
|
44
|
+
## The six verbs are one field, not six commands
|
|
45
|
+
|
|
46
|
+
Each verb declares the `ui_authority` dimensions it may touch
|
|
47
|
+
([contract](../../../docs/contracts/ui-authority.md) § The six operations).
|
|
48
|
+
That makes a collision **decidable** rather than a judgement call:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
A VERB WHOSE DECLARED DIMENSIONS COLLIDE WITH A CONSTRAINT SURFACES A
|
|
52
|
+
`conflicts[]` ENTRY AND PERFORMS NO WRITE. IT NEVER "MOSTLY" APPLIES.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`bolder` under `change_intent: preserve` is the worked case: it wants `palette`
|
|
56
|
+
and `type_family`, both locked, so it reports two conflicts and writes nothing.
|
|
57
|
+
`polish` under the same authority is clean, because spacing and rhythm are
|
|
58
|
+
outside the preserve threshold — which is the whole reason that threshold is
|
|
59
|
+
narrow.
|
|
60
|
+
|
|
61
|
+
## No argument — the menu is built from artefacts, not from a list
|
|
62
|
+
|
|
63
|
+
With no verb, read what is actually on disk and offer only what applies:
|
|
64
|
+
|
|
65
|
+
1. `agents/runtime/state/ui-audit.json` — present and fresh? Its `audit_path`
|
|
66
|
+
and `coherence_signals` say whether an audit is needed at all.
|
|
67
|
+
2. `agents/runtime/state/render/*/manifest.json` — the last capture, its
|
|
68
|
+
`verification`, and any `horizontal_overflow: true` viewport.
|
|
69
|
+
3. The changed UI files in the working tree, per `_lib/ui_surface.ts`.
|
|
70
|
+
|
|
71
|
+
A menu assembled from those three is a menu about this repository. A fixed list
|
|
72
|
+
of nine verbs is a menu about this command, which is not what the user asked.
|
|
73
|
+
|
|
74
|
+
## Order
|
|
75
|
+
|
|
76
|
+
`audit` before any write on a non-trivial change; `render` before a verdict that
|
|
77
|
+
claims anything about a viewport; `review` after the write. A verdict with no
|
|
78
|
+
render says which static checks ran and scopes itself — it never says "looks
|
|
79
|
+
good" with nothing behind it.
|
|
80
|
+
|
|
81
|
+
## Do NOT
|
|
82
|
+
|
|
83
|
+
- Do NOT add a tenth verb without removing one. The point of one field is that
|
|
84
|
+
the set stays small enough to reason about.
|
|
85
|
+
- Do NOT apply a verb whose conflicts array is non-empty.
|
|
86
|
+
- Do NOT infer `surface_mode` or `change_intent` here — read the authority
|
|
87
|
+
object. Re-deriving them is the drift the contract exists to prevent.
|
|
88
|
+
- Do NOT promote this to a skill. The routing is the whole content.
|
|
@@ -34,6 +34,27 @@ Gather in parallel:
|
|
|
34
34
|
- Check for module roots (resolve via `scripts/_lib/agent_settings.ts::enumerate_modules()`; Laravel shape: `app/Modules/`), multi-tenant indicators (`customer_database`)
|
|
35
35
|
- Read: `AGENTS.md`, `.github/copilot-instructions.md` (if exist)
|
|
36
36
|
|
|
37
|
+
**Assurance dimensions — do NOT hand-detect these.** Run
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
./scripts-run src/scripts/grade_target_readiness --target <project root>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
It probes the ten readiness dimensions in one pass — test-runner config
|
|
44
|
+
(vitest/jest/phpunit/pest/pytest), mutation config (`stryker.conf.*`,
|
|
45
|
+
`infection.json*`, `[tool.mutmut]`), property-based libraries, static analysis
|
|
46
|
+
(`phpstan.neon`, `psalm.xml`, `tsconfig.json`), architecture gates
|
|
47
|
+
(`.dependency-cruiser.*`, `deptrac.yaml`), SAST (`.semgrep*`, bandit),
|
|
48
|
+
lockfiles, audit steps, `CODEOWNERS`, decision-record directories — **and
|
|
49
|
+
whether CI actually blocks on each**, which is the 1 → 2 distinction a
|
|
50
|
+
hand-read gets wrong: a job that exists is `Present`, a job that can fail the
|
|
51
|
+
build is `Enforced-in-CI`.
|
|
52
|
+
|
|
53
|
+
Hand-detecting these was tried and rejected: a gather list in this file cannot
|
|
54
|
+
be asserted by a test, and step 1.1 of the source roadmap requires that each
|
|
55
|
+
dimension's presence be detected **and its absence not be**, both pinned by a
|
|
56
|
+
vitest spec. That spec is `tests/scripts/grade_target_readiness.test.ts`.
|
|
57
|
+
|
|
37
58
|
Display:
|
|
38
59
|
|
|
39
60
|
```
|
|
@@ -58,6 +79,32 @@ TECH STACK:
|
|
|
58
79
|
Frontend: {Vue / React / Blade / none}
|
|
59
80
|
Testing: {Pest / PHPUnit}
|
|
60
81
|
|
|
82
|
+
───────────────────────────────────────────────
|
|
83
|
+
READINESS (verbatim from grade_target_readiness)
|
|
84
|
+
───────────────────────────────────────────────
|
|
85
|
+
|
|
86
|
+
L{n} — bound by {dimension}
|
|
87
|
+
|
|
88
|
+
{the ten rows, exactly as the script printed them}
|
|
89
|
+
|
|
90
|
+
**Print the script's output verbatim. Do not summarise it and do not compute
|
|
91
|
+
anything from it.** Three rules, each of which the script already enforces and
|
|
92
|
+
which this template must not undo:
|
|
93
|
+
|
|
94
|
+
1. **Never emit an aggregate.** No percentage, no `x/100`, no mean, no letter
|
|
95
|
+
grade. A single number is the vanity metric this section exists to avoid, and
|
|
96
|
+
a ten-row vector with a binding dimension is the whole point of the format.
|
|
97
|
+
2. **The level is the MINIMUM over the four knockout dimensions** — test presence
|
|
98
|
+
& types, static analysis & types, CI enforcement, security & supply chain.
|
|
99
|
+
Nine dimensions at 3 and one knockout at 0 is `L0`, not "mostly ready".
|
|
100
|
+
3. **`not detectable` is not `0`.** A `0` claims the target lacks something; `not
|
|
101
|
+
detectable` says this tool cannot tell. For a Python target, static analysis
|
|
102
|
+
prints `not detectable — quality-tools has no Python mode`, and because that
|
|
103
|
+
dimension is a knockout it **binds at L0 with the reason shown**.
|
|
104
|
+
|
|
105
|
+
Whether a missing gate then gets created in the target is out of scope here —
|
|
106
|
+
this section grades, it does not install.
|
|
107
|
+
|
|
61
108
|
───────────────────────────────────────────────
|
|
62
109
|
TOOLING:
|
|
63
110
|
───────────────────────────────────────────────
|
|
@@ -3,12 +3,12 @@ model_tier: high
|
|
|
3
3
|
name: review-changes
|
|
4
4
|
pack: engineering-base
|
|
5
5
|
intent: "Multi-judge review of the current diff — bugs, security, tests, quality, architecture"
|
|
6
|
-
routes_to: [code-review, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, architecture-review-lens]
|
|
6
|
+
routes_to: [code-review, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, architecture-review-lens, overbuild-review-lens]
|
|
7
7
|
replaces: []
|
|
8
8
|
visibility: internal
|
|
9
9
|
sub: changes
|
|
10
10
|
cluster: review
|
|
11
|
-
skills: [code-review, subagent-orchestration, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, architecture-review-lens, judge-synthesis, git-workflow]
|
|
11
|
+
skills: [code-review, subagent-orchestration, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, architecture-review-lens, overbuild-review-lens, judge-synthesis, git-workflow]
|
|
12
12
|
description: Self-review local changes before creating a PR — dispatches to six specialized judges (bug, security, tests, quality, architecture, spec) and consolidates verdicts
|
|
13
13
|
suggestion:
|
|
14
14
|
eligible: false
|
|
@@ -122,10 +122,21 @@ PR body, commit messages) and runs independently. The judges are:
|
|
|
122
122
|
| [`judge-code-quality`](../../skills/judge-code-quality/SKILL.md) | Naming, SRP, DRY, dead code, consistency with codebase conventions |
|
|
123
123
|
| [`architecture-review-lens`](../../skills/architecture-review-lens/SKILL.md) | Layer violations, dependency direction, leaky abstractions, cross-service contract drift |
|
|
124
124
|
| [`judge-spec-compliance`](../../skills/judge-spec-compliance/SKILL.md) | Does the diff satisfy every acceptance criterion **as stated**? Reads the criteria before the diff, and never infers them from it |
|
|
125
|
+
| [`overbuild-review-lens`](../../skills/overbuild-review-lens/SKILL.md) | Speculative abstraction, premature generality, features nobody asked for, a rewrite where an edit was the task |
|
|
125
126
|
|
|
126
|
-
The
|
|
127
|
+
The seven judges weight equally in the consolidated verdict — none
|
|
127
128
|
overrides another.
|
|
128
129
|
|
|
130
|
+
**Why the seventh exists (road-to-trigger-delivered-rule-bodies A5).**
|
|
131
|
+
`overbuild-review-lens` shipped and **no command routed to it** — `grep -rln
|
|
132
|
+
overbuild-review-lens dist/agent-src/commands/` returned nothing, so a lens
|
|
133
|
+
built to catch the most common failure of AI-written code was reachable only by
|
|
134
|
+
being asked for by name. The other six all ask whether the diff is *good*; this
|
|
135
|
+
one asks whether it should have been this *large*, which is the one question a
|
|
136
|
+
diff cannot answer about itself. It is dispatched on demand like the others, so
|
|
137
|
+
it adds no standing token cost — verified: `check_preamble_payload_budget`'s
|
|
138
|
+
measured total is unchanged by this routing.
|
|
139
|
+
|
|
129
140
|
**Why the sixth exists, and why it is not a severity.** The other five all ask a
|
|
130
141
|
craft-or-correctness question, so a change that is correct, clean, well-tested
|
|
131
142
|
and architecturally sound — and **does not do what was asked** — used to pass
|
|
@@ -146,12 +157,12 @@ Pick dispatch mode based on diff size and environment:
|
|
|
146
157
|
|
|
147
158
|
- **Sequential** (default, simplest) — run bug-hunter → security-auditor
|
|
148
159
|
→ test-coverage → code-quality → architecture-review-lens →
|
|
149
|
-
spec-compliance, collect each verdict
|
|
160
|
+
spec-compliance → overbuild, collect each verdict
|
|
150
161
|
- **Parallel** — if `subagents.max_parallel` in `.agent-settings.yml` is
|
|
151
|
-
≥ 5 and subagent dispatch is available, run all
|
|
162
|
+
≥ 5 and subagent dispatch is available, run all seven concurrently
|
|
152
163
|
following the `do-in-parallel` pattern in
|
|
153
164
|
[`subagent-orchestration`](../../skills/subagent-orchestration/SKILL.md);
|
|
154
|
-
the
|
|
165
|
+
the seven judges operate on the same diff but produce independent
|
|
155
166
|
reports, so no shared-state risk
|
|
156
167
|
|
|
157
168
|
Each judge returns its own `Judge / Model / Target / Verdict /
|
|
@@ -189,6 +200,56 @@ If picked **1**:
|
|
|
189
200
|
|
|
190
201
|
If picked **2** → continue with internal judges only.
|
|
191
202
|
|
|
203
|
+
### 4b-fresh. The fresh reviewer — the one input with no implementation context
|
|
204
|
+
|
|
205
|
+
The six judges above all read **the same diff plus the task context**, and on the common
|
|
206
|
+
path they run in-session: the party that wrote the diff also reads it, with the whole
|
|
207
|
+
implementation context in scope. That is a self-review, and calling it a review is the
|
|
208
|
+
defect `road-to-review-independence` exists to close.
|
|
209
|
+
|
|
210
|
+
So a **seventh input** is added, and its distinguishing property is a negative one: it
|
|
211
|
+
has **no implementation context**. Not a new mechanism —
|
|
212
|
+
[`dispatch_r2_reviewer.ts`](../../../../scripts/dispatch_r2_reviewer.ts) already derives
|
|
213
|
+
the scope and persists the prompt it sent:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
./scripts-run src/scripts/dispatch_r2_reviewer --slug <slug> --base origin/main
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
The six in-session judges stay exactly as they are. This is an addition, not a
|
|
220
|
+
replacement — a fresh reviewer is worse than a spec judge at spec compliance, and the
|
|
221
|
+
point is not to be better at their job but to be uncontaminated by the author's framing.
|
|
222
|
+
|
|
223
|
+
**When the route is taken.** Whenever the diff is going to a PR — i.e. every
|
|
224
|
+
pre-PR review, which is what this command's own opening line describes itself as. It is
|
|
225
|
+
skipped only for a diff that will not be proposed to anyone: a scratch branch, a probe,
|
|
226
|
+
a measurement re-run.
|
|
227
|
+
|
|
228
|
+
**When dispatch is unavailable — the honest degraded answer.** If a fresh dispatch cannot
|
|
229
|
+
be made (no subagent primitive on this host, a spend ceiling, a dispatcher error), the
|
|
230
|
+
review **says so in the report** and records `fresh_review: unavailable` with the reason.
|
|
231
|
+
It does **not** fall back to the in-session judges and present the result as a review:
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
A SELF-REVIEW PRESENTED AS A REVIEW IS THE DEFECT, NOT THE DEGRADED MODE.
|
|
235
|
+
NO FRESH REVIEWER -> THE REPORT SAYS SO. NEVER SILENTLY.
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
That wording is deliberate. A silent fallback is worse than a missing input, because the
|
|
239
|
+
reader cannot tell which one they got — and this command's own `criteria_source` table
|
|
240
|
+
already applies the same rule to a different input (`not_provided` is never a pass).
|
|
241
|
+
|
|
242
|
+
**The implementer envelope does NOT reach this reviewer.** The judge prompts hand it over
|
|
243
|
+
on purpose — `prompts/do-and-judge.md:70` carries an `IMPLEMENTER ENVELOPE:` line with the
|
|
244
|
+
envelope placeholder — which is correct for a judge validating a claim and wrong for a
|
|
245
|
+
reviewer whose entire value is not having the author's framing.
|
|
246
|
+
|
|
247
|
+
The placeholder is described rather than written out here on purpose: step 1.3's verify is
|
|
248
|
+
a grep for its **absence** from this route, and prose that trips a grep-shaped verify is a
|
|
249
|
+
trap for the next reader. The asymmetry is stated in
|
|
250
|
+
[`prompts/README.md`](../../../../skills/subagent-orchestration/prompts/README.md) so the
|
|
251
|
+
next prompt author does not copy the envelope line into a fresh-reviewer template.
|
|
252
|
+
|
|
192
253
|
### 4c. Optional adversarial verification council (opt-in, high-risk)
|
|
193
254
|
|
|
194
255
|
Read `subagents.adversarial_council` from `.agent-settings.yml` (default
|
|
@@ -35,6 +35,50 @@ lookup, and assess the four 95%-conditions against the seed.
|
|
|
35
35
|
- **Explicit user bypass** ("just write it") → skip the gate for this turn;
|
|
36
36
|
count the bypass.
|
|
37
37
|
|
|
38
|
+
### 0b. Context probe — before step 1
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
agent-config roadmap:context
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Run it before gathering any content, and surface its hits to the user as ONE
|
|
45
|
+
list:
|
|
46
|
+
|
|
47
|
+
- an `agents/tmp/` inbox note on the same topic (names only — the probe never
|
|
48
|
+
reads the bodies);
|
|
49
|
+
- a sibling roadmap in `later/`, `stubs/`, `archive/` or the active set whose
|
|
50
|
+
slug or title shares the topic;
|
|
51
|
+
- an open PR touching the paths the new roadmap would cite.
|
|
52
|
+
|
|
53
|
+
This is the axis step 6's collision check cannot reach. That check is a
|
|
54
|
+
recursive `find -iname`, so it already covers `later/`, `stubs/` and `archive/`
|
|
55
|
+
— **lexically**. Same topic under a different name passes it clean, and the
|
|
56
|
+
probe is the semantic half.
|
|
57
|
+
|
|
58
|
+
Naming an overlap is **required**, not optional, and it is coordination rather
|
|
59
|
+
than content generation — see the amended rule below.
|
|
60
|
+
|
|
61
|
+
**Then write the `relates:` block from the hits** (template rule 18). One
|
|
62
|
+
numbered-options question per hit — `extends` / `supersedes` / `depends` /
|
|
63
|
+
`disjoint` — and the relation is never inferred: `extends` and `supersedes` rest
|
|
64
|
+
on the same lexical evidence and are opposite decisions, so guessing manufactures
|
|
65
|
+
the reflex-empty failure in a louder form. A `depends` answer mirrors into
|
|
66
|
+
`depends:` in the same edit.
|
|
67
|
+
|
|
68
|
+
Zero hits needs no question — it is fully determined, so write it silently:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
agent-config roadmap:context --relates # prints the block, ready to paste
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```yaml
|
|
75
|
+
relates: [] # scanned: 716 roadmap file(s), 0 sibling hits
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The `scanned:` count is what separates *somebody looked and found nothing* from
|
|
79
|
+
*nobody looked*; without it the empty list carries no information and is worse
|
|
80
|
+
than an absent field.
|
|
81
|
+
|
|
38
82
|
### 1. Determine location
|
|
39
83
|
|
|
40
84
|
Ask the user (in their language) where the roadmap should be created:
|
|
@@ -313,6 +357,11 @@ Failure modes covered by this hard stop:
|
|
|
313
357
|
### Rules
|
|
314
358
|
|
|
315
359
|
- **Do NOT auto-generate content** — always ask the user for input.
|
|
360
|
+
- **Naming an overlap is coordination, not content generation, and it is
|
|
361
|
+
required.** The rule above governs the roadmap's *substance*; it never
|
|
362
|
+
licenses staying silent about a sibling roadmap, an inbox note, or an open PR
|
|
363
|
+
that step 0b's probe surfaced. Report every hit, let the user decide what it
|
|
364
|
+
means, and write the outcome into the `relates:` block (template rule 18).
|
|
316
365
|
- **Do NOT commit or push.**
|
|
317
366
|
- **Do NOT offer execution after save** — Step 11 is a hard stop.
|
|
318
367
|
Execution starts on a later turn with an explicit execution verb
|
|
@@ -34,20 +34,28 @@ One invocation = one roadmap = one branch = one PR.
|
|
|
34
34
|
Selection reads live state, never memory, a dashboard count, or an
|
|
35
35
|
earlier fetch (per [`direct-answers`](../../rules/direct-answers.md)
|
|
36
36
|
Iron Law 2 and [`roadmap-process-loop § 1`](../../contexts/execution/roadmap-process-loop.md#1-resolve-roadmap)).
|
|
37
|
-
Run
|
|
37
|
+
Run ONE command:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
|
|
41
|
-
git ls-tree --name-only origin/main agents/roadmaps/ # still active?
|
|
42
|
-
git ls-tree --name-only origin/main agents/roadmaps/archive/ # already closed?
|
|
43
|
-
gh pr list --state open --json number,title,headRefName # in flight?
|
|
44
|
-
agent-config sessions:list # claimed right now?
|
|
40
|
+
agent-config roadmap:context
|
|
45
41
|
```
|
|
46
42
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
The four hand-written reads this block used to carry — the pruning fetch, the
|
|
44
|
+
active and archived roadmap listings, the open-PR listing, and the session
|
|
45
|
+
register — are now one probe
|
|
46
|
+
([`roadmap_context.ts`](../../../../scripts/roadmap_context.ts)), so all five
|
|
47
|
+
`/roadmap:*` entry points screen the same way instead of one command file
|
|
48
|
+
screening well and four not screening at all.
|
|
49
|
+
|
|
50
|
+
Both session axes are still in the report and for the same reason: the live
|
|
51
|
+
records AND the unmerged branches checked out in other worktrees. The branch
|
|
52
|
+
axis is the one that does not need a peer to have claimed anything, and it is
|
|
53
|
+
the half that cannot be silent.
|
|
54
|
+
|
|
55
|
+
The probe never refuses. With no network, no `gh`, or no authentication it
|
|
56
|
+
prints `scanned: 0 PRs (network unavailable)` and exits 0 — a probe that failed
|
|
57
|
+
closed would make the call site conditional, which is the failure this
|
|
58
|
+
extraction removes.
|
|
51
59
|
|
|
52
60
|
Excluded from the candidate set: `template.md`, `archive/`,
|
|
53
61
|
`skipped/`, `later/`, anything with `status: draft` whose promotion
|
|
@@ -157,9 +165,17 @@ GOODHART MOVE THIS PACKAGE'S OWN DISCIPLINE FORBIDS.
|
|
|
157
165
|
### 3b. Claim the pick, so the next session's screen sees it
|
|
158
166
|
|
|
159
167
|
```bash
|
|
160
|
-
agent-config sessions:claim <roadmap-slug>
|
|
168
|
+
agent-config sessions:claim <roadmap-slug> [--paths src/a.ts,src/b.ts]
|
|
161
169
|
```
|
|
162
170
|
|
|
171
|
+
`--paths` publishes the run's owned-path set — the same set the § 2 screen
|
|
172
|
+
derived — into the session record as `owned_paths`. It is what turns the third
|
|
173
|
+
collision axis on: without it a peer editing the same file under a different
|
|
174
|
+
roadmap and a different branch name is invisible on every axis, which is the
|
|
175
|
+
shape of the two duplications the branch axis already failed to catch. Declaring
|
|
176
|
+
nothing degrades to today's behaviour exactly, and the field is absent rather
|
|
177
|
+
than empty in the record.
|
|
178
|
+
|
|
163
179
|
Immediately after the pick, before any branch or commit. This writes the slug
|
|
164
180
|
into `agents/runtime/state/roadmap-claim-<session>.json`; the next heartbeat lifts
|
|
165
181
|
it into this session's register record, so another session's step 1 excludes it
|
|
@@ -98,6 +98,20 @@ command already does.
|
|
|
98
98
|
`archive/` and `stubs/` are out of scope.
|
|
99
99
|
2. **Order the queue.** Roadmaps at or above 10 % checkbox progress first, in
|
|
100
100
|
**descending** progress — nearly-done first, because they convert soonest.
|
|
101
|
+
|
|
102
|
+
**This is a recorded exception to [`/roadmap:next` § 3](../next/command.md),
|
|
103
|
+
not an oversight.** That command's Iron Law is explicit: *"RANK BY DEFECT
|
|
104
|
+
SEVERITY, NEVER BY PERCENT-DONE OR STEP COUNT … picking by checkbox count is
|
|
105
|
+
the Goodhart move this package's own discipline forbids."* This step orders by
|
|
106
|
+
exactly that. The two are not in conflict because they answer different
|
|
107
|
+
questions: `next` **selects one** roadmap out of many and must not be gamed by
|
|
108
|
+
a cheap-to-finish file, while `--all` has already committed to draining the
|
|
109
|
+
**whole** estate — every member runs, so the ranking decides only the order in
|
|
110
|
+
which finished work becomes reviewable, never what gets done. Under a total
|
|
111
|
+
drain the Goodhart pressure is absent by construction: there is nothing to
|
|
112
|
+
pick, so a proxy cannot be optimised against.
|
|
113
|
+
The exception is scoped to `--all`. A single-roadmap invocation of this
|
|
114
|
+
command selects nothing and inherits `next`'s doctrine unchanged.
|
|
101
115
|
Roadmaps below 10 % are appended after, ascending by declared `complexity:`
|
|
102
116
|
tier (lightweight → bounded → structural), tiebreak ascending total
|
|
103
117
|
checkbox count. Both buckets need a **total** order or two runs over the
|
|
@@ -6,7 +6,7 @@ visibility: internal
|
|
|
6
6
|
cluster: video
|
|
7
7
|
sub: from-script
|
|
8
8
|
description: Drive a script end-to-end through the AI video pipeline — scenes → blueprint → image → operator pick → motion → video → stitch. Preview default; --mode commit spends behind the cost gate.
|
|
9
|
-
argument-hint: "<path-to-script.md> [--mode preview|commit] [--max-spend-usd <usd>] [--
|
|
9
|
+
argument-hint: "<path-to-script.md> [--mode preview|commit] [--max-spend-usd <usd>] [--no-calibrate] [--{image,video}-provider <id>]"
|
|
10
10
|
personas: [hollywood-director, ai-video-technical-director]
|
|
11
11
|
skills: [scene-expander, video-director, pixar-storyteller, character-consistency, motion-choreographer]
|
|
12
12
|
suggestion:
|
|
@@ -20,7 +20,7 @@ packs:
|
|
|
20
20
|
|
|
21
21
|
# /video:from-script
|
|
22
22
|
|
|
23
|
-
`/video:from-script <path-to-script.md> [--mode preview|commit] [--max-spend-usd <usd>] [--image-provider <id>] [--video-provider <id>]`
|
|
23
|
+
`/video:from-script <path-to-script.md> [--mode preview|commit] [--max-spend-usd <usd>] [--no-calibrate] [--image-provider <id>] [--video-provider <id>]`
|
|
24
24
|
|
|
25
25
|
Drives a Markdown script through the full pipeline. Provider flags
|
|
26
26
|
override the `<default-image-provider>` / `<default-video-provider>`
|
|
@@ -89,9 +89,66 @@ For each scene blueprint:
|
|
|
89
89
|
`0`). When `--max-spend-usd` is set and the summed estimate exceeds
|
|
90
90
|
it, hard-block before the first live call — confirmation does not
|
|
91
91
|
override the cap.
|
|
92
|
-
3.
|
|
92
|
+
3. **Calibration probe (default on; `--no-calibrate` skips).** Before the
|
|
93
|
+
batch, render exactly **one** still and **one** clip, then run:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
scripts/ai-video/lib/calibrate-cost.sh <project> <scene-id> \
|
|
97
|
+
--adapter <id> --model <id> --scenes <n>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
It reads the `charged_usd` the pipeline already writes to
|
|
101
|
+
`<project>/scenes/<id>/cost.json` and prints one line:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
calibration: modeled $0.0800/s · charged $0.1100/s · +37.5 % · extrapolated batch $4.40 (modeled $3.20)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Re-confirm **only** when the charged figure exceeds the modeled one by
|
|
108
|
+
more than **25 %** — the script exits **13** in that case and **0**
|
|
109
|
+
otherwise. Under the threshold, print the line and continue: a calibration
|
|
110
|
+
that interrupts on every run is a confirmation nobody reads.
|
|
111
|
+
|
|
112
|
+
Exit 13 is a halt for a human, not a failure. `--max-spend-usd` is not a
|
|
113
|
+
substitute for it — that cap bounds *total spend*, while this catches a
|
|
114
|
+
wrong *per-second model*, which is what makes the total wrong in the first
|
|
115
|
+
place.
|
|
116
|
+
|
|
117
|
+
This folds into the existing `lib/operator-pick.sh` moment rather than
|
|
118
|
+
adding a gate of its own, so the operator sees the calibration line at
|
|
119
|
+
the checkpoint they were already stopping at.
|
|
120
|
+
|
|
121
|
+
`charged: null` is **not** `0`: an unpriceable or not-yet-charged scene
|
|
122
|
+
prints `charged: null`, extrapolates nothing, and never re-confirms. A
|
|
123
|
+
modeled figure is only ever corrected by a measured one.
|
|
124
|
+
|
|
125
|
+
Every reading appends one row to
|
|
126
|
+
`agents/evidence/ai-video/cost-ledger.jsonl` — see § Cost ledger below.
|
|
127
|
+
The read-back itself is not new: `lib/resume-scan.sh` already reads
|
|
128
|
+
`cost.json .charged_usd` and sums it as `spent_usd`. What is new is that
|
|
129
|
+
the number now **feeds back**: before this, money spent was recorded and
|
|
130
|
+
never read into the model it contradicted.
|
|
131
|
+
|
|
132
|
+
4. Call the image adapter (`run` subcommand) N times where N =
|
|
93
133
|
`<tuning/best-of-n>` (default 1).
|
|
94
134
|
|
|
135
|
+
### 5b. Cost ledger — the only route from charged to modeled
|
|
136
|
+
|
|
137
|
+
`manifest.cost_per_second_usd` is a **modeled** estimate. It may be
|
|
138
|
+
re-modeled only from measured charges, and only with the rows it averaged
|
|
139
|
+
cited in the same diff:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# one row per (adapter, model) reading, append-only
|
|
143
|
+
{"adapter":"fal","model":"fal-ai/ltx-2/text-to-video","modeled":0.16,"charged":0.21,"date":"2026-08-23"}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`lint_adapter_tier --cost-diff <base-ref>` **warns** when a manifest's
|
|
147
|
+
`cost_per_second_usd` changed in a diff that adds no ledger row. A warning,
|
|
148
|
+
not a failure: re-modelling an estimate is a legitimate human act. Doing it
|
|
149
|
+
silently *after* a live run measured the real charge is not — that is the
|
|
150
|
+
moment a guess becomes a contradicted measurement.
|
|
151
|
+
|
|
95
152
|
### 6. Operator pick (best-of-N checkpoint)
|
|
96
153
|
|
|
97
154
|
```bash
|
|
@@ -55,6 +55,20 @@ the first missing clip) flags. Reject any other flag — this command
|
|
|
55
55
|
does not render, so `--image-provider` / `--video-provider` are
|
|
56
56
|
contract bugs.
|
|
57
57
|
|
|
58
|
+
**`--mode` and `--xfade` exist on the script and are deliberately not
|
|
59
|
+
reachable from here.** `stitch.sh` now carries `--mode cut|handoff`, and in
|
|
60
|
+
handoff mode an optional `--xfade <s>` (≤ 0.25) at handoff seams. `cut` is the
|
|
61
|
+
default and is byte-identical to the only behaviour this command has ever
|
|
62
|
+
produced. `handoff` **re-encodes** (`libx264 -crf 20 -g 8 +faststart -an`) where
|
|
63
|
+
`cut` stream-copies, so it pays a generation loss and drops audio — a spend-free
|
|
64
|
+
but not cost-free change of the output. Reaching it needs the seam plan that
|
|
65
|
+
`lib/seam-plan.sh` builds from per-scene `continuity:` directives, which this
|
|
66
|
+
command does not read. Passing either flag here is therefore rejected by the
|
|
67
|
+
rule above, and that is the intended answer, not a gap: the continuity path is
|
|
68
|
+
driven from `/video:from-script`, and `--crossfade` remains refused in every
|
|
69
|
+
mode. Port invariants: `docs/contracts/skill-bundled-assets.md` § Port
|
|
70
|
+
invariants.
|
|
71
|
+
|
|
58
72
|
### 4. Stitch
|
|
59
73
|
|
|
60
74
|
```bash
|
|
@@ -11,6 +11,7 @@ before writing or reviewing code); this file is the catalog.
|
|
|
11
11
|
|---|---|
|
|
12
12
|
| `abstraction-thresholds.md` | Per-class extraction-threshold canon (code 2 · UI shell 3+ · stateful component ~4+state · utility-class string ≥3) — the single source every numeric threshold cites (ADR-213) |
|
|
13
13
|
| `code-clarity.md` | Cross-language clarity rules — inline single-use values, carve-outs (side effects, loops, type narrowing, debugger) |
|
|
14
|
+
| `monorepo-antipatterns.md` | Diff-detectable monorepo task-graph anti-patterns (root scripts bypassing the runner, lifecycle-hook sibling builds, `&&`-chained tasks, shared code under `apps/`, `../` in `inputs`, missing `outputs`) plus the classes deliberately not harvested |
|
|
14
15
|
| `component-oriented-and-oop-development.md` | Reuse-first components (FE) + OOP-where-it-reduces-complexity (backend); carve-out index; bounded by the anti-over-engineering anchors |
|
|
15
16
|
|
|
16
17
|
## PHP (`docs/guidelines/php/`)
|
|
@@ -95,6 +95,32 @@ L0–L4 are human shorthand for how deep a discovery went; they are documentatio
|
|
|
95
95
|
only. The **same** evidence rules apply at every tier — no enforced state
|
|
96
96
|
machine, no per-tier evidence relaxation.
|
|
97
97
|
|
|
98
|
+
## Re-orient when the tree contradicts what you last read
|
|
99
|
+
|
|
100
|
+
External edits invalidate evidence. When the user mentions they changed something
|
|
101
|
+
outside this session, or a read contradicts the last known state of a file, the
|
|
102
|
+
prior observation is **stale, not wrong** — and acting on it overwrites work that
|
|
103
|
+
is not yours.
|
|
104
|
+
|
|
105
|
+
Five steps, in order:
|
|
106
|
+
|
|
107
|
+
1. Treat every prior observation of the affected paths as invalidated.
|
|
108
|
+
2. Re-read the state — `git status`, then the affected files themselves.
|
|
109
|
+
3. Reconstruct the assumption that broke. A file did not vanish; it was renamed,
|
|
110
|
+
a block moved, a symbol was extracted. Find where it went before concluding
|
|
111
|
+
it is gone.
|
|
112
|
+
4. Preserve the external work. Never restore from your own stale copy.
|
|
113
|
+
5. Say what changed if the scope or the conclusion moved, rather than
|
|
114
|
+
continuing as though the earlier reading still held.
|
|
115
|
+
|
|
116
|
+
The failure this prevents is narrower than "be careful": it is re-applying a
|
|
117
|
+
diff computed against a tree that no longer exists, which looks like a clean
|
|
118
|
+
apply and silently reverts somebody's edit.
|
|
119
|
+
|
|
120
|
+
**No gate covers this.** It is a re-read the transcript cannot distinguish from
|
|
121
|
+
a first read, so it is model-carried — the same honesty boundary § Honest
|
|
122
|
+
enforcement reality states for the rest of this file.
|
|
123
|
+
|
|
98
124
|
## Honest enforcement reality
|
|
99
125
|
|
|
100
126
|
```
|