@event4u/agent-config 14.9.0 → 14.11.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 +384 -0
- 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/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/alerting-doctrine/evals/triggers.json +17 -0
- package/dist/agent-src/skills/async-python-patterns/SKILL.md +1 -1
- 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 +1 -1
- package/dist/agent-src/skills/code-review/SKILL.md +11 -0
- package/dist/agent-src/skills/command-routing/SKILL.md +6 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +4 -1
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +4 -1
- 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 +80 -2
- 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/discovery-interview/SKILL.md +1 -1
- package/dist/agent-src/skills/doc-coauthoring/SKILL.md +1 -1
- package/dist/agent-src/skills/docx-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/editorial-calendar/SKILL.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +3 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +20 -3
- package/dist/agent-src/skills/fe-design/SKILL.md +74 -41
- package/dist/agent-src/skills/fe-design/evals/triggers.json +65 -53
- 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/github-ci/SKILL.md +1 -1
- 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/evals/triggers.json +17 -0
- package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.ts +270 -0
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-injection-defense/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-migration/SKILL.md +3 -0
- package/dist/agent-src/skills/laravel-validation/SKILL.md +1 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +3 -0
- package/dist/agent-src/skills/legal-intake-triage/SKILL.md +1 -1
- package/dist/agent-src/skills/legal-practice-profile/SKILL.md +1 -1
- 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/messaging-architecture/SKILL.md +1 -1
- package/dist/agent-src/skills/migration-architect/SKILL.md +1 -1
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +1 -1
- package/dist/agent-src/skills/module-management/SKILL.md +1 -1
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +149 -0
- package/dist/agent-src/skills/monorepo-workspace/evals/triggers.json +17 -0
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +7 -1
- package/dist/agent-src/skills/multi-tenancy/SKILL.md +4 -0
- package/dist/agent-src/skills/onboarding-program/SKILL.md +1 -1
- package/dist/agent-src/skills/operational-readiness/SKILL.md +184 -0
- package/dist/agent-src/skills/operational-readiness/evals/triggers.json +17 -0
- package/dist/agent-src/skills/override-management/SKILL.md +3 -0
- package/dist/agent-src/skills/perf-feedback-craft/SKILL.md +1 -1
- 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/prompt-engineering-image/SKILL.md +3 -0
- package/dist/agent-src/skills/prompt-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/quality-tools/SKILL.md +5 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +52 -21
- 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 +3 -3
- 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/SKILL.md +1 -1
- package/dist/agent-src/skills/scene-expander/scene-blueprint.schema.yaml +26 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +5 -1
- package/dist/agent-src/skills/server-hardening/SKILL.md +159 -0
- package/dist/agent-src/skills/server-hardening/evals/triggers.json +17 -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/spreadsheet-authoring/SKILL.md +3 -0
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +194 -0
- package/dist/agent-src/skills/storybook-workshop/evals/triggers.json +17 -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 +9 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +3 -0
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
- 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/skills/workspace-link/evals/triggers.json +17 -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/uiAudit.js.map +1 -0
- package/dist/cli/commands/uiRender.js +206 -0
- package/dist/cli/commands/uiRender.js.map +1 -0
- package/dist/cli/main.js +22 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/mcp/content.js +64 -1
- package/dist/cli/mcp/content.js.map +1 -1
- package/dist/cli/mcp/dispatch.js +175 -10
- package/dist/cli/mcp/dispatch.js.map +1 -1
- package/dist/cli/registry.js +3 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/{chunk-H4VIVD4C.js → chunk-236PNQZK.js} +413 -391
- 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-PLSG6UL5.js → chunk-K4FFODTS.js} +341 -204
- package/dist/cli-delegate/{chunk-YM4GZDJG.js → chunk-L43NCYPB.js} +5 -0
- 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 +380 -145
- 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 +2337 -1436
- package/dist/install/install.mjs +795 -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/lean_projection_mode.js.map +1 -0
- package/dist/scripts/_lib/scoped_projection.js +84 -0
- package/dist/scripts/_lib/scoped_projection.js.map +1 -1
- package/dist/scripts/_lib/ui_surface.js +89 -0
- package/dist/scripts/_lib/ui_surface.js.map +1 -0
- package/dist/scripts/condense.js +6 -10
- package/dist/scripts/condense.js.map +1 -1
- package/dist/scripts/project_thin_rules.js +40 -2
- package/dist/scripts/project_thin_rules.js.map +1 -1
- package/dist/server/schemas/settings.js +3 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/shared/skillRanking.js +159 -0
- package/dist/shared/skillRanking.js.map +1 -0
- package/docs/contracts/provider-lifecycle.md +47 -18
- package/docs/contracts/settings-classes.md +14 -4
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +49 -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/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/llms.txt +50 -39
- package/package.json +1 -1
- 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 +28 -0
- package/src/config/assurance-capability-registry.json +223 -0
- package/src/config/assurance-threshold-budget.json +65 -0
- package/src/config/ci-local-parity.yml +14 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/dispatch-economy-metrics.json +4 -2
- package/src/config/evaluator-budgets.json +14 -14
- package/src/config/gate-coverage.yml +227 -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 +4 -2
- package/src/config/preamble-payload-budget.json +71 -67
- package/src/config/quorum-attendance-budget.json +12 -4
- 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/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/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/transcript_reads.ts +207 -0
- package/src/scripts/_lib/ui_authority.test.ts +251 -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/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/seating.ts +211 -0
- 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_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_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_pack_passport_reconciliation.ts +274 -0
- 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_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/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/design_slop_rules.test.ts +7 -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/generate_pack_manifests.ts +78 -0
- package/src/scripts/grade_target_readiness.ts +478 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +97 -16
- package/src/scripts/hooks/concern_registry.ts +4 -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/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 +2 -1
- 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_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/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/roadmap_context.ts +778 -0
- package/src/scripts/schemas/fidelity-measurement-sheet.schema.json +169 -0
- package/src/scripts/schemas/pack.schema.json +62 -4
- package/src/scripts/schemas/rule.schema.json +24 -2
- package/src/scripts/schemas/skill.schema.json +41 -2
- package/src/scripts/schemas/ui-authority.schema.json +114 -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/tighten_skill_descriptions.ts +264 -0
- 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 +5 -0
- package/src/shared/skillRanking.ts +183 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
model_tier: inherit
|
|
3
3
|
name: motion-choreographer
|
|
4
|
-
description: "
|
|
4
|
+
description: "When turning a locked still + blueprint into a provider-tuned motion prompt — camera, primary + secondary motion, physics, native-audio sync. Triggers 'motion prompt for Veo/Kling/Sora'."
|
|
5
5
|
personas:
|
|
6
6
|
- ai-video-technical-director
|
|
7
7
|
domain: product
|
|
@@ -59,6 +59,12 @@ Do NOT use when:
|
|
|
59
59
|
for Step 3.
|
|
60
60
|
4. If a `character.json` lock exists, load it verbatim — identity
|
|
61
61
|
tokens are immutable.
|
|
62
|
+
5. Continuous take or connector asked for? Read the model's
|
|
63
|
+
`start_frame` / `end_frame` first —
|
|
64
|
+
`scripts/ai-video/adapters/<id>.sh capability --model <m>`. `null` is
|
|
65
|
+
unknown, never `true`. A model that cannot frame-lock is **declined
|
|
66
|
+
with a one-line why**, never substituted in
|
|
67
|
+
([`adapter-contract.md#end_image`](../../../scripts/media/lib/adapter-contract.md#end_image)).
|
|
62
68
|
|
|
63
69
|
### Step 1: Camera choreography
|
|
64
70
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
model_tier: inherit
|
|
3
3
|
name: onboarding-program
|
|
4
|
-
description: "
|
|
4
|
+
description: "When shaping employee onboarding — time-to-productivity, role-by-role program, mentor pairing, 30/60/90 milestones. Triggers on 'design our onboarding', 'why are new hires ramping slow'."
|
|
5
5
|
status: active
|
|
6
6
|
tier: senior
|
|
7
7
|
domain: process
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: operational-readiness
|
|
4
|
+
description: "Use when adjudicating an operational go/no-go from typed evidence — a readiness enum with an explicit floor where one red is not-ready, unknown is never green, and no score can average a red away."
|
|
5
|
+
domain: devops
|
|
6
|
+
workspaces:
|
|
7
|
+
- engineering
|
|
8
|
+
packs:
|
|
9
|
+
- engineering-base
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# operational-readiness
|
|
13
|
+
|
|
14
|
+
## When to use
|
|
15
|
+
|
|
16
|
+
Use when turning evidence that already exists into a **verdict**: is this system
|
|
17
|
+
ready to operate. The inputs come from other skills; this one adjudicates them
|
|
18
|
+
and refuses to average.
|
|
19
|
+
|
|
20
|
+
Do NOT use when:
|
|
21
|
+
- Producing the observability evidence itself (use `logging-monitoring`)
|
|
22
|
+
- Deciding what earns a page (use `alerting-doctrine`)
|
|
23
|
+
- Hardening the host (use `server-hardening`)
|
|
24
|
+
- Working through a release checklist and rollout plan (use `launch-readiness` —
|
|
25
|
+
that is a pre-merge procedure; this is a verdict over operational evidence)
|
|
26
|
+
- Running an incident already in progress (use `incident-commander`)
|
|
27
|
+
|
|
28
|
+
## The verdict is an enum with a floor
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
ONE RED MAKES THE VERDICT not-ready, WHATEVER SITS BESIDE IT.
|
|
32
|
+
UNKNOWN IS NEVER GREEN. THERE IS NO SCORE, NO WEIGHT, NO AVERAGE.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
| Verdict | Condition |
|
|
36
|
+
|---|---|
|
|
37
|
+
| `ready` | Every input is green. No reds, no unknowns. |
|
|
38
|
+
| `ready-with-risk` | Every input is green or amber, at least one amber, **no** reds and **no** unknowns. Each amber names its accepted risk and an owner. |
|
|
39
|
+
| `not-ready` | **At least one** red — or at least one unknown. |
|
|
40
|
+
|
|
41
|
+
Three properties, each load-bearing:
|
|
42
|
+
|
|
43
|
+
- **The floor is absolute.** One red among nineteen greens is `not-ready`. The
|
|
44
|
+
red is the interesting input precisely because the greens cannot answer it.
|
|
45
|
+
- **`unknown` lands in `not-ready`, not in `ready-with-risk`.** An uninspected
|
|
46
|
+
input is not a small risk, it is an unmeasured one, and treating it as amber is
|
|
47
|
+
how "we never checked" becomes "we accepted it". Amber requires someone to have
|
|
48
|
+
looked and named what they are accepting.
|
|
49
|
+
- **There is no numeric path.** No readiness percentage, no weighted score, no
|
|
50
|
+
count of greens, no "N of M passing". Any such construct can hide a red, which
|
|
51
|
+
is the only failure mode this skill exists to prevent. If you catch yourself
|
|
52
|
+
producing a number, the verdict has already been lost.
|
|
53
|
+
|
|
54
|
+
## Typed evidence intake
|
|
55
|
+
|
|
56
|
+
Each input arrives from an owning surface and keeps its provenance. This skill
|
|
57
|
+
does not re-derive an input — it reads the verdict the owner produced.
|
|
58
|
+
|
|
59
|
+
| Input | Owner | Red when |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| Observability posture | `logging-monitoring` | A required Golden Signal is `unavailable` or `unknown` |
|
|
62
|
+
| Alert set | `alerting-doctrine` | Any `malformed-alert`, or no page exists for a user-visible failure |
|
|
63
|
+
| Finite-resource headroom | `scale-discipline` R-A12 | A constrained resource has no known ceiling, or headroom is unquantified |
|
|
64
|
+
| Host posture | `server-hardening` | SSH, firewall or patch baseline unmet or uninspected |
|
|
65
|
+
| Deploy safety | `engineering-safety-floor` | Any of blast radius, rollback path, pre-flight checks, observability or named risk owner is missing |
|
|
66
|
+
|
|
67
|
+
An input the intake cannot obtain is `unknown` — never omitted, and never
|
|
68
|
+
defaulted to green. Omission is the silent failure; recording it as `unknown` is
|
|
69
|
+
what makes it visible in the verdict.
|
|
70
|
+
|
|
71
|
+
A threshold reaching this skill with `proposed` provenance is not evidence. It is
|
|
72
|
+
a suggestion, and adjudicating against it produces a verdict about a number
|
|
73
|
+
nobody committed to — see `logging-monitoring` § Evidence states.
|
|
74
|
+
|
|
75
|
+
## Procedure: Adjudicate readiness
|
|
76
|
+
|
|
77
|
+
1. **Enumerate the five inputs.** The list does not shrink to the ones that are
|
|
78
|
+
convenient to obtain.
|
|
79
|
+
2. **Read each owner's verdict.** Do not re-derive it here; a second derivation
|
|
80
|
+
is a second opinion, and the owner holds the authority.
|
|
81
|
+
3. **Mark every input `green`, `amber`, `red` or `unknown`.** An input you could
|
|
82
|
+
not obtain is `unknown`, stated with what blocked the inspection.
|
|
83
|
+
4. **Apply the floor, in this order.** Any red or any unknown → `not-ready`,
|
|
84
|
+
stop. Else any amber → `ready-with-risk`. Else `ready`.
|
|
85
|
+
5. **Name every red and every unknown in the output**, each with the input it
|
|
86
|
+
came from and what would clear it. A `not-ready` verdict that does not say
|
|
87
|
+
what to fix is an obstruction rather than a finding.
|
|
88
|
+
6. **For `ready-with-risk`, record each amber's accepted risk and its owner.**
|
|
89
|
+
An accepted risk with no owner is an unaccepted risk.
|
|
90
|
+
|
|
91
|
+
### Validate
|
|
92
|
+
|
|
93
|
+
- Verify all five inputs appear in the output, including the ones scored
|
|
94
|
+
`unknown`.
|
|
95
|
+
- Confirm any red or any unknown produced `not-ready`.
|
|
96
|
+
- Confirm no amber was used to absorb a red or an unknown.
|
|
97
|
+
- Confirm the output contains no score, percentage, weight or pass-count.
|
|
98
|
+
- Confirm every red and unknown names what would clear it.
|
|
99
|
+
- Confirm every amber names an accepted risk and an owner.
|
|
100
|
+
|
|
101
|
+
## Output format
|
|
102
|
+
|
|
103
|
+
1. The verdict — one of `ready`, `ready-with-risk`, `not-ready`.
|
|
104
|
+
2. One row per input — input, owner, state, evidence pointer.
|
|
105
|
+
3. Every red and unknown with what would clear it; every amber with its accepted
|
|
106
|
+
risk and owner.
|
|
107
|
+
|
|
108
|
+
## Examples
|
|
109
|
+
|
|
110
|
+
Contract fixtures. The pair differs **only** in the condition under test, and
|
|
111
|
+
each case states the verdict it must produce. Contract evidence for review, not
|
|
112
|
+
an executable suite.
|
|
113
|
+
|
|
114
|
+
### One red among greens — malformed vs clean
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
# malformed input set — four greens and one red.
|
|
118
|
+
# The floor applies: the greens do not outvote the red.
|
|
119
|
+
inputs:
|
|
120
|
+
observability: { state: green, evidence: "4/4 signals present" }
|
|
121
|
+
alert_set: { state: green, evidence: "0 malformed-alert" }
|
|
122
|
+
finite_resource: { state: green, evidence: "pool ceiling 100, peak 61" }
|
|
123
|
+
host_posture: { state: green, evidence: "ssh keys-only, ufw default deny" }
|
|
124
|
+
deploy_safety: { state: red, evidence: "no rollback path stated" }
|
|
125
|
+
verdict: not-ready
|
|
126
|
+
blocking: ["deploy_safety: no rollback path stated"]
|
|
127
|
+
clears_when: "a rollback path is stated and its time-to-rollback estimated"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
```yaml
|
|
131
|
+
# clean — only the red input is replaced.
|
|
132
|
+
inputs:
|
|
133
|
+
observability: { state: green, evidence: "4/4 signals present" }
|
|
134
|
+
alert_set: { state: green, evidence: "0 malformed-alert" }
|
|
135
|
+
finite_resource: { state: green, evidence: "pool ceiling 100, peak 61" }
|
|
136
|
+
host_posture: { state: green, evidence: "ssh keys-only, ufw default deny" }
|
|
137
|
+
deploy_safety: { state: green, evidence: "rollback: revert + redeploy, ~4min" }
|
|
138
|
+
verdict: ready
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Unknown is not amber — malformed vs clean
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
# malformed — an uninspected input recorded as an accepted risk.
|
|
145
|
+
inputs:
|
|
146
|
+
host_posture: { state: amber, accepted_risk: "probably fine", owner: null }
|
|
147
|
+
verdict: invalid-unknown-as-amber
|
|
148
|
+
reason: "nobody inspected the host; amber requires a named accepted risk and owner"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```yaml
|
|
152
|
+
# clean — the same uninspected input recorded honestly.
|
|
153
|
+
inputs:
|
|
154
|
+
host_posture:
|
|
155
|
+
state: unknown
|
|
156
|
+
reason: "no shell access to the managed runtime; posture not inspectable"
|
|
157
|
+
verdict: not-ready
|
|
158
|
+
blocking: ["host_posture: not inspectable"]
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Gotcha
|
|
162
|
+
|
|
163
|
+
- A count of passing inputs is a score wearing different clothes.
|
|
164
|
+
- `ready-with-risk` is not a softer `not-ready`; it is unreachable while any red
|
|
165
|
+
or unknown exists.
|
|
166
|
+
- An amber with no named owner is a red that has been rounded down.
|
|
167
|
+
- Re-deriving an owner's verdict here produces a disagreement with no tiebreak.
|
|
168
|
+
- A green built on a `proposed` threshold is a green built on a guess.
|
|
169
|
+
|
|
170
|
+
## Do NOT
|
|
171
|
+
|
|
172
|
+
- Do NOT compute a readiness percentage, weighted score or pass-count.
|
|
173
|
+
- Do NOT let greens outvote a red — the floor is absolute.
|
|
174
|
+
- Do NOT record an uninspected input as amber, or omit it.
|
|
175
|
+
- Do NOT treat `unknown` as green, compliant, or "probably fine".
|
|
176
|
+
- Do NOT return `not-ready` without naming what would clear it.
|
|
177
|
+
|
|
178
|
+
## Auto-trigger keywords
|
|
179
|
+
|
|
180
|
+
- operational readiness
|
|
181
|
+
- readiness verdict
|
|
182
|
+
- go/no-go
|
|
183
|
+
- ready to operate
|
|
184
|
+
- production readiness
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "operational-readiness",
|
|
3
|
+
"last_eval": "2026-08-23",
|
|
4
|
+
"description": "5 should-trigger + 5 should-not-trigger. Should-trigger covers adjudicating a go/no-go from typed evidence and the one-red floor. Should-not-trigger covers the neighbours that PRODUCE the evidence rather than adjudicate it (logging-monitoring, alerting-doctrine, server-hardening), the pre-merge release checklist (launch-readiness) and an incident already running (incident-commander).",
|
|
5
|
+
"queries": [
|
|
6
|
+
{"q": "are we operationally ready to run this in production?", "trigger": true},
|
|
7
|
+
{"q": "give me a go/no-go verdict from what we know about this service", "trigger": true},
|
|
8
|
+
{"q": "four checks are green and one is red — what is the overall verdict?", "trigger": true},
|
|
9
|
+
{"q": "can we call this ready if we never inspected the host?", "trigger": true},
|
|
10
|
+
{"q": "adjudicate operational readiness for the payments service", "trigger": true},
|
|
11
|
+
{"q": "which Golden Signal is this project missing?", "trigger": false, "note": "produces the observability evidence → logging-monitoring"},
|
|
12
|
+
{"q": "should this alert wake the on-call engineer?", "trigger": false, "note": "alert classification → alerting-doctrine"},
|
|
13
|
+
{"q": "write the pre-merge checklist and rollout plan for this release", "trigger": false, "note": "pre-merge release procedure → launch-readiness"},
|
|
14
|
+
{"q": "we are in an outage right now, who does what?", "trigger": false, "note": "incident already running → incident-commander"},
|
|
15
|
+
{"q": "configure the firewall baseline on the new server", "trigger": false, "note": "host hardening execution → server-hardening"}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -3,6 +3,9 @@ model_tier: inherit
|
|
|
3
3
|
name: override-management
|
|
4
4
|
description: "Creates and manages project-level overrides for shared skills, rules, and commands — extending or replacing originals from .augment/ with project-specific behavior in agents/overrides/."
|
|
5
5
|
domain: process
|
|
6
|
+
scope:
|
|
7
|
+
write: []
|
|
8
|
+
verification_reason: "execution.handler is internal, so this skill spawns no subprocess — writes happen through the agent's declared allowed_tools. No command can prove a scope the skill never executes."
|
|
6
9
|
execution:
|
|
7
10
|
type: assisted
|
|
8
11
|
handler: internal
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
model_tier: inherit
|
|
3
3
|
name: perf-feedback-craft
|
|
4
|
-
description: "
|
|
4
|
+
description: "When shaping feedback — situation-behavior-impact, growth-vs-corrective split, cadence design, ladder-of-inference checks. Triggers on 'how do I give this feedback', 'perf review shape'."
|
|
5
5
|
status: active
|
|
6
6
|
tier: senior
|
|
7
7
|
domain: process
|
|
@@ -3,6 +3,9 @@ model_tier: inherit
|
|
|
3
3
|
name: persona-improvement
|
|
4
4
|
description: "Refine a persona from recent corrections — tightens its Unique Questions, governance-gated; explicit request only. Skill analog → skill-improvement-pipeline."
|
|
5
5
|
domain: process
|
|
6
|
+
scope:
|
|
7
|
+
write: []
|
|
8
|
+
verification_reason: "execution.handler is internal, so this skill spawns no subprocess — writes happen through the agent's declared allowed_tools. No command can prove a scope the skill never executes."
|
|
6
9
|
execution:
|
|
7
10
|
type: assisted
|
|
8
11
|
handler: internal
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: playbook-authoring
|
|
4
|
+
description: "Use when a repo has its own generators, scripts or turbo tasks and an agent reaches for a generic skill instead — derive a Playbook context (ADR-244) from the real config, graded by the tree."
|
|
5
|
+
domain: engineering
|
|
6
|
+
workspaces:
|
|
7
|
+
- engineering
|
|
8
|
+
packs:
|
|
9
|
+
- engineering-base
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# playbook-authoring
|
|
13
|
+
|
|
14
|
+
A shipped skill is a generic answer to a generic question. A **playbook** is *this*
|
|
15
|
+
repository's answer, and it outranks the shipped skill whenever both match — because it
|
|
16
|
+
carries decisions the repository already made (file layout, barrel exports, test
|
|
17
|
+
co-location, the project's own naming) that no generic skill can know.
|
|
18
|
+
|
|
19
|
+
This skill derives playbooks from the repository's own configuration. It is the procedure
|
|
20
|
+
half of `standards-from-config`'s Class-A rule: the config **is** the standard, so a
|
|
21
|
+
playbook step is only trustworthy when the thing it invokes was **seen in the tree**.
|
|
22
|
+
|
|
23
|
+
## The Iron Law
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
NEVER WRITE A `configured` STEP FOR A GENERATOR YOU DID NOT SEE IN THE TREE.
|
|
27
|
+
RESOLVE EVERY `invokes` ID TO A FILE OR A DECLARED TASK, OR GRADE IT `observed`.
|
|
28
|
+
INVOKE WHAT THE WRAPPER POINTS AT, NEVER THE WRAPPER.
|
|
29
|
+
A KIND THIS RELEASE CANNOT RESOLVE IS REPORTED, NEVER GUESSED AT.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## When to use
|
|
33
|
+
|
|
34
|
+
A repository carries its own generators, task-runner tasks, or creation scripts, **and** an
|
|
35
|
+
agent has been observed producing a generic component / module / package instead of running
|
|
36
|
+
them. Also on an explicit ask — *"write playbooks for this repo"*, *"why does the agent not
|
|
37
|
+
use our generator"*.
|
|
38
|
+
|
|
39
|
+
## Procedure
|
|
40
|
+
|
|
41
|
+
1. **Derive, and write nothing yet.** Enumerate the sources in the scope table below and
|
|
42
|
+
list one candidate per repeated procedure, each with its grade — nothing written.
|
|
43
|
+
- **Source of truth:** the repository's own task declarations — see the scope table below
|
|
44
|
+
for which of them this release resolves.
|
|
45
|
+
- **Verify:** every line printed names an id you can run by hand.
|
|
46
|
+
2. **Read every proposal, including the graded-`observed` ones.** An unresolved id means go
|
|
47
|
+
look at the tree before deciding what it means.
|
|
48
|
+
- **Verify:** each `configured` proposal's `source_of_truth` points at a file you opened.
|
|
49
|
+
3. **Drop the candidates that are not procedures.** A one-off, or a single command wearing a
|
|
50
|
+
playbook's formatting, is a rename — delete it from the set.
|
|
51
|
+
- **Verify:** every surviving candidate is something done repeatedly the same way.
|
|
52
|
+
4. **Write, then read the written file.** Write each surviving candidate, then open it.
|
|
53
|
+
- **Verify:** the frontmatter `grade` matches what step 2 established, and a
|
|
54
|
+
`configured` file has no step without an `invokes` entry.
|
|
55
|
+
5. **Register the staleness expectation.** The `invokes` ids are what the Phase-3 check
|
|
56
|
+
resolves; a playbook whose ids you cannot name is not finished.
|
|
57
|
+
- **Verify:** every written playbook's `invokes` list is non-empty, and each id can be
|
|
58
|
+
run by hand in the repository.
|
|
59
|
+
|
|
60
|
+
## The derivation — deterministic, and maintainer-side today
|
|
61
|
+
|
|
62
|
+
A `derive_playbooks` script implements the enumeration above in this package's own source
|
|
63
|
+
tree. It is deterministic and makes no model call: it prints one line per proposal with its
|
|
64
|
+
grade, and `⚠️ … grade=observed` is a signal to go look rather than a warning to dismiss.
|
|
65
|
+
|
|
66
|
+
**It is not exposed as a consumer command.** A consumer install receives this skill and not
|
|
67
|
+
that script, so in a consumer repository the procedure above is carried out **by hand
|
|
68
|
+
against the grading rules below** — which is why those rules, not the script, are the
|
|
69
|
+
substance of this skill. Saying so is the point: a skill that told a consumer to run a
|
|
70
|
+
command they do not have would fail on their first attempt.
|
|
71
|
+
|
|
72
|
+
Either way, read every proposal before writing: the derivation finds *candidates*, and
|
|
73
|
+
whether a repeated procedure deserves a playbook is a judgement it does not make.
|
|
74
|
+
|
|
75
|
+
## Scope of the derivation — and what "not covered" means
|
|
76
|
+
|
|
77
|
+
A playbook is **ecosystem-neutral**: a Python monorepo's `nox`/`invoke` sessions, a Go
|
|
78
|
+
repo's `make` targets, a Rust workspace's `just` recipes and a PHP repo's console commands
|
|
79
|
+
are all repeated procedures a playbook can encode, and the artefact class does not care
|
|
80
|
+
which. What varies is whether a *deterministic* reader can resolve an invoked id **without
|
|
81
|
+
running a consumer binary** — the constraint that decides this release's set, per
|
|
82
|
+
[ADR-244](../../../docs/decisions/ADR-244-playbook-is-a-sixth-context-type.md).
|
|
83
|
+
|
|
84
|
+
| Declared where | Resolvable without a binary? |
|
|
85
|
+
|---|---|
|
|
86
|
+
| a Node manifest's script map (root and each workspace) | yes — read from the manifest |
|
|
87
|
+
| Turborepo task declarations | yes — read from the task file |
|
|
88
|
+
| Turborepo generator templates, by the **registered name** rather than the filename | yes — read from the config |
|
|
89
|
+
| Nx generators | **no** — the list comes from `nx list` |
|
|
90
|
+
| Plop generators | **no** — the list comes from `plop --help` |
|
|
91
|
+
| Make / just / nox / invoke / console targets in other ecosystems | **not yet read** — no reader written; the artefact class covers them |
|
|
92
|
+
|
|
93
|
+
The `no` rows are a decision, not an omission: their discovery requires running a binary the
|
|
94
|
+
consumer owns, and the Phase-3 staleness check must run without one. A repo carrying either
|
|
95
|
+
is **reported** on stdout, so its maintainer sees the gap rather than receiving a silently
|
|
96
|
+
partial set. The last row is honest scope: nothing reads those yet, and a playbook for them
|
|
97
|
+
is written by hand against this skill's grading rules.
|
|
98
|
+
|
|
99
|
+
## The wrapper trap — the one that silently rots
|
|
100
|
+
|
|
101
|
+
A script like `"new:component": "turbo gen component"` is a **pointer**, not a procedure. A
|
|
102
|
+
playbook that invoked `new:component` would keep passing the staleness check after the
|
|
103
|
+
generator is renamed, because the script still exists — the exact drift Phase 3 gates.
|
|
104
|
+
The derivation therefore unwraps a thin wrapper and records what it points at, and the
|
|
105
|
+
`source_of_truth` line on each step names where the id was resolved.
|
|
106
|
+
|
|
107
|
+
## Grading, in one sentence each
|
|
108
|
+
|
|
109
|
+
- **`configured`** — every step's id resolved to something in the tree, and each step cites
|
|
110
|
+
where. The reader may follow it without checking.
|
|
111
|
+
- **`observed`** — at least one id did **not** resolve. The steps are a hypothesis to
|
|
112
|
+
confirm, and the file says which id failed. Downgrading is the honest outcome; writing
|
|
113
|
+
the stronger claim and hoping is the failure this skill exists to prevent.
|
|
114
|
+
|
|
115
|
+
## Output format
|
|
116
|
+
|
|
117
|
+
1. One playbook per file in the playbook home, frontmatter first: `task`, `scope`, `grade`,
|
|
118
|
+
`invokes`.
|
|
119
|
+
2. Report the grade of every proposal in the reply, including the downgraded ones — a set
|
|
120
|
+
reported as "playbooks written" with the `observed` ones unmentioned reads stronger than
|
|
121
|
+
it is.
|
|
122
|
+
3. Name any out-of-scope kind the script reported (`nx`, `plop`) rather than dropping it.
|
|
123
|
+
4. State the count written and the count read — they must be the same number.
|
|
124
|
+
|
|
125
|
+
## Gotchas
|
|
126
|
+
|
|
127
|
+
- **The wrapper trap, and it is the common case.** `"new:component": "turbo gen component"`
|
|
128
|
+
is a pointer. A playbook invoking `new:component` survives the generator being renamed —
|
|
129
|
+
the script still exists — so the staleness check stays green over a broken procedure.
|
|
130
|
+
- **The filename is not the generator id.** A Turborepo generator config registers
|
|
131
|
+
`component` inside the file; reading the *filename* yields `turbo gen config`, which
|
|
132
|
+
nobody can run.
|
|
133
|
+
- **`observed` reads like a lesser `configured` and is not.** It means an id did not
|
|
134
|
+
resolve. Shipping it unread is shipping a procedure nobody verified.
|
|
135
|
+
- **A playbook per declared script grows the estate for nothing.** `build` and `test` are
|
|
136
|
+
one command each; the derivation deliberately proposes nothing for them.
|
|
137
|
+
|
|
138
|
+
## Do NOT
|
|
139
|
+
|
|
140
|
+
- Do NOT write `grade: configured` for an id you did not resolve in the tree.
|
|
141
|
+
- Do NOT invoke a wrapper script when it points at a generator — invoke the generator.
|
|
142
|
+
- Do NOT infer an Nx or Plop generator from a lockfile or a dependency, and do NOT hand a
|
|
143
|
+
Make / just / nox target a `configured` grade this release cannot resolve — report the
|
|
144
|
+
gap; that is the decision, not a shortfall to paper over.
|
|
145
|
+
- Do NOT write a playbook for a one-off, or for a procedure the repository does not
|
|
146
|
+
actually repeat.
|
|
147
|
+
- Do NOT `--write` a proposal set you have not read.
|
|
148
|
+
|
|
149
|
+
## When NOT to use this
|
|
150
|
+
|
|
151
|
+
- The repository has no generators, no task runner, and a handful of one-line scripts —
|
|
152
|
+
there is no repeated procedure to encode, and a playbook per npm script is a rename.
|
|
153
|
+
- The procedure is a **one-off**. A playbook is for something done repeatedly the same way.
|
|
154
|
+
- The question is *how should this be built in general* — that is the shipped skill's job,
|
|
155
|
+
and a playbook that answers it is a generic skill in the wrong directory.
|
|
156
|
+
|
|
157
|
+
## See also
|
|
158
|
+
|
|
159
|
+
- [ADR-244](../../../docs/decisions/ADR-244-playbook-is-a-sixth-context-type.md) — the artefact class, its grades, its home, and the two deferred kinds.
|
|
160
|
+
- [`standards-from-config`](../standards-from-config/SKILL.md) — the Class-A rule this applies to procedure rather than to style.
|
|
161
|
+
- [`context-document`](../context-document/SKILL.md) — the contexts machinery a playbook reuses as its sixth type.
|
|
162
|
+
- [`command-writing`](../command-writing/SKILL.md) — the numbered-step shape the body follows.
|
|
@@ -12,6 +12,9 @@ trust:
|
|
|
12
12
|
level: experimental
|
|
13
13
|
install:
|
|
14
14
|
removable: true
|
|
15
|
+
scope:
|
|
16
|
+
write: []
|
|
17
|
+
verification_reason: "execution declares no handler, so this skill runs nothing of its own — every write is the calling agent's, under the rules that govern it. No command can prove a scope the skill never executes."
|
|
15
18
|
execution:
|
|
16
19
|
type: manual
|
|
17
20
|
---
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
model_tier: inherit
|
|
3
3
|
name: prompt-optimizer
|
|
4
|
-
description: "
|
|
4
|
+
description: "When the user wants a prompt optimized for ChatGPT, Claude, Gemini, or another AI — 'make this prompt better', 'optimize for ChatGPT', 'rewrite my prompt' — even without saying 'optimize'."
|
|
5
5
|
domain: product
|
|
6
6
|
workspaces:
|
|
7
7
|
- agent-config-maintainer
|
|
@@ -3,6 +3,11 @@ model_tier: medium
|
|
|
3
3
|
name: quality-tools
|
|
4
4
|
description: "Use when PHPStan, Rector, or ECS output appears — \"phpstan says mixed\", type errors, \"fix code style\", \"run rector\" — even when Eloquent/Laravel/model code is also mentioned."
|
|
5
5
|
domain: quality
|
|
6
|
+
scope:
|
|
7
|
+
write:
|
|
8
|
+
- pattern: "**"
|
|
9
|
+
access: "write"
|
|
10
|
+
verification_reason: "the project's own formatters and fixers rewrite source in place, and WHICH paths is decided by the consumer's tool config rather than by this skill. A narrower glob would be a guess about a tree this package does not own."
|
|
6
11
|
execution:
|
|
7
12
|
type: assisted
|
|
8
13
|
handler: shell
|
|
@@ -12,6 +12,13 @@ trust:
|
|
|
12
12
|
install:
|
|
13
13
|
default: false
|
|
14
14
|
removable: true
|
|
15
|
+
scope:
|
|
16
|
+
write:
|
|
17
|
+
- pattern: "components/ui/**"
|
|
18
|
+
access: "create"
|
|
19
|
+
- pattern: "components.json"
|
|
20
|
+
access: "write"
|
|
21
|
+
verification_command: "npx shadcn@latest add <component> --dry-run"
|
|
15
22
|
execution:
|
|
16
23
|
type: assisted
|
|
17
24
|
handler: shell
|
|
@@ -164,6 +171,40 @@ registries / install-with-natural-language over MCP; configure per the
|
|
|
164
171
|
dependency. Decision note: **CLI path = default + universal; MCP path = opt-in
|
|
165
172
|
when the user has it configured; registry-JSON literacy underpins both.**
|
|
166
173
|
|
|
174
|
+
## Publish a registry — the library as a source others install from
|
|
175
|
+
|
|
176
|
+
The sections above **consume** a registry. This one **publishes** one: a component library in
|
|
177
|
+
this repository can expose its own components the same way, so a consumer installs them with
|
|
178
|
+
the tool they already use instead of copying files.
|
|
179
|
+
|
|
180
|
+
1. **Author `registry.json`** at the library root — the index — and one
|
|
181
|
+
`registry-item.json` per exposed component, each naming its files, its
|
|
182
|
+
`registryDependencies`, and its `cssVars` when it carries token requirements.
|
|
183
|
+
2. **Build** to `public/r` with the registry build command. **The installer gate applies
|
|
184
|
+
here exactly as it does to `add`**: propose it, run `--dry-run` first, and let the user
|
|
185
|
+
confirm. A build writes files, so nothing about it being "our own" registry lifts the
|
|
186
|
+
gate.
|
|
187
|
+
3. **The consumer adds a `registries` map entry** pointing at the published index; from then
|
|
188
|
+
on `@ns/item` resolves through it.
|
|
189
|
+
|
|
190
|
+
**Two registry item types are FORBIDDEN**, deprecated in v4: `registry:build` and
|
|
191
|
+
`registry:mcp`. Use **`registry:base`** and **`registry:font`** instead. Writing either
|
|
192
|
+
deprecated type produces an item the current CLI does not understand, and the failure surfaces
|
|
193
|
+
at the consumer rather than at authoring time.
|
|
194
|
+
|
|
195
|
+
**`dependencies` in a registry item never names `react` or `react-dom`.** They are peers of
|
|
196
|
+
the consuming app, and a registry item that installs its own copy reproduces the "invalid hook
|
|
197
|
+
call" failure one layer up — see
|
|
198
|
+
[`js-library-packaging`](../js-library-packaging/SKILL.md). `check_package_surface` enforces
|
|
199
|
+
this over a registry file.
|
|
200
|
+
|
|
201
|
+
> **Provenance.** The registry-publishing shape and the deprecated-type list come from an
|
|
202
|
+
> external plugin reference's component-CLI skill, read at a pinned revision. The source is
|
|
203
|
+
> deliberately not named here, per
|
|
204
|
+
> [`source-confidentiality`](../../rules/source-confidentiality.md): a shipped artifact does
|
|
205
|
+
> not carry derivation attribution to a named external project. The identifier and revision
|
|
206
|
+
> stay with the maintainer-side record.
|
|
207
|
+
|
|
167
208
|
## Procedure: render a shadcn/ui component for the design brief
|
|
168
209
|
|
|
169
210
|
### Step 0: Inspect
|
|
@@ -277,27 +318,17 @@ current state on the next polish round.
|
|
|
277
318
|
|
|
278
319
|
When `DESIGN.md` declares `## Taste Dials`, honour them: Variance → layout-family spread + asymmetry tolerance; Motion → animation budget + reduced-motion posture; Density → spacing scale + information-per-viewport. Absent → follow the design brief's inferred dials.
|
|
279
320
|
|
|
280
|
-
## Component workshop (Storybook) —
|
|
281
|
-
|
|
282
|
-
The
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
- **Story per reusable primitive, not per screen** — a story covers a component
|
|
292
|
-
and its states (default / loading / empty / error / dark), mirroring the
|
|
293
|
-
Step 3 state-coverage matrix. Screens are composed, not story-fied.
|
|
294
|
-
- **Reuse the token layer** — stories render under the same semantic tokens +
|
|
295
|
-
`.dark` class; never hardcode a preview theme (same token discipline as Step 2).
|
|
296
|
-
- **A11y in-workshop** — run the a11y addon so the isolation catches contrast /
|
|
297
|
-
role / focus issues before the component reaches a screen.
|
|
298
|
-
- Do NOT let stories drift from the component API — a story that props-drills
|
|
299
|
-
values the component no longer accepts is stale documentation; keep them beside
|
|
300
|
-
the component and update them in the same change.
|
|
321
|
+
## Component workshop (Storybook) — pointer
|
|
322
|
+
|
|
323
|
+
The workshop discipline (one concept per story, `@summary` on every export, stories run as
|
|
324
|
+
tests, the `!manifest` tag, the opt-in MCP channel) lives in
|
|
325
|
+
[`storybook-workshop`](../storybook-workshop/SKILL.md). It is stack-agnostic and was lifted
|
|
326
|
+
out of here rather than duplicated beside it.
|
|
327
|
+
|
|
328
|
+
What stays React-specific and therefore stays here: the state-coverage matrix in Step 3 that
|
|
329
|
+
the story set is derived from, the token discipline of Step 2 that stories render under, and
|
|
330
|
+
the `(rule, selector, severity)` a11y shape in § Review pass that the workshop's validate
|
|
331
|
+
step writes into.
|
|
301
332
|
|
|
302
333
|
## Security constraints
|
|
303
334
|
|
|
@@ -3,6 +3,9 @@ model_tier: high
|
|
|
3
3
|
name: readme-reviewer
|
|
4
4
|
description: "Use when reviewing a README for accuracy, usability, and alignment with the actual repository. Detects invented content, broken setup steps, and structural issues."
|
|
5
5
|
domain: quality
|
|
6
|
+
scope:
|
|
7
|
+
write: []
|
|
8
|
+
verification_reason: "execution.handler is internal, so this skill spawns no subprocess — writes happen through the agent's declared allowed_tools. No command can prove a scope the skill never executes."
|
|
6
9
|
execution:
|
|
7
10
|
type: assisted
|
|
8
11
|
handler: internal
|
|
@@ -3,6 +3,9 @@ model_tier: medium
|
|
|
3
3
|
name: readme-writing
|
|
4
4
|
description: "Use when creating, rewriting, or significantly improving a README based on the actual repository structure, commands, and intended audience."
|
|
5
5
|
domain: process
|
|
6
|
+
scope:
|
|
7
|
+
write: []
|
|
8
|
+
verification_reason: "execution.handler is internal, so this skill spawns no subprocess — writes happen through the agent's declared allowed_tools. No command can prove a scope the skill never executes."
|
|
6
9
|
execution:
|
|
7
10
|
type: assisted
|
|
8
11
|
handler: internal
|
|
@@ -3,6 +3,9 @@ model_tier: medium
|
|
|
3
3
|
name: readme-writing-package
|
|
4
4
|
description: "Use when creating or rewriting a README for a reusable package or library. Focus on installability, minimal usage example, compatibility, and developer onboarding."
|
|
5
5
|
domain: process
|
|
6
|
+
scope:
|
|
7
|
+
write: []
|
|
8
|
+
verification_reason: "execution.handler is internal, so this skill spawns no subprocess — writes happen through the agent's declared allowed_tools. No command can prove a scope the skill never executes."
|
|
6
9
|
execution:
|
|
7
10
|
type: assisted
|
|
8
11
|
handler: internal
|