oh-my-opencode 4.13.0 → 4.14.1

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 (516) hide show
  1. package/.agents/skills/codex-qa/SKILL.md +15 -0
  2. package/.agents/skills/codex-qa/references/isolation.md +1 -1
  3. package/.agents/skills/codex-qa/references/logging-debug.md +12 -0
  4. package/.agents/skills/opencode-qa/SKILL.md +17 -0
  5. package/.agents/skills/opencode-qa/references/tui-tmux.md +17 -0
  6. package/.agents/skills/work-with-pr/SKILL.md +18 -10
  7. package/.opencode/skills/work-with-pr/SKILL.md +18 -10
  8. package/README.md +3 -3
  9. package/dist/cli/doctor/checks/telemetry.d.ts +2 -0
  10. package/dist/cli/doctor/framework/constants.d.ts +1 -0
  11. package/dist/cli/doctor/framework/doctor-target.d.ts +1 -1
  12. package/dist/cli/doctor/framework/types.d.ts +2 -0
  13. package/dist/cli/index.js +24779 -17857
  14. package/dist/cli-node/index.js +24779 -17857
  15. package/dist/config/schema/oh-my-opencode-config.d.ts +1 -0
  16. package/dist/features/team-mode/test-support/async-test-helpers.d.ts +19 -0
  17. package/dist/hooks/atlas/final-wave-approval-gate.d.ts +1 -0
  18. package/dist/hooks/atlas/subagent-completion-reminder.d.ts +30 -0
  19. package/dist/hooks/atlas/types.d.ts +2 -0
  20. package/dist/hooks/atlas/verification-reminders.d.ts +3 -0
  21. package/dist/hooks/team-session-events/team-idle-wake-hint.d.ts +1 -0
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.js +43845 -26631
  24. package/dist/mcp/context7.d.ts +9 -8
  25. package/dist/oh-my-opencode.schema.json +4 -0
  26. package/dist/plugin/native-skills.d.ts +9 -0
  27. package/dist/plugin/system-transform.d.ts +1 -1
  28. package/dist/shared/posthog.d.ts +17 -10
  29. package/dist/shared/telemetry-product-identity.d.ts +2 -0
  30. package/dist/skills/coding-agent-sessions/SKILL.md +128 -0
  31. package/dist/skills/coding-agent-sessions/agents/openai.yaml +4 -0
  32. package/dist/skills/coding-agent-sessions/references/all-platforms.md +71 -0
  33. package/dist/skills/coding-agent-sessions/references/claude.md +32 -0
  34. package/dist/skills/coding-agent-sessions/references/codex.md +30 -0
  35. package/dist/skills/coding-agent-sessions/references/opencode.md +43 -0
  36. package/dist/skills/coding-agent-sessions/references/senpi.md +17 -0
  37. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
  38. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
  39. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
  40. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
  41. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
  42. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
  43. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
  44. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
  45. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
  46. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
  47. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
  48. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
  49. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
  50. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
  51. package/dist/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
  52. package/dist/skills/frontend/ATTRIBUTION.md +52 -8
  53. package/dist/skills/frontend/SKILL.md +29 -8
  54. package/dist/skills/frontend/references/design/README.md +29 -12
  55. package/dist/skills/frontend/references/design/_INDEX.md +3 -3
  56. package/dist/skills/frontend/references/design/design-system-architecture.md +22 -19
  57. package/dist/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
  58. package/dist/skills/frontend/references/designpowers/README.md +48 -0
  59. package/dist/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
  60. package/dist/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
  61. package/dist/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
  62. package/dist/skills/frontend/references/designpowers/lane-c-review.md +65 -0
  63. package/dist/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
  64. package/dist/skills/frontend/references/designpowers/orchestration.md +80 -0
  65. package/dist/skills/frontend/references/designpowers/routing.md +79 -0
  66. package/dist/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
  67. package/dist/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
  68. package/dist/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
  69. package/dist/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
  70. package/dist/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
  71. package/dist/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
  72. package/dist/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
  73. package/dist/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
  74. package/dist/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
  75. package/dist/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
  76. package/dist/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
  77. package/dist/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
  78. package/dist/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
  79. package/dist/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
  80. package/dist/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
  81. package/dist/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
  82. package/dist/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
  83. package/dist/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
  84. package/dist/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
  85. package/dist/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
  86. package/dist/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
  87. package/dist/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
  88. package/dist/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
  89. package/dist/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
  90. package/dist/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
  91. package/dist/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
  92. package/dist/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
  93. package/dist/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
  94. package/dist/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
  95. package/dist/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
  96. package/dist/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
  97. package/dist/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
  98. package/dist/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
  99. package/dist/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
  100. package/dist/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
  101. package/dist/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
  102. package/dist/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
  103. package/dist/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
  104. package/dist/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
  105. package/dist/skills/git-master/SKILL.md +4 -0
  106. package/dist/skills/lcx-contribute-bug-fix/SKILL.md +44 -13
  107. package/dist/skills/lcx-contribute-bug-fix/agents/openai.yaml +1 -1
  108. package/dist/skills/lcx-doctor/SKILL.md +48 -13
  109. package/dist/skills/lcx-doctor/agents/openai.yaml +1 -1
  110. package/dist/skills/lcx-report-bug/SKILL.md +44 -13
  111. package/dist/skills/lcx-report-bug/agents/openai.yaml +1 -1
  112. package/dist/skills/review-work/SKILL.md +3 -3
  113. package/dist/skills/start-work/SKILL.md +7 -5
  114. package/dist/skills/ultraresearch/SKILL.md +4 -252
  115. package/dist/skills/ulw-plan/SKILL.md +8 -6
  116. package/dist/skills/ulw-plan/references/full-workflow.md +11 -6
  117. package/dist/skills/ulw-plan/references/intent-clear.md +3 -3
  118. package/dist/skills/ulw-plan/references/intent-unclear.md +1 -1
  119. package/{packages/shared-skills/skills/ultraresearch → dist/skills/ulw-research}/ATTRIBUTION.md +1 -1
  120. package/dist/skills/ulw-research/SKILL.md +260 -0
  121. package/dist/skills/visual-qa/SKILL.md +109 -18
  122. package/dist/skills/visual-qa/references/agent-browser-setup.md +5 -4
  123. package/dist/skills/visual-qa/scripts/cli.test.ts +7 -2
  124. package/dist/skills/visual-qa/scripts/skill-prompt-contract.test.ts +130 -3
  125. package/dist/skills/visual-qa/scripts/visual-qa.mjs +530 -0
  126. package/dist/testing/create-plugin-module.d.ts +2 -0
  127. package/dist/tools/delegate-task/skill-resolver.d.ts +1 -0
  128. package/dist/tools/delegate-task/types.d.ts +2 -0
  129. package/dist/tools/skill/types.d.ts +1 -0
  130. package/dist/tui.js +23917 -16117
  131. package/docs/reference/github-attachment-upload.md +51 -0
  132. package/docs/reference/web-terminal-visual-qa.md +81 -0
  133. package/package.json +33 -14
  134. package/packages/git-bash-mcp/dist/cli.js +2 -0
  135. package/packages/lsp-core/src/lsp/process.ts +4 -1
  136. package/packages/lsp-core/src/mcp.ts +1 -0
  137. package/packages/lsp-daemon/dist/cli.js +20 -5
  138. package/packages/lsp-daemon/dist/ensure-daemon.d.ts +1 -0
  139. package/packages/lsp-daemon/dist/ensure-daemon.js +9 -3
  140. package/packages/lsp-daemon/dist/index.js +20 -5
  141. package/packages/lsp-daemon/dist/paths.d.ts +1 -0
  142. package/packages/lsp-daemon/dist/paths.js +6 -1
  143. package/packages/lsp-daemon/dist/proxy.js +1 -0
  144. package/packages/lsp-tools-mcp/dist/cli.js +5 -1
  145. package/packages/lsp-tools-mcp/dist/lsp/manager.js +4 -1
  146. package/packages/lsp-tools-mcp/dist/mcp.js +5 -1
  147. package/packages/lsp-tools-mcp/dist/tools.js +4 -1
  148. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  149. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +327 -69
  150. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  151. package/packages/omo-codex/plugin/components/bootstrap/scripts/bootstrap.ps1 +37 -68
  152. package/packages/omo-codex/plugin/components/bootstrap/scripts/node-dispatch.ps1 +75 -0
  153. package/packages/omo-codex/plugin/components/bootstrap/src/cli.ts +1 -1
  154. package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +3 -19
  155. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +688 -334
  156. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +317 -39
  157. package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
  158. package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +7 -1
  159. package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +103 -3
  160. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +231 -0
  161. package/packages/omo-codex/plugin/components/codegraph/src/serve-invocation.ts +29 -0
  162. package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +31 -57
  163. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +7 -4
  164. package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +43 -9
  165. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +287 -0
  166. package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +12 -7
  167. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +71 -1
  168. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  169. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  170. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  171. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +94 -26
  172. package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.js +2 -0
  173. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.d.ts +2 -0
  174. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +56 -0
  175. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  176. package/packages/omo-codex/plugin/components/lsp/src/cli.ts +2 -5
  177. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +2 -0
  178. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +65 -0
  179. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +6 -1
  180. package/packages/omo-codex/plugin/components/rules/dist/cli.js +8 -106
  181. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  182. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -17
  183. package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +6 -6
  184. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  185. package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +23 -0
  186. package/packages/omo-codex/plugin/components/teammode/dist/cli.js +22 -4
  187. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  188. package/packages/omo-codex/plugin/components/teammode/skills/teammode/SKILL.md +57 -7
  189. package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team-guide.mjs +32 -5
  190. package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team-state.mjs +63 -1
  191. package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team.mjs +87 -53
  192. package/packages/omo-codex/plugin/components/teammode/src/codex-hook.ts +19 -4
  193. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +32 -2
  194. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  195. package/packages/omo-codex/plugin/components/ultrawork/README.md +1 -1
  196. package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -1
  197. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +2 -2
  198. package/packages/omo-codex/plugin/components/ultrawork/directive.md +18 -10
  199. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +1 -1
  200. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  201. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +6 -4
  202. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +11 -6
  203. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +3 -3
  204. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +1 -1
  205. package/packages/omo-codex/plugin/components/ultrawork/src/codex-hook.ts +1 -1
  206. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +24 -0
  207. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +7 -28
  208. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +1 -1
  209. package/packages/omo-codex/plugin/components/ulw-loop/README.md +25 -21
  210. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +1 -1
  211. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +373 -0
  212. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.js +14 -1
  213. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +145 -14
  214. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.d.ts +6 -3
  215. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.js +16 -6
  216. package/packages/omo-codex/plugin/components/ulw-loop/dist/ultrawork-directive.d.ts +5 -0
  217. package/packages/omo-codex/plugin/components/ulw-loop/dist/ultrawork-directive.js +104 -0
  218. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +1 -1
  219. package/packages/omo-codex/plugin/components/ulw-loop/package.json +5 -2
  220. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
  221. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +22 -14
  222. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-steering.ts +14 -1
  223. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +4 -2
  224. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +28 -6
  225. package/packages/omo-codex/plugin/components/ulw-loop/src/ultrawork-directive.ts +113 -0
  226. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +33 -2
  227. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-kind-guidance.test.ts +31 -0
  228. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +13 -0
  229. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/sample-quality-gate.json +7 -7
  230. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +39 -1
  231. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-doc.test.ts +2 -2
  232. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +7 -6
  233. package/packages/omo-codex/plugin/components/ulw-loop/test/skill-contract.test.ts +12 -0
  234. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +64 -0
  235. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +2 -1
  236. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +2 -1
  237. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +2 -1
  238. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +2 -1
  239. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +2 -1
  240. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +2 -1
  241. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +2 -1
  242. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +2 -1
  243. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +2 -1
  244. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +2 -1
  245. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +2 -1
  246. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +2 -1
  247. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +2 -1
  248. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +2 -1
  249. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +2 -1
  250. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +2 -1
  251. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +2 -1
  252. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +2 -1
  253. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +2 -1
  254. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +2 -1
  255. package/packages/omo-codex/plugin/package-lock.json +16 -56
  256. package/packages/omo-codex/plugin/package.json +1 -1
  257. package/packages/omo-codex/plugin/scripts/auto-update.mjs +9 -5
  258. package/packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs +1 -0
  259. package/packages/omo-codex/plugin/scripts/migrate-codex-config/context7-placeholder-guard.mjs +131 -0
  260. package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-mode-guard.mjs +60 -0
  261. package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +3 -10
  262. package/packages/omo-codex/plugin/scripts/migrate-codex-config/root-settings.mjs +31 -1
  263. package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +73 -0
  264. package/packages/omo-codex/plugin/scripts/migrate-codex-config.mjs +20 -3
  265. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +30 -8
  266. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +128 -0
  267. package/packages/omo-codex/plugin/skills/coding-agent-sessions/agents/openai.yaml +4 -0
  268. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +71 -0
  269. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/claude.md +32 -0
  270. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/codex.md +30 -0
  271. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/opencode.md +43 -0
  272. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +17 -0
  273. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
  274. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
  275. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
  276. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
  277. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
  278. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
  279. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
  280. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
  281. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
  282. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
  283. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
  284. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
  285. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
  286. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
  287. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
  288. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +52 -8
  289. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +29 -8
  290. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +29 -12
  291. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +3 -3
  292. package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +22 -19
  293. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
  294. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +48 -0
  295. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
  296. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
  297. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
  298. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-c-review.md +65 -0
  299. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
  300. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +80 -0
  301. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +79 -0
  302. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
  303. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
  304. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
  305. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
  306. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
  307. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
  308. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
  309. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
  310. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
  311. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
  312. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
  313. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
  314. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
  315. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
  316. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
  317. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
  318. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
  319. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
  320. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
  321. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
  322. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
  323. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
  324. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
  325. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
  326. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
  327. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
  328. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
  329. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
  330. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
  331. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
  332. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
  333. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
  334. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
  335. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
  336. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
  337. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
  338. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
  339. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
  340. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
  341. package/packages/omo-codex/plugin/skills/git-master/SKILL.md +4 -0
  342. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +4 -0
  343. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +44 -13
  344. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/agents/openai.yaml +1 -1
  345. package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +48 -13
  346. package/packages/omo-codex/plugin/skills/lcx-doctor/agents/openai.yaml +1 -1
  347. package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +44 -13
  348. package/packages/omo-codex/plugin/skills/lcx-report-bug/agents/openai.yaml +1 -1
  349. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +4 -0
  350. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +4 -0
  351. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +12 -4
  352. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +14 -8
  353. package/packages/omo-codex/plugin/skills/teammode/SKILL.md +57 -7
  354. package/packages/omo-codex/plugin/skills/teammode/scripts/team-guide.mjs +32 -5
  355. package/packages/omo-codex/plugin/skills/teammode/scripts/team-state.mjs +63 -1
  356. package/packages/omo-codex/plugin/skills/teammode/scripts/team.mjs +87 -53
  357. package/packages/omo-codex/plugin/skills/ultraresearch/SKILL.md +4 -250
  358. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
  359. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +22 -14
  360. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +6 -4
  361. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +11 -6
  362. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +3 -3
  363. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +1 -1
  364. package/{dist/skills/ultraresearch → packages/omo-codex/plugin/skills/ulw-research}/ATTRIBUTION.md +1 -1
  365. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +262 -0
  366. package/packages/omo-codex/plugin/skills/ulw-research/agents/openai.yaml +2 -0
  367. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +113 -18
  368. package/packages/omo-codex/plugin/skills/visual-qa/references/agent-browser-setup.md +5 -4
  369. package/packages/omo-codex/plugin/skills/visual-qa/scripts/visual-qa.mjs +530 -0
  370. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +23 -0
  371. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -0
  372. package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +1 -0
  373. package/packages/omo-codex/plugin/test/auto-update-restart-notice.test.mjs +24 -1
  374. package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +61 -7
  375. package/packages/omo-codex/plugin/test/bootstrap-hooks.test.mjs +38 -0
  376. package/packages/omo-codex/plugin/test/bootstrap-ps-guard.test.mjs +25 -0
  377. package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +1 -7
  378. package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +12 -11
  379. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +99 -1
  380. package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +62 -8
  381. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +206 -6
  382. package/packages/omo-codex/plugin/test/node-install-surface.test.mjs +1 -0
  383. package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +44 -0
  384. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +50 -1
  385. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +10 -7
  386. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +28 -2
  387. package/packages/omo-codex/plugin/test/teammode-archive-ambiguity.test.mjs +102 -0
  388. package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +20 -0
  389. package/packages/omo-codex/plugin/test/teammode-safety-fixture.mjs +41 -1
  390. package/packages/omo-codex/plugin/test/teammode-safety.test.mjs +93 -0
  391. package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +117 -0
  392. package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +5 -2
  393. package/packages/omo-codex/plugin/test/ulw-research-skill-contract.test.mjs +285 -0
  394. package/packages/omo-codex/scripts/install-bin-links.test.mjs +12 -1
  395. package/packages/omo-codex/scripts/install-cache-copy.test.mjs +79 -0
  396. package/packages/omo-codex/scripts/install-config-autonomous-features.test.mjs +43 -3
  397. package/packages/omo-codex/scripts/install-config.test.mjs +198 -17
  398. package/packages/omo-codex/scripts/install-delegated-command.test.mjs +93 -0
  399. package/packages/omo-codex/scripts/install-dist/install-local.mjs +803 -309
  400. package/packages/omo-codex/scripts/install-local-entrypoint.test.mjs +21 -2
  401. package/packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs +24 -15
  402. package/packages/omo-codex/scripts/install-local.test.mjs +5 -2
  403. package/packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs +84 -0
  404. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +128 -0
  405. package/packages/shared-skills/skills/coding-agent-sessions/agents/openai.yaml +4 -0
  406. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +71 -0
  407. package/packages/shared-skills/skills/coding-agent-sessions/references/claude.md +32 -0
  408. package/packages/shared-skills/skills/coding-agent-sessions/references/codex.md +30 -0
  409. package/packages/shared-skills/skills/coding-agent-sessions/references/opencode.md +43 -0
  410. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +17 -0
  411. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
  412. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
  413. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
  414. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
  415. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
  416. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
  417. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
  418. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
  419. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
  420. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
  421. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
  422. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
  423. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
  424. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
  425. package/packages/shared-skills/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
  426. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +52 -8
  427. package/packages/shared-skills/skills/frontend/SKILL.md +29 -8
  428. package/packages/shared-skills/skills/frontend/references/design/README.md +29 -12
  429. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +3 -3
  430. package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +22 -19
  431. package/packages/shared-skills/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
  432. package/packages/shared-skills/skills/frontend/references/designpowers/README.md +48 -0
  433. package/packages/shared-skills/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
  434. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
  435. package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
  436. package/packages/shared-skills/skills/frontend/references/designpowers/lane-c-review.md +65 -0
  437. package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
  438. package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +80 -0
  439. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +79 -0
  440. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
  441. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
  442. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
  443. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
  444. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
  445. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
  446. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
  447. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
  448. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
  449. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
  450. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
  451. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
  452. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
  453. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
  454. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
  455. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
  456. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
  457. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
  458. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
  459. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
  460. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
  461. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
  462. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
  463. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
  464. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
  465. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
  466. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
  467. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
  468. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
  469. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
  470. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
  471. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
  472. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
  473. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
  474. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
  475. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
  476. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
  477. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
  478. package/packages/shared-skills/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
  479. package/packages/shared-skills/skills/git-master/SKILL.md +4 -0
  480. package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +44 -13
  481. package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +1 -1
  482. package/packages/shared-skills/skills/lcx-doctor/SKILL.md +48 -13
  483. package/packages/shared-skills/skills/lcx-doctor/agents/openai.yaml +1 -1
  484. package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +44 -13
  485. package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +1 -1
  486. package/packages/shared-skills/skills/review-work/SKILL.md +3 -3
  487. package/packages/shared-skills/skills/start-work/SKILL.md +7 -5
  488. package/packages/shared-skills/skills/ultraresearch/SKILL.md +4 -252
  489. package/packages/shared-skills/skills/ulw-plan/SKILL.md +8 -6
  490. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +11 -6
  491. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +3 -3
  492. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +1 -1
  493. package/packages/{omo-codex/plugin/skills/ultraresearch → shared-skills/skills/ulw-research}/ATTRIBUTION.md +1 -1
  494. package/packages/shared-skills/skills/ulw-research/SKILL.md +260 -0
  495. package/packages/shared-skills/skills/visual-qa/SKILL.md +109 -18
  496. package/packages/shared-skills/skills/visual-qa/references/agent-browser-setup.md +5 -4
  497. package/packages/shared-skills/skills/visual-qa/scripts/cli.test.ts +7 -2
  498. package/packages/shared-skills/skills/visual-qa/scripts/skill-prompt-contract.test.ts +130 -3
  499. package/packages/shared-skills/skills/visual-qa/scripts/visual-qa.mjs +530 -0
  500. package/script/qa/web-terminal-redaction.d.mts +13 -0
  501. package/script/qa/web-terminal-redaction.mjs +43 -0
  502. package/script/qa/web-terminal-renderer.mjs +218 -0
  503. package/script/qa/web-terminal-visual-qa.mjs +264 -0
  504. package/dist/cli/sparkshell-appserver-websocket.d.ts +0 -4
  505. package/dist/cli/sparkshell-appserver.d.ts +0 -16
  506. package/dist/cli/sparkshell-condense.d.ts +0 -10
  507. package/dist/cli/sparkshell-parse.d.ts +0 -24
  508. package/dist/cli/sparkshell-session-context.d.ts +0 -20
  509. package/dist/cli/sparkshell-spark.d.ts +0 -23
  510. package/dist/cli/sparkshell.d.ts +0 -33
  511. package/dist/shared/sparkshell-awareness.d.ts +0 -5
  512. package/packages/omo-codex/plugin/components/rules/src/sparkshell-awareness.ts +0 -106
  513. package/packages/omo-codex/plugin/components/rules/test/sparkshell-awareness.test.ts +0 -346
  514. package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/tests/test_cookie_domain_filter.py +0 -110
  515. package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/tests/test_extract_cookies.py +0 -245
  516. package/packages/omo-codex/plugin/test/ultraresearch-skill-contract.test.mjs +0 -204
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: synthetic-user-testing
3
+ description: "Use after the fix round to validate the design by walking through key tasks as each persona — simulating how Jordan (low-vision), Priya (non-native speaker), Marcus (motor impairment), or any project persona would actually experience the interface. Catches the issues that code review misses because they only surface in the act of using"
4
+ ---
5
+
6
+ # Synthetic User Testing
7
+
8
+ Synthetic user testing is the closest thing to putting the design in front of real people without leaving the pipeline. You walk through the interface as each persona, attempting real tasks, and report what works, what breaks, and what feels wrong — from their perspective, not yours.
9
+
10
+ This is not a checklist exercise. It is an act of empathy disciplined by specifics. When you test as Jordan (low-vision, uses 200% zoom and high contrast), you don't ask "is contrast sufficient?" — you ask "can Jordan find the 'continue reading' button at 200% zoom when three articles are competing for attention?"
11
+
12
+ ## When to Use
13
+
14
+ - **After the fix round** — the design-builder has addressed findings from critic, accessibility-reviewer, and heuristic-evaluator. Now validate that the fixes work and no new issues were introduced
15
+ - **Before verification-before-shipping** — synthetic testing feeds directly into the persona walkthrough in the verification report
16
+ - **When the design-critic flags persona coverage gaps** — if the critique says "unclear whether Persona X can complete Task Y," run a synthetic test to find out
17
+ - **When the team is unsure about a flow** — synthetic testing turns "I think this works for screen reader users" into "here's exactly where a screen reader user would get stuck"
18
+
19
+ ## Process
20
+
21
+ ### Step 1: Gather Test Context
22
+
23
+ Before testing, assemble:
24
+ - **Personas** from `inclusive-personas` (via `design-state.md`)
25
+ - **Key tasks** from the design brief — the things the design must enable
26
+ - **The build** — test the actual implementation, not the spec
27
+ - **Assistive technology context** — for each persona, what tools they use and how (zoom level, screen reader, keyboard-only, switch access, etc.)
28
+
29
+ ### Step 2: Define Test Scenarios
30
+
31
+ For each key task in the brief, write a scenario that a persona would actually encounter. Scenarios are not "test case 1" — they are moments:
32
+
33
+ **Format:**
34
+ ```
35
+ SCENARIO: [Natural situation trigger]
36
+ TASK: [What the persona is trying to accomplish]
37
+ PERSONA: [Name] — [key ability context]
38
+ SUCCESS: [What "done" looks like for this persona]
39
+ ```
40
+
41
+ **Example:**
42
+ ```
43
+ SCENARIO: Jordan is on the train home and wants to finish an article
44
+ they started yesterday.
45
+ TASK: Find and continue a partially-read article.
46
+ PERSONA: Jordan — low vision, uses 200% zoom, high contrast mode,
47
+ reads on a phone with one hand.
48
+ SUCCESS: Jordan locates the article, picks up where they left off,
49
+ and the progress updates when they finish.
50
+ ```
51
+
52
+ ### Step 3: Walk Through as Each Persona
53
+
54
+ For each scenario, simulate the persona's experience step by step. This is not "would this work?" — it is "let me try to do this the way [Persona] would."
55
+
56
+ **For each step, document:**
57
+
58
+ ```
59
+ STEP [N]: [What the persona does]
60
+ USING: [Input method — touch, keyboard, screen reader, switch, etc.]
61
+ SEES: [What the interface presents — at their zoom level, contrast
62
+ setting, screen size]
63
+ THINKS: [What the persona would likely think or feel]
64
+ RESULT: ✓ succeeds / ⚠ succeeds with difficulty / ✗ fails / ? unclear
65
+
66
+ FINDING: [If ⚠, ✗, or ? — what went wrong and why]
67
+ WHO IS AFFECTED: [This persona, and any others with similar needs]
68
+ ```
69
+
70
+ **Critical rules for walking through:**
71
+ 1. **Stay in character** — if the persona uses a screen reader, evaluate what the screen reader would announce, not what the sighted experience looks like
72
+ 2. **Use their device** — if the persona reads on a phone at 200% zoom, evaluate at that zoom on a phone viewport
73
+ 3. **Include emotional state** — a stressed parent and a relaxed commuter approach the same interface differently. The scenario sets the emotional context
74
+ 4. **Test error paths** — what happens if the persona makes a mistake? Can they recover? How much does recovery cost them?
75
+ 5. **Note friction, not just failure** — a task that technically succeeds but requires 8 taps and 3 scrolls has a friction problem even if it "works"
76
+
77
+ ### Step 4: Cross-Persona Analysis
78
+
79
+ After walking through all scenarios, look for patterns across personas:
80
+
81
+ **Barrier matrix:**
82
+ ```
83
+ | Task | Jordan | Priya | Marcus | [Persona] |
84
+ | | (low vis) | (ESL) | (motor) | |
85
+ |-------------------|-----------|-----------|-----------|-----------|
86
+ | Find article | ⚠ zoom | ✓ | ✗ target | ... |
87
+ | Continue reading | ✓ | ⚠ jargon | ✓ | ... |
88
+ | Mark complete | ✗ no fbk | ✓ | ⚠ gesture | ... |
89
+ ```
90
+
91
+ **Pattern analysis:**
92
+ - **Universal barriers** — issues that affect 2+ personas → likely a design problem, not an edge case
93
+ - **Persona-specific barriers** — issues that affect only one persona → may need targeted fix or alternative path
94
+ - **Friction hotspots** — steps where multiple personas struggle, even if they eventually succeed
95
+ - **Emotional patterns** — where do personas feel confused, frustrated, or lost?
96
+
97
+ ### Step 5: Synthesise Findings
98
+
99
+ Compile findings into a structured report (see "What You Deliver" below). Every finding must:
100
+ - Name the specific persona affected
101
+ - Describe the exact step where the issue occurs
102
+ - Explain why it's a problem from the persona's perspective
103
+ - Suggest a fix
104
+ - Classify severity (Critical / Major / Minor)
105
+
106
+ **Severity in synthetic testing:**
107
+ | Severity | Definition |
108
+ |----------|-----------|
109
+ | **Critical** | Persona cannot complete the task at all |
110
+ | **Major** | Persona completes the task but with significant difficulty, confusion, or emotional friction |
111
+ | **Minor** | Persona completes the task but the experience is rougher than it should be |
112
+
113
+ ### Step 6: Feed Results Forward
114
+
115
+ Synthetic testing results feed into two places:
116
+ 1. **design-builder** — if fixes are needed, dispatch the builder with specific findings
117
+ 2. **verification-before-shipping** — the persona walkthrough section of the verification report should reference synthetic test results, not guesswork
118
+
119
+ ## What You Deliver
120
+
121
+ ```markdown
122
+ # Synthetic User Test Results: [Project Name]
123
+
124
+ **Date:** [YYYY-MM-DD]
125
+ **Build tested:** [what was tested]
126
+ **Personas tested:** [list]
127
+ **Tasks tested:** [list]
128
+
129
+ ## Summary
130
+ [2-3 sentences: overall findings — who can use this, who can't,
131
+ and the biggest gap]
132
+
133
+ ## Scenario Results
134
+
135
+ ### Scenario 1: [Scenario name]
136
+ **Persona:** [Name] — [context]
137
+ **Task:** [what they're trying to do]
138
+ **Result:** ✓ / ⚠ / ✗
139
+
140
+ [Step-by-step walkthrough with findings]
141
+
142
+ ### Scenario 2: ...
143
+
144
+ ## Barrier Matrix
145
+
146
+ | Task | [Persona 1] | [Persona 2] | [Persona 3] | ... |
147
+ |------|-------------|-------------|-------------|-----|
148
+ | ... | ✓/⚠/✗ | ✓/⚠/✗ | ✓/⚠/✗ | ... |
149
+
150
+ ## Cross-Persona Patterns
151
+ - **Universal barriers:** [issues affecting 2+ personas]
152
+ - **Friction hotspots:** [steps with clustered difficulty]
153
+ - **Emotional patterns:** [where confusion/frustration clusters]
154
+
155
+ ## Findings by Severity
156
+
157
+ ### Critical
158
+ - [Persona] cannot [task] because [specific reason] → [Fix]
159
+
160
+ ### Major
161
+ - [Persona] struggles with [task] at [step] because [reason] → [Fix]
162
+
163
+ ### Minor
164
+ - [Persona] experiences friction at [step] because [reason] → [Fix]
165
+
166
+ ## Comparison: Pre-Fix vs Post-Fix
167
+ [If this is a re-test after fixes, show what improved and what didn't]
168
+
169
+ ## Recommendation
170
+ [Ship / Fix and re-test / Rethink flow for [persona]]
171
+ ```
172
+
173
+ ## Integration
174
+
175
+ - **Runs after:** Fix round (design-builder has addressed critic, accessibility-reviewer, and heuristic-evaluator findings)
176
+ - **Runs before:** `verification-before-shipping`
177
+ - **Informed by:** `inclusive-personas`, `design-discovery` (brief), `design-state` (all decisions)
178
+ - **Feeds into:** `verification-before-shipping` (persona walkthrough evidence), `design-builder` (if fixes needed), `design-debt-tracker` (deferred findings)
179
+ - **Complements:** `usability-testing` (which plans tests with real people — synthetic testing validates before real testing begins)
180
+
181
+ ## The Difference from Usability Testing
182
+
183
+ | | Synthetic User Testing | Usability Testing |
184
+ |---|---|---|
185
+ | **Who** | AI walks through as each persona | Real people use the interface |
186
+ | **When** | After fix round, inside the pipeline | After shipping or during user research |
187
+ | **Speed** | Minutes | Days to weeks |
188
+ | **Catches** | Predictable barriers, flow breaks, friction | Unexpected behaviour, mental model mismatches, emotional reactions |
189
+ | **Misses** | True surprises — things no persona model predicts | Nothing (but expensive and slow) |
190
+ | **Value** | Closes the gap between build and validation without leaving the pipeline | Ground truth |
191
+
192
+ Synthetic testing does not replace real usability testing. It makes real testing more efficient by catching the obvious issues first, so real participants encounter the design at its best — and surface the surprises only humans can find.
@@ -0,0 +1,165 @@
1
+ ---
2
+ name: taste-feedback
3
+ description: "Use during the build phase to show the user intermediate visual output and ask for taste direction before the full build completes — enables mid-flight course correction so taste mismatches are caught early, not in review"
4
+ ---
5
+
6
+ # Live Taste Feedback
7
+
8
+ The standard Designpowers pipeline catches taste mismatches at critique — after the full build is done. That's expensive. A wrong colour palette discovered after 8 components are built means rebuilding all 8. This skill interrupts the build at strategic moments to show intermediate output and ask: "Is this heading in the right direction?"
9
+
10
+ ## When to Use
11
+
12
+ - During `design-builder` execution, at natural visual checkpoints
13
+ - When the build involves subjective aesthetic decisions (colour, typography, spacing, tone)
14
+ - When this project's taste direction (`design-taste`) is ambiguous on the decision at hand
15
+ - When the project is new and there's little explicit direction yet for this decision
16
+ - When the design-lead's direction was based on interpretation, not explicit user instruction
17
+
18
+ ## Do Not Use When
19
+
20
+ - The user is in auto mode and hasn't opted into taste checks
21
+ - The build is purely structural (data models, API integration, routing)
22
+ - This project's `design-taste` direction already settles this decision clearly
23
+ - The user has explicitly said "just build it, I'll review at the end"
24
+
25
+ ## Process
26
+
27
+ ### Step 1: Identify Checkpoints
28
+
29
+ Before the build begins, identify 2-4 moments where taste feedback is most valuable. More than 4 interruptions becomes annoying. Choose wisely.
30
+
31
+ **High-value checkpoints:**
32
+
33
+ | Checkpoint | Why It Matters | When to Show |
34
+ |------------|---------------|-------------|
35
+ | **Colour and typography applied** | The foundational visual layer — everything else builds on this | After the first component is styled |
36
+ | **Layout structure visible** | Spatial relationships, density, whitespace | After the primary screen scaffold is built |
37
+ | **First interaction implemented** | How the interface moves and responds | After the first stateful component works |
38
+ | **Content integrated** | How real words look in the design | After content-writer's copy is in place |
39
+
40
+ **Low-value checkpoints (avoid):**
41
+
42
+ | Checkpoint | Why It's Low Value |
43
+ |------------|-------------------|
44
+ | Unstyled HTML structure | Nothing to react to aesthetically |
45
+ | Individual component in isolation | Context-free judgement is unreliable |
46
+ | After every small change | Interruption fatigue kills the creative flow |
47
+
48
+ ### Step 2: Prepare the Checkpoint
49
+
50
+ At each checkpoint, capture the current state:
51
+
52
+ 1. **Take a screenshot** of the running output (or describe the visual state precisely if screenshots aren't available)
53
+ 2. **Identify the taste-sensitive decisions** visible in the current output
54
+ 3. **Prepare specific questions** — do not ask "does this look good?" (too vague)
55
+
56
+ Good taste questions are specific and answerable:
57
+
58
+ | Bad Question | Good Question |
59
+ |-------------|--------------|
60
+ | "Does this look good?" | "The heading is set in 32px Inter Medium — is that weight right, or do you want bolder/lighter?" |
61
+ | "Any feedback?" | "The cards have 16px padding and 8px radius. Does this density feel right, or do you want more breathing room?" |
62
+ | "Is this the right direction?" | "I went warm grey (#F5F3F0) for the background instead of pure white. Does this warmth match what you had in mind?" |
63
+
64
+ ### Step 3: Present the Checkpoint
65
+
66
+ Show the user the intermediate state with targeted questions:
67
+
68
+ ```
69
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
70
+ TASTE CHECK [1 of 3]
71
+ Phase: [e.g., "Colour & Typography"]
72
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
73
+
74
+ [Screenshot or detailed visual description]
75
+
76
+ DECISIONS VISIBLE:
77
+ • [Decision 1 — e.g., "Sage green (#8FAE8B) as primary"]
78
+ • [Decision 2 — e.g., "Space Grotesk for headings, Inter for body"]
79
+ • [Decision 3 — e.g., "Generous padding, low density"]
80
+
81
+ TASTE QUESTIONS:
82
+ 1. [Specific question about a visible decision]
83
+ 2. [Specific question about a visible decision]
84
+
85
+ Quick responses welcome:
86
+ • "Looks right" → continue building
87
+ • "Warmer/cooler/bolder/quieter" → adjust and continue
88
+ • "Stop — wrong direction" → pause build, discuss
89
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
90
+ ```
91
+
92
+ ### Step 4: Process the Response
93
+
94
+ The user's response determines what happens next:
95
+
96
+ | Response | Action | Taste Signal |
97
+ |----------|--------|-------------|
98
+ | "Looks right" / "Yes" / "Continue" | Resume building. No changes needed | Moderate positive — note in design-memory as confirmed direction |
99
+ | Specific adjustment ("make it warmer") | Apply the adjustment, show confirmation, then continue | Strong — record the adjustment and the direction they moved from/to |
100
+ | "Wrong direction" / "Stop" | Pause the build. Ask what feels off. This is the most valuable taste data | Very strong negative — record what was rejected and why |
101
+ | Detailed feedback ("I like the type but the colour feels too muted") | Apply partial changes. Acknowledge what works, adjust what doesn't | Mixed signal — record both the positive and negative separately |
102
+ | "Skip these checks" | Disable further taste checks for this build. Respect the preference | Meta-preference — they want to review at the end instead |
103
+
104
+ ### Step 5: Adjust and Confirm
105
+
106
+ When the user requests a change:
107
+
108
+ 1. Make the adjustment
109
+ 2. Show the updated state briefly — do not re-present the full checkpoint
110
+ 3. Confirm: "Updated [what changed]. Continuing the build."
111
+ 4. Do not ask for re-approval unless the change was ambiguous
112
+
113
+ If the change cascades (e.g., new colour palette affects multiple components already built):
114
+
115
+ 1. Flag the cascade: "This colour change will affect the 3 components already built. I'll update them all."
116
+ 2. Update everything before continuing
117
+ 3. Optionally show the cascaded result at the next checkpoint
118
+
119
+ ### Step 6: Record Taste Data
120
+
121
+ After each checkpoint interaction, update taste signals:
122
+
123
+ 1. Record confirmed decisions as positive signals in `design-memory`
124
+ 2. Record adjustments with before/after — these are the richest taste data
125
+ 3. Record rejections as anti-pattern candidates
126
+ 4. Note the *direction* of adjustments — "wanted warmer", "wanted more contrast", "wanted tighter spacing" — these directional signals generalize across projects
127
+
128
+ ## Checkpoint Frequency
129
+
130
+ Adapt based on user behaviour:
131
+
132
+ | User Behaviour | Adjust To |
133
+ |---------------|-----------|
134
+ | Approves every checkpoint quickly | Reduce to 1-2 checkpoints — they trust the direction |
135
+ | Gives detailed feedback at every checkpoint | Maintain 3-4 — they want to shape the output |
136
+ | Says "skip" or seems impatient | Drop to 1 checkpoint or none — ask at the end |
137
+ | Requests more checkpoints | Add checkpoints — they want more control |
138
+
139
+ The system should learn this preference over time via `design-memory`.
140
+
141
+ ## Integration With Pipeline Modes
142
+
143
+ | Mode | Behaviour |
144
+ |------|-----------|
145
+ | **Direct** | Taste checkpoints are shown naturally — they fit the approval flow |
146
+ | **Auto** | Taste checkpoints are **disabled by default** in auto mode. The user chose speed. If the user opts in ("auto but check my taste"), enable minimal checkpoints (1-2 max) |
147
+
148
+ ## Integration
149
+
150
+ - **Called by:** `design-builder` (at visual checkpoints during build), `using-designpowers` (can be enabled/disabled)
151
+ - **Calls:** `design-memory` (to record taste signals from feedback)
152
+ - **Reads from:** Taste profile (to determine checkpoint frequency and known preferences), `design-state.md` (for current decisions)
153
+ - **Pairs with:** `design-memory`, `ui-composition`, `designpowers-critique`
154
+
155
+ ## Anti-Patterns
156
+
157
+ | Pattern | Why It Fails |
158
+ |---------|-------------|
159
+ | Asking "does this look good?" | Too vague. The user can't give actionable feedback without specific questions |
160
+ | Checking after every change | Interruption fatigue. 2-4 checkpoints per build, maximum |
161
+ | Showing unstyled output | There's nothing to react to. Wait until visual decisions are visible |
162
+ | Ignoring "skip" signals | If the user wants to review at the end, respect that. Don't force mid-flight checks |
163
+ | Not recording feedback | Every checkpoint interaction is taste data. If you don't record it, you'll ask the same questions next project |
164
+ | Presenting in auto mode without consent | Auto mode means "don't interrupt me." Only show taste checks if the user explicitly opted in |
165
+ | Asking about non-visual decisions | "Is this the right React component pattern?" is not a taste question. Keep checks visual and aesthetic |
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: taste-report
3
+ description: "Use when the user wants to see how they design — \"what's my taste\", \"show me my taste report\", \"how do I decide\", \"what are my patterns\", or periodically as the personal profile matures. Generates a longitudinal, reflective report from the PERSONAL taste profile (design-memory) — recurring moves, tells, evolution, blind spots — that helps a designer understand their own instincts. Personal layer only: it never reports client-specific signals from any project's DESIGN.md"
4
+ ---
5
+
6
+ # Taste Report
7
+
8
+ A taste report turns the personal taste profile from a lookup table into a mirror. `design-memory` accumulates a designer's portable instincts over many projects; this skill reads that accumulation and reflects it back as something the designer can actually learn from — *how you decide, what you reach for, what you reject, and how that's changed.* It's the moment the system stops just remembering your taste and starts helping you see it.
9
+
10
+ ## Scope: Personal Layer Only
11
+
12
+ This report describes the **portable** taste in `~/.designpowers/taste-profile.md` — the instincts that travel with the designer regardless of client. It **must not** include client- or project-specific signals (the contents of any project's `DESIGN.md`). A client's required teal accent is that client's taste, not the designer's. If the personal profile is clean (it should be — `design-memory`'s Promotion Gate keeps client specifics out), this is automatic. If you notice client-bound entries that leaked into the personal profile, flag them as contamination rather than reporting them as the designer's taste.
13
+
14
+ ## When to Use
15
+
16
+ - The user asks: "what's my taste?", "how do I design?", "show me my patterns", "what do I always do?"
17
+ - Periodically, as the profile matures — offer it after a project's retrospective once the profile has **3+ projects** of history (below that, there isn't enough signal; say so).
18
+ - When a designer wants to articulate their own style — for a portfolio, a team, a client pitch.
19
+
20
+ ## What the Report Contains
21
+
22
+ Read `~/.designpowers/taste-profile.md` and the project history, then synthesise — don't just reformat the tables. Look for the patterns *across* entries that the designer might not see themselves.
23
+
24
+ ```markdown
25
+ # How You Design — Taste Report
26
+ _Generated [date] · based on [N] projects · [X] strong opinions, [Y] soft patterns_
27
+
28
+ ## In one line
29
+ [The single sharpest characterisation of their taste. e.g. "You're a restraint-first
30
+ designer who earns every accent and trusts whitespace to do the work."]
31
+
32
+ ## How you decide
33
+ [3-5 observations about their decision-making, each with evidence from the profile.
34
+ Not what they like — HOW they choose. e.g.:
35
+ - "You subtract before you add — your overrides almost always remove an element
36
+ rather than restyle it (4 of 5 recorded overrides)."
37
+ - "You decide colour last. Type and spacing are settled before accent appears."]
38
+
39
+ ## What you reach for
40
+ [Recurring moves — the defaults they return to across projects. The strong opinions
41
+ and confirmed soft patterns, framed as instincts not rules.]
42
+
43
+ ## What you reject
44
+ [The anti-patterns, synthesised into a point of view. e.g. "You reject anything that
45
+ performs friendliness — confetti, mascots, exclamation marks, skeleton 'delight'."]
46
+
47
+ ## How your taste is evolving
48
+ [Movement over time from the project history. What's hardened from soft to strong,
49
+ what you've changed your mind about, what's newly appearing. e.g. "Your tolerance
50
+ for density has risen — early projects favoured sparse layouts, recent ones trust
51
+ the user with more on screen."]
52
+
53
+ ## Possible blind spots
54
+ [Gentle, honest. Tendencies that could become ruts, or places the profile is thin.
55
+ e.g. "Every project leans editorial-serif for personality — worth testing whether
56
+ that's taste or habit." Frame as questions, not judgements.]
57
+
58
+ ## Where the signal is thin
59
+ [What the profile doesn't yet know — areas with little evidence, so the designer
60
+ knows what's well-established vs. a guess. Honesty about confidence.]
61
+ ```
62
+
63
+ ## How to Write It Well
64
+
65
+ 1. **Synthesise, don't transcribe.** The value is in patterns *across* entries — "you always subtract," "you decide colour last" — not in re-listing the table rows. If you're just reformatting the profile, you haven't done the work.
66
+ 2. **Every claim cites evidence.** Tie each observation to specific projects, overrides, or repeated decisions in the profile. No evidence, no claim — this is `design-memory`, and the same "evidence over claims" rule applies.
67
+ 3. **Describe decision-making, not just preference.** "Prefers muted palettes" is a lookup. "Decides colour last, after structure is settled" is insight. Reach for the second.
68
+ 4. **Be honest about confidence and thinness.** Distinguish strong, well-evidenced patterns from thin ones. Don't manufacture a richer picture than the data supports.
69
+ 5. **Blind spots are a gift, not a verdict.** Surface ruts and gaps gently, as questions. The goal is self-awareness, never a grade.
70
+ 6. **Stay in the personal layer.** If a "preference" is really one client's brand requirement, it does not belong here.
71
+
72
+ ## Integration
73
+
74
+ - **Reads from:** `~/.designpowers/taste-profile.md` and its project history (via `design-memory`)
75
+ - **Never reads:** any project's `DESIGN.md` as personal taste (that's client taste — see `design-md`)
76
+ - **Offered after:** `design-retrospective`, once the profile has enough history
77
+ - **Pairs with:** `design-memory` (the store), `design-taste` (per-project calibration)
78
+ - **Produces:** a report for the user — not a profile edit. It reflects; it does not rewrite the profile.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: token-architecture
3
+ description: "Use when building or restructuring design token systems — global tokens, semantic tokens, component tokens, naming conventions, theming, and multi-platform token distribution"
4
+ ---
5
+
6
+ # Token Architecture
7
+
8
+ Design tokens are the single source of truth for visual decisions. They bridge design intent and code. This skill structures how tokens are named, layered, and distributed.
9
+
10
+ ## When to Use
11
+
12
+ - When starting a new design system
13
+ - When `design-system-alignment` identifies inconsistency
14
+ - When adding theming (dark mode, brand variants)
15
+ - When shipping across web, iOS, and Android
16
+
17
+ ## The Three-Layer Model
18
+
19
+ ### Layer 1: Global Tokens (the palette)
20
+ Raw values. Named by what they are, not what they do.
21
+ ```
22
+ --color-green-500: #2D6B4F;
23
+ --space-4: 16px;
24
+ --radius-md: 12px;
25
+ ```
26
+ These never appear in component CSS.
27
+
28
+ ### Layer 2: Semantic Tokens (the meaning)
29
+ Map global tokens to roles. Named by what they do.
30
+ ```
31
+ --color-surface: var(--color-green-100);
32
+ --color-text-primary: var(--color-green-900);
33
+ --color-accent: var(--color-green-500);
34
+ ```
35
+ Theming happens here — dark mode swaps semantic mappings, not global values.
36
+
37
+ ### Layer 3: Component Tokens (the specifics)
38
+ Map semantic tokens to component contexts. Optional but valuable at scale.
39
+ ```
40
+ --button-bg: var(--color-accent);
41
+ --card-bg: var(--color-surface);
42
+ ```
43
+
44
+ ## Naming Convention
45
+
46
+ `--{category}-{property}-{variant}-{state}`
47
+
48
+ Categories: color, space, font, radius, shadow, motion. Never use hex values in names or ambiguous abbreviations.
49
+
50
+ ## Theming
51
+
52
+ Dark mode is a semantic token remap:
53
+ ```css
54
+ [data-theme="dark"] {
55
+ --color-surface: var(--color-grey-900);
56
+ --color-text-primary: var(--color-grey-100);
57
+ }
58
+ ```
59
+ Global tokens stay. Semantic tokens swap. Component tokens inherit.
60
+
61
+ ## Accessibility
62
+
63
+ - Always define foreground/background pairs together and verify AA contrast
64
+ - Motion tokens must include `--motion-duration-none: 0ms` for reduced-motion
65
+
66
+ ## What You Deliver
67
+
68
+ - Token file (CSS custom properties, JSON, or both) with all three layers
69
+ - Naming convention document
70
+ - Theme variants if applicable
71
+
72
+ ## Integration
73
+
74
+ - **Informed by:** `design-lead`, `ui-composition`
75
+ - **Feeds into:** `design-builder`, `design-system-alignment`
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: ui-composition
3
+ description: "Use when building layouts, choosing colours, setting typography, establishing visual hierarchy, designing responsive behaviour, or making any visual design decision — ensures every visual choice serves both aesthetics and accessibility"
4
+ ---
5
+
6
+ # UI Composition
7
+
8
+ Visual design is where intent becomes tangible. Every colour, every spacing decision, every typographic choice either includes or excludes people. This skill ensures visual decisions are principled, systematic, and inclusive.
9
+
10
+ ## When to Use
11
+
12
+ - Designing screen layouts or page structures
13
+ - Choosing or refining colour palettes
14
+ - Setting typography systems
15
+ - Establishing spacing and grid systems
16
+ - Designing for responsive breakpoints
17
+ - Creating or modifying visual hierarchy
18
+ - Designing dark mode or high contrast variants
19
+
20
+ ## Process
21
+
22
+ ### Step 1: Reference the Foundation
23
+
24
+ Before making visual decisions, confirm you have:
25
+ - Design brief or strategy (from earlier phases)
26
+ - Personas (especially ability spectrum considerations)
27
+ - Existing design system (invoke `design-system-alignment` if one exists)
28
+
29
+ ### Step 2: Layout and Structure
30
+
31
+ **Grid system:**
32
+ - Define columns, gutters, and margins
33
+ - Ensure the grid adapts across breakpoints (mobile, tablet, desktop)
34
+ - Test that content reflows sensibly when zoomed to 200%
35
+
36
+ **Visual hierarchy:**
37
+ - Establish a clear reading order that works both visually and in the DOM
38
+ - Ensure the hierarchy communicates through structure, not colour alone
39
+ - Verify that removing all colour still leaves a readable, navigable page
40
+
41
+ **Spacing system:**
42
+ - Use a consistent spacing scale (e.g., 4px base)
43
+ - Ensure touch targets are at least 44x44px
44
+ - Provide adequate spacing between interactive elements to prevent accidental activation
45
+
46
+ ### Step 3: Colour
47
+
48
+ **Palette construction:**
49
+ - Define primary, secondary, neutral, and semantic colours (success, warning, error, info)
50
+ - Every colour pairing must meet WCAG AA contrast ratios minimum (4.5:1 for text, 3:1 for large text and UI components)
51
+ - Target WCAG AAA (7:1) where feasible
52
+
53
+ **Colour independence:**
54
+ - Never convey information through colour alone
55
+ - Always pair colour with text labels, icons, or patterns
56
+ - Test with simulated colour blindness (protanopia, deuteranopia, tritanopia)
57
+
58
+ **Dark mode / high contrast:**
59
+ - If applicable, design dark mode as a first-class experience, not an afterthought
60
+ - Ensure all contrast ratios hold in both modes
61
+ - Respect `prefers-color-scheme` and `prefers-contrast` media queries
62
+
63
+ ### Step 4: Typography
64
+
65
+ **Type scale:**
66
+ - Define a modular scale with clear hierarchy (heading levels, body, caption, label)
67
+ - Base body size: minimum 16px (1rem)
68
+ - Line height: 1.5 for body text, 1.2-1.3 for headings
69
+
70
+ **Readability:**
71
+ - Line length: 45-75 characters for body text
72
+ - Paragraph spacing: at least 1.5x the font size
73
+ - Avoid justified text (ragged right is more readable for most people)
74
+ - Ensure text can be resized to 200% without loss of content or functionality
75
+
76
+ **Font selection:**
77
+ - Prioritise legibility over personality
78
+ - Ensure the chosen font has distinct characters for I, l, 1 and O, 0
79
+ - Provide fallback fonts in the same classification
80
+
81
+ ### Step 5: Responsive Design
82
+
83
+ Design for these breakpoints (adjust to project needs):
84
+ - **Mobile** (320-480px): single column, stacked layout, thumb-reachable interactions
85
+ - **Tablet** (481-1024px): flexible layout, touch and pointer support
86
+ - **Desktop** (1025px+): multi-column, keyboard and pointer optimised
87
+
88
+ At every breakpoint:
89
+ - Content priority remains correct
90
+ - Touch targets remain adequate
91
+ - Text remains readable without horizontal scrolling
92
+ - No information is hidden that was visible at other breakpoints (unless intentionally progressive)
93
+
94
+ ### Step 6: Document Decisions
95
+
96
+ For each visual decision, document:
97
+ - **What:** the decision made
98
+ - **Why:** how it serves the design principles and personas
99
+ - **Accessibility:** how it meets inclusive design requirements
100
+
101
+ ## Integration
102
+
103
+ - **Called by:** `writing-design-plans` (as part of plan execution)
104
+ - **Pairs with:** `design-system-alignment` (for consistency), `cognitive-accessibility` (for visual load), `adaptive-interfaces` (for user preferences)
105
+ - **Reviewed by:** `designpowers-critique`
106
+
107
+ ## Quick Reference: Accessibility Minimums
108
+
109
+ | Element | Requirement |
110
+ |---------|------------|
111
+ | Text contrast | 4.5:1 (AA) or 7:1 (AAA) |
112
+ | Large text contrast | 3:1 minimum |
113
+ | UI component contrast | 3:1 against adjacent colours |
114
+ | Touch target | 44x44px minimum |
115
+ | Focus indicator | Visible, 3:1 contrast against adjacent |
116
+ | Text resize | Content usable at 200% zoom |
117
+ | Colour alone | Never the sole indicator of state or meaning |