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
package/dist/skills/frontend/references/designpowers/vendor/skills/synthetic-user-testing/SKILL.md
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: synthetic-user-testing
|
|
3
|
+
description: "Use after the fix round to validate the design by walking through key tasks as each persona — simulating how Jordan (low-vision), Priya (non-native speaker), Marcus (motor impairment), or any project persona would actually experience the interface. Catches the issues that code review misses because they only surface in the act of using"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Synthetic User Testing
|
|
7
|
+
|
|
8
|
+
Synthetic user testing is the closest thing to putting the design in front of real people without leaving the pipeline. You walk through the interface as each persona, attempting real tasks, and report what works, what breaks, and what feels wrong — from their perspective, not yours.
|
|
9
|
+
|
|
10
|
+
This is not a checklist exercise. It is an act of empathy disciplined by specifics. When you test as Jordan (low-vision, uses 200% zoom and high contrast), you don't ask "is contrast sufficient?" — you ask "can Jordan find the 'continue reading' button at 200% zoom when three articles are competing for attention?"
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- **After the fix round** — the design-builder has addressed findings from critic, accessibility-reviewer, and heuristic-evaluator. Now validate that the fixes work and no new issues were introduced
|
|
15
|
+
- **Before verification-before-shipping** — synthetic testing feeds directly into the persona walkthrough in the verification report
|
|
16
|
+
- **When the design-critic flags persona coverage gaps** — if the critique says "unclear whether Persona X can complete Task Y," run a synthetic test to find out
|
|
17
|
+
- **When the team is unsure about a flow** — synthetic testing turns "I think this works for screen reader users" into "here's exactly where a screen reader user would get stuck"
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
### Step 1: Gather Test Context
|
|
22
|
+
|
|
23
|
+
Before testing, assemble:
|
|
24
|
+
- **Personas** from `inclusive-personas` (via `design-state.md`)
|
|
25
|
+
- **Key tasks** from the design brief — the things the design must enable
|
|
26
|
+
- **The build** — test the actual implementation, not the spec
|
|
27
|
+
- **Assistive technology context** — for each persona, what tools they use and how (zoom level, screen reader, keyboard-only, switch access, etc.)
|
|
28
|
+
|
|
29
|
+
### Step 2: Define Test Scenarios
|
|
30
|
+
|
|
31
|
+
For each key task in the brief, write a scenario that a persona would actually encounter. Scenarios are not "test case 1" — they are moments:
|
|
32
|
+
|
|
33
|
+
**Format:**
|
|
34
|
+
```
|
|
35
|
+
SCENARIO: [Natural situation trigger]
|
|
36
|
+
TASK: [What the persona is trying to accomplish]
|
|
37
|
+
PERSONA: [Name] — [key ability context]
|
|
38
|
+
SUCCESS: [What "done" looks like for this persona]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Example:**
|
|
42
|
+
```
|
|
43
|
+
SCENARIO: Jordan is on the train home and wants to finish an article
|
|
44
|
+
they started yesterday.
|
|
45
|
+
TASK: Find and continue a partially-read article.
|
|
46
|
+
PERSONA: Jordan — low vision, uses 200% zoom, high contrast mode,
|
|
47
|
+
reads on a phone with one hand.
|
|
48
|
+
SUCCESS: Jordan locates the article, picks up where they left off,
|
|
49
|
+
and the progress updates when they finish.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Step 3: Walk Through as Each Persona
|
|
53
|
+
|
|
54
|
+
For each scenario, simulate the persona's experience step by step. This is not "would this work?" — it is "let me try to do this the way [Persona] would."
|
|
55
|
+
|
|
56
|
+
**For each step, document:**
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
STEP [N]: [What the persona does]
|
|
60
|
+
USING: [Input method — touch, keyboard, screen reader, switch, etc.]
|
|
61
|
+
SEES: [What the interface presents — at their zoom level, contrast
|
|
62
|
+
setting, screen size]
|
|
63
|
+
THINKS: [What the persona would likely think or feel]
|
|
64
|
+
RESULT: ✓ succeeds / ⚠ succeeds with difficulty / ✗ fails / ? unclear
|
|
65
|
+
|
|
66
|
+
FINDING: [If ⚠, ✗, or ? — what went wrong and why]
|
|
67
|
+
WHO IS AFFECTED: [This persona, and any others with similar needs]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Critical rules for walking through:**
|
|
71
|
+
1. **Stay in character** — if the persona uses a screen reader, evaluate what the screen reader would announce, not what the sighted experience looks like
|
|
72
|
+
2. **Use their device** — if the persona reads on a phone at 200% zoom, evaluate at that zoom on a phone viewport
|
|
73
|
+
3. **Include emotional state** — a stressed parent and a relaxed commuter approach the same interface differently. The scenario sets the emotional context
|
|
74
|
+
4. **Test error paths** — what happens if the persona makes a mistake? Can they recover? How much does recovery cost them?
|
|
75
|
+
5. **Note friction, not just failure** — a task that technically succeeds but requires 8 taps and 3 scrolls has a friction problem even if it "works"
|
|
76
|
+
|
|
77
|
+
### Step 4: Cross-Persona Analysis
|
|
78
|
+
|
|
79
|
+
After walking through all scenarios, look for patterns across personas:
|
|
80
|
+
|
|
81
|
+
**Barrier matrix:**
|
|
82
|
+
```
|
|
83
|
+
| Task | Jordan | Priya | Marcus | [Persona] |
|
|
84
|
+
| | (low vis) | (ESL) | (motor) | |
|
|
85
|
+
|-------------------|-----------|-----------|-----------|-----------|
|
|
86
|
+
| Find article | ⚠ zoom | ✓ | ✗ target | ... |
|
|
87
|
+
| Continue reading | ✓ | ⚠ jargon | ✓ | ... |
|
|
88
|
+
| Mark complete | ✗ no fbk | ✓ | ⚠ gesture | ... |
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Pattern analysis:**
|
|
92
|
+
- **Universal barriers** — issues that affect 2+ personas → likely a design problem, not an edge case
|
|
93
|
+
- **Persona-specific barriers** — issues that affect only one persona → may need targeted fix or alternative path
|
|
94
|
+
- **Friction hotspots** — steps where multiple personas struggle, even if they eventually succeed
|
|
95
|
+
- **Emotional patterns** — where do personas feel confused, frustrated, or lost?
|
|
96
|
+
|
|
97
|
+
### Step 5: Synthesise Findings
|
|
98
|
+
|
|
99
|
+
Compile findings into a structured report (see "What You Deliver" below). Every finding must:
|
|
100
|
+
- Name the specific persona affected
|
|
101
|
+
- Describe the exact step where the issue occurs
|
|
102
|
+
- Explain why it's a problem from the persona's perspective
|
|
103
|
+
- Suggest a fix
|
|
104
|
+
- Classify severity (Critical / Major / Minor)
|
|
105
|
+
|
|
106
|
+
**Severity in synthetic testing:**
|
|
107
|
+
| Severity | Definition |
|
|
108
|
+
|----------|-----------|
|
|
109
|
+
| **Critical** | Persona cannot complete the task at all |
|
|
110
|
+
| **Major** | Persona completes the task but with significant difficulty, confusion, or emotional friction |
|
|
111
|
+
| **Minor** | Persona completes the task but the experience is rougher than it should be |
|
|
112
|
+
|
|
113
|
+
### Step 6: Feed Results Forward
|
|
114
|
+
|
|
115
|
+
Synthetic testing results feed into two places:
|
|
116
|
+
1. **design-builder** — if fixes are needed, dispatch the builder with specific findings
|
|
117
|
+
2. **verification-before-shipping** — the persona walkthrough section of the verification report should reference synthetic test results, not guesswork
|
|
118
|
+
|
|
119
|
+
## What You Deliver
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
# Synthetic User Test Results: [Project Name]
|
|
123
|
+
|
|
124
|
+
**Date:** [YYYY-MM-DD]
|
|
125
|
+
**Build tested:** [what was tested]
|
|
126
|
+
**Personas tested:** [list]
|
|
127
|
+
**Tasks tested:** [list]
|
|
128
|
+
|
|
129
|
+
## Summary
|
|
130
|
+
[2-3 sentences: overall findings — who can use this, who can't,
|
|
131
|
+
and the biggest gap]
|
|
132
|
+
|
|
133
|
+
## Scenario Results
|
|
134
|
+
|
|
135
|
+
### Scenario 1: [Scenario name]
|
|
136
|
+
**Persona:** [Name] — [context]
|
|
137
|
+
**Task:** [what they're trying to do]
|
|
138
|
+
**Result:** ✓ / ⚠ / ✗
|
|
139
|
+
|
|
140
|
+
[Step-by-step walkthrough with findings]
|
|
141
|
+
|
|
142
|
+
### Scenario 2: ...
|
|
143
|
+
|
|
144
|
+
## Barrier Matrix
|
|
145
|
+
|
|
146
|
+
| Task | [Persona 1] | [Persona 2] | [Persona 3] | ... |
|
|
147
|
+
|------|-------------|-------------|-------------|-----|
|
|
148
|
+
| ... | ✓/⚠/✗ | ✓/⚠/✗ | ✓/⚠/✗ | ... |
|
|
149
|
+
|
|
150
|
+
## Cross-Persona Patterns
|
|
151
|
+
- **Universal barriers:** [issues affecting 2+ personas]
|
|
152
|
+
- **Friction hotspots:** [steps with clustered difficulty]
|
|
153
|
+
- **Emotional patterns:** [where confusion/frustration clusters]
|
|
154
|
+
|
|
155
|
+
## Findings by Severity
|
|
156
|
+
|
|
157
|
+
### Critical
|
|
158
|
+
- [Persona] cannot [task] because [specific reason] → [Fix]
|
|
159
|
+
|
|
160
|
+
### Major
|
|
161
|
+
- [Persona] struggles with [task] at [step] because [reason] → [Fix]
|
|
162
|
+
|
|
163
|
+
### Minor
|
|
164
|
+
- [Persona] experiences friction at [step] because [reason] → [Fix]
|
|
165
|
+
|
|
166
|
+
## Comparison: Pre-Fix vs Post-Fix
|
|
167
|
+
[If this is a re-test after fixes, show what improved and what didn't]
|
|
168
|
+
|
|
169
|
+
## Recommendation
|
|
170
|
+
[Ship / Fix and re-test / Rethink flow for [persona]]
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Integration
|
|
174
|
+
|
|
175
|
+
- **Runs after:** Fix round (design-builder has addressed critic, accessibility-reviewer, and heuristic-evaluator findings)
|
|
176
|
+
- **Runs before:** `verification-before-shipping`
|
|
177
|
+
- **Informed by:** `inclusive-personas`, `design-discovery` (brief), `design-state` (all decisions)
|
|
178
|
+
- **Feeds into:** `verification-before-shipping` (persona walkthrough evidence), `design-builder` (if fixes needed), `design-debt-tracker` (deferred findings)
|
|
179
|
+
- **Complements:** `usability-testing` (which plans tests with real people — synthetic testing validates before real testing begins)
|
|
180
|
+
|
|
181
|
+
## The Difference from Usability Testing
|
|
182
|
+
|
|
183
|
+
| | Synthetic User Testing | Usability Testing |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| **Who** | AI walks through as each persona | Real people use the interface |
|
|
186
|
+
| **When** | After fix round, inside the pipeline | After shipping or during user research |
|
|
187
|
+
| **Speed** | Minutes | Days to weeks |
|
|
188
|
+
| **Catches** | Predictable barriers, flow breaks, friction | Unexpected behaviour, mental model mismatches, emotional reactions |
|
|
189
|
+
| **Misses** | True surprises — things no persona model predicts | Nothing (but expensive and slow) |
|
|
190
|
+
| **Value** | Closes the gap between build and validation without leaving the pipeline | Ground truth |
|
|
191
|
+
|
|
192
|
+
Synthetic testing does not replace real usability testing. It makes real testing more efficient by catching the obvious issues first, so real participants encounter the design at its best — and surface the surprises only humans can find.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: taste-feedback
|
|
3
|
+
description: "Use during the build phase to show the user intermediate visual output and ask for taste direction before the full build completes — enables mid-flight course correction so taste mismatches are caught early, not in review"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Live Taste Feedback
|
|
7
|
+
|
|
8
|
+
The standard Designpowers pipeline catches taste mismatches at critique — after the full build is done. That's expensive. A wrong colour palette discovered after 8 components are built means rebuilding all 8. This skill interrupts the build at strategic moments to show intermediate output and ask: "Is this heading in the right direction?"
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- During `design-builder` execution, at natural visual checkpoints
|
|
13
|
+
- When the build involves subjective aesthetic decisions (colour, typography, spacing, tone)
|
|
14
|
+
- When this project's taste direction (`design-taste`) is ambiguous on the decision at hand
|
|
15
|
+
- When the project is new and there's little explicit direction yet for this decision
|
|
16
|
+
- When the design-lead's direction was based on interpretation, not explicit user instruction
|
|
17
|
+
|
|
18
|
+
## Do Not Use When
|
|
19
|
+
|
|
20
|
+
- The user is in auto mode and hasn't opted into taste checks
|
|
21
|
+
- The build is purely structural (data models, API integration, routing)
|
|
22
|
+
- This project's `design-taste` direction already settles this decision clearly
|
|
23
|
+
- The user has explicitly said "just build it, I'll review at the end"
|
|
24
|
+
|
|
25
|
+
## Process
|
|
26
|
+
|
|
27
|
+
### Step 1: Identify Checkpoints
|
|
28
|
+
|
|
29
|
+
Before the build begins, identify 2-4 moments where taste feedback is most valuable. More than 4 interruptions becomes annoying. Choose wisely.
|
|
30
|
+
|
|
31
|
+
**High-value checkpoints:**
|
|
32
|
+
|
|
33
|
+
| Checkpoint | Why It Matters | When to Show |
|
|
34
|
+
|------------|---------------|-------------|
|
|
35
|
+
| **Colour and typography applied** | The foundational visual layer — everything else builds on this | After the first component is styled |
|
|
36
|
+
| **Layout structure visible** | Spatial relationships, density, whitespace | After the primary screen scaffold is built |
|
|
37
|
+
| **First interaction implemented** | How the interface moves and responds | After the first stateful component works |
|
|
38
|
+
| **Content integrated** | How real words look in the design | After content-writer's copy is in place |
|
|
39
|
+
|
|
40
|
+
**Low-value checkpoints (avoid):**
|
|
41
|
+
|
|
42
|
+
| Checkpoint | Why It's Low Value |
|
|
43
|
+
|------------|-------------------|
|
|
44
|
+
| Unstyled HTML structure | Nothing to react to aesthetically |
|
|
45
|
+
| Individual component in isolation | Context-free judgement is unreliable |
|
|
46
|
+
| After every small change | Interruption fatigue kills the creative flow |
|
|
47
|
+
|
|
48
|
+
### Step 2: Prepare the Checkpoint
|
|
49
|
+
|
|
50
|
+
At each checkpoint, capture the current state:
|
|
51
|
+
|
|
52
|
+
1. **Take a screenshot** of the running output (or describe the visual state precisely if screenshots aren't available)
|
|
53
|
+
2. **Identify the taste-sensitive decisions** visible in the current output
|
|
54
|
+
3. **Prepare specific questions** — do not ask "does this look good?" (too vague)
|
|
55
|
+
|
|
56
|
+
Good taste questions are specific and answerable:
|
|
57
|
+
|
|
58
|
+
| Bad Question | Good Question |
|
|
59
|
+
|-------------|--------------|
|
|
60
|
+
| "Does this look good?" | "The heading is set in 32px Inter Medium — is that weight right, or do you want bolder/lighter?" |
|
|
61
|
+
| "Any feedback?" | "The cards have 16px padding and 8px radius. Does this density feel right, or do you want more breathing room?" |
|
|
62
|
+
| "Is this the right direction?" | "I went warm grey (#F5F3F0) for the background instead of pure white. Does this warmth match what you had in mind?" |
|
|
63
|
+
|
|
64
|
+
### Step 3: Present the Checkpoint
|
|
65
|
+
|
|
66
|
+
Show the user the intermediate state with targeted questions:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
70
|
+
TASTE CHECK [1 of 3]
|
|
71
|
+
Phase: [e.g., "Colour & Typography"]
|
|
72
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
73
|
+
|
|
74
|
+
[Screenshot or detailed visual description]
|
|
75
|
+
|
|
76
|
+
DECISIONS VISIBLE:
|
|
77
|
+
• [Decision 1 — e.g., "Sage green (#8FAE8B) as primary"]
|
|
78
|
+
• [Decision 2 — e.g., "Space Grotesk for headings, Inter for body"]
|
|
79
|
+
• [Decision 3 — e.g., "Generous padding, low density"]
|
|
80
|
+
|
|
81
|
+
TASTE QUESTIONS:
|
|
82
|
+
1. [Specific question about a visible decision]
|
|
83
|
+
2. [Specific question about a visible decision]
|
|
84
|
+
|
|
85
|
+
Quick responses welcome:
|
|
86
|
+
• "Looks right" → continue building
|
|
87
|
+
• "Warmer/cooler/bolder/quieter" → adjust and continue
|
|
88
|
+
• "Stop — wrong direction" → pause build, discuss
|
|
89
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Step 4: Process the Response
|
|
93
|
+
|
|
94
|
+
The user's response determines what happens next:
|
|
95
|
+
|
|
96
|
+
| Response | Action | Taste Signal |
|
|
97
|
+
|----------|--------|-------------|
|
|
98
|
+
| "Looks right" / "Yes" / "Continue" | Resume building. No changes needed | Moderate positive — note in design-memory as confirmed direction |
|
|
99
|
+
| Specific adjustment ("make it warmer") | Apply the adjustment, show confirmation, then continue | Strong — record the adjustment and the direction they moved from/to |
|
|
100
|
+
| "Wrong direction" / "Stop" | Pause the build. Ask what feels off. This is the most valuable taste data | Very strong negative — record what was rejected and why |
|
|
101
|
+
| Detailed feedback ("I like the type but the colour feels too muted") | Apply partial changes. Acknowledge what works, adjust what doesn't | Mixed signal — record both the positive and negative separately |
|
|
102
|
+
| "Skip these checks" | Disable further taste checks for this build. Respect the preference | Meta-preference — they want to review at the end instead |
|
|
103
|
+
|
|
104
|
+
### Step 5: Adjust and Confirm
|
|
105
|
+
|
|
106
|
+
When the user requests a change:
|
|
107
|
+
|
|
108
|
+
1. Make the adjustment
|
|
109
|
+
2. Show the updated state briefly — do not re-present the full checkpoint
|
|
110
|
+
3. Confirm: "Updated [what changed]. Continuing the build."
|
|
111
|
+
4. Do not ask for re-approval unless the change was ambiguous
|
|
112
|
+
|
|
113
|
+
If the change cascades (e.g., new colour palette affects multiple components already built):
|
|
114
|
+
|
|
115
|
+
1. Flag the cascade: "This colour change will affect the 3 components already built. I'll update them all."
|
|
116
|
+
2. Update everything before continuing
|
|
117
|
+
3. Optionally show the cascaded result at the next checkpoint
|
|
118
|
+
|
|
119
|
+
### Step 6: Record Taste Data
|
|
120
|
+
|
|
121
|
+
After each checkpoint interaction, update taste signals:
|
|
122
|
+
|
|
123
|
+
1. Record confirmed decisions as positive signals in `design-memory`
|
|
124
|
+
2. Record adjustments with before/after — these are the richest taste data
|
|
125
|
+
3. Record rejections as anti-pattern candidates
|
|
126
|
+
4. Note the *direction* of adjustments — "wanted warmer", "wanted more contrast", "wanted tighter spacing" — these directional signals generalize across projects
|
|
127
|
+
|
|
128
|
+
## Checkpoint Frequency
|
|
129
|
+
|
|
130
|
+
Adapt based on user behaviour:
|
|
131
|
+
|
|
132
|
+
| User Behaviour | Adjust To |
|
|
133
|
+
|---------------|-----------|
|
|
134
|
+
| Approves every checkpoint quickly | Reduce to 1-2 checkpoints — they trust the direction |
|
|
135
|
+
| Gives detailed feedback at every checkpoint | Maintain 3-4 — they want to shape the output |
|
|
136
|
+
| Says "skip" or seems impatient | Drop to 1 checkpoint or none — ask at the end |
|
|
137
|
+
| Requests more checkpoints | Add checkpoints — they want more control |
|
|
138
|
+
|
|
139
|
+
The system should learn this preference over time via `design-memory`.
|
|
140
|
+
|
|
141
|
+
## Integration With Pipeline Modes
|
|
142
|
+
|
|
143
|
+
| Mode | Behaviour |
|
|
144
|
+
|------|-----------|
|
|
145
|
+
| **Direct** | Taste checkpoints are shown naturally — they fit the approval flow |
|
|
146
|
+
| **Auto** | Taste checkpoints are **disabled by default** in auto mode. The user chose speed. If the user opts in ("auto but check my taste"), enable minimal checkpoints (1-2 max) |
|
|
147
|
+
|
|
148
|
+
## Integration
|
|
149
|
+
|
|
150
|
+
- **Called by:** `design-builder` (at visual checkpoints during build), `using-designpowers` (can be enabled/disabled)
|
|
151
|
+
- **Calls:** `design-memory` (to record taste signals from feedback)
|
|
152
|
+
- **Reads from:** Taste profile (to determine checkpoint frequency and known preferences), `design-state.md` (for current decisions)
|
|
153
|
+
- **Pairs with:** `design-memory`, `ui-composition`, `designpowers-critique`
|
|
154
|
+
|
|
155
|
+
## Anti-Patterns
|
|
156
|
+
|
|
157
|
+
| Pattern | Why It Fails |
|
|
158
|
+
|---------|-------------|
|
|
159
|
+
| Asking "does this look good?" | Too vague. The user can't give actionable feedback without specific questions |
|
|
160
|
+
| Checking after every change | Interruption fatigue. 2-4 checkpoints per build, maximum |
|
|
161
|
+
| Showing unstyled output | There's nothing to react to. Wait until visual decisions are visible |
|
|
162
|
+
| Ignoring "skip" signals | If the user wants to review at the end, respect that. Don't force mid-flight checks |
|
|
163
|
+
| Not recording feedback | Every checkpoint interaction is taste data. If you don't record it, you'll ask the same questions next project |
|
|
164
|
+
| Presenting in auto mode without consent | Auto mode means "don't interrupt me." Only show taste checks if the user explicitly opted in |
|
|
165
|
+
| Asking about non-visual decisions | "Is this the right React component pattern?" is not a taste question. Keep checks visual and aesthetic |
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: taste-report
|
|
3
|
+
description: "Use when the user wants to see how they design — \"what's my taste\", \"show me my taste report\", \"how do I decide\", \"what are my patterns\", or periodically as the personal profile matures. Generates a longitudinal, reflective report from the PERSONAL taste profile (design-memory) — recurring moves, tells, evolution, blind spots — that helps a designer understand their own instincts. Personal layer only: it never reports client-specific signals from any project's DESIGN.md"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Taste Report
|
|
7
|
+
|
|
8
|
+
A taste report turns the personal taste profile from a lookup table into a mirror. `design-memory` accumulates a designer's portable instincts over many projects; this skill reads that accumulation and reflects it back as something the designer can actually learn from — *how you decide, what you reach for, what you reject, and how that's changed.* It's the moment the system stops just remembering your taste and starts helping you see it.
|
|
9
|
+
|
|
10
|
+
## Scope: Personal Layer Only
|
|
11
|
+
|
|
12
|
+
This report describes the **portable** taste in `~/.designpowers/taste-profile.md` — the instincts that travel with the designer regardless of client. It **must not** include client- or project-specific signals (the contents of any project's `DESIGN.md`). A client's required teal accent is that client's taste, not the designer's. If the personal profile is clean (it should be — `design-memory`'s Promotion Gate keeps client specifics out), this is automatic. If you notice client-bound entries that leaked into the personal profile, flag them as contamination rather than reporting them as the designer's taste.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- The user asks: "what's my taste?", "how do I design?", "show me my patterns", "what do I always do?"
|
|
17
|
+
- Periodically, as the profile matures — offer it after a project's retrospective once the profile has **3+ projects** of history (below that, there isn't enough signal; say so).
|
|
18
|
+
- When a designer wants to articulate their own style — for a portfolio, a team, a client pitch.
|
|
19
|
+
|
|
20
|
+
## What the Report Contains
|
|
21
|
+
|
|
22
|
+
Read `~/.designpowers/taste-profile.md` and the project history, then synthesise — don't just reformat the tables. Look for the patterns *across* entries that the designer might not see themselves.
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
# How You Design — Taste Report
|
|
26
|
+
_Generated [date] · based on [N] projects · [X] strong opinions, [Y] soft patterns_
|
|
27
|
+
|
|
28
|
+
## In one line
|
|
29
|
+
[The single sharpest characterisation of their taste. e.g. "You're a restraint-first
|
|
30
|
+
designer who earns every accent and trusts whitespace to do the work."]
|
|
31
|
+
|
|
32
|
+
## How you decide
|
|
33
|
+
[3-5 observations about their decision-making, each with evidence from the profile.
|
|
34
|
+
Not what they like — HOW they choose. e.g.:
|
|
35
|
+
- "You subtract before you add — your overrides almost always remove an element
|
|
36
|
+
rather than restyle it (4 of 5 recorded overrides)."
|
|
37
|
+
- "You decide colour last. Type and spacing are settled before accent appears."]
|
|
38
|
+
|
|
39
|
+
## What you reach for
|
|
40
|
+
[Recurring moves — the defaults they return to across projects. The strong opinions
|
|
41
|
+
and confirmed soft patterns, framed as instincts not rules.]
|
|
42
|
+
|
|
43
|
+
## What you reject
|
|
44
|
+
[The anti-patterns, synthesised into a point of view. e.g. "You reject anything that
|
|
45
|
+
performs friendliness — confetti, mascots, exclamation marks, skeleton 'delight'."]
|
|
46
|
+
|
|
47
|
+
## How your taste is evolving
|
|
48
|
+
[Movement over time from the project history. What's hardened from soft to strong,
|
|
49
|
+
what you've changed your mind about, what's newly appearing. e.g. "Your tolerance
|
|
50
|
+
for density has risen — early projects favoured sparse layouts, recent ones trust
|
|
51
|
+
the user with more on screen."]
|
|
52
|
+
|
|
53
|
+
## Possible blind spots
|
|
54
|
+
[Gentle, honest. Tendencies that could become ruts, or places the profile is thin.
|
|
55
|
+
e.g. "Every project leans editorial-serif for personality — worth testing whether
|
|
56
|
+
that's taste or habit." Frame as questions, not judgements.]
|
|
57
|
+
|
|
58
|
+
## Where the signal is thin
|
|
59
|
+
[What the profile doesn't yet know — areas with little evidence, so the designer
|
|
60
|
+
knows what's well-established vs. a guess. Honesty about confidence.]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## How to Write It Well
|
|
64
|
+
|
|
65
|
+
1. **Synthesise, don't transcribe.** The value is in patterns *across* entries — "you always subtract," "you decide colour last" — not in re-listing the table rows. If you're just reformatting the profile, you haven't done the work.
|
|
66
|
+
2. **Every claim cites evidence.** Tie each observation to specific projects, overrides, or repeated decisions in the profile. No evidence, no claim — this is `design-memory`, and the same "evidence over claims" rule applies.
|
|
67
|
+
3. **Describe decision-making, not just preference.** "Prefers muted palettes" is a lookup. "Decides colour last, after structure is settled" is insight. Reach for the second.
|
|
68
|
+
4. **Be honest about confidence and thinness.** Distinguish strong, well-evidenced patterns from thin ones. Don't manufacture a richer picture than the data supports.
|
|
69
|
+
5. **Blind spots are a gift, not a verdict.** Surface ruts and gaps gently, as questions. The goal is self-awareness, never a grade.
|
|
70
|
+
6. **Stay in the personal layer.** If a "preference" is really one client's brand requirement, it does not belong here.
|
|
71
|
+
|
|
72
|
+
## Integration
|
|
73
|
+
|
|
74
|
+
- **Reads from:** `~/.designpowers/taste-profile.md` and its project history (via `design-memory`)
|
|
75
|
+
- **Never reads:** any project's `DESIGN.md` as personal taste (that's client taste — see `design-md`)
|
|
76
|
+
- **Offered after:** `design-retrospective`, once the profile has enough history
|
|
77
|
+
- **Pairs with:** `design-memory` (the store), `design-taste` (per-project calibration)
|
|
78
|
+
- **Produces:** a report for the user — not a profile edit. It reflects; it does not rewrite the profile.
|
package/dist/skills/frontend/references/designpowers/vendor/skills/token-architecture/SKILL.md
ADDED
|
@@ -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 |
|