@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.
Files changed (667) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/CHANGELOG.md +161 -208
  5. package/README.md +1 -1
  6. package/dist/agent-src/commands/design.md +88 -0
  7. package/dist/agent-src/commands/project/analyze.md +47 -0
  8. package/dist/agent-src/commands/review/changes.md +67 -6
  9. package/dist/agent-src/commands/roadmap/create.md +49 -0
  10. package/dist/agent-src/commands/roadmap/next.md +27 -11
  11. package/dist/agent-src/commands/roadmap/process-full.md +14 -0
  12. package/dist/agent-src/commands/video/from-script.md +60 -3
  13. package/dist/agent-src/commands/video/stitch.md +14 -0
  14. package/dist/agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -0
  15. package/dist/agent-src/contexts/execution/evidence-discipline.md +26 -0
  16. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +154 -2
  17. package/dist/agent-src/rules/active-remediation.md +3 -3
  18. package/dist/agent-src/rules/code-provenance.md +2 -2
  19. package/dist/agent-src/rules/context-hygiene.md +13 -33
  20. package/dist/agent-src/rules/council-availability.md +2 -2
  21. package/dist/agent-src/rules/decision-revisit-gate.md +3 -1
  22. package/dist/agent-src/rules/design-fidelity.md +18 -0
  23. package/dist/agent-src/rules/design-review-after-ui-write.md +2 -2
  24. package/dist/agent-src/rules/evaluator-independence.md +56 -44
  25. package/dist/agent-src/rules/fix-what-you-see.md +9 -1
  26. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  27. package/dist/agent-src/rules/minimal-safe-diff.md +14 -20
  28. package/dist/agent-src/rules/missing-skill-recovery.md +13 -1
  29. package/dist/agent-src/rules/playbook-precedence.md +105 -0
  30. package/dist/agent-src/rules/recurring-criticism.md +3 -1
  31. package/dist/agent-src/rules/roadmap-progress-sync.md +14 -13
  32. package/dist/agent-src/rules/scale-discipline.md +24 -0
  33. package/dist/agent-src/rules/security-sensitive-stop.md +2 -2
  34. package/dist/agent-src/rules/settings-ask-protocol.md +2 -2
  35. package/dist/agent-src/rules/ui-audit-gate.md +27 -15
  36. package/dist/agent-src/rules/untrusted-input-defense.md +2 -2
  37. package/dist/agent-src/skills/accessibility-auditor/SKILL.md +19 -0
  38. package/dist/agent-src/skills/adr-create/SKILL.md +7 -0
  39. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +33 -0
  40. package/dist/agent-src/skills/ai-council/references/advanced-modes.md +17 -3
  41. package/dist/agent-src/skills/ai-council/references/output-and-synthesis.md +31 -0
  42. package/dist/agent-src/skills/ai-council/references/procedure.md +19 -0
  43. package/dist/agent-src/skills/alerting-doctrine/SKILL.md +225 -0
  44. package/dist/agent-src/skills/authz-review/SKILL.md +0 -1
  45. package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +32 -0
  46. package/dist/agent-src/skills/brand/SKILL.md +3 -0
  47. package/dist/agent-src/skills/brand-asset-generation/SKILL.md +3 -0
  48. package/dist/agent-src/skills/brand-audit/SKILL.md +3 -0
  49. package/dist/agent-src/skills/brand-identity/SKILL.md +3 -0
  50. package/dist/agent-src/skills/brand-strategy/SKILL.md +3 -0
  51. package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -0
  52. package/dist/agent-src/skills/check-refs/SKILL.md +3 -0
  53. package/dist/agent-src/skills/code-refactoring/SKILL.md +45 -1
  54. package/dist/agent-src/skills/code-review/SKILL.md +75 -5
  55. package/dist/agent-src/skills/command-routing/SKILL.md +6 -0
  56. package/dist/agent-src/skills/command-writing/SKILL.md +35 -0
  57. package/dist/agent-src/skills/condense-memory/SKILL.md +3 -0
  58. package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
  59. package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +3 -0
  60. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +10 -0
  61. package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -0
  62. package/dist/agent-src/skills/design-intelligence/SKILL.md +3 -0
  63. package/dist/agent-src/skills/design-intelligence/data/landing.csv +36 -35
  64. package/dist/agent-src/skills/design-intelligence/data/stacks/threejs.csv +1 -0
  65. package/dist/agent-src/skills/design-review/SKILL.md +79 -1
  66. package/dist/agent-src/skills/design-review/references/verification-automation.md +41 -0
  67. package/dist/agent-src/skills/design-system-capture/SKILL.md +35 -40
  68. package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +50 -0
  69. package/dist/agent-src/skills/design-tokens/SKILL.md +3 -0
  70. package/dist/agent-src/skills/design-variations/SKILL.md +3 -0
  71. package/dist/agent-src/skills/developer-like-execution/SKILL.md +3 -0
  72. package/dist/agent-src/skills/estimate-ticket/SKILL.md +3 -0
  73. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +28 -4
  74. package/dist/agent-src/skills/fe-design/SKILL.md +74 -41
  75. package/dist/agent-src/skills/fe-design/references/craft-floor.md +52 -0
  76. package/dist/agent-src/skills/fe-design/references/source-led-port.md +36 -0
  77. package/dist/agent-src/skills/file-editor/SKILL.md +5 -0
  78. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
  79. package/dist/agent-src/skills/git-workflow/SKILL.md +3 -0
  80. package/dist/agent-src/skills/html-deck/SKILL.md +3 -0
  81. package/dist/agent-src/skills/iconography/SKILL.md +3 -0
  82. package/dist/agent-src/skills/image-editing/SKILL.md +3 -0
  83. package/dist/agent-src/skills/image-generation/SKILL.md +3 -0
  84. package/dist/agent-src/skills/image-provider-routing/SKILL.md +3 -0
  85. package/dist/agent-src/skills/incident-commander/SKILL.md +10 -0
  86. package/dist/agent-src/skills/js-library-packaging/SKILL.md +173 -0
  87. package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.ts +270 -0
  88. package/dist/agent-src/skills/laravel-migration/SKILL.md +3 -0
  89. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +3 -0
  90. package/dist/agent-src/skills/lint-skills/SKILL.md +3 -0
  91. package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +3 -0
  92. package/dist/agent-src/skills/logging-monitoring/SKILL.md +234 -51
  93. package/dist/agent-src/skills/logo-generation/SKILL.md +3 -0
  94. package/dist/agent-src/skills/md-language-check/SKILL.md +3 -0
  95. package/dist/agent-src/skills/monorepo-workspace/SKILL.md +149 -0
  96. package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -0
  97. package/dist/agent-src/skills/multi-tenancy/SKILL.md +4 -0
  98. package/dist/agent-src/skills/operational-readiness/SKILL.md +184 -0
  99. package/dist/agent-src/skills/override-management/SKILL.md +3 -0
  100. package/dist/agent-src/skills/persona-improvement/SKILL.md +3 -0
  101. package/dist/agent-src/skills/pest-testing/SKILL.md +3 -0
  102. package/dist/agent-src/skills/playbook-authoring/SKILL.md +162 -0
  103. package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -0
  104. package/dist/agent-src/skills/privacy-review/SKILL.md +3 -0
  105. package/dist/agent-src/skills/project-analysis-core/SKILL.md +23 -0
  106. package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -0
  107. package/dist/agent-src/skills/quality-tools/SKILL.md +5 -0
  108. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +81 -33
  109. package/dist/agent-src/skills/readme-reviewer/SKILL.md +3 -0
  110. package/dist/agent-src/skills/readme-writing/SKILL.md +3 -0
  111. package/dist/agent-src/skills/readme-writing-package/SKILL.md +3 -0
  112. package/dist/agent-src/skills/receiving-code-review/SKILL.md +2 -2
  113. package/dist/agent-src/skills/refine-prompt/SKILL.md +3 -0
  114. package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -0
  115. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  116. package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
  117. package/dist/agent-src/skills/roadmap-writing/SKILL.md +23 -41
  118. package/dist/agent-src/skills/roadmap-writing/references/follow-up-roadmap-shape.md +47 -0
  119. package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +22 -6
  120. package/dist/agent-src/skills/runway-cognition/SKILL.md +3 -0
  121. package/dist/agent-src/skills/scene-expander/scene-blueprint.schema.yaml +26 -0
  122. package/dist/agent-src/skills/secrets-management/SKILL.md +4 -0
  123. package/dist/agent-src/skills/server-hardening/SKILL.md +159 -0
  124. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -0
  125. package/dist/agent-src/skills/skill-management/SKILL.md +3 -0
  126. package/dist/agent-src/skills/skill-reviewer/SKILL.md +3 -0
  127. package/dist/agent-src/skills/skill-writing/SKILL.md +6 -0
  128. package/dist/agent-src/skills/skill-writing/references/procedure.md +24 -2
  129. package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +3 -0
  130. package/dist/agent-src/skills/storybook-workshop/SKILL.md +203 -0
  131. package/dist/agent-src/skills/storybook-workshop/scripts/story_contrast_floor.ts +134 -0
  132. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  133. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +25 -0
  134. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +12 -0
  135. package/dist/agent-src/skills/systematic-debugging/SKILL.md +1 -1
  136. package/dist/agent-src/skills/terraform/SKILL.md +3 -0
  137. package/dist/agent-src/skills/test-driven-development/SKILL.md +1 -1
  138. package/dist/agent-src/skills/threat-modeling/SKILL.md +0 -3
  139. package/dist/agent-src/skills/token-optimizer/SKILL.md +3 -0
  140. package/dist/agent-src/skills/typography-system/SKILL.md +3 -0
  141. package/dist/agent-src/skills/ui-component-architect/SKILL.md +17 -1
  142. package/dist/agent-src/skills/upstream-contribute/SKILL.md +3 -0
  143. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -0
  144. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -2
  145. package/dist/agent-src/skills/wireframe/SKILL.md +3 -0
  146. package/dist/agent-src/skills/wireframe/references/story-beat-ledger.schema.json +115 -0
  147. package/dist/agent-src/skills/workspace-link/SKILL.md +131 -0
  148. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  149. package/dist/agent-src/templates/playbook.md +75 -0
  150. package/dist/agent-src/templates/roadmaps.md +37 -0
  151. package/dist/agent-src/templates/scripts/check_playbook_invokes.ts +231 -0
  152. package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +24 -0
  153. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -0
  154. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +216 -0
  155. package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +159 -0
  156. package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +73 -4
  157. package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +325 -40
  158. package/dist/cli/commands/uiAudit.js +221 -0
  159. package/dist/cli/commands/uiRender.js +206 -0
  160. package/dist/cli/main.js +22 -1
  161. package/dist/cli/mcp/content.js +64 -1
  162. package/dist/cli/mcp/dispatch.js +175 -10
  163. package/dist/cli/registry.js +3 -0
  164. package/dist/cli-delegate/{chunk-G23AT6GD.js → chunk-DMSZHXZS.js} +57 -1
  165. package/dist/cli-delegate/{chunk-77GR3VD4.js → chunk-FF7WAFMR.js} +58 -3
  166. package/dist/cli-delegate/{chunk-YM4GZDJG.js → chunk-JCW7ZLHK.js} +10 -0
  167. package/dist/cli-delegate/{chunk-H4VIVD4C.js → chunk-JJA2QEWA.js} +413 -391
  168. package/dist/cli-delegate/{chunk-PLSG6UL5.js → chunk-K4FFODTS.js} +341 -204
  169. package/dist/cli-delegate/{chunk-B2ERU2VA.js → chunk-WOKWX5PL.js} +1 -1
  170. package/dist/cli-delegate/cmd_brand_status.js +8 -6
  171. package/dist/cli-delegate/cmd_conformance.js +3 -3
  172. package/dist/cli-delegate/cmd_doctor.js +3 -3
  173. package/dist/cli-delegate/cmd_export.js +4 -4
  174. package/dist/cli-delegate/cmd_handoff.js +1 -1
  175. package/dist/cli-delegate/cmd_preflight.js +2 -2
  176. package/dist/cli-delegate/cmd_prune.js +4 -4
  177. package/dist/cli-delegate/cmd_session_recycle.js +70 -9
  178. package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
  179. package/dist/cli-delegate/cmd_settings_set.js +1 -1
  180. package/dist/cli-delegate/cmd_sync.js +4 -4
  181. package/dist/cli-delegate/cmd_uninstall.js +4 -4
  182. package/dist/cli-delegate/cmd_validate.js +4 -4
  183. package/dist/discovery/deprecation-report.md +1 -1
  184. package/dist/discovery/discovery-manifest.json +362 -127
  185. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  186. package/dist/discovery/discovery-manifest.summary.md +4 -4
  187. package/dist/discovery/dormancy-report.md +1 -1
  188. package/dist/discovery/orphan-report.md +1 -1
  189. package/dist/discovery/packs.json +18 -8
  190. package/dist/discovery/trust-report.md +3 -3
  191. package/dist/discovery/workspaces.json +16 -6
  192. package/dist/hooks/dispatch.js +2575 -1472
  193. package/dist/install/install.mjs +800 -708
  194. package/dist/mcp/registry-manifest.json +3 -3
  195. package/dist/mcp/server.json +2 -2
  196. package/dist/mcp/server.mjs +1685 -1250
  197. package/dist/router.json +1 -1
  198. package/dist/scripts/_lib/lean_projection_mode.js +40 -0
  199. package/dist/scripts/_lib/scoped_projection.js +84 -0
  200. package/dist/scripts/_lib/ui_surface.js +89 -0
  201. package/dist/scripts/condense.js +6 -10
  202. package/dist/scripts/project_thin_rules.js +40 -2
  203. package/dist/server/schemas/settings.js +6 -0
  204. package/dist/shared/skillRanking.js +159 -0
  205. package/docs/contracts/provider-lifecycle.md +47 -18
  206. package/docs/contracts/settings-classes.md +35 -5
  207. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +49 -0
  208. package/docs/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
  209. package/docs/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
  210. package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +45 -1
  211. package/docs/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
  212. package/docs/guidelines/code-clarity.md +21 -0
  213. package/docs/guidelines/design-antipatterns.md +4 -2
  214. package/docs/guidelines/design-asset-discipline.md +38 -0
  215. package/docs/guidelines/design-fidelity-mechanics.md +45 -29
  216. package/docs/guidelines/design-handover-extraction.md +35 -5
  217. package/docs/guidelines/design-modes.md +41 -1
  218. package/docs/guidelines/monorepo-antipatterns.md +141 -0
  219. package/docs/guidelines/redundancy-taxonomy.md +180 -0
  220. package/llms.txt +50 -39
  221. package/package.json +6 -2
  222. package/src/agent-src/templates/scripts/check_playbook_invokes.ts +231 -0
  223. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +24 -0
  224. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -0
  225. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +216 -0
  226. package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +159 -0
  227. package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +73 -4
  228. package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +325 -40
  229. package/src/config/agent-settings.template.yml +44 -0
  230. package/src/config/assurance-capability-registry.json +223 -0
  231. package/src/config/assurance-threshold-budget.json +65 -0
  232. package/src/config/budgets.yml +19 -0
  233. package/src/config/ci-local-parity.yml +29 -0
  234. package/src/config/discovery/prompt-patterns.yml +56 -0
  235. package/src/config/discovery/unassigned-artefacts.yml +2 -0
  236. package/src/config/dispatch-economy-metrics.json +4 -2
  237. package/src/config/estate-count-budget.json +8 -3
  238. package/src/config/evaluator-budgets.json +14 -14
  239. package/src/config/gate-coverage.yml +392 -8
  240. package/src/config/gate-violation-baselines.json +76 -72
  241. package/src/config/hook-latency-budget.json +1 -0
  242. package/src/config/hook-token-budget.json +137 -125
  243. package/src/config/pack-size-budget.json +39 -10
  244. package/src/config/preamble-payload-budget.json +97 -71
  245. package/src/config/quorum-attendance-budget.json +12 -4
  246. package/src/config/routing-coverage-seed.json +29 -0
  247. package/src/config/rule-activation-census.json +7 -3
  248. package/src/config/rule-enforcement-baseline.json +0 -1
  249. package/src/config/rule-stub-ceilings.json +112 -91
  250. package/src/config/suggestion-capture.json +28 -0
  251. package/src/config/surface-matrix.yml +21 -2
  252. package/src/config/web-launch-readiness.json +188 -0
  253. package/src/scripts/_cli/cmd_doctor.ts +15 -16
  254. package/src/scripts/_cli/doctor_install_mode.ts +49 -0
  255. package/src/scripts/_cli/doctor_overrides.ts +154 -0
  256. package/src/scripts/_dispatch.bash +17 -0
  257. package/src/scripts/_lib/as_of.ts +412 -0
  258. package/src/scripts/_lib/exec_evidence.ts +7 -0
  259. package/src/scripts/_lib/gate_baseline.ts +150 -1
  260. package/src/scripts/_lib/hook_settings.ts +33 -0
  261. package/src/scripts/_lib/host_listing_model.ts +192 -0
  262. package/src/scripts/_lib/lean_projection_mode.ts +44 -0
  263. package/src/scripts/_lib/mcp_bridge.ts +199 -0
  264. package/src/scripts/_lib/review_independence.ts +62 -10
  265. package/src/scripts/_lib/rule_injection.ts +239 -0
  266. package/src/scripts/_lib/run_checkpoint.ts +54 -1
  267. package/src/scripts/_lib/scoped_projection.ts +96 -0
  268. package/src/scripts/_lib/session_register.ts +44 -2
  269. package/src/scripts/_lib/skill_catalogue.ts +38 -2
  270. package/src/scripts/_lib/skill_estate.ts +115 -0
  271. package/src/scripts/_lib/transcript_reads.ts +207 -0
  272. package/src/scripts/_lib/ui_authority.ts +343 -0
  273. package/src/scripts/ai-video/adapters/fal.sh +8 -3
  274. package/src/scripts/ai-video/adapters/gemini-veo.sh +10 -0
  275. package/src/scripts/ai-video/adapters/higgsfield.sh +10 -2
  276. package/src/scripts/ai-video/adapters/kling.sh +10 -0
  277. package/src/scripts/ai-video/adapters/sora.sh +10 -0
  278. package/src/scripts/ai-video/lib/calibrate-cost.sh +145 -0
  279. package/src/scripts/ai-video/lib/model-capabilities/README.md +53 -7
  280. package/src/scripts/ai-video/lib/model-capabilities/comfyui.json +15 -3
  281. package/src/scripts/ai-video/lib/model-capabilities/fal.json +36 -6
  282. package/src/scripts/ai-video/lib/model-capabilities/gemini-veo.json +23 -0
  283. package/src/scripts/ai-video/lib/model-capabilities/higgsfield.json +23 -0
  284. package/src/scripts/ai-video/lib/model-capabilities/kling.json +23 -0
  285. package/src/scripts/ai-video/lib/model-capabilities/musetalk.json +8 -2
  286. package/src/scripts/ai-video/lib/model-capabilities/replicate.json +36 -6
  287. package/src/scripts/ai-video/lib/model-capabilities/sora.json +45 -0
  288. package/src/scripts/ai-video/lib/model-capabilities/syncso.json +8 -2
  289. package/src/scripts/ai-video/lib/parse-blueprint.sh +52 -5
  290. package/src/scripts/ai-video/lib/resume-scan.sh +92 -3
  291. package/src/scripts/ai-video/lib/seam-plan.sh +212 -0
  292. package/src/scripts/ai-video/smoke-trace.sh +450 -2
  293. package/src/scripts/ai-video/stitch.sh +191 -10
  294. package/src/scripts/ai-video/test-pipeline.sh +84 -6
  295. package/src/scripts/ai_council/argument_exhaustion.ts +130 -0
  296. package/src/scripts/ai_council/cli_agency_bounds.ts +139 -0
  297. package/src/scripts/ai_council/cli_least_agency_canary.ts +347 -0
  298. package/src/scripts/ai_council/clients.ts +3 -2
  299. package/src/scripts/ai_council/consensus.ts +63 -6
  300. package/src/scripts/ai_council/events_log.ts +46 -1
  301. package/src/scripts/ai_council/orchestrator.ts +103 -108
  302. package/src/scripts/ai_council/orchestrator_results.ts +166 -0
  303. package/src/scripts/ai_council/prompts.ts +12 -5
  304. package/src/scripts/ai_council/quorum.ts +82 -1
  305. package/src/scripts/ai_council/quorum_wiring.ts +82 -5
  306. package/src/scripts/ai_council/stance_tally.ts +22 -0
  307. package/src/scripts/bench_hook_latency.ts +62 -0
  308. package/src/scripts/build_proof.ts +12 -1
  309. package/src/scripts/capture_skill_catalogue.ts +21 -0
  310. package/src/scripts/check_always_budget.ts +2 -1
  311. package/src/scripts/check_augmentignore.ts +2 -1
  312. package/src/scripts/check_beta_review_markers.ts +2 -1
  313. package/src/scripts/check_bundle_path_leakage.ts +162 -7
  314. package/src/scripts/check_command_examples.ts +557 -0
  315. package/src/scripts/check_composite_arming.ts +364 -0
  316. package/src/scripts/check_corpus_staleness.ts +2 -1
  317. package/src/scripts/check_council_pin_staleness.ts +3 -1
  318. package/src/scripts/check_enforcement_coverage.ts +116 -3
  319. package/src/scripts/check_enforcement_denominator.ts +365 -0
  320. package/src/scripts/check_estate_count.ts +122 -3
  321. package/src/scripts/check_gate_coverage.ts +2 -1
  322. package/src/scripts/check_hook_bundle_freshness.ts +13 -1
  323. package/src/scripts/check_knowledge_cards.ts +2 -1
  324. package/src/scripts/check_knowledge_pages.ts +3 -2
  325. package/src/scripts/check_memory.ts +2 -1
  326. package/src/scripts/check_no_automerge_key.ts +287 -0
  327. package/src/scripts/check_pack_conformance_fixture.ts +565 -0
  328. package/src/scripts/check_preamble_payload_budget.ts +30 -3
  329. package/src/scripts/check_proposal.ts +2 -1
  330. package/src/scripts/check_reach_staleness.ts +2 -1
  331. package/src/scripts/check_release_adjacent_health.ts +2 -1
  332. package/src/scripts/check_release_pr_shape.ts +5 -0
  333. package/src/scripts/check_review_schema.ts +34 -1
  334. package/src/scripts/check_roadmap_trackable.ts +48 -3
  335. package/src/scripts/check_routing_coverage.ts +352 -0
  336. package/src/scripts/check_score_contract.ts +505 -0
  337. package/src/scripts/check_skill_admissions.ts +514 -0
  338. package/src/scripts/check_source_size_budget.ts +2 -1
  339. package/src/scripts/check_standing_payload_delta.ts +505 -0
  340. package/src/scripts/check_trigger_evals.ts +2 -1
  341. package/src/scripts/check_web_launch_readiness.ts +705 -0
  342. package/src/scripts/classify_change_risk.ts +281 -0
  343. package/src/scripts/compute_skill_tiers.ts +186 -0
  344. package/src/scripts/condense.ts +8 -13
  345. package/src/scripts/council_attendance_metrics.ts +183 -0
  346. package/src/scripts/council_cli.ts +10 -8
  347. package/src/scripts/council_parse_rate.ts +116 -0
  348. package/src/scripts/derive_playbooks.ts +406 -0
  349. package/src/scripts/description_route_check.ts +494 -0
  350. package/src/scripts/design_slop_rules.ts +56 -2
  351. package/src/scripts/dispatch_r2_reviewer.ts +16 -0
  352. package/src/scripts/frontend_corpus_hash.ts +116 -0
  353. package/src/scripts/grade_target_readiness.ts +478 -0
  354. package/src/scripts/hook_manifest.json +1 -1
  355. package/src/scripts/hook_manifest.yaml +124 -16
  356. package/src/scripts/hooks/concern_registry.ts +6 -0
  357. package/src/scripts/hooks/design_pass_hook.ts +356 -0
  358. package/src/scripts/hooks/rtk_wrap_hook.ts +30 -7
  359. package/src/scripts/hooks/rule_inject_hook.ts +318 -0
  360. package/src/scripts/hooks/suggestion_capture_hook.ts +368 -0
  361. package/src/scripts/hot_context_hook.ts +74 -7
  362. package/src/scripts/install.ts +40 -89
  363. package/src/scripts/lint_adapter_tier.ts +663 -0
  364. package/src/scripts/lint_archived_skills.ts +93 -0
  365. package/src/scripts/lint_budget_ownership.ts +56 -5
  366. package/src/scripts/lint_deterministic_time.ts +470 -0
  367. package/src/scripts/lint_framework_leakage.ts +5 -0
  368. package/src/scripts/lint_handoffs.ts +525 -1
  369. package/src/scripts/lint_judge_prompt_expectation.ts +155 -0
  370. package/src/scripts/lint_marketplace.ts +88 -0
  371. package/src/scripts/lint_media_policy_linkage.ts +140 -1
  372. package/src/scripts/lint_one_off_age.ts +6 -1
  373. package/src/scripts/lint_override_kernel_guard.ts +87 -5
  374. package/src/scripts/lint_roadmap_complexity.ts +56 -0
  375. package/src/scripts/lint_rule_enforcement_declaration.ts +24 -7
  376. package/src/scripts/lint_rule_norm_pin.ts +321 -0
  377. package/src/scripts/lint_skill_trigger_corpus.ts +349 -0
  378. package/src/scripts/lint_spawn_payload.ts +42 -5
  379. package/src/scripts/lint_symptom_intake.ts +2 -1
  380. package/src/scripts/mcp_parity_smoke.ts +30 -4
  381. package/src/scripts/mcp_render.ts +66 -1
  382. package/src/scripts/mcp_tool_fingerprint.ts +241 -0
  383. package/src/scripts/measure_risk_class_drift.ts +140 -0
  384. package/src/scripts/measure_skill_ranker_baseline.ts +212 -0
  385. package/src/scripts/media/lib/adapter-common.sh +211 -1
  386. package/src/scripts/media/lib/adapter-contract.md +74 -6
  387. package/src/scripts/model_rule_injection.ts +907 -0
  388. package/src/scripts/pack_install_smoke.ts +363 -0
  389. package/src/scripts/pr_conflict_census.ts +187 -0
  390. package/src/scripts/project_thin_rules.ts +45 -2
  391. package/src/scripts/release.ts +66 -860
  392. package/src/scripts/release_drill.ts +59 -3
  393. package/src/scripts/release_env.ts +298 -0
  394. package/src/scripts/release_publication.ts +720 -0
  395. package/src/scripts/report_pack_delta.ts +204 -0
  396. package/src/scripts/roadmap_context.ts +778 -0
  397. package/src/scripts/schemas/fidelity-measurement-sheet.schema.json +169 -0
  398. package/src/scripts/schemas/rule.schema.json +24 -2
  399. package/src/scripts/schemas/skill.schema.json +39 -0
  400. package/src/scripts/schemas/ui-authority.schema.json +114 -0
  401. package/src/scripts/select_analysis_mode.ts +112 -0
  402. package/src/scripts/session_register_hook.ts +29 -3
  403. package/src/scripts/sessions_cli.ts +67 -3
  404. package/src/scripts/skill_tools/score_skill_relevance.ts +36 -53
  405. package/src/scripts/sync_pr_branch.ts +40 -1
  406. package/src/scripts/token_sink_report.ts +239 -0
  407. package/src/scripts/trigger_coverage.ts +122 -3
  408. package/src/scripts/update_counts.ts +7 -3
  409. package/src/scripts/validate_frontmatter.ts +66 -0
  410. package/src/server/schemas/settings.ts +10 -0
  411. package/src/shared/skillRanking.ts +183 -0
  412. package/dist/agent-src/skills/accessibility-auditor/evals/evals.json +0 -15
  413. package/dist/agent-src/skills/agent-security-review/evals/triggers.json +0 -52
  414. package/dist/agent-src/skills/ai-code-blindspots/evals/triggers.json +0 -52
  415. package/dist/agent-src/skills/analysis-skill-router/evals/evals.json +0 -13
  416. package/dist/agent-src/skills/brand/evals/triggers.json +0 -17
  417. package/dist/agent-src/skills/brand-asset-generation/evals/triggers.json +0 -17
  418. package/dist/agent-src/skills/brand-audit/evals/triggers.json +0 -17
  419. package/dist/agent-src/skills/brand-identity/evals/triggers.json +0 -17
  420. package/dist/agent-src/skills/brand-strategy/evals/triggers.json +0 -17
  421. package/dist/agent-src/skills/brand-to-tokens/evals/triggers.json +0 -17
  422. package/dist/agent-src/skills/bug-analyzer/evals/evals.json +0 -13
  423. package/dist/agent-src/skills/canvas-design/evals/triggers.json +0 -17
  424. package/dist/agent-src/skills/character-consistency/evals/evals.json +0 -16
  425. package/dist/agent-src/skills/code-intelligence/evals/triggers.json +0 -52
  426. package/dist/agent-src/skills/code-review/evals/evals.json +0 -100
  427. package/dist/agent-src/skills/command-routing/evals/evals.json +0 -14
  428. package/dist/agent-src/skills/complexity-first-planning/evals/triggers.json +0 -17
  429. package/dist/agent-src/skills/contract-review/evals/triggers.json +0 -17
  430. package/dist/agent-src/skills/conventional-commits-writing/evals/evals.json +0 -15
  431. package/dist/agent-src/skills/corpus-grounding/evals/triggers.json +0 -17
  432. package/dist/agent-src/skills/dashboard-design/evals/evals.json +0 -16
  433. package/dist/agent-src/skills/dcf-modeling/evals/domain-truth.json +0 -29
  434. package/dist/agent-src/skills/dcf-modeling/evals/evals.json +0 -20
  435. package/dist/agent-src/skills/decision-record/evals/evals.json +0 -20
  436. package/dist/agent-src/skills/decision-record/evals/triggers.json +0 -87
  437. package/dist/agent-src/skills/design-intelligence/evals/evals.json +0 -14
  438. package/dist/agent-src/skills/design-intelligence/evals/triggers.json +0 -17
  439. package/dist/agent-src/skills/design-system-capture/evals/evals.json +0 -15
  440. package/dist/agent-src/skills/design-tokens/evals/triggers.json +0 -17
  441. package/dist/agent-src/skills/design-variations/evals/triggers.json +0 -17
  442. package/dist/agent-src/skills/developer-like-execution/evals/evals.json +0 -16
  443. package/dist/agent-src/skills/doc-coauthoring/evals/evals.json +0 -16
  444. package/dist/agent-src/skills/doc-coauthoring/evals/triggers.json +0 -17
  445. package/dist/agent-src/skills/docx-authoring/evals/triggers.json +0 -52
  446. package/dist/agent-src/skills/dpa-review/evals/triggers.json +0 -17
  447. package/dist/agent-src/skills/editorial-calendar/evals/domain-truth.json +0 -16
  448. package/dist/agent-src/skills/editorial-calendar/evals/evals.json +0 -16
  449. package/dist/agent-src/skills/eloquent/evals/triggers.json +0 -17
  450. package/dist/agent-src/skills/estimate-ticket/evals/evals.json +0 -16
  451. package/dist/agent-src/skills/estimate-ticket/evals/output-schema.yml +0 -20
  452. package/dist/agent-src/skills/estimate-ticket/evals/triggers.json +0 -19
  453. package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +0 -52
  454. package/dist/agent-src/skills/existing-ui-audit/evals/triggers.json +0 -47
  455. package/dist/agent-src/skills/experiment-loop/evals/output-schema.yml +0 -27
  456. package/dist/agent-src/skills/experiment-loop/evals/triggers.json +0 -17
  457. package/dist/agent-src/skills/fe-design/evals/triggers.json +0 -55
  458. package/dist/agent-src/skills/forecasting/evals/domain-truth.json +0 -29
  459. package/dist/agent-src/skills/forecasting/evals/evals.json +0 -20
  460. package/dist/agent-src/skills/forensics-report/evals/triggers.json +0 -17
  461. package/dist/agent-src/skills/frontend-render-security/evals/triggers.json +0 -52
  462. package/dist/agent-src/skills/fundraising-narrative/evals/domain-truth.json +0 -16
  463. package/dist/agent-src/skills/fundraising-narrative/evals/evals.json +0 -16
  464. package/dist/agent-src/skills/gated-reach/evals/triggers.json +0 -72
  465. package/dist/agent-src/skills/github-ci/evals/evals.json +0 -25
  466. package/dist/agent-src/skills/history-design/evals/triggers.json +0 -17
  467. package/dist/agent-src/skills/html-deck/evals/triggers.json +0 -17
  468. package/dist/agent-src/skills/humanizer/evals/strip_fixtures.json +0 -57
  469. package/dist/agent-src/skills/humanizer/evals/triggers.json +0 -17
  470. package/dist/agent-src/skills/iconography/evals/triggers.json +0 -17
  471. package/dist/agent-src/skills/image-analyser/evals/triggers.json +0 -17
  472. package/dist/agent-src/skills/image-creator/evals/triggers.json +0 -17
  473. package/dist/agent-src/skills/image-editing/evals/triggers.json +0 -17
  474. package/dist/agent-src/skills/image-generation/evals/triggers.json +0 -17
  475. package/dist/agent-src/skills/image-provider-routing/evals/triggers.json +0 -17
  476. package/dist/agent-src/skills/incident-commander/evals/domain-truth.json +0 -16
  477. package/dist/agent-src/skills/incident-commander/evals/evals.json +0 -20
  478. package/dist/agent-src/skills/judge-artifact-completeness/evals/triggers.json +0 -17
  479. package/dist/agent-src/skills/judge-injection-defense/evals/triggers.json +0 -17
  480. package/dist/agent-src/skills/judge-synthesis/evals/triggers.json +0 -17
  481. package/dist/agent-src/skills/launch-readiness/evals/evals.json +0 -21
  482. package/dist/agent-src/skills/learning-tutor/evals/triggers.json +0 -52
  483. package/dist/agent-src/skills/legal-intake-triage/evals/triggers.json +0 -17
  484. package/dist/agent-src/skills/legal-practice-profile/evals/triggers.json +0 -17
  485. package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +0 -52
  486. package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +0 -52
  487. package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +0 -52
  488. package/dist/agent-src/skills/llm-provider-knowledge/evals/triggers.json +0 -20
  489. package/dist/agent-src/skills/logging-monitoring/evals/evals.json +0 -16
  490. package/dist/agent-src/skills/logo-generation/evals/triggers.json +0 -17
  491. package/dist/agent-src/skills/messaging-architecture/evals/domain-truth.json +0 -16
  492. package/dist/agent-src/skills/messaging-architecture/evals/evals.json +0 -16
  493. package/dist/agent-src/skills/nda-triage/evals/triggers.json +0 -17
  494. package/dist/agent-src/skills/pdf-tools/evals/triggers.json +0 -52
  495. package/dist/agent-src/skills/perf-feedback-craft/evals/evals.json +0 -16
  496. package/dist/agent-src/skills/persona-improvement/evals/triggers.json +0 -52
  497. package/dist/agent-src/skills/php-coder/evals/triggers.json +0 -17
  498. package/dist/agent-src/skills/prediction-pool-optimizer/evals/triggers.json +0 -21
  499. package/dist/agent-src/skills/prompt-engineering-image/evals/triggers.json +0 -17
  500. package/dist/agent-src/skills/prompt-engineering-patterns/evals/evals.json +0 -16
  501. package/dist/agent-src/skills/prompt-validator/evals/triggers.json +0 -17
  502. package/dist/agent-src/skills/quality-tools/evals/evals.json +0 -15
  503. package/dist/agent-src/skills/reasoning-orchestrator/evals/triggers.json +0 -17
  504. package/dist/agent-src/skills/refine-prompt/evals/evals.json +0 -16
  505. package/dist/agent-src/skills/refine-ticket/evals/evals.json +0 -16
  506. package/dist/agent-src/skills/refine-ticket/evals/output-schema.yml +0 -16
  507. package/dist/agent-src/skills/refine-ticket/evals/triggers.json +0 -17
  508. package/dist/agent-src/skills/release-comms/evals/evals.json +0 -16
  509. package/dist/agent-src/skills/rice-prioritization/evals/evals.json +0 -20
  510. package/dist/agent-src/skills/runway-cognition/evals/domain-truth.json +0 -29
  511. package/dist/agent-src/skills/runway-cognition/evals/evals.json +0 -20
  512. package/dist/agent-src/skills/scenario-modeling/evals/domain-truth.json +0 -29
  513. package/dist/agent-src/skills/scenario-modeling/evals/evals.json +0 -20
  514. package/dist/agent-src/skills/schema-review/evals/triggers.json +0 -17
  515. package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +0 -52
  516. package/dist/agent-src/skills/security-maturity-assessment/evals/triggers.json +0 -52
  517. package/dist/agent-src/skills/skill-writing/evals/triggers.json +0 -17
  518. package/dist/agent-src/skills/spreadsheet-authoring/evals/triggers.json +0 -47
  519. package/dist/agent-src/skills/subagent-orchestration/evals/evals.json +0 -60
  520. package/dist/agent-src/skills/supply-chain-intake/evals/triggers.json +0 -52
  521. package/dist/agent-src/skills/systematic-debugging/evals/evals.json +0 -20
  522. package/dist/agent-src/skills/test-case-discovery/evals/triggers.json +0 -52
  523. package/dist/agent-src/skills/test-driven-development/evals/evals.json +0 -16
  524. package/dist/agent-src/skills/threat-modeling/evals/evals.json +0 -21
  525. package/dist/agent-src/skills/typography-system/evals/evals.json +0 -14
  526. package/dist/agent-src/skills/typography-system/evals/triggers.json +0 -17
  527. package/dist/agent-src/skills/unit-economics-modeling/evals/domain-truth.json +0 -40
  528. package/dist/agent-src/skills/unit-economics-modeling/evals/evals.json +0 -24
  529. package/dist/agent-src/skills/verify-completion-evidence/evals/evals.json +0 -16
  530. package/dist/agent-src/skills/verify-repair-loop/evals/output-schema.yml +0 -20
  531. package/dist/agent-src/skills/verify-repair-loop/evals/triggers.json +0 -17
  532. package/dist/agent-src/skills/vision-articulation/evals/evals.json +0 -16
  533. package/dist/agent-src/skills/voice-and-tone-design/evals/evals.json +0 -16
  534. package/dist/agent-src/skills/wireframe/evals/triggers.json +0 -17
  535. package/dist/agent-src/skills/worktree-lifecycle/evals/evals.json +0 -38
  536. package/dist/agent-src/skills/worktree-lifecycle/evals/triggers.json +0 -52
  537. package/dist/cli/agent-config.js.map +0 -1
  538. package/dist/cli/bash/runBash.js.map +0 -1
  539. package/dist/cli/commands/commands.js.map +0 -1
  540. package/dist/cli/commands/config.js.map +0 -1
  541. package/dist/cli/commands/doctorShell.js.map +0 -1
  542. package/dist/cli/commands/mcpServer.js.map +0 -1
  543. package/dist/cli/commands/packs.js.map +0 -1
  544. package/dist/cli/commands/profiles.js.map +0 -1
  545. package/dist/cli/commands/recordTriggerEval.js.map +0 -1
  546. package/dist/cli/commands/rtkDetect.js.map +0 -1
  547. package/dist/cli/commands/settings.js.map +0 -1
  548. package/dist/cli/commands/uiServe.js.map +0 -1
  549. package/dist/cli/commands/versions.js.map +0 -1
  550. package/dist/cli/commands/workspaces.js.map +0 -1
  551. package/dist/cli/configRoot.js.map +0 -1
  552. package/dist/cli/discovery/loadManifest.js.map +0 -1
  553. package/dist/cli/firstRunNotice.js.map +0 -1
  554. package/dist/cli/help.js.map +0 -1
  555. package/dist/cli/initRouting.js.map +0 -1
  556. package/dist/cli/log/logger.js.map +0 -1
  557. package/dist/cli/main.js.map +0 -1
  558. package/dist/cli/mcp/content.js.map +0 -1
  559. package/dist/cli/mcp/dispatch.js.map +0 -1
  560. package/dist/cli/mcp/stdio.js.map +0 -1
  561. package/dist/cli/paths.js.map +0 -1
  562. package/dist/cli/python/knowledge_ingest.js.map +0 -1
  563. package/dist/cli/python/workspace_analytics.js.map +0 -1
  564. package/dist/cli/python/workspace_crypto.js.map +0 -1
  565. package/dist/cli/python/workspace_documents.js.map +0 -1
  566. package/dist/cli/python/workspace_drive.js.map +0 -1
  567. package/dist/cli/python/workspace_drive_health.js.map +0 -1
  568. package/dist/cli/python/workspace_explain.js.map +0 -1
  569. package/dist/cli/python/workspace_hosts.js.map +0 -1
  570. package/dist/cli/python/workspace_inbox.js.map +0 -1
  571. package/dist/cli/python/workspace_render.js.map +0 -1
  572. package/dist/cli/python/workspace_roles.js.map +0 -1
  573. package/dist/cli/python/workspace_secrets.js.map +0 -1
  574. package/dist/cli/python/workspace_sessions.js.map +0 -1
  575. package/dist/cli/python/workspace_skills.js.map +0 -1
  576. package/dist/cli/registry.js.map +0 -1
  577. package/dist/install/agentSwitchDetection.js.map +0 -1
  578. package/dist/install/agentSwitchProfile.js.map +0 -1
  579. package/dist/install/atomic.js.map +0 -1
  580. package/dist/install/claudePathsPlan.js.map +0 -1
  581. package/dist/install/conflict.js.map +0 -1
  582. package/dist/install/detect.js.map +0 -1
  583. package/dist/install/emit_host_rules_cli.js.map +0 -1
  584. package/dist/install/globalRuleLayers.js.map +0 -1
  585. package/dist/install/hostLayerFingerprint.js.map +0 -1
  586. package/dist/install/partitionEligibility.js.map +0 -1
  587. package/dist/install/paths.js.map +0 -1
  588. package/dist/install/plan.js.map +0 -1
  589. package/dist/install/preflight.js.map +0 -1
  590. package/dist/install/rtkDetection.js.map +0 -1
  591. package/dist/install/ruleInScope.js.map +0 -1
  592. package/dist/install/ruleLayerPartition.js.map +0 -1
  593. package/dist/install/rule_scope.js.map +0 -1
  594. package/dist/install/rule_scope_cli.js.map +0 -1
  595. package/dist/install/selectedTools.js.map +0 -1
  596. package/dist/install/toolDetection.js.map +0 -1
  597. package/dist/install/txlog.js.map +0 -1
  598. package/dist/install/types.js.map +0 -1
  599. package/dist/install/wizard-plan.js.map +0 -1
  600. package/dist/install/wizardDismissals.js.map +0 -1
  601. package/dist/scripts/_lib/agent_settings.js.map +0 -1
  602. package/dist/scripts/_lib/agent_src.js.map +0 -1
  603. package/dist/scripts/_lib/claude_builtin_names.js.map +0 -1
  604. package/dist/scripts/_lib/claude_plugin.js.map +0 -1
  605. package/dist/scripts/_lib/claude_settings_hooks.js.map +0 -1
  606. package/dist/scripts/_lib/compile_time_toggles.js.map +0 -1
  607. package/dist/scripts/_lib/environment_detector.js.map +0 -1
  608. package/dist/scripts/_lib/host_launch.js.map +0 -1
  609. package/dist/scripts/_lib/install_layout.js.map +0 -1
  610. package/dist/scripts/_lib/installed_lock.js.map +0 -1
  611. package/dist/scripts/_lib/model_tier.js.map +0 -1
  612. package/dist/scripts/_lib/prune_empty_dirs.js.map +0 -1
  613. package/dist/scripts/_lib/scoped_projection.js.map +0 -1
  614. package/dist/scripts/_lib/script_output.js.map +0 -1
  615. package/dist/scripts/_lib/spawn_env.js.map +0 -1
  616. package/dist/scripts/_lib/surface_tiers.js.map +0 -1
  617. package/dist/scripts/_lib/token_count.js.map +0 -1
  618. package/dist/scripts/_lib/trigger_eval_floors.js.map +0 -1
  619. package/dist/scripts/_lib/user_global_paths.js.map +0 -1
  620. package/dist/scripts/ai_council/modes.js.map +0 -1
  621. package/dist/scripts/ai_council/transport_resolver.js.map +0 -1
  622. package/dist/scripts/condense.js.map +0 -1
  623. package/dist/scripts/project_thin_rules.js.map +0 -1
  624. package/dist/server/app.js.map +0 -1
  625. package/dist/server/io/atomicMultiWrite.js.map +0 -1
  626. package/dist/server/io/atomicWrite.js.map +0 -1
  627. package/dist/server/io/sharedWriteCheck.js.map +0 -1
  628. package/dist/server/io/substituteTemplate.js.map +0 -1
  629. package/dist/server/io/yamlIO.js.map +0 -1
  630. package/dist/server/nicknameResolver.js.map +0 -1
  631. package/dist/server/port.js.map +0 -1
  632. package/dist/server/routes/discovery.js.map +0 -1
  633. package/dist/server/routes/install.js.map +0 -1
  634. package/dist/server/routes/ping.js.map +0 -1
  635. package/dist/server/routes/schema.js.map +0 -1
  636. package/dist/server/routes/settings.js.map +0 -1
  637. package/dist/server/routes/settingsChanges.js.map +0 -1
  638. package/dist/server/routes/userMd.js.map +0 -1
  639. package/dist/server/routes/wizard.js.map +0 -1
  640. package/dist/server/routes/workspace.js.map +0 -1
  641. package/dist/server/schemas/settings.js.map +0 -1
  642. package/dist/server/serverInfo.js.map +0 -1
  643. package/dist/server/token.js.map +0 -1
  644. package/dist/server/writeRoot.js.map +0 -1
  645. package/dist/shared/capabilities.js.map +0 -1
  646. package/dist/shared/interactiveContext.js.map +0 -1
  647. package/dist/shared/nicknamePrefill.js.map +0 -1
  648. package/dist/shared/settingsAsks.js.map +0 -1
  649. package/dist/shared/settingsCarveOut.js.map +0 -1
  650. package/dist/shared/settingsClasses.js.map +0 -1
  651. package/dist/shared/settingsConsent.js.map +0 -1
  652. package/dist/shared/settingsSurface.js.map +0 -1
  653. package/dist/shared/userMd/formAdapter.js.map +0 -1
  654. package/dist/shared/userMd/schema.js.map +0 -1
  655. package/dist/shared/userMd/utils.js.map +0 -1
  656. package/dist/ui/assets/index-Cxgy63kz.js.map +0 -1
  657. package/src/scripts/_lib/adr_frontmatter.test.ts +0 -365
  658. package/src/scripts/_lib/adversarial_council_gate.test.ts +0 -112
  659. package/src/scripts/_lib/adversarial_reconcile.test.ts +0 -197
  660. package/src/scripts/_lib/auto_dispatch.corpus.test.ts +0 -150
  661. package/src/scripts/_lib/secret_detector.test.ts +0 -108
  662. package/src/scripts/_lib/secret_detector_adversarial.test.ts +0 -116
  663. package/src/scripts/_lib/untrusted_content.test.ts +0 -175
  664. package/src/scripts/check_secret_leak.test.ts +0 -90
  665. package/src/scripts/design_slop_rules.test.ts +0 -239
  666. package/src/scripts/self_review_gate.test.ts +0 -296
  667. package/src/shared/capabilities.test.ts +0 -43
@@ -3,6 +3,9 @@ model_tier: lite
3
3
  name: md-language-check
4
4
  description: "Use BEFORE saving any .md under .augment/, dist/agent-src*/, or agents/ — scans umlauts, German function words, and German phrases outside DE:/EN: anchor blocks. Hard gate per language-and-tone."
5
5
  domain: process
6
+ scope:
7
+ write: []
8
+ verification_reason: "the declared command is a read-only checker: grep -c 'writeFileSync|mkdirSync|appendFileSync' src/scripts/check_md_language.ts returns 0. Absence of a write is not something a command can prove."
6
9
  execution:
7
10
  type: assisted
8
11
  handler: shell
@@ -0,0 +1,149 @@
1
+ ---
2
+ model_tier: medium
3
+ name: monorepo-workspace
4
+ description: "Use to orient in a monorepo — which package manager, which workspaces, which task runner and its tasks — derived from the repository's own config and the runner's own listing, never guessed."
5
+ domain: engineering
6
+ workspaces:
7
+ - engineering
8
+ packs:
9
+ - engineering-base
10
+ ---
11
+
12
+ # Monorepo workspace orientation
13
+
14
+ Read-only. Answers "what is this repository, structurally" before anything
15
+ edits it: the package manager, the workspace list, the task runner, and the
16
+ tasks the runner actually defines.
17
+
18
+ Every answer is a **pointer plus a digest** — the file that states the fact and
19
+ a short quotation of it — never a flattened claim. This is the Class-A shape
20
+ [`standards-from-config`](../standards-from-config/SKILL.md) uses, and for the
21
+ same reason: a digest the reader can check beats a summary they have to trust.
22
+
23
+ ## When to use
24
+
25
+ - Before editing anything in a repository with `apps/`, `packages/`, `libs/`,
26
+ a `pnpm-workspace.yaml`, a `turbo.json`, or an `nx.json`.
27
+ - "Which packages depend on `@org/ui`?", "what does `build` run here?",
28
+ "which workspace owns this file?"
29
+ - Before a cross-workspace change, as the input to
30
+ [`blast-radius-analyzer`](../blast-radius-analyzer/SKILL.md) § Monorepo.
31
+
32
+ **Not** for authoring a component or picking a UI idiom — the stack detector
33
+ already reports the frontend workspace as `state.stack.scope_root`, and the UI
34
+ lane routes on that.
35
+
36
+ ## Procedure
37
+
38
+ ### 1. Package manager — from the declaration, then the lockfile
39
+
40
+ `packageManager` in the root `package.json` is the declaration and wins when
41
+ present (it is what Corepack enforces). Otherwise infer from the lockfile:
42
+ `pnpm-lock.yaml` → pnpm, `yarn.lock` → yarn, `bun.lock` / `bun.lockb` → bun,
43
+ `package-lock.json` → npm. Two lockfiles is a finding, not a tie to break —
44
+ report both and stop.
45
+
46
+ ### 2. Workspaces — from the declarative source
47
+
48
+ In precedence order, and report which one answered:
49
+
50
+ | Source | Field |
51
+ |---|---|
52
+ | `pnpm-workspace.yaml` | `packages:` |
53
+ | `package.json` | `workspaces` (array, or `{ packages: [...] }`) |
54
+ | `nx.json` beside per-project `project.json` | Nx infers; use step 3 |
55
+ | `lerna.json` | `packages` |
56
+
57
+ Globs are globs: `packages/*` means every direct child carrying a manifest, not
58
+ every directory.
59
+
60
+ ### 3. Task runner — ask the runner, do not read its config
61
+
62
+ When a runner is present, its own listing is the source of truth, because a
63
+ runner infers projects that appear in no config file you can read:
64
+
65
+ ```bash
66
+ # Nx — never read project.json by hand for the project list
67
+ npx nx show projects
68
+ npx nx show project <name> # targets for one project
69
+
70
+ # Turborepo
71
+ npx turbo ls
72
+ ```
73
+
74
+ Print the task list **with each task's `description` field when it has one** —
75
+ `turbo.json` tasks carry an optional `description`, and it is the only place the
76
+ repository says what a task is *for* rather than what it depends on.
77
+
78
+ ### 4. No runner on PATH — walk the manifests and say so
79
+
80
+ `turbo` and `nx` are the **consumer project's** binaries, invoked through its
81
+ own `npx` / `pnpm dlx`. This package never installs them. When neither
82
+ resolves, build the graph from the manifests instead: for each workspace, read
83
+ its `dependencies` / `devDependencies` and keep the entries whose names match
84
+ another workspace's `name`. That is the dependency graph, and it is complete
85
+ for `workspace:`-linked packages.
86
+
87
+ State plainly that the listing came from manifests rather than the runner — an
88
+ inferred target list can miss runner-inferred targets. This is the posture
89
+ [`react-shadcn-ui`](../react-shadcn-ui/SKILL.md) already takes for the shadcn
90
+ CLI; the stop condition is `missing-tool-handling` (never install it silently,
91
+ never fake the output).
92
+
93
+ ## Output format
94
+
95
+ An orientation report MUST contain, in order:
96
+
97
+ 1. **The package manager**, with the source that decided it — `packageManager`
98
+ when declared, otherwise the lockfile filename. Two lockfiles is reported as
99
+ a finding, never resolved by picking one.
100
+ 2. **The workspace table** — one row per workspace: directory path, package
101
+ `name`, and its workspace-internal dependencies. Both the path and the name,
102
+ because the graph links on `name` and humans talk in paths.
103
+ 3. **The task runner and its tasks**, each task with its `description` field
104
+ when the config carries one, and its `dependsOn` when it has one.
105
+ 4. **A source line** naming which of the two paths produced the listing — the
106
+ runner's own (`turbo ls` / `nx show projects`) or the manifest walk. When it
107
+ was the manifest walk, the line also says that runner-inferred targets may be
108
+ missing.
109
+ ```
110
+ Package manager: pnpm@9.12.0 [package.json#packageManager]
111
+ Workspaces (2) [pnpm-workspace.yaml#packages: apps/*, packages/*]
112
+ apps/web @fixture/web deps: @fixture/ui
113
+ packages/ui @fixture/ui deps: —
114
+ Task runner: turbo [turbo.json#tasks]
115
+ build "Compile every workspace to its dist/ output." dependsOn: ^build
116
+ lint "Run the workspace linter over its own sources."
117
+ test "Run the workspace unit tests." dependsOn: ^build
118
+ Source: turbo ls (runner listing)
119
+ ```
120
+
121
+ When the runner was absent, the last line reads
122
+ `Source: manifest walk (turbo not on PATH — runner-inferred targets may be missing)`.
123
+
124
+ ## Gotcha
125
+
126
+ - A workspace's directory name and its package `name` are different keys. The
127
+ graph links on `name`; humans talk in paths. Print both.
128
+ - `packages/eslint-config` is a workspace. It is not a frontend, and it is not
129
+ a scope candidate for a UI change.
130
+ - An `nx.json` with no `workspaces` key in `package.json` is normal, not broken.
131
+ - `packageManager` pinning a manager whose lockfile is absent means the install
132
+ was never run with it. Report the mismatch.
133
+
134
+ ## Do NOT
135
+
136
+ - Read `project.json` by hand to enumerate Nx projects — `nx show projects` is
137
+ the source of truth and includes inferred targets.
138
+ - Install `turbo` or `nx` to answer a question. They are the consumer's
139
+ binaries; when absent, walk the manifests and say that is what you did.
140
+ - Flatten the answer into prose without the file that states it.
141
+ - Report a workspace list from the conventional directories when a declarative
142
+ source exists — the declaration is authoritative, and the two can disagree.
143
+
144
+ ## See also
145
+
146
+ - [`standards-from-config`](../standards-from-config/SKILL.md) — the Class-A pointer+digest shape this follows.
147
+ - [`workspace-link`](../workspace-link/SKILL.md) — when a cross-workspace import will not resolve.
148
+ - [`blast-radius-analyzer`](../blast-radius-analyzer/SKILL.md) — § Monorepo consumes this graph.
149
+ - [`monorepo-antipatterns`](../../../docs/guidelines/monorepo-antipatterns.md) — diff-detectable task-graph mistakes.
@@ -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
 
@@ -8,6 +8,10 @@ workspaces:
8
8
  - engineering
9
9
  packs:
10
10
  - engineering-base
11
+ triggers:
12
+ - phrase: "tenant isolation"
13
+ - phrase: "cross-tenant"
14
+ - phrase: "tenant scoping"
11
15
  ---
12
16
 
13
17
  <!-- Framework scope: Laravel only. Uses Eloquent model conventions,
@@ -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
@@ -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
@@ -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
@@ -12,6 +12,9 @@ trust:
12
12
  install:
13
13
  default: false
14
14
  removable: true
15
+ triggers:
16
+ - phrase: "pest test"
17
+ - phrase: "pest suite"
15
18
  ---
16
19
 
17
20
  # pest-testing
@@ -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.
@@ -7,6 +7,9 @@ workspaces:
7
7
  - engineering
8
8
  packs:
9
9
  - engineering-base
10
+ triggers:
11
+ - phrase: "playwright spec"
12
+ - phrase: "playwright test"
10
13
  ---
11
14
 
12
15
  # playwright-testing
@@ -11,6 +11,9 @@ workspaces:
11
11
  - engineering
12
12
  packs:
13
13
  - engineering-base
14
+ triggers:
15
+ - phrase: "gdpr-safe"
16
+ - phrase: "pii redaction"
14
17
  ---
15
18
 
16
19
  # privacy-review
@@ -129,6 +129,29 @@ Check:
129
129
  6. Known uncertainties
130
130
  7. Recommended next specialist skill
131
131
 
132
+ ## Improvement mode — check for an existing artefact first
133
+
134
+ Before a full analysis, ask whether this target has already been analysed:
135
+
136
+ ```bash
137
+ npx tsx node_modules/@event4u/agent-config/src/scripts/select_analysis_mode.ts "<target>"
138
+ ```
139
+
140
+ `full` → run steps 1-8 as written. `delta` → **read the named artefact first**,
141
+ then analyse only what it does not cover: gaps, sections the tree has moved past,
142
+ patterns that are new since it was written. The output format is unchanged; the
143
+ reading is narrower.
144
+
145
+ This changes **write economics only**. A concept page is a hypothesis cache,
146
+ never truth — the delta path re-verifies every structural claim it carries
147
+ forward against a live source, exactly as a full run would
148
+ ([`source-discovery-gate`](../../rules/source-discovery-gate.md) § v1↔v2
149
+ isolation). A cheaper write is not a licence to trust a cached read, and
150
+ "the page already says so" is not evidence.
151
+
152
+ An empty page counts as absent: it carries no conclusions to delta against, so
153
+ the router answers `full`.
154
+
132
155
  ## Knowledge capture (`convention_detected` events)
133
156
 
134
157
  An architecture map or stack finding that recurs (a naming convention,
@@ -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
  ---
@@ -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