@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
@@ -0,0 +1,225 @@
1
+ ---
2
+ model_tier: medium
3
+ name: alerting-doctrine
4
+ description: "Use when deciding what earns a page — the page, action and info classes stated provider-neutrally, and the rule that a page without an owner, a runbook and a first diagnostic step is malformed."
5
+ domain: devops
6
+ workspaces:
7
+ - engineering
8
+ packs:
9
+ - engineering-base
10
+ ---
11
+
12
+ # alerting-doctrine
13
+
14
+ ## When to use
15
+
16
+ Use when classifying an alert, reviewing an alert set, or deciding whether a
17
+ condition should wake a human. Provider-neutral: the classes below hold whichever
18
+ tool evaluates the rule.
19
+
20
+ Do NOT use when:
21
+ - Establishing which signals exist at all (use `logging-monitoring` first — you
22
+ cannot alert on a signal the project does not have)
23
+ - Adjudicating a go/no-go verdict (use `operational-readiness`)
24
+ - Running an incident once it has started (use `incident-commander`)
25
+ - Building the dashboard the alert links to (use `dashboard-design`, `grafana`)
26
+
27
+ ## The three classes
28
+
29
+ Every alert is exactly one of these. The class is decided by **what the recipient
30
+ must do**, never by how alarming the condition sounds.
31
+
32
+ | Class | Condition that earns it | Destination | Latency of response |
33
+ |---|---|---|---|
34
+ | `page` | A human must act **now** or the damage grows | Wakes a named human | Minutes |
35
+ | `action` | A human must act, but the next working day is soon enough | Ticket or queue | Hours to days |
36
+ | `info` | Nobody must act; it is context for when something else fires | Log, channel, dashboard | Never |
37
+
38
+ **What earns a `page`** — all three, as a condition rather than a preference:
39
+
40
+ 1. **User-visible or irreversible.** Users are affected now, or damage
41
+ accumulates while nobody looks (data loss, budget burn, a queue filling
42
+ toward a ceiling).
43
+ 2. **Actionable now.** A named human can do something about it at 3am. "The
44
+ upstream provider is down" is not actionable unless failover is manual.
45
+ 3. **Not self-clearing.** A condition that resolves itself before a human can
46
+ log in is an `info` with a trend, not a page.
47
+
48
+ Fail any one → it is `action` or `info`.
49
+
50
+ **What a misclassification costs.** Too eager: alert fatigue, and the page that
51
+ mattered arrives in a stream of pages that did not. Fatigue is not an
52
+ inconvenience — it is the mechanism by which a real outage is missed, and it is
53
+ caused by pages that were never actionable. Too shy: the condition sits in a
54
+ channel nobody reads until a user reports it. The asymmetry is real but bounded
55
+ in both directions, which is why the three conditions above are stated as a test
56
+ and not as taste.
57
+
58
+ ## A page is malformed without all three fields
59
+
60
+ ```
61
+ A PAGE THAT CANNOT NAME AN OWNER, A RUNBOOK AND A FIRST DIAGNOSTIC STEP
62
+ IS A CONFIGURATION DEFECT, NOT A JUDGEMENT CALL.
63
+ ```
64
+
65
+ | Field | What it must carry | Why it is mandatory |
66
+ |---|---|---|
67
+ | **owner** | A named human or an on-call rotation that resolves to one | An alert owned by "the team" is owned by nobody at 3am |
68
+ | **runbook** | A pointer to the procedure — see the contract below | Waking someone with no procedure transfers the whole diagnosis to the least-prepared moment |
69
+ | **first diagnostic step** | The single concrete first action | The most expensive minutes of an incident are the ones spent deciding where to look |
70
+
71
+ This is checkable from the alert definition alone, which is what makes it a
72
+ defect rather than an opinion. `action` and `info` alerts do not carry the
73
+ obligation — nobody is being woken.
74
+
75
+ ## The runbook contract — deliberately lean
76
+
77
+ A runbook worth paging into carries five things. More than this and it rots
78
+ faster than the system changes; fewer and it is a link that wastes the minutes it
79
+ was supposed to save.
80
+
81
+ 1. **What this alert means** — one sentence, in terms of user impact.
82
+ 2. **First diagnostic step** — the one command, query or dashboard to open. The
83
+ same value the alert definition carries, so the two cannot drift.
84
+ 3. **The two or three most common causes**, each with how to confirm it.
85
+ 4. **Mitigation vs fix** — how to stop the bleeding, marked separately from how
86
+ to repair the cause. Under a page, mitigation is the goal.
87
+ 5. **Escalation** — who is next, and the condition that triggers going to them.
88
+
89
+ Explicitly **not** in a runbook: architecture background, a full topology
90
+ diagram, anything the reader could get later. A runbook is read under time
91
+ pressure by someone who was asleep.
92
+
93
+ → Once an incident is open, `incident-commander` owns the roles, the update
94
+ cadence and the post-mortem obligation. This skill stops at the moment the page
95
+ fires.
96
+
97
+ ## Procedure: Classify and validate an alert
98
+
99
+ 1. **Confirm the signal exists.** An alert on a signal `logging-monitoring`
100
+ scored `unavailable` or `unknown` cannot fire meaningfully. Fix the signal
101
+ first.
102
+ 2. **Apply the three page conditions.** User-visible or irreversible, actionable
103
+ now, not self-clearing. All three → `page`. Otherwise → `action` if a human
104
+ must eventually act, else `info`.
105
+ 3. **For a `page`, check the three mandatory fields.** Any missing → verdict
106
+ `malformed-alert: missing-<field>`. Do not downgrade the class to dodge the
107
+ obligation; a page whose fields cannot be named is either a defect to fix or
108
+ was never a page.
109
+ 4. **For a `page`, check the runbook against the five-item contract**, and
110
+ confirm its first diagnostic step matches the alert's.
111
+ 5. **Record the verdict per alert** — `valid-page-alert`, `valid-action-alert`,
112
+ `valid-info-alert`, or `malformed-alert: <reason>`.
113
+
114
+ ### Validate
115
+
116
+ - Verify every `page` names an owner resolving to a single human.
117
+ - Verify every `page` links a runbook that exists.
118
+ - Verify every `page` carries a first diagnostic step identical to its runbook's.
119
+ - Confirm no alert was reclassified downward purely to avoid the three fields.
120
+ - Confirm every alert's underlying signal is `present`, not `unknown`.
121
+ - Confirm the alert set contains no `page` that is self-clearing.
122
+
123
+ ## Output format
124
+
125
+ 1. One row per alert — name, class, verdict.
126
+ 2. For each `malformed-alert`, the missing field named explicitly.
127
+ 3. The pages, with owner, runbook pointer and first diagnostic step.
128
+
129
+ ## Examples
130
+
131
+ Contract fixtures. Three pairs, one per mandatory field; each pair differs
132
+ **only** in the field under test, and each case states the verdict it must
133
+ produce. Contract evidence for review, not an executable suite.
134
+
135
+ ### Missing owner — malformed vs clean
136
+
137
+ ```yaml
138
+ # malformed
139
+ alert: checkout_error_rate_high
140
+ class: page
141
+ runbook: docs/runbooks/checkout-errors.md
142
+ first_diagnostic_step: "open the checkout error-rate panel, last 30m"
143
+ verdict: "malformed-alert: missing-owner"
144
+ ```
145
+
146
+ ```yaml
147
+ # clean — only the owner is added
148
+ alert: checkout_error_rate_high
149
+ class: page
150
+ owner: payments-on-call
151
+ runbook: docs/runbooks/checkout-errors.md
152
+ first_diagnostic_step: "open the checkout error-rate panel, last 30m"
153
+ verdict: valid-page-alert
154
+ ```
155
+
156
+ ### Missing runbook — malformed vs clean
157
+
158
+ ```yaml
159
+ # malformed
160
+ alert: db_pool_saturation
161
+ class: page
162
+ owner: platform-on-call
163
+ first_diagnostic_step: "check db_pool_in_use / db_pool_size"
164
+ verdict: "malformed-alert: missing-runbook"
165
+ ```
166
+
167
+ ```yaml
168
+ # clean — only the runbook is added
169
+ alert: db_pool_saturation
170
+ class: page
171
+ owner: platform-on-call
172
+ runbook: docs/runbooks/db-pool.md
173
+ first_diagnostic_step: "check db_pool_in_use / db_pool_size"
174
+ verdict: valid-page-alert
175
+ ```
176
+
177
+ ### Missing first diagnostic step — malformed vs clean
178
+
179
+ ```yaml
180
+ # malformed
181
+ alert: queue_wait_time_high
182
+ class: page
183
+ owner: platform-on-call
184
+ runbook: docs/runbooks/queue-wait.md
185
+ verdict: "malformed-alert: missing-diagnostic-step"
186
+ ```
187
+
188
+ ```yaml
189
+ # clean — only the first diagnostic step is added
190
+ alert: queue_wait_time_high
191
+ class: page
192
+ owner: platform-on-call
193
+ runbook: docs/runbooks/queue-wait.md
194
+ first_diagnostic_step: "open the queue wait-time panel; compare to enqueue rate"
195
+ verdict: valid-page-alert
196
+ ```
197
+
198
+ ## Gotcha
199
+
200
+ - Severity labels are not classes. `critical` in a tool's own vocabulary says
201
+ nothing about whether a human must act now.
202
+ - A page nobody can action is the fastest route to ignoring all pages.
203
+ - Reclassifying a page to `action` because the owner is unknown hides the defect
204
+ instead of fixing it.
205
+ - An alert on a threshold with `proposed` provenance is alerting on a guess —
206
+ see `logging-monitoring`.
207
+ - Queue depth alerts fire late; queue wait time fires in time.
208
+
209
+ ## Do NOT
210
+
211
+ - Do NOT ship a `page` without an owner, a runbook and a first diagnostic step.
212
+ - Do NOT page on a self-clearing condition.
213
+ - Do NOT page on a signal scored `unknown`.
214
+ - Do NOT put architecture background in a runbook — it is read under pressure.
215
+ - Do NOT let the alert's first diagnostic step and the runbook's disagree.
216
+
217
+ ## Auto-trigger keywords
218
+
219
+ - alert
220
+ - alerting
221
+ - page
222
+ - on-call
223
+ - runbook
224
+ - alert fatigue
225
+ - what earns a page
@@ -261,7 +261,6 @@ Runtime confirmation (e.g. *"reproduce the cross-tenant read against staging"*,
261
261
  — rubric for "minimum control" recommendations.
262
262
  [csrc.nist.gov/projects/risk-management/sp800-53-controls](https://csrc.nist.gov/projects/risk-management/sp800-53-controls/release-search#!/800-53)
263
263
  - [`threat-modeling`](../threat-modeling/SKILL.md),
264
- [`data-exposure-review`](../data-exposure-review/SKILL.md),
265
264
  [`judge-security-auditor`](../judge-security-auditor/SKILL.md),
266
265
  [`security`](../security/SKILL.md),
267
266
  [`security-audit`](../security-audit/SKILL.md) — sibling review / implementation skills.
@@ -182,6 +182,38 @@ does not execute code, run tests, or touch the network**.
182
182
  * NEVER claim a dependency without a file:line citation from grep output
183
183
  * NEVER chase dependencies past 2nd order without explicit scope approval — flag and stop
184
184
 
185
+ ## Monorepo
186
+
187
+ In a workspace repository the reach of an edit does not stop at the workspace
188
+ that contains it. A file under `packages/ui` that three apps import has a blast
189
+ radius of four workspaces, and the grep sweep above will not find the edge —
190
+ the importing code says `@org/ui`, not a path.
191
+
192
+ **Before editing a file in a workspace other workspaces depend on, name the
193
+ affected set.** Ask the task runner, which computes it from the real graph:
194
+
195
+ ```bash
196
+ # Turborepo — everything affected by the working tree vs the previous commit
197
+ npx turbo run test --filter=...[HEAD^1]
198
+
199
+ # Nx
200
+ npx nx affected -t test
201
+ ```
202
+
203
+ `...[HEAD^1]` is the dependents form: `...` ahead of the selector means "and
204
+ everything that depends on it". Without it you get the changed package alone,
205
+ which is the answer that looks right and misses the point.
206
+
207
+ **With no runner installed**, walk it in reverse from the manifests: find the
208
+ edited file's owning workspace `name`, then grep every other workspace's
209
+ `package.json` for that name. Those are the first-order dependents; repeat once
210
+ for second order, and stop there per the 2nd-order rule above.
211
+ [`monorepo-workspace`](../monorepo-workspace/SKILL.md) § 4 prints that graph.
212
+
213
+ Report the affected set as workspace names with the manifest that declares each
214
+ edge, exactly as the reach table above reports file:line — an affected set
215
+ without its citing edge is the same unverifiable claim in coarser units.
216
+
185
217
  ## References
186
218
 
187
219
  - **Martin Fowler — "Refactoring: Improving the Design of Existing Code"** (2018)
@@ -13,6 +13,9 @@ trust:
13
13
  level: professional
14
14
  install:
15
15
  removable: true
16
+ scope:
17
+ write: []
18
+ 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."
16
19
  execution:
17
20
  type: manual
18
21
  ---
@@ -13,6 +13,9 @@ trust:
13
13
  level: experimental
14
14
  install:
15
15
  removable: true
16
+ scope:
17
+ write: []
18
+ 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."
16
19
  execution:
17
20
  type: manual
18
21
  ---
@@ -13,6 +13,9 @@ trust:
13
13
  level: professional
14
14
  install:
15
15
  removable: true
16
+ scope:
17
+ write: []
18
+ 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."
16
19
  execution:
17
20
  type: manual
18
21
  ---
@@ -13,6 +13,9 @@ trust:
13
13
  level: professional
14
14
  install:
15
15
  removable: true
16
+ scope:
17
+ write: []
18
+ 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."
16
19
  execution:
17
20
  type: manual
18
21
  ---
@@ -13,6 +13,9 @@ trust:
13
13
  level: professional
14
14
  install:
15
15
  removable: true
16
+ scope:
17
+ write: []
18
+ 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."
16
19
  execution:
17
20
  type: manual
18
21
  ---
@@ -12,6 +12,9 @@ trust:
12
12
  level: professional
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,9 @@ model_tier: medium
3
3
  name: check-refs
4
4
  description: "Use when verifying cross-references between skills, rules, commands, guidelines, and context documents are not broken after edits, renames, or deletions."
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_references.ts returns 2 and both sit inside its own --self-test tmpdir. Absence of a write is not something a command can prove, so the derivation is stated instead."
6
9
  execution:
7
10
  type: assisted
8
11
  handler: shell
@@ -28,8 +28,51 @@ Do NOT use when:
28
28
  2. **Understand the scope** — what exactly needs to change and why?
29
29
  3. **Find ALL references** — use `codebase-retrieval` and `view` with `search_query_regex` to find every
30
30
  caller, implementation, test, and configuration that references the code being changed.
31
+ **If the change is to a closed set** — an enum, union, literal type, state
32
+ machine, role or permission set — identifier search is not enough: the
33
+ consumers that break are the ones that never name the type. Search by shape as
34
+ well (`switch` / `match` / if-chains over it, lookup tables keyed by it,
35
+ validators, serializers, schemas, fixtures, translation keys) and classify each
36
+ as exhaustive, deliberate fallback, or missing case. Procedure:
37
+ [`downstream-changes-mechanics`](../../../docs/guidelines/agent-infra/downstream-changes-mechanics.md).
31
38
  4. **Map the impact** — create a list of all files that will need changes.
32
- 5. **Present the plan** — show the user what will be affected before starting.
39
+ 5. **Decide the verdict, if the refactor is a de-duplication** — see the
40
+ safe-abstraction gate below. An extraction with no recorded verdict is a
41
+ guess about whether two things are the same thing.
42
+ 6. **Present the plan** — show the user what will be affected before starting.
43
+
44
+ ### Safe-abstraction gate — before merging two things into one
45
+
46
+ This skill performs extractions; it is therefore the place that decides
47
+ whether one should happen. A wrong abstraction costs more than the
48
+ duplication it replaced, because the duplication is visible and the wrong
49
+ abstraction grows caller flags until nobody can remove it. Ask, before
50
+ moving any code:
51
+
52
+ 1. Is this the same knowledge, or two facts that currently look alike?
53
+ 2. Would both copies change for the same reason?
54
+ 3. Is there one honest domain name that fits **every** call site?
55
+ 4. Can the common core stay free of caller-specific flags and modes?
56
+ 5. Are public contracts preserved, and do tests prove behavioural equivalence?
57
+ 6. **If the two copies diverged tomorrow, would that be a defect or
58
+ legitimate evolution?**
59
+
60
+ A "legitimate evolution" answer to the last question is decisive: stop, and
61
+ record the verdict `keep-duplicated`. That closes the refactor **successfully**
62
+ — so does `de-abstract`, splitting a shared unit that has grown modes back
63
+ apart. Neither is a failure to act, and neither needs an apology in the
64
+ output. Textual similarity is not evidence of shared knowledge: copies that
65
+ read identically can encode different assumptions, and merging them changes
66
+ behaviour silently.
67
+
68
+ The class names and the full verdict list are in
69
+ [`redundancy-taxonomy`](../../../docs/guidelines/redundancy-taxonomy.md).
70
+
71
+ When the refactor goes the other way and **creates** a new unit, the reuse
72
+ question comes first: does an existing class or component already cover this, and
73
+ what does composing or extending it cost against a new one? Thresholds per
74
+ artifact class:
75
+ [`component-oriented-and-oop-development`](../../../docs/guidelines/component-oriented-and-oop-development.md).
33
76
 
34
77
  ## Procedure: Refactor code
35
78
 
@@ -140,6 +183,7 @@ After the code changes are verified, update all affected documentation:
140
183
  1. Find all usages → update all usages → update docs → run the static analyser → run tests.
141
184
 
142
185
  ### Extract method / class
186
+ 0. Run the safe-abstraction gate above — a `keep-duplicated` verdict ends it here.
143
187
  1. Create the new method/class → move logic → update caller → update docs → run the static analyser → run tests.
144
188
 
145
189
  ### Move class to different namespace
@@ -37,11 +37,70 @@ Use this skill when:
37
37
  2. **Detect the change-type + depth** — route to the right checklist and pick the review depth (below).
38
38
  3. **Architecture** — does the approach make sense? Right layer? Right pattern?
39
39
  4. **Correctness** — does it actually work? Edge cases? Error handling?
40
- 5. **Quality** — types, naming, readability, DRY, SOLID?
41
- 6. **Security** — input validation, authorization, injection?
42
- 7. **Performance** — N+1 queries, missing indexes, unbounded queries?
43
- 8. **Tests** — are new paths covered? Are existing tests still valid?
44
- 9. **Conventions** — does it follow project standards?
40
+ 5. **Quality** — types, naming, readability, SOLID?
41
+ 6. **Redundancy** — see below; a verdict, not a "this looks duplicated".
42
+ 7. **Propagation** — did a changed concept reach every occurrence? see below.
43
+ 8. **Security** — input validation, authorization, injection?
44
+ 9. **Performance** — N+1 queries, missing indexes, unbounded queries?
45
+ 10. **Tests** — are new paths covered? Are existing tests still valid?
46
+ 11. **Conventions** — does it follow project standards?
47
+
48
+ ## The redundancy dimension
49
+
50
+ `DRY` as a checklist word produced findings nobody could act on: it names a
51
+ principle, not a decision, and it has no answer for the case where two copies
52
+ should stay. Replace it with a verdict.
53
+
54
+ Classify the finding against
55
+ [`redundancy-taxonomy`](../../../docs/guidelines/redundancy-taxonomy.md) —
56
+ implementation, knowledge, or representation — and record one verdict from that
57
+ document's list. `keep-duplicated` and `de-abstract` are successful outcomes; a
58
+ finding with no recorded verdict stays open. Knowledge, policy, contract and
59
+ delivery-authority duplication outrank clone percentage: two copies of a
60
+ *decision* diverge into a bug, two copies of a loop usually do not.
61
+
62
+ **Diff-aware, always.** The finding is duplication this change **introduces**,
63
+ or duplication on a surface it touches. Pre-existing duplication is baseline —
64
+ it is named once if the reviewer thinks it matters and it never fails an
65
+ unrelated change. A review that reds a diff against debt it did not create is a
66
+ review nobody will run twice.
67
+
68
+ For comments, labels, tooltips, placeholders and empty states, run the
69
+ Information Delta Test from the same document rather than judging text volume.
70
+ A reduction that removes an accessibility name is a defect, not a cleanup.
71
+
72
+ Naming is the same dimension pointed the other way: a diff that introduces a
73
+ second term for a concept the tree already names is the finding, and an existing
74
+ split is baseline. The classes and the `canonicalize-term` / `keep-distinct`
75
+ verdicts are in the same document.
76
+
77
+ ## The propagation dimension
78
+
79
+ A change is complete when the **concept** changed everywhere, not when the named
80
+ file compiles. Two shapes to check, both of which the file-level review misses:
81
+
82
+ **A closed set gained or lost a member** (enum, union, literal type, state
83
+ machine, role or permission set, schema `enum`, DB check constraint). List the
84
+ consumers and their status — every `switch` / `match` / if-chain over the type,
85
+ every lookup table keyed by it, every validator, serializer, schema, fixture and
86
+ translation key. A `default` branch that silently absorbs the new member is a
87
+ missing case, not a handled one. Procedure:
88
+ [`downstream-changes-mechanics`](../../../docs/guidelines/agent-infra/downstream-changes-mechanics.md).
89
+
90
+ **A shared behaviour moved and its siblings did not.** A defect fixed in one
91
+ place is presumed to recur until searched: name the exact wrong construct, grep
92
+ the tree, and report the count — zero is a real answer and worth stating, because
93
+ it distinguishes "this was unique" from "nobody looked".
94
+
95
+ Diff-aware on the same terms as redundancy: the finding is a concept **this
96
+ change** left half-migrated. Pre-existing incompleteness elsewhere is baseline.
97
+
98
+ When the diff **creates** a class, component, service or hook rather than
99
+ changing one, the question is whether it needed to exist: what was searched,
100
+ what was found, and why composing or extending the incumbent was rejected. An
101
+ answer, not a ceremony — and the thresholds for when repetition actually earns
102
+ an abstraction are in
103
+ [`component-oriented-and-oop-development`](../../../docs/guidelines/component-oriented-and-oop-development.md).
45
104
 
46
105
  ## Change-type routing — load only the checklist the diff needs
47
106
 
@@ -109,6 +168,17 @@ coverage reads as full coverage.
109
168
  shuffled file order (deterministic seed per session, logged for replay) so
110
169
  a fixed order does not correlate their blind spots. Single-reviewer → no shuffle.
111
170
 
171
+ **MEASURED, and the result is a null — 2026-08-23.** This control is prose and nothing in
172
+ the package implements it. That is now true for a recorded reason rather than by
173
+ omission: the pre-registered question — does rotating reviewer order change the finding set
174
+ on a frozen corpus, by more than 15 % — **cannot be answered from the corpus that exists**.
175
+ `agents/evidence/reviews/` holds 123 findings artifacts, and none of them records the file
176
+ order it was produced under, so the counterfactual is not recoverable; re-running reviewers
177
+ produces fresh judgements in which ordering is confounded with run-to-run variance. Full
178
+ null, with its reopening condition: `agents/evidence/review-rotation-prereg-and-null.md`.
179
+ A reduced-power crossover was considered and refused — it would risk a false closure on a
180
+ control this paragraph still specifies.
181
+
112
182
  ## Before creating a PR
113
183
 
114
184
  1. When `quality.local_auto_run: true`: run the project's quality pipeline (see the stack carve-out for the exact commands — PHP: `quality-tools`) and tests via the project's runner (`make test`, `npm test`, `pytest`, `go test ./...`, or the project's wrapper script). Under the default (`false` / missing): skip both — remote CI on the PR is the gate.
@@ -3,6 +3,9 @@ model_tier: inherit
3
3
  name: command-routing
4
4
  description: "Use when the user invokes a slash command like /create-pr, /commit, /fix-ci, or pastes command file content — routes to the right command with context inference and GitHub API patterns."
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
@@ -23,6 +26,9 @@ Triggered when user invokes a slash command. The `slash-command-routing-policy`
23
26
 
24
27
  1. **Match command** — Find the command file in `.augment/commands/` or `agents/overrides/commands/`.
25
28
  2. **Infer inputs** — Before asking the user, try to infer values (see table below).
29
+ 2b. **List a matching playbook in the preamble.** If a playbook's `task` matches the
30
+ command's name, name it before the steps run — it is this repository's own procedure and
31
+ outranks a shipped one ([`playbook-precedence`](../../rules/playbook-precedence.md)).
26
32
  3. **Execute steps** — Follow the command steps in exact order.
27
33
  4. **Verify output** — Confirm expected result was produced (commit, PR, file change, etc.).
28
34
 
@@ -305,6 +305,41 @@ Bad description (vague, no outcome):
305
305
 
306
306
  > "PR command"
307
307
 
308
+ ## The `## Examples` section on a user-facing command
309
+
310
+ Stated once, here — never repeated per command.
311
+
312
+ A command whose `visibility` is `visible` or `advanced` carries an
313
+ `## Examples` section: **1-3 filled invocations** in a fence, then **exactly
314
+ one Why line**. Filled means a real path, a real ticket key, a real flag — a
315
+ placeholder teaches nothing about what to type.
316
+
317
+ The Why line uses one of two literals, `**Why it works:**` or a
318
+ `### Why it works` heading, and cites **exactly one** pattern id from
319
+ [`prompt-patterns.yml`](../../config/discovery/prompt-patterns.yml):
320
+ `outcome-not-steps` · `self-check-loop` · `measurable-target` ·
321
+ `give-the-artifact` · `point-at-reference` · `say-the-format`. One id, because
322
+ the Why line's job is the part that transfers to a command the reader has not
323
+ seen, and a line naming three patterns names none of them.
324
+
325
+ ~~~
326
+ ## Examples
327
+
328
+ ```
329
+ /work fix the failing login test under tests/feature/auth
330
+ ```
331
+
332
+ **Why it works:** measurable-target — it names the file instead of the symptom.
333
+ ~~~
334
+
335
+ Enforced by `check_command_examples`, forward-only: the 23 in-scope commands as
336
+ of 2026-08-24 are grandfathered in a frozen set inside the gate, and a command
337
+ **added or promoted into `visible`/`advanced`** after that must comply. Two
338
+ things the gate checks that are easy to miss — an invocation must resolve to
339
+ the command's own `name:` (a rename otherwise leaves stale examples behind), and
340
+ a flag used in an example must be documented in the body **outside** the
341
+ section.
342
+
308
343
  ## Encode usage policy in the description
309
344
 
310
345
  Workflow sequencing, preconditions, ID/output provenance ("copy ids verbatim,
@@ -3,6 +3,9 @@ model_tier: inherit
3
3
  name: condense-memory
4
4
  description: "When shrinking always-loaded memory files (AGENTS.md, CLAUDE.md, .cursorrules) exceeding ~150 lines or ~4,000 chars — telegraph grammar, refuses sensitive paths, .original.md round-trip."
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
@@ -39,7 +39,7 @@ Do NOT use when:
39
39
  |---|---|---|
40
40
  | `auth-model.md` | Roles, permission model, impersonation, known exceptions | `authz-review`, `judge-security-auditor`, `threat-modeling` |
41
41
  | `tenant-boundaries.md` | Tenancy type, scope propagation, known cross-tenant paths | `multi-tenant-boundary-review`, `blast-radius-analyzer`, `judge-security-auditor` |
42
- | `data-sensitivity.md` | Field classification, masking rules, log-safe types | `data-exposure-review`, `data-flow-mapper`, logging reviewers |
42
+ | `data-sensitivity.md` | Field classification, masking rules, log-safe types | `data-flow-mapper`, logging reviewers |
43
43
  | `deployment-order.md` | Migration strategy, feature flags, rollback plan | `migration-safety`, `judge-bug-hunter`, release reviewers |
44
44
  | `observability.md` | Error tracking, log channels, metrics, known alerts | deploy reviewers, `bug-analyzer`, incident mode |
45
45
 
@@ -3,6 +3,9 @@ model_tier: medium
3
3
  name: conventional-commits-writing
4
4
  description: "When writing commit messages or squash-merge titles — `feat:`, `fix:`, `chore:`, scopes, breaking changes — even when the user just says 'commit this' without naming Conventional Commits."
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: copilot-agents-optimization
4
4
  description: "Use when optimizing AGENTS.md or copilot-instructions.md — deduplicates against .augment/ content, enforces line budgets, and focuses each file on its 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
@@ -37,6 +40,13 @@ Before changing anything, read and understand:
37
40
  1. **Read `AGENTS.md`** — current content, line count, what's duplicated vs. unique.
38
41
  2. **Read `.github/copilot-instructions.md`** — same analysis.
39
42
  3. **Scan `.augment/`** — which skills, rules, and guidelines already cover topics from the files above.
43
+ 3b. **Scan the playbooks too, not only `.augment/`.** A `packages/<n>/AGENTS.md` may
44
+ duplicate a **playbook** rather than a shipped rule, and dedup against `.augment/` alone
45
+ misses it entirely — the content is not in `.augment/` at all. Run
46
+ `findRestatedSteps` (`src/scripts/derive_playbooks.ts`) over each workspace file: a line
47
+ carrying a playbook's `invokes` id outside a link is a restatement to replace with a
48
+ pointer. The same id **inside** a link label is the shape the contract wants — see
49
+ [`agents-md-thin-root` § Workspace files](../agents-md-thin-root/SKILL.md).
40
50
  4. **Identify duplication** — what content exists in both AGENTS.md and `.augment/`?
41
51
 
42
52
  Only after this analysis, proceed with optimization.
@@ -11,6 +11,9 @@ trust:
11
11
  level: professional
12
12
  install:
13
13
  removable: true
14
+ scope:
15
+ write: []
16
+ 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."
14
17
  execution:
15
18
  type: manual
16
19
  ---
@@ -14,6 +14,9 @@ trust:
14
14
  level: professional
15
15
  install:
16
16
  removable: true
17
+ scope:
18
+ write: []
19
+ 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."
17
20
  execution:
18
21
  type: manual
19
22
  ---