@event4u/agent-config 9.7.0 → 9.9.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 (901) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +314 -190
  3. package/CONTRIBUTING.md +23 -7
  4. package/MIGRATION.md +20 -0
  5. package/README.md +57 -11
  6. package/dist/agent-src/commands/agents/audit.md +1 -1
  7. package/dist/agent-src/commands/agents/optimize.md +2 -2
  8. package/dist/agent-src/commands/agents/user.md +1 -1
  9. package/dist/agent-src/commands/agents.md +1 -1
  10. package/dist/agent-src/commands/check-current-md.md +3 -3
  11. package/dist/agent-src/commands/commit/in-chunks.md +8 -0
  12. package/dist/agent-src/commands/commit.md +17 -0
  13. package/dist/agent-src/commands/fix/portability.md +2 -2
  14. package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
  15. package/dist/agent-src/commands/fix/refs.md +2 -2
  16. package/dist/agent-src/commands/fix/route.md +4 -3
  17. package/dist/agent-src/commands/fix.md +9 -6
  18. package/dist/agent-src/commands/ghostwriter.md +1 -1
  19. package/dist/agent-src/commands/image.md +1 -1
  20. package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
  21. package/dist/agent-src/commands/optimize/skills.md +2 -2
  22. package/dist/agent-src/commands/post-as.md +1 -1
  23. package/dist/agent-src/commands/pr/create.md +4 -0
  24. package/dist/agent-src/commands/research.md +1 -1
  25. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  26. package/dist/agent-src/commands/security-audit-config.md +1 -1
  27. package/dist/agent-src/commands/team/delegate.md +4 -0
  28. package/dist/agent-src/commands/video.md +1 -1
  29. package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
  30. package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
  31. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
  32. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
  33. package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
  34. package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
  35. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
  36. package/dist/agent-src/contexts/override-system.md +75 -5
  37. package/dist/agent-src/rules/code-provenance.md +112 -0
  38. package/dist/agent-src/rules/context-hygiene.md +2 -0
  39. package/dist/agent-src/rules/doc-screenshot-hygiene.md +97 -0
  40. package/dist/agent-src/rules/domain-safety-pii.md +1 -0
  41. package/dist/agent-src/rules/external-code-graph-interop.md +13 -3
  42. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
  43. package/dist/agent-src/rules/git-history-discipline.md +2 -0
  44. package/dist/agent-src/rules/history-discipline.md +80 -0
  45. package/dist/agent-src/rules/language-and-tone.md +2 -0
  46. package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
  47. package/dist/agent-src/rules/media-governance-routing.md +2 -0
  48. package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
  49. package/dist/agent-src/rules/no-roadmap-references.md +4 -1
  50. package/dist/agent-src/rules/non-destructive-by-default.md +20 -0
  51. package/dist/agent-src/rules/onboarding-gate.md +2 -0
  52. package/dist/agent-src/rules/output-discipline.md +2 -0
  53. package/dist/agent-src/rules/persona-governance.md +2 -0
  54. package/dist/agent-src/rules/php-coding.md +1 -0
  55. package/dist/agent-src/rules/preservation-guard.md +3 -0
  56. package/dist/agent-src/rules/reviewer-awareness.md +1 -0
  57. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
  58. package/dist/agent-src/rules/roadmap-progress-sync.md +9 -0
  59. package/dist/agent-src/rules/scale-discipline.md +92 -0
  60. package/dist/agent-src/rules/secret-vcs-guard.md +106 -0
  61. package/dist/agent-src/rules/security-sensitive-stop.md +11 -1
  62. package/dist/agent-src/rules/session-canary.md +77 -0
  63. package/dist/agent-src/rules/skill-quality.md +2 -0
  64. package/dist/agent-src/rules/source-confidentiality.md +2 -0
  65. package/dist/agent-src/rules/source-of-truth.md +2 -0
  66. package/dist/agent-src/rules/telegraph-speak.md +2 -0
  67. package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -1
  68. package/dist/agent-src/rules/tool-safety.md +4 -1
  69. package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
  70. package/dist/agent-src/rules/verify-before-complete.md +2 -0
  71. package/dist/agent-src/skills/adr-create/SKILL.md +17 -1
  72. package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
  73. package/dist/agent-src/skills/code-intelligence/SKILL.md +97 -0
  74. package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
  75. package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
  76. package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
  77. package/dist/agent-src/skills/design-review/SKILL.md +5 -6
  78. package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
  79. package/dist/agent-src/skills/gated-reach/SKILL.md +185 -0
  80. package/dist/agent-src/skills/gated-reach/evals/triggers.json +72 -0
  81. package/dist/agent-src/skills/history-design/SKILL.md +101 -0
  82. package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
  83. package/dist/agent-src/skills/humanizer/SKILL.md +3 -3
  84. package/dist/agent-src/skills/image-analyser/SKILL.md +14 -12
  85. package/dist/agent-src/skills/image-editing/SKILL.md +2 -1
  86. package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
  87. package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
  88. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  89. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
  90. package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
  91. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
  92. package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
  93. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
  94. package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
  95. package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
  96. package/dist/agent-src/skills/override-management/SKILL.md +1 -1
  97. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
  98. package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
  99. package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
  100. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
  101. package/dist/agent-src/skills/readme-writing/SKILL.md +6 -1
  102. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
  103. package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
  104. package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
  105. package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
  106. package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
  107. package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
  108. package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
  109. package/dist/agent-src/skills/screenshot-hygiene/SKILL.md +171 -0
  110. package/dist/agent-src/skills/secrets-management/SKILL.md +43 -1
  111. package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
  112. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
  113. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
  114. package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
  115. package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
  116. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
  117. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
  118. package/dist/agent-src/skills/subagent-orchestration/prompts/adversarial-verification-council.md +29 -0
  119. package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +29 -0
  120. package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +29 -0
  121. package/dist/agent-src/skills/subagent-orchestration/prompts/do-competitively.md +29 -0
  122. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +29 -0
  123. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +29 -0
  124. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +29 -0
  125. package/dist/agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +29 -0
  126. package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
  127. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
  128. package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
  129. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +4 -0
  130. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
  131. package/dist/agent-src/templates/AGENTS.md +1 -1
  132. package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
  133. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  134. package/dist/agent-src/templates/command.md +3 -3
  135. package/dist/agent-src/templates/github-workflows/secret-scan.yml +65 -0
  136. package/dist/agent-src/templates/persona.md +2 -2
  137. package/dist/agent-src/templates/rule.md +2 -2
  138. package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
  139. package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
  140. package/dist/cli/commands/doctorShell.js +20 -0
  141. package/dist/cli/commands/doctorShell.js.map +1 -1
  142. package/dist/cli/commands/rtkDetect.js +58 -0
  143. package/dist/cli/commands/rtkDetect.js.map +1 -0
  144. package/dist/cli/configRoot.js +112 -0
  145. package/dist/cli/configRoot.js.map +1 -0
  146. package/dist/cli/configRoot.test.js +97 -0
  147. package/dist/cli/configRoot.test.js.map +1 -0
  148. package/dist/cli/firstRunNotice.js +70 -0
  149. package/dist/cli/firstRunNotice.js.map +1 -0
  150. package/dist/cli/help.js +4 -1
  151. package/dist/cli/help.js.map +1 -1
  152. package/dist/cli/main.js +54 -5
  153. package/dist/cli/main.js.map +1 -1
  154. package/dist/cli/registry.js +8 -1
  155. package/dist/cli/registry.js.map +1 -1
  156. package/dist/discovery/deprecation-report.md +1 -1
  157. package/dist/discovery/discovery-manifest.json +502 -101
  158. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  159. package/dist/discovery/discovery-manifest.summary.md +6 -4
  160. package/dist/discovery/orphan-report.md +1 -1
  161. package/dist/discovery/packs.json +95 -8
  162. package/dist/discovery/trust-report.md +11 -11
  163. package/dist/discovery/workspaces.json +36 -7
  164. package/dist/hooks/dispatch.js +19475 -0
  165. package/dist/install/agentSwitchDetection.js +75 -0
  166. package/dist/install/agentSwitchDetection.js.map +1 -0
  167. package/dist/install/agentSwitchProfile.js +117 -0
  168. package/dist/install/agentSwitchProfile.js.map +1 -0
  169. package/dist/install/atomic.js +1 -1
  170. package/dist/install/detect.js +1 -1
  171. package/dist/install/install.mjs +791 -486
  172. package/dist/install/rtkDetection.js +213 -0
  173. package/dist/install/rtkDetection.js.map +1 -0
  174. package/dist/install/rule_scope.js +2 -1
  175. package/dist/install/rule_scope.js.map +1 -1
  176. package/dist/install/types.js +2 -2
  177. package/dist/install/wizard-plan.js +1 -1
  178. package/dist/install/wizardDismissals.js +58 -0
  179. package/dist/install/wizardDismissals.js.map +1 -0
  180. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  181. package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
  182. package/dist/mcp/registry-manifest.json +15 -4
  183. package/dist/mcp/server.json +20 -0
  184. package/dist/mcp/server.mjs +44292 -0
  185. package/dist/router.json +1 -1
  186. package/dist/scripts/condense.js +14 -7
  187. package/dist/scripts/condense.js.map +1 -1
  188. package/dist/server/app.js +12 -0
  189. package/dist/server/app.js.map +1 -1
  190. package/dist/server/io/sharedWriteCheck.js +101 -0
  191. package/dist/server/io/sharedWriteCheck.js.map +1 -0
  192. package/dist/server/routes/ping.js +32 -0
  193. package/dist/server/routes/ping.js.map +1 -1
  194. package/dist/server/routes/settings.js +21 -4
  195. package/dist/server/routes/settings.js.map +1 -1
  196. package/dist/server/routes/userMd.js +21 -4
  197. package/dist/server/routes/userMd.js.map +1 -1
  198. package/dist/server/routes/wizard.js +68 -25
  199. package/dist/server/routes/wizard.js.map +1 -1
  200. package/dist/server/schemas/settings.js +12 -2
  201. package/dist/server/schemas/settings.js.map +1 -1
  202. package/dist/server/serverInfo.js +6 -2
  203. package/dist/server/serverInfo.js.map +1 -1
  204. package/dist/server/token.js +11 -4
  205. package/dist/server/token.js.map +1 -1
  206. package/dist/server/writeRoot.js +15 -1
  207. package/dist/server/writeRoot.js.map +1 -1
  208. package/dist/shared/capabilities.js +33 -0
  209. package/dist/shared/capabilities.js.map +1 -0
  210. package/dist/shared/capabilities.test.js +39 -0
  211. package/dist/shared/capabilities.test.js.map +1 -0
  212. package/dist/ui/assets/index-BpSQt5vm.js +40 -0
  213. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
  214. package/dist/ui/assets/index-jSfMW8_t.css +1 -0
  215. package/dist/ui/index.html +15 -6
  216. package/docs/MIGRATION.md +16 -0
  217. package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
  218. package/package.json +22 -9
  219. package/src/agent-src/templates/AGENTS.md +1 -1
  220. package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
  221. package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
  222. package/src/config/agent-settings.template.yml +94 -13
  223. package/src/config/discovery/packs.yml +22 -0
  224. package/src/config/discovery/workspaces.yml +1 -1
  225. package/src/config/evaluator-budgets.json +47 -0
  226. package/src/config/hook-latency-budget.json +20 -0
  227. package/src/config/reach-channels.yml +217 -0
  228. package/src/config/reach-prescriptions-intake.yml +200 -0
  229. package/src/install/agentSwitchDetection.ts +90 -0
  230. package/src/install/agentSwitchProfile.ts +131 -0
  231. package/src/install/atomic.ts +1 -1
  232. package/src/install/detect.ts +1 -1
  233. package/src/install/rtkDetection.ts +274 -0
  234. package/src/install/rule_scope.ts +9 -2
  235. package/src/install/types.ts +2 -2
  236. package/src/install/wizard-plan.ts +1 -1
  237. package/src/install/wizardDismissals.ts +60 -0
  238. package/src/scripts/_cli/cmd_doctor.ts +62 -1
  239. package/src/scripts/_cli/cmd_memory_get.ts +197 -0
  240. package/src/scripts/_cli/cmd_refresh.ts +30 -0
  241. package/src/scripts/_dispatch.bash +96 -0
  242. package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
  243. package/src/scripts/_lib/auto_dispatch.ts +76 -0
  244. package/src/scripts/_lib/detect_target_license.ts +714 -0
  245. package/src/scripts/_lib/exec_evidence.ts +251 -0
  246. package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +15 -0
  247. package/src/scripts/_lib/fixtures/secret-detector/positives.txt +15 -0
  248. package/src/scripts/_lib/install_drift.ts +194 -0
  249. package/src/scripts/_lib/kernel_rules.ts +46 -0
  250. package/src/scripts/_lib/memory_fts_index.ts +390 -0
  251. package/src/scripts/_lib/orchestration_record.ts +91 -2
  252. package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
  253. package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
  254. package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
  255. package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
  256. package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
  257. package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
  258. package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
  259. package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
  260. package/src/scripts/_lib/persistence/types.ts +109 -0
  261. package/src/scripts/_lib/reddit_thread_parse.ts +598 -0
  262. package/src/scripts/_lib/risk_paths.ts +160 -0
  263. package/src/scripts/_lib/rtk_allowlist.ts +44 -0
  264. package/src/scripts/_lib/secret_detector.test.ts +108 -0
  265. package/src/scripts/_lib/secret_detector.ts +328 -0
  266. package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
  267. package/src/scripts/_lib/spawn_env.ts +7 -0
  268. package/src/scripts/_lib/sqlite_guard.ts +191 -0
  269. package/src/scripts/_lib/subagent_spawn.ts +53 -0
  270. package/src/scripts/_lib/tool_probe.ts +359 -0
  271. package/src/scripts/_lib/worker_budget.ts +107 -0
  272. package/src/scripts/adr/regenerate_index.ts +81 -6
  273. package/src/scripts/ai_council/blind_review.ts +0 -0
  274. package/src/scripts/ai_council/config.ts +12 -6
  275. package/src/scripts/ai_council/orchestrator.ts +73 -3
  276. package/src/scripts/ai_team/review_gate.ts +8 -10
  277. package/src/scripts/ai_team/team_dispatch.ts +48 -0
  278. package/src/scripts/audit_adr_coverage.ts +33 -0
  279. package/src/scripts/audit_initial_context.ts +1 -1
  280. package/src/scripts/bench_cross_source_eval.ts +400 -0
  281. package/src/scripts/bench_honesty_score.ts +1093 -0
  282. package/src/scripts/bench_hook_latency.ts +218 -0
  283. package/src/scripts/build_mcp_catalog.ts +275 -0
  284. package/src/scripts/build_mcp_registry_manifest.ts +46 -0
  285. package/src/scripts/build_proof.ts +207 -0
  286. package/src/scripts/chat_history.ts +8 -5
  287. package/src/scripts/check_adr_frontmatter.ts +195 -0
  288. package/src/scripts/check_artefact_count_messaging.ts +4 -0
  289. package/src/scripts/check_backstop_debt.ts +210 -0
  290. package/src/scripts/check_bundle_path_leakage.ts +343 -0
  291. package/src/scripts/check_claims.ts +188 -8
  292. package/src/scripts/check_comparison.ts +12 -0
  293. package/src/scripts/check_enforcement_coverage.ts +592 -0
  294. package/src/scripts/check_evaluator_budgets.ts +99 -0
  295. package/src/scripts/check_kernel_rule_bundle.ts +16 -12
  296. package/src/scripts/check_knowledge_sharing.ts +12 -1
  297. package/src/scripts/check_no_external_sources.ts +2 -2
  298. package/src/scripts/check_reach_channels.ts +407 -0
  299. package/src/scripts/check_reach_staleness.ts +364 -0
  300. package/src/scripts/check_secret_leak.test.ts +47 -0
  301. package/src/scripts/check_secret_leak.ts +290 -0
  302. package/src/scripts/check_source_pointer_freshness.ts +28 -3
  303. package/src/scripts/code_graph/build.ts +0 -0
  304. package/src/scripts/code_graph/cli.ts +379 -0
  305. package/src/scripts/code_graph/detect.ts +186 -0
  306. package/src/scripts/code_graph/extract.ts +386 -0
  307. package/src/scripts/code_graph/intent.ts +45 -0
  308. package/src/scripts/code_graph/loader.ts +123 -0
  309. package/src/scripts/code_graph/query.ts +290 -0
  310. package/src/scripts/code_graph/sanitize.ts +30 -0
  311. package/src/scripts/code_graph/sqlite_store.ts +174 -0
  312. package/src/scripts/code_graph/types.ts +83 -0
  313. package/src/scripts/code_graph/validate.ts +63 -0
  314. package/src/scripts/condense.ts +14 -6
  315. package/src/scripts/context_hygiene_hook.ts +8 -5
  316. package/src/scripts/council_cli.ts +126 -12
  317. package/src/scripts/detect_target_license.ts +203 -0
  318. package/src/scripts/evaluator_umbrella.sh +145 -0
  319. package/src/scripts/external_sources_denylist.json +8 -4
  320. package/src/scripts/first_run_gate_hook.ts +9 -5
  321. package/src/scripts/generate_subagent_floor.ts +194 -0
  322. package/src/scripts/hermetic-install.sh +3 -3
  323. package/src/scripts/hook_manifest.yaml +65 -16
  324. package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
  325. package/src/scripts/hooks/block_no_verify.ts +9 -9
  326. package/src/scripts/hooks/code_graph_nudge_hook.ts +191 -0
  327. package/src/scripts/hooks/concern_registry.ts +75 -0
  328. package/src/scripts/hooks/design_slop_hook.ts +8 -5
  329. package/src/scripts/hooks/dispatch_entry.ts +37 -0
  330. package/src/scripts/hooks/dispatch_hook.ts +176 -3
  331. package/src/scripts/hooks/hook_stdin.ts +42 -0
  332. package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
  333. package/src/scripts/hot_context_hook.ts +7 -6
  334. package/src/scripts/injection_scan_hook.ts +9 -1
  335. package/src/scripts/install +6 -6
  336. package/src/scripts/install-hooks.sh +4 -4
  337. package/src/scripts/install.sh +5 -4
  338. package/src/scripts/install.ts +264 -23
  339. package/src/scripts/iron_law_sha.ts +3 -12
  340. package/src/scripts/learning_sidecar.ts +0 -0
  341. package/src/scripts/lint_budget_ownership.ts +89 -0
  342. package/src/scripts/lint_command_routing.ts +35 -5
  343. package/src/scripts/lint_command_verbs.ts +42 -9
  344. package/src/scripts/lint_consumer_internal_refs.ts +211 -0
  345. package/src/scripts/lint_discovery_vocabulary.ts +2 -0
  346. package/src/scripts/lint_documented_commands.ts +670 -0
  347. package/src/scripts/lint_framework_leakage.ts +17 -3
  348. package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
  349. package/src/scripts/lint_governed_writes.ts +335 -0
  350. package/src/scripts/lint_hidden_unicode.ts +6 -0
  351. package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
  352. package/src/scripts/lint_memory_tripwire.ts +186 -0
  353. package/src/scripts/lint_override_kernel_guard.ts +267 -0
  354. package/src/scripts/lint_persistence.ts +171 -0
  355. package/src/scripts/lint_pre_migration_refs.ts +106 -0
  356. package/src/scripts/lint_provenance.ts +547 -0
  357. package/src/scripts/lint_provenance_vocabulary.ts +437 -0
  358. package/src/scripts/lint_spawn_payload.ts +283 -0
  359. package/src/scripts/lint_store_boundary.ts +152 -0
  360. package/src/scripts/lint_versioned_cache.ts +7 -1
  361. package/src/scripts/mcp_server/__main__.ts +7 -2
  362. package/src/scripts/mcp_server/catalog.ts +23 -1
  363. package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
  364. package/src/scripts/mcp_server/prompts.ts +6 -0
  365. package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
  366. package/src/scripts/mcp_server/tools.ts +56 -5
  367. package/src/scripts/mcp_telemetry_query.ts +2 -33
  368. package/src/scripts/mcp_telemetry_store.ts +64 -34
  369. package/src/scripts/measure_rule_budget.ts +3 -12
  370. package/src/scripts/memory_learn_hook.ts +126 -0
  371. package/src/scripts/memory_lookup.ts +0 -0
  372. package/src/scripts/memory_replay_24.ts +312 -0
  373. package/src/scripts/memory_report.ts +16 -3
  374. package/src/scripts/memory_signal.ts +48 -0
  375. package/src/scripts/memory_status.ts +6 -0
  376. package/src/scripts/minimal_safe_diff_hook.ts +8 -5
  377. package/src/scripts/onboarding_gate_hook.ts +8 -5
  378. package/src/scripts/orchestration_record.ts +16 -0
  379. package/src/scripts/pr_url_reminder_hook.ts +8 -1
  380. package/src/scripts/prepack-check.mjs +17 -0
  381. package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
  382. package/src/scripts/prepack_lifecycle_check.mjs +82 -0
  383. package/src/scripts/profile_staleness_hook.ts +8 -7
  384. package/src/scripts/reach_doctor.ts +1651 -0
  385. package/src/scripts/release.ts +24 -3
  386. package/src/scripts/report_install_drift.ts +109 -0
  387. package/src/scripts/risk_escalation_shadow.ts +160 -0
  388. package/src/scripts/roadmap_progress_hook.ts +8 -5
  389. package/src/scripts/schemas/agent-settings.schema.json +23 -0
  390. package/src/scripts/schemas/license-policy.schema.json +89 -0
  391. package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
  392. package/src/scripts/schemas/reach-channels.schema.json +134 -0
  393. package/src/scripts/schemas/reach-doctor-payload.schema.json +220 -0
  394. package/src/scripts/schemas/rule.schema.json +20 -0
  395. package/src/scripts/self_review_gate.test.ts +173 -1
  396. package/src/scripts/self_review_gate.ts +155 -15
  397. package/src/scripts/session_canary_hook.ts +182 -0
  398. package/src/scripts/skill_linter.ts +55 -0
  399. package/src/scripts/smoke_quickstart.ts +2 -2
  400. package/src/scripts/surface_probe_hook.ts +8 -7
  401. package/src/scripts/sync_gitattributes.ts +310 -0
  402. package/src/scripts/team_review_gate_hook.ts +13 -16
  403. package/src/scripts/validate_reach_prescriptions.ts +751 -0
  404. package/src/scripts/verify_before_complete_hook.ts +8 -5
  405. package/src/scripts/wrapper_freshness_hook.ts +8 -7
  406. package/src/server/schemas/settings.ts +24 -2
  407. package/src/shared/capabilities.test.ts +43 -0
  408. package/src/shared/capabilities.ts +75 -0
  409. package/src/templates/minimal/agents-overrides-readme.md +20 -0
  410. package/dist/ui/assets/index-BPFMZWUs.css +0 -1
  411. package/dist/ui/assets/index-BiEZiZ31.js +0 -40
  412. package/dist/ui/assets/index-BiEZiZ31.js.map +0 -1
  413. package/docs/CLAIMS.md +0 -261
  414. package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
  415. package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
  416. package/docs/SKILL_CENSUS.md +0 -352
  417. package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
  418. package/docs/adrs/cost/README.md +0 -9
  419. package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
  420. package/docs/adrs/memory/README.md +0 -10
  421. package/docs/adrs/router/0001-three-tier-routing.md +0 -119
  422. package/docs/adrs/router/README.md +0 -9
  423. package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
  424. package/docs/adrs/schema/README.md +0 -9
  425. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
  426. package/docs/adrs/smoke/README.md +0 -9
  427. package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
  428. package/docs/adrs/telegraph/README.md +0 -9
  429. package/docs/announcements/2026-05-non-dev-launch.md +0 -79
  430. package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
  431. package/docs/anti-reskin-gate.md +0 -60
  432. package/docs/architecture/augment-projection.md +0 -70
  433. package/docs/architecture/claude-bundle.md +0 -77
  434. package/docs/architecture/current-onboard-baseline.md +0 -126
  435. package/docs/architecture/current-safety-behavior.md +0 -137
  436. package/docs/architecture/multi-tool-projection.md +0 -125
  437. package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
  438. package/docs/architecture/source-projection.md +0 -85
  439. package/docs/architecture.md +0 -390
  440. package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
  441. package/docs/archive/CHANGELOG-7.0.0.md +0 -419
  442. package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
  443. package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
  444. package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
  445. package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
  446. package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
  447. package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
  448. package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
  449. package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
  450. package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
  451. package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
  452. package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
  453. package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
  454. package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
  455. package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
  456. package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
  457. package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
  458. package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
  459. package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
  460. package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
  461. package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
  462. package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
  463. package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
  464. package/docs/artefact-census.md +0 -71
  465. package/docs/benchmark.md +0 -648
  466. package/docs/benchmark.pinned.yml +0 -31
  467. package/docs/benchmarks.md +0 -85
  468. package/docs/capability-matrix.md +0 -33
  469. package/docs/case-studies/_template.md +0 -60
  470. package/docs/case-studies/frontend-design-positioning.md +0 -86
  471. package/docs/catalog.md +0 -721
  472. package/docs/command-flows.md +0 -272
  473. package/docs/command-naming-audit.md +0 -60
  474. package/docs/comparison.yaml +0 -45
  475. package/docs/contracts/CHANGELOG-conventions.md +0 -149
  476. package/docs/contracts/STABILITY.md +0 -188
  477. package/docs/contracts/adoption-signal-floor.md +0 -127
  478. package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
  479. package/docs/contracts/adr-chat-history-split.md +0 -140
  480. package/docs/contracts/adr-command-suggestion.md +0 -144
  481. package/docs/contracts/adr-forecast-construction-shape.md +0 -90
  482. package/docs/contracts/adr-gtm-context-spine.md +0 -116
  483. package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
  484. package/docs/contracts/adr-install-user-type-axis.md +0 -107
  485. package/docs/contracts/adr-layout.md +0 -107
  486. package/docs/contracts/adr-level-6-productization.md +0 -145
  487. package/docs/contracts/adr-mcp-runtime.md +0 -128
  488. package/docs/contracts/adr-product-ui-track.md +0 -381
  489. package/docs/contracts/adr-prompt-driven-execution.md +0 -186
  490. package/docs/contracts/adr-settings-sync-engine.md +0 -128
  491. package/docs/contracts/adr-user-types-axis.md +0 -127
  492. package/docs/contracts/adr-wing4-context-spine.md +0 -126
  493. package/docs/contracts/agent-user-schema.md +0 -170
  494. package/docs/contracts/agents-layout.md +0 -148
  495. package/docs/contracts/agents-md-tech-stack.md +0 -75
  496. package/docs/contracts/ai-council-config.md +0 -829
  497. package/docs/contracts/ai-team-config.md +0 -224
  498. package/docs/contracts/analysis-memory-loop.md +0 -149
  499. package/docs/contracts/at-rest-encryption.md +0 -191
  500. package/docs/contracts/audit-log-v1.md +0 -150
  501. package/docs/contracts/auto-orchestration-v1.md +0 -70
  502. package/docs/contracts/benchmark-ab-contract.md +0 -106
  503. package/docs/contracts/benchmark-corpus-spec.md +0 -125
  504. package/docs/contracts/benchmark-report-schema.md +0 -113
  505. package/docs/contracts/branch-protection-policy.md +0 -139
  506. package/docs/contracts/brand-token-consumption.md +0 -74
  507. package/docs/contracts/capability-boundary.md +0 -69
  508. package/docs/contracts/capability-packs.md +0 -217
  509. package/docs/contracts/ci-cost-budget.md +0 -111
  510. package/docs/contracts/ci-green-floor.md +0 -141
  511. package/docs/contracts/command-category-governance.md +0 -84
  512. package/docs/contracts/command-clusters.md +0 -399
  513. package/docs/contracts/command-surface-tiers.md +0 -176
  514. package/docs/contracts/command-taxonomy.md +0 -137
  515. package/docs/contracts/condensation-default-kill-criterion.md +0 -116
  516. package/docs/contracts/config-presets.md +0 -144
  517. package/docs/contracts/conformance.md +0 -84
  518. package/docs/contracts/consumer-bridge.md +0 -73
  519. package/docs/contracts/context-paths.md +0 -101
  520. package/docs/contracts/context-spine.md +0 -179
  521. package/docs/contracts/cost-dashboard.md +0 -143
  522. package/docs/contracts/cost-enforcement.md +0 -134
  523. package/docs/contracts/cost-profile-defaults.md +0 -110
  524. package/docs/contracts/cost-summary-schema.md +0 -107
  525. package/docs/contracts/creative-pack-boundary.md +0 -63
  526. package/docs/contracts/cross-repo-retrieval.md +0 -64
  527. package/docs/contracts/cross-wing-handoff.md +0 -134
  528. package/docs/contracts/daily-workspace.md +0 -147
  529. package/docs/contracts/decision-engine-gates.md +0 -120
  530. package/docs/contracts/decision-trace-v1.md +0 -177
  531. package/docs/contracts/design-artifact-lifecycle.md +0 -93
  532. package/docs/contracts/design-artifact-verification.md +0 -153
  533. package/docs/contracts/discovery-manifest.md +0 -209
  534. package/docs/contracts/discovery-manifest.schema.json +0 -254
  535. package/docs/contracts/evidence-based-pruning.md +0 -102
  536. package/docs/contracts/explain-modes.md +0 -187
  537. package/docs/contracts/explain-trace.schema.json +0 -144
  538. package/docs/contracts/file-ownership-matrix.json +0 -13941
  539. package/docs/contracts/file-ownership-matrix.md +0 -135
  540. package/docs/contracts/frontmatter-contract.md +0 -140
  541. package/docs/contracts/ghostwriter-schema.md +0 -337
  542. package/docs/contracts/governance-enforcement-projection.md +0 -159
  543. package/docs/contracts/gui-wizard.md +0 -350
  544. package/docs/contracts/harness-expectations.md +0 -128
  545. package/docs/contracts/hook-architecture-v1.md +0 -325
  546. package/docs/contracts/host-agent-protocol.md +0 -110
  547. package/docs/contracts/implement-ticket-flow.md +0 -625
  548. package/docs/contracts/init-telemetry.md +0 -132
  549. package/docs/contracts/injected-block-authenticity-model.md +0 -66
  550. package/docs/contracts/install-layout.md +0 -249
  551. package/docs/contracts/install-scopes.md +0 -82
  552. package/docs/contracts/installed-tools-lockfile.md +0 -144
  553. package/docs/contracts/installer-agent-mode.md +0 -137
  554. package/docs/contracts/iron-law-overrides.txt +0 -26
  555. package/docs/contracts/kernel-membership.md +0 -339
  556. package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
  557. package/docs/contracts/linear-ai-three-layers.md +0 -130
  558. package/docs/contracts/linter-structural-model.md +0 -181
  559. package/docs/contracts/load-context-budget-model.md +0 -259
  560. package/docs/contracts/load-context-schema.md +0 -220
  561. package/docs/contracts/local-analytics.md +0 -160
  562. package/docs/contracts/local-knowledge-ingestion.md +0 -96
  563. package/docs/contracts/local-server-api.md +0 -134
  564. package/docs/contracts/low-impact-corpus-format.md +0 -95
  565. package/docs/contracts/mcp-beta-criteria.md +0 -130
  566. package/docs/contracts/mcp-cloud-scope.md +0 -355
  567. package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
  568. package/docs/contracts/mcp-phase-1-scope.md +0 -272
  569. package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
  570. package/docs/contracts/mcp-tool-inventory.md +0 -64
  571. package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
  572. package/docs/contracts/measurement-baseline.md +0 -103
  573. package/docs/contracts/memory-visibility-v1.md +0 -160
  574. package/docs/contracts/mental-models.md +0 -336
  575. package/docs/contracts/migrate-command.md +0 -233
  576. package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
  577. package/docs/contracts/namespace.md +0 -125
  578. package/docs/contracts/no-runtime-boundary.md +0 -61
  579. package/docs/contracts/one-off-script-lifecycle.md +0 -110
  580. package/docs/contracts/orchestration-dsl-v1.md +0 -153
  581. package/docs/contracts/package-self-orientation.md +0 -163
  582. package/docs/contracts/pilot/agent-authority.md +0 -24
  583. package/docs/contracts/pilot/direct-answers.md +0 -70
  584. package/docs/contracts/pilot/language-and-tone.md +0 -63
  585. package/docs/contracts/plain-language-surface.md +0 -117
  586. package/docs/contracts/prelaunch-diagnostics.md +0 -151
  587. package/docs/contracts/profile-system.md +0 -167
  588. package/docs/contracts/reasoning-discipline-protocol.md +0 -83
  589. package/docs/contracts/release-pr-gating.md +0 -151
  590. package/docs/contracts/release-sizing.md +0 -107
  591. package/docs/contracts/release-trunk-sync.md +0 -105
  592. package/docs/contracts/review-lens-schema.md +0 -64
  593. package/docs/contracts/roadmap-complexity-standard.md +0 -138
  594. package/docs/contracts/role-experience.md +0 -125
  595. package/docs/contracts/router-blending.md +0 -71
  596. package/docs/contracts/rule-classification.md +0 -171
  597. package/docs/contracts/rule-interactions.md +0 -132
  598. package/docs/contracts/rule-interactions.yml +0 -260
  599. package/docs/contracts/rule-priority-hierarchy.md +0 -88
  600. package/docs/contracts/rule-router.md +0 -287
  601. package/docs/contracts/safety-model.md +0 -129
  602. package/docs/contracts/session-profile-overlay.md +0 -157
  603. package/docs/contracts/settings-api.md +0 -264
  604. package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
  605. package/docs/contracts/settings-sync-yaml-subset.md +0 -139
  606. package/docs/contracts/skill-bundled-assets.md +0 -62
  607. package/docs/contracts/skill-discovery.md +0 -80
  608. package/docs/contracts/skill-distribution-channels.md +0 -66
  609. package/docs/contracts/skill-domains.md +0 -144
  610. package/docs/contracts/skill-dry-run.md +0 -47
  611. package/docs/contracts/skill-family-map.yml +0 -915
  612. package/docs/contracts/smoke-contracts.md +0 -144
  613. package/docs/contracts/subagent-boundary.md +0 -59
  614. package/docs/contracts/surface-agent-contracts.md +0 -153
  615. package/docs/contracts/surface-matrix.md +0 -108
  616. package/docs/contracts/surface-tiers.md +0 -81
  617. package/docs/contracts/telegraph-telemetry.md +0 -83
  618. package/docs/contracts/ticket-bundle-format.md +0 -233
  619. package/docs/contracts/tier-3-contrib-plugin.md +0 -137
  620. package/docs/contracts/trust-and-safety.md +0 -144
  621. package/docs/contracts/ui-stack-extension.md +0 -237
  622. package/docs/contracts/ui-track-flow.md +0 -329
  623. package/docs/contracts/universal-skills.md +0 -91
  624. package/docs/contracts/user-type-schema.md +0 -146
  625. package/docs/contracts/value-dashboard-spec.md +0 -378
  626. package/docs/contracts/value-report-schema.md +0 -168
  627. package/docs/contracts/workflow-packs.md +0 -121
  628. package/docs/contracts/workspace-boundary.md +0 -84
  629. package/docs/contracts/workspace-documents.md +0 -144
  630. package/docs/contracts/write-engine.md +0 -182
  631. package/docs/cookbook.md +0 -152
  632. package/docs/customization.md +0 -685
  633. package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
  634. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
  635. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
  636. package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
  637. package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
  638. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
  639. package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
  640. package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
  641. package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
  642. package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
  643. package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
  644. package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
  645. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
  646. package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
  647. package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
  648. package/docs/decisions/ADR-016-installer-architecture.md +0 -189
  649. package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
  650. package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
  651. package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
  652. package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
  653. package/docs/decisions/ADR-021-deployment-shape.md +0 -153
  654. package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
  655. package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
  656. package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
  657. package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
  658. package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
  659. package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
  660. package/docs/decisions/ADR-028-root-layout.md +0 -147
  661. package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
  662. package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
  663. package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
  664. package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
  665. package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
  666. package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
  667. package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
  668. package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
  669. package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
  670. package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
  671. package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
  672. package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
  673. package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
  674. package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
  675. package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
  676. package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
  677. package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
  678. package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
  679. package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
  680. package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
  681. package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
  682. package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
  683. package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
  684. package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
  685. package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
  686. package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
  687. package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
  688. package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
  689. package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
  690. package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
  691. package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
  692. package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
  693. package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
  694. package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
  695. package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
  696. package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
  697. package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
  698. package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
  699. package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
  700. package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
  701. package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
  702. package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
  703. package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
  704. package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
  705. package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
  706. package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
  707. package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
  708. package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
  709. package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
  710. package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
  711. package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
  712. package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
  713. package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
  714. package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
  715. package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
  716. package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
  717. package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
  718. package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
  719. package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
  720. package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
  721. package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
  722. package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
  723. package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
  724. package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
  725. package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
  726. package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
  727. package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
  728. package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
  729. package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
  730. package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
  731. package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
  732. package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
  733. package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
  734. package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
  735. package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
  736. package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
  737. package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
  738. package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
  739. package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
  740. package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
  741. package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -246
  742. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -110
  743. package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
  744. package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
  745. package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -201
  746. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
  747. package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
  748. package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
  749. package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
  750. package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
  751. package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
  752. package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
  753. package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
  754. package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
  755. package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
  756. package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
  757. package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
  758. package/docs/decisions/INDEX.md +0 -136
  759. package/docs/deploy/connector-setup.md +0 -129
  760. package/docs/deploy/env-vars.md +0 -70
  761. package/docs/deploy/policy-cookbook.md +0 -130
  762. package/docs/deploy/quickstart.md +0 -112
  763. package/docs/deploy/small-team-recipe.md +0 -148
  764. package/docs/deploy/team-deployment-posture.md +0 -111
  765. package/docs/design/adversarial-council-eval.md +0 -106
  766. package/docs/design/council-vs-solo-baseline.md +0 -92
  767. package/docs/design/cross-model-parity-eval.md +0 -82
  768. package/docs/design/length-neutral-judge-rerun.md +0 -92
  769. package/docs/design/utilization-window-criteria.md +0 -51
  770. package/docs/development.md +0 -230
  771. package/docs/distribution/awesome-list-submission.md +0 -46
  772. package/docs/distribution/consumer-matrix.md +0 -96
  773. package/docs/distribution/launch-story-draft.md +0 -58
  774. package/docs/distribution/mcp-submission-checklist.md +0 -95
  775. package/docs/distribution/public-install-smoke.md +0 -68
  776. package/docs/distribution/registries.md +0 -117
  777. package/docs/distribution/registry-submissions.md +0 -85
  778. package/docs/distribution/telemetry-privacy.md +0 -128
  779. package/docs/distribution/telemetry-schema.md +0 -174
  780. package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
  781. package/docs/end-to-end-walkthroughs.md +0 -165
  782. package/docs/enforcement-by-host.md +0 -44
  783. package/docs/examples/agent-user.example.md +0 -22
  784. package/docs/experiences/agency.md +0 -49
  785. package/docs/experiences/content_creator.md +0 -49
  786. package/docs/experiences/developer.md +0 -49
  787. package/docs/experiences/finance.md +0 -50
  788. package/docs/experiences/founder.md +0 -49
  789. package/docs/experiences/ops.md +0 -49
  790. package/docs/featured-commands.md +0 -27
  791. package/docs/featured-skills.md +0 -95
  792. package/docs/flows.md +0 -67
  793. package/docs/getting-started-by-role.md +0 -190
  794. package/docs/getting-started-laravel.md +0 -72
  795. package/docs/getting-started-local-stdio.md +0 -77
  796. package/docs/getting-started.md +0 -254
  797. package/docs/github-topics.md +0 -93
  798. package/docs/governance-advantage.md +0 -72
  799. package/docs/governance.md +0 -96
  800. package/docs/guides/cross-repo-linked-projects.md +0 -93
  801. package/docs/guides/cross-repo-retrieval.md +0 -61
  802. package/docs/guides/frontend-design-corpus-refresh.md +0 -83
  803. package/docs/guides/local-analytics.md +0 -125
  804. package/docs/guides/local-knowledge.md +0 -127
  805. package/docs/guides/skill-discovery.md +0 -71
  806. package/docs/guides/skill-preview.md +0 -71
  807. package/docs/hook-payload-capture.md +0 -221
  808. package/docs/install-friction-report.md +0 -66
  809. package/docs/installation.md +0 -959
  810. package/docs/maintainers/branch-protection.md +0 -105
  811. package/docs/maintainers/dev-mode.md +0 -106
  812. package/docs/maintainers/optional-media-deps.md +0 -50
  813. package/docs/maintainers/system-map.md +0 -85
  814. package/docs/mcp-registries.md +0 -94
  815. package/docs/mcp-server.md +0 -175
  816. package/docs/mcp.md +0 -147
  817. package/docs/media/proof-demo.cast +0 -14
  818. package/docs/media/proof-demo.gif +0 -0
  819. package/docs/migration/consumer-template-consumption-model.md +0 -145
  820. package/docs/migration/divergences/README.md +0 -55
  821. package/docs/migration/divergences/_template.md +0 -50
  822. package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
  823. package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
  824. package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
  825. package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
  826. package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
  827. package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
  828. package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
  829. package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
  830. package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
  831. package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
  832. package/docs/migration/node-floor.md +0 -86
  833. package/docs/migration/v1-to-v2.md +0 -156
  834. package/docs/migration/yaml-roundtrip-spike.md +0 -163
  835. package/docs/migrations/commands-1.15.0.md +0 -117
  836. package/docs/parity/bench-external.json +0 -58
  837. package/docs/parity/bench.json +0 -41
  838. package/docs/parity/command-frontmatter.md +0 -60
  839. package/docs/parity/external-runtime.md +0 -46
  840. package/docs/personas.md +0 -178
  841. package/docs/positioning-evidence.md +0 -86
  842. package/docs/profiles.md +0 -108
  843. package/docs/proof.md +0 -176
  844. package/docs/quality.md +0 -98
  845. package/docs/readme-split-plan.md +0 -102
  846. package/docs/recruits/_template.md +0 -81
  847. package/docs/release-runbook.md +0 -141
  848. package/docs/role-experiences.md +0 -19
  849. package/docs/safety.md +0 -30
  850. package/docs/second-brain-scope.md +0 -116
  851. package/docs/self-review-gate.md +0 -65
  852. package/docs/setup/enterprise-and-offline.md +0 -201
  853. package/docs/setup/mcp-client-config.md +0 -358
  854. package/docs/setup/mcp-cloud-endpoints.md +0 -116
  855. package/docs/setup/mcp-cloud-registry-listing.md +0 -99
  856. package/docs/setup/mcp-cloud-setup.md +0 -183
  857. package/docs/setup/mcp-r2-bootstrap.md +0 -82
  858. package/docs/setup/mcp-server-docker.md +0 -101
  859. package/docs/setup/per-ide/aider.md +0 -48
  860. package/docs/setup/per-ide/antigravity.md +0 -68
  861. package/docs/setup/per-ide/augment.md +0 -89
  862. package/docs/setup/per-ide/claude-code.md +0 -97
  863. package/docs/setup/per-ide/claude-desktop.md +0 -207
  864. package/docs/setup/per-ide/cline.md +0 -43
  865. package/docs/setup/per-ide/codebuddy.md +0 -63
  866. package/docs/setup/per-ide/codex.md +0 -46
  867. package/docs/setup/per-ide/continue.md +0 -68
  868. package/docs/setup/per-ide/copilot.md +0 -80
  869. package/docs/setup/per-ide/cursor.md +0 -125
  870. package/docs/setup/per-ide/droid.md +0 -65
  871. package/docs/setup/per-ide/gemini-cli.md +0 -45
  872. package/docs/setup/per-ide/jetbrains.md +0 -76
  873. package/docs/setup/per-ide/kilocode.md +0 -66
  874. package/docs/setup/per-ide/kiro.md +0 -72
  875. package/docs/setup/per-ide/opencode.md +0 -62
  876. package/docs/setup/per-ide/qoder.md +0 -63
  877. package/docs/setup/per-ide/roocode.md +0 -68
  878. package/docs/setup/per-ide/trae.md +0 -63
  879. package/docs/setup/per-ide/warp.md +0 -63
  880. package/docs/setup/per-ide/windsurf.md +0 -109
  881. package/docs/setup/per-ide/zed.md +0 -73
  882. package/docs/showcase.md +0 -209
  883. package/docs/skill-duplication-findings.md +0 -91
  884. package/docs/skills-catalog.md +0 -265
  885. package/docs/skills-taxonomy.md +0 -90
  886. package/docs/spawn-site-policy.md +0 -72
  887. package/docs/succession.md +0 -80
  888. package/docs/threat-model.md +0 -29
  889. package/docs/troubleshooting.md +0 -155
  890. package/docs/ui-track-mental-model.md +0 -121
  891. package/docs/us-vs-the-category.md +0 -38
  892. package/docs/value.md +0 -86
  893. package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
  894. package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
  895. package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
  896. package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
  897. package/docs/walkthroughs/daily-workspace.md +0 -127
  898. package/docs/wedge/production-validator/README.md +0 -81
  899. package/docs/wedge/production-validator/first-run-check.sh +0 -42
  900. package/docs/wedge/production-validator/production-validator.md +0 -83
  901. package/docs/wizard.md +0 -173
@@ -1,139 +0,0 @@
1
- ---
2
- stability: beta
3
- keep-beta-until: 2026-09-04
4
- ---
5
-
6
- # Branch Protection Policy
7
-
8
- > **Status:** active · **Owner:** maintainer (GitHub UI ruleset) ·
9
- > **Opened:** 2026-05-26
10
- >
11
- > Codifies the per-PR-shape required-status-check floor. Companion to
12
- > [`release-pr-gating.md`](release-pr-gating.md) (Phase A) and
13
- > [`ci-cost-budget.md`](ci-cost-budget.md) (Phase C). Branch protection
14
- > itself is applied by the maintainer in the GitHub Settings → Rules UI;
15
- > this doc is the source of truth the UI mirrors.
16
-
17
- ## The floor
18
-
19
- Every PR proves a floor of CI checks before it can merge. The floor differs
20
- by **PR shape** — a feature PR proves more (it carries runtime / install
21
- risk) than a release PR (whose diff is structurally limited to version
22
- bumps). Shape is detected by the same predicates documented in
23
- `release-pr-gating.md`; the workflows enforce the cut.
24
-
25
- The optimisation is **never** subtractive: a PR whose shape can't be proved
26
- falls back to the full feature-PR floor. The cut is opt-in per push, not
27
- per branch name.
28
-
29
- ## Per-PR-shape required-check matrix
30
-
31
- | Required check | Feature PR | Release PR | Docs-only PR |
32
- |---|:---:|:---:|:---:|
33
- | `Consistency` | ✅ | ✅ | ✅ |
34
- | `Smoke Contracts` (smoke.yml) | ✅ | ✅ | ✅ |
35
- | `Skill Lint` | ✅ | — | — |
36
- | `Tests / install-tests (ubuntu)` | ✅ | — | — |
37
- | `Tests / install-tests (macos)` | ✅ | — | — |
38
- | `Tests / install-aux-tests (ubuntu)` | ✅ | — | — |
39
- | `Tests / install-aux-tests (macos)` | ✅ | — | — |
40
- | `Tests / python-tests (ubuntu × 3.10–3.13)` | ✅ | — | — |
41
- | `Tests / python-tests (macos × 3.12)` | ✅ | — | — |
42
- | `Tests / node-tests (ubuntu)` | ✅ | — | — |
43
- | `Tests / node-tests (macos)` | ✅ | — | — |
44
- | `Tests / windows-lockfile-export` | path-filter only | — | — |
45
- | `Public Install Smoke / smoke (matrix)` | ✅ | — | — |
46
- | `Release Validation / release-shape` | — | ✅ | — |
47
- | `Release Validation / changelog-entry` | — | ✅ | — |
48
- | `Release Validation / version-consistency` | — | ✅ | — |
49
- | `Migration Dry-Run` | path-filter only | path-filter only | — |
50
- | `Release Guard` (tag-trigger) | — | (post-merge tag) | — |
51
-
52
- **Definitions:**
53
-
54
- - **Feature PR** — head branch does not match `release/X.Y.Z` (the default).
55
- - **Release PR** — head branch matches `^release/\d+\.\d+\.\d+$` AND the
56
- diff stays within the version-bump allowlist (see `release-pr-gating.md`).
57
- Either condition failing falls the PR back to feature-PR mode. Author is
58
- either a maintainer (`task release`) or `github-actions[bot]` (the
59
- `release`-labeled-PR CI path, `.github/workflows/release.yml`) — the
60
- shape checks are author-agnostic. Verified live: this repo's branch
61
- protection requires zero approving reviews and exactly one status check
62
- (`Sync + Generate Tools Consistency`); the bot path's real friction is
63
- GitHub's separate bot-created-PR approval gate, not a review requirement
64
- — see [`ADR-113`](../decisions/ADR-113-ci-native-release-label-trigger.md).
65
- - **Docs-only PR** — diff is entirely inside `docs/**` or matches only
66
- top-level Markdown (`README.md`, `CHANGELOG.md`, `CONTRIBUTING.md`,
67
- `AGENTS.md`). No code, tests, workflows, or scripts. This shape is
68
- detected by an opt-in linter (`task ci:required-checks`); branch
69
- protection still defaults to the feature-PR floor unless the linter
70
- asserts the docs-only shape.
71
-
72
- ## Failure mode — the cut never silently lifts
73
-
74
- If a release-PR's diff exits the allowlist mid-stream (e.g. a last-minute
75
- CHANGELOG fixup that also touches `src/scripts/release.ts`):
76
-
77
- 1. `Release Validation / release-shape` exits non-zero.
78
- 2. The required-check set for the PR effectively flips back to the
79
- feature-PR floor because:
80
- - `tests.yml` / `smoke-public-install.yml` jobs carry
81
- `if: !startsWith(github.head_ref, 'release/')`, so they still skip on
82
- the branch name — but
83
- - the maintainer is expected to either narrow the diff (move the
84
- out-of-shape edit to a separate PR) or close-and-reopen the release
85
- PR off a freshly-bumped branch so the heavy matrix runs.
86
- 3. Branch protection still blocks the merge because `release-shape` is red.
87
-
88
- The branch name alone never bypasses the heavy matrix — the diff has to
89
- prove it can't regress runtime / install paths.
90
-
91
- ## Why path-filter only for some checks
92
-
93
- `Tests / windows-lockfile-export` and `Migration Dry-Run` are path-filtered
94
- at the workflow level (not branch-protection level). They run on every PR
95
- whose diff hits their declared paths and skip on every other PR. Branch
96
- protection lists them as "must pass if they run" — the GitHub Rules UI
97
- under "Required status checks" honours this when "Require branches to be
98
- up to date before merging" is enabled and the check's most recent run
99
- on the head SHA is green.
100
-
101
- ## Addendum — `python2ts` integration branch (py2ts migration)
102
-
103
- > Added 2026-06-11 for the Python → TypeScript migration (roadmap
104
- > `road-to-typescript-only-scripts.md`, Phase 1). Lives until the
105
- > migration completes; applied by the maintainer in the same Rules UI.
106
-
107
- The `python2ts` branch is the working trunk of the migration and carries
108
- its own protection rules:
109
-
110
- - **PRs only, no force-push, no deletion** — direct commits are blocked;
111
- the scheduled `py2ts-main-sync.yml` workflow is the single sanctioned
112
- direct-push writer (clean `main → python2ts` merges only; conflicts go
113
- through the `sync/main-into-python2ts` PR instead).
114
- - **Required checks** — the full feature-PR floor (matrix above) plus
115
- `py2ts Base Guard / py2ts-base-guard`.
116
- - **Migration PRs never target `main`** — a head branch matching
117
- `^(feat|fix|chore)/py2ts-` or `^py2ts` must base on `python2ts`; the
118
- base guard fails the PR otherwise. The inverse direction (non-py2ts
119
- head targeting `python2ts`) only warns — sync PRs and hotfixes are
120
- legitimate.
121
- - **Drift surfacing** — `py2ts-drift.yml` comments nightly on open
122
- migration PRs whose touched `.py` files changed on `python2ts` since
123
- the merge-base; such PRs rebase before merge.
124
- - **Final `python2ts → main` merge is user-owned** — Hard Floor
125
- (production-trunk merge, explicit per-turn confirmation); never a
126
- workflow, bot, or roadmap step.
127
-
128
- ## See also
129
-
130
- - [`release-pr-gating.md`](release-pr-gating.md) — shape predicates, cut
131
- surface, kept surface, fail-closed contract.
132
- - [`ci-cost-budget.md`](ci-cost-budget.md) — measured baseline durations
133
- per job + quarterly review cadence (Phase C).
134
- - `.github/workflows/release-validation.yml` — the three release-PR jobs.
135
- - `src/scripts/check_release_pr_shape.ts` — the shape detector.
136
- - `src/scripts/release.ts` — emits release PRs (both entry points); release
137
- cadence stays driven by Conventional Commits, not CI cost.
138
- - [`ADR-113`](../decisions/ADR-113-ci-native-release-label-trigger.md) — the
139
- CI-native (`release`-label) entry point and the bot-PR-approval finding.
@@ -1,74 +0,0 @@
1
- ---
2
- stability: beta
3
- keep-beta-until: 2026-08-17
4
- ---
5
-
6
- # Brand-Token Consumption Contract (greenfield interface stub)
7
-
8
- > **Status:** interface stub. This contract is the **only** greenfield surface
9
- > shipped by `road-to-image-brand-typography` (Phase B.3, decision 2). The
10
- > Lovable-style `scaffold` work-engine directive that *consumes* it ships in the
11
- > sibling `road-to-greenfield-scaffold.md` — **no `scaffold.py` lives here.**
12
- > This doc exists so brand→token output is not dead output: it publishes the
13
- > shape a scaffold step reads, and the `mixed`-set routing hook, against a frozen
14
- > interface a later roadmap can build to.
15
-
16
- ## 1 — What a scaffold step reads
17
-
18
- A greenfield scaffold step consumes a brand profile through two artifacts that
19
- pack-brand already produces — it does **not** call any pack-brand skill at
20
- build time:
21
-
22
- | Artifact | Producer | Shape |
23
- |---|---|---|
24
- | `.tokens.json` | [`brand-to-tokens`](../../src/skills/brand-to-tokens/SKILL.md) | DTCG (`$value` / `$type`) token tree — colour, type, spacing, radius. The same file `design-tokens/scripts/tokens.py` emits CSS vars + Tailwind from. |
25
- | voice profile | [`brand-strategy`](../../src/skills/brand-strategy/SKILL.md) / [`brand-identity`](../../src/skills/brand-identity/SKILL.md) | the confirmed voice traits + do/don't (3-5 traits) used to seed microcopy register. |
26
-
27
- **Read contract (frozen v1):**
28
-
29
- - The scaffold step reads `.tokens.json` as a DTCG document — never a
30
- pack-brand-internal format. Style Dictionary / Tokens Studio round-trip is the
31
- sanctioned external transform.
32
- - It reads the voice profile as a list of `{trait, do, don't}` records.
33
- - Absence of either artifact is **not an error** — it means greenfield with no
34
- brand layer. The scaffold step then proceeds on the brief and SHOULD invoke
35
- `brand-strategy` / `brand-identity` to define the tokens first (graceful, like
36
- the brand-asset generation fallback). The scaffold never invents tokens
37
- silently.
38
-
39
- ## 2 — The `mixed`-set routing hook
40
-
41
- A greenfield request can arrive as one of three set-shapes; the routing hook
42
- names which path the scaffold takes:
43
-
44
- | Set | Meaning | Brand-token behaviour |
45
- |---|---|---|
46
- | `branded` | a brand profile (`.tokens.json` + voice) exists | consume tokens; `brand-consistency` gates emitted artifacts. |
47
- | `bare` | no brand layer, none requested | scaffold on neutral defaults; no brand gate. |
48
- | `mixed` | partial brand (some tokens, no voice; or voice, no tokens) | consume what exists; **route the gaps** to `brand-identity` to define the missing slice before emitting, then re-read `.tokens.json`. |
49
-
50
- The `mixed` path is the load-bearing one: it prevents a scaffold from either
51
- ignoring a partial brand or hard-failing on an incomplete one. The sibling
52
- scaffold roadmap implements the directive; this contract fixes the hook's
53
- inputs/outputs so that implementation has a stable target.
54
-
55
- ## 3 — Direction of dependency (do not invert)
56
-
57
- ```
58
- pack-brand EXPORTS .tokens.json + voice profile
59
- │
60
- ▼ (read-only, build time)
61
- greenfield scaffold step (sibling roadmap) and pack-ai-image generation
62
- ```
63
-
64
- The scaffold and pack-ai-image generation **consume** brand tokens; they never
65
- write back into pack-brand. Generation does not live in pack-brand (that would
66
- be a God-object — decision 1). This contract is read-only from the consumer
67
- side.
68
-
69
- ## See also
70
-
71
- - [`brand-to-tokens`](../../src/skills/brand-to-tokens/SKILL.md) — emits the `.tokens.json` source of truth.
72
- - [`brand-consistency`](../../src/rules/brand-consistency.md) — the gate that runs on the `branded` / `mixed` paths.
73
- - [`design-tokens`](../../src/skills/design-tokens/SKILL.md) — DTCG token authoring + CSS/Tailwind emission.
74
- - `road-to-greenfield-scaffold.md` (sibling roadmap) — the scaffold directive that consumes this contract.
@@ -1,69 +0,0 @@
1
- ---
2
- stability: beta
3
- keep-beta-until: 2026-08-17
4
- ---
5
-
6
- # Capability Boundary Matrix
7
-
8
- The per-pack safety posture at a glance: is a pack on by default, does it need
9
- consent, a council pass, a disclaimer, an eval — and how risky is it. The matrix
10
- makes the invisible visible; the **enforcement** lives in the per-pack safety
11
- floors + gates (this doc is the map, not the engine).
12
-
13
- > Source of truth: `src/config/discovery/packs.yml` (`surface_tier`,
14
- > `trust_level_default`, `domain`, and the legal-review-prep gate fields) + the
15
- > domain safety-floor rules. Built in `road-to-capability-governance` Phase 1;
16
- > `risk_class` becomes a real pack field in Phase 2.
17
-
18
- ## Policy by risk class
19
-
20
- | `risk_class` | default install | consent | council / deep-research | disclaimer | eval expectation | surface_tier |
21
- |---|---|---|---|---|---|---|
22
- | **low** | per profile | no | no | no | optional | `core` |
23
- | **medium** (advisory) | per profile | no | no | **yes** (domain safety floor) | recommended | `core` |
24
- | **high** | **no** (opt-in) | **yes** | **yes** (fail-closed) | **yes** | **yes** | `lab` |
25
-
26
- - **low** — engineering, product, meta, and tooling packs. Normal capability; no domain liability surface.
27
- - **medium (advisory)** — packs that emit advisory-shaped output (finance, strategy). They carry a **domain safety floor** that mandates a not-X-advice disclaimer + structural elements (assumptions / counter-case / confidence). Not off-by-default, but never a final call.
28
- - **high** — regulated-advice-adjacent. Off by default, consent-gated, council-gated (fail-closed), disclaimer-bound, eval-backed, lab-tier, and promotion-gated behind a professional review.
29
-
30
- ## Per-pack assignment (non-low)
31
-
32
- | Pack | `risk_class` | Floor | Gates |
33
- |---|---|---|---|
34
- | `legal-review-prep` | **high** | `legal-safety-floor` | consent (`legal_review_prep.acknowledged`) · council (`require_council`, fail-closed) · hard individual-case STOP · attorney-review line + `Jurisdiction:` tag · attorney-framing-review promotion tripwire · `default_install: false` · `surface_tier: lab` |
35
- | `finance-basic` | medium | `finance-safety-floor` | not-financial-advice disclaimer · assumptions + sensitivity + confidence + counter-case · no final invest/raise call |
36
- | `finance-advanced` | medium | `finance-safety-floor` | as finance-basic (DCF / scenario depth) |
37
- | `founder-strategy` | medium | `strategy-safety-floor` | not-a-strategic-decision footer · bet + counter-case + residual risk + decision owner |
38
-
39
- Every other pack in `packs.yml` is **low** by default. A pack moves to medium the
40
- moment it ships advisory-shaped output behind a domain safety floor, and to high
41
- only through the high-risk checklist (consent + council + disclaimer + eval +
42
- lab + promotion gate) — see `road-to-legal-review-prep` for the worked example.
43
-
44
- ## Capability lifecycle (a view, not a new axis)
45
-
46
- Reviewers wanted one lifecycle vocabulary for promoting / retiring capabilities.
47
- This is a **derived view** over the metadata that already exists
48
- (`trust_level_default` + `surface_tier` + eval presence) — **not** a new field.
49
- Nothing to set; it is read off what is already there.
50
-
51
- | Lifecycle | Derived from | Promotion criterion (to reach it) |
52
- |---|---|---|
53
- | **experimental** | `surface_tier: lab` **or** `trust_level_default: experimental` | default for any new pack/skill |
54
- | **validated** | `surface_tier: core` **and** has an `evals/` (or regression harness) | a real eval exists + the pack left lab |
55
- | **recommended** | validated **and** in a default profile / ≥1 real consumer | adoption evidence, not just existence |
56
- | **deprecated** | a `deprecated`/`superseded_by` marker in frontmatter | a successor named (per the persona/skill deprecation discipline) |
57
-
58
- Read the lifecycle column off the matrix above: a `lab` + `experimental` pack
59
- (e.g. `legal-review-prep`, `ai-video`) is **experimental**; a `core` pack with an
60
- eval is **validated**; a `core` pack a profile ships is **recommended**.
61
- Promotion stays a human/maintainer decision (criteria-documented, never
62
- automated — see `road-to-capability-governance` Phase 6).
63
-
64
- ## See also
65
-
66
- - [`legal-safety-floor`](../../src/rules/legal-safety-floor.md) — the high-risk exemplar.
67
- - `finance-safety-floor` · `strategy-safety-floor` — the medium-risk advisory floors.
68
- - [`domain-pack-architecture`](../guidelines/agent-infra/domain-pack-architecture.md) — the pack build sequence.
69
- - `road-to-capability-governance` Phase 2 — `risk_class` as a validated pack field.
@@ -1,217 +0,0 @@
1
- ---
2
- stability: beta
3
- keep-beta-until: 2026-09-02
4
- ---
5
-
6
- # Capability packs
7
-
8
- > **Status:** beta — first draft 2026-06-02 (Phase 0 of
9
- > [`road-to-6.0.0-b-pack-scoped-projection.md`](../../agents/roadmaps/road-to-6.0.0-b-pack-scoped-projection.md)).
10
- > Formalizes the capability-pack layer so the 6.0.0-B projection filtering
11
- > and the 6.0.0-C per-pack budget lint have a manifest with a size class to
12
- > read.
13
-
14
- A **capability pack** is the domain grouping a single artefact declares it
15
- belongs to — the value carried in a skill's or command's `packs:` frontmatter
16
- (e.g. `laravel`, `php`, `finance-basic`, `ai-video`). It answers *"which
17
- vertical does this artefact serve?"* It is the unit the projector filters on
18
- when a profile is active (6.0.0-B) and the unit the per-pack command budget is
19
- enforced against (6.0.0-C).
20
-
21
- ## Capability pack vs. workflow pack — two distinct layers
22
-
23
- These are **different things** and must not be conflated:
24
-
25
- | | Capability pack | Workflow pack |
26
- |---|---|---|
27
- | **What** | A domain grouping (`packs:` tag on an artefact). | A curated bundle (`profile + preset + surface allowlist`). |
28
- | **Granularity** | Per-artefact ownership. | Per-audience composition. |
29
- | **Source of truth** | `src/config/discovery/packs.yml` (this contract). | `.agent-src.uncondensed/packs/<id>.yml` ([`workflow-packs`](workflow-packs.md)). |
30
- | **Cardinality** | ~19 in use today. | 3 seed bundles (`founder-mvp`, `content-engine`, `agency-delivery`). |
31
- | **Consumed by** | Projection filtering (6.0.0-B), per-pack budget lint (6.0.0-C), the pack-dependency graph. | The onboarding wizard's first-screen surface rendering. |
32
-
33
- A workflow pack *references* capability packs indirectly (through the profile
34
- it composes); a capability pack knows nothing about workflow packs. When this
35
- document says "pack" unqualified, it means **capability pack**.
36
-
37
- ## Registry — extend the existing vocabulary, do not fork it
38
-
39
- Capability packs already exist as the closed discovery vocabulary at
40
- `src/config/discovery/packs.yml`, governed by
41
- [`ADR-013`](../decisions/ADR-013-discovery-frontmatter-contract.md) § packs.
42
- This contract **formalizes that file as the capability-pack registry** — it
43
- does not introduce a parallel catalog. Phase 0 extends each entry with the
44
- three new fields below; the existing fields keep their ADR-013 meaning.
45
-
46
- ### Manifest shape
47
-
48
- ```yaml
49
- # src/config/discovery/packs.yml — one entry per capability pack
50
- - id: laravel # kebab-case; matches the `packs:` tag
51
- label: Laravel # human-readable (existing, ADR-013)
52
- description: Laravel framework patterns; depends on PHP.
53
- workspaces: [engineering] # discovery axis (existing, ADR-013)
54
- trust_level_default: professional # existing, ADR-013
55
- domain: engineering # NEW — the single primary vertical
56
- size_class: medium # NEW — budget input (see table)
57
- requires: [php, engineering-base] # NEW — hard dependency edges
58
- suggests: [api, ui] # NEW — soft companion edges
59
- ```
60
-
61
- ### Field semantics
62
-
63
- | Field | Type | Required | Notes |
64
- |---|---|:-:|---|
65
- | `id` | string | yes | kebab-case; matches the artefact `packs:` tag. No collision with a workflow-pack, profile, or preset id. |
66
- | `label` | string | yes | Existing ADR-013 field. |
67
- | `description` | string | yes | Existing ADR-013 field. |
68
- | `workspaces` | list[string] | yes | Existing ADR-013 discovery axis — the workspace tiles a pack surfaces under. A pack may serve several workspaces. |
69
- | `trust_level_default` | enum | yes | Existing ADR-013 field (`core` / `professional` / `experimental`). |
70
- | `domain` | string | in-use | **NEW.** The single primary vertical the pack belongs to (`engineering`, `product`, `finance`, `gtm`, `ops`, `founder`, `media`, `meta`, `fun`). Distinct from `workspaces` (a list of surfacing tiles): `domain` is the one canonical home used for the per-domain reasoning the persona/skill governance leans on; `workspaces` is where it *shows up*. **Co-required with `size_class`** — both present on an in-use pack, both absent on a reserved-unused vocab id. |
71
- | `size_class` | enum | in-use | **NEW.** `core` / `small` / `medium` / `large` / `platform`. The input the 6.0.0-C per-pack **visible-command** budget lint reads. Co-required with `domain`. Required for every in-use pack; absent on reserved vocab ids with zero artefacts (assigning it would fail the orphan-manifest determinism check). |
72
- | `always_on` | bool | no | **NEW.** When `true`, the pack loader (6.0.0-B Phase 3) includes this pack's artefacts in **every** projection, regardless of the selected profile / workspace / pack set. Default `false` (absent). See "Always-on packs" below. |
73
- | `requires` | list[id] | no | **NEW.** Hard dependency edges — packs whose artefacts must be present for this pack to function (e.g. `laravel.requires = [php, engineering-base]`). Formalizes the advisory `requires_hint` from ADR-013; once a manifest carries `requires`, `requires_hint` is the deprecated alias. Default `[]`. |
74
- | `suggests` | list[id] | no | **NEW.** Soft companion edges — packs commonly installed together but not mandatory (e.g. `laravel.suggests = [api, ui]`). Advisory; the resolver MAY surface them, never auto-installs. Default `[]`. |
75
-
76
- `cluster:` and `onboarding:` (ADR-013) remain valid optional fields and are
77
- out of scope for this contract.
78
-
79
- ## Size class → visible-command budget
80
-
81
- `size_class` exists so the 6.0.0-C budget lint can cap how many **visible**
82
- (`visibility: visible` + `advanced`) commands a pack surfaces. `internal`
83
- commands are the composition layer and are **uncapped** — capping them kills
84
- composability (council, 2026-06-02).
85
-
86
- | `size_class` | Visible-command budget | Intended for |
87
- |---|:-:|---|
88
- | `core` | ≤ 8 | Always-relevant base packs (`engineering-base`, `meta`). |
89
- | `small` | ≤ 2 | Narrow single-purpose packs (`fun`, `python`). |
90
- | `medium` | ≤ 5 | Standard framework / domain packs (`laravel`, `gtm-sales`). |
91
- | `large` | ≤ 8 | Broad multi-surface packs (`ai-video`). |
92
- | `platform` | ≤ 10 | Cross-cutting platform packs spanning many surfaces. |
93
-
94
- > The **budget table is owned here** (size_class definition); the **enforcement
95
- > lint** is defined and wired into CI by 6.0.0-C Phase 1. This contract assigns
96
- > the class; the lint reads it. No pack is classified by guess — Phase 0 Step
97
- > 0.2 assigns each in-use pack a class, reviewed at PR time.
98
-
99
- ## Budget exemption process
100
-
101
- The budget is a **hard cap with an explicit exemption path**, not a
102
- weighted/dynamic cap. The council (2026-06-02) was decisive: dynamic caps are
103
- "governance-by-algorithm and get gamed at the meta level". A pack that needs to
104
- exceed its `size_class` budget earns the exemption through a documented
105
- decision, never through a formula.
106
-
107
- A pack over budget MUST carry a **budget-exemption ADR** under `docs/adr/`
108
- (or legacy `docs/decisions/`) that records:
109
-
110
- 1. **The user need** — the concrete workflow each over-budget visible command
111
- serves, and why a user must reach it by name (not behind a `tier: 2`
112
- internal surface or inside a sibling cluster).
113
- 2. **The alternatives considered and rejected** — for each command over the
114
- cap: why not **merge** into an existing cluster, why not **relocate** to a
115
- pack with headroom, why not **internalize** (`tier: 2`). "All three were
116
- considered and rejected because …" is mandatory; an exemption that does not
117
- show its work is rejected at review.
118
- 3. **Re-justification cadence** — the exemption is **re-justified at the next
119
- major release**. An ADR that is not re-affirmed lapses; the lint then fails
120
- the over-budget pack until commands are cut or the ADR is renewed.
121
-
122
- The `--check-new` gate (Phase 1) does not parse ADRs — it is forward-looking
123
- and fails any *newly visible* command that breaches the cap. The exemption ADR
124
- is the human record that authorises a maintainer to grandfather a pre-existing
125
- over-budget pack; the gate stays green for it only because no *new* visible
126
- command is added.
127
-
128
- ### Gaming-detection — pack-split dodge
129
-
130
- The cheapest way to dodge a per-pack cap is to split a pack in two so each half
131
- stays under budget. To catch this at the meta level: **more than 3 new
132
- capability packs created in any rolling 6-month window without a user-facing
133
- launch (a profile, a wizard surface, or a documented consumer use case) triggers
134
- a governance review.** A burst of pack creation with no corresponding surfacing
135
- is the signal that the cap is being routed around rather than respected. The
136
- review asks the same exemption questions above, one level up: does each new pack
137
- serve a distinct user need, or is it a budget-laundering split?
138
-
139
- ## Always-on packs
140
-
141
- A pack flagged `always_on: true` is a **default pack**: the resolver includes
142
- its artefacts in every projection unconditionally — it is never gated by the
143
- selected profile, workspace, or pack set, and it cannot be deselected. This is
144
- the mechanism for package-maintenance tooling that must be present wherever
145
- agent-config is installed.
146
-
147
- **Day-one always-on pack:** `meta`. Every install ships the agent-config layer
148
- (`.augment/`, `.claude/`, …), so the commands that maintain that layer
149
- (`condense`, `agents:audit`, `optimize:skills`, …) are relevant in every
150
- project regardless of the consumer's domain. The 6.0.0-B Phase 3 resolver
151
- seeds the active set with all `always_on` packs before expanding the selected
152
- profile's `requires` closure.
153
-
154
- `always_on` is independent of `size_class` (an always-on pack still has a
155
- visible-command budget) and of `requires` (always-on packs are seeded, not
156
- reached through a dependency edge).
157
-
158
- ## Pack-dependency graph
159
-
160
- `requires` and `suggests` form a directed graph the pack loader
161
- (`scripts/config/packs.py`, 6.0.0-B Phase 3) expands when resolving the active
162
- artefact set: selecting `laravel` pulls in `php` and `engineering-base` via the
163
- transitive `requires` closure, so a Laravel install never lands without its
164
- PHP / testing base (closes the council / part1.5 § 6 "install Laravel but the
165
- base is missing" gap).
166
-
167
- **Graph invariants** (enforced by the Phase 0 Step 0.3 graph lint):
168
-
169
- 1. Every `requires` / `suggests` target resolves to a declared capability pack
170
- — no dangling edge.
171
- 2. The `requires` graph is **acyclic** (`suggests` may form cycles; it is
172
- advisory and never expanded transitively).
173
- 3. `requires` is transitive (resolver expands the full closure); `suggests` is
174
- non-transitive (one hop, surfaced not installed).
175
-
176
- ## Determinism
177
-
178
- The capability-pack registry is release-time data, not runtime state. Two
179
- checks keep it honest (Phase 0 Step 0.2):
180
-
181
- - **No orphan tag** — every `packs:` value used by any artefact has a manifest
182
- entry.
183
- - **No orphan manifest** — every manifest entry is referenced by at least one
184
- artefact (a pack with zero artefacts is dead vocabulary; remove it or cite
185
- the artefact).
186
-
187
- Both reproduce from the discovery manifest
188
- (`scripts/build_discovery_manifest.py` → `dist/discovery/`) with no manual
189
- list.
190
-
191
- ## In-use packs (2026-06-02)
192
-
193
- 19 capability packs carry at least one artefact today, enumerated from the
194
- built discovery manifest (not guessed):
195
-
196
- `engineering-base`, `meta`, `laravel`, `php`, `react`, `symfony`, `nextjs`,
197
- `typescript`, `python`, `ai-video`, `ops-people`, `gtm-marketing`,
198
- `gtm-sales`, `founder-strategy`, `product-basic`, `product-discovery`,
199
- `finance-basic`, `finance-advanced`, `fun`.
200
-
201
- Vocabulary ids with **zero** referencing artefacts today (`javascript`,
202
- `small-business`, `construction`) are not assigned a `size_class` until an
203
- artefact adopts them — an orphan manifest fails the determinism check.
204
-
205
- ## See also
206
-
207
- - [`workflow-packs`](workflow-packs.md) — the bundle layer; do not conflate.
208
- - [`ADR-013`](../decisions/ADR-013-discovery-frontmatter-contract.md) — the
209
- `packs:` vocabulary this contract formalizes; amendments require an ADR-013
210
- amendment in the same PR.
211
- - [`discovery-manifest`](discovery-manifest.md) — the release-time scan that
212
- feeds the determinism checks.
213
- - [`command-surface-tiers`](command-surface-tiers.md) — the orthogonal
214
- visibility axis (tier 0/1/2); `size_class` budgets count `visible` +
215
- `advanced`, tiers gate `--help` surfacing.
216
- - [`road-to-6.0.0-b-pack-scoped-projection.md`](../../agents/roadmaps/road-to-6.0.0-b-pack-scoped-projection.md)
217
- Phase 0 — the steps that derive and lint the manifests defined here.
@@ -1,111 +0,0 @@
1
- ---
2
- stability: beta
3
- keep-beta-until: 2026-09-04
4
- ---
5
-
6
- # CI Cost Budget
7
-
8
- > **Status:** active · **Owner:** maintainer · **Opened:** 2026-05-26 ·
9
- > **Review cadence:** quarterly (next: 2026-08-26)
10
- >
11
- > Measured durations + trigger surfaces for every PR-blocking CI job in
12
- > `.github/workflows/`. Sets a per-job wall-clock budget (5 min average)
13
- > beyond which the job either earns its cost in writing or gets a
14
- > follow-up optimisation step. Companion to
15
- > [`release-pr-gating.md`](release-pr-gating.md) and
16
- > [`branch-protection-policy.md`](branch-protection-policy.md).
17
-
18
- ## Baseline (pre-optimisation, 2026-05-26)
19
-
20
- Captured via `gh run list --branch main --limit 50 --json
21
- name,createdAt,updatedAt`. Wall-clock figures are the average of the most
22
- recent 50 main-branch runs.
23
-
24
- | Workflow | Job | OS × variant | Avg duration | Trigger surface |
25
- |---|---|---|--:|---|
26
- | `tests.yml` | `install-tests` | 4 shards × 2 OS | 218 s | `scripts/**`, `tests/**`, `src/**`, manifest pins |
27
- | `tests.yml` | `install-aux-tests` | 2 OS | 90 s | same as above |
28
- | `tests.yml` | `python-tests` | 4 versions × ubuntu + 3.12 × macOS | ~210 s | same as above |
29
- | `tests.yml` | `node-tests` | 2 OS | 180 s | same as above |
30
- | `tests.yml` | `windows-lockfile-export` | windows-latest | 60–90 s | same as above (over-broad — see Phase C Step 1) |
31
- | `smoke-public-install.yml` | `smoke` | 3 OS × 2 Node | 413 s | install paths + setup.sh + templates |
32
- | `consistency.yml` | (single) | ubuntu | 27 s | always-on (PR / push) |
33
- | `smoke.yml` | smoke-contracts | ubuntu | 18 s | `scripts/schemas/**` |
34
- | `migration-dry-run.yml` | (single) | ubuntu | 20 s | migration-touching paths |
35
- | `skill-lint.yml` | (single) | ubuntu | 64 s | `dist/agent-src*/**`, schemas |
36
- | `release-guard.yml` | (single) | ubuntu | < 10 s | tag-trigger only |
37
-
38
- **Critical path observations:**
39
-
40
- - `smoke-public-install.yml` and `tests.yml` dominate non-release-PR
41
- wall-clock. Both trigger on `package.json` — a release PR (which only
42
- touches `package.json` + CHANGELOG + marketplace + pack manifests)
43
- pulled the full matrix on every bump pre-Phase A.
44
- - `tests.yml` `python-tests` ran four Python versions on Linux + 3.12 on
45
- macOS on every PR touching `scripts/**`. The 3.10 / 3.11 / 3.13 legs
46
- are extras: they prove the supported range but rarely surface a
47
- Python-version-only regression. Moved to a path-filtered sibling
48
- workflow in Phase C Step 2.
49
- - `tests.yml` `windows-lockfile-export` fired on every PR touching
50
- `scripts/**` even when the PR never went near `install_global` /
51
- `cmd_export`. Moved to its own path-filtered workflow in Phase C
52
- Step 1.
53
-
54
- ## Expected savings (post-optimisation)
55
-
56
- The Phase A guards on `tests.yml` + `smoke-public-install.yml` cut
57
- release-PR critical-path from `218 s + 413 s` (serial worst case ≈ 11
58
- min) to `~30 s` (`Consistency` + `Smoke Contracts` + new `Release
59
- Validation`). Phase C cuts feature-PR critical-path by removing the
60
- Windows leg (60–90 s) and the 3-version Python sweep from PRs that
61
- don't touch Python paths.
62
-
63
- | Scenario | Pre | Post | Reduction |
64
- |---|--:|--:|--:|
65
- | Release PR (release/X.Y.Z) | ~660 s | ~60 s | –91 % |
66
- | Feature PR touching scripts/** but no install_global / cmd_export | ~700 s | ~600 s | –14 % |
67
- | Feature PR touching only docs/** | ~30 s (consistency) | ~30 s | unchanged |
68
- | Feature PR touching Python paths only on 3.12 | ~700 s | ~700 s | unchanged (baseline still runs) |
69
-
70
- ## Per-job cost ceiling — 5-min average
71
-
72
- Any job averaging **> 5 min wall-clock** across the most-recent 50
73
- main-branch runs requires one of:
74
-
75
- 1. A documented justification in this file ("This job protects
76
- property X; shrinking it would mean losing the regression Y").
77
- 2. A follow-up optimisation step opened in the next quarterly review.
78
- 3. An ADR superseding the ceiling for this specific job (e.g. integration
79
- smoke that proves a real consumer-visible promise).
80
-
81
- Current jobs above the ceiling: `smoke-public-install.yml` (413 s) —
82
- ceiling violation is acknowledged. The Phase A skip on release PRs
83
- mitigates it; an ADR will follow if it re-exceeds 5 min on feature PRs
84
- post-Phase C.
85
-
86
- ## Quarterly review checklist
87
-
88
- Run the first Monday of every quarter:
89
-
90
- 1. Re-capture the baseline table via `gh run list --branch main --limit
91
- 50 --json name,createdAt,updatedAt` + arithmetic.
92
- 2. Compare each row against the previous quarter; flag any > 25 %
93
- regression.
94
- 3. For every row over the 5-min ceiling, file a follow-up step in the
95
- open CI-roadmap (or in this file's history if no roadmap is
96
- currently active).
97
- 4. Update the "Expected savings" table once optimisations land so the
98
- delta is provable, not asserted.
99
- 5. Audit the path-filter surfaces — when a workflow keeps firing on
100
- PRs that don't touch its real scope, tighten the filter.
101
-
102
- ## See also
103
-
104
- - [`release-pr-gating.md`](release-pr-gating.md) — release-PR shape
105
- predicates, cut surface, kept surface.
106
- - [`branch-protection-policy.md`](branch-protection-policy.md) — required
107
- status check floor per PR shape.
108
- - `.github/workflows/python-version-sweep.yml` — extras Python versions
109
- (3.10 · 3.11 · 3.13) on Python-path PRs.
110
- - `.github/workflows/windows-lockfile-export.yml` — Windows leg gated by
111
- `install_global` / `cmd_export` paths.