oh-my-opencode 4.13.0 → 4.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/.agents/skills/codex-qa/SKILL.md +15 -0
  2. package/.agents/skills/codex-qa/references/logging-debug.md +12 -0
  3. package/.agents/skills/opencode-qa/SKILL.md +17 -0
  4. package/.agents/skills/opencode-qa/references/tui-tmux.md +17 -0
  5. package/.agents/skills/work-with-pr/SKILL.md +18 -10
  6. package/.opencode/skills/work-with-pr/SKILL.md +18 -10
  7. package/README.md +2 -2
  8. package/dist/cli/doctor/checks/telemetry.d.ts +2 -0
  9. package/dist/cli/doctor/framework/constants.d.ts +1 -0
  10. package/dist/cli/doctor/framework/doctor-target.d.ts +1 -1
  11. package/dist/cli/index.js +24651 -16452
  12. package/dist/cli-node/index.js +24651 -16452
  13. package/dist/config/schema/oh-my-opencode-config.d.ts +1 -0
  14. package/dist/features/team-mode/test-support/async-test-helpers.d.ts +19 -0
  15. package/dist/hooks/atlas/final-wave-approval-gate.d.ts +1 -0
  16. package/dist/hooks/atlas/subagent-completion-reminder.d.ts +30 -0
  17. package/dist/hooks/atlas/types.d.ts +2 -0
  18. package/dist/hooks/atlas/verification-reminders.d.ts +3 -0
  19. package/dist/hooks/team-session-events/team-idle-wake-hint.d.ts +1 -0
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.js +33232 -19559
  22. package/dist/mcp/context7.d.ts +9 -8
  23. package/dist/oh-my-opencode.schema.json +4 -0
  24. package/dist/shared/posthog.d.ts +17 -10
  25. package/dist/shared/telemetry-product-identity.d.ts +2 -0
  26. package/dist/skills/coding-agent-sessions/SKILL.md +128 -0
  27. package/dist/skills/coding-agent-sessions/agents/openai.yaml +4 -0
  28. package/dist/skills/coding-agent-sessions/references/all-platforms.md +71 -0
  29. package/dist/skills/coding-agent-sessions/references/claude.md +32 -0
  30. package/dist/skills/coding-agent-sessions/references/codex.md +30 -0
  31. package/dist/skills/coding-agent-sessions/references/opencode.md +43 -0
  32. package/dist/skills/coding-agent-sessions/references/senpi.md +17 -0
  33. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
  34. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
  35. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
  36. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
  37. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
  38. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
  39. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
  40. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
  41. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
  42. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
  43. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
  44. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
  45. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
  46. package/dist/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
  47. package/dist/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
  48. package/dist/skills/frontend/ATTRIBUTION.md +52 -8
  49. package/dist/skills/frontend/SKILL.md +29 -8
  50. package/dist/skills/frontend/references/design/README.md +29 -12
  51. package/dist/skills/frontend/references/design/_INDEX.md +3 -3
  52. package/dist/skills/frontend/references/design/design-system-architecture.md +22 -19
  53. package/dist/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
  54. package/dist/skills/frontend/references/designpowers/README.md +48 -0
  55. package/dist/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
  56. package/dist/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
  57. package/dist/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
  58. package/dist/skills/frontend/references/designpowers/lane-c-review.md +65 -0
  59. package/dist/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
  60. package/dist/skills/frontend/references/designpowers/orchestration.md +80 -0
  61. package/dist/skills/frontend/references/designpowers/routing.md +79 -0
  62. package/dist/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
  63. package/dist/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
  64. package/dist/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
  65. package/dist/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
  66. package/dist/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
  67. package/dist/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
  68. package/dist/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
  69. package/dist/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
  70. package/dist/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
  71. package/dist/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
  72. package/dist/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
  73. package/dist/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
  74. package/dist/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
  75. package/dist/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
  76. package/dist/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
  77. package/dist/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
  78. package/dist/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
  79. package/dist/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
  80. package/dist/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
  81. package/dist/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
  82. package/dist/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
  83. package/dist/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
  84. package/dist/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
  85. package/dist/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
  86. package/dist/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
  87. package/dist/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
  88. package/dist/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
  89. package/dist/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
  90. package/dist/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
  91. package/dist/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
  92. package/dist/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
  93. package/dist/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
  94. package/dist/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
  95. package/dist/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
  96. package/dist/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
  97. package/dist/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
  98. package/dist/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
  99. package/dist/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
  100. package/dist/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
  101. package/dist/skills/git-master/SKILL.md +4 -0
  102. package/dist/skills/review-work/SKILL.md +3 -3
  103. package/dist/skills/start-work/SKILL.md +7 -5
  104. package/dist/skills/ultraresearch/SKILL.md +4 -252
  105. package/dist/skills/ulw-plan/SKILL.md +8 -6
  106. package/dist/skills/ulw-plan/references/full-workflow.md +11 -6
  107. package/dist/skills/ulw-plan/references/intent-clear.md +3 -3
  108. package/dist/skills/ulw-plan/references/intent-unclear.md +1 -1
  109. package/dist/skills/{ultraresearch → ulw-research}/ATTRIBUTION.md +1 -1
  110. package/dist/skills/ulw-research/SKILL.md +260 -0
  111. package/dist/skills/visual-qa/SKILL.md +105 -14
  112. package/dist/skills/visual-qa/scripts/skill-prompt-contract.test.ts +120 -1
  113. package/dist/testing/create-plugin-module.d.ts +2 -0
  114. package/dist/tui.js +23917 -16117
  115. package/docs/reference/github-attachment-upload.md +51 -0
  116. package/docs/reference/web-terminal-visual-qa.md +81 -0
  117. package/package.json +20 -14
  118. package/packages/lsp-core/src/lsp/process.ts +4 -1
  119. package/packages/lsp-core/src/mcp.ts +1 -0
  120. package/packages/lsp-daemon/dist/cli.js +5 -1
  121. package/packages/lsp-daemon/dist/index.js +5 -1
  122. package/packages/lsp-daemon/dist/proxy.js +1 -0
  123. package/packages/lsp-tools-mcp/dist/cli.js +5 -1
  124. package/packages/lsp-tools-mcp/dist/lsp/manager.js +4 -1
  125. package/packages/lsp-tools-mcp/dist/mcp.js +5 -1
  126. package/packages/lsp-tools-mcp/dist/tools.js +4 -1
  127. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  128. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +323 -62
  129. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  130. package/packages/omo-codex/plugin/components/bootstrap/scripts/bootstrap.ps1 +37 -68
  131. package/packages/omo-codex/plugin/components/bootstrap/scripts/node-dispatch.ps1 +75 -0
  132. package/packages/omo-codex/plugin/components/bootstrap/src/cli.ts +1 -1
  133. package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +2 -18
  134. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +575 -334
  135. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +204 -39
  136. package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
  137. package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +7 -1
  138. package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +103 -3
  139. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +114 -0
  140. package/packages/omo-codex/plugin/components/codegraph/src/serve-invocation.ts +29 -0
  141. package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +31 -57
  142. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +7 -4
  143. package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +43 -9
  144. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +146 -0
  145. package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +12 -7
  146. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +71 -1
  147. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  148. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  149. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  150. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +4 -1
  151. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  152. package/packages/omo-codex/plugin/components/rules/dist/cli.js +2 -2
  153. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  154. package/packages/omo-codex/plugin/components/rules/src/sparkshell-awareness.ts +2 -2
  155. package/packages/omo-codex/plugin/components/rules/test/sparkshell-awareness.test.ts +11 -2
  156. package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +6 -6
  157. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  158. package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +23 -0
  159. package/packages/omo-codex/plugin/components/teammode/dist/cli.js +22 -4
  160. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  161. package/packages/omo-codex/plugin/components/teammode/skills/teammode/SKILL.md +40 -2
  162. package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team-guide.mjs +32 -5
  163. package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team.mjs +7 -3
  164. package/packages/omo-codex/plugin/components/teammode/src/codex-hook.ts +19 -4
  165. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +32 -2
  166. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  167. package/packages/omo-codex/plugin/components/ultrawork/README.md +1 -1
  168. package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -1
  169. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +2 -2
  170. package/packages/omo-codex/plugin/components/ultrawork/directive.md +23 -7
  171. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +1 -1
  172. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  173. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +6 -4
  174. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +11 -6
  175. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +3 -3
  176. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +1 -1
  177. package/packages/omo-codex/plugin/components/ultrawork/src/codex-hook.ts +1 -1
  178. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +24 -0
  179. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +6 -1
  180. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +1 -1
  181. package/packages/omo-codex/plugin/components/ulw-loop/README.md +25 -21
  182. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +1 -1
  183. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +381 -0
  184. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.js +14 -1
  185. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +145 -14
  186. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.d.ts +6 -3
  187. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.js +16 -6
  188. package/packages/omo-codex/plugin/components/ulw-loop/dist/ultrawork-directive.d.ts +5 -0
  189. package/packages/omo-codex/plugin/components/ulw-loop/dist/ultrawork-directive.js +104 -0
  190. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +1 -1
  191. package/packages/omo-codex/plugin/components/ulw-loop/package.json +2 -1
  192. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +19 -11
  193. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-steering.ts +14 -1
  194. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +4 -2
  195. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +28 -6
  196. package/packages/omo-codex/plugin/components/ulw-loop/src/ultrawork-directive.ts +113 -0
  197. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +33 -2
  198. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-kind-guidance.test.ts +31 -0
  199. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +13 -0
  200. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +36 -0
  201. package/packages/omo-codex/plugin/components/ulw-loop/test/skill-contract.test.ts +12 -0
  202. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +64 -0
  203. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +2 -1
  204. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +2 -1
  205. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +2 -1
  206. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +2 -1
  207. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +2 -1
  208. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +2 -1
  209. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +2 -1
  210. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +2 -1
  211. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +2 -1
  212. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +2 -1
  213. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +2 -1
  214. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +2 -1
  215. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +2 -1
  216. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +2 -1
  217. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +2 -1
  218. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +2 -1
  219. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +2 -1
  220. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +2 -1
  221. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +2 -1
  222. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +2 -1
  223. package/packages/omo-codex/plugin/package-lock.json +13 -13
  224. package/packages/omo-codex/plugin/package.json +1 -1
  225. package/packages/omo-codex/plugin/scripts/auto-update.mjs +9 -5
  226. package/packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs +1 -0
  227. package/packages/omo-codex/plugin/scripts/migrate-codex-config/context7-placeholder-guard.mjs +131 -0
  228. package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-mode-guard.mjs +60 -0
  229. package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +3 -10
  230. package/packages/omo-codex/plugin/scripts/migrate-codex-config/root-settings.mjs +31 -1
  231. package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +73 -0
  232. package/packages/omo-codex/plugin/scripts/migrate-codex-config.mjs +20 -3
  233. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +30 -8
  234. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +128 -0
  235. package/packages/omo-codex/plugin/skills/coding-agent-sessions/agents/openai.yaml +4 -0
  236. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +71 -0
  237. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/claude.md +32 -0
  238. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/codex.md +30 -0
  239. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/opencode.md +43 -0
  240. package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +17 -0
  241. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
  242. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
  243. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
  244. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
  245. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
  246. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
  247. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
  248. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
  249. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
  250. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
  251. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
  252. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
  253. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
  254. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
  255. package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
  256. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +52 -8
  257. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +29 -8
  258. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +29 -12
  259. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +3 -3
  260. package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +22 -19
  261. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
  262. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +48 -0
  263. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
  264. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
  265. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
  266. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-c-review.md +65 -0
  267. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
  268. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +80 -0
  269. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +79 -0
  270. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
  271. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
  272. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
  273. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
  274. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
  275. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
  276. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
  277. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
  278. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
  279. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
  280. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
  281. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
  282. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
  283. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
  284. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
  285. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
  286. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
  287. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
  288. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
  289. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
  290. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
  291. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
  292. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
  293. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
  294. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
  295. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
  296. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
  297. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
  298. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
  299. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
  300. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
  301. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
  302. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
  303. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
  304. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
  305. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
  306. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
  307. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
  308. package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
  309. package/packages/omo-codex/plugin/skills/git-master/SKILL.md +4 -0
  310. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +4 -0
  311. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +4 -0
  312. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +4 -0
  313. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +12 -4
  314. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +14 -8
  315. package/packages/omo-codex/plugin/skills/teammode/SKILL.md +40 -2
  316. package/packages/omo-codex/plugin/skills/teammode/scripts/team-guide.mjs +32 -5
  317. package/packages/omo-codex/plugin/skills/teammode/scripts/team.mjs +7 -3
  318. package/packages/omo-codex/plugin/skills/ultraresearch/SKILL.md +4 -250
  319. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +19 -11
  320. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +6 -4
  321. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +11 -6
  322. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +3 -3
  323. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +1 -1
  324. package/packages/{shared-skills/skills/ultraresearch → omo-codex/plugin/skills/ulw-research}/ATTRIBUTION.md +1 -1
  325. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +262 -0
  326. package/packages/omo-codex/plugin/skills/ulw-research/agents/openai.yaml +2 -0
  327. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +109 -14
  328. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +23 -0
  329. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -0
  330. package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +1 -0
  331. package/packages/omo-codex/plugin/test/auto-update-restart-notice.test.mjs +24 -1
  332. package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +23 -5
  333. package/packages/omo-codex/plugin/test/bootstrap-hooks.test.mjs +38 -0
  334. package/packages/omo-codex/plugin/test/bootstrap-ps-guard.test.mjs +25 -0
  335. package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +1 -7
  336. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +206 -6
  337. package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +44 -0
  338. package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +50 -1
  339. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +10 -7
  340. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +28 -2
  341. package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +20 -0
  342. package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +117 -0
  343. package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +5 -2
  344. package/packages/omo-codex/plugin/test/ulw-research-skill-contract.test.mjs +285 -0
  345. package/packages/omo-codex/scripts/install-bin-links.test.mjs +6 -1
  346. package/packages/omo-codex/scripts/install-cache-copy.test.mjs +51 -0
  347. package/packages/omo-codex/scripts/install-config.test.mjs +198 -17
  348. package/packages/omo-codex/scripts/install-dist/install-local.mjs +701 -282
  349. package/packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs +24 -15
  350. package/packages/omo-codex/scripts/install-local.test.mjs +5 -1
  351. package/packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs +84 -0
  352. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +128 -0
  353. package/packages/shared-skills/skills/coding-agent-sessions/agents/openai.yaml +4 -0
  354. package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +71 -0
  355. package/packages/shared-skills/skills/coding-agent-sessions/references/claude.md +32 -0
  356. package/packages/shared-skills/skills/coding-agent-sessions/references/codex.md +30 -0
  357. package/packages/shared-skills/skills/coding-agent-sessions/references/opencode.md +43 -0
  358. package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +17 -0
  359. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
  360. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
  361. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
  362. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
  363. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
  364. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
  365. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
  366. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
  367. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
  368. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
  369. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
  370. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
  371. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
  372. package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
  373. package/packages/shared-skills/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
  374. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +52 -8
  375. package/packages/shared-skills/skills/frontend/SKILL.md +29 -8
  376. package/packages/shared-skills/skills/frontend/references/design/README.md +29 -12
  377. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +3 -3
  378. package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +22 -19
  379. package/packages/shared-skills/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
  380. package/packages/shared-skills/skills/frontend/references/designpowers/README.md +48 -0
  381. package/packages/shared-skills/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
  382. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
  383. package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
  384. package/packages/shared-skills/skills/frontend/references/designpowers/lane-c-review.md +65 -0
  385. package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
  386. package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +80 -0
  387. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +79 -0
  388. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
  389. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
  390. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
  391. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
  392. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
  393. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
  394. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
  395. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
  396. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
  397. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
  398. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
  399. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
  400. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
  401. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
  402. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
  403. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
  404. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
  405. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
  406. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
  407. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
  408. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
  409. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
  410. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
  411. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
  412. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
  413. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
  414. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
  415. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
  416. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
  417. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
  418. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
  419. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
  420. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
  421. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
  422. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
  423. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
  424. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
  425. package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
  426. package/packages/shared-skills/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
  427. package/packages/shared-skills/skills/git-master/SKILL.md +4 -0
  428. package/packages/shared-skills/skills/review-work/SKILL.md +3 -3
  429. package/packages/shared-skills/skills/start-work/SKILL.md +7 -5
  430. package/packages/shared-skills/skills/ultraresearch/SKILL.md +4 -252
  431. package/packages/shared-skills/skills/ulw-plan/SKILL.md +8 -6
  432. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +11 -6
  433. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +3 -3
  434. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +1 -1
  435. package/packages/{omo-codex/plugin/skills/ultraresearch → shared-skills/skills/ulw-research}/ATTRIBUTION.md +1 -1
  436. package/packages/shared-skills/skills/ulw-research/SKILL.md +260 -0
  437. package/packages/shared-skills/skills/visual-qa/SKILL.md +105 -14
  438. package/packages/shared-skills/skills/visual-qa/scripts/skill-prompt-contract.test.ts +120 -1
  439. package/script/qa/web-terminal-redaction.d.mts +13 -0
  440. package/script/qa/web-terminal-redaction.mjs +43 -0
  441. package/script/qa/web-terminal-renderer.mjs +218 -0
  442. package/script/qa/web-terminal-visual-qa.mjs +264 -0
  443. package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/tests/test_cookie_domain_filter.py +0 -110
  444. package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/tests/test_extract_cookies.py +0 -245
  445. package/packages/omo-codex/plugin/test/ultraresearch-skill-contract.test.mjs +0 -204
@@ -0,0 +1,122 @@
1
+ ---
2
+ name: interaction-design
3
+ description: "Use when designing states, transitions, animations, error handling, loading patterns, feedback, or any behaviour that responds to user action — ensures interactions are perceivable, operable, and inclusive"
4
+ ---
5
+
6
+ # Interaction Design
7
+
8
+ Interactions are promises. Every button says "click me and something will happen." Every loading spinner says "wait, it is coming." This skill ensures those promises are kept for everyone, regardless of how they interact with the interface.
9
+
10
+ ## When to Use
11
+
12
+ - Designing component states (default, hover, active, focus, disabled, error)
13
+ - Creating transitions or animations
14
+ - Handling errors, empty states, or edge cases
15
+ - Designing loading and progress patterns
16
+ - Defining feedback mechanisms (success, warning, error confirmations)
17
+ - Designing gesture or touch interactions
18
+
19
+ ## Process
20
+
21
+ ### Step 1: Map All States
22
+
23
+ For every interactive element, define:
24
+
25
+ | State | Visual | Screen Reader | Keyboard | Touch |
26
+ |-------|--------|--------------|----------|-------|
27
+ | Default | [appearance] | [announcement] | [behaviour] | [behaviour] |
28
+ | Hover | [appearance] | n/a | n/a | n/a |
29
+ | Focus | [appearance + focus ring] | [announcement] | [how to reach] | n/a |
30
+ | Active/Pressed | [appearance] | [announcement] | [trigger key] | [gesture] |
31
+ | Disabled | [appearance, not just greyed] | [announcement + reason] | [skip in tab order?] | [behaviour] |
32
+ | Error | [appearance + message] | [announcement + guidance] | [focus moved?] | [behaviour] |
33
+ | Loading | [appearance] | [live region update] | [interaction blocked?] | [behaviour] |
34
+ | Success | [appearance] | [announcement] | [next focus target] | [behaviour] |
35
+
36
+ ### Step 2: Design Feedback Patterns
37
+
38
+ Every user action deserves a response. Map the feedback:
39
+
40
+ **Immediate feedback (< 100ms):**
41
+ - Visual state change on interaction (button press, toggle flip)
42
+ - Must be perceivable without relying on colour alone
43
+
44
+ **Short wait feedback (100ms - 1s):**
45
+ - Loading indicator or skeleton screen
46
+ - ARIA live region announcement: "Loading..."
47
+
48
+ **Long wait feedback (> 1s):**
49
+ - Progress indicator with estimated time or progress percentage
50
+ - Ability to cancel or navigate away
51
+ - ARIA live region updates at intervals
52
+
53
+ **Completion feedback:**
54
+ - Clear success or error state
55
+ - Screen reader announcement of outcome
56
+ - Logical next focus target
57
+
58
+ ### Step 3: Error Handling
59
+
60
+ Errors are not edge cases — they are guaranteed states. Design for them:
61
+
62
+ 1. **Prevention first** — inline validation, clear constraints, sensible defaults
63
+ 2. **Clear identification** — what went wrong, in plain language
64
+ 3. **Specific guidance** — what the person should do next
65
+ 4. **Accessible delivery** — errors announced to screen readers, focus moved to the error, not just a colour change
66
+ 5. **Recovery path** — preserve user input, allow correction without starting over
67
+
68
+ Error message format: **[What happened] + [What to do about it]**
69
+ - Yes: "That email address is already registered. Try signing in instead, or use a different email."
70
+ - No: "Error: invalid input"
71
+
72
+ ### Step 4: Animation and Motion
73
+
74
+ Animations serve a purpose or they serve nobody:
75
+
76
+ **When to animate:**
77
+ - To show a relationship between elements (a panel sliding in from its trigger)
78
+ - To maintain spatial orientation (a page transition showing direction)
79
+ - To provide feedback (a subtle bounce on a successful action)
80
+
81
+ **When NOT to animate:**
82
+ - Decoration without function
83
+ - Anything that delays the user from completing their task
84
+ - Anything that loops indefinitely
85
+
86
+ **Inclusive motion:**
87
+ - Respect `prefers-reduced-motion` — always provide a reduced or no-motion alternative
88
+ - Keep durations short: 150-300ms for micro-interactions, 300-500ms for transitions
89
+ - Avoid parallax, auto-playing video, flashing content (3 flashes per second maximum per WCAG)
90
+ - Provide pause/stop controls for any animation longer than 5 seconds
91
+
92
+ ### Step 5: Gesture and Input Design
93
+
94
+ If the design includes gesture interactions:
95
+ - Every gesture must have a non-gesture alternative (button, keyboard shortcut)
96
+ - Swipe actions must be discoverable without trial-and-error
97
+ - Drag-and-drop must have a keyboard-accessible alternative
98
+ - Touch targets: 44x44px minimum, with adequate spacing between targets
99
+
100
+ ### Step 6: Document the Interaction Spec
101
+
102
+ For each interaction, document:
103
+ - Trigger (what initiates the interaction)
104
+ - Behaviour (what happens, step by step)
105
+ - States (all states the element passes through)
106
+ - Feedback (what the user perceives at each stage)
107
+ - Accessibility (screen reader announcements, keyboard behaviour, motion reduction)
108
+
109
+ ## Integration
110
+
111
+ - **Called by:** `writing-design-plans` (as part of plan execution)
112
+ - **Pairs with:** `ui-composition` (visual states), `cognitive-accessibility` (interaction complexity), `accessible-content` (error messages)
113
+ - **Reviewed by:** `designpowers-critique`
114
+
115
+ ## Red Flags
116
+
117
+ | Flag | Response |
118
+ |------|----------|
119
+ | Component with only default and hover states | Map ALL states including focus, error, loading, disabled |
120
+ | Animation without prefers-reduced-motion support | Add motion reduction. This is not optional |
121
+ | Error state that only changes colour | Add text, icon, and screen reader announcement |
122
+ | Gesture without alternative input method | Add keyboard and/or button alternative |
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: motion-choreography
3
+ description: "Use when designing animation sequences, page transitions, micro-interactions, loading states, or any motion that communicates meaning — ensures motion is purposeful, performant, and safe for motion-sensitive users"
4
+ ---
5
+
6
+ # Motion Choreography
7
+
8
+ Motion is communication. Every animation answers a question the user didn't know they had. If it doesn't answer one, cut it.
9
+
10
+ ## The Three Questions
11
+
12
+ Before adding any animation:
13
+ 1. **What changed?** — the animation makes it visible
14
+ 2. **What should I look at next?** — directs attention
15
+ 3. **How are these related?** — shows spatial/hierarchical relationship
16
+
17
+ Can't answer at least one? The animation is decoration. Cut it.
18
+
19
+ ## Duration Guide
20
+
21
+ | Context | Duration |
22
+ |---------|----------|
23
+ | Micro-interaction (button, toggle) | 100-200ms |
24
+ | State change (card expand, tab) | 200-300ms |
25
+ | Screen transition | 250-400ms |
26
+ | Complex choreography | 400-700ms total |
27
+
28
+ Nothing over 1 second unless it's a loading indicator.
29
+
30
+ ## Easing Reference
31
+
32
+ | Context | Easing |
33
+ |---------|--------|
34
+ | Entering | ease-out (decelerate) |
35
+ | Leaving | ease-in (accelerate) |
36
+ | State change | ease-in-out |
37
+ | Micro-interaction | spring (stiffness 300-500) |
38
+
39
+ ## Stagger Patterns
40
+
41
+ - 50-80ms delay between items
42
+ - Maximum 5 items staggered, rest appear instantly
43
+ - Follow reading order
44
+ - Reveal hierarchy — important items first
45
+
46
+ ## Reduced Motion
47
+
48
+ `prefers-reduced-motion: reduce` means reduce, not remove.
49
+
50
+ | Standard | Reduced alternative |
51
+ |----------|-------------------|
52
+ | Slide in | Fade in |
53
+ | Scale with bounce | Instant appearance |
54
+ | Parallax scroll | Static |
55
+ | Staggered reveal | Simultaneous fade |
56
+ | Continuous pulse | Static state |
57
+
58
+ **Every animation must have a reduced-motion alternative. No exceptions.**
59
+
60
+ ## What NOT to Animate
61
+
62
+ - Text colour changes (photosensitive risk)
63
+ - Layout properties in performance paths (use transform)
64
+ - Anything that delays task completion
65
+ - Decorative loops without user control
66
+
67
+ ## Performance
68
+
69
+ Only animate: `transform`, `opacity`, `filter`. These are GPU-composited.
70
+
71
+ ## What You Deliver
72
+
73
+ - Animation specs with durations, easings, triggers
74
+ - Reduced-motion alternatives for every animation
75
+ - Performance annotations
76
+ - Sequence diagrams for complex choreography
77
+
78
+ ## Integration
79
+
80
+ - **Informed by:** `design-lead`, `interaction-design`
81
+ - **Feeds into:** `motion-designer` agent, `accessibility-reviewer`, `design-builder`
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: research-planning
3
+ description: "Use when user needs are unclear, assumptions need validation, or the design brief identifies gaps in understanding — plans what to learn, which methods to use, and from whom"
4
+ ---
5
+
6
+ # Research Planning
7
+
8
+ Research is how we replace assumptions with evidence. This skill structures what you need to learn before committing to a design direction.
9
+
10
+ ## When to Use
11
+
12
+ - The design brief identifies unknowns about users, context, or behaviour
13
+ - The team is making decisions based on assumptions rather than evidence
14
+ - A design is being created for a new audience or unfamiliar context
15
+ - Stakeholders disagree about user needs
16
+
17
+ ## Process
18
+
19
+ ### Step 1: Identify Knowledge Gaps
20
+
21
+ Review the design brief and list:
22
+ - What do we **know** about the people who will use this? (Evidence-backed)
23
+ - What do we **assume**? (Believed but unverified)
24
+ - What do we **not know**? (Acknowledged gaps)
25
+
26
+ Present this to the user. Assumptions and unknowns become research questions.
27
+
28
+ ### Step 2: Frame Research Questions
29
+
30
+ Convert gaps into answerable questions. Good research questions are:
31
+ - **Specific** — "How do users with screen readers navigate multi-step forms?" not "Is the form accessible?"
32
+ - **Observable** — focused on behaviour, not opinion
33
+ - **Actionable** — the answer will change a design decision
34
+
35
+ Aim for 3-5 research questions. More than that means you need to narrow scope.
36
+
37
+ ### Step 3: Select Methods
38
+
39
+ Match methods to questions:
40
+
41
+ | Question Type | Recommended Methods |
42
+ |--------------|-------------------|
43
+ | "What do people currently do?" | Journey mapping, diary studies, contextual inquiry |
44
+ | "Why do people struggle with X?" | Usability testing, think-aloud protocols |
45
+ | "What do people need?" | Interviews, jobs-to-be-done analysis |
46
+ | "Which approach works better?" | A/B testing, preference testing, card sorting |
47
+ | "How does our offering compare?" | Competitive analysis, heuristic evaluation |
48
+ | "Who are we designing for?" | Persona development, ability spectrum mapping |
49
+
50
+ ### Step 4: Plan for Inclusion
51
+
52
+ Every research plan must address:
53
+ - **Participant diversity** — include people with disabilities, different ages, different technical literacy, different languages
54
+ - **Method accessibility** — ensure research methods themselves are accessible (e.g., interview formats that work for people with communication differences)
55
+ - **Situational contexts** — include scenarios of stress, distraction, low bandwidth, unfamiliar environments
56
+
57
+ ### Step 5: Write the Research Plan
58
+
59
+ ```markdown
60
+ # Research Plan: [Topic]
61
+
62
+ ## Research Questions
63
+ 1. [Question]
64
+ 2. [Question]
65
+ 3. [Question]
66
+
67
+ ## Methods
68
+ | Method | Questions Addressed | Participants | Timeline |
69
+ |--------|-------------------|-------------|----------|
70
+ | [Method] | Q1, Q2 | [Who and how many] | [When] |
71
+
72
+ ## Inclusion Considerations
73
+ [How participant diversity and method accessibility will be ensured]
74
+
75
+ ## Expected Outputs
76
+ [What deliverables this research will produce — personas, journey maps, findings report]
77
+
78
+ ## Decision Points
79
+ [Which design decisions this research will inform]
80
+ ```
81
+
82
+ Save to: `docs/designpowers/research/YYYY-MM-DD-<topic>-plan.md`
83
+
84
+ ### Step 6: User Review
85
+
86
+ Present the plan. Confirm scope, methods, and timeline are realistic.
87
+
88
+ ## Integration
89
+
90
+ - **Called by:** `design-discovery`
91
+ - **Calls:** `inclusive-personas` (when persona development is a research output)
92
+ - **Pairs with:** `design-strategy` (research informs strategy)
93
+
94
+ ## What This Skill Does NOT Do
95
+
96
+ This skill plans research — it does not execute it. Execution happens with real people in the real world. The plan ensures that when research happens, it is structured, inclusive, and actionable.
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: responsive-patterns
3
+ description: "Use when designing complex responsive layouts — breakpoint strategy, layout shifts, content reflow, responsive typography, container queries, and ensuring the experience works across the full device spectrum"
4
+ ---
5
+
6
+ # Responsive Patterns
7
+
8
+ Responsive design is not "make it fit on a phone." It is designing for every context — one-handed on a bus, zoomed to 200% on a desktop, on a tablet in sunlight.
9
+
10
+ ## When to Use
11
+
12
+ - When `ui-composition` defines a layout that spans breakpoints
13
+ - When the design-critic flags responsive issues
14
+ - When building anything more complex than single-column
15
+
16
+ ## Breakpoint Strategy
17
+
18
+ Content drives breakpoints, not devices. Do not use 768px because "that's tablet." Use the width where your content breaks.
19
+
20
+ 1. Start at 320px
21
+ 2. Widen slowly
22
+ 3. When the layout looks wrong — that's a breakpoint
23
+ 4. Name by behaviour, not device
24
+
25
+ ```css
26
+ --bp-stack: 0;
27
+ --bp-sidebar: 640px;
28
+ --bp-columns: 900px;
29
+ --bp-wide: 1200px;
30
+ ```
31
+
32
+ ## Content Priority Shifting
33
+
34
+ At narrow widths, decide what gets:
35
+ - **Kept** — essential for the task
36
+ - **Collapsed** — behind a toggle
37
+ - **Deferred** — lower in scroll order
38
+ - **Hidden** — removed (last resort)
39
+
40
+ Document these decisions.
41
+
42
+ ## Responsive Typography
43
+
44
+ ```css
45
+ --font-size-body: clamp(1rem, 0.9rem + 0.5vw, 1.125rem);
46
+ --font-size-h1: clamp(1.75rem, 1.5rem + 1.25vw, 2.5rem);
47
+ ```
48
+
49
+ Body text minimum 16px. Line length 45-75 characters. At 200% zoom, no horizontal scroll (WCAG 1.4.10).
50
+
51
+ ## Container Queries vs Media Queries
52
+
53
+ | Use case | Use |
54
+ |----------|-----|
55
+ | Page-level layout | `@media` |
56
+ | Component adaptation | `@container` |
57
+
58
+ ## Touch Targets
59
+
60
+ 44x44px minimum at mobile. 8px minimum gap between adjacent targets.
61
+
62
+ ## Testing
63
+
64
+ Test at: 320px, one pixel below each breakpoint, 200% zoom at 1280px, landscape phone, and real devices.
65
+
66
+ ## What You Deliver
67
+
68
+ - Breakpoint definitions with rationale
69
+ - Layout behaviour at each breakpoint
70
+ - Content priority decisions
71
+ - Typography scale with clamp() values
72
+ - Touch target verification
73
+
74
+ ## Integration
75
+
76
+ - **Informed by:** `ui-composition`, `design-discovery`
77
+ - **Feeds into:** `design-builder`, `accessibility-reviewer`
@@ -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.