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.
- package/.agents/skills/codex-qa/SKILL.md +15 -0
- package/.agents/skills/codex-qa/references/isolation.md +1 -1
- package/.agents/skills/codex-qa/references/logging-debug.md +12 -0
- package/.agents/skills/opencode-qa/SKILL.md +17 -0
- package/.agents/skills/opencode-qa/references/tui-tmux.md +17 -0
- package/.agents/skills/work-with-pr/SKILL.md +18 -10
- package/.opencode/skills/work-with-pr/SKILL.md +18 -10
- package/README.md +3 -3
- package/dist/cli/doctor/checks/telemetry.d.ts +2 -0
- package/dist/cli/doctor/framework/constants.d.ts +1 -0
- package/dist/cli/doctor/framework/doctor-target.d.ts +1 -1
- package/dist/cli/doctor/framework/types.d.ts +2 -0
- package/dist/cli/index.js +24779 -17857
- package/dist/cli-node/index.js +24779 -17857
- package/dist/config/schema/oh-my-opencode-config.d.ts +1 -0
- package/dist/features/team-mode/test-support/async-test-helpers.d.ts +19 -0
- package/dist/hooks/atlas/final-wave-approval-gate.d.ts +1 -0
- package/dist/hooks/atlas/subagent-completion-reminder.d.ts +30 -0
- package/dist/hooks/atlas/types.d.ts +2 -0
- package/dist/hooks/atlas/verification-reminders.d.ts +3 -0
- package/dist/hooks/team-session-events/team-idle-wake-hint.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +43845 -26631
- package/dist/mcp/context7.d.ts +9 -8
- package/dist/oh-my-opencode.schema.json +4 -0
- package/dist/plugin/native-skills.d.ts +9 -0
- package/dist/plugin/system-transform.d.ts +1 -1
- package/dist/shared/posthog.d.ts +17 -10
- package/dist/shared/telemetry-product-identity.d.ts +2 -0
- package/dist/skills/coding-agent-sessions/SKILL.md +128 -0
- package/dist/skills/coding-agent-sessions/agents/openai.yaml +4 -0
- package/dist/skills/coding-agent-sessions/references/all-platforms.md +71 -0
- package/dist/skills/coding-agent-sessions/references/claude.md +32 -0
- package/dist/skills/coding-agent-sessions/references/codex.md +30 -0
- package/dist/skills/coding-agent-sessions/references/opencode.md +43 -0
- package/dist/skills/coding-agent-sessions/references/senpi.md +17 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
- package/dist/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
- package/dist/skills/frontend/ATTRIBUTION.md +52 -8
- package/dist/skills/frontend/SKILL.md +29 -8
- package/dist/skills/frontend/references/design/README.md +29 -12
- package/dist/skills/frontend/references/design/_INDEX.md +3 -3
- package/dist/skills/frontend/references/design/design-system-architecture.md +22 -19
- package/dist/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
- package/dist/skills/frontend/references/designpowers/README.md +48 -0
- package/dist/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
- package/dist/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
- package/dist/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
- package/dist/skills/frontend/references/designpowers/lane-c-review.md +65 -0
- package/dist/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
- package/dist/skills/frontend/references/designpowers/orchestration.md +80 -0
- package/dist/skills/frontend/references/designpowers/routing.md +79 -0
- package/dist/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
- package/dist/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
- package/dist/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
- package/dist/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
- package/dist/skills/git-master/SKILL.md +4 -0
- package/dist/skills/lcx-contribute-bug-fix/SKILL.md +44 -13
- package/dist/skills/lcx-contribute-bug-fix/agents/openai.yaml +1 -1
- package/dist/skills/lcx-doctor/SKILL.md +48 -13
- package/dist/skills/lcx-doctor/agents/openai.yaml +1 -1
- package/dist/skills/lcx-report-bug/SKILL.md +44 -13
- package/dist/skills/lcx-report-bug/agents/openai.yaml +1 -1
- package/dist/skills/review-work/SKILL.md +3 -3
- package/dist/skills/start-work/SKILL.md +7 -5
- package/dist/skills/ultraresearch/SKILL.md +4 -252
- package/dist/skills/ulw-plan/SKILL.md +8 -6
- package/dist/skills/ulw-plan/references/full-workflow.md +11 -6
- package/dist/skills/ulw-plan/references/intent-clear.md +3 -3
- package/dist/skills/ulw-plan/references/intent-unclear.md +1 -1
- package/{packages/shared-skills/skills/ultraresearch → dist/skills/ulw-research}/ATTRIBUTION.md +1 -1
- package/dist/skills/ulw-research/SKILL.md +260 -0
- package/dist/skills/visual-qa/SKILL.md +109 -18
- package/dist/skills/visual-qa/references/agent-browser-setup.md +5 -4
- package/dist/skills/visual-qa/scripts/cli.test.ts +7 -2
- package/dist/skills/visual-qa/scripts/skill-prompt-contract.test.ts +130 -3
- package/dist/skills/visual-qa/scripts/visual-qa.mjs +530 -0
- package/dist/testing/create-plugin-module.d.ts +2 -0
- package/dist/tools/delegate-task/skill-resolver.d.ts +1 -0
- package/dist/tools/delegate-task/types.d.ts +2 -0
- package/dist/tools/skill/types.d.ts +1 -0
- package/dist/tui.js +23917 -16117
- package/docs/reference/github-attachment-upload.md +51 -0
- package/docs/reference/web-terminal-visual-qa.md +81 -0
- package/package.json +33 -14
- package/packages/git-bash-mcp/dist/cli.js +2 -0
- package/packages/lsp-core/src/lsp/process.ts +4 -1
- package/packages/lsp-core/src/mcp.ts +1 -0
- package/packages/lsp-daemon/dist/cli.js +20 -5
- package/packages/lsp-daemon/dist/ensure-daemon.d.ts +1 -0
- package/packages/lsp-daemon/dist/ensure-daemon.js +9 -3
- package/packages/lsp-daemon/dist/index.js +20 -5
- package/packages/lsp-daemon/dist/paths.d.ts +1 -0
- package/packages/lsp-daemon/dist/paths.js +6 -1
- package/packages/lsp-daemon/dist/proxy.js +1 -0
- package/packages/lsp-tools-mcp/dist/cli.js +5 -1
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +4 -1
- package/packages/lsp-tools-mcp/dist/mcp.js +5 -1
- package/packages/lsp-tools-mcp/dist/tools.js +4 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +327 -69
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/scripts/bootstrap.ps1 +37 -68
- package/packages/omo-codex/plugin/components/bootstrap/scripts/node-dispatch.ps1 +75 -0
- package/packages/omo-codex/plugin/components/bootstrap/src/cli.ts +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +3 -19
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +688 -334
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +317 -39
- package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
- package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +7 -1
- package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +103 -3
- package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +231 -0
- package/packages/omo-codex/plugin/components/codegraph/src/serve-invocation.ts +29 -0
- package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +31 -57
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +7 -4
- package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +43 -9
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +287 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +12 -7
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +71 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +94 -26
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.js +2 -0
- package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.d.ts +2 -0
- package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +56 -0
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/src/cli.ts +2 -5
- package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +2 -0
- package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +65 -0
- package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +6 -1
- package/packages/omo-codex/plugin/components/rules/dist/cli.js +8 -106
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -17
- package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +6 -6
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +23 -0
- package/packages/omo-codex/plugin/components/teammode/dist/cli.js +22 -4
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/SKILL.md +57 -7
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team-guide.mjs +32 -5
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team-state.mjs +63 -1
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team.mjs +87 -53
- package/packages/omo-codex/plugin/components/teammode/src/codex-hook.ts +19 -4
- package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +32 -2
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/README.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +18 -10
- package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +6 -4
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +11 -6
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +3 -3
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/src/codex-hook.ts +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +24 -0
- package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +7 -28
- package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/README.md +25 -21
- package/packages/omo-codex/plugin/components/ulw-loop/biome.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +373 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.js +14 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +145 -14
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.d.ts +6 -3
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-hook.js +16 -6
- package/packages/omo-codex/plugin/components/ulw-loop/dist/ultrawork-directive.d.ts +5 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/ultrawork-directive.js +104 -0
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +5 -2
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +22 -14
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-steering.ts +14 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +4 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +28 -6
- package/packages/omo-codex/plugin/components/ulw-loop/src/ultrawork-directive.ts +113 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +33 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-kind-guidance.test.ts +31 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +13 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/sample-quality-gate.json +7 -7
- package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +39 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-doc.test.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +7 -6
- package/packages/omo-codex/plugin/components/ulw-loop/test/skill-contract.test.ts +12 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +64 -0
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +2 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +2 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +2 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +2 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +2 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +2 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +2 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +2 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +2 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +2 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +2 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +2 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +2 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +2 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +2 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +2 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +2 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +2 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +2 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +2 -1
- package/packages/omo-codex/plugin/package-lock.json +16 -56
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/auto-update.mjs +9 -5
- package/packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs +1 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/context7-placeholder-guard.mjs +131 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-mode-guard.mjs +60 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +3 -10
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/root-settings.mjs +31 -1
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +73 -0
- package/packages/omo-codex/plugin/scripts/migrate-codex-config.mjs +20 -3
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +30 -8
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +128 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/agents/openai.yaml +4 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +71 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/claude.md +32 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/codex.md +30 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/opencode.md +43 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +17 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
- package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +52 -8
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +29 -8
- package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +29 -12
- package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +3 -3
- package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +22 -19
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +48 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-c-review.md +65 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +80 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +79 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
- package/packages/omo-codex/plugin/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
- package/packages/omo-codex/plugin/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
- package/packages/omo-codex/plugin/skills/git-master/SKILL.md +4 -0
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +4 -0
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +44 -13
- package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/agents/openai.yaml +1 -1
- package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +48 -13
- package/packages/omo-codex/plugin/skills/lcx-doctor/agents/openai.yaml +1 -1
- package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +44 -13
- package/packages/omo-codex/plugin/skills/lcx-report-bug/agents/openai.yaml +1 -1
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +4 -0
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +4 -0
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +12 -4
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +14 -8
- package/packages/omo-codex/plugin/skills/teammode/SKILL.md +57 -7
- package/packages/omo-codex/plugin/skills/teammode/scripts/team-guide.mjs +32 -5
- package/packages/omo-codex/plugin/skills/teammode/scripts/team-state.mjs +63 -1
- package/packages/omo-codex/plugin/skills/teammode/scripts/team.mjs +87 -53
- package/packages/omo-codex/plugin/skills/ultraresearch/SKILL.md +4 -250
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +22 -14
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +6 -4
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +11 -6
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +3 -3
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +1 -1
- package/{dist/skills/ultraresearch → packages/omo-codex/plugin/skills/ulw-research}/ATTRIBUTION.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +262 -0
- package/packages/omo-codex/plugin/skills/ulw-research/agents/openai.yaml +2 -0
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +113 -18
- package/packages/omo-codex/plugin/skills/visual-qa/references/agent-browser-setup.md +5 -4
- package/packages/omo-codex/plugin/skills/visual-qa/scripts/visual-qa.mjs +530 -0
- package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +23 -0
- package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -0
- package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +1 -0
- package/packages/omo-codex/plugin/test/auto-update-restart-notice.test.mjs +24 -1
- package/packages/omo-codex/plugin/test/bootstrap-binlinks.test.mjs +61 -7
- package/packages/omo-codex/plugin/test/bootstrap-hooks.test.mjs +38 -0
- package/packages/omo-codex/plugin/test/bootstrap-ps-guard.test.mjs +25 -0
- package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +1 -7
- package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +12 -11
- package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +99 -1
- package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +62 -8
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +206 -6
- package/packages/omo-codex/plugin/test/node-install-surface.test.mjs +1 -0
- package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +44 -0
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +50 -1
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +10 -7
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +28 -2
- package/packages/omo-codex/plugin/test/teammode-archive-ambiguity.test.mjs +102 -0
- package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +20 -0
- package/packages/omo-codex/plugin/test/teammode-safety-fixture.mjs +41 -1
- package/packages/omo-codex/plugin/test/teammode-safety.test.mjs +93 -0
- package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +117 -0
- package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +5 -2
- package/packages/omo-codex/plugin/test/ulw-research-skill-contract.test.mjs +285 -0
- package/packages/omo-codex/scripts/install-bin-links.test.mjs +12 -1
- package/packages/omo-codex/scripts/install-cache-copy.test.mjs +79 -0
- package/packages/omo-codex/scripts/install-config-autonomous-features.test.mjs +43 -3
- package/packages/omo-codex/scripts/install-config.test.mjs +198 -17
- package/packages/omo-codex/scripts/install-delegated-command.test.mjs +93 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +803 -309
- package/packages/omo-codex/scripts/install-local-entrypoint.test.mjs +21 -2
- package/packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs +24 -15
- package/packages/omo-codex/scripts/install-local.test.mjs +5 -2
- package/packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs +84 -0
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +128 -0
- package/packages/shared-skills/skills/coding-agent-sessions/agents/openai.yaml +4 -0
- package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +71 -0
- package/packages/shared-skills/skills/coding-agent-sessions/references/claude.md +32 -0
- package/packages/shared-skills/skills/coding-agent-sessions/references/codex.md +30 -0
- package/packages/shared-skills/skills/coding-agent-sessions/references/opencode.md +43 -0
- package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +17 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/__init__.py +1 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/claude.py +66 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/cli.py +283 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/codex.py +105 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/file_scanners.py +275 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/jsonio.py +55 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/kiro_scanner.py +91 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/opencode.py +289 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +92 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_optional_scanners.py +203 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/sqlite_scanners.py +177 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/timeparse.py +51 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/transcript.py +149 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/types.py +57 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/find-agent-sessions.py +19 -0
- package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +52 -8
- package/packages/shared-skills/skills/frontend/SKILL.md +29 -8
- package/packages/shared-skills/skills/frontend/references/design/README.md +29 -12
- package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +3 -3
- package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +22 -19
- package/packages/shared-skills/skills/frontend/references/designpowers/EVIDENCE.md +89 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/README.md +48 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/UPSTREAM.md +80 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +64 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +65 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/lane-c-review.md +65 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +83 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +80 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +79 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/LICENSE +21 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/accessibility-reviewer.md +83 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/content-writer.md +132 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-builder.md +109 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-critic.md +89 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-lead.md +113 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-scout.md +78 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/design-strategist.md +121 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/heuristic-evaluator.md +268 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/inspiration-scout.md +107 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/agents/motion-designer.md +120 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/accessible-content/SKILL.md +101 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/adaptive-interfaces/SKILL.md +109 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/cognitive-accessibility/SKILL.md +107 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-debate/SKILL.md +199 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-debt-tracker/SKILL.md +174 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-handoff/SKILL.md +125 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-md/SKILL.md +106 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-retrospective/SKILL.md +266 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-review/SKILL.md +123 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/design-system-alignment/SKILL.md +120 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/designpowers-critique/SKILL.md +164 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/heuristic-evaluation/SKILL.md +85 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/inclusive-personas/SKILL.md +98 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/inspiration-scouting/SKILL.md +165 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/interaction-design/SKILL.md +122 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/motion-choreography/SKILL.md +81 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/research-planning/SKILL.md +96 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/responsive-patterns/SKILL.md +77 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md +192 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/taste-feedback/SKILL.md +165 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/taste-report/SKILL.md +78 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md +75 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/ui-composition/SKILL.md +117 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/usability-testing/SKILL.md +78 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/verification-before-shipping/SKILL.md +125 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/voice-and-tone/SKILL.md +79 -0
- package/packages/shared-skills/skills/frontend/references/designpowers/vendor/skills/writing-design-plans/SKILL.md +119 -0
- package/packages/shared-skills/skills/frontend/references/ui-ux-db/scripts/core.py +0 -0
- package/packages/shared-skills/skills/git-master/SKILL.md +4 -0
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +44 -13
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +1 -1
- package/packages/shared-skills/skills/lcx-doctor/SKILL.md +48 -13
- package/packages/shared-skills/skills/lcx-doctor/agents/openai.yaml +1 -1
- package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +44 -13
- package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +1 -1
- package/packages/shared-skills/skills/review-work/SKILL.md +3 -3
- package/packages/shared-skills/skills/start-work/SKILL.md +7 -5
- package/packages/shared-skills/skills/ultraresearch/SKILL.md +4 -252
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +8 -6
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +11 -6
- package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +3 -3
- package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +1 -1
- package/packages/{omo-codex/plugin/skills/ultraresearch → shared-skills/skills/ulw-research}/ATTRIBUTION.md +1 -1
- package/packages/shared-skills/skills/ulw-research/SKILL.md +260 -0
- package/packages/shared-skills/skills/visual-qa/SKILL.md +109 -18
- package/packages/shared-skills/skills/visual-qa/references/agent-browser-setup.md +5 -4
- package/packages/shared-skills/skills/visual-qa/scripts/cli.test.ts +7 -2
- package/packages/shared-skills/skills/visual-qa/scripts/skill-prompt-contract.test.ts +130 -3
- package/packages/shared-skills/skills/visual-qa/scripts/visual-qa.mjs +530 -0
- package/script/qa/web-terminal-redaction.d.mts +13 -0
- package/script/qa/web-terminal-redaction.mjs +43 -0
- package/script/qa/web-terminal-renderer.mjs +218 -0
- package/script/qa/web-terminal-visual-qa.mjs +264 -0
- package/dist/cli/sparkshell-appserver-websocket.d.ts +0 -4
- package/dist/cli/sparkshell-appserver.d.ts +0 -16
- package/dist/cli/sparkshell-condense.d.ts +0 -10
- package/dist/cli/sparkshell-parse.d.ts +0 -24
- package/dist/cli/sparkshell-session-context.d.ts +0 -20
- package/dist/cli/sparkshell-spark.d.ts +0 -23
- package/dist/cli/sparkshell.d.ts +0 -33
- package/dist/shared/sparkshell-awareness.d.ts +0 -5
- package/packages/omo-codex/plugin/components/rules/src/sparkshell-awareness.ts +0 -106
- package/packages/omo-codex/plugin/components/rules/test/sparkshell-awareness.test.ts +0 -346
- package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/tests/test_cookie_domain_filter.py +0 -110
- package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/tests/test_extract_cookies.py +0 -245
- package/packages/omo-codex/plugin/test/ultraresearch-skill-contract.test.mjs +0 -204
|
@@ -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 |
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: usability-testing
|
|
3
|
+
description: "Use when planning or conducting usability tests — writing test scripts, defining tasks, selecting participants, analysing findings, and turning observations into design actions"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Usability Testing
|
|
7
|
+
|
|
8
|
+
Testing with real people is how you find out if the design works — not by looking at it, but by watching someone use it.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- After design-builder produces a working prototype
|
|
13
|
+
- Before declaring a design complete
|
|
14
|
+
- When the design-critic flags persona coverage gaps
|
|
15
|
+
- When assumptions about user behaviour need evidence
|
|
16
|
+
|
|
17
|
+
## Process
|
|
18
|
+
|
|
19
|
+
### Step 1: Define What You're Testing
|
|
20
|
+
|
|
21
|
+
Write 3-5 task scenarios that map to the core jobs in the brief. Each task:
|
|
22
|
+
- **Starts with a realistic trigger** — "You just bought a new plant and want to add it to the app"
|
|
23
|
+
- **Has a clear success condition** — "The plant appears in your list with a watering schedule"
|
|
24
|
+
- **Does not tell the user how** — never say "tap the + button"
|
|
25
|
+
|
|
26
|
+
### Step 2: Select Participants
|
|
27
|
+
|
|
28
|
+
Recruit 5-8 participants. At minimum include:
|
|
29
|
+
- 1 person who uses a screen reader
|
|
30
|
+
- 1 person over 60
|
|
31
|
+
- 1 person who is not a native speaker of the interface language
|
|
32
|
+
- 1 person with low tech confidence
|
|
33
|
+
|
|
34
|
+
Reference `inclusive-personas` for the ability spectrum.
|
|
35
|
+
|
|
36
|
+
### Step 3: Choose Method
|
|
37
|
+
|
|
38
|
+
| Method | When to use | Minimum participants |
|
|
39
|
+
|--------|-----------|---------------------|
|
|
40
|
+
| Moderated think-aloud | New flows, complex interactions | 5 |
|
|
41
|
+
| Unmoderated remote | Simple tasks, large sample | 8-12 |
|
|
42
|
+
| Guerrilla (hallway) | POC validation, time-constrained | 3-5 |
|
|
43
|
+
| Accessibility audit with AT users | After build, before ship | 2-3 |
|
|
44
|
+
|
|
45
|
+
### Step 4: Write the Test Script
|
|
46
|
+
|
|
47
|
+
1. **Welcome** — explain what you're testing (the design, not them)
|
|
48
|
+
2. **Background** — 2-3 questions about their relationship to the problem
|
|
49
|
+
3. **Tasks** — present each scenario one at a time, observe silently
|
|
50
|
+
4. **Debrief** — "What was hardest?" "What would you change?"
|
|
51
|
+
|
|
52
|
+
Never help during a task. Silence is data.
|
|
53
|
+
|
|
54
|
+
### Step 5: Analyse Findings
|
|
55
|
+
|
|
56
|
+
Classify outcomes per task:
|
|
57
|
+
- **Completed easily** — no hesitation, no errors
|
|
58
|
+
- **Completed with difficulty** — hesitation or errors but recovered
|
|
59
|
+
- **Failed** — could not complete
|
|
60
|
+
- **Completed wrong** — thought they succeeded but didn't
|
|
61
|
+
|
|
62
|
+
Severity: Critical (blocks 2+ participants), Major (significant difficulty), Minor (noticed but not impeding).
|
|
63
|
+
|
|
64
|
+
### Step 6: Turn Findings Into Actions
|
|
65
|
+
|
|
66
|
+
Every finding becomes a design action: "[Severity] [What happened] → [Design action] → [Which agent handles it]"
|
|
67
|
+
|
|
68
|
+
## What You Deliver
|
|
69
|
+
|
|
70
|
+
- Task success rates table
|
|
71
|
+
- Ranked findings by severity
|
|
72
|
+
- Design actions with agent assignments
|
|
73
|
+
- Recommendation: iterate / ship / rethink
|
|
74
|
+
|
|
75
|
+
## Integration
|
|
76
|
+
|
|
77
|
+
- **Informed by:** `inclusive-personas`, `design-discovery`
|
|
78
|
+
- **Feeds into:** `design-lead`, `design-builder`, `design-strategist`
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verification-before-shipping
|
|
3
|
+
description: "Use before declaring any design work complete, fixed, or ready — requires running verification and confirming output before making any success claims. Evidence before assertions, always"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verification Before Shipping
|
|
7
|
+
|
|
8
|
+
Do not say it is done until you have proof. This skill prevents the most common failure mode in design work — declaring completion based on intent rather than evidence.
|
|
9
|
+
|
|
10
|
+
## The Rule
|
|
11
|
+
|
|
12
|
+
NEVER claim work is complete, fixed, passing, or ready without running verification and confirming the output. "I believe this works" is not verification. "I ran these checks and here are the results" is.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- Before declaring a design task complete
|
|
17
|
+
- Before moving from one phase to the next
|
|
18
|
+
- Before handoff to engineering
|
|
19
|
+
- Before creating a PR or committing design artefacts
|
|
20
|
+
- Any time you are about to say "done"
|
|
21
|
+
|
|
22
|
+
## Process
|
|
23
|
+
|
|
24
|
+
### Step 1: Check Against the Plan
|
|
25
|
+
|
|
26
|
+
If a design plan exists:
|
|
27
|
+
- [ ] Every task in the plan is marked complete
|
|
28
|
+
- [ ] Every verification criterion in the plan has been met
|
|
29
|
+
- [ ] No tasks were skipped or deferred without explicit user approval
|
|
30
|
+
|
|
31
|
+
### Step 2: Check Against the Brief
|
|
32
|
+
|
|
33
|
+
Reference the design brief:
|
|
34
|
+
- [ ] The stated problem is addressed
|
|
35
|
+
- [ ] All identified personas are served
|
|
36
|
+
- [ ] Success criteria are met or measurable
|
|
37
|
+
- [ ] Nothing in "out of scope" crept into scope (and vice versa)
|
|
38
|
+
|
|
39
|
+
### Step 3: Accessibility Verification
|
|
40
|
+
|
|
41
|
+
Run — do not guess:
|
|
42
|
+
|
|
43
|
+
**If code exists:**
|
|
44
|
+
- [ ] Automated accessibility scan (axe-core, Lighthouse, or equivalent) — report results
|
|
45
|
+
- [ ] Keyboard navigation test — report results
|
|
46
|
+
- [ ] Screen reader test (at minimum, check heading structure and form labels)
|
|
47
|
+
- [ ] Zoom to 200% — report results
|
|
48
|
+
- [ ] Check prefers-reduced-motion behaviour — report results
|
|
49
|
+
|
|
50
|
+
**If design artefacts only:**
|
|
51
|
+
- [ ] Contrast ratios verified with a tool (not by eye)
|
|
52
|
+
- [ ] Touch targets measured (not estimated)
|
|
53
|
+
- [ ] Heading hierarchy documented
|
|
54
|
+
- [ ] All states designed (not just the happy path)
|
|
55
|
+
|
|
56
|
+
### Step 4: Content Verification
|
|
57
|
+
|
|
58
|
+
- [ ] All placeholder text has been replaced with real content
|
|
59
|
+
- [ ] Error messages are written (not "TODO")
|
|
60
|
+
- [ ] Alt text is present for all images
|
|
61
|
+
- [ ] Labels are specific and descriptive
|
|
62
|
+
|
|
63
|
+
### Step 5: Cross-Reference Personas
|
|
64
|
+
|
|
65
|
+
For each persona from the inclusive-personas phase:
|
|
66
|
+
- [ ] Could [Persona 1] complete the primary task? How?
|
|
67
|
+
- [ ] Could [Persona 2] complete the primary task? How?
|
|
68
|
+
- [ ] Could [Edge Case Persona] complete the primary task? What barriers remain?
|
|
69
|
+
|
|
70
|
+
### Step 6: Check Design Debt
|
|
71
|
+
|
|
72
|
+
Before declaring the project shippable, review the Design Debt Register in `design-state.md`:
|
|
73
|
+
|
|
74
|
+
- [ ] All Critical and Major items are Resolved (not just Open or Escalated)
|
|
75
|
+
- [ ] Any Escalated items have been addressed or consciously Accepted by the user
|
|
76
|
+
- [ ] Open Minor items have been reviewed — the user knows what debt ships with this release
|
|
77
|
+
- [ ] Accessibility debt items have explicit user acknowledgement if Accepted
|
|
78
|
+
|
|
79
|
+
### Step 7: Report
|
|
80
|
+
|
|
81
|
+
Present verification results to the user:
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
## Verification Report: [Feature/Task]
|
|
85
|
+
|
|
86
|
+
**Date:** [YYYY-MM-DD]
|
|
87
|
+
|
|
88
|
+
### Plan Completion
|
|
89
|
+
[All tasks complete / X tasks remaining]
|
|
90
|
+
|
|
91
|
+
### Brief Alignment
|
|
92
|
+
[Aligned / Gaps identified]
|
|
93
|
+
|
|
94
|
+
### Accessibility Results
|
|
95
|
+
- Automated scan: [Pass/Fail — specific issues]
|
|
96
|
+
- Keyboard: [Pass/Fail — specific issues]
|
|
97
|
+
- Screen reader: [Pass/Fail — specific issues]
|
|
98
|
+
- Zoom: [Pass/Fail — specific issues]
|
|
99
|
+
- Motion: [Pass/Fail — specific issues]
|
|
100
|
+
|
|
101
|
+
### Content Status
|
|
102
|
+
[Complete / Gaps identified]
|
|
103
|
+
|
|
104
|
+
### Persona Walkthrough
|
|
105
|
+
[Summary of persona-by-persona evaluation]
|
|
106
|
+
|
|
107
|
+
### Design Debt Status
|
|
108
|
+
- Open items shipping with this release: [count]
|
|
109
|
+
- Escalated items: [count] — [resolved/accepted]
|
|
110
|
+
- Accessibility debt accepted: [count] — [summary]
|
|
111
|
+
- Oldest unresolved: [DD-XXX] from [date]
|
|
112
|
+
|
|
113
|
+
### Verdict
|
|
114
|
+
[Ready to ship / Issues to resolve first]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Integration
|
|
118
|
+
|
|
119
|
+
- **Called by:** Before any completion claim
|
|
120
|
+
- **Follows:** `designpowers-critique`, `design-handoff`
|
|
121
|
+
- **Blocks:** Completion claims, PR creation, merge decisions
|
|
122
|
+
|
|
123
|
+
## The Iron Law
|
|
124
|
+
|
|
125
|
+
If you cannot produce evidence that the design works for the identified personas — including those at the margins of the ability spectrum — it is not done. Go back and verify.
|