oh-my-opencode 5.0.0-beta.9 → 5.0.0-beta.90

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 (1478) hide show
  1. package/.agents/command/publish.md +15 -7
  2. package/.agents/command/remove-deadcode.md +1 -1
  3. package/.agents/skills/codex-qa/SKILL.md +2 -0
  4. package/.agents/skills/codex-qa/scripts/lsp-e2e.sh +1 -3
  5. package/.agents/skills/hyperplan/SKILL.md +6 -6
  6. package/.agents/skills/opencode-qa/scripts/lsp-e2e.sh +1 -1
  7. package/.agents/skills/pre-publish-review/SKILL.md +9 -12
  8. package/.agents/skills/publish/SKILL.md +15 -7
  9. package/.agents/skills/remove-deadcode/SKILL.md +1 -1
  10. package/.agents/skills/security-research/SKILL.md +4 -4
  11. package/.agents/skills/senpi-qa/SKILL.md +86 -0
  12. package/.agents/skills/senpi-qa/scripts/resolve-evidence-dir.mjs +65 -0
  13. package/.agents/skills/senpi-qa/scripts/resolve-evidence-dir.test.mjs +171 -0
  14. package/.agents/skills/tech-debt-audit/SKILL.md +6 -76
  15. package/.opencode/command/publish.md +15 -7
  16. package/.opencode/skills/hyperplan/SKILL.md +1 -1
  17. package/.opencode/skills/pre-publish-review/SKILL.md +9 -12
  18. package/README.ja.md +64 -69
  19. package/README.ko.md +65 -70
  20. package/README.md +108 -182
  21. package/README.ru.md +60 -68
  22. package/README.zh-cn.md +60 -69
  23. package/THIRD-PARTY-NOTICES.md +35 -105
  24. package/dist/agents/gpt-prompt-identity.d.ts +1 -1
  25. package/dist/agents/sisyphus/grok-4.d.ts +3 -2
  26. package/dist/agents/sisyphus-runtime-prompt-reconciler.d.ts +15 -4
  27. package/dist/agents/types.d.ts +4 -2
  28. package/dist/cli/config-manager/parse-opencode-config-file.d.ts +2 -1
  29. package/dist/cli/config-manager/refresh-opencode-plugin-sandbox.d.ts +31 -0
  30. package/dist/cli/doctor/checks/browser-provider.d.ts +2 -0
  31. package/dist/cli/doctor/checks/index.d.ts +2 -0
  32. package/dist/cli/doctor/checks/latest-version.d.ts +11 -0
  33. package/dist/cli/doctor/checks/system-plugin.d.ts +4 -3
  34. package/dist/cli/doctor/checks/tui-plugin-config.d.ts +11 -0
  35. package/dist/cli/doctor/framework/constants.d.ts +5 -0
  36. package/dist/cli/doctor/framework/types.d.ts +2 -0
  37. package/dist/cli/fallback-lane-policy.d.ts +1 -0
  38. package/dist/cli/index.js +59971 -62802
  39. package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +1 -1
  40. package/dist/cli/install-native/index.d.ts +12 -0
  41. package/dist/cli/install-native/legacy-omo-bin.d.ts +27 -0
  42. package/dist/cli/install-native/offer-native-setup.d.ts +31 -0
  43. package/dist/cli/install-native/omo-bin-test-fixtures.d.ts +35 -0
  44. package/dist/cli/install-native/plan.d.ts +19 -0
  45. package/dist/cli/install-native/repair-legacy-omo-bin.d.ts +26 -0
  46. package/dist/cli/install-native/run-native-install.d.ts +33 -0
  47. package/dist/cli/install-native/verify-omo-command.d.ts +22 -0
  48. package/dist/cli/install-native-dev/index.d.ts +4 -0
  49. package/dist/cli/native-dev-platform-flag.d.ts +5 -0
  50. package/dist/cli/native-edition-hint.d.ts +10 -0
  51. package/dist/cli/runtime-commands.d.ts +1 -1
  52. package/dist/cli/types.d.ts +3 -2
  53. package/dist/cli/worktree-sweep/classify.d.ts +16 -0
  54. package/dist/cli/worktree-sweep/format.d.ts +8 -0
  55. package/dist/cli/worktree-sweep/git.d.ts +19 -0
  56. package/dist/cli/worktree-sweep/index.d.ts +7 -0
  57. package/dist/cli/worktree-sweep/options.d.ts +2 -0
  58. package/dist/cli/worktree-sweep/parse-worktree-list.d.ts +8 -0
  59. package/dist/cli/worktree-sweep/sweep.d.ts +2 -0
  60. package/dist/cli/worktree-sweep/types.d.ts +65 -0
  61. package/dist/cli/worktree-sweep/worktree-sweep.d.ts +2 -0
  62. package/dist/cli-node/index.js +60093 -62901
  63. package/dist/config/index.d.ts +1 -1
  64. package/dist/config/schema/agent-names.d.ts +0 -1
  65. package/dist/config/schema/background-task.d.ts +1 -0
  66. package/dist/config/schema/browser-automation.d.ts +0 -2
  67. package/dist/config/schema/commands.d.ts +1 -1
  68. package/dist/config/schema/hooks.d.ts +2 -2
  69. package/dist/config/schema/oh-my-opencode-config.d.ts +5 -12
  70. package/dist/config/schema/ulw-execute.d.ts +5 -0
  71. package/dist/config/schema.d.ts +0 -1
  72. package/dist/config/validate.d.ts +2 -0
  73. package/dist/config-migration/category-deep-split.d.ts +3 -0
  74. package/dist/config-migration/harness-native-rename.d.ts +3 -0
  75. package/dist/config-migration/migration-plans.d.ts +1 -0
  76. package/dist/config-migration/subscription-provider-rename.d.ts +4 -0
  77. package/dist/create-hooks.d.ts +4 -2
  78. package/dist/features/background-agent/compaction-aware-message-resolver.d.ts +1 -0
  79. package/dist/features/background-agent/constants.d.ts +0 -7
  80. package/dist/features/background-agent/error-classifier.d.ts +1 -0
  81. package/dist/features/background-agent/manager.d.ts +9 -1
  82. package/dist/features/background-agent/parent-wake-dispatched-tracker.d.ts +0 -1
  83. package/dist/features/background-agent/parent-wake-notifier-types.d.ts +1 -1
  84. package/dist/features/background-agent/parent-wake-prompt-dispatch.d.ts +1 -1
  85. package/dist/features/background-agent/parent-wake-session-inspector.d.ts +1 -1
  86. package/dist/features/background-agent/subagent-spawn-limits.d.ts +8 -0
  87. package/dist/features/background-agent/types.d.ts +4 -0
  88. package/dist/features/boulder-state/storage.d.ts +1 -1
  89. package/dist/features/btw-side/btw-command-draft.d.ts +7 -0
  90. package/dist/features/btw-side/context-injector.d.ts +15 -0
  91. package/dist/features/btw-side/index.d.ts +8 -0
  92. package/dist/features/btw-side/metadata.d.ts +15 -0
  93. package/dist/features/btw-side/parent-context-budget.d.ts +9 -0
  94. package/dist/features/btw-side/server-session-registry.d.ts +8 -0
  95. package/dist/features/btw-side/tui-adoption-cache.d.ts +13 -0
  96. package/dist/features/btw-side/tui-adoption-guard.d.ts +5 -0
  97. package/dist/features/btw-side/tui-controller-types.d.ts +68 -0
  98. package/dist/features/btw-side/tui-controller.d.ts +19 -0
  99. package/dist/features/btw-side/tui-escape-return.d.ts +12 -0
  100. package/dist/features/btw-side/tui-keymap.d.ts +17 -0
  101. package/dist/features/btw-side/tui-parent-validator.d.ts +6 -0
  102. package/dist/features/btw-side/tui-picker-options.d.ts +20 -0
  103. package/dist/features/btw-side/tui-picker.d.ts +9 -0
  104. package/dist/features/btw-side/tui-prompt-queue.d.ts +8 -0
  105. package/dist/features/btw-side/tui-session-bridge.d.ts +11 -0
  106. package/dist/features/btw-side/tui-session-catalog.d.ts +35 -0
  107. package/dist/features/btw-side/tui-side-removal.d.ts +11 -0
  108. package/dist/features/btw-side/tui-side-start.d.ts +9 -0
  109. package/dist/features/btw-side/tui-wiring.d.ts +8 -0
  110. package/dist/features/builtin-commands/templates/hyperplan.d.ts +1 -1
  111. package/dist/features/builtin-commands/templates/refactor-sections/team-mode-addendum.d.ts +1 -1
  112. package/dist/features/builtin-commands/templates/remove-ai-slops.d.ts +1 -1
  113. package/dist/features/builtin-commands/templates/ulw-execute.d.ts +1 -0
  114. package/dist/features/builtin-commands/types.d.ts +1 -1
  115. package/dist/features/claude-tasks/storage.d.ts +7 -2
  116. package/dist/features/hook-message-injector/index.d.ts +1 -0
  117. package/dist/features/hook-message-injector/sdk-message-lookup.d.ts +1 -0
  118. package/dist/features/monitor/manager-internals.d.ts +1 -1
  119. package/dist/features/monitor/output-injector-types.d.ts +1 -1
  120. package/dist/features/native-edition-nudge/index.d.ts +2 -0
  121. package/dist/features/native-edition-nudge/tui.d.ts +33 -0
  122. package/dist/features/opengateway-provider/index.d.ts +13 -0
  123. package/dist/features/task-toast-manager/manager.d.ts +0 -24
  124. package/dist/features/team-mode/tools/lifecycle-inline-spec.d.ts +1 -1
  125. package/dist/features/team-mode/tools/messaging-fallback-wake.d.ts +17 -0
  126. package/dist/features/team-mode/tools/messaging-live-delivery-recipient.d.ts +3 -0
  127. package/dist/features/team-mode/tools/messaging-runtime.d.ts +7 -0
  128. package/dist/hooks/anthropic-context-window-limit-recovery/message-storage-directory.d.ts +0 -3
  129. package/dist/hooks/anthropic-context-window-limit-recovery/state.d.ts +1 -0
  130. package/dist/hooks/anthropic-context-window-limit-recovery/storage/empty-messages.d.ts +0 -1
  131. package/dist/hooks/anthropic-context-window-limit-recovery/tool-result-storage.d.ts +11 -0
  132. package/dist/hooks/atlas/atlas-hook.d.ts +1 -0
  133. package/dist/hooks/atlas/atlas-lifecycle-store.d.ts +50 -0
  134. package/dist/hooks/atlas/event-handler.d.ts +1 -0
  135. package/dist/hooks/atlas/tool-execute-before.d.ts +3 -0
  136. package/dist/hooks/atlas/types.d.ts +1 -0
  137. package/dist/hooks/auto-update-checker/checker/sandbox-refresh.d.ts +51 -0
  138. package/dist/hooks/auto-update-checker/checker/semver-compare.d.ts +17 -0
  139. package/dist/hooks/auto-update-checker/checker.d.ts +3 -0
  140. package/dist/hooks/auto-update-checker/hook/background-update-check.d.ts +8 -0
  141. package/dist/hooks/auto-update-checker/hook.d.ts +2 -0
  142. package/dist/hooks/claude-code-hooks/session-hook-state.d.ts +1 -0
  143. package/dist/hooks/claude-code-hooks/stop.d.ts +2 -0
  144. package/dist/hooks/claude-code-hooks/todo.d.ts +0 -1
  145. package/dist/hooks/claude-code-hooks/transcript.d.ts +2 -0
  146. package/dist/hooks/comment-checker/__fixtures__/download-probe.fixture.d.ts +1 -0
  147. package/dist/hooks/compaction-context-injector/validated-model.d.ts +2 -0
  148. package/dist/hooks/fsync-skip-warning/index.d.ts +4 -0
  149. package/dist/hooks/hashline-edit-diff-enhancer/hook.d.ts +1 -0
  150. package/dist/hooks/hashline-edit-diff-enhancer/pending-captures.d.ts +13 -0
  151. package/dist/hooks/index.d.ts +2 -2
  152. package/dist/hooks/keyword-detector/hook.d.ts +9 -0
  153. package/dist/hooks/keyword-detector/ultrawork/index.d.ts +2 -0
  154. package/dist/hooks/keyword-detector/ultrawork/source-detector.d.ts +0 -1
  155. package/dist/hooks/model-fallback/hook.d.ts +1 -1
  156. package/dist/hooks/native-edition-nudge/decide.d.ts +4 -0
  157. package/dist/hooks/native-edition-nudge/hook.d.ts +26 -0
  158. package/dist/hooks/native-edition-nudge/index.d.ts +5 -0
  159. package/dist/hooks/native-edition-nudge/state.d.ts +9 -0
  160. package/dist/hooks/native-edition-nudge/types.d.ts +38 -0
  161. package/dist/hooks/plan-format-validator/hook.d.ts +19 -0
  162. package/dist/hooks/prometheus-md-only/agent-resolution.d.ts +2 -2
  163. package/dist/hooks/runtime-fallback/chat-message-handler.d.ts +2 -0
  164. package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +1 -0
  165. package/dist/hooks/runtime-fallback/runtime-model-settings.d.ts +6 -0
  166. package/dist/hooks/runtime-fallback/session-status-handler.d.ts +1 -1
  167. package/dist/hooks/runtime-fallback/types.d.ts +3 -1
  168. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +1 -1
  169. package/dist/hooks/todo-continuation-enforcer/types.d.ts +1 -0
  170. package/dist/hooks/{start-work → ulw-execute}/context-info-builder.d.ts +1 -1
  171. package/dist/hooks/{start-work → ulw-execute}/index.d.ts +1 -1
  172. package/dist/hooks/ulw-execute/ulw-execute-hook.d.ts +23 -0
  173. package/dist/hooks/unstable-agent-babysitter/task-message-analyzer.d.ts +1 -0
  174. package/dist/index.js +34554 -27217
  175. package/dist/mcp/index.d.ts +0 -4
  176. package/dist/mcp/types.d.ts +0 -1
  177. package/dist/oh-my-opencode.schema.json +28 -59
  178. package/dist/plugin/chat-message/types.d.ts +6 -4
  179. package/dist/plugin/chat-message/ulw-execute-message.d.ts +5 -0
  180. package/dist/plugin/event-session-lifecycle.d.ts +1 -0
  181. package/dist/plugin/hooks/create-core-hooks.d.ts +3 -2
  182. package/dist/plugin/hooks/create-session-hooks.d.ts +3 -3
  183. package/dist/plugin/hooks/create-transform-hooks.d.ts +2 -0
  184. package/dist/plugin/messages-transform.d.ts +1 -0
  185. package/dist/plugin/stop-continuation.d.ts +3 -0
  186. package/dist/plugin/system-transform.d.ts +5 -1
  187. package/dist/plugin-config/omo-config-chain.d.ts +1 -0
  188. package/dist/plugin-dispose.d.ts +3 -0
  189. package/dist/shared/agent-tool-restrictions.d.ts +0 -1
  190. package/dist/shared/compaction-agent-config-checkpoint.d.ts +1 -0
  191. package/dist/shared/index.d.ts +3 -0
  192. package/dist/shared/legacy-plugin-warning.d.ts +2 -1
  193. package/dist/shared/omo-process-sweep.d.ts +2 -4
  194. package/dist/shared/opencode-plugin-sandbox.d.ts +54 -0
  195. package/dist/shared/plugin-entry-migrator.d.ts +4 -3
  196. package/dist/shared/plugin-entry-shape.d.ts +6 -0
  197. package/dist/shared/runtime-fallback-retry-marker.d.ts +16 -0
  198. package/dist/skills/ast-grep/AGENTS.md +51 -0
  199. package/dist/skills/ast-grep/SKILL.md +13 -1
  200. package/dist/skills/browser/ATTRIBUTION.md +37 -0
  201. package/dist/skills/browser/SKILL.md +109 -0
  202. package/dist/skills/browser/references/commands.md +105 -0
  203. package/dist/skills/browser/references/install.md +97 -0
  204. package/dist/skills/browser/references/owned-engine/README.md +62 -0
  205. package/dist/skills/browser/references/owned-engine/frames-and-humans.md +52 -0
  206. package/dist/skills/browser/references/owned-engine/ladder.md +61 -0
  207. package/dist/skills/browser/references/owned-engine/network.md +62 -0
  208. package/dist/skills/browser/references/recipes/1password.md +61 -0
  209. package/dist/skills/browser/references/remote.md +25 -0
  210. package/dist/skills/browser/runtime/omowright/index.js +1534 -0
  211. package/dist/skills/browser/runtime/omowright/manifest.json +9 -0
  212. package/dist/skills/browser/runtime/omowright/page-bundle.js +1395 -0
  213. package/dist/skills/browser/scripts/browser-doctor.mjs +57 -0
  214. package/dist/skills/browser/scripts/browser-install.mjs +50 -0
  215. package/dist/skills/browser/scripts/omowright.mjs +25 -0
  216. package/dist/skills/coding-agent-sessions/AGENTS.md +62 -0
  217. package/dist/skills/coding-agent-sessions/SKILL.md +1 -1
  218. package/dist/skills/data-scientist/SKILL.md +99 -239
  219. package/dist/skills/data-scientist/references/execution-surfaces.md +91 -0
  220. package/dist/skills/data-scientist/references/placement.md +74 -0
  221. package/dist/skills/data-scientist/references/polars-lane.md +95 -0
  222. package/dist/skills/data-scientist/references/uv-setup.md +1 -1
  223. package/dist/skills/data-scientist/references/visualization.md +64 -0
  224. package/dist/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  225. package/dist/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  226. package/dist/skills/debugging/SKILL.md +5 -3
  227. package/dist/skills/debugging/references/methodology/00-setup.md +12 -0
  228. package/dist/skills/debugging/references/methodology/02-investigate.md +26 -5
  229. package/dist/skills/debugging/references/methodology/06-fix.md +3 -3
  230. package/dist/skills/debugging/references/methodology/08-qa.md +1 -1
  231. package/dist/skills/debugging/references/runtimes/go.md +15 -1
  232. package/dist/skills/debugging/references/runtimes/native-binary.md +38 -0
  233. package/dist/skills/debugging/references/runtimes/node.md +25 -0
  234. package/dist/skills/debugging/references/runtimes/python.md +13 -0
  235. package/dist/skills/debugging/references/runtimes/rust.md +41 -0
  236. package/dist/skills/debugging/references/scripts/dap.mjs +267 -0
  237. package/dist/skills/debugging/references/scripts/dap.test.ts +86 -0
  238. package/dist/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  239. package/dist/skills/debugging/references/tools/browser-qa.md +104 -0
  240. package/dist/skills/debugging/references/tools/dap.md +103 -0
  241. package/dist/skills/debugging/references/tools/frida.md +193 -0
  242. package/dist/skills/frontend/ATTRIBUTION.md +10 -0
  243. package/dist/skills/frontend/SKILL.md +8 -3
  244. package/dist/skills/frontend/references/design/README.md +13 -4
  245. package/dist/skills/frontend/references/design/_INDEX.md +1 -0
  246. package/dist/skills/frontend/references/design/ambience-skill.md +146 -0
  247. package/dist/skills/frontend/references/design/aside.md +1 -1
  248. package/dist/skills/frontend/references/design/clone-from-url.md +1 -1
  249. package/dist/skills/frontend/references/design/design-system-architecture.md +30 -6
  250. package/dist/skills/frontend/references/design/interaction-skill.md +19 -5
  251. package/dist/skills/frontend/references/design/print-paged-media.md +76 -0
  252. package/dist/skills/frontend/references/designpowers/README.md +1 -1
  253. package/dist/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  254. package/dist/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  255. package/dist/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  256. package/dist/skills/frontend/references/designpowers/orchestration.md +1 -1
  257. package/dist/skills/frontend/references/designpowers/routing.md +5 -5
  258. package/dist/skills/frontend/references/perfection/README.md +1 -0
  259. package/dist/skills/frontend/scripts/perfection/lighthouse-audit.py +2 -2
  260. package/dist/skills/git-master/SKILL.md +1 -1
  261. package/dist/skills/init-deep/SKILL.md +14 -14
  262. package/dist/skills/lsp-setup/SKILL.md +1 -1
  263. package/dist/skills/programming/SKILL.md +12 -18
  264. package/dist/skills/programming/references/rust/README.md +43 -15
  265. package/dist/skills/programming/references/rust/api-design.md +81 -0
  266. package/dist/skills/programming/references/rust/async-tokio.md +60 -28
  267. package/dist/skills/programming/references/rust/axum-stack.md +1 -13
  268. package/dist/skills/programming/references/rust/cargo-strict.md +44 -8
  269. package/dist/skills/programming/references/rust/clap-stack.md +8 -3
  270. package/dist/skills/programming/references/rust/concurrency.md +66 -52
  271. package/dist/skills/programming/references/rust/libraries.md +35 -25
  272. package/dist/skills/programming/references/rust/macros.md +63 -0
  273. package/dist/skills/programming/references/rust/one-liners.md +5 -3
  274. package/dist/skills/programming/references/rust/proptest-insta.md +8 -0
  275. package/dist/skills/programming/references/rust/type-state.md +50 -12
  276. package/dist/skills/programming/references/rust/unsafe-discipline.md +34 -6
  277. package/dist/skills/programming/references/rust/zero-cost-safety.md +62 -52
  278. package/dist/skills/programming/references/rust-ub/miri-sanitizers-loom.md +1 -1
  279. package/dist/skills/programming/references/rust-ub/ub-taxonomy.md +6 -3
  280. package/dist/skills/programming/scripts/rust/check-no-excuse-rules.sh +86 -75
  281. package/dist/skills/programming/scripts/rust/check-no-excuse-rules.test.ts +83 -0
  282. package/dist/skills/programming/scripts/rust/new-project.py +31 -28
  283. package/dist/skills/refactor/SKILL.md +5 -5
  284. package/dist/skills/remove-ai-slops/SKILL.md +5 -5
  285. package/dist/skills/review-work/SKILL.md +101 -419
  286. package/dist/skills/ultimate-browsing/ATTRIBUTION.md +1 -82
  287. package/dist/skills/ultimate-browsing/SKILL.md +40 -28
  288. package/dist/skills/ultimate-browsing/engine/AGENTS.md +2 -1
  289. package/dist/skills/ultimate-browsing/engine/templates/package.json +2 -2
  290. package/dist/skills/ultimate-browsing/engine/templates/playwright_mobile_chrome.js +5 -2
  291. package/dist/skills/ultimate-browsing/engine/templates/playwright_real_chrome.js +8 -6
  292. package/dist/skills/ultimate-browsing/engine/tests/test_playwright_stealth.py +86 -0
  293. package/dist/skills/ultimate-browsing/engine/tests/test_playwright_templates.py +4 -7
  294. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +34 -111
  295. package/dist/skills/ultimate-browsing/references/insane-search/README.md +14 -7
  296. package/dist/skills/ultimate-browsing/references/insane-search/playwright.md +22 -36
  297. package/dist/skills/ultimate-browsing/scripts/extract_cookies.py +3 -3
  298. package/{packages/shared-skills/skills/start-work → dist/skills/ulw-execute}/SKILL.md +27 -25
  299. package/dist/skills/ulw-plan/SKILL.md +10 -11
  300. package/dist/skills/ulw-plan/references/full-workflow.md +18 -13
  301. package/dist/skills/ulw-plan/references/intent-clear.md +5 -6
  302. package/dist/skills/ulw-plan/references/intent-unclear.md +4 -4
  303. package/dist/skills/ulw-plan/scripts/plan-templates.mjs +180 -0
  304. package/dist/skills/ulw-plan/scripts/scaffold-plan.mjs +3 -153
  305. package/dist/skills/ulw-research/AGENTS.md +63 -0
  306. package/dist/skills/ulw-research/SKILL.md +47 -30
  307. package/dist/skills/ulw-research/references/deliverable-phase.md +187 -0
  308. package/dist/skills/ulw-research/references/report-gates.md +66 -0
  309. package/dist/skills/ulw-research/scripts/cli-support.mjs +102 -0
  310. package/dist/skills/ulw-research/scripts/cli-support.test.ts +88 -0
  311. package/dist/skills/ulw-research/scripts/contracts.mjs +162 -0
  312. package/dist/skills/ulw-research/scripts/contracts.test.ts +177 -0
  313. package/dist/skills/ulw-research/scripts/css-lite.mjs +204 -0
  314. package/dist/skills/ulw-research/scripts/css-lite.test.ts +159 -0
  315. package/dist/skills/ulw-research/scripts/design-spec.mjs +161 -0
  316. package/dist/skills/ulw-research/scripts/design-spec.test.ts +162 -0
  317. package/dist/skills/ulw-research/scripts/entities.mjs +39 -0
  318. package/dist/skills/ulw-research/scripts/entry-guard.mjs +21 -0
  319. package/dist/skills/ulw-research/scripts/format-extract-css.mjs +122 -0
  320. package/dist/skills/ulw-research/scripts/format-extract.mjs +229 -0
  321. package/dist/skills/ulw-research/scripts/format-extract.test.ts +243 -0
  322. package/dist/skills/ulw-research/scripts/gates-figures.mjs +173 -0
  323. package/dist/skills/ulw-research/scripts/gates-layout.mjs +146 -0
  324. package/dist/skills/ulw-research/scripts/gates-layout.test.ts +236 -0
  325. package/dist/skills/ulw-research/scripts/gates-static.mjs +167 -0
  326. package/dist/skills/ulw-research/scripts/gates-static.test.ts +265 -0
  327. package/dist/skills/ulw-research/scripts/gates-structure.mjs +118 -0
  328. package/dist/skills/ulw-research/scripts/gates-text.mjs +190 -0
  329. package/dist/skills/ulw-research/scripts/glossary-vocabulary.test.ts +43 -0
  330. package/dist/skills/ulw-research/scripts/html-lite.mjs +239 -0
  331. package/dist/skills/ulw-research/scripts/html-lite.test.ts +191 -0
  332. package/dist/skills/ulw-research/scripts/layout-probe.mjs +83 -0
  333. package/dist/skills/ulw-research/scripts/layout-probe.test.ts +89 -0
  334. package/dist/skills/ulw-research/scripts/outcome.mjs +250 -0
  335. package/dist/skills/ulw-research/scripts/outcome.test.ts +281 -0
  336. package/dist/skills/ulw-research/scripts/repair-tracker.mjs +171 -0
  337. package/dist/skills/ulw-research/scripts/repair-tracker.test.ts +246 -0
  338. package/dist/skills/ulw-research/scripts/report-tools-commands.mjs +214 -0
  339. package/dist/skills/ulw-research/scripts/report-tools.mjs +61 -0
  340. package/dist/skills/ulw-research/scripts/report-tools.test.ts +213 -0
  341. package/dist/skills/ulw-research/scripts/tests/fixtures/assets/figure-1.svg +1 -0
  342. package/dist/skills/ulw-research/scripts/tests/fixtures/bad-report.html +44 -0
  343. package/dist/skills/ulw-research/scripts/tests/fixtures/boxes.json +90 -0
  344. package/dist/skills/ulw-research/scripts/tests/fixtures/design-spec.md +29 -0
  345. package/dist/skills/ulw-research/scripts/tests/fixtures/good-report.html +57 -0
  346. package/dist/skills/ulw-research/scripts/tests/fixtures/reference-report.html +86 -0
  347. package/dist/skills/ulw-research/scripts/tests/fixtures/reference.md +23 -0
  348. package/dist/skills/visual-qa/AGENTS.md +58 -0
  349. package/dist/skills/visual-qa/SKILL.md +4 -3
  350. package/dist/skills/visual-qa/references/browser-setup.md +77 -0
  351. package/dist/tools/delegate-task/builtin-categories.d.ts +3 -1
  352. package/dist/tools/delegate-task/builtin-category-definition.d.ts +2 -1
  353. package/dist/tools/delegate-task/constants.d.ts +2 -2
  354. package/dist/tools/delegate-task/openai-categories.d.ts +10 -3
  355. package/dist/tools/delegate-task/sync-session-cleanup.d.ts +3 -0
  356. package/dist/tools/delegate-task/sync-session-poller.d.ts +1 -0
  357. package/dist/tools/delegate-task/tool-description.d.ts +3 -1
  358. package/dist/tools/delegate-task/types.d.ts +4 -0
  359. package/dist/tools/session-manager/directory-filter.d.ts +2 -0
  360. package/dist/tui.d.ts +12 -0
  361. package/dist/tui.js +39264 -46403
  362. package/package.json +53 -50
  363. package/packages/git-bash-mcp/dist/cli.js +6 -1
  364. package/packages/git-bash-mcp/package.json +1 -1
  365. package/packages/lsp-core/src/index.ts +1 -0
  366. package/packages/lsp-core/src/lsp/client-diagnostics-concurrency.integration.test.ts +9 -1
  367. package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +100 -28
  368. package/packages/lsp-core/src/lsp/client-diagnostics-pull-timeout.test.ts +64 -0
  369. package/packages/lsp-core/src/lsp/client-wrapper-outside-cwd.test.ts +78 -0
  370. package/packages/lsp-core/src/lsp/client-wrapper.test.ts +103 -6
  371. package/packages/lsp-core/src/lsp/client-wrapper.ts +50 -16
  372. package/packages/lsp-core/src/lsp/client.ts +32 -3
  373. package/packages/lsp-core/src/lsp/connection.ts +16 -0
  374. package/packages/lsp-core/src/lsp/constants.ts +6 -0
  375. package/packages/lsp-core/src/lsp/controlled-clock-test-support.ts +90 -0
  376. package/packages/lsp-core/src/lsp/errors.ts +15 -0
  377. package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +10 -3
  378. package/packages/lsp-core/src/lsp/format-document.test.ts +143 -0
  379. package/packages/lsp-core/src/lsp/format-document.ts +90 -0
  380. package/packages/lsp-core/src/lsp/json-rpc-connection.ts +11 -6
  381. package/packages/lsp-core/src/lsp/manager-lifecycle.test.ts +262 -0
  382. package/packages/lsp-core/src/lsp/manager-max-clients.test.ts +151 -0
  383. package/packages/lsp-core/src/lsp/manager.ts +138 -12
  384. package/packages/lsp-core/src/lsp/outside-context-workspace.ts +33 -0
  385. package/packages/lsp-core/src/lsp/server-definitions.ts +29 -0
  386. package/packages/lsp-core/src/lsp/server-installation.test.ts +376 -0
  387. package/packages/lsp-core/src/lsp/server-installation.ts +200 -27
  388. package/packages/lsp-core/src/lsp/server-resolution-local-binary.test.ts +170 -0
  389. package/packages/lsp-core/src/lsp/server-resolution.ts +18 -5
  390. package/packages/lsp-core/src/lsp/timer-provider.ts +13 -0
  391. package/packages/lsp-core/src/lsp/transport-request-timeout.test.ts +73 -0
  392. package/packages/lsp-core/src/lsp/transport.ts +16 -2
  393. package/packages/lsp-core/src/lsp/types.ts +8 -0
  394. package/packages/lsp-core/src/lsp/workspace-apply-edit-test-support.ts +29 -1
  395. package/packages/lsp-core/src/lsp/workspace-document-state.test.ts +84 -1
  396. package/packages/lsp-core/src/lsp/workspace-document-state.ts +35 -11
  397. package/packages/lsp-core/src/lsp/workspace-markers.ts +18 -0
  398. package/packages/lsp-core/src/mcp.ts +3 -0
  399. package/packages/lsp-core/src/request-context.test.ts +29 -0
  400. package/packages/lsp-core/src/request-context.ts +1 -1
  401. package/packages/lsp-core/src/tool-surface.test.ts +13 -1
  402. package/packages/lsp-core/src/tools/definitions.ts +14 -0
  403. package/packages/lsp-core/src/tools/format.test.ts +56 -0
  404. package/packages/lsp-core/src/tools/format.ts +56 -0
  405. package/packages/lsp-core/src/tools/index.ts +1 -0
  406. package/packages/lsp-core/src/tools/parameters.test.ts +51 -0
  407. package/packages/lsp-core/src/tools/types.ts +10 -0
  408. package/packages/lsp-daemon/dist/cli.js +1421 -960
  409. package/packages/lsp-daemon/dist/client.d.ts +10 -0
  410. package/packages/lsp-daemon/dist/client.js +956 -498
  411. package/packages/lsp-daemon/dist/daemon-client.d.ts +3 -0
  412. package/packages/lsp-daemon/dist/daemon-client.js +23 -3
  413. package/packages/lsp-daemon/dist/ensure-daemon.d.ts +6 -1
  414. package/packages/lsp-daemon/dist/ensure-daemon.js +27 -5
  415. package/packages/lsp-daemon/dist/index.js +860 -407
  416. package/packages/lsp-daemon/dist/ownership.js +2 -2
  417. package/packages/lsp-daemon/dist/proxy.js +3 -0
  418. package/packages/lsp-daemon/dist/version-reap.js +1 -1
  419. package/packages/lsp-daemon/package.json +5 -4
  420. package/packages/lsp-tools-mcp/dist/cli.js +764 -341
  421. package/packages/lsp-tools-mcp/dist/lsp/manager.js +274 -138
  422. package/packages/lsp-tools-mcp/dist/mcp.js +789 -368
  423. package/packages/lsp-tools-mcp/dist/request-context.js +12 -13
  424. package/packages/lsp-tools-mcp/dist/tools.js +719 -302
  425. package/packages/lsp-tools-mcp/package.json +5 -4
  426. package/packages/omo-codex/THIRD-PARTY-NOTICES.md +4 -21
  427. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +4 -6
  428. package/packages/omo-codex/plugin/.mcp.json +0 -6
  429. package/packages/omo-codex/plugin/AGENTS.md +47 -0
  430. package/packages/omo-codex/plugin/README.md +6 -2
  431. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +8504 -408
  432. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  433. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  434. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -0
  435. package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +7 -1
  436. package/packages/omo-codex/plugin/components/comment-checker/AGENTS.md +9 -0
  437. package/packages/omo-codex/plugin/components/comment-checker/biome.json +2 -2
  438. package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +2 -1
  439. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  440. package/packages/omo-codex/plugin/components/comment-checker/package.json +6 -5
  441. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +2 -8
  442. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +1 -2
  443. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  444. package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +1 -0
  445. package/packages/omo-codex/plugin/components/git-bash/AGENTS.md +1 -1
  446. package/packages/omo-codex/plugin/components/git-bash/dist/cli.js +1 -1
  447. package/packages/omo-codex/plugin/components/git-bash/dist/codex-hook.js +2 -1
  448. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  449. package/packages/omo-codex/plugin/components/git-bash/package.json +3 -4
  450. package/packages/omo-codex/plugin/components/git-bash/src/codex-hook.ts +2 -1
  451. package/packages/omo-codex/plugin/components/git-bash/test/codex-hook.test.ts +6 -7
  452. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/AGENTS.md +2 -2
  453. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +2 -2
  454. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/directive.md +2 -0
  455. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +36 -29
  456. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +32 -26
  457. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/types.d.ts +3 -0
  458. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  459. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +6 -5
  460. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +32 -28
  461. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/types.ts +3 -0
  462. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/cli.test.ts +1 -1
  463. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +134 -11
  464. package/packages/omo-codex/plugin/components/lcx/skills/lcx-contribute-bug-fix/SKILL.md +1 -1
  465. package/packages/omo-codex/plugin/components/lcx/skills/lcx-doctor/SKILL.md +7 -5
  466. package/packages/omo-codex/plugin/components/lcx/skills/lcx-report-bug/SKILL.md +5 -5
  467. package/packages/omo-codex/plugin/components/lsp/AGENTS.md +30 -15
  468. package/packages/omo-codex/plugin/components/lsp/biome.json +2 -2
  469. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +4 -4
  470. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +977 -545
  471. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +1 -1
  472. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  473. package/packages/omo-codex/plugin/components/lsp/package.json +6 -5
  474. package/packages/omo-codex/plugin/components/lsp/src/cli.ts +1 -1
  475. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +1 -1
  476. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +1 -5
  477. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +6 -7
  478. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +1 -2
  479. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +11 -1
  480. package/packages/omo-codex/plugin/components/rules/AGENTS.md +12 -0
  481. package/packages/omo-codex/plugin/components/rules/README.md +2 -0
  482. package/packages/omo-codex/plugin/components/rules/biome.json +2 -2
  483. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +5 -1
  484. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-6.md +127 -0
  485. package/packages/omo-codex/plugin/components/rules/dist/cli.js +103 -68
  486. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  487. package/packages/omo-codex/plugin/components/rules/package.json +8 -7
  488. package/packages/omo-codex/plugin/components/rules/src/config.ts +1 -2
  489. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -2
  490. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +27 -5
  491. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +1 -4
  492. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -9
  493. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +1 -2
  494. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -2
  495. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +7 -4
  496. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -3
  497. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +2 -3
  498. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +38 -3
  499. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -3
  500. package/packages/omo-codex/plugin/components/rules/test/package-smoke.test.ts +1 -1
  501. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -2
  502. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +29 -6
  503. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +3 -6
  504. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -2
  505. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +2 -5
  506. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +1 -2
  507. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  508. package/packages/omo-codex/plugin/components/teammode/package.json +6 -5
  509. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +1 -1
  510. package/packages/omo-codex/plugin/components/telemetry/AGENTS.md +8 -0
  511. package/packages/omo-codex/plugin/components/telemetry/biome.json +2 -2
  512. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +5328 -1382
  513. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +5524 -1579
  514. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  515. package/packages/omo-codex/plugin/components/telemetry/package.json +6 -5
  516. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +1 -4
  517. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -14
  518. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +1 -1
  519. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +2 -5
  520. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +10 -4
  521. package/packages/omo-codex/plugin/components/ultrawork/README.md +3 -1
  522. package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -1
  523. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-clone-fidelity-reviewer.toml +1 -1
  524. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +1 -1
  525. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +1 -1
  526. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +1 -1
  527. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +1 -1
  528. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-low.toml +1 -1
  529. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +1 -1
  530. package/packages/omo-codex/plugin/components/ultrawork/agents/librarian.toml +1 -1
  531. package/packages/omo-codex/plugin/components/ultrawork/agents/metis.toml +1 -1
  532. package/packages/omo-codex/plugin/components/ultrawork/agents/momus.toml +1 -1
  533. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +20 -7
  534. package/packages/omo-codex/plugin/components/ultrawork/biome.json +2 -2
  535. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +478 -4
  536. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  537. package/packages/omo-codex/plugin/components/ultrawork/package.json +6 -6
  538. package/packages/omo-codex/plugin/components/ultrawork/scripts/sync-directive.mjs +30 -14
  539. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +9 -10
  540. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +17 -13
  541. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +5 -6
  542. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +4 -4
  543. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/plan-templates.mjs +180 -0
  544. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +3 -153
  545. package/packages/omo-codex/plugin/components/ultrawork/src/directive-content.ts +4 -0
  546. package/packages/omo-codex/plugin/components/ultrawork/src/directive.ts +5 -2
  547. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +9 -1
  548. package/packages/omo-codex/plugin/components/ultrawork/test/directive-source.test.ts +14 -8
  549. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +12 -1
  550. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/AGENTS.md +4 -4
  551. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/NOTICE +1 -1
  552. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/README.md +6 -6
  553. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/biome.json +2 -2
  554. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/directive.md +13 -13
  555. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/dist/cli.js +16 -16
  556. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +16 -0
  557. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/package.json +13 -12
  558. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/boulder-reader.ts +1 -1
  559. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/cli.ts +1 -1
  560. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/codex-hook.ts +4 -4
  561. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/directive.ts +1 -1
  562. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/index.ts +1 -1
  563. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/types.ts +1 -1
  564. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/boulder-reader.test.ts +3 -3
  565. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/cli.test.ts +4 -8
  566. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/codex-hook.test.ts +22 -6
  567. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +19 -0
  568. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +17 -1
  569. package/packages/omo-codex/plugin/components/ulw-loop/README.md +12 -1
  570. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +2 -2
  571. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +102 -107
  572. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-codex-validation.d.ts +18 -0
  573. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-codex-validation.js +30 -0
  574. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-continuation.js +10 -4
  575. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.d.ts +2 -5
  576. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +5 -78
  577. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.d.ts +12 -0
  578. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.js +114 -0
  579. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.d.ts +7 -1
  580. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +57 -46
  581. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-arg-parser.js +2 -2
  582. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +21 -8
  583. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +2 -1
  584. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +12 -1
  585. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.d.ts +1 -1
  586. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +40 -37
  587. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +2205 -737
  588. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.d.ts +2 -0
  589. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +28 -8
  590. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.d.ts +8 -5
  591. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +35 -23
  592. package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.d.ts +1 -0
  593. package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.js +1 -0
  594. package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +25 -9
  595. package/packages/omo-codex/plugin/components/ulw-loop/dist/driver-objective-ack.d.ts +4 -0
  596. package/packages/omo-codex/plugin/components/ulw-loop/dist/driver-objective-ack.js +18 -0
  597. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence-artifacts.d.ts +1 -0
  598. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence-artifacts.js +37 -0
  599. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence.d.ts +1 -0
  600. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence.js +24 -12
  601. package/packages/omo-codex/plugin/components/ulw-loop/dist/ledger.d.ts +4 -0
  602. package/packages/omo-codex/plugin/components/ulw-loop/dist/ledger.js +39 -0
  603. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.d.ts +2 -0
  604. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +19 -4
  605. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-commit.d.ts +19 -0
  606. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-commit.js +108 -0
  607. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.d.ts +6 -2
  608. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +54 -25
  609. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-goal-factory.d.ts +10 -3
  610. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-goal-factory.js +38 -31
  611. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.d.ts +10 -7
  612. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +121 -100
  613. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-log.d.ts +16 -0
  614. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-log.js +115 -0
  615. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.d.ts +18 -0
  616. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.js +41 -0
  617. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-aggregate.d.ts +7 -0
  618. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-aggregate.js +9 -0
  619. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.d.ts +12 -0
  620. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.js +104 -0
  621. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.d.ts +13 -1
  622. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.js +65 -9
  623. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-verdicts.js +5 -1
  624. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +4 -2
  625. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +72 -117
  626. package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.d.ts +2 -0
  627. package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.js +25 -13
  628. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/factory.d.ts +2 -0
  629. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/factory.js +157 -0
  630. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/manifest.d.ts +381 -0
  631. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/manifest.js +127 -0
  632. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/types.d.ts +130 -0
  633. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/types.js +1 -0
  634. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk.d.ts +3 -0
  635. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk.js +3 -0
  636. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-budget-io.d.ts +5 -0
  637. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-budget-io.js +67 -0
  638. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.d.ts +7 -1
  639. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +190 -59
  640. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-role-guard.d.ts +2 -0
  641. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-role-guard.js +22 -0
  642. package/packages/omo-codex/plugin/components/ulw-loop/dist/state-lock.d.ts +19 -0
  643. package/packages/omo-codex/plugin/components/ulw-loop/dist/state-lock.js +259 -0
  644. package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.d.ts +7 -0
  645. package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.js +41 -0
  646. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-batch.js +4 -4
  647. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-mutations.d.ts +3 -2
  648. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-mutations.js +4 -4
  649. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-types.d.ts +9 -1
  650. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.d.ts +3 -2
  651. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.js +11 -11
  652. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +28 -23
  653. package/packages/omo-codex/plugin/components/ulw-loop/dist/success-criteria-input.d.ts +9 -0
  654. package/packages/omo-codex/plugin/components/ulw-loop/dist/success-criteria-input.js +41 -0
  655. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.d.ts +21 -0
  656. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.js +100 -0
  657. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +18 -5
  658. package/packages/omo-codex/plugin/components/ulw-loop/package.json +7 -6
  659. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +7 -2
  660. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +2 -3
  661. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +34 -11
  662. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-codex-validation.ts +52 -0
  663. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-continuation.ts +8 -6
  664. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +5 -98
  665. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-template.ts +134 -0
  666. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +59 -77
  667. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-arg-parser.ts +10 -4
  668. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +24 -8
  669. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +14 -1
  670. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +52 -46
  671. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +8 -6
  672. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +35 -7
  673. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +51 -33
  674. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +3 -1
  675. package/packages/omo-codex/plugin/components/ulw-loop/src/constants.ts +1 -0
  676. package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +27 -9
  677. package/packages/omo-codex/plugin/components/ulw-loop/src/driver-objective-ack.ts +20 -0
  678. package/packages/omo-codex/plugin/components/ulw-loop/src/evidence-artifacts.ts +45 -0
  679. package/packages/omo-codex/plugin/components/ulw-loop/src/evidence.ts +23 -16
  680. package/packages/omo-codex/plugin/components/ulw-loop/src/ledger.ts +38 -0
  681. package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +32 -4
  682. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-commit.ts +132 -0
  683. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +67 -54
  684. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-goal-factory.ts +63 -31
  685. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +140 -119
  686. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-log.ts +112 -0
  687. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-missing-recovery.ts +61 -0
  688. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-aggregate.ts +11 -0
  689. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-artifacts.ts +123 -0
  690. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-fields.ts +71 -15
  691. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-verdicts.ts +6 -1
  692. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +92 -136
  693. package/packages/omo-codex/plugin/components/ulw-loop/src/review-blockers.ts +38 -13
  694. package/packages/omo-codex/plugin/components/ulw-loop/src/sdk/factory.ts +218 -0
  695. package/packages/omo-codex/plugin/components/ulw-loop/src/sdk/manifest.ts +156 -0
  696. package/packages/omo-codex/plugin/components/ulw-loop/src/sdk/types.ts +143 -0
  697. package/packages/omo-codex/plugin/components/ulw-loop/src/sdk.ts +3 -0
  698. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-budget-io.ts +59 -0
  699. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +201 -52
  700. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-role-guard.ts +22 -0
  701. package/packages/omo-codex/plugin/components/ulw-loop/src/state-lock.ts +257 -0
  702. package/packages/omo-codex/plugin/components/ulw-loop/src/status-next-actions.ts +45 -0
  703. package/packages/omo-codex/plugin/components/ulw-loop/src/steering-batch.ts +4 -4
  704. package/packages/omo-codex/plugin/components/ulw-loop/src/steering-mutations.ts +5 -4
  705. package/packages/omo-codex/plugin/components/ulw-loop/src/steering-types.ts +13 -1
  706. package/packages/omo-codex/plugin/components/ulw-loop/src/steering.ts +12 -10
  707. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +27 -22
  708. package/packages/omo-codex/plugin/components/ulw-loop/src/success-criteria-input.ts +56 -0
  709. package/packages/omo-codex/plugin/components/ulw-loop/src/surface.ts +133 -0
  710. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +131 -82
  711. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-template.test.ts +147 -0
  712. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint.test.ts +16 -22
  713. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint-continuation.test.ts +4 -2
  714. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint.test.ts +31 -2
  715. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +2 -0
  716. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-complete-goals.test.ts +3 -1
  717. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +35 -8
  718. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +38 -4
  719. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-json-errors.test.ts +27 -0
  720. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-scope-required.test.ts +144 -0
  721. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-status-next-actions.test.ts +185 -0
  722. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-batch.test.ts +8 -3
  723. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-validation-batch.test.ts +6 -0
  724. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +35 -0
  725. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +88 -11
  726. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/barrier.ts +13 -0
  727. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/cli-session.ts +4 -0
  728. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-child.ts +65 -0
  729. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-cli-qa.mjs +76 -0
  730. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-crash.ts +23 -0
  731. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-mutations.mjs +58 -0
  732. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-writer.ts +65 -0
  733. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/lease-clock.ts +23 -0
  734. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +9 -4
  735. package/packages/omo-codex/plugin/components/ulw-loop/test/guided-recovery.test.ts +67 -0
  736. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +3 -2
  737. package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +9 -0
  738. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-commit-log.test.ts +252 -0
  739. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-commit-recovery.test.ts +190 -0
  740. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io-cross-process.test.ts +106 -0
  741. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io.test.ts +74 -25
  742. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-log-legacy-projection.test.ts +228 -0
  743. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-log-newest.test.ts +72 -0
  744. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-aggregate-basics.test.ts +258 -0
  745. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-cap-and-dedupe.test.ts +22 -0
  746. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-fields-messages.test.ts +98 -0
  747. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-lazycodex-surface.test.ts +93 -0
  748. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-poisoning-cascades.test.ts +97 -0
  749. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +51 -2
  750. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-senpi-surface.test.ts +131 -0
  751. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-single-report.test.ts +241 -0
  752. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +58 -3
  753. package/packages/omo-codex/plugin/components/ulw-loop/test/review-blockers.test.ts +9 -7
  754. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-completed-plan.test.ts +43 -0
  755. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-contract.test.ts +137 -0
  756. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-driver-states.test.ts +174 -0
  757. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-dx.test.ts +219 -0
  758. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-session-context.test.ts +169 -0
  759. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard-native-reviewer.test.ts +207 -0
  760. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +452 -7
  761. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-role-matrix.test.ts +113 -0
  762. package/packages/omo-codex/plugin/components/ulw-loop/test/state-lock.test.ts +310 -0
  763. package/packages/omo-codex/plugin/components/ulw-loop/test/status-next-actions-surface.test.ts +133 -0
  764. package/packages/omo-codex/plugin/components/ulw-loop/test/steering-batch.test.ts +12 -12
  765. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +12 -6
  766. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
  767. package/packages/omo-codex/plugin/components/ulw-loop/test/surface.test.ts +113 -0
  768. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +9 -3
  769. package/packages/omo-codex/plugin/components/ulw-loop/vitest.config.ts +1 -0
  770. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  771. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  772. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  773. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  774. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  775. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  776. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  777. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +18 -0
  778. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  779. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  780. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  781. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  782. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  783. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  784. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  785. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +17 -0
  786. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  787. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  788. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  789. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  790. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  791. package/packages/omo-codex/plugin/model-catalog.json +16 -7
  792. package/packages/omo-codex/plugin/package-lock.json +992 -681
  793. package/packages/omo-codex/plugin/package.json +6 -3
  794. package/packages/omo-codex/plugin/scripts/AGENTS.md +39 -0
  795. package/packages/omo-codex/plugin/scripts/auto-update-plan.mjs +1 -2
  796. package/packages/omo-codex/plugin/scripts/auto-update.mjs +0 -9
  797. package/packages/omo-codex/plugin/scripts/canonical-ultrawork-directive.mjs +17 -0
  798. package/packages/omo-codex/plugin/scripts/hook-status-message.mjs +0 -1
  799. package/packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs +8 -2
  800. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +16 -7
  801. package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +8 -4
  802. package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +19 -90
  803. package/packages/omo-codex/plugin/scripts/migrate-codex-config/toml-section-editor.mjs +1 -1
  804. package/packages/omo-codex/plugin/scripts/sync-skills.d.mts +4 -0
  805. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +114 -67
  806. package/packages/omo-codex/plugin/shared/package.json +3 -4
  807. package/packages/omo-codex/plugin/shared/src/config-loader.ts +2 -102
  808. package/packages/omo-codex/plugin/shared/src/config-migration.ts +0 -1
  809. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +41 -130
  810. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +51 -0
  811. package/packages/omo-codex/plugin/skills/ast-grep/SKILL.md +13 -1
  812. package/packages/omo-codex/plugin/skills/browser/ATTRIBUTION.md +37 -0
  813. package/packages/omo-codex/plugin/skills/browser/SKILL.md +109 -0
  814. package/packages/omo-codex/plugin/skills/browser/agents/openai.yaml +2 -0
  815. package/packages/omo-codex/plugin/skills/browser/references/commands.md +105 -0
  816. package/packages/omo-codex/plugin/skills/browser/references/install.md +97 -0
  817. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/README.md +62 -0
  818. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/frames-and-humans.md +52 -0
  819. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/ladder.md +61 -0
  820. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/network.md +62 -0
  821. package/packages/omo-codex/plugin/skills/browser/references/recipes/1password.md +61 -0
  822. package/packages/omo-codex/plugin/skills/browser/references/remote.md +25 -0
  823. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/index.js +1534 -0
  824. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +9 -0
  825. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/page-bundle.js +1395 -0
  826. package/packages/omo-codex/plugin/skills/browser/scripts/browser-doctor.mjs +57 -0
  827. package/packages/omo-codex/plugin/skills/browser/scripts/browser-install.mjs +50 -0
  828. package/packages/omo-codex/plugin/skills/browser/scripts/omowright.mjs +25 -0
  829. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +62 -0
  830. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +1 -1
  831. package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +99 -239
  832. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-surfaces.md +91 -0
  833. package/packages/omo-codex/plugin/skills/data-scientist/references/placement.md +74 -0
  834. package/packages/omo-codex/plugin/skills/data-scientist/references/polars-lane.md +95 -0
  835. package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +1 -1
  836. package/packages/omo-codex/plugin/skills/data-scientist/references/visualization.md +64 -0
  837. package/packages/omo-codex/plugin/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  838. package/packages/omo-codex/plugin/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  839. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +5 -3
  840. package/packages/omo-codex/plugin/skills/debugging/references/methodology/00-setup.md +12 -0
  841. package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +26 -5
  842. package/packages/omo-codex/plugin/skills/debugging/references/methodology/06-fix.md +3 -3
  843. package/packages/omo-codex/plugin/skills/debugging/references/methodology/08-qa.md +1 -1
  844. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/go.md +15 -1
  845. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +38 -0
  846. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/node.md +25 -0
  847. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/python.md +13 -0
  848. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/rust.md +41 -0
  849. package/packages/omo-codex/plugin/skills/debugging/references/scripts/dap.mjs +267 -0
  850. package/packages/omo-codex/plugin/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  851. package/packages/omo-codex/plugin/skills/debugging/references/tools/browser-qa.md +104 -0
  852. package/packages/omo-codex/plugin/skills/debugging/references/tools/dap.md +103 -0
  853. package/packages/omo-codex/plugin/skills/debugging/references/tools/frida.md +193 -0
  854. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +10 -0
  855. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +8 -3
  856. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +13 -4
  857. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
  858. package/packages/omo-codex/plugin/skills/frontend/references/design/ambience-skill.md +146 -0
  859. package/packages/omo-codex/plugin/skills/frontend/references/design/aside.md +1 -1
  860. package/packages/omo-codex/plugin/skills/frontend/references/design/clone-from-url.md +1 -1
  861. package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +30 -6
  862. package/packages/omo-codex/plugin/skills/frontend/references/design/interaction-skill.md +19 -5
  863. package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +76 -0
  864. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +1 -1
  865. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  866. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  867. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  868. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +1 -1
  869. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +5 -5
  870. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +1 -0
  871. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/lighthouse-audit.py +2 -2
  872. package/packages/omo-codex/plugin/skills/git-master/SKILL.md +1 -1
  873. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +20 -18
  874. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +1 -1
  875. package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +7 -5
  876. package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +5 -5
  877. package/packages/omo-codex/plugin/skills/lsp-setup/SKILL.md +1 -1
  878. package/packages/omo-codex/plugin/skills/programming/SKILL.md +12 -18
  879. package/packages/omo-codex/plugin/skills/programming/references/rust/README.md +43 -15
  880. package/packages/omo-codex/plugin/skills/programming/references/rust/api-design.md +81 -0
  881. package/packages/omo-codex/plugin/skills/programming/references/rust/async-tokio.md +60 -28
  882. package/packages/omo-codex/plugin/skills/programming/references/rust/axum-stack.md +1 -13
  883. package/packages/omo-codex/plugin/skills/programming/references/rust/cargo-strict.md +44 -8
  884. package/packages/omo-codex/plugin/skills/programming/references/rust/clap-stack.md +8 -3
  885. package/packages/omo-codex/plugin/skills/programming/references/rust/concurrency.md +66 -52
  886. package/packages/omo-codex/plugin/skills/programming/references/rust/libraries.md +35 -25
  887. package/packages/omo-codex/plugin/skills/programming/references/rust/macros.md +63 -0
  888. package/packages/omo-codex/plugin/skills/programming/references/rust/one-liners.md +5 -3
  889. package/packages/omo-codex/plugin/skills/programming/references/rust/proptest-insta.md +8 -0
  890. package/packages/omo-codex/plugin/skills/programming/references/rust/type-state.md +50 -12
  891. package/packages/omo-codex/plugin/skills/programming/references/rust/unsafe-discipline.md +34 -6
  892. package/packages/omo-codex/plugin/skills/programming/references/rust/zero-cost-safety.md +62 -52
  893. package/packages/omo-codex/plugin/skills/programming/references/rust-ub/miri-sanitizers-loom.md +1 -1
  894. package/packages/omo-codex/plugin/skills/programming/references/rust-ub/ub-taxonomy.md +6 -3
  895. package/packages/omo-codex/plugin/skills/programming/scripts/rust/check-no-excuse-rules.sh +86 -75
  896. package/packages/omo-codex/plugin/skills/programming/scripts/rust/new-project.py +31 -28
  897. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +11 -9
  898. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +11 -9
  899. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +116 -424
  900. package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +1 -82
  901. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +40 -28
  902. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +2 -1
  903. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +2 -2
  904. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/playwright_mobile_chrome.js +5 -2
  905. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/playwright_real_chrome.js +8 -6
  906. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_playwright_stealth.py +86 -0
  907. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_playwright_templates.py +4 -7
  908. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +34 -111
  909. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +14 -7
  910. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/playwright.md +22 -36
  911. package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/extract_cookies.py +3 -3
  912. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +102 -107
  913. package/packages/omo-codex/plugin/skills/{start-work → ulw-execute}/SKILL.md +38 -39
  914. package/packages/omo-codex/plugin/skills/ulw-execute/agents/openai.yaml +2 -0
  915. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +31 -2
  916. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +2 -3
  917. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +34 -11
  918. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +9 -10
  919. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +17 -13
  920. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +5 -6
  921. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +4 -4
  922. package/packages/omo-codex/plugin/skills/ulw-plan/scripts/plan-templates.mjs +180 -0
  923. package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +3 -153
  924. package/packages/omo-codex/plugin/skills/ulw-research/AGENTS.md +63 -0
  925. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +52 -33
  926. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +187 -0
  927. package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +66 -0
  928. package/packages/omo-codex/plugin/skills/ulw-research/scripts/cli-support.mjs +102 -0
  929. package/packages/omo-codex/plugin/skills/ulw-research/scripts/contracts.mjs +162 -0
  930. package/packages/omo-codex/plugin/skills/ulw-research/scripts/css-lite.mjs +204 -0
  931. package/packages/omo-codex/plugin/skills/ulw-research/scripts/design-spec.mjs +161 -0
  932. package/packages/omo-codex/plugin/skills/ulw-research/scripts/entities.mjs +39 -0
  933. package/packages/omo-codex/plugin/skills/ulw-research/scripts/entry-guard.mjs +21 -0
  934. package/packages/omo-codex/plugin/skills/ulw-research/scripts/format-extract-css.mjs +122 -0
  935. package/packages/omo-codex/plugin/skills/ulw-research/scripts/format-extract.mjs +229 -0
  936. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-figures.mjs +173 -0
  937. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-layout.mjs +146 -0
  938. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-static.mjs +167 -0
  939. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-structure.mjs +118 -0
  940. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-text.mjs +190 -0
  941. package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-lite.mjs +239 -0
  942. package/packages/omo-codex/plugin/skills/ulw-research/scripts/layout-probe.mjs +83 -0
  943. package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome.mjs +250 -0
  944. package/packages/omo-codex/plugin/skills/ulw-research/scripts/repair-tracker.mjs +171 -0
  945. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools-commands.mjs +214 -0
  946. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools.mjs +61 -0
  947. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +58 -0
  948. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +10 -7
  949. package/packages/omo-codex/plugin/skills/visual-qa/references/browser-setup.md +77 -0
  950. package/packages/omo-codex/plugin/test/AGENTS.md +47 -0
  951. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +12 -12
  952. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +13 -28
  953. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +2 -3
  954. package/packages/omo-codex/plugin/test/aggregate-mcp.test.mjs +2 -7
  955. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +14 -4
  956. package/packages/omo-codex/plugin/test/auto-update.test.mjs +4 -29
  957. package/packages/omo-codex/plugin/test/bootstrap-default-role.test.mjs +66 -0
  958. package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +0 -31
  959. package/packages/omo-codex/plugin/test/canonical-ultrawork-directive.test.mjs +53 -0
  960. package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +2 -2
  961. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +1 -51
  962. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +100 -2
  963. package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +5 -6
  964. package/packages/omo-codex/plugin/test/mcp-research-servers.test.mjs +1 -3
  965. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +35 -35
  966. package/packages/omo-codex/plugin/test/multi-agent-v2-regression.test.mjs +1 -1
  967. package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +107 -15
  968. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +81 -3
  969. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +57 -26
  970. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +37 -0
  971. package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +5 -2
  972. package/packages/omo-codex/scripts/AGENTS.md +36 -0
  973. package/packages/omo-codex/scripts/check-model-catalog-parity.mjs +42 -0
  974. package/packages/omo-codex/scripts/install-cache-copy.test.mjs +27 -1
  975. package/packages/omo-codex/scripts/install-config-autonomous-features.test.mjs +1 -1
  976. package/packages/omo-codex/scripts/install-config-autonomous.test.mjs +2 -1
  977. package/packages/omo-codex/scripts/install-config-git-bash.test.mjs +0 -23
  978. package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +5 -5
  979. package/packages/omo-codex/scripts/install-config.test.mjs +15 -17
  980. package/packages/omo-codex/scripts/install-dist/install-local.mjs +16238 -4291
  981. package/packages/omo-codex/scripts/install-generated-bundle.test.mjs +3 -4
  982. package/packages/omo-codex/scripts/install-git-bash-mcp-env.test.mjs +1 -25
  983. package/packages/omo-codex/scripts/install-mcp-runtime.test.mjs +0 -36
  984. package/packages/omo-codex/scripts/install-packaged-local.test.mjs +1 -6
  985. package/packages/{omo-codex/plugin/components/ultrawork/directive.md → prompts-core/prompts/ultrawork/codex.md} +102 -107
  986. package/packages/shared-skills/package.json +7 -1
  987. package/packages/shared-skills/skill-source-filter.d.ts +16 -0
  988. package/packages/shared-skills/skill-source-filter.mjs +44 -0
  989. package/packages/shared-skills/skills/ast-grep/AGENTS.md +51 -0
  990. package/packages/shared-skills/skills/ast-grep/SKILL.md +13 -1
  991. package/packages/shared-skills/skills/browser/ATTRIBUTION.md +37 -0
  992. package/packages/shared-skills/skills/browser/SKILL.md +109 -0
  993. package/packages/shared-skills/skills/browser/references/commands.md +105 -0
  994. package/packages/shared-skills/skills/browser/references/install.md +97 -0
  995. package/packages/shared-skills/skills/browser/references/owned-engine/README.md +62 -0
  996. package/packages/shared-skills/skills/browser/references/owned-engine/frames-and-humans.md +52 -0
  997. package/packages/shared-skills/skills/browser/references/owned-engine/ladder.md +61 -0
  998. package/packages/shared-skills/skills/browser/references/owned-engine/network.md +62 -0
  999. package/packages/shared-skills/skills/browser/references/recipes/1password.md +61 -0
  1000. package/packages/shared-skills/skills/browser/references/remote.md +25 -0
  1001. package/packages/shared-skills/skills/browser/runtime/omowright/index.js +1534 -0
  1002. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +9 -0
  1003. package/packages/shared-skills/skills/browser/runtime/omowright/page-bundle.js +1395 -0
  1004. package/packages/shared-skills/skills/browser/scripts/browser-doctor.mjs +57 -0
  1005. package/packages/shared-skills/skills/browser/scripts/browser-install.mjs +50 -0
  1006. package/packages/shared-skills/skills/browser/scripts/omowright.mjs +25 -0
  1007. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +62 -0
  1008. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +1 -1
  1009. package/packages/shared-skills/skills/data-scientist/SKILL.md +99 -239
  1010. package/packages/shared-skills/skills/data-scientist/references/execution-surfaces.md +91 -0
  1011. package/packages/shared-skills/skills/data-scientist/references/placement.md +74 -0
  1012. package/packages/shared-skills/skills/data-scientist/references/polars-lane.md +95 -0
  1013. package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +1 -1
  1014. package/packages/shared-skills/skills/data-scientist/references/visualization.md +64 -0
  1015. package/packages/shared-skills/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  1016. package/packages/shared-skills/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  1017. package/packages/shared-skills/skills/debugging/SKILL.md +5 -3
  1018. package/packages/shared-skills/skills/debugging/references/methodology/00-setup.md +12 -0
  1019. package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +26 -5
  1020. package/packages/shared-skills/skills/debugging/references/methodology/06-fix.md +3 -3
  1021. package/packages/shared-skills/skills/debugging/references/methodology/08-qa.md +1 -1
  1022. package/packages/shared-skills/skills/debugging/references/runtimes/go.md +15 -1
  1023. package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +38 -0
  1024. package/packages/shared-skills/skills/debugging/references/runtimes/node.md +25 -0
  1025. package/packages/shared-skills/skills/debugging/references/runtimes/python.md +13 -0
  1026. package/packages/shared-skills/skills/debugging/references/runtimes/rust.md +41 -0
  1027. package/packages/shared-skills/skills/debugging/references/scripts/dap.mjs +267 -0
  1028. package/packages/shared-skills/skills/debugging/references/scripts/dap.test.ts +86 -0
  1029. package/packages/shared-skills/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  1030. package/packages/shared-skills/skills/debugging/references/tools/browser-qa.md +104 -0
  1031. package/packages/shared-skills/skills/debugging/references/tools/dap.md +103 -0
  1032. package/packages/shared-skills/skills/debugging/references/tools/frida.md +193 -0
  1033. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +10 -0
  1034. package/packages/shared-skills/skills/frontend/SKILL.md +8 -3
  1035. package/packages/shared-skills/skills/frontend/references/design/README.md +13 -4
  1036. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
  1037. package/packages/shared-skills/skills/frontend/references/design/ambience-skill.md +146 -0
  1038. package/packages/shared-skills/skills/frontend/references/design/aside.md +1 -1
  1039. package/packages/shared-skills/skills/frontend/references/design/clone-from-url.md +1 -1
  1040. package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +30 -6
  1041. package/packages/shared-skills/skills/frontend/references/design/interaction-skill.md +19 -5
  1042. package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +76 -0
  1043. package/packages/shared-skills/skills/frontend/references/designpowers/README.md +1 -1
  1044. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  1045. package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  1046. package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  1047. package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +1 -1
  1048. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +5 -5
  1049. package/packages/shared-skills/skills/frontend/references/perfection/README.md +1 -0
  1050. package/packages/shared-skills/skills/frontend/scripts/perfection/lighthouse-audit.py +2 -2
  1051. package/packages/shared-skills/skills/git-master/SKILL.md +1 -1
  1052. package/packages/shared-skills/skills/init-deep/SKILL.md +14 -14
  1053. package/packages/shared-skills/skills/lsp-setup/SKILL.md +1 -1
  1054. package/packages/shared-skills/skills/programming/SKILL.md +12 -18
  1055. package/packages/shared-skills/skills/programming/references/rust/README.md +43 -15
  1056. package/packages/shared-skills/skills/programming/references/rust/api-design.md +81 -0
  1057. package/packages/shared-skills/skills/programming/references/rust/async-tokio.md +60 -28
  1058. package/packages/shared-skills/skills/programming/references/rust/axum-stack.md +1 -13
  1059. package/packages/shared-skills/skills/programming/references/rust/cargo-strict.md +44 -8
  1060. package/packages/shared-skills/skills/programming/references/rust/clap-stack.md +8 -3
  1061. package/packages/shared-skills/skills/programming/references/rust/concurrency.md +66 -52
  1062. package/packages/shared-skills/skills/programming/references/rust/libraries.md +35 -25
  1063. package/packages/shared-skills/skills/programming/references/rust/macros.md +63 -0
  1064. package/packages/shared-skills/skills/programming/references/rust/one-liners.md +5 -3
  1065. package/packages/shared-skills/skills/programming/references/rust/proptest-insta.md +8 -0
  1066. package/packages/shared-skills/skills/programming/references/rust/type-state.md +50 -12
  1067. package/packages/shared-skills/skills/programming/references/rust/unsafe-discipline.md +34 -6
  1068. package/packages/shared-skills/skills/programming/references/rust/zero-cost-safety.md +62 -52
  1069. package/packages/shared-skills/skills/programming/references/rust-ub/miri-sanitizers-loom.md +1 -1
  1070. package/packages/shared-skills/skills/programming/references/rust-ub/ub-taxonomy.md +6 -3
  1071. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.sh +86 -75
  1072. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.test.ts +83 -0
  1073. package/packages/shared-skills/skills/programming/scripts/rust/new-project.py +31 -28
  1074. package/packages/shared-skills/skills/refactor/SKILL.md +5 -5
  1075. package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +5 -5
  1076. package/packages/shared-skills/skills/review-work/SKILL.md +101 -419
  1077. package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +1 -82
  1078. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +40 -28
  1079. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +2 -1
  1080. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +2 -2
  1081. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/playwright_mobile_chrome.js +5 -2
  1082. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/playwright_real_chrome.js +8 -6
  1083. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_playwright_stealth.py +86 -0
  1084. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_playwright_templates.py +4 -7
  1085. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +34 -111
  1086. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +14 -7
  1087. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/playwright.md +22 -36
  1088. package/packages/shared-skills/skills/ultimate-browsing/scripts/extract_cookies.py +3 -3
  1089. package/{dist/skills/start-work → packages/shared-skills/skills/ulw-execute}/SKILL.md +27 -25
  1090. package/packages/shared-skills/skills/ulw-plan/SKILL.md +10 -11
  1091. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +18 -13
  1092. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +5 -6
  1093. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +4 -4
  1094. package/packages/shared-skills/skills/ulw-plan/scripts/plan-templates.mjs +180 -0
  1095. package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +3 -153
  1096. package/packages/shared-skills/skills/ulw-research/AGENTS.md +63 -0
  1097. package/packages/shared-skills/skills/ulw-research/SKILL.md +47 -30
  1098. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +187 -0
  1099. package/packages/shared-skills/skills/ulw-research/references/report-gates.md +66 -0
  1100. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.mjs +102 -0
  1101. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.test.ts +88 -0
  1102. package/packages/shared-skills/skills/ulw-research/scripts/contracts.mjs +162 -0
  1103. package/packages/shared-skills/skills/ulw-research/scripts/contracts.test.ts +177 -0
  1104. package/packages/shared-skills/skills/ulw-research/scripts/css-lite.mjs +204 -0
  1105. package/packages/shared-skills/skills/ulw-research/scripts/css-lite.test.ts +159 -0
  1106. package/packages/shared-skills/skills/ulw-research/scripts/design-spec.mjs +161 -0
  1107. package/packages/shared-skills/skills/ulw-research/scripts/design-spec.test.ts +162 -0
  1108. package/packages/shared-skills/skills/ulw-research/scripts/entities.mjs +39 -0
  1109. package/packages/shared-skills/skills/ulw-research/scripts/entry-guard.mjs +21 -0
  1110. package/packages/shared-skills/skills/ulw-research/scripts/format-extract-css.mjs +122 -0
  1111. package/packages/shared-skills/skills/ulw-research/scripts/format-extract.mjs +229 -0
  1112. package/packages/shared-skills/skills/ulw-research/scripts/format-extract.test.ts +243 -0
  1113. package/packages/shared-skills/skills/ulw-research/scripts/gates-figures.mjs +173 -0
  1114. package/packages/shared-skills/skills/ulw-research/scripts/gates-layout.mjs +146 -0
  1115. package/packages/shared-skills/skills/ulw-research/scripts/gates-layout.test.ts +236 -0
  1116. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.mjs +167 -0
  1117. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.test.ts +265 -0
  1118. package/packages/shared-skills/skills/ulw-research/scripts/gates-structure.mjs +118 -0
  1119. package/packages/shared-skills/skills/ulw-research/scripts/gates-text.mjs +190 -0
  1120. package/packages/shared-skills/skills/ulw-research/scripts/glossary-vocabulary.test.ts +43 -0
  1121. package/packages/shared-skills/skills/ulw-research/scripts/html-lite.mjs +239 -0
  1122. package/packages/shared-skills/skills/ulw-research/scripts/html-lite.test.ts +191 -0
  1123. package/packages/shared-skills/skills/ulw-research/scripts/layout-probe.mjs +83 -0
  1124. package/packages/shared-skills/skills/ulw-research/scripts/layout-probe.test.ts +89 -0
  1125. package/packages/shared-skills/skills/ulw-research/scripts/outcome.mjs +250 -0
  1126. package/packages/shared-skills/skills/ulw-research/scripts/outcome.test.ts +281 -0
  1127. package/packages/shared-skills/skills/ulw-research/scripts/repair-tracker.mjs +171 -0
  1128. package/packages/shared-skills/skills/ulw-research/scripts/repair-tracker.test.ts +246 -0
  1129. package/packages/shared-skills/skills/ulw-research/scripts/report-tools-commands.mjs +214 -0
  1130. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.mjs +61 -0
  1131. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +213 -0
  1132. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/assets/figure-1.svg +1 -0
  1133. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/bad-report.html +44 -0
  1134. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/boxes.json +90 -0
  1135. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/design-spec.md +29 -0
  1136. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/good-report.html +57 -0
  1137. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/reference-report.html +86 -0
  1138. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/reference.md +23 -0
  1139. package/packages/shared-skills/skills/visual-qa/AGENTS.md +58 -0
  1140. package/packages/shared-skills/skills/visual-qa/SKILL.md +4 -3
  1141. package/packages/shared-skills/skills/visual-qa/references/browser-setup.md +77 -0
  1142. package/postinstall.mjs +5 -0
  1143. package/script/qa/web-terminal-visual-qa.mjs +2 -0
  1144. package/script/qa/xterm-live-terminal.mjs +18 -2
  1145. package/.agents/skills/work-with-pr-workspace/evals/evals.json +0 -76
  1146. package/.agents/skills/work-with-pr-workspace/iteration-1/benchmark.json +0 -138
  1147. package/.agents/skills/work-with-pr-workspace/iteration-1/benchmark.md +0 -42
  1148. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/eval_metadata.json +0 -57
  1149. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/grading.json +0 -15
  1150. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/code-changes.md +0 -454
  1151. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/execution-plan.md +0 -136
  1152. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/pr-description.md +0 -47
  1153. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/verification-strategy.md +0 -163
  1154. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/timing.json +0 -1
  1155. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/grading.json +0 -15
  1156. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/code-changes.md +0 -615
  1157. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/execution-plan.md +0 -99
  1158. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/pr-description.md +0 -50
  1159. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/verification-strategy.md +0 -111
  1160. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/timing.json +0 -1
  1161. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/eval_metadata.json +0 -37
  1162. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/grading.json +0 -11
  1163. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/code-changes.md +0 -205
  1164. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/execution-plan.md +0 -78
  1165. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/pr-description.md +0 -42
  1166. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/verification-strategy.md +0 -87
  1167. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/timing.json +0 -1
  1168. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/grading.json +0 -11
  1169. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/code-changes.md +0 -334
  1170. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/execution-plan.md +0 -86
  1171. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/pr-description.md +0 -23
  1172. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/verification-strategy.md +0 -119
  1173. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/timing.json +0 -1
  1174. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/eval_metadata.json +0 -32
  1175. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/grading.json +0 -10
  1176. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +0 -221
  1177. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/execution-plan.md +0 -104
  1178. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/pr-description.md +0 -41
  1179. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/verification-strategy.md +0 -84
  1180. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/timing.json +0 -1
  1181. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/grading.json +0 -10
  1182. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +0 -342
  1183. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/execution-plan.md +0 -131
  1184. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/pr-description.md +0 -39
  1185. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/verification-strategy.md +0 -128
  1186. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/timing.json +0 -1
  1187. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/eval_metadata.json +0 -32
  1188. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/grading.json +0 -10
  1189. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/code-changes.md +0 -143
  1190. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/execution-plan.md +0 -82
  1191. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/pr-description.md +0 -51
  1192. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/verification-strategy.md +0 -69
  1193. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/timing.json +0 -1
  1194. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/grading.json +0 -10
  1195. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/code-changes.md +0 -252
  1196. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/execution-plan.md +0 -83
  1197. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/pr-description.md +0 -33
  1198. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/verification-strategy.md +0 -101
  1199. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/timing.json +0 -1
  1200. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/eval_metadata.json +0 -32
  1201. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/grading.json +0 -10
  1202. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/code-changes.md +0 -387
  1203. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +0 -112
  1204. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/pr-description.md +0 -51
  1205. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/verification-strategy.md +0 -75
  1206. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/timing.json +0 -1
  1207. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/grading.json +0 -10
  1208. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/code-changes.md +0 -529
  1209. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/execution-plan.md +0 -127
  1210. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/pr-description.md +0 -42
  1211. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/verification-strategy.md +0 -120
  1212. package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/timing.json +0 -1
  1213. package/.agents/skills/work-with-pr-workspace/iteration-1/review.html +0 -1326
  1214. package/.opencode/skills/work-with-pr-workspace/evals/evals.json +0 -76
  1215. package/.opencode/skills/work-with-pr-workspace/iteration-1/benchmark.json +0 -138
  1216. package/.opencode/skills/work-with-pr-workspace/iteration-1/benchmark.md +0 -42
  1217. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/eval_metadata.json +0 -57
  1218. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/grading.json +0 -15
  1219. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/code-changes.md +0 -454
  1220. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/execution-plan.md +0 -136
  1221. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/pr-description.md +0 -47
  1222. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/verification-strategy.md +0 -163
  1223. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/timing.json +0 -1
  1224. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/grading.json +0 -15
  1225. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/code-changes.md +0 -615
  1226. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/execution-plan.md +0 -99
  1227. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/pr-description.md +0 -50
  1228. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/verification-strategy.md +0 -111
  1229. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/timing.json +0 -1
  1230. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/eval_metadata.json +0 -37
  1231. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/grading.json +0 -11
  1232. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/code-changes.md +0 -205
  1233. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/execution-plan.md +0 -78
  1234. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/pr-description.md +0 -42
  1235. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/verification-strategy.md +0 -87
  1236. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/timing.json +0 -1
  1237. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/grading.json +0 -11
  1238. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/code-changes.md +0 -334
  1239. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/execution-plan.md +0 -86
  1240. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/pr-description.md +0 -23
  1241. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/verification-strategy.md +0 -119
  1242. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/timing.json +0 -1
  1243. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/eval_metadata.json +0 -32
  1244. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/grading.json +0 -10
  1245. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +0 -221
  1246. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/execution-plan.md +0 -104
  1247. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/pr-description.md +0 -41
  1248. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/verification-strategy.md +0 -84
  1249. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/timing.json +0 -1
  1250. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/grading.json +0 -10
  1251. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +0 -342
  1252. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/execution-plan.md +0 -131
  1253. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/pr-description.md +0 -39
  1254. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/verification-strategy.md +0 -128
  1255. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/timing.json +0 -1
  1256. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/eval_metadata.json +0 -32
  1257. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/grading.json +0 -10
  1258. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/code-changes.md +0 -143
  1259. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/execution-plan.md +0 -82
  1260. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/pr-description.md +0 -51
  1261. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/verification-strategy.md +0 -69
  1262. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/timing.json +0 -1
  1263. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/grading.json +0 -10
  1264. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/code-changes.md +0 -252
  1265. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/execution-plan.md +0 -83
  1266. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/pr-description.md +0 -33
  1267. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/verification-strategy.md +0 -101
  1268. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/timing.json +0 -1
  1269. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/eval_metadata.json +0 -32
  1270. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/grading.json +0 -10
  1271. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/code-changes.md +0 -387
  1272. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +0 -112
  1273. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/pr-description.md +0 -51
  1274. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/verification-strategy.md +0 -75
  1275. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/timing.json +0 -1
  1276. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/grading.json +0 -10
  1277. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/code-changes.md +0 -529
  1278. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/execution-plan.md +0 -127
  1279. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/pr-description.md +0 -42
  1280. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/verification-strategy.md +0 -120
  1281. package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/timing.json +0 -1
  1282. package/.opencode/skills/work-with-pr-workspace/iteration-1/review.html +0 -1326
  1283. package/dist/cli/install-senpi/index.d.ts +0 -1
  1284. package/dist/cli/senpi-platform-flag.d.ts +0 -4
  1285. package/dist/config/schema/codegraph.d.ts +0 -12
  1286. package/dist/config/schema/start-work.d.ts +0 -5
  1287. package/dist/features/builtin-commands/templates/start-work.d.ts +0 -1
  1288. package/dist/features/builtin-skills/index.d.ts +0 -1
  1289. package/dist/features/builtin-skills/skill-file-loader.d.ts +0 -1
  1290. package/dist/features/builtin-skills/skills/agent-browser-skill.d.ts +0 -1
  1291. package/dist/features/builtin-skills/skills/agent-browser-template.d.ts +0 -1
  1292. package/dist/features/builtin-skills/skills/debugging.d.ts +0 -1
  1293. package/dist/features/builtin-skills/skills/dev-browser.d.ts +0 -1
  1294. package/dist/features/builtin-skills/skills/frontend.d.ts +0 -1
  1295. package/dist/features/builtin-skills/skills/git-master-sections/commit-atomic-planning.d.ts +0 -1
  1296. package/dist/features/builtin-skills/skills/git-master-sections/commit-context-analysis.d.ts +0 -1
  1297. package/dist/features/builtin-skills/skills/git-master-sections/commit-execution-verification.d.ts +0 -1
  1298. package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +0 -1
  1299. package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +0 -1
  1300. package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +0 -1
  1301. package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +0 -1
  1302. package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +0 -1
  1303. package/dist/features/builtin-skills/skills/git-master-skill-metadata.d.ts +0 -1
  1304. package/dist/features/builtin-skills/skills/git-master.d.ts +0 -1
  1305. package/dist/features/builtin-skills/skills/index.d.ts +0 -1
  1306. package/dist/features/builtin-skills/skills/init-deep.d.ts +0 -1
  1307. package/dist/features/builtin-skills/skills/playwright-cli.d.ts +0 -1
  1308. package/dist/features/builtin-skills/skills/playwright-mcp-skill.d.ts +0 -1
  1309. package/dist/features/builtin-skills/skills/playwright.d.ts +0 -1
  1310. package/dist/features/builtin-skills/skills/remove-ai-slops.d.ts +0 -1
  1311. package/dist/features/builtin-skills/skills/review-work.d.ts +0 -1
  1312. package/dist/features/builtin-skills/skills/security-research.d.ts +0 -1
  1313. package/dist/features/builtin-skills/skills/security-review.d.ts +0 -1
  1314. package/dist/features/builtin-skills/skills/team-mode.d.ts +0 -1
  1315. package/dist/features/builtin-skills/skills/visual-qa.d.ts +0 -1
  1316. package/dist/features/builtin-skills/skills.d.ts +0 -1
  1317. package/dist/features/builtin-skills/types.d.ts +0 -1
  1318. package/dist/features/claude-code-plugin-loader/agent-loader.d.ts +0 -1
  1319. package/dist/features/claude-code-plugin-loader/command-loader.d.ts +0 -1
  1320. package/dist/features/claude-code-plugin-loader/discovery-core.d.ts +0 -1
  1321. package/dist/features/claude-code-plugin-loader/discovery-paths.d.ts +0 -1
  1322. package/dist/features/claude-code-plugin-loader/discovery.d.ts +0 -1
  1323. package/dist/features/claude-code-plugin-loader/hook-loader.d.ts +0 -1
  1324. package/dist/features/claude-code-plugin-loader/index.d.ts +0 -1
  1325. package/dist/features/claude-code-plugin-loader/install-path-resolver.d.ts +0 -1
  1326. package/dist/features/claude-code-plugin-loader/installed-plugin-database.d.ts +0 -1
  1327. package/dist/features/claude-code-plugin-loader/loaded-plugin.d.ts +0 -1
  1328. package/dist/features/claude-code-plugin-loader/loader.d.ts +0 -1
  1329. package/dist/features/claude-code-plugin-loader/mcp-server-loader.d.ts +0 -1
  1330. package/dist/features/claude-code-plugin-loader/plugin-key.d.ts +0 -1
  1331. package/dist/features/claude-code-plugin-loader/plugin-manifest.d.ts +0 -1
  1332. package/dist/features/claude-code-plugin-loader/plugin-path-resolver.d.ts +0 -1
  1333. package/dist/features/claude-code-plugin-loader/plugin-settings.d.ts +0 -1
  1334. package/dist/features/claude-code-plugin-loader/scope-filter.d.ts +0 -1
  1335. package/dist/features/claude-code-plugin-loader/skill-loader.d.ts +0 -1
  1336. package/dist/features/claude-code-plugin-loader/types.d.ts +0 -1
  1337. package/dist/hooks/codegraph-bootstrap/command-runner.d.ts +0 -17
  1338. package/dist/hooks/codegraph-bootstrap/hook.d.ts +0 -35
  1339. package/dist/hooks/codegraph-bootstrap/index.d.ts +0 -1
  1340. package/dist/hooks/codegraph-bootstrap/project-root.d.ts +0 -1
  1341. package/dist/hooks/codegraph-bootstrap/status.d.ts +0 -11
  1342. package/dist/hooks/ralph-loop/completion-promise-detector-test-input.d.ts +0 -11
  1343. package/dist/hooks/ralph-loop/loop-session-recovery.d.ts +0 -7
  1344. package/dist/hooks/start-work/start-work-hook.d.ts +0 -23
  1345. package/dist/mcp/codegraph.d.ts +0 -16
  1346. package/dist/plugin/chat-message/start-work-message.d.ts +0 -5
  1347. package/dist/shared/prompt-async-gate/message-inspection-error.d.ts +0 -1
  1348. package/dist/shared/prompt-async-gate/pending-tool-turn.d.ts +0 -1
  1349. package/dist/shared/prompt-async-gate/prompt-message-state.d.ts +0 -1
  1350. package/dist/shared/prompt-async-gate/queue.d.ts +0 -1
  1351. package/dist/shared/prompt-async-gate/recent-dispatches.d.ts +0 -1
  1352. package/dist/shared/prompt-async-gate/reservations.d.ts +0 -1
  1353. package/dist/shared/prompt-async-gate/semantic-dedupe.d.ts +0 -1
  1354. package/dist/shared/prompt-async-gate/session-idle-dispatch.d.ts +0 -1
  1355. package/dist/shared/prompt-async-gate/timing.d.ts +0 -1
  1356. package/dist/shared/prompt-async-gate/types.d.ts +0 -1
  1357. package/dist/skills/data-scientist/references/common-scenarios.md +0 -176
  1358. package/dist/skills/data-scientist/references/execution-templates.md +0 -197
  1359. package/dist/skills/data-scientist/references/integration-patterns.md +0 -153
  1360. package/dist/skills/data-scientist/references/performance-benchmarks.md +0 -37
  1361. package/dist/skills/debugging/references/tools/playwright-cli.md +0 -194
  1362. package/dist/skills/programming/scripts/rust/check-no-excuse-rules.py +0 -296
  1363. package/dist/skills/visual-qa/references/agent-browser-setup.md +0 -45
  1364. package/dist/tools/call-omo-agent/message-storage-directory.d.ts +0 -1
  1365. package/dist/tools/delegate-task/anthropic-categories.d.ts +0 -2
  1366. package/dist/tools/delegate-task/model-string-parser.d.ts +0 -1
  1367. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.d.ts +0 -1
  1368. package/packages/lsp-tools-mcp/dist/lsp/constants.d.ts +0 -1
  1369. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.d.ts +0 -1
  1370. package/packages/lsp-tools-mcp/dist/lsp/process-signal-cleanup.d.ts +0 -1
  1371. package/packages/lsp-tools-mcp/dist/missing-dependency-result.d.ts +0 -1
  1372. package/packages/omo-codex/plugin/components/codegraph/AGENTS.md +0 -58
  1373. package/packages/omo-codex/plugin/components/codegraph/NODE-RUNTIME-LICENSES.md +0 -2951
  1374. package/packages/omo-codex/plugin/components/codegraph/NOTICE +0 -16
  1375. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +0 -12244
  1376. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +0 -9842
  1377. package/packages/omo-codex/plugin/components/codegraph/package.json +0 -33
  1378. package/packages/omo-codex/plugin/components/codegraph/src/cache-gc.ts +0 -29
  1379. package/packages/omo-codex/plugin/components/codegraph/src/cli.ts +0 -79
  1380. package/packages/omo-codex/plugin/components/codegraph/src/hook-input.ts +0 -33
  1381. package/packages/omo-codex/plugin/components/codegraph/src/hook-sweep.ts +0 -25
  1382. package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +0 -131
  1383. package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +0 -258
  1384. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +0 -309
  1385. package/packages/omo-codex/plugin/components/codegraph/src/mcp-unavailable.ts +0 -80
  1386. package/packages/omo-codex/plugin/components/codegraph/src/post-tool-use-hook.ts +0 -34
  1387. package/packages/omo-codex/plugin/components/codegraph/src/serve-invocation.ts +0 -29
  1388. package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +0 -263
  1389. package/packages/omo-codex/plugin/components/codegraph/src/session-start-command.ts +0 -106
  1390. package/packages/omo-codex/plugin/components/codegraph/src/session-start-cooldown.ts +0 -145
  1391. package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +0 -21
  1392. package/packages/omo-codex/plugin/components/codegraph/src/session-start-lock.ts +0 -139
  1393. package/packages/omo-codex/plugin/components/codegraph/src/session-start-outcome.ts +0 -15
  1394. package/packages/omo-codex/plugin/components/codegraph/src/session-start-paths.ts +0 -32
  1395. package/packages/omo-codex/plugin/components/codegraph/src/session-start-project.ts +0 -109
  1396. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker-result.ts +0 -148
  1397. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +0 -175
  1398. package/packages/omo-codex/plugin/components/codegraph/src/sweep-cli.ts +0 -81
  1399. package/packages/omo-codex/plugin/components/codegraph/test/cache-gc.test.ts +0 -34
  1400. package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +0 -112
  1401. package/packages/omo-codex/plugin/components/codegraph/test/hook-registration.test.ts +0 -26
  1402. package/packages/omo-codex/plugin/components/codegraph/test/hook-session-start-guard.test.ts +0 -160
  1403. package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +0 -50
  1404. package/packages/omo-codex/plugin/components/codegraph/test/hook-sweep.test.ts +0 -29
  1405. package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +0 -320
  1406. package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +0 -172
  1407. package/packages/omo-codex/plugin/components/codegraph/test/package-runtime.test.ts +0 -91
  1408. package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +0 -100
  1409. package/packages/omo-codex/plugin/components/codegraph/test/serve-built-wrapper.test.ts +0 -76
  1410. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge-lifecycle.test.ts +0 -133
  1411. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +0 -245
  1412. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +0 -69
  1413. package/packages/omo-codex/plugin/components/codegraph/test/serve-node-support.test.ts +0 -43
  1414. package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +0 -147
  1415. package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +0 -175
  1416. package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +0 -385
  1417. package/packages/omo-codex/plugin/components/codegraph/test/session-start-node-support.test.ts +0 -206
  1418. package/packages/omo-codex/plugin/components/codegraph/test/session-start-project.test.ts +0 -58
  1419. package/packages/omo-codex/plugin/components/codegraph/test/session-start-state.test.ts +0 -104
  1420. package/packages/omo-codex/plugin/components/codegraph/test/session-start-trust-boundary.test.ts +0 -65
  1421. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-availability.test.ts +0 -106
  1422. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-cooldown.test.ts +0 -116
  1423. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +0 -258
  1424. package/packages/omo-codex/plugin/components/codegraph/test/sweep-cli.test.ts +0 -56
  1425. package/packages/omo-codex/plugin/components/codegraph/tsconfig.build.json +0 -13
  1426. package/packages/omo-codex/plugin/components/codegraph/tsconfig.json +0 -25
  1427. package/packages/omo-codex/plugin/components/start-work-continuation/LICENSE +0 -21
  1428. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +0 -28
  1429. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +0 -484
  1430. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +0 -18
  1431. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +0 -17
  1432. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +0 -17
  1433. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +0 -17
  1434. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/editor.mjs +0 -125
  1435. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/jsonc.mjs +0 -43
  1436. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/scaffold.mjs +0 -29
  1437. package/packages/omo-codex/plugin/scripts/migrate-omo-sot.mjs +0 -121
  1438. package/packages/omo-codex/plugin/skills/data-scientist/references/common-scenarios.md +0 -176
  1439. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-templates.md +0 -197
  1440. package/packages/omo-codex/plugin/skills/data-scientist/references/integration-patterns.md +0 -153
  1441. package/packages/omo-codex/plugin/skills/data-scientist/references/performance-benchmarks.md +0 -37
  1442. package/packages/omo-codex/plugin/skills/debugging/references/tools/playwright-cli.md +0 -194
  1443. package/packages/omo-codex/plugin/skills/programming/scripts/rust/check-no-excuse-rules.py +0 -296
  1444. package/packages/omo-codex/plugin/skills/start-work/agents/openai.yaml +0 -2
  1445. package/packages/omo-codex/plugin/skills/visual-qa/references/agent-browser-setup.md +0 -45
  1446. package/packages/omo-codex/plugin/test/component-codegraph-mcp-smoke.test.mjs +0 -76
  1447. package/packages/omo-codex/plugin/test/migrate-omo-sot.test.mjs +0 -179
  1448. package/packages/shared-skills/skills/data-scientist/references/common-scenarios.md +0 -176
  1449. package/packages/shared-skills/skills/data-scientist/references/execution-templates.md +0 -197
  1450. package/packages/shared-skills/skills/data-scientist/references/integration-patterns.md +0 -153
  1451. package/packages/shared-skills/skills/data-scientist/references/performance-benchmarks.md +0 -37
  1452. package/packages/shared-skills/skills/debugging/references/tools/playwright-cli.md +0 -194
  1453. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.py +0 -296
  1454. package/packages/shared-skills/skills/visual-qa/references/agent-browser-setup.md +0 -45
  1455. /package/dist/hooks/{start-work → ulw-execute}/context-info-formatters.d.ts +0 -0
  1456. /package/dist/hooks/{start-work → ulw-execute}/explicit-plan-context.d.ts +0 -0
  1457. /package/dist/hooks/{start-work → ulw-execute}/notepad-scaffold.d.ts +0 -0
  1458. /package/dist/hooks/{start-work → ulw-execute}/parse-user-request.d.ts +0 -0
  1459. /package/dist/hooks/{start-work → ulw-execute}/plan-discovery-context.d.ts +0 -0
  1460. /package/dist/hooks/{start-work → ulw-execute}/plan-selection.d.ts +0 -0
  1461. /package/dist/hooks/{start-work → ulw-execute}/session-plan-affinity.d.ts +0 -0
  1462. /package/dist/hooks/{start-work → ulw-execute}/work-initializer.d.ts +0 -0
  1463. /package/dist/hooks/{start-work → ulw-execute}/worktree-block.d.ts +0 -0
  1464. /package/dist/hooks/{start-work → ulw-execute}/worktree-detector.d.ts +0 -0
  1465. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/.gitattributes +0 -0
  1466. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/CHANGELOG.md +0 -0
  1467. /package/packages/omo-codex/plugin/components/{codegraph → ulw-execute-continuation}/LICENSE +0 -0
  1468. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/plan-checklist.ts +0 -0
  1469. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-completed.json +0 -0
  1470. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-mixed-platforms.json +0 -0
  1471. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-single-codex-work.json +0 -0
  1472. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-all-done.md +0 -0
  1473. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-scaffold.md +0 -0
  1474. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-nested-checkboxes.md +0 -0
  1475. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-unchecked.md +0 -0
  1476. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.build.json +0 -0
  1477. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.json +0 -0
  1478. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/vitest.config.ts +0 -0
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env node
2
+ // report-tools.mjs - the ulw-research deliverable CLI. Invoked as
3
+ // node "$SKILL_DIR/scripts/report-tools.mjs" <command> ...
4
+ // Exit codes: 0 pass, 1 semantic failure (blockers, a failed verify, a blocked repair), 2 usage or IO.
5
+
6
+ import { CliError, emit, exitCodeFor } from "./cli-support.mjs"
7
+ import { isCliEntry } from "./entry-guard.mjs"
8
+ import { runCheck, runFormatExtract, runLayoutProbe, runOutcome, runRepairDecide } from "./report-tools-commands.mjs"
9
+
10
+ export const COMMANDS = Object.freeze([
11
+ "check",
12
+ "layout-probe",
13
+ "repair decide",
14
+ "outcome init",
15
+ "outcome set",
16
+ "outcome gate",
17
+ "outcome render",
18
+ "outcome state",
19
+ "outcome verify",
20
+ "outcome finish",
21
+ "outcome briefing",
22
+ "format-extract",
23
+ ])
24
+
25
+ export async function run(argv) {
26
+ const [command, ...rest] = argv
27
+ switch (command) {
28
+ case "check":
29
+ return runCheck(rest)
30
+ case "layout-probe":
31
+ return runLayoutProbe(rest)
32
+ case "repair":
33
+ if (rest[0] !== "decide") throw new CliError("usage: repair decide --state <file> --defects <json>")
34
+ return runRepairDecide(rest.slice(1))
35
+ case "outcome":
36
+ return runOutcome(rest)
37
+ case "format-extract":
38
+ return runFormatExtract(rest)
39
+ case "--help":
40
+ case "help":
41
+ if (rest.includes("--json")) return { json: { commands: COMMANDS }, exitCode: 0 }
42
+ return { text: `report-tools <command>\n${COMMANDS.map((name) => ` ${name}`).join("\n")}`, exitCode: 0 }
43
+ default:
44
+ throw new CliError(`usage: report-tools <${COMMANDS.join(" | ")}> (run --help)`)
45
+ }
46
+ }
47
+
48
+ export async function main(argv = process.argv.slice(2)) {
49
+ try {
50
+ const result = await run(argv)
51
+ emit(result)
52
+ return exitCodeFor(result)
53
+ } catch (error) {
54
+ process.stderr.write(`report-tools: ${error.message}\n`)
55
+ return exitCodeFor(error)
56
+ }
57
+ }
58
+
59
+ if (isCliEntry(import.meta.url)) {
60
+ process.exitCode = await main()
61
+ }
@@ -0,0 +1,213 @@
1
+ import { describe, expect, test } from "bun:test"
2
+ import { mkdtempSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"
3
+ import { tmpdir } from "node:os"
4
+ import { delimiter, join } from "node:path"
5
+
6
+ import { COMMANDS, run } from "./report-tools.mjs"
7
+
8
+ const SCRIPT = join(import.meta.dir, "report-tools.mjs")
9
+ const FIXTURES = join(import.meta.dir, "tests", "fixtures")
10
+
11
+ function sessionDir() {
12
+ const root = mkdtempSync(join(tmpdir(), "report-tools-cli-"))
13
+ const dir = join(root, "20260101-120000")
14
+ mkdirSync(dir)
15
+ return dir
16
+ }
17
+
18
+ function nodeWithoutBun(args: string[]) {
19
+ const nodePath = Bun.which("node")
20
+ if (nodePath === null) throw new Error("node not found on PATH")
21
+ const path = (process.env.PATH ?? "").split(delimiter).filter((entry) => !entry.includes(".bun")).join(delimiter)
22
+ return Bun.spawnSync({ cmd: [nodePath, SCRIPT, ...args], env: { ...process.env, PATH: path } })
23
+ }
24
+
25
+ function defectsFile(dir: string, name: string, codes: string[]) {
26
+ const file = join(dir, name)
27
+ writeFileSync(file, JSON.stringify(codes.map((code) => ({ code, message: code }))))
28
+ return file
29
+ }
30
+
31
+ describe("help and usage", () => {
32
+ test("#given --help --json #when run #then it lists exactly the command matrix", async () => {
33
+ const result = await run(["--help", "--json"])
34
+ expect(result.json.commands).toEqual([...COMMANDS])
35
+ expect(COMMANDS).toEqual(["check", "layout-probe", "repair decide", "outcome init", "outcome set", "outcome gate", "outcome render", "outcome state", "outcome verify", "outcome finish", "outcome briefing", "format-extract"])
36
+ })
37
+
38
+ test("#given no arguments under node #when spawned #then it exits 2 with a usage line on stderr", () => {
39
+ const proc = nodeWithoutBun([])
40
+ expect(proc.exitCode).toBe(2)
41
+ expect(proc.stderr.toString()).toContain("usage")
42
+ })
43
+
44
+ test("#given a missing report file #when checked #then it exits 2 naming the path", () => {
45
+ const proc = nodeWithoutBun(["check", "missing-report.html", "--design-spec", "missing-spec.md"])
46
+ expect(proc.exitCode).toBe(2)
47
+ expect(proc.stderr.toString()).toContain("missing-spec.md")
48
+ })
49
+ })
50
+
51
+ describe("check", () => {
52
+ test("#given the bad fixture under node #when checked #then it exits 1 with blockers in stdout JSON", () => {
53
+ const proc = nodeWithoutBun(["check", join(FIXTURES, "bad-report.html"), "--design-spec", join(FIXTURES, "design-spec.md")])
54
+ expect(proc.exitCode).toBe(1)
55
+ const parsed = JSON.parse(proc.stdout.toString())
56
+ expect(parsed.command).toBe("check")
57
+ expect(parsed.counts.blocker).toBeGreaterThanOrEqual(1)
58
+ expect(parsed.layout).toBe("not_run")
59
+ })
60
+
61
+ test("#given the good fixture #when checked #then it passes with exit 0", () => {
62
+ const proc = nodeWithoutBun(["check", join(FIXTURES, "good-report.html"), "--design-spec", join(FIXTURES, "design-spec.md")])
63
+ expect(proc.exitCode).toBe(0)
64
+ expect(JSON.parse(proc.stdout.toString()).status).toBe("pass")
65
+ })
66
+
67
+ test("#given a layout probe file #when checked #then layout gates run and the layout field is set", async () => {
68
+ const result = await run(["check", join(FIXTURES, "good-report.html"), "--design-spec", join(FIXTURES, "design-spec.md"), "--layout", join(FIXTURES, "boxes.json")])
69
+ expect(result.json.gatesRun).toContain("layout")
70
+ expect(["pass", "fail"]).toContain(result.json.layout)
71
+ })
72
+ })
73
+
74
+ describe("outcome", () => {
75
+ test("#given a promised pdf and docx #when verified before and after setting them #then verify fails then passes", async () => {
76
+ // given
77
+ const dir = sessionDir()
78
+ const pdf = join(dir, "report.pdf")
79
+ writeFileSync(pdf, "x")
80
+ await run(["outcome", "init", "--session-dir", dir, "--promised", "pdf,docx", "--lane", "no-format"])
81
+ // when
82
+ const before = await run(["outcome", "verify", "--session-dir", dir])
83
+ await run(["outcome", "set", "pdf", "delivered", "--path", pdf, "--session-dir", dir])
84
+ await run(["outcome", "set", "docx", "skipped", "--reason", "no editing audience", "--session-dir", dir])
85
+ await run(["outcome", "gate", "static", "pass", "--session-dir", dir])
86
+ const after = await run(["outcome", "verify", "--session-dir", dir])
87
+ // then
88
+ expect(before.exitCode).toBe(1)
89
+ expect(after.exitCode).toBe(0)
90
+ const manifest = JSON.parse(readFileSync(join(dir, "outcome.json"), "utf8"))
91
+ expect(manifest.deliverables.find((row: { format: string }) => row.format === "pdf").path).toBe(pdf)
92
+ expect(manifest.gates.static).toBe("pass")
93
+ })
94
+
95
+ test("#given a ledger and a fixed now #when the briefing is asked as JSON #then counts come from the ledger and the dir stamp", async () => {
96
+ const dir = sessionDir()
97
+ await run(["outcome", "init", "--session-dir", dir, "--promised", "html"])
98
+ writeFileSync(join(dir, "sources-ledger.md"), ["[S1] https://a.example/x", "[S2] https://b.example/y", "[Source 3] https://a.example/z"].join("\n"))
99
+ const start = new Date(2026, 0, 1, 12, 0, 0)
100
+ const now = new Date(start.getTime() + 61 * 60_000).toISOString()
101
+ const result = await run(["outcome", "briefing", "--json", "--session-dir", dir, "--now", now])
102
+ expect(result.json.sources).toBe(3)
103
+ expect(result.json.domains).toBe(2)
104
+ expect(result.json.minutes).toBe(61)
105
+ })
106
+ })
107
+
108
+ describe("repair decide", () => {
109
+ test("#given three minor code sets with the same measure #when decided in turn #then the third call stops on plateau", async () => {
110
+ const dir = sessionDir()
111
+ const state = join(dir, "repair-state.json")
112
+ const reasons = []
113
+ for (const [index, code] of ["heading_generic", "heading_too_long", "en_dash_in_prose"].entries()) {
114
+ const result = await run(["repair", "decide", "--state", state, "--defects", defectsFile(dir, `d${index}.json`, [code]), "--artifact-bytes", "4096", "--renders", "1", "--max-attempts", "5"])
115
+ reasons.push(result.json.decision.reason)
116
+ }
117
+ expect(reasons.at(-1)).toBe("plateau")
118
+ })
119
+
120
+ test("#given the same defects twice #when decided #then the second call stops on oscillation", async () => {
121
+ const dir = sessionDir()
122
+ const state = join(dir, "repair-state.json")
123
+ const file = defectsFile(dir, "d.json", ["heading_generic"])
124
+ await run(["repair", "decide", "--state", state, "--defects", file, "--artifact-bytes", "4096", "--renders", "1"])
125
+ const second = await run(["repair", "decide", "--state", state, "--defects", file, "--artifact-bytes", "4096", "--renders", "1"])
126
+ expect(second.json.decision.reason).toBe("oscillation")
127
+ expect(second.json.decision.action).toBe("deliver")
128
+ })
129
+
130
+ test("#given no artifact proof #when a stop condition holds #then delivery is blocked (fail closed)", async () => {
131
+ const dir = sessionDir()
132
+ const state = join(dir, "repair-state.json")
133
+ const file = defectsFile(dir, "d.json", ["heading_generic"])
134
+ await run(["repair", "decide", "--state", state, "--defects", file])
135
+ const second = await run(["repair", "decide", "--state", state, "--defects", file])
136
+ expect(second.json.decision.action).toBe("block")
137
+ expect(second.exitCode).toBe(1)
138
+ })
139
+ })
140
+
141
+ describe("layout-probe", () => {
142
+ test("#given --json #when run #then the source is an async IIFE", async () => {
143
+ const result = await run(["layout-probe", "--json", "--cap", "20"])
144
+ expect(result.json.source.startsWith("(async () => {")).toBe(true)
145
+ expect(result.json.source).toContain("const CAP = 20;")
146
+ })
147
+ })
148
+
149
+ describe("manifest bookkeeping", () => {
150
+ test("#given a session manifest #when repair decides deliver-on-exhaustion #then outcome.json carries the repair summary and the residual defects", async () => {
151
+ // given
152
+ const dir = sessionDir()
153
+ await run(["outcome", "init", "--session-dir", dir, "--promised", "html"])
154
+ const state = join(dir, "repair-state.json")
155
+ const file = defectsFile(dir, "d.json", ["heading_generic"])
156
+ const proof = ["--artifact-bytes", "4096", "--renders", "1", "--session-dir", dir]
157
+ // when
158
+ await run(["repair", "decide", "--state", state, "--defects", file, ...proof])
159
+ await run(["repair", "decide", "--state", state, "--defects", file, ...proof])
160
+ // then
161
+ const manifest = JSON.parse(readFileSync(join(dir, "outcome.json"), "utf8"))
162
+ expect(manifest.repair).toEqual({ attempts: 2, action: "deliver", reason: "oscillation" })
163
+ expect(manifest.residualDefects.map((d: { code: string }) => d.code)).toEqual(["heading_generic"])
164
+ const briefing = await run(["outcome", "briefing", "--json", "--session-dir", dir])
165
+ expect(briefing.json.residualDefects).toBe(1)
166
+ expect(briefing.json.repair).toEqual({ attempts: 2, action: "deliver", reason: "oscillation" })
167
+ })
168
+
169
+ test("#given a clean repair decision #when recorded #then residual defects are emptied", async () => {
170
+ const dir = sessionDir()
171
+ await run(["outcome", "init", "--session-dir", dir, "--promised", "html"])
172
+ const state = join(dir, "repair-state.json")
173
+ await run(["repair", "decide", "--state", state, "--defects", defectsFile(dir, "a.json", ["heading_generic"]), "--session-dir", dir])
174
+ await run(["repair", "decide", "--state", state, "--defects", defectsFile(dir, "b.json", []), "--session-dir", dir])
175
+ const manifest = JSON.parse(readFileSync(join(dir, "outcome.json"), "utf8"))
176
+ expect(manifest.residualDefects).toEqual([])
177
+ expect(manifest.repair.reason).toBe("clean")
178
+ })
179
+
180
+ test("#given a ledger and a fixed now #when the run is finished #then finishedAt, elapsedMinutes and source counts are stamped and still validate", async () => {
181
+ const dir = sessionDir()
182
+ const pdf = join(dir, "report.pdf")
183
+ writeFileSync(pdf, "x")
184
+ await run(["outcome", "init", "--session-dir", dir, "--promised", "pdf"])
185
+ await run(["outcome", "set", "pdf", "delivered", "--path", pdf, "--session-dir", dir])
186
+ writeFileSync(join(dir, "sources-ledger.md"), ["[S1] https://a.example/x", "[S2] https://b.example/y"].join("\n"))
187
+ const now = new Date(new Date(2026, 0, 1, 12, 0, 0).getTime() + 30 * 60_000).toISOString()
188
+ const result = await run(["outcome", "finish", "--session-dir", dir, "--now", now])
189
+ const manifest = JSON.parse(readFileSync(join(dir, "outcome.json"), "utf8"))
190
+ expect(result.exitCode).toBe(0)
191
+ expect(manifest.finishedAt).toBe(now)
192
+ expect(manifest.elapsedMinutes).toBe(30)
193
+ expect(manifest.sources).toEqual({ total: 2, domains: 2 })
194
+ expect((await run(["outcome", "verify", "--session-dir", dir])).exitCode).toBe(0)
195
+ })
196
+ })
197
+
198
+ describe("format-extract exit codes", () => {
199
+ test("#given a pdf reference under node #when extracted #then it exits 2 with the unsupported message", () => {
200
+ const dir = sessionDir()
201
+ const pdf = join(dir, "reference.pdf")
202
+ writeFileSync(pdf, "%PDF-1.7")
203
+ const proc = nodeWithoutBun(["format-extract", pdf, "--out", join(dir, "design-spec.md")])
204
+ expect(proc.exitCode).toBe(2)
205
+ expect(proc.stderr.toString()).toContain("unsupported")
206
+ })
207
+
208
+ test("#given an unreachable url #when extracted #then it exits 2", () => {
209
+ const dir = sessionDir()
210
+ const proc = nodeWithoutBun(["format-extract", "http://127.0.0.1:9/report.html", "--from-url", "--out", join(dir, "design-spec.md")])
211
+ expect(proc.exitCode).toBe(2)
212
+ })
213
+ })
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="640" height="360" viewBox="0 0 640 360"><rect width="640" height="360" fill="#f7f5f0"/></svg>
@@ -0,0 +1,44 @@
1
+ <!doctype html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Static gate fixture: every static defect once</title>
6
+ <style>
7
+ :root { --bg: #f7f5f0; --fg: #1f1d1a; --accent: #2f6f4f; }
8
+ body { background: var(--bg); color: var(--fg); font-family: "Nanum Myeongjo", serif; }
9
+ .note { color: #123456; }
10
+ </style>
11
+ </head>
12
+ <body>
13
+ <main>
14
+ <h1>분기별 배포 지표 점검 보고서</h1>
15
+ <section>
16
+ <h2>배포 지표가 흔들린 분기</h2>
17
+ <p>이번 분기에는 배포 파이프라인을 두 번 바꿨고, 그 과정을 기록으로 남겼어요 [S1].</p>
18
+ <p>매출이 12.5% 증가했다.</p>
19
+ <p>The rollout finished early — nobody expected that [S1].</p>
20
+ <p>A quick win–loss review followed [S1].</p>
21
+ <p>Launch day went well 🚀 [S1].</p>
22
+ <h3>Summary</h3>
23
+ <h3>This subsection heading keeps going far past any sensible single line of text</h3>
24
+ <img src="data:image/png;base64,iVBORw0KGgo=" alt="unwrapped chart" width="480" height="240">
25
+ <figure>
26
+ <svg width="480" height="240" viewBox="0 0 480 240"><rect x="0" y="0" width="40" height="120" fill="#2f6f4f"/></svg>
27
+ <figcaption>Blank chart [S1]</figcaption>
28
+ </figure>
29
+ <figure>
30
+ <svg width="480" height="240" viewBox="0 0 480 240"><title>Weekly deploys</title><text x="4" y="230">0</text><text x="4" y="20">10</text><text x="200" y="236">Deploys</text></svg>
31
+ <figcaption>Two ticks only [S1]</figcaption>
32
+ </figure>
33
+ <figure>
34
+ <img src="assets/missing-figure.png" alt="lost asset" width="480" height="240">
35
+ <figcaption>Lost asset [S1]</figcaption>
36
+ </figure>
37
+ </section>
38
+ <section>
39
+ <h2>팀 구성은 그대로였다</h2>
40
+ <p>팀 구성은 분기 내내 바뀌지 않았고, 새로 합류한 사람도 떠난 사람도 없었어요. 역할 분담도 그대로여서 배포 담당자는 여전히 한 사람이었고, 리뷰는 돌아가면서 맡았습니다. 회의 방식과 문서 양식도 이전 분기와 같았어요. 그래서 이 절에서는 사람 쪽 변화가 원인이라고 보기 어렵다는 점만 적어 둡니다.</p>
41
+ </section>
42
+ </main>
43
+ </body>
44
+ </html>
@@ -0,0 +1,90 @@
1
+ {
2
+ "probe_version": 1,
3
+ "viewport": { "w": 1280, "h": 900 },
4
+ "document": { "w": 1280, "h": 9240 },
5
+ "count": 7,
6
+ "truncated": false,
7
+ "boxes": [
8
+ {
9
+ "selector": "body > main > section:nth-of-type(1) > h2",
10
+ "tag": "h2",
11
+ "rect": { "x": 353, "y": 420, "w": 574, "h": 38.4 },
12
+ "parentSelector": "body > main > section:nth-of-type(1)",
13
+ "parentRect": { "x": 353, "y": 400, "w": 574, "h": 1400 },
14
+ "scroll": { "sw": 574, "cw": 574, "sh": 38, "ch": 38 },
15
+ "overflow": { "x": "visible", "y": "visible" },
16
+ "position": "static",
17
+ "textLen": 31
18
+ },
19
+ {
20
+ "selector": "body > main > section:nth-of-type(1) > p:nth-of-type(1)",
21
+ "tag": "p",
22
+ "rect": { "x": 353, "y": 474.4, "w": 574, "h": 115.6 },
23
+ "parentSelector": "body > main > section:nth-of-type(1)",
24
+ "parentRect": { "x": 353, "y": 400, "w": 574, "h": 1400 },
25
+ "scroll": { "sw": 574, "cw": 574, "sh": 116, "ch": 116 },
26
+ "overflow": { "x": "visible", "y": "visible" },
27
+ "position": "static",
28
+ "textLen": 212
29
+ },
30
+ {
31
+ "selector": "body > main > section:nth-of-type(1) > figure:nth-of-type(1)",
32
+ "tag": "figure",
33
+ "rect": { "x": 353, "y": 614, "w": 574, "h": 761 },
34
+ "parentSelector": "body > main > section:nth-of-type(1)",
35
+ "parentRect": { "x": 353, "y": 400, "w": 574, "h": 1400 },
36
+ "scroll": { "sw": 574, "cw": 574, "sh": 761, "ch": 761 },
37
+ "overflow": { "x": "visible", "y": "visible" },
38
+ "position": "static",
39
+ "textLen": 48
40
+ },
41
+ {
42
+ "selector": "body > main > section:nth-of-type(1) > figure:nth-of-type(1) > img",
43
+ "tag": "img",
44
+ "rect": { "x": 353, "y": 614, "w": 574, "h": 717 },
45
+ "parentSelector": "body > main > section:nth-of-type(1) > figure:nth-of-type(1)",
46
+ "parentRect": { "x": 353, "y": 614, "w": 574, "h": 761 },
47
+ "scroll": { "sw": 574, "cw": 574, "sh": 717, "ch": 717 },
48
+ "overflow": { "x": "visible", "y": "visible" },
49
+ "position": "static",
50
+ "textLen": 0,
51
+ "objectFit": "fill",
52
+ "natural": { "w": 1280, "h": 1600 }
53
+ },
54
+ {
55
+ "selector": "body > main > section:nth-of-type(1) > figure:nth-of-type(2)",
56
+ "tag": "figure",
57
+ "rect": { "x": 353, "y": 1399, "w": 574, "h": 368.4 },
58
+ "parentSelector": "body > main > section:nth-of-type(1)",
59
+ "parentRect": { "x": 353, "y": 400, "w": 574, "h": 1400 },
60
+ "scroll": { "sw": 574, "cw": 574, "sh": 368, "ch": 368 },
61
+ "overflow": { "x": "visible", "y": "visible" },
62
+ "position": "static",
63
+ "textLen": 52
64
+ },
65
+ {
66
+ "selector": "body > main > section:nth-of-type(1) > figure:nth-of-type(2) > img",
67
+ "tag": "img",
68
+ "rect": { "x": 353, "y": 1399, "w": 574, "h": 324.4 },
69
+ "parentSelector": "body > main > section:nth-of-type(1) > figure:nth-of-type(2)",
70
+ "parentRect": { "x": 353, "y": 1399, "w": 574, "h": 368.4 },
71
+ "scroll": { "sw": 574, "cw": 574, "sh": 324, "ch": 324 },
72
+ "overflow": { "x": "visible", "y": "visible" },
73
+ "position": "static",
74
+ "textLen": 0,
75
+ "objectFit": "fill",
76
+ "natural": { "w": 1100, "h": 620 }
77
+ },
78
+ {
79
+ "selector": "#method > pre",
80
+ "tag": "pre",
81
+ "rect": { "x": 353, "y": 8120, "w": 574, "h": 180 },
82
+ "parentSelector": "#method",
83
+ "parentRect": { "x": 353, "y": 8040, "w": 574, "h": 420 },
84
+ "scroll": { "sw": 812, "cw": 550, "sh": 156, "ch": 156 },
85
+ "overflow": { "x": "auto", "y": "auto" },
86
+ "position": "static",
87
+ "textLen": 640
88
+ }
89
+ ]
90
+ }
@@ -0,0 +1,29 @@
1
+ # Design spec
2
+
3
+ ## Extracted from
4
+ - Source: fixture written by hand for the static gate tests
5
+
6
+ ## Tokens
7
+ ```css
8
+ :root {
9
+ --bg: #f7f5f0;
10
+ --fg: #1f1d1a;
11
+ --accent: #2f6f4f;
12
+ --rule: #d9d4c7;
13
+ --mute: #6b665c;
14
+ }
15
+ @media (prefers-color-scheme: dark) {
16
+ :root {
17
+ --bg: #121110;
18
+ --fg: #e8e4dc;
19
+ --accent: #7fbf9f;
20
+ }
21
+ }
22
+ ```
23
+
24
+ ## Typography
25
+ - Body font: Pretendard, "Apple SD Gothic Neo", sans-serif
26
+
27
+ ## Citations
28
+ - Style: bracket-S
29
+ - Lineage: inline
@@ -0,0 +1,57 @@
1
+ <!doctype html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Static gate fixture: passing report</title>
6
+ <style>
7
+ :root { --bg: #f7f5f0; --fg: #1f1d1a; --accent: #2f6f4f; --rule: #d9d4c7; --mute: #6b665c; --ff: Pretendard, "Apple SD Gothic Neo", sans-serif; }
8
+ @media (prefers-color-scheme: dark) { :root { --bg: #121110; --fg: #e8e4dc; --accent: #7fbf9f; } }
9
+ body { background: var(--bg); color: var(--fg); font-family: var(--ff); word-break: keep-all; overflow-wrap: anywhere; }
10
+ th, td { border-bottom: 1px solid var(--rule); }
11
+ figcaption { color: var(--mute); }
12
+ .card { background: #fff; }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <header><h1>소규모 팀의 배포 속도 비교</h1></header>
17
+ <main>
18
+ <section id="speed">
19
+ <h2>배포 주기가 짧아진 이유 <svg class="mark" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path d="M2 8h12" stroke="#1f1d1a"/></svg></h2>
20
+ <p>매출이 12.5% 증가했다 [S1]. 같은 기간 팀 규모는 그대로였어요.</p>
21
+ <p>2019–2024 구간을 기준으로 비교했습니다.</p>
22
+ <p>배포는 한 달에 48건이었어요 MEASURED.</p>
23
+ <p data-lineage="DERIVED">평균 리드 타임은 3.2일로 계산했어요.</p>
24
+ <p>리뷰 대기 시간은 40% 줄었습니다 <a href="#s3">[3]</a>.</p>
25
+ <figure>
26
+ <img src="assets/figure-1.svg" alt="월별 배포 건수" width="640" height="360">
27
+ <figcaption>그림 1. 월별 배포 건수 [S1]</figcaption>
28
+ </figure>
29
+ <figure class="chart">
30
+ <svg width="640" height="320" viewBox="0 0 640 320" role="img"><title>Monthly deploys</title><rect x="40" y="100" width="60" height="200" fill="#2f6f4f"/><text x="4" y="300" font-size="12">0</text><text x="4" y="200" font-size="12">25</text><text x="4" y="100" font-size="12">50</text><text x="300" y="316" font-size="12">Deploys per month</text></svg>
31
+ <figcaption>월별 배포 추이 [S2]</figcaption>
32
+ </figure>
33
+ <table>
34
+ <thead><tr><th>항목</th><th>상태</th></tr></thead>
35
+ <tbody><tr><td>자동 배포</td><td>✓</td></tr><tr><td>수동 승인</td><td>—</td></tr></tbody>
36
+ </table>
37
+ </section>
38
+ <section id="review">
39
+ <h2>Review load moved to the author</h2>
40
+ <p>Authors now merge their own changes after a green build, which the team describes as the main reason reviews stopped queueing behind one maintainer [S2].</p>
41
+ </section>
42
+ <section id="method">
43
+ <h2>How this report was made</h2>
44
+ <p>We read the public changelog and counted 147 entries by hand, then checked the totals against the team handbook.</p>
45
+ </section>
46
+ <section id="sources">
47
+ <h2>Sources</h2>
48
+ <ol>
49
+ <li id="s1">Quarterly engineering review — internal summary, 2024</li>
50
+ <li id="s2">Team handbook, deploy chapter</li>
51
+ <li id="s3">Review queue dashboard export</li>
52
+ </ol>
53
+ </section>
54
+ </main>
55
+ <footer><p>Fixture for the static gate tests.</p></footer>
56
+ </body>
57
+ </html>
@@ -0,0 +1,86 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Reference report</title>
7
+ <style>
8
+ :root {
9
+ --bg: #faf6ef;
10
+ --bg-raise: #ffffff;
11
+ --fg: #24211b;
12
+ --fg-mute: #6d6759;
13
+ --rule: #e4dccb;
14
+ --accent: #c2410c;
15
+ --accent-soft: #fbe7d4;
16
+ --good: #15803d;
17
+ --measure: 720px;
18
+ --ff-body: "Inter Display", "Noto Sans KR", sans-serif;
19
+ --ff-head: "Fraunces", Georgia, serif;
20
+ --ff-mono: "Iosevka Term", ui-monospace, monospace;
21
+ }
22
+ @media (prefers-color-scheme: dark) {
23
+ :root {
24
+ --bg: #0c0b0a;
25
+ --bg-raise: #171512;
26
+ --fg: #fbf0df;
27
+ --fg-mute: #b3a992;
28
+ --rule: #2b2721;
29
+ --accent: #f8b878;
30
+ --accent-soft: #2a2013;
31
+ --good: #7cd992;
32
+ }
33
+ }
34
+ </style>
35
+ <style>
36
+ body {
37
+ margin: 0;
38
+ font-family: var(--ff-body);
39
+ font-size: 17px;
40
+ line-height: 1.7;
41
+ color: var(--fg);
42
+ background: var(--bg);
43
+ }
44
+ h1, h2, h3 { font-family: var(--ff-head); color: #24211b; }
45
+ a { color: #c2410c; }
46
+ code, pre { font-family: var(--ff-mono); }
47
+ .wrap { max-width: var(--measure); margin: 0 auto; padding: 0 16px; }
48
+ .fig { border: 1px solid #e4dccb; background: #ffffff; padding: 16px; }
49
+ .fig img { max-width: 100%; height: auto; object-fit: contain; }
50
+ .fig-cap { color: #6d6759; font-size: 14px; }
51
+ @media (min-width: 560px) { .wrap { padding: 0 24px; } }
52
+ @media (min-width: 640px) { .grid { display: grid; grid-template-columns: 1fr 1fr; } }
53
+ </style>
54
+ </head>
55
+ <body>
56
+ <main class="wrap">
57
+ <h1>How a small team ships every week</h1>
58
+ <p>A reference report used as a format source. Weekly releases held for 19 months [S1].</p>
59
+ <section>
60
+ <h2>01 The release cadence</h2>
61
+ <p>The team shipped 147 announcements in 16 months [S1]. The monthly mean is 8.75 [S2].</p>
62
+ <figure class="fig chart">
63
+ <svg viewBox="0 0 200 100" role="img"><title>Announcements per month</title><text x="4" y="12">count</text></svg>
64
+ <figcaption class="fig-cap">Announcements per month, counted from the changelog [S1].</figcaption>
65
+ </figure>
66
+ </section>
67
+ <section>
68
+ <h2>02 How work is reviewed</h2>
69
+ <p>Work lands on the main branch without a review queue [S3].</p>
70
+ <div class="fig">
71
+ <img src="data:image/gif;base64,R0lGODlhAQABAAAAACw=" alt="Screenshot of the note">
72
+ <p class="fig-cap">The published note, captured on the access date [S3].</p>
73
+ </div>
74
+ <pre><code>git push origin main</code></pre>
75
+ </section>
76
+ <section>
77
+ <h2>03 Sources</h2>
78
+ <ol>
79
+ <li>[S1] Changelog, accessed 2026-09-16.</li>
80
+ <li>[S2] Derived monthly mean.</li>
81
+ <li>[S3] Engineering note, accessed 2026-09-16.</li>
82
+ </ol>
83
+ </section>
84
+ </main>
85
+ </body>
86
+ </html>
@@ -0,0 +1,23 @@
1
+ # 작은 팀은 어떻게 매주 배포하는가
2
+
3
+ 기준일은 2026년 9월 16일입니다 [S1].
4
+
5
+ ## 01 배포 주기
6
+
7
+ 제품 공지는 147건이었어요 [S1]. 월평균은 8.75건입니다 [S2].
8
+
9
+ ```md
10
+ ## 99 not a heading inside a fence
11
+ ```
12
+
13
+ ### Details below the section level
14
+
15
+ ## 02 리뷰 없이 일하는 방식
16
+
17
+ 작업은 리뷰 대기열 없이 main 에 들어갑니다 [S3].
18
+
19
+ ## 03 출처
20
+
21
+ - [S1] Changelog, accessed 2026-09-16.
22
+ - [S2] Derived monthly mean.
23
+ - [S3] Engineering note, accessed 2026-09-16.