zugzbot 1.0.21 → 1.0.23
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/.opencode/agents/sdd-coder.md +1 -0
- package/.opencode/agents/sdd-orchestrator.md +1 -0
- package/.opencode/skills/sdd-methodology/SKILL.md +8 -0
- package/.opencode/skills/sdd-tester-quickstart/SKILL.md +6 -0
- package/.opencode/tools/sdd_testing.ts +93 -0
- package/bin/init.js +38 -1
- package/opencode.json +9 -0
- package/package.json +14 -4
- package/.opencode/active-brief.md +0 -38
- package/.opencode/docs/shadcn/agents/openai.yml +0 -5
- package/.opencode/docs/shadcn/assets/shadcn-small.png +0 -0
- package/.opencode/docs/shadcn/assets/shadcn.png +0 -0
- package/.opencode/docs/shadcn/cli.md +0 -290
- package/.opencode/docs/shadcn/customization.md +0 -209
- package/.opencode/docs/shadcn/evals/evals.json +0 -47
- package/.opencode/docs/shadcn/mcp.md +0 -105
- package/.opencode/docs/shadcn/registry.md +0 -277
- package/.opencode/docs/shadcn/rules/base-vs-radix.md +0 -306
- package/.opencode/docs/shadcn/rules/composition.md +0 -195
- package/.opencode/docs/shadcn/rules/forms.md +0 -192
- package/.opencode/docs/shadcn/rules/icons.md +0 -101
- package/.opencode/docs/shadcn/rules/styling.md +0 -162
- package/.opencode/oh-my-design/.agents/skills/google-analytics/EXAMPLES.md +0 -441
- package/.opencode/oh-my-design/.agents/skills/google-analytics/REFERENCE.md +0 -342
- package/.opencode/oh-my-design/.agents/skills/google-analytics/SKILL.md +0 -153
- package/.opencode/oh-my-design/.agents/skills/google-analytics/requirements.txt +0 -6
- package/.opencode/oh-my-design/.agents/skills/google-analytics/scripts/analyze.py +0 -459
- package/.opencode/oh-my-design/.agents/skills/google-analytics/scripts/ga_client.py +0 -345
- package/.opencode/oh-my-design/.claude/agents/omd-a11y-auditor.md +0 -98
- package/.opencode/oh-my-design/.claude/agents/omd-asset-curator.md +0 -99
- package/.opencode/oh-my-design/.claude/agents/omd-codex-image.md +0 -49
- package/.opencode/oh-my-design/.claude/agents/omd-critic.md +0 -142
- package/.opencode/oh-my-design/.claude/agents/omd-designer-review.md +0 -38
- package/.opencode/oh-my-design/.claude/agents/omd-final-qa.md +0 -40
- package/.opencode/oh-my-design/.claude/agents/omd-kr-writer.md +0 -35
- package/.opencode/oh-my-design/.claude/agents/omd-locale-adapter.md +0 -32
- package/.opencode/oh-my-design/.claude/agents/omd-master.md +0 -317
- package/.opencode/oh-my-design/.claude/agents/omd-microcopy.md +0 -64
- package/.opencode/oh-my-design/.claude/agents/omd-orchestrator.md +0 -34
- package/.opencode/oh-my-design/.claude/agents/omd-persona-tester.md +0 -119
- package/.opencode/oh-my-design/.claude/agents/omd-ui-junior.md +0 -130
- package/.opencode/oh-my-design/.claude/agents/omd-ux-researcher.md +0 -63
- package/.opencode/oh-my-design/.claude/data/opt-out-corpus.json +0 -141
- package/.opencode/oh-my-design/.claude/data/reference-fingerprints.json +0 -6142
- package/.opencode/oh-my-design/.claude/data/reference-tags.md +0 -104
- package/.opencode/oh-my-design/.claude/data/synonyms.json +0 -79
- package/.opencode/oh-my-design/.claude/data/vocabulary.json +0 -516
- package/.opencode/oh-my-design/.claude/hooks/lib/preferences-parser.cjs +0 -91
- package/.opencode/oh-my-design/.claude/hooks/lib/preferences-writer.cjs +0 -118
- package/.opencode/oh-my-design/.claude/hooks/post-edit-watch.cjs +0 -295
- package/.opencode/oh-my-design/.claude/hooks/session-end-foldin.cjs +0 -149
- package/.opencode/oh-my-design/.claude/hooks/session-state-loader.cjs +0 -113
- package/.opencode/oh-my-design/.claude/hooks/skill-activation.cjs +0 -108
- package/.opencode/oh-my-design/.claude/settings.json +0 -55
- package/.opencode/oh-my-design/.claude/skills/omd/SKILL.md +0 -133
- package/.opencode/oh-my-design/.claude/skills/omd-add-reference/SKILL.md +0 -381
- package/.opencode/oh-my-design/.claude/skills/omd-add-reference/batch-instructions.md +0 -111
- package/.opencode/oh-my-design/.claude/skills/omd-apply/SKILL.md +0 -87
- package/.opencode/oh-my-design/.claude/skills/omd-batch-launch/SKILL.md +0 -270
- package/.opencode/oh-my-design/.claude/skills/omd-codex-image/SKILL.md +0 -162
- package/.opencode/oh-my-design/.claude/skills/omd-component-harvest/SKILL.md +0 -59
- package/.opencode/oh-my-design/.claude/skills/omd-designer-review/SKILL.md +0 -146
- package/.opencode/oh-my-design/.claude/skills/omd-final-qa/SKILL.md +0 -153
- package/.opencode/oh-my-design/.claude/skills/omd-harness/SKILL.md +0 -234
- package/.opencode/oh-my-design/.claude/skills/omd-init/SKILL.md +0 -169
- package/.opencode/oh-my-design/.claude/skills/omd-kr-writer/SKILL.md +0 -229
- package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/SKILL.md +0 -53
- package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/compare.md +0 -30
- package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v1.md +0 -42
- package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v2.md +0 -34
- package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v3.md +0 -33
- package/.opencode/oh-my-design/.claude/skills/omd-lab-01-designmd-impact/playbooks/v4.md +0 -37
- package/.opencode/oh-my-design/.claude/skills/omd-lab-02-design-harness/SKILL.md +0 -131
- package/.opencode/oh-my-design/.claude/skills/omd-learn/SKILL.md +0 -83
- package/.opencode/oh-my-design/.claude/skills/omd-locale-adapter/SKILL.md +0 -124
- package/.opencode/oh-my-design/.claude/skills/omd-migrate/SKILL.md +0 -307
- package/.opencode/oh-my-design/.claude/skills/omd-orchestrator/SKILL.md +0 -124
- package/.opencode/oh-my-design/.claude/skills/omd-release-hygiene/SKILL.md +0 -113
- package/.opencode/oh-my-design/.claude/skills/omd-remember/SKILL.md +0 -46
- package/.opencode/oh-my-design/.claude/skills/omd-sync/SKILL.md +0 -40
- package/.opencode/oh-my-design/.claude/skills/omd-token-backfill/SKILL.md +0 -57
- package/.opencode/oh-my-design/.claude/skills/skill-rules.json +0 -84
- package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/agent-fidelity.md +0 -59
- package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/bug-report.md +0 -36
- package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/config.yml +0 -8
- package/.opencode/oh-my-design/.github/ISSUE_TEMPLATE/feature-request.md +0 -26
- package/.opencode/oh-my-design/.github/PULL_REQUEST_TEMPLATE.md +0 -134
- package/.opencode/oh-my-design/.github/assets/logo-bg.png +0 -0
- package/.opencode/oh-my-design/.github/workflows/release.yml +0 -55
- package/.opencode/oh-my-design/.husky/pre-commit +0 -23
- package/.opencode/oh-my-design/.mcp.json +0 -12
- package/.opencode/oh-my-design/AGENTS.md +0 -112
- package/.opencode/oh-my-design/CHANGELOG.md +0 -385
- package/.opencode/oh-my-design/LICENSE +0 -21
- package/.opencode/oh-my-design/README.ja.md +0 -74
- package/.opencode/oh-my-design/README.ko.md +0 -112
- package/.opencode/oh-my-design/README.md +0 -112
- package/.opencode/oh-my-design/README.zh-TW.md +0 -74
- package/.opencode/oh-my-design/agents/AGENT.md +0 -53
- package/.opencode/oh-my-design/agents/omd-a11y-auditor.md +0 -97
- package/.opencode/oh-my-design/agents/omd-asset-curator.md +0 -255
- package/.opencode/oh-my-design/agents/omd-codex-image.md +0 -49
- package/.opencode/oh-my-design/agents/omd-critic.md +0 -181
- package/.opencode/oh-my-design/agents/omd-designer-review.md +0 -38
- package/.opencode/oh-my-design/agents/omd-final-qa.md +0 -40
- package/.opencode/oh-my-design/agents/omd-kr-writer.md +0 -35
- package/.opencode/oh-my-design/agents/omd-locale-adapter.md +0 -32
- package/.opencode/oh-my-design/agents/omd-master.md +0 -559
- package/.opencode/oh-my-design/agents/omd-microcopy.md +0 -63
- package/.opencode/oh-my-design/agents/omd-orchestrator.md +0 -34
- package/.opencode/oh-my-design/agents/omd-persona-tester.md +0 -118
- package/.opencode/oh-my-design/agents/omd-ui-junior.md +0 -129
- package/.opencode/oh-my-design/agents/omd-ux-engineer.md +0 -267
- package/.opencode/oh-my-design/agents/omd-ux-researcher.md +0 -62
- package/.opencode/oh-my-design/agents/omd-ux-writer.md +0 -181
- package/.opencode/oh-my-design/bin/oh-my-design.ts +0 -77
- package/.opencode/oh-my-design/data/architecture-proposals/1.7.2-recommend-install-feedback.md +0 -614
- package/.opencode/oh-my-design/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +0 -189
- package/.opencode/oh-my-design/data/issues/2026-05-13-multi-surface-schema-rfc.md +0 -67
- package/.opencode/oh-my-design/data/opt-out-corpus.json +0 -141
- package/.opencode/oh-my-design/data/reference-audits/2026-05-13-kr10.md +0 -132
- package/.opencode/oh-my-design/data/reference-audits/2026-05-14-kr10.md +0 -72
- package/.opencode/oh-my-design/data/reference-audits/2026-05-15-kr10.md +0 -124
- package/.opencode/oh-my-design/data/reference-fingerprints.json +0 -6142
- package/.opencode/oh-my-design/data/reference-tags.md +0 -118
- package/.opencode/oh-my-design/data/synonyms.json +0 -79
- package/.opencode/oh-my-design/data/vocabulary.json +0 -516
- package/.opencode/oh-my-design/packages/mcp/README.md +0 -172
- package/.opencode/oh-my-design/packages/mcp/__tests__/smoke.test.ts +0 -64
- package/.opencode/oh-my-design/packages/mcp/data/.gitkeep +0 -0
- package/.opencode/oh-my-design/packages/mcp/scripts/sync-data.mjs +0 -38
- package/.opencode/oh-my-design/packages/mcp/src/data.ts +0 -178
- package/.opencode/oh-my-design/packages/mcp/src/index.ts +0 -58
- package/.opencode/oh-my-design/packages/mcp/src/prompts/design-from-ref.ts +0 -87
- package/.opencode/oh-my-design/packages/mcp/src/server.ts +0 -223
- package/.opencode/oh-my-design/packages/mcp/src/tools/get-design-md.ts +0 -44
- package/.opencode/oh-my-design/packages/mcp/src/tools/list-references.ts +0 -58
- package/.opencode/oh-my-design/packages/mcp/src/tools/search-by-vibe.ts +0 -114
- package/.opencode/oh-my-design/packages/mcp/tsconfig.json +0 -21
- package/.opencode/oh-my-design/packages/mcp/tsup.config.ts +0 -17
- package/.opencode/oh-my-design/packages/mcp/vitest.config.ts +0 -8
- package/.opencode/oh-my-design/scripts/bench/README.md +0 -72
- package/.opencode/oh-my-design/scripts/bench/score-init.mjs +0 -97
- package/.opencode/oh-my-design/scripts/bench/score-taste.mjs +0 -189
- package/.opencode/oh-my-design/scripts/check-release-hygiene.sh +0 -83
- package/.opencode/oh-my-design/scripts/context.cjs +0 -91
- package/.opencode/oh-my-design/scripts/ctx-prime.cjs +0 -266
- package/.opencode/oh-my-design/scripts/gen-llms-full.cjs +0 -143
- package/.opencode/oh-my-design/scripts/growth-snapshot.mjs +0 -59
- package/.opencode/oh-my-design/scripts/postinstall.cjs +0 -54
- package/.opencode/oh-my-design/scripts/smoke-md-twins.mjs +0 -98
- package/.opencode/oh-my-design/skills/claude-design/SKILL.md +0 -390
- package/.opencode/oh-my-design/skills/claude-design/references/claude-design-flow.md +0 -425
- package/.opencode/oh-my-design/skills/claude-design/references/codebase-analysis.md +0 -373
- package/.opencode/oh-my-design/skills/claude-design/scripts/analyze_codebase.py +0 -1369
- package/.opencode/oh-my-design/skills/claude-design/scripts/clickable_link.sh +0 -48
- package/.opencode/oh-my-design/skills/claude-design/scripts/collect_source.py +0 -178
- package/.opencode/oh-my-design/skills/claude-design/scripts/drive_claude_design.cjs +0 -378
- package/.opencode/oh-my-design/skills/claude-design/scripts/gather_references.py +0 -437
- package/.opencode/oh-my-design/skills/omd-apply/SKILL.md +0 -107
- package/.opencode/oh-my-design/skills/omd-asset-fetch/SKILL.md +0 -213
- package/.opencode/oh-my-design/skills/omd-codex-image/SKILL.md +0 -162
- package/.opencode/oh-my-design/skills/omd-designer-review/SKILL.md +0 -180
- package/.opencode/oh-my-design/skills/omd-experiment-gallery/SKILL.md +0 -164
- package/.opencode/oh-my-design/skills/omd-final-qa/SKILL.md +0 -182
- package/.opencode/oh-my-design/skills/omd-harness/SKILL.md +0 -726
- package/.opencode/oh-my-design/skills/omd-init/SKILL.md +0 -314
- package/.opencode/oh-my-design/skills/omd-kr-writer/SKILL.md +0 -299
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/SKILL.md +0 -129
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/playbooks/v1.md +0 -105
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/live-2026-04-27-water-app/feedback-log.md +0 -230
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/README.md +0 -46
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/founder/README.md +0 -7
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/junior-designer/src/components/Hero.tsx +0 -1
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/junior-designer/src/components/Project.tsx +0 -1
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Accordion.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Alert.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Avatar.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Badge.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Breadcrumb.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Button.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Card.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Combobox.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/DataTable.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Dialog.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Drawer.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Field.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Form.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Input.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Menu.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Modal.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Pagination.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Popover.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Select.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Sheet.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Spinner.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Tabs.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Toast.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/Tooltip.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/senior-dev/src/components/VirtualList.tsx +0 -4
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Alert.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Avatar.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Badge.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Button.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Card.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Input.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Modal.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Spinner.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Tabs.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/components/Toast.tsx +0 -3
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/src/styles/globals.css +0 -25
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/fixtures/vibe-coder/tailwind.config.ts +0 -28
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i1-findings.md +0 -51
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-F.md +0 -133
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-J.md +0 -171
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-S.md +0 -232
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-audit-V.md +0 -73
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/iterations/i2-consolidated.md +0 -69
- package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/postmortem.md +0 -128
- package/.opencode/oh-my-design/skills/omd-learn/SKILL.md +0 -121
- package/.opencode/oh-my-design/skills/omd-locale-adapter/SKILL.md +0 -124
- package/.opencode/oh-my-design/skills/omd-orchestrator/SKILL.md +0 -124
- package/.opencode/oh-my-design/skills/omd-reference-capture/SKILL.md +0 -722
- package/.opencode/oh-my-design/skills/omd-remember/SKILL.md +0 -122
- package/.opencode/oh-my-design/skills/omd-sync/SKILL.md +0 -162
- package/.opencode/oh-my-design/skills/omd-taste/SKILL.md +0 -79
- package/.opencode/oh-my-design/skills-lock.json +0 -10
- package/.opencode/oh-my-design/spec/components-schema.md +0 -179
- package/.opencode/oh-my-design/spec/migration-checklist.md +0 -148
- package/.opencode/oh-my-design/spec/migration-plan.md +0 -124
- package/.opencode/oh-my-design/spec/omd-v0.1.md +0 -382
- package/.opencode/oh-my-design/spec/regional-sources.yaml +0 -77
- package/.opencode/oh-my-design/spec/verification-pipeline.md +0 -154
- package/.opencode/oh-my-design/src/cli/install-skills.ts +0 -1116
- package/.opencode/oh-my-design/src/core/agent-detect.ts +0 -49
- package/.opencode/oh-my-design/test/README.md +0 -89
- package/.opencode/oh-my-design/test/scripts/check-backgrounds.ts +0 -10
- package/.opencode/oh-my-design/test/scripts/generate-preview.ts +0 -42
- package/.opencode/oh-my-design/test/unit/cli/install-skills.test.ts +0 -227
- package/.opencode/oh-my-design/test/unit/core/agent-detect.test.ts +0 -97
- package/.opencode/oh-my-design/test/unit/core/catalog-resolution-order.test.ts +0 -73
- package/.opencode/oh-my-design/test/unit/hooks/hooks.test.ts +0 -499
- package/.opencode/oh-my-design/tsconfig.json +0 -20
- package/.opencode/oh-my-design/tsup.config.ts +0 -12
- package/.opencode/oh-my-design/vitest.config.ts +0 -13
- package/.opencode/oh-my-design/web/.env.example +0 -21
- package/.opencode/oh-my-design/web/AGENTS.md +0 -5
- package/.opencode/oh-my-design/web/CLAUDE.md +0 -1
- package/.opencode/oh-my-design/web/README.md +0 -45
- package/.opencode/oh-my-design/web/__tests__/catalog-integrity.test.ts +0 -333
- package/.opencode/oh-my-design/web/components.json +0 -25
- package/.opencode/oh-my-design/web/docs/font-playground-analytics.md +0 -110
- package/.opencode/oh-my-design/web/eslint.config.mjs +0 -18
- package/.opencode/oh-my-design/web/next.config.ts +0 -31
- package/.opencode/oh-my-design/web/postcss.config.mjs +0 -7
- package/.opencode/oh-my-design/web/public/file.svg +0 -1
- package/.opencode/oh-my-design/web/public/globe.svg +0 -1
- package/.opencode/oh-my-design/web/public/llms-full.txt +0 -3149
- package/.opencode/oh-my-design/web/public/llms.ko.txt +0 -130
- package/.opencode/oh-my-design/web/public/llms.txt +0 -377
- package/.opencode/oh-my-design/web/public/logo-white.png +0 -0
- package/.opencode/oh-my-design/web/public/logo.png +0 -0
- package/.opencode/oh-my-design/web/public/next.svg +0 -1
- package/.opencode/oh-my-design/web/public/og-image.png +0 -0
- package/.opencode/oh-my-design/web/public/twitter-image.png +0 -0
- package/.opencode/oh-my-design/web/public/vercel.svg +0 -1
- package/.opencode/oh-my-design/web/public/window.svg +0 -1
- package/.opencode/oh-my-design/web/references/11st/.verification.md +0 -37
- package/.opencode/oh-my-design/web/references/11st/DESIGN.md +0 -400
- package/.opencode/oh-my-design/web/references/17live/DESIGN.md +0 -467
- package/.opencode/oh-my-design/web/references/29cm/DESIGN.md +0 -495
- package/.opencode/oh-my-design/web/references/29cm/_promo.json +0 -23
- package/.opencode/oh-my-design/web/references/29cm/_research.md +0 -103
- package/.opencode/oh-my-design/web/references/3o3/.verification.md +0 -73
- package/.opencode/oh-my-design/web/references/3o3/DESIGN.md +0 -454
- package/.opencode/oh-my-design/web/references/91app/.verification.md +0 -25
- package/.opencode/oh-my-design/web/references/91app/DESIGN.md +0 -182
- package/.opencode/oh-my-design/web/references/abema/.verification.md +0 -64
- package/.opencode/oh-my-design/web/references/abema/DESIGN.md +0 -535
- package/.opencode/oh-my-design/web/references/ably/DESIGN.md +0 -646
- package/.opencode/oh-my-design/web/references/ably/_promo.json +0 -18
- package/.opencode/oh-my-design/web/references/ably/_research.md +0 -120
- package/.opencode/oh-my-design/web/references/accupass/.verification.md +0 -66
- package/.opencode/oh-my-design/web/references/accupass/DESIGN.md +0 -494
- package/.opencode/oh-my-design/web/references/adobe/.verification.md +0 -63
- package/.opencode/oh-my-design/web/references/adobe/DESIGN.md +0 -458
- package/.opencode/oh-my-design/web/references/airbnb/.verification.md +0 -143
- package/.opencode/oh-my-design/web/references/airbnb/DESIGN.md +0 -639
- package/.opencode/oh-my-design/web/references/airbnb/README.md +0 -23
- package/.opencode/oh-my-design/web/references/airbnb/preview-dark.html +0 -234
- package/.opencode/oh-my-design/web/references/airbnb/preview.html +0 -233
- package/.opencode/oh-my-design/web/references/airtable/.verification.md +0 -136
- package/.opencode/oh-my-design/web/references/airtable/DESIGN.md +0 -314
- package/.opencode/oh-my-design/web/references/airtable/README.md +0 -23
- package/.opencode/oh-my-design/web/references/airtable/preview-dark.html +0 -165
- package/.opencode/oh-my-design/web/references/airtable/preview.html +0 -164
- package/.opencode/oh-my-design/web/references/alipay/DESIGN.md +0 -506
- package/.opencode/oh-my-design/web/references/amazingtalker/.verification.md +0 -38
- package/.opencode/oh-my-design/web/references/amazingtalker/DESIGN.md +0 -434
- package/.opencode/oh-my-design/web/references/appier/DESIGN.md +0 -465
- package/.opencode/oh-my-design/web/references/apple/.verification.md +0 -162
- package/.opencode/oh-my-design/web/references/apple/DESIGN.md +0 -613
- package/.opencode/oh-my-design/web/references/apple/README.md +0 -24
- package/.opencode/oh-my-design/web/references/apple/preview-dark.html +0 -420
- package/.opencode/oh-my-design/web/references/apple/preview.html +0 -414
- package/.opencode/oh-my-design/web/references/baemin/.verification.md +0 -132
- package/.opencode/oh-my-design/web/references/baemin/DESIGN.md +0 -578
- package/.opencode/oh-my-design/web/references/baemin/README.md +0 -19
- package/.opencode/oh-my-design/web/references/baemin/_research.md +0 -84
- package/.opencode/oh-my-design/web/references/banksalad/DESIGN.md +0 -688
- package/.opencode/oh-my-design/web/references/banksalad/_promo.json +0 -29
- package/.opencode/oh-my-design/web/references/banksalad/_research.md +0 -190
- package/.opencode/oh-my-design/web/references/bilibili/DESIGN.md +0 -471
- package/.opencode/oh-my-design/web/references/bithumb/.verification.md +0 -31
- package/.opencode/oh-my-design/web/references/bithumb/DESIGN.md +0 -208
- package/.opencode/oh-my-design/web/references/bmw/.verification.md +0 -114
- package/.opencode/oh-my-design/web/references/bmw/DESIGN.md +0 -360
- package/.opencode/oh-my-design/web/references/bmw/README.md +0 -23
- package/.opencode/oh-my-design/web/references/bmw/preview-dark.html +0 -211
- package/.opencode/oh-my-design/web/references/bmw/preview.html +0 -210
- package/.opencode/oh-my-design/web/references/brandi/.verification.md +0 -29
- package/.opencode/oh-my-design/web/references/brandi/DESIGN.md +0 -414
- package/.opencode/oh-my-design/web/references/bunjang/DESIGN.md +0 -374
- package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
- package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/fonts.json +0 -33
- package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/logo-icon.svg +0 -10
- package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/structure.json +0 -131
- package/.opencode/oh-my-design/web/references/bunjang/assets/_reference/tokens.json +0 -147
- package/.opencode/oh-my-design/web/references/cakeresume/.verification.md +0 -25
- package/.opencode/oh-my-design/web/references/cakeresume/DESIGN.md +0 -191
- package/.opencode/oh-my-design/web/references/cal/.verification.md +0 -145
- package/.opencode/oh-my-design/web/references/cal/DESIGN.md +0 -481
- package/.opencode/oh-my-design/web/references/cal/README.md +0 -23
- package/.opencode/oh-my-design/web/references/cal/preview-dark.html +0 -449
- package/.opencode/oh-my-design/web/references/cal/preview.html +0 -575
- package/.opencode/oh-my-design/web/references/catchtable/DESIGN.md +0 -341
- package/.opencode/oh-my-design/web/references/catchtable/_research.md +0 -54
- package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
- package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
- package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/fonts.json +0 -21
- package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/structure.json +0 -42
- package/.opencode/oh-my-design/web/references/catchtable/assets/_reference/tokens.json +0 -95
- package/.opencode/oh-my-design/web/references/cathay/.verification.md +0 -44
- package/.opencode/oh-my-design/web/references/cathay/DESIGN.md +0 -432
- package/.opencode/oh-my-design/web/references/channeltalk/DESIGN.md +0 -422
- package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
- package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/fonts.json +0 -53
- package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/structure.json +0 -47
- package/.opencode/oh-my-design/web/references/channeltalk/assets/_reference/tokens.json +0 -78
- package/.opencode/oh-my-design/web/references/class101/DESIGN.md +0 -484
- package/.opencode/oh-my-design/web/references/classting/.verification.md +0 -32
- package/.opencode/oh-my-design/web/references/classting/DESIGN.md +0 -292
- package/.opencode/oh-my-design/web/references/classum/DESIGN.md +0 -279
- package/.opencode/oh-my-design/web/references/classum/assets/_reference/.live-inspect-proof.json +0 -72
- package/.opencode/oh-my-design/web/references/classum/assets/_reference/fonts.json +0 -20
- package/.opencode/oh-my-design/web/references/classum/assets/_reference/structure.json +0 -21
- package/.opencode/oh-my-design/web/references/classum/assets/_reference/tokens.json +0 -56
- package/.opencode/oh-my-design/web/references/claude/.verification.md +0 -106
- package/.opencode/oh-my-design/web/references/claude/DESIGN.md +0 -561
- package/.opencode/oh-my-design/web/references/claude/README.md +0 -24
- package/.opencode/oh-my-design/web/references/claude/preview-dark.html +0 -803
- package/.opencode/oh-my-design/web/references/claude/preview.html +0 -826
- package/.opencode/oh-my-design/web/references/clay/.verification.md +0 -129
- package/.opencode/oh-my-design/web/references/clay/DESIGN.md +0 -454
- package/.opencode/oh-my-design/web/references/clay/README.md +0 -23
- package/.opencode/oh-my-design/web/references/clay/preview-dark.html +0 -316
- package/.opencode/oh-my-design/web/references/clay/preview.html +0 -315
- package/.opencode/oh-my-design/web/references/clickhouse/.verification.md +0 -132
- package/.opencode/oh-my-design/web/references/clickhouse/DESIGN.md +0 -424
- package/.opencode/oh-my-design/web/references/clickhouse/README.md +0 -24
- package/.opencode/oh-my-design/web/references/clickhouse/preview-dark.html +0 -834
- package/.opencode/oh-my-design/web/references/clickhouse/preview.html +0 -786
- package/.opencode/oh-my-design/web/references/cloudflare/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/cloudflare/DESIGN.md +0 -637
- package/.opencode/oh-my-design/web/references/cohere/.verification.md +0 -136
- package/.opencode/oh-my-design/web/references/cohere/DESIGN.md +0 -409
- package/.opencode/oh-my-design/web/references/cohere/README.md +0 -24
- package/.opencode/oh-my-design/web/references/cohere/preview-dark.html +0 -803
- package/.opencode/oh-my-design/web/references/cohere/preview.html +0 -807
- package/.opencode/oh-my-design/web/references/coinbase/.verification.md +0 -116
- package/.opencode/oh-my-design/web/references/coinbase/DESIGN.md +0 -353
- package/.opencode/oh-my-design/web/references/coinbase/README.md +0 -23
- package/.opencode/oh-my-design/web/references/coinbase/preview-dark.html +0 -164
- package/.opencode/oh-my-design/web/references/coinbase/preview.html +0 -163
- package/.opencode/oh-my-design/web/references/coinone/.verification.md +0 -38
- package/.opencode/oh-my-design/web/references/coinone/DESIGN.md +0 -257
- package/.opencode/oh-my-design/web/references/composio/.verification.md +0 -143
- package/.opencode/oh-my-design/web/references/composio/DESIGN.md +0 -441
- package/.opencode/oh-my-design/web/references/composio/README.md +0 -24
- package/.opencode/oh-my-design/web/references/composio/preview-dark.html +0 -958
- package/.opencode/oh-my-design/web/references/composio/preview.html +0 -933
- package/.opencode/oh-my-design/web/references/cookpad/DESIGN.md +0 -394
- package/.opencode/oh-my-design/web/references/coupang/.verification.md +0 -141
- package/.opencode/oh-my-design/web/references/coupang/DESIGN.md +0 -557
- package/.opencode/oh-my-design/web/references/cursor/.verification.md +0 -141
- package/.opencode/oh-my-design/web/references/cursor/DESIGN.md +0 -460
- package/.opencode/oh-my-design/web/references/cursor/README.md +0 -24
- package/.opencode/oh-my-design/web/references/cursor/preview-dark.html +0 -393
- package/.opencode/oh-my-design/web/references/cursor/preview.html +0 -383
- package/.opencode/oh-my-design/web/references/dabang/DESIGN.md +0 -267
- package/.opencode/oh-my-design/web/references/dabang/assets/_reference/.live-inspect-proof.json +0 -145
- package/.opencode/oh-my-design/web/references/dabang/assets/_reference/fonts.json +0 -22
- package/.opencode/oh-my-design/web/references/dabang/assets/_reference/raw-capture-map.json +0 -718
- package/.opencode/oh-my-design/web/references/dabang/assets/_reference/raw-capture.json +0 -1125
- package/.opencode/oh-my-design/web/references/dabang/assets/_reference/structure.json +0 -53
- package/.opencode/oh-my-design/web/references/dabang/assets/_reference/tokens.json +0 -130
- package/.opencode/oh-my-design/web/references/danawa/.verification.md +0 -60
- package/.opencode/oh-my-design/web/references/danawa/DESIGN.md +0 -477
- package/.opencode/oh-my-design/web/references/dcard/.verification.md +0 -118
- package/.opencode/oh-my-design/web/references/dcard/DESIGN.md +0 -633
- package/.opencode/oh-my-design/web/references/dcard/README.md +0 -12
- package/.opencode/oh-my-design/web/references/dcard/_research/forum-1440px.png +0 -0
- package/.opencode/oh-my-design/web/references/dcard/_research.md +0 -133
- package/.opencode/oh-my-design/web/references/dell/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/dell/DESIGN.md +0 -636
- package/.opencode/oh-my-design/web/references/devsisters/.verification.md +0 -32
- package/.opencode/oh-my-design/web/references/devsisters/DESIGN.md +0 -282
- package/.opencode/oh-my-design/web/references/discord/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/discord/DESIGN.md +0 -604
- package/.opencode/oh-my-design/web/references/dji/DESIGN.md +0 -454
- package/.opencode/oh-my-design/web/references/drnow/.verification.md +0 -41
- package/.opencode/oh-my-design/web/references/drnow/DESIGN.md +0 -383
- package/.opencode/oh-my-design/web/references/dropbox/.verification.md +0 -61
- package/.opencode/oh-my-design/web/references/dropbox/DESIGN.md +0 -445
- package/.opencode/oh-my-design/web/references/duolingo/.verification.md +0 -20
- package/.opencode/oh-my-design/web/references/duolingo/DESIGN.md +0 -563
- package/.opencode/oh-my-design/web/references/elevenlabs/.verification.md +0 -128
- package/.opencode/oh-my-design/web/references/elevenlabs/DESIGN.md +0 -415
- package/.opencode/oh-my-design/web/references/elevenlabs/README.md +0 -23
- package/.opencode/oh-my-design/web/references/elevenlabs/preview-dark.html +0 -252
- package/.opencode/oh-my-design/web/references/elevenlabs/preview.html +0 -251
- package/.opencode/oh-my-design/web/references/expo/.verification.md +0 -141
- package/.opencode/oh-my-design/web/references/expo/DESIGN.md +0 -412
- package/.opencode/oh-my-design/web/references/expo/README.md +0 -24
- package/.opencode/oh-my-design/web/references/expo/preview-dark.html +0 -533
- package/.opencode/oh-my-design/web/references/expo/preview.html +0 -533
- package/.opencode/oh-my-design/web/references/fastcampus/DESIGN.md +0 -529
- package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
- package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/fonts.json +0 -14
- package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/structure.json +0 -30
- package/.opencode/oh-my-design/web/references/fastcampus/assets/_reference/tokens.json +0 -109
- package/.opencode/oh-my-design/web/references/ferrari/.verification.md +0 -119
- package/.opencode/oh-my-design/web/references/ferrari/DESIGN.md +0 -447
- package/.opencode/oh-my-design/web/references/ferrari/README.md +0 -23
- package/.opencode/oh-my-design/web/references/ferrari/preview-dark.html +0 -1162
- package/.opencode/oh-my-design/web/references/ferrari/preview.html +0 -1122
- package/.opencode/oh-my-design/web/references/figma/.verification.md +0 -206
- package/.opencode/oh-my-design/web/references/figma/DESIGN.md +0 -534
- package/.opencode/oh-my-design/web/references/figma/README.md +0 -24
- package/.opencode/oh-my-design/web/references/figma/preview-dark.html +0 -822
- package/.opencode/oh-my-design/web/references/figma/preview.html +0 -832
- package/.opencode/oh-my-design/web/references/finda/.verification.md +0 -33
- package/.opencode/oh-my-design/web/references/finda/DESIGN.md +0 -413
- package/.opencode/oh-my-design/web/references/firstory/.verification.md +0 -70
- package/.opencode/oh-my-design/web/references/firstory/DESIGN.md +0 -487
- package/.opencode/oh-my-design/web/references/flex/DESIGN.md +0 -356
- package/.opencode/oh-my-design/web/references/flex/_research.md +0 -49
- package/.opencode/oh-my-design/web/references/flex/assets/_reference/.live-inspect-proof.json +0 -192
- package/.opencode/oh-my-design/web/references/flex/assets/_reference/.raw-inspect.json +0 -873
- package/.opencode/oh-my-design/web/references/flex/assets/_reference/fonts.json +0 -17
- package/.opencode/oh-my-design/web/references/flex/assets/_reference/structure.json +0 -58
- package/.opencode/oh-my-design/web/references/flex/assets/_reference/tokens.json +0 -75
- package/.opencode/oh-my-design/web/references/flo/.verification.md +0 -33
- package/.opencode/oh-my-design/web/references/flo/DESIGN.md +0 -349
- package/.opencode/oh-my-design/web/references/framer/.verification.md +0 -147
- package/.opencode/oh-my-design/web/references/framer/DESIGN.md +0 -431
- package/.opencode/oh-my-design/web/references/framer/README.md +0 -23
- package/.opencode/oh-my-design/web/references/framer/preview-dark.html +0 -902
- package/.opencode/oh-my-design/web/references/framer/preview.html +0 -883
- package/.opencode/oh-my-design/web/references/freee/.verification.md +0 -145
- package/.opencode/oh-my-design/web/references/freee/DESIGN.md +0 -620
- package/.opencode/oh-my-design/web/references/freee/README.md +0 -12
- package/.opencode/oh-my-design/web/references/freee/_research/vibes-storybook-1440px.png +0 -0
- package/.opencode/oh-my-design/web/references/freee/_research.md +0 -116
- package/.opencode/oh-my-design/web/references/fugle/.verification.md +0 -40
- package/.opencode/oh-my-design/web/references/fugle/DESIGN.md +0 -290
- package/.opencode/oh-my-design/web/references/funnow/.verification.md +0 -62
- package/.opencode/oh-my-design/web/references/funnow/DESIGN.md +0 -431
- package/.opencode/oh-my-design/web/references/gangnamunni/DESIGN.md +0 -677
- package/.opencode/oh-my-design/web/references/gangnamunni/_promo.json +0 -26
- package/.opencode/oh-my-design/web/references/gangnamunni/_research.md +0 -113
- package/.opencode/oh-my-design/web/references/genie/.verification.md +0 -29
- package/.opencode/oh-my-design/web/references/genie/DESIGN.md +0 -415
- package/.opencode/oh-my-design/web/references/github/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/github/DESIGN.md +0 -727
- package/.opencode/oh-my-design/web/references/gmarket/DESIGN.md +0 -534
- package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
- package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/fonts.json +0 -41
- package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
- package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/raw-capture-home.json +0 -3675
- package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/structure.json +0 -65
- package/.opencode/oh-my-design/web/references/gmarket/assets/_reference/tokens.json +0 -210
- package/.opencode/oh-my-design/web/references/gogolook/.verification.md +0 -31
- package/.opencode/oh-my-design/web/references/gogolook/DESIGN.md +0 -155
- package/.opencode/oh-my-design/web/references/gogoro/DESIGN.md +0 -441
- package/.opencode/oh-my-design/web/references/google/.verification.md +0 -61
- package/.opencode/oh-my-design/web/references/google/DESIGN.md +0 -499
- package/.opencode/oh-my-design/web/references/greenvines/.verification.md +0 -72
- package/.opencode/oh-my-design/web/references/greenvines/DESIGN.md +0 -454
- package/.opencode/oh-my-design/web/references/greeting/.verification.md +0 -64
- package/.opencode/oh-my-design/web/references/greeting/DESIGN.md +0 -462
- package/.opencode/oh-my-design/web/references/grip/.verification.md +0 -36
- package/.opencode/oh-my-design/web/references/grip/DESIGN.md +0 -289
- package/.opencode/oh-my-design/web/references/hahow/.verification.md +0 -31
- package/.opencode/oh-my-design/web/references/hahow/DESIGN.md +0 -184
- package/.opencode/oh-my-design/web/references/hashicorp/.verification.md +0 -142
- package/.opencode/oh-my-design/web/references/hashicorp/DESIGN.md +0 -411
- package/.opencode/oh-my-design/web/references/hashicorp/README.md +0 -24
- package/.opencode/oh-my-design/web/references/hashicorp/preview-dark.html +0 -1202
- package/.opencode/oh-my-design/web/references/hashicorp/preview.html +0 -1193
- package/.opencode/oh-my-design/web/references/hogangnono/.verification.md +0 -33
- package/.opencode/oh-my-design/web/references/hogangnono/DESIGN.md +0 -349
- package/.opencode/oh-my-design/web/references/hp/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/hp/DESIGN.md +0 -563
- package/.opencode/oh-my-design/web/references/hyperconnect/.verification.md +0 -40
- package/.opencode/oh-my-design/web/references/hyperconnect/DESIGN.md +0 -393
- package/.opencode/oh-my-design/web/references/hyundaicard/.verification.md +0 -25
- package/.opencode/oh-my-design/web/references/hyundaicard/DESIGN.md +0 -201
- package/.opencode/oh-my-design/web/references/ibm/.verification.md +0 -102
- package/.opencode/oh-my-design/web/references/ibm/DESIGN.md +0 -464
- package/.opencode/oh-my-design/web/references/ibm/README.md +0 -24
- package/.opencode/oh-my-design/web/references/ibm/preview-dark.html +0 -443
- package/.opencode/oh-my-design/web/references/ibm/preview.html +0 -428
- package/.opencode/oh-my-design/web/references/ichef/DESIGN.md +0 -455
- package/.opencode/oh-my-design/web/references/ikala/.verification.md +0 -35
- package/.opencode/oh-my-design/web/references/ikala/DESIGN.md +0 -400
- package/.opencode/oh-my-design/web/references/imweb/.verification.md +0 -61
- package/.opencode/oh-my-design/web/references/imweb/DESIGN.md +0 -460
- package/.opencode/oh-my-design/web/references/inflearn/DESIGN.md +0 -453
- package/.opencode/oh-my-design/web/references/inflearn/_promo.json +0 -29
- package/.opencode/oh-my-design/web/references/inflearn/_research.md +0 -85
- package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
- package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
- package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/fonts.json +0 -41
- package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/structure.json +0 -110
- package/.opencode/oh-my-design/web/references/inflearn/assets/_reference/tokens.json +0 -54
- package/.opencode/oh-my-design/web/references/intercom/.verification.md +0 -144
- package/.opencode/oh-my-design/web/references/intercom/DESIGN.md +0 -271
- package/.opencode/oh-my-design/web/references/intercom/README.md +0 -23
- package/.opencode/oh-my-design/web/references/intercom/preview-dark.html +0 -185
- package/.opencode/oh-my-design/web/references/intercom/preview.html +0 -184
- package/.opencode/oh-my-design/web/references/jandi/.verification.md +0 -26
- package/.opencode/oh-my-design/web/references/jandi/DESIGN.md +0 -382
- package/.opencode/oh-my-design/web/references/jkopay/.verification.md +0 -32
- package/.opencode/oh-my-design/web/references/jkopay/DESIGN.md +0 -283
- package/.opencode/oh-my-design/web/references/jobkorea/.verification.md +0 -30
- package/.opencode/oh-my-design/web/references/jobkorea/DESIGN.md +0 -349
- package/.opencode/oh-my-design/web/references/jumpit/DESIGN.md +0 -403
- package/.opencode/oh-my-design/web/references/jumpit/_research.md +0 -119
- package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
- package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/fonts.json +0 -20
- package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/structure.json +0 -66
- package/.opencode/oh-my-design/web/references/jumpit/assets/_reference/tokens.json +0 -108
- package/.opencode/oh-my-design/web/references/kakao/.verification.md +0 -137
- package/.opencode/oh-my-design/web/references/kakao/DESIGN.md +0 -568
- package/.opencode/oh-my-design/web/references/kakao/README.md +0 -18
- package/.opencode/oh-my-design/web/references/kakao/_research.md +0 -98
- package/.opencode/oh-my-design/web/references/kakaobank/.verification.md +0 -133
- package/.opencode/oh-my-design/web/references/kakaobank/DESIGN.md +0 -602
- package/.opencode/oh-my-design/web/references/kakaopay/DESIGN.md +0 -603
- package/.opencode/oh-my-design/web/references/kakaopay/_promo.json +0 -22
- package/.opencode/oh-my-design/web/references/kakaopay/_research.md +0 -84
- package/.opencode/oh-my-design/web/references/kakaot/DESIGN.md +0 -507
- package/.opencode/oh-my-design/web/references/karrot/.verification.md +0 -143
- package/.opencode/oh-my-design/web/references/karrot/DESIGN.md +0 -494
- package/.opencode/oh-my-design/web/references/karrot/README.md +0 -18
- package/.opencode/oh-my-design/web/references/karrot/_research.md +0 -57
- package/.opencode/oh-my-design/web/references/kbank/DESIGN.md +0 -252
- package/.opencode/oh-my-design/web/references/kbank/assets/_reference/.live-inspect-proof.json +0 -215
- package/.opencode/oh-my-design/web/references/kbank/assets/_reference/.live-inspect-raw.json +0 -1
- package/.opencode/oh-my-design/web/references/kbank/assets/_reference/fonts.json +0 -20
- package/.opencode/oh-my-design/web/references/kbank/assets/_reference/structure.json +0 -151
- package/.opencode/oh-my-design/web/references/kbank/assets/_reference/tokens.json +0 -101
- package/.opencode/oh-my-design/web/references/kdan/.verification.md +0 -30
- package/.opencode/oh-my-design/web/references/kdan/DESIGN.md +0 -193
- package/.opencode/oh-my-design/web/references/kintone/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/kintone/DESIGN.md +0 -586
- package/.opencode/oh-my-design/web/references/kkbox/.verification.md +0 -27
- package/.opencode/oh-my-design/web/references/kkbox/DESIGN.md +0 -136
- package/.opencode/oh-my-design/web/references/kkday/DESIGN.md +0 -470
- package/.opencode/oh-my-design/web/references/kmong/.verification.md +0 -30
- package/.opencode/oh-my-design/web/references/kmong/DESIGN.md +0 -427
- package/.opencode/oh-my-design/web/references/krafton/.verification.md +0 -38
- package/.opencode/oh-my-design/web/references/krafton/DESIGN.md +0 -267
- package/.opencode/oh-my-design/web/references/kraken/.verification.md +0 -143
- package/.opencode/oh-my-design/web/references/kraken/DESIGN.md +0 -277
- package/.opencode/oh-my-design/web/references/kraken/README.md +0 -23
- package/.opencode/oh-my-design/web/references/kraken/preview-dark.html +0 -169
- package/.opencode/oh-my-design/web/references/kraken/preview.html +0 -168
- package/.opencode/oh-my-design/web/references/krds/.verification.md +0 -373
- package/.opencode/oh-my-design/web/references/krds/DESIGN.md +0 -1060
- package/.opencode/oh-my-design/web/references/kream/DESIGN.md +0 -432
- package/.opencode/oh-my-design/web/references/kream/assets/_reference/.live-inspect-proof.json +0 -289
- package/.opencode/oh-my-design/web/references/kream/assets/_reference/fonts.json +0 -26
- package/.opencode/oh-my-design/web/references/kream/assets/_reference/structure.json +0 -56
- package/.opencode/oh-my-design/web/references/kream/assets/_reference/tokens.json +0 -154
- package/.opencode/oh-my-design/web/references/kurly/.verification.md +0 -126
- package/.opencode/oh-my-design/web/references/kurly/DESIGN.md +0 -620
- package/.opencode/oh-my-design/web/references/laftel/.verification.md +0 -39
- package/.opencode/oh-my-design/web/references/laftel/DESIGN.md +0 -293
- package/.opencode/oh-my-design/web/references/lamborghini/.verification.md +0 -127
- package/.opencode/oh-my-design/web/references/lamborghini/DESIGN.md +0 -430
- package/.opencode/oh-my-design/web/references/lamborghini/README.md +0 -23
- package/.opencode/oh-my-design/web/references/lamborghini/preview-dark.html +0 -303
- package/.opencode/oh-my-design/web/references/lamborghini/preview.html +0 -381
- package/.opencode/oh-my-design/web/references/laundrygo/.verification.md +0 -60
- package/.opencode/oh-my-design/web/references/laundrygo/DESIGN.md +0 -434
- package/.opencode/oh-my-design/web/references/layerx/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/layerx/DESIGN.md +0 -615
- package/.opencode/oh-my-design/web/references/lezhin/.verification.md +0 -47
- package/.opencode/oh-my-design/web/references/lezhin/DESIGN.md +0 -348
- package/.opencode/oh-my-design/web/references/line/.verification.md +0 -137
- package/.opencode/oh-my-design/web/references/line/DESIGN.md +0 -467
- package/.opencode/oh-my-design/web/references/line/README.md +0 -12
- package/.opencode/oh-my-design/web/references/line/_research/home-1440px.png +0 -0
- package/.opencode/oh-my-design/web/references/line/_research.md +0 -65
- package/.opencode/oh-my-design/web/references/linear.app/.verification.md +0 -143
- package/.opencode/oh-my-design/web/references/linear.app/DESIGN.md +0 -642
- package/.opencode/oh-my-design/web/references/linear.app/README.md +0 -24
- package/.opencode/oh-my-design/web/references/linear.app/preview-dark.html +0 -383
- package/.opencode/oh-my-design/web/references/linear.app/preview.html +0 -373
- package/.opencode/oh-my-design/web/references/loom/.verification.md +0 -31
- package/.opencode/oh-my-design/web/references/loom/DESIGN.md +0 -396
- package/.opencode/oh-my-design/web/references/lovable/.verification.md +0 -154
- package/.opencode/oh-my-design/web/references/lovable/DESIGN.md +0 -423
- package/.opencode/oh-my-design/web/references/lovable/README.md +0 -24
- package/.opencode/oh-my-design/web/references/lovable/preview-dark.html +0 -349
- package/.opencode/oh-my-design/web/references/lovable/preview.html +0 -348
- package/.opencode/oh-my-design/web/references/lunit/DESIGN.md +0 -296
- package/.opencode/oh-my-design/web/references/lunit/assets/_reference/.live-inspect-proof.json +0 -249
- package/.opencode/oh-my-design/web/references/lunit/assets/_reference/fonts.json +0 -24
- package/.opencode/oh-my-design/web/references/lunit/assets/_reference/structure.json +0 -162
- package/.opencode/oh-my-design/web/references/lunit/assets/_reference/tokens.json +0 -115
- package/.opencode/oh-my-design/web/references/mastercard/.verification.md +0 -19
- package/.opencode/oh-my-design/web/references/mastercard/DESIGN.md +0 -587
- package/.opencode/oh-my-design/web/references/meituan/DESIGN.md +0 -466
- package/.opencode/oh-my-design/web/references/melon/.verification.md +0 -27
- package/.opencode/oh-my-design/web/references/melon/DESIGN.md +0 -179
- package/.opencode/oh-my-design/web/references/mercari/.verification.md +0 -155
- package/.opencode/oh-my-design/web/references/mercari/DESIGN.md +0 -514
- package/.opencode/oh-my-design/web/references/mercari/README.md +0 -12
- package/.opencode/oh-my-design/web/references/mercari/_research/home-1440px.png +0 -0
- package/.opencode/oh-my-design/web/references/mercari/_research.md +0 -137
- package/.opencode/oh-my-design/web/references/mercury/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/mercury/DESIGN.md +0 -589
- package/.opencode/oh-my-design/web/references/meta/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/meta/DESIGN.md +0 -615
- package/.opencode/oh-my-design/web/references/microsoft/.verification.md +0 -62
- package/.opencode/oh-my-design/web/references/microsoft/DESIGN.md +0 -508
- package/.opencode/oh-my-design/web/references/millie/DESIGN.md +0 -584
- package/.opencode/oh-my-design/web/references/minimax/.verification.md +0 -135
- package/.opencode/oh-my-design/web/references/minimax/DESIGN.md +0 -396
- package/.opencode/oh-my-design/web/references/minimax/README.md +0 -24
- package/.opencode/oh-my-design/web/references/minimax/preview-dark.html +0 -1262
- package/.opencode/oh-my-design/web/references/minimax/preview.html +0 -1248
- package/.opencode/oh-my-design/web/references/mintlify/.verification.md +0 -160
- package/.opencode/oh-my-design/web/references/mintlify/DESIGN.md +0 -472
- package/.opencode/oh-my-design/web/references/mintlify/README.md +0 -24
- package/.opencode/oh-my-design/web/references/mintlify/preview-dark.html +0 -409
- package/.opencode/oh-my-design/web/references/mintlify/preview.html +0 -398
- package/.opencode/oh-my-design/web/references/miricanvas/.verification.md +0 -61
- package/.opencode/oh-my-design/web/references/miricanvas/DESIGN.md +0 -464
- package/.opencode/oh-my-design/web/references/miro/.verification.md +0 -138
- package/.opencode/oh-my-design/web/references/miro/DESIGN.md +0 -319
- package/.opencode/oh-my-design/web/references/miro/README.md +0 -23
- package/.opencode/oh-my-design/web/references/miro/preview-dark.html +0 -174
- package/.opencode/oh-my-design/web/references/miro/preview.html +0 -173
- package/.opencode/oh-my-design/web/references/mistral.ai/.verification.md +0 -146
- package/.opencode/oh-my-design/web/references/mistral.ai/DESIGN.md +0 -390
- package/.opencode/oh-my-design/web/references/mistral.ai/README.md +0 -24
- package/.opencode/oh-my-design/web/references/mistral.ai/preview-dark.html +0 -806
- package/.opencode/oh-my-design/web/references/mistral.ai/preview.html +0 -805
- package/.opencode/oh-my-design/web/references/modusign/.verification.md +0 -58
- package/.opencode/oh-my-design/web/references/modusign/DESIGN.md +0 -524
- package/.opencode/oh-my-design/web/references/momoshop/.verification.md +0 -36
- package/.opencode/oh-my-design/web/references/momoshop/DESIGN.md +0 -322
- package/.opencode/oh-my-design/web/references/money-forward/DESIGN.md +0 -443
- package/.opencode/oh-my-design/web/references/mongodb/.verification.md +0 -145
- package/.opencode/oh-my-design/web/references/mongodb/DESIGN.md +0 -401
- package/.opencode/oh-my-design/web/references/mongodb/README.md +0 -23
- package/.opencode/oh-my-design/web/references/mongodb/preview-dark.html +0 -260
- package/.opencode/oh-my-design/web/references/mongodb/preview.html +0 -259
- package/.opencode/oh-my-design/web/references/muji/.verification.md +0 -20
- package/.opencode/oh-my-design/web/references/muji/DESIGN.md +0 -605
- package/.opencode/oh-my-design/web/references/musinsa/.verification.md +0 -59
- package/.opencode/oh-my-design/web/references/musinsa/DESIGN.md +0 -593
- package/.opencode/oh-my-design/web/references/mustit/.verification.md +0 -37
- package/.opencode/oh-my-design/web/references/mustit/DESIGN.md +0 -328
- package/.opencode/oh-my-design/web/references/myrealtrip/DESIGN.md +0 -494
- package/.opencode/oh-my-design/web/references/naver/.verification.md +0 -134
- package/.opencode/oh-my-design/web/references/naver/DESIGN.md +0 -582
- package/.opencode/oh-my-design/web/references/naverwebtoon/DESIGN.md +0 -477
- package/.opencode/oh-my-design/web/references/netflix/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/netflix/DESIGN.md +0 -572
- package/.opencode/oh-my-design/web/references/nexon/.verification.md +0 -27
- package/.opencode/oh-my-design/web/references/nexon/DESIGN.md +0 -389
- package/.opencode/oh-my-design/web/references/nhncloud/.verification.md +0 -23
- package/.opencode/oh-my-design/web/references/nhncloud/DESIGN.md +0 -207
- package/.opencode/oh-my-design/web/references/nike/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/nike/DESIGN.md +0 -588
- package/.opencode/oh-my-design/web/references/note/DESIGN.md +0 -346
- package/.opencode/oh-my-design/web/references/notion/.verification.md +0 -141
- package/.opencode/oh-my-design/web/references/notion/DESIGN.md +0 -557
- package/.opencode/oh-my-design/web/references/notion/README.md +0 -24
- package/.opencode/oh-my-design/web/references/notion/preview-dark.html +0 -372
- package/.opencode/oh-my-design/web/references/notion/preview.html +0 -364
- package/.opencode/oh-my-design/web/references/nvidia/.verification.md +0 -127
- package/.opencode/oh-my-design/web/references/nvidia/DESIGN.md +0 -550
- package/.opencode/oh-my-design/web/references/nvidia/README.md +0 -24
- package/.opencode/oh-my-design/web/references/nvidia/_research.md +0 -68
- package/.opencode/oh-my-design/web/references/nvidia/preview-dark.html +0 -374
- package/.opencode/oh-my-design/web/references/nvidia/preview.html +0 -366
- package/.opencode/oh-my-design/web/references/ohouse/.verification.md +0 -87
- package/.opencode/oh-my-design/web/references/ohouse/DESIGN.md +0 -635
- package/.opencode/oh-my-design/web/references/oliveyoung/DESIGN.md +0 -407
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_best_capture.json +0 -644
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_detail_capture.json +0 -447
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_main.html +0 -419
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_main_capture.json +0 -1126
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/_search_capture.json +0 -912
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/fonts.json +0 -20
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/structure.json +0 -91
- package/.opencode/oh-my-design/web/references/oliveyoung/assets/_reference/tokens.json +0 -79
- package/.opencode/oh-my-design/web/references/ollama/.verification.md +0 -138
- package/.opencode/oh-my-design/web/references/ollama/DESIGN.md +0 -393
- package/.opencode/oh-my-design/web/references/ollama/README.md +0 -24
- package/.opencode/oh-my-design/web/references/ollama/preview-dark.html +0 -678
- package/.opencode/oh-my-design/web/references/ollama/preview.html +0 -678
- package/.opencode/oh-my-design/web/references/omnichat/.verification.md +0 -74
- package/.opencode/oh-my-design/web/references/omnichat/DESIGN.md +0 -499
- package/.opencode/oh-my-design/web/references/openai/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/openai/DESIGN.md +0 -641
- package/.opencode/oh-my-design/web/references/opencode.ai/.verification.md +0 -136
- package/.opencode/oh-my-design/web/references/opencode.ai/DESIGN.md +0 -425
- package/.opencode/oh-my-design/web/references/opencode.ai/README.md +0 -24
- package/.opencode/oh-my-design/web/references/opencode.ai/preview-dark.html +0 -366
- package/.opencode/oh-my-design/web/references/opencode.ai/preview.html +0 -357
- package/.opencode/oh-my-design/web/references/payco/.verification.md +0 -28
- package/.opencode/oh-my-design/web/references/payco/DESIGN.md +0 -267
- package/.opencode/oh-my-design/web/references/paypay/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/paypay/DESIGN.md +0 -656
- package/.opencode/oh-my-design/web/references/pchome/.verification.md +0 -38
- package/.opencode/oh-my-design/web/references/pchome/DESIGN.md +0 -439
- package/.opencode/oh-my-design/web/references/perplexity/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/perplexity/DESIGN.md +0 -546
- package/.opencode/oh-my-design/web/references/piccollage/.verification.md +0 -34
- package/.opencode/oh-my-design/web/references/piccollage/DESIGN.md +0 -320
- package/.opencode/oh-my-design/web/references/pinkoi/.verification.md +0 -147
- package/.opencode/oh-my-design/web/references/pinkoi/DESIGN.md +0 -639
- package/.opencode/oh-my-design/web/references/pinkoi/README.md +0 -12
- package/.opencode/oh-my-design/web/references/pinkoi/_research/browse-1440px.png +0 -0
- package/.opencode/oh-my-design/web/references/pinkoi/_research.md +0 -167
- package/.opencode/oh-my-design/web/references/pinterest/.verification.md +0 -141
- package/.opencode/oh-my-design/web/references/pinterest/DESIGN.md +0 -366
- package/.opencode/oh-my-design/web/references/pinterest/README.md +0 -23
- package/.opencode/oh-my-design/web/references/pinterest/preview-dark.html +0 -233
- package/.opencode/oh-my-design/web/references/pinterest/preview.html +0 -232
- package/.opencode/oh-my-design/web/references/pixiv/.verification.md +0 -20
- package/.opencode/oh-my-design/web/references/pixiv/DESIGN.md +0 -613
- package/.opencode/oh-my-design/web/references/pixnet/.verification.md +0 -31
- package/.opencode/oh-my-design/web/references/pixnet/DESIGN.md +0 -430
- package/.opencode/oh-my-design/web/references/posthog/.verification.md +0 -159
- package/.opencode/oh-my-design/web/references/posthog/DESIGN.md +0 -480
- package/.opencode/oh-my-design/web/references/posthog/README.md +0 -23
- package/.opencode/oh-my-design/web/references/posthog/preview-dark.html +0 -699
- package/.opencode/oh-my-design/web/references/posthog/preview.html +0 -749
- package/.opencode/oh-my-design/web/references/postype/.verification.md +0 -61
- package/.opencode/oh-my-design/web/references/postype/DESIGN.md +0 -431
- package/.opencode/oh-my-design/web/references/publy/DESIGN.md +0 -563
- package/.opencode/oh-my-design/web/references/qanda/.verification.md +0 -121
- package/.opencode/oh-my-design/web/references/qanda/DESIGN.md +0 -516
- package/.opencode/oh-my-design/web/references/ragic/.verification.md +0 -37
- package/.opencode/oh-my-design/web/references/ragic/DESIGN.md +0 -444
- package/.opencode/oh-my-design/web/references/rakuten/.verification.md +0 -60
- package/.opencode/oh-my-design/web/references/rakuten/DESIGN.md +0 -440
- package/.opencode/oh-my-design/web/references/ramp/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/ramp/DESIGN.md +0 -634
- package/.opencode/oh-my-design/web/references/rayark/.verification.md +0 -22
- package/.opencode/oh-my-design/web/references/rayark/DESIGN.md +0 -154
- package/.opencode/oh-my-design/web/references/raycast/.verification.md +0 -138
- package/.opencode/oh-my-design/web/references/raycast/DESIGN.md +0 -467
- package/.opencode/oh-my-design/web/references/raycast/README.md +0 -23
- package/.opencode/oh-my-design/web/references/raycast/preview-dark.html +0 -606
- package/.opencode/oh-my-design/web/references/raycast/preview.html +0 -688
- package/.opencode/oh-my-design/web/references/remember/.verification.md +0 -135
- package/.opencode/oh-my-design/web/references/remember/DESIGN.md +0 -504
- package/.opencode/oh-my-design/web/references/remember/_promo.json +0 -27
- package/.opencode/oh-my-design/web/references/remember/_research.md +0 -90
- package/.opencode/oh-my-design/web/references/renault/.verification.md +0 -139
- package/.opencode/oh-my-design/web/references/renault/DESIGN.md +0 -439
- package/.opencode/oh-my-design/web/references/renault/README.md +0 -23
- package/.opencode/oh-my-design/web/references/renault/preview-dark.html +0 -406
- package/.opencode/oh-my-design/web/references/renault/preview.html +0 -606
- package/.opencode/oh-my-design/web/references/replicate/.verification.md +0 -154
- package/.opencode/oh-my-design/web/references/replicate/DESIGN.md +0 -387
- package/.opencode/oh-my-design/web/references/replicate/README.md +0 -24
- package/.opencode/oh-my-design/web/references/replicate/preview-dark.html +0 -828
- package/.opencode/oh-my-design/web/references/replicate/preview.html +0 -831
- package/.opencode/oh-my-design/web/references/resend/.verification.md +0 -143
- package/.opencode/oh-my-design/web/references/resend/DESIGN.md +0 -440
- package/.opencode/oh-my-design/web/references/resend/README.md +0 -23
- package/.opencode/oh-my-design/web/references/resend/preview-dark.html +0 -355
- package/.opencode/oh-my-design/web/references/resend/preview.html +0 -354
- package/.opencode/oh-my-design/web/references/retool/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/retool/DESIGN.md +0 -645
- package/.opencode/oh-my-design/web/references/revolut/.verification.md +0 -140
- package/.opencode/oh-my-design/web/references/revolut/DESIGN.md +0 -319
- package/.opencode/oh-my-design/web/references/revolut/README.md +0 -23
- package/.opencode/oh-my-design/web/references/revolut/preview-dark.html +0 -234
- package/.opencode/oh-my-design/web/references/revolut/preview.html +0 -233
- package/.opencode/oh-my-design/web/references/richart/.verification.md +0 -41
- package/.opencode/oh-my-design/web/references/richart/DESIGN.md +0 -465
- package/.opencode/oh-my-design/web/references/ridi/.verification.md +0 -108
- package/.opencode/oh-my-design/web/references/ridi/DESIGN.md +0 -573
- package/.opencode/oh-my-design/web/references/riiid/.verification.md +0 -33
- package/.opencode/oh-my-design/web/references/riiid/DESIGN.md +0 -260
- package/.opencode/oh-my-design/web/references/ringle/.verification.md +0 -53
- package/.opencode/oh-my-design/web/references/ringle/DESIGN.md +0 -444
- package/.opencode/oh-my-design/web/references/robinhood/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/robinhood/DESIGN.md +0 -604
- package/.opencode/oh-my-design/web/references/runwayml/.verification.md +0 -141
- package/.opencode/oh-my-design/web/references/runwayml/DESIGN.md +0 -431
- package/.opencode/oh-my-design/web/references/runwayml/README.md +0 -24
- package/.opencode/oh-my-design/web/references/runwayml/preview-dark.html +0 -664
- package/.opencode/oh-my-design/web/references/runwayml/preview.html +0 -665
- package/.opencode/oh-my-design/web/references/salesforce/.verification.md +0 -66
- package/.opencode/oh-my-design/web/references/salesforce/DESIGN.md +0 -473
- package/.opencode/oh-my-design/web/references/sanity/.verification.md +0 -174
- package/.opencode/oh-my-design/web/references/sanity/DESIGN.md +0 -499
- package/.opencode/oh-my-design/web/references/sanity/README.md +0 -24
- package/.opencode/oh-my-design/web/references/sanity/preview-dark.html +0 -990
- package/.opencode/oh-my-design/web/references/sanity/preview.html +0 -1135
- package/.opencode/oh-my-design/web/references/sansan/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/sansan/DESIGN.md +0 -631
- package/.opencode/oh-my-design/web/references/sendbird/.verification.md +0 -67
- package/.opencode/oh-my-design/web/references/sendbird/DESIGN.md +0 -331
- package/.opencode/oh-my-design/web/references/sentry/.verification.md +0 -157
- package/.opencode/oh-my-design/web/references/sentry/DESIGN.md +0 -397
- package/.opencode/oh-my-design/web/references/sentry/README.md +0 -24
- package/.opencode/oh-my-design/web/references/sentry/preview-dark.html +0 -626
- package/.opencode/oh-my-design/web/references/sentry/preview.html +0 -951
- package/.opencode/oh-my-design/web/references/shinhancard/.verification.md +0 -31
- package/.opencode/oh-my-design/web/references/shinhancard/DESIGN.md +0 -421
- package/.opencode/oh-my-design/web/references/shopline/.verification.md +0 -34
- package/.opencode/oh-my-design/web/references/shopline/DESIGN.md +0 -431
- package/.opencode/oh-my-design/web/references/slack/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/slack/DESIGN.md +0 -635
- package/.opencode/oh-my-design/web/references/smarthr/DESIGN.md +0 -452
- package/.opencode/oh-my-design/web/references/smartnews/DESIGN.md +0 -360
- package/.opencode/oh-my-design/web/references/socar/DESIGN.md +0 -438
- package/.opencode/oh-my-design/web/references/socar/_promo.json +0 -28
- package/.opencode/oh-my-design/web/references/socar/_research.md +0 -55
- package/.opencode/oh-my-design/web/references/soomgo/.verification.md +0 -27
- package/.opencode/oh-my-design/web/references/soomgo/DESIGN.md +0 -326
- package/.opencode/oh-my-design/web/references/spacex/.verification.md +0 -132
- package/.opencode/oh-my-design/web/references/spacex/DESIGN.md +0 -415
- package/.opencode/oh-my-design/web/references/spacex/README.md +0 -23
- package/.opencode/oh-my-design/web/references/spacex/_research.md +0 -69
- package/.opencode/oh-my-design/web/references/spacex/preview-dark.html +0 -221
- package/.opencode/oh-my-design/web/references/spacex/preview.html +0 -220
- package/.opencode/oh-my-design/web/references/spoon/DESIGN.md +0 -492
- package/.opencode/oh-my-design/web/references/spotify/.verification.md +0 -128
- package/.opencode/oh-my-design/web/references/spotify/DESIGN.md +0 -489
- package/.opencode/oh-my-design/web/references/spotify/README.md +0 -23
- package/.opencode/oh-my-design/web/references/spotify/preview-dark.html +0 -231
- package/.opencode/oh-my-design/web/references/spotify/preview.html +0 -230
- package/.opencode/oh-my-design/web/references/starbucks/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/starbucks/DESIGN.md +0 -597
- package/.opencode/oh-my-design/web/references/stores/.verification.md +0 -61
- package/.opencode/oh-my-design/web/references/stores/DESIGN.md +0 -447
- package/.opencode/oh-my-design/web/references/stripe/.verification.md +0 -140
- package/.opencode/oh-my-design/web/references/stripe/DESIGN.md +0 -571
- package/.opencode/oh-my-design/web/references/stripe/README.md +0 -24
- package/.opencode/oh-my-design/web/references/stripe/preview-dark.html +0 -428
- package/.opencode/oh-my-design/web/references/stripe/preview.html +0 -419
- package/.opencode/oh-my-design/web/references/studio/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/studio/DESIGN.md +0 -602
- package/.opencode/oh-my-design/web/references/supabase/.verification.md +0 -145
- package/.opencode/oh-my-design/web/references/supabase/DESIGN.md +0 -389
- package/.opencode/oh-my-design/web/references/supabase/README.md +0 -24
- package/.opencode/oh-my-design/web/references/supabase/preview-dark.html +0 -977
- package/.opencode/oh-my-design/web/references/supabase/preview.html +0 -955
- package/.opencode/oh-my-design/web/references/superhuman/.verification.md +0 -184
- package/.opencode/oh-my-design/web/references/superhuman/DESIGN.md +0 -453
- package/.opencode/oh-my-design/web/references/superhuman/README.md +0 -23
- package/.opencode/oh-my-design/web/references/superhuman/preview-dark.html +0 -973
- package/.opencode/oh-my-design/web/references/superhuman/preview.html +0 -951
- package/.opencode/oh-my-design/web/references/surveycake/.verification.md +0 -31
- package/.opencode/oh-my-design/web/references/surveycake/DESIGN.md +0 -442
- package/.opencode/oh-my-design/web/references/tada/DESIGN.md +0 -579
- package/.opencode/oh-my-design/web/references/teamblind/.verification.md +0 -76
- package/.opencode/oh-my-design/web/references/teamblind/DESIGN.md +0 -497
- package/.opencode/oh-my-design/web/references/tesla/.verification.md +0 -149
- package/.opencode/oh-my-design/web/references/tesla/DESIGN.md +0 -501
- package/.opencode/oh-my-design/web/references/tesla/README.md +0 -23
- package/.opencode/oh-my-design/web/references/tesla/_research.md +0 -70
- package/.opencode/oh-my-design/web/references/tesla/preview-dark.html +0 -947
- package/.opencode/oh-my-design/web/references/tesla/preview.html +0 -925
- package/.opencode/oh-my-design/web/references/theverge/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/theverge/DESIGN.md +0 -500
- package/.opencode/oh-my-design/web/references/timee/.verification.md +0 -67
- package/.opencode/oh-my-design/web/references/timee/DESIGN.md +0 -444
- package/.opencode/oh-my-design/web/references/together.ai/.verification.md +0 -145
- package/.opencode/oh-my-design/web/references/together.ai/DESIGN.md +0 -389
- package/.opencode/oh-my-design/web/references/together.ai/README.md +0 -24
- package/.opencode/oh-my-design/web/references/together.ai/preview-dark.html +0 -892
- package/.opencode/oh-my-design/web/references/together.ai/preview.html +0 -897
- package/.opencode/oh-my-design/web/references/toss/.verification.md +0 -120
- package/.opencode/oh-my-design/web/references/toss/DESIGN.md +0 -698
- package/.opencode/oh-my-design/web/references/toss/README.md +0 -19
- package/.opencode/oh-my-design/web/references/toss-securities/DESIGN.md +0 -247
- package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
- package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
- package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
- package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/fonts.json +0 -24
- package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/structure.json +0 -35
- package/.opencode/oh-my-design/web/references/toss-securities/assets/_reference/tokens.json +0 -87
- package/.opencode/oh-my-design/web/references/tossbank/DESIGN.md +0 -576
- package/.opencode/oh-my-design/web/references/trenbe/.verification.md +0 -32
- package/.opencode/oh-my-design/web/references/trenbe/DESIGN.md +0 -293
- package/.opencode/oh-my-design/web/references/triple/DESIGN.md +0 -481
- package/.opencode/oh-my-design/web/references/tumblbug/DESIGN.md +0 -578
- package/.opencode/oh-my-design/web/references/tving/DESIGN.md +0 -317
- package/.opencode/oh-my-design/web/references/tving/assets/_reference/.live-inspect-proof.json +0 -131
- package/.opencode/oh-my-design/web/references/tving/assets/_reference/LICENSE-NOTE.md +0 -37
- package/.opencode/oh-my-design/web/references/tving/assets/_reference/attribution.md +0 -52
- package/.opencode/oh-my-design/web/references/tving/assets/_reference/fonts.json +0 -31
- package/.opencode/oh-my-design/web/references/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
- package/.opencode/oh-my-design/web/references/tving/assets/_reference/structure.json +0 -55
- package/.opencode/oh-my-design/web/references/tving/assets/_reference/tokens.json +0 -115
- package/.opencode/oh-my-design/web/references/uber/.verification.md +0 -128
- package/.opencode/oh-my-design/web/references/uber/DESIGN.md +0 -423
- package/.opencode/oh-my-design/web/references/uber/README.md +0 -24
- package/.opencode/oh-my-design/web/references/uber/preview-dark.html +0 -1120
- package/.opencode/oh-my-design/web/references/uber/preview.html +0 -1119
- package/.opencode/oh-my-design/web/references/ubie/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/ubie/DESIGN.md +0 -615
- package/.opencode/oh-my-design/web/references/uniqlo/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/uniqlo/DESIGN.md +0 -575
- package/.opencode/oh-my-design/web/references/upbit/DESIGN.md +0 -337
- package/.opencode/oh-my-design/web/references/upbit/_research.md +0 -83
- package/.opencode/oh-my-design/web/references/upbit/assets/_reference/.live-inspect-proof.json +0 -263
- package/.opencode/oh-my-design/web/references/upbit/assets/_reference/fonts.json +0 -18
- package/.opencode/oh-my-design/web/references/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
- package/.opencode/oh-my-design/web/references/upbit/assets/_reference/raw-capture.json +0 -1121
- package/.opencode/oh-my-design/web/references/upbit/assets/_reference/structure.json +0 -52
- package/.opencode/oh-my-design/web/references/upbit/assets/_reference/tokens.json +0 -169
- package/.opencode/oh-my-design/web/references/upstage/DESIGN.md +0 -270
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/.live-inspect-proof.json +0 -157
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_brand-resource-center.json +0 -44
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_curated-samples.json +0 -310
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_raw-capture.json +0 -1560
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_root-vars.json +0 -76
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/_structure-raw.json +0 -298
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/fonts.json +0 -35
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/structure.json +0 -72
- package/.opencode/oh-my-design/web/references/upstage/assets/_reference/tokens.json +0 -183
- package/.opencode/oh-my-design/web/references/velog/.verification.md +0 -26
- package/.opencode/oh-my-design/web/references/velog/DESIGN.md +0 -196
- package/.opencode/oh-my-design/web/references/vercel/.verification.md +0 -134
- package/.opencode/oh-my-design/web/references/vercel/DESIGN.md +0 -523
- package/.opencode/oh-my-design/web/references/vercel/README.md +0 -24
- package/.opencode/oh-my-design/web/references/vercel/preview-dark.html +0 -368
- package/.opencode/oh-my-design/web/references/vercel/preview.html +0 -367
- package/.opencode/oh-my-design/web/references/voicetube/.verification.md +0 -34
- package/.opencode/oh-my-design/web/references/voicetube/DESIGN.md +0 -266
- package/.opencode/oh-my-design/web/references/voltagent/.verification.md +0 -159
- package/.opencode/oh-my-design/web/references/voltagent/DESIGN.md +0 -454
- package/.opencode/oh-my-design/web/references/voltagent/README.md +0 -24
- package/.opencode/oh-my-design/web/references/voltagent/preview-dark.html +0 -487
- package/.opencode/oh-my-design/web/references/voltagent/preview.html +0 -766
- package/.opencode/oh-my-design/web/references/wadiz/DESIGN.md +0 -415
- package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
- package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/fonts.json +0 -17
- package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/structure.json +0 -35
- package/.opencode/oh-my-design/web/references/wadiz/assets/_reference/tokens.json +0 -80
- package/.opencode/oh-my-design/web/references/wanted/DESIGN.md +0 -575
- package/.opencode/oh-my-design/web/references/wanted/_promo.json +0 -31
- package/.opencode/oh-my-design/web/references/wanted/_research.md +0 -119
- package/.opencode/oh-my-design/web/references/wantedly/.verification.md +0 -53
- package/.opencode/oh-my-design/web/references/wantedly/DESIGN.md +0 -437
- package/.opencode/oh-my-design/web/references/warp/.verification.md +0 -156
- package/.opencode/oh-my-design/web/references/warp/DESIGN.md +0 -431
- package/.opencode/oh-my-design/web/references/warp/README.md +0 -23
- package/.opencode/oh-my-design/web/references/warp/preview-dark.html +0 -500
- package/.opencode/oh-my-design/web/references/warp/preview.html +0 -533
- package/.opencode/oh-my-design/web/references/watcha/DESIGN.md +0 -465
- package/.opencode/oh-my-design/web/references/wavve/DESIGN.md +0 -480
- package/.opencode/oh-my-design/web/references/wconcept/DESIGN.md +0 -556
- package/.opencode/oh-my-design/web/references/webflow/.verification.md +0 -151
- package/.opencode/oh-my-design/web/references/webflow/DESIGN.md +0 -330
- package/.opencode/oh-my-design/web/references/webflow/README.md +0 -23
- package/.opencode/oh-my-design/web/references/webflow/preview-dark.html +0 -147
- package/.opencode/oh-my-design/web/references/webflow/preview.html +0 -146
- package/.opencode/oh-my-design/web/references/wired/.verification.md +0 -21
- package/.opencode/oh-my-design/web/references/wired/DESIGN.md +0 -572
- package/.opencode/oh-my-design/web/references/wise/.verification.md +0 -141
- package/.opencode/oh-my-design/web/references/wise/DESIGN.md +0 -317
- package/.opencode/oh-my-design/web/references/wise/README.md +0 -23
- package/.opencode/oh-my-design/web/references/wise/preview-dark.html +0 -230
- package/.opencode/oh-my-design/web/references/wise/preview.html +0 -229
- package/.opencode/oh-my-design/web/references/x.ai/.verification.md +0 -140
- package/.opencode/oh-my-design/web/references/x.ai/DESIGN.md +0 -397
- package/.opencode/oh-my-design/web/references/x.ai/README.md +0 -24
- package/.opencode/oh-my-design/web/references/x.ai/preview-dark.html +0 -356
- package/.opencode/oh-my-design/web/references/x.ai/preview.html +0 -407
- package/.opencode/oh-my-design/web/references/xiaohongshu/DESIGN.md +0 -462
- package/.opencode/oh-my-design/web/references/yanolja/.verification.md +0 -83
- package/.opencode/oh-my-design/web/references/yanolja/DESIGN.md +0 -508
- package/.opencode/oh-my-design/web/references/yeogiotte/.verification.md +0 -210
- package/.opencode/oh-my-design/web/references/yeogiotte/DESIGN.md +0 -500
- package/.opencode/oh-my-design/web/references/yogiyo/DESIGN.md +0 -515
- package/.opencode/oh-my-design/web/references/yourator/.verification.md +0 -39
- package/.opencode/oh-my-design/web/references/yourator/DESIGN.md +0 -453
- package/.opencode/oh-my-design/web/references/zapier/.verification.md +0 -156
- package/.opencode/oh-my-design/web/references/zapier/DESIGN.md +0 -474
- package/.opencode/oh-my-design/web/references/zapier/README.md +0 -24
- package/.opencode/oh-my-design/web/references/zapier/preview-dark.html +0 -380
- package/.opencode/oh-my-design/web/references/zapier/preview.html +0 -372
- package/.opencode/oh-my-design/web/references/zigbang/DESIGN.md +0 -500
- package/.opencode/oh-my-design/web/references/zigbang/_promo.json +0 -16
- package/.opencode/oh-my-design/web/references/zigbang/_research.md +0 -101
- package/.opencode/oh-my-design/web/references/zigzag/DESIGN.md +0 -695
- package/.opencode/oh-my-design/web/references/zigzag/_promo.json +0 -23
- package/.opencode/oh-my-design/web/references/zigzag/_research.md +0 -64
- package/.opencode/oh-my-design/web/references/zozotown/.verification.md +0 -20
- package/.opencode/oh-my-design/web/references/zozotown/DESIGN.md +0 -578
- package/.opencode/oh-my-design/web/scripts/build-registry.mjs +0 -257
- package/.opencode/oh-my-design/web/scripts/extract-tokens.mjs +0 -117
- package/.opencode/oh-my-design/web/scripts/fetch-og-images.mjs +0 -112
- package/.opencode/oh-my-design/web/scripts/gen-favicon.mjs +0 -58
- package/.opencode/oh-my-design/web/scripts/gen-og.mjs +0 -67
- package/.opencode/oh-my-design/web/scripts/migrate-frontmatters.mjs +0 -637
- package/.opencode/oh-my-design/web/scripts/sync-catalog.mjs +0 -140
- package/.opencode/oh-my-design/web/scripts/token-sheet.mjs +0 -72
- package/.opencode/oh-my-design/web/scripts/token-status.mjs +0 -94
- package/.opencode/oh-my-design/web/scripts/verify-reference.mjs +0 -185
- package/.opencode/oh-my-design/web/src/app/alternatives/[slug]/page.tsx +0 -399
- package/.opencode/oh-my-design/web/src/app/api/font-playground/match/route.ts +0 -205
- package/.opencode/oh-my-design/web/src/app/api/leaderboard/route.ts +0 -32
- package/.opencode/oh-my-design/web/src/app/api/og/playground/route.tsx +0 -179
- package/.opencode/oh-my-design/web/src/app/api/references/[id]/route.ts +0 -162
- package/.opencode/oh-my-design/web/src/app/api/references/route.ts +0 -142
- package/.opencode/oh-my-design/web/src/app/api/track/route.ts +0 -30
- package/.opencode/oh-my-design/web/src/app/apple-icon.png +0 -0
- package/.opencode/oh-my-design/web/src/app/builder/layout.tsx +0 -43
- package/.opencode/oh-my-design/web/src/app/builder/page.tsx +0 -434
- package/.opencode/oh-my-design/web/src/app/changelog/[version]/page.tsx +0 -160
- package/.opencode/oh-my-design/web/src/app/changelog/page.tsx +0 -142
- package/.opencode/oh-my-design/web/src/app/collections/[slug]/collection-grid.tsx +0 -27
- package/.opencode/oh-my-design/web/src/app/collections/[slug]/page.tsx +0 -171
- package/.opencode/oh-my-design/web/src/app/curation/layout.tsx +0 -43
- package/.opencode/oh-my-design/web/src/app/curation/page.tsx +0 -78
- package/.opencode/oh-my-design/web/src/app/design-systems/[id]/detail-view.tsx +0 -307
- package/.opencode/oh-my-design/web/src/app/design-systems/[id]/page.tsx +0 -184
- package/.opencode/oh-my-design/web/src/app/design-systems/layout.tsx +0 -24
- package/.opencode/oh-my-design/web/src/app/design-systems/page.tsx +0 -95
- package/.opencode/oh-my-design/web/src/app/docs/layout.tsx +0 -22
- package/.opencode/oh-my-design/web/src/app/docs/page.tsx +0 -1453
- package/.opencode/oh-my-design/web/src/app/faq/page.tsx +0 -324
- package/.opencode/oh-my-design/web/src/app/font-playground/font-playground-view.tsx +0 -424
- package/.opencode/oh-my-design/web/src/app/font-playground/page.tsx +0 -43
- package/.opencode/oh-my-design/web/src/app/globals.css +0 -328
- package/.opencode/oh-my-design/web/src/app/icon.png +0 -0
- package/.opencode/oh-my-design/web/src/app/layout.tsx +0 -229
- package/.opencode/oh-my-design/web/src/app/page.tsx +0 -50
- package/.opencode/oh-my-design/web/src/app/playground/page.tsx +0 -81
- package/.opencode/oh-my-design/web/src/app/playground/playground-view.tsx +0 -436
- package/.opencode/oh-my-design/web/src/app/qa-references/page.tsx +0 -233
- package/.opencode/oh-my-design/web/src/app/r/[id]/route.ts +0 -57
- package/.opencode/oh-my-design/web/src/app/reference/[id]/page.tsx +0 -152
- package/.opencode/oh-my-design/web/src/app/result/[typeCode]/layout.tsx +0 -70
- package/.opencode/oh-my-design/web/src/app/result/[typeCode]/page.tsx +0 -280
- package/.opencode/oh-my-design/web/src/app/robots.ts +0 -44
- package/.opencode/oh-my-design/web/src/app/sitemap.ts +0 -156
- package/.opencode/oh-my-design/web/src/app/what-is-design-md/page.tsx +0 -308
- package/.opencode/oh-my-design/web/src/components/ab-picker.tsx +0 -74
- package/.opencode/oh-my-design/web/src/components/analytics-init.tsx +0 -21
- package/.opencode/oh-my-design/web/src/components/brand-logo.tsx +0 -101
- package/.opencode/oh-my-design/web/src/components/browse-modal.tsx +0 -149
- package/.opencode/oh-my-design/web/src/components/component-modal.tsx +0 -108
- package/.opencode/oh-my-design/web/src/components/content-preview-modal.tsx +0 -213
- package/.opencode/oh-my-design/web/src/components/customizer.tsx +0 -641
- package/.opencode/oh-my-design/web/src/components/design-wizard.tsx +0 -691
- package/.opencode/oh-my-design/web/src/components/ds-card.tsx +0 -162
- package/.opencode/oh-my-design/web/src/components/export-panel.tsx +0 -162
- package/.opencode/oh-my-design/web/src/components/font-card.tsx +0 -121
- package/.opencode/oh-my-design/web/src/components/font-playground/color-palette.tsx +0 -86
- package/.opencode/oh-my-design/web/src/components/font-playground/detail-modal.tsx +0 -789
- package/.opencode/oh-my-design/web/src/components/font-playground/filter-bar.tsx +0 -192
- package/.opencode/oh-my-design/web/src/components/font-playground/font-tile.tsx +0 -92
- package/.opencode/oh-my-design/web/src/components/font-playground/gallery.tsx +0 -42
- package/.opencode/oh-my-design/web/src/components/font-playground/hero-entry.tsx +0 -150
- package/.opencode/oh-my-design/web/src/components/font-playground/labels.ts +0 -18
- package/.opencode/oh-my-design/web/src/components/font-playground/match-results.tsx +0 -486
- package/.opencode/oh-my-design/web/src/components/font-playground/my-fonts.tsx +0 -315
- package/.opencode/oh-my-design/web/src/components/font-playground/preview-templates.tsx +0 -395
- package/.opencode/oh-my-design/web/src/components/font-playground/sample-input.tsx +0 -30
- package/.opencode/oh-my-design/web/src/components/font-playground/script-toggle.tsx +0 -73
- package/.opencode/oh-my-design/web/src/components/font-playground/usage-guide.tsx +0 -172
- package/.opencode/oh-my-design/web/src/components/install-cta.tsx +0 -133
- package/.opencode/oh-my-design/web/src/components/landing-v2/hero.tsx +0 -459
- package/.opencode/oh-my-design/web/src/components/landing-v2/live-proof.tsx +0 -464
- package/.opencode/oh-my-design/web/src/components/landing-v2/nav.tsx +0 -126
- package/.opencode/oh-my-design/web/src/components/landing-v2/sections.tsx +0 -1166
- package/.opencode/oh-my-design/web/src/components/landing-v2/the-wall.tsx +0 -332
- package/.opencode/oh-my-design/web/src/components/landing-v2/tokens.ts +0 -33
- package/.opencode/oh-my-design/web/src/components/markdown.tsx +0 -168
- package/.opencode/oh-my-design/web/src/components/playground/actions-header.tsx +0 -28
- package/.opencode/oh-my-design/web/src/components/playground/contrast-badge.tsx +0 -112
- package/.opencode/oh-my-design/web/src/components/playground/controls/category-section.tsx +0 -50
- package/.opencode/oh-my-design/web/src/components/playground/controls/color-picker.tsx +0 -116
- package/.opencode/oh-my-design/web/src/components/playground/controls/density-picker.tsx +0 -56
- package/.opencode/oh-my-design/web/src/components/playground/controls/mood-picker.tsx +0 -53
- package/.opencode/oh-my-design/web/src/components/playground/controls/motion-picker.tsx +0 -62
- package/.opencode/oh-my-design/web/src/components/playground/controls/name-description.tsx +0 -55
- package/.opencode/oh-my-design/web/src/components/playground/controls/palette-grid.tsx +0 -111
- package/.opencode/oh-my-design/web/src/components/playground/controls/personas-picker.tsx +0 -85
- package/.opencode/oh-my-design/web/src/components/playground/controls/radius-picker.tsx +0 -48
- package/.opencode/oh-my-design/web/src/components/playground/controls/voice-picker.tsx +0 -120
- package/.opencode/oh-my-design/web/src/components/playground/controls/weight-picker.tsx +0 -48
- package/.opencode/oh-my-design/web/src/components/playground/export-box.tsx +0 -120
- package/.opencode/oh-my-design/web/src/components/playground/header.tsx +0 -71
- package/.opencode/oh-my-design/web/src/components/playground/layout.tsx +0 -50
- package/.opencode/oh-my-design/web/src/components/playground/mobile-drawer.tsx +0 -78
- package/.opencode/oh-my-design/web/src/components/playground/mood-override-badge.tsx +0 -40
- package/.opencode/oh-my-design/web/src/components/playground/preview-pane.tsx +0 -82
- package/.opencode/oh-my-design/web/src/components/playground/primitives-strip.tsx +0 -153
- package/.opencode/oh-my-design/web/src/components/playground/reference-picker-modal.tsx +0 -146
- package/.opencode/oh-my-design/web/src/components/playground/share-button.tsx +0 -42
- package/.opencode/oh-my-design/web/src/components/playground/start-from.tsx +0 -90
- package/.opencode/oh-my-design/web/src/components/preview-export-view.tsx +0 -205
- package/.opencode/oh-my-design/web/src/components/preview.tsx +0 -869
- package/.opencode/oh-my-design/web/src/components/reference-preview.tsx +0 -1187
- package/.opencode/oh-my-design/web/src/components/reference-selector.tsx +0 -671
- package/.opencode/oh-my-design/web/src/components/scroll-to-top.tsx +0 -41
- package/.opencode/oh-my-design/web/src/components/status-badge.tsx +0 -64
- package/.opencode/oh-my-design/web/src/components/survey/company-mini-ui.tsx +0 -669
- package/.opencode/oh-my-design/web/src/components/survey/install-cta.tsx +0 -80
- package/.opencode/oh-my-design/web/src/components/survey/mood-step.tsx +0 -260
- package/.opencode/oh-my-design/web/src/components/survey/quiz-wizard.tsx +0 -528
- package/.opencode/oh-my-design/web/src/components/survey/result-card.tsx +0 -242
- package/.opencode/oh-my-design/web/src/components/survey/share-buttons.tsx +0 -320
- package/.opencode/oh-my-design/web/src/components/survey/survey-wizard.tsx +0 -661
- package/.opencode/oh-my-design/web/src/components/survey/typography-step.tsx +0 -192
- package/.opencode/oh-my-design/web/src/components/theme-provider.tsx +0 -12
- package/.opencode/oh-my-design/web/src/components/ui/badge.tsx +0 -52
- package/.opencode/oh-my-design/web/src/components/ui/button.tsx +0 -58
- package/.opencode/oh-my-design/web/src/components/ui/card.tsx +0 -103
- package/.opencode/oh-my-design/web/src/components/ui/dialog.tsx +0 -160
- package/.opencode/oh-my-design/web/src/components/ui/input.tsx +0 -20
- package/.opencode/oh-my-design/web/src/components/ui/label.tsx +0 -20
- package/.opencode/oh-my-design/web/src/components/ui/radio-group.tsx +0 -38
- package/.opencode/oh-my-design/web/src/components/ui/scroll-area.tsx +0 -55
- package/.opencode/oh-my-design/web/src/components/ui/select.tsx +0 -201
- package/.opencode/oh-my-design/web/src/components/ui/separator.tsx +0 -25
- package/.opencode/oh-my-design/web/src/components/ui/sheet.tsx +0 -138
- package/.opencode/oh-my-design/web/src/components/ui/slider.tsx +0 -52
- package/.opencode/oh-my-design/web/src/components/ui/switch.tsx +0 -32
- package/.opencode/oh-my-design/web/src/components/ui/tabs.tsx +0 -82
- package/.opencode/oh-my-design/web/src/components/ui/tooltip.tsx +0 -66
- package/.opencode/oh-my-design/web/src/data/faq.ts +0 -81
- package/.opencode/oh-my-design/web/src/data/registry.generated.ts +0 -304
- package/.opencode/oh-my-design/web/src/data/version.generated.ts +0 -2
- package/.opencode/oh-my-design/web/src/lib/changelog.ts +0 -96
- package/.opencode/oh-my-design/web/src/lib/collections.ts +0 -252
- package/.opencode/oh-my-design/web/src/lib/contrast.ts +0 -40
- package/.opencode/oh-my-design/web/src/lib/core/builder-prompt.test.ts +0 -100
- package/.opencode/oh-my-design/web/src/lib/core/builder-prompt.ts +0 -102
- package/.opencode/oh-my-design/web/src/lib/core/color.ts +0 -122
- package/.opencode/oh-my-design/web/src/lib/core/config-hash.test.ts +0 -157
- package/.opencode/oh-my-design/web/src/lib/core/config-hash.ts +0 -133
- package/.opencode/oh-my-design/web/src/lib/core/generate-css.test.ts +0 -813
- package/.opencode/oh-my-design/web/src/lib/core/generate-css.ts +0 -586
- package/.opencode/oh-my-design/web/src/lib/core/survey-hash.test.ts +0 -51
- package/.opencode/oh-my-design/web/src/lib/core/survey-hash.ts +0 -56
- package/.opencode/oh-my-design/web/src/lib/core/types.ts +0 -37
- package/.opencode/oh-my-design/web/src/lib/design-systems.ts +0 -102
- package/.opencode/oh-my-design/web/src/lib/extract-components.test.ts +0 -116
- package/.opencode/oh-my-design/web/src/lib/extract-tokens.test.ts +0 -202
- package/.opencode/oh-my-design/web/src/lib/extract-tokens.ts +0 -1335
- package/.opencode/oh-my-design/web/src/lib/font-registry.ts +0 -376
- package/.opencode/oh-my-design/web/src/lib/fonts/analytics.test.ts +0 -194
- package/.opencode/oh-my-design/web/src/lib/fonts/analytics.ts +0 -234
- package/.opencode/oh-my-design/web/src/lib/fonts/catalog.ts +0 -1509
- package/.opencode/oh-my-design/web/src/lib/fonts/designmd-export.ts +0 -104
- package/.opencode/oh-my-design/web/src/lib/fonts/loaders.test.ts +0 -169
- package/.opencode/oh-my-design/web/src/lib/fonts/loaders.ts +0 -90
- package/.opencode/oh-my-design/web/src/lib/fonts/match-intent.test.ts +0 -93
- package/.opencode/oh-my-design/web/src/lib/fonts/match-intent.ts +0 -288
- package/.opencode/oh-my-design/web/src/lib/fonts/preview-contexts.ts +0 -124
- package/.opencode/oh-my-design/web/src/lib/fonts/rate-limit.ts +0 -43
- package/.opencode/oh-my-design/web/src/lib/fonts/saved-store.ts +0 -113
- package/.opencode/oh-my-design/web/src/lib/fonts/share-link.test.ts +0 -101
- package/.opencode/oh-my-design/web/src/lib/fonts/share-link.ts +0 -52
- package/.opencode/oh-my-design/web/src/lib/fonts/similarity.ts +0 -106
- package/.opencode/oh-my-design/web/src/lib/fonts/tweaks.test.ts +0 -213
- package/.opencode/oh-my-design/web/src/lib/fonts/tweaks.ts +0 -186
- package/.opencode/oh-my-design/web/src/lib/fonts/types.ts +0 -96
- package/.opencode/oh-my-design/web/src/lib/gtag.ts +0 -64
- package/.opencode/oh-my-design/web/src/lib/hot-refs.ts +0 -41
- package/.opencode/oh-my-design/web/src/lib/kv.ts +0 -30
- package/.opencode/oh-my-design/web/src/lib/logos.ts +0 -39
- package/.opencode/oh-my-design/web/src/lib/new-refs.ts +0 -30
- package/.opencode/oh-my-design/web/src/lib/playground/codec.ts +0 -34
- package/.opencode/oh-my-design/web/src/lib/playground/defaults.ts +0 -56
- package/.opencode/oh-my-design/web/src/lib/playground/generate.ts +0 -384
- package/.opencode/oh-my-design/web/src/lib/playground/palettes.ts +0 -259
- package/.opencode/oh-my-design/web/src/lib/playground/rules/density.ts +0 -59
- package/.opencode/oh-my-design/web/src/lib/playground/rules/mood.ts +0 -82
- package/.opencode/oh-my-design/web/src/lib/playground/rules/motion.ts +0 -71
- package/.opencode/oh-my-design/web/src/lib/playground/rules/personality.ts +0 -93
- package/.opencode/oh-my-design/web/src/lib/playground/rules/philosophy.ts +0 -270
- package/.opencode/oh-my-design/web/src/lib/playground/rules/radius.ts +0 -54
- package/.opencode/oh-my-design/web/src/lib/playground/rules/weight.ts +0 -41
- package/.opencode/oh-my-design/web/src/lib/playground/samples.ts +0 -280
- package/.opencode/oh-my-design/web/src/lib/playground/state.ts +0 -194
- package/.opencode/oh-my-design/web/src/lib/search-aliases.ts +0 -213
- package/.opencode/oh-my-design/web/src/lib/survey/profiles.generated.ts +0 -1143
- package/.opencode/oh-my-design/web/src/lib/survey/quiz-data.test.ts +0 -102
- package/.opencode/oh-my-design/web/src/lib/survey/quiz-data.ts +0 -571
- package/.opencode/oh-my-design/web/src/lib/survey/scoring.test.ts +0 -111
- package/.opencode/oh-my-design/web/src/lib/survey/scoring.ts +0 -146
- package/.opencode/oh-my-design/web/src/lib/survey/types.test.ts +0 -153
- package/.opencode/oh-my-design/web/src/lib/survey/types.ts +0 -604
- package/.opencode/oh-my-design/web/src/lib/utils.ts +0 -6
- package/.opencode/oh-my-design/web/src/styles/shadcn.css +0 -95
- package/.opencode/oh-my-design/web/src/styles/tw-animate.css +0 -1
- package/.opencode/oh-my-design/web/src/types/gtag.d.ts +0 -3
- package/.opencode/oh-my-design/web/tsconfig.json +0 -34
- package/.opencode/oh-my-design/web/vitest.config.ts +0 -14
- package/.utils/docs_opencode/acp.md +0 -165
- package/.utils/docs_opencode/acp.pdf +0 -0
- package/.utils/docs_opencode/agents.md +0 -803
- package/.utils/docs_opencode/agents.pdf +0 -0
- package/.utils/docs_opencode/commands.md +0 -354
- package/.utils/docs_opencode/commands.pdf +0 -0
- package/.utils/docs_opencode/custom-tools.md +0 -209
- package/.utils/docs_opencode/custom-tools.pdf +0 -0
- package/.utils/docs_opencode/ecosystem.md +0 -81
- package/.utils/docs_opencode/ecosystem.pdf +0 -0
- package/.utils/docs_opencode/formatters.md +0 -142
- package/.utils/docs_opencode/formatters.pdf +0 -0
- package/.utils/docs_opencode/keybinds.md +0 -205
- package/.utils/docs_opencode/keybinds.pdf +0 -0
- package/.utils/docs_opencode/lsp.md +0 -202
- package/.utils/docs_opencode/lsp.pdf +0 -0
- package/.utils/docs_opencode/mcp-servers.md +0 -565
- package/.utils/docs_opencode/mcp-servers.pdf +0 -0
- package/.utils/docs_opencode/models.md +0 -234
- package/.utils/docs_opencode/models.pdf +0 -0
- package/.utils/docs_opencode/permissions.md +0 -248
- package/.utils/docs_opencode/permissions.pdf +0 -0
- package/.utils/docs_opencode/plugins.md +0 -409
- package/.utils/docs_opencode/plugins.pdf +0 -0
- package/.utils/docs_opencode/rules.md +0 -189
- package/.utils/docs_opencode/rules.pdf +0 -0
- package/.utils/docs_opencode/sdk.md +0 -522
- package/.utils/docs_opencode/sdk.pdf +0 -0
- package/.utils/docs_opencode/server.md +0 -324
- package/.utils/docs_opencode/server.pdf +0 -0
- package/.utils/docs_opencode/skills.md +0 -235
- package/.utils/docs_opencode/skills.pdf +0 -0
- package/.utils/docs_opencode/themes.md +0 -378
- package/.utils/docs_opencode/themes.pdf +0 -0
- package/.utils/docs_opencode/tools.md +0 -364
- package/.utils/docs_opencode/tools.pdf +0 -0
- package/.utils/zugzweb/client/node_modules/.tmp/tsconfig.app.tsbuildinfo +0 -1
- package/.utils/zugzweb/client/node_modules/.tmp/tsconfig.node.tsbuildinfo +0 -1
- package/.utils/zugzweb/client/node_modules/nanoid/.claude/settings.local.json +0 -14
- package/.utils/zugzweb/client/package-lock.json +0 -3707
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
# i2-audit-S.md — Iteration 2 (persona S walk-through)
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-04-27
|
|
4
|
-
**Persona:** S — Senior dev (10+yr), side-project tinkering on a 25-component prototype with husky/lint-staged. Reads patches line-by-line. Will not accept platitudes.
|
|
5
|
-
**Method:** Walked the 7-step scenario against actual v4 source (master.md / harness/SKILL.md / code-introspect.ts / memory.ts / critic.md / post-edit-watch.cjs / session-end-foldin.cjs). No mocks, just close reading + flow simulation.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Step 1 — INTAKE on existing repo (25 components + husky)
|
|
10
|
-
|
|
11
|
-
### What v4 does
|
|
12
|
-
`omd-master.md` §1 INTAKE branch: "existing code → CONTEXT_DETECT brief, then SLOT_GATE." Reads `.omd/context.json`. Persona detected via heuristic in signal-classifier (i1 fixed it).
|
|
13
|
-
|
|
14
|
-
### Verdict for S
|
|
15
|
-
**Acceptable, with caveats.**
|
|
16
|
-
|
|
17
|
-
- S has husky + lint-staged already → context-detect *should* notice and adjust tone (no need to lecture about quality bar). I see **no signal** in master.md or context.json schema that "existing tooling" is a slot — only `is_frontend` / token inventory. **MINOR:** persona-S should get an early acknowledgment ("husky 보이네요, 그쪽 톤 맞춰서 빠르게 갈게요") instead of generic onboarding. Currently the master will treat S the same as F if intake heuristic mis-classifies.
|
|
18
|
-
- Persona detection at INTAKE time relies entirely on the *first user message word/char count*. S writes long opinionated messages → likely classified `S` correctly. But if S opens with "audit this" (3 words), classifier flips to `V`. **MAJOR design gap:** persona is sticky-on-first-message, not re-evaluated at turn 3 once more text accumulates. master.md §0 doesn't mention re-classification; classifier only runs per-turn for *response style mirroring*, not for budget cap re-pegging.
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Step 2 — code-introspect on 25-component repo
|
|
23
|
-
|
|
24
|
-
### What it actually finds
|
|
25
|
-
Reading `code-introspect.ts` line-by-line:
|
|
26
|
-
|
|
27
|
-
- `HEX_RE = /#[0-9a-f]{3,8}\b/gi` — collects every hex literal in any file scanned, frequency-weighted. CSS-var hexes weighted ×3. **OK.**
|
|
28
|
-
- `PX_RE = /\b(\d+(?:\.\d+)?)px\b/g` — collects **every px value**, no filter. Then `topN(spacing, 10)`.
|
|
29
|
-
- `RADIUS_KW = /\brounded(?:-(?:sm|md|...))?\b/gi` — Tailwind class scan only.
|
|
30
|
-
|
|
31
|
-
### CRITICAL bug — "1px borders detected as spacing tokens"
|
|
32
|
-
Confirmed. `harvestFromText` adds **every** `Npx` match to `acc.spacing` with no semantic filter. In a 25-component repo with `border` / `border-t` / `outline-1` / `ring-1` / shadow offsets, **`1px` will dominate the frequency table**. Scenario walk:
|
|
33
|
-
|
|
34
|
-
- 25 components × ~5 borders each = ~125 hits of `1px` → dominates topN.
|
|
35
|
-
- Real spacing tokens (`p-4` Tailwind = 16px, `gap-2` = 8px) are **Tailwind classes, not raw px**, so they won't even land in the `PX_RE` bucket. The regex only catches raw `Npx` strings (CSS files, inline styles, arbitrary values like `p-[12px]`).
|
|
36
|
-
- Net result: `summarizeInventory` will tell the master `spacing scale: 1px/2px/4px/16px/...` — **the 1px and 2px are border widths, not spacing**.
|
|
37
|
-
|
|
38
|
-
**Worse:** master then shows S "spacing scale starts at 1px" in its acknowledgment prose. S will close the laptop. This is exactly the "noise output" failure mode S anticipated.
|
|
39
|
-
|
|
40
|
-
**Required fix:** distinguish *border-width-context* vs *spacing-context* via PostCSS AST walk on CSS, or AST scan on Tailwind classes (`p-N`, `gap-N`, `m-N`, `space-x-N`) for components — **not** raw `Npx` regex on tsx text. Cheap heuristic interim: ignore `1px` and `2px` when their occurrence cluster correlates with the words `border`/`outline`/`ring`/`divide` within ±15 chars.
|
|
41
|
-
|
|
42
|
-
### CRITICAL bug — radius/spacing inconsistency detection: missing
|
|
43
|
-
The interface `TokenInventory` has no `inconsistencies` field. `summarizeInventory` reports the *dominant* values but never flags "you have 6 different radius keywords (rounded-sm/md/lg/xl/2xl/full) — 6 is high; consider trimming to 3." **For S, this is the entire reason to run code-introspect.** A 10yr dev doesn't need to be told "you have these colors"; they need to be told **"you have 11 unique blues that don't form a scale."** Currently no such logic exists.
|
|
44
|
-
|
|
45
|
-
**Required:**
|
|
46
|
-
- Detect 8pt grid violation: spacing values not divisible by 4 or 8.
|
|
47
|
-
- Detect color drift: cluster colors by ΔE; flag when count > 5 in same hue.
|
|
48
|
-
- Flag radius scale length > 4.
|
|
49
|
-
|
|
50
|
-
None of this is in `code-introspect.ts`. The file is purely a frequency census, not an *inconsistency report*.
|
|
51
|
-
|
|
52
|
-
### MINOR
|
|
53
|
-
- `harvestFromTailwindConfig` regex-extracts hexes from the config source text. If the config does `colors: { ...stoneShades }` referencing an imported palette, the hex extraction silently misses it. No warning emitted. S will notice the mismatch immediately.
|
|
54
|
-
- `cssFiles` capped at 30, `componentFiles` at 60. With 25 components S is fine, but cap is silent if components > 60 — only a `warnings[]` entry that nothing surfaces to the user.
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Step 3 — Master proposes plan (PROPOSE_PLAN → OMD-PLAN.md)
|
|
59
|
-
|
|
60
|
-
### What I can read
|
|
61
|
-
master.md §6 says: build `PlanInputs` → `node -e "..."` or write inline → emit OMD-PLAN.md. The schema is in `src/core/plan-emitter.ts` (not read here). master.md §0.persona promises "spec-grade output."
|
|
62
|
-
|
|
63
|
-
### Verdict
|
|
64
|
-
**Cannot fully verify without reading plan-emitter.ts**, but signals from master.md:
|
|
65
|
-
|
|
66
|
-
- §12 "Output discipline" forbids marketing prose: "tight, direct sentences. ... no marketing fluff." Good.
|
|
67
|
-
- §0 promises "cite a token for every visual claim; cite a reference URL for every persona claim." If plan-emitter actually enforces this, S is happy.
|
|
68
|
-
- **Risk (MAJOR):** plan-emitter is not bound by the master's persona rules — it's a deterministic emitter. If the template has lines like "이 디자인은 사용자에게 따뜻한 경험을 제공합니다" baked in, S will see boilerplate. Need to read plan-emitter.ts to confirm; flagging as **unknown / probably suspect** based on the volume of Korean prose templates I see referenced elsewhere.
|
|
69
|
-
- **Risk (MAJOR):** §11–13 (success metrics / personas / principles) — master rule 999 says "Never fabricate §11–13 facts. Use `[FILL IN]` placeholder." Good rule on paper. But OMD-PLAN.md is generated *before* DESIGN.md.patch — does plan-emitter respect [FILL IN] on these slots? Unclear from master.md alone.
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Step 4 — Push back on §11–13 placeholder strategy
|
|
74
|
-
|
|
75
|
-
### Scenario
|
|
76
|
-
S says: "I don't want `[FILL IN]` in §13 personas — give me a draft I can edit, even if speculative. The placeholder makes the doc look unfinished and I'll forget."
|
|
77
|
-
|
|
78
|
-
### What master should do
|
|
79
|
-
master.md rule 999: "Never fabricate §11–13 facts. Use `[FILL IN]` placeholder."
|
|
80
|
-
|
|
81
|
-
This is a **hard rule with no escape hatch**. master will refuse, citing the rule. **For persona S this is correct behavior** — S explicitly said "spec-grade, will read line by line" → fabricated personas would be noise. But:
|
|
82
|
-
|
|
83
|
-
- master.md gives no scripted response for this pushback. Rule 8 (Escalation hierarchy) covers "user keeps correcting" but not "user explicitly asks to violate hard rule."
|
|
84
|
-
- Likely outcome: master either (a) violates rule 999 to please S, (b) refuses with platitude ("죄송하지만 정확성을 위해..."). Neither is great.
|
|
85
|
-
- **Required:** rule 999 should be paired with a *bounded fabrication* mode: "draft persona with `[SPECULATIVE]` tag, user must approve before §13 is final." This gives S a starting draft without polluting the doc with hard claims.
|
|
86
|
-
|
|
87
|
-
**Verdict: MAJOR gap.** Hard rule without negotiation protocol.
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Step 5 — critic spawn between iterations
|
|
92
|
-
|
|
93
|
-
### Reading omd-critic.md
|
|
94
|
-
- Tools: `Read, Write, Glob, Grep` only — **no Edit/Bash**. The constraint is intentional and correct. ✅
|
|
95
|
-
- Output: `critique.md` with §1 root cause / §2 decision tree / §3 mandatory re-do scope / §4 omd remember / §5 fragility / §6 severity. ✅
|
|
96
|
-
- "Diagnostic frame ... Trace back to a specific decision the master made. Do NOT stop at the surface." ✅
|
|
97
|
-
- Examples list correct vs wrong root causes — concrete and grounded. ✅
|
|
98
|
-
|
|
99
|
-
### Will it actually do root-cause?
|
|
100
|
-
The structure forces it to. The §1 template literally has fields `Symptom phase` / `Root cause phase` / `Evidence (verbatim)`. Critic has to fill them or produce malformed markdown. **Strong scaffold.**
|
|
101
|
-
|
|
102
|
-
### Concerns
|
|
103
|
-
- **MINOR:** §2 decision-tree audit table has no minimum-row requirement. A lazy critic could write 1 row and call it done. Should require ≥3 rows (or N = number of phases that ran).
|
|
104
|
-
- **MAJOR:** "Always quote evidence verbatim from artifacts. No paraphrase." — critic only has Read/Glob/Grep. If artifact is a binary (e.g., `eval/screenshots/*.png`), critic cannot quote it. The rule will silently break for visual regressions. Need an explicit fallback ("for image evidence, cite filename + reason for inferred issue").
|
|
105
|
-
- **MINOR:** No anti-platitude clause. Master.md §12 forbids marketing fluff; critic.md should mirror with "no 'overall the design has potential' style hedging."
|
|
106
|
-
- **CRITICAL risk:** "if you could patch surface symptoms, the master would never have to re-think its decisions" — this is great philosophy, but the iteration loop in master.md §8 says critic-spawn → "re-enter at lowest broken phase (cap 3 iterations total)." If critic identifies Phase 3 (IA) as root cause, master re-runs Phase 3 *and all downstream phases*. Three iterations × 6 downstream phases = 18 phase-re-runs in worst case. No de-dup or memoization mentioned. S will run out of patience and budget at iteration 2.
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Step 6 — Week-long use, preferences accumulate, session-end-foldin
|
|
111
|
-
|
|
112
|
-
### Reading session-end-foldin.cjs
|
|
113
|
-
Algorithm (verbatim from hook):
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
score = entries.length × importanceAvg × recency × 10
|
|
117
|
-
recency = exp(-daysSince/7)
|
|
118
|
-
threshold default = 60
|
|
119
|
-
recurrence = entries.length >= 3
|
|
120
|
-
window = 7 days
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### CRITICAL bug — score formula is wrong
|
|
124
|
-
Walk the math:
|
|
125
|
-
|
|
126
|
-
- 3 entries, importance=3 (default), all today → score = 3 × 3 × 1.0 × 10 = **90 → fires**.
|
|
127
|
-
- 3 entries, importance=3, 4 days ago → recency = exp(-0.57) ≈ 0.566 → score = 3 × 3 × 0.566 × 10 = **51 → does NOT fire**.
|
|
128
|
-
- 5 entries, importance=2, today → 5 × 2 × 1 × 10 = **100 → fires**.
|
|
129
|
-
- 10 entries, importance=1 (opinions), today → 10 × 1 × 1 × 10 = **100 → fires**.
|
|
130
|
-
|
|
131
|
-
**Problem 1:** importance=1 ("opinion") accumulating freely promotes to a §-level rule. S casually saying "I prefer rounded over square" 10 times in a week → fold-in proposal as if it were a hard principle. **This is the "false promotion" failure mode S explicitly flagged.**
|
|
132
|
-
|
|
133
|
-
**Problem 2:** the `entries.length` is *raw count*, no de-duplication of near-identical notes. If S says "shadows feel heavy" 5 times across 5 sessions on the same component, fold-in counts 5 — but it's one signal repeated. Algorithm should be `unique_clusters * importanceAvg * recency` where clusters are computed via note-similarity (even cheap n-gram). Currently `synthesizeRule` just joins last 3 notes verbatim — which means promoted rule is "- shadows feel heavy / - shadows feel heavy / - shadows feel heavy". Useless.
|
|
134
|
-
|
|
135
|
-
**Problem 3:** the `byScope` grouping uses *exact scope string*. If S logs preferences with scope `components.button` once and `component.button` once and `voice.button` once, no group reaches 3. Conversely a single bug in agent code that always writes scope `unknown` will cluster everything into one super-group.
|
|
136
|
-
|
|
137
|
-
**Problem 4:** windowMs filter discards anything older than 7 days, but `entries.length >= 3` *recurrence* threshold is only checked **inside the window**. So a slow-burn signal (1/week × 6 weeks) will never fold in. S working on a side project = exactly this profile.
|
|
138
|
-
|
|
139
|
-
### Will it fire even once for S in a week?
|
|
140
|
-
- Day 1-2: S logs 2-3 prefs, mostly importance=2-3 → window has 2-3 → no fold-in.
|
|
141
|
-
- Day 3-4: 1-2 more → window now 4-5 entries, but spread across scopes → per-scope likely <3 → no fold-in.
|
|
142
|
-
- Day 5-7: realistically S writes 1 pref per session, 1 session per day. If 3 land in `voice` scope by day 7 with importance=3, today → score = 3×3×1×10 = 90 → **fires once**.
|
|
143
|
-
|
|
144
|
-
So yes, **it can fire once** — but only if S's prefs happen to cluster on one scope, and only if they're recent. The threshold is set assuming "8h work day, multiple corrections per scope." For a **side-project user** (S's profile), the threshold is too high and the window too narrow. **MAJOR misalignment with stated persona.**
|
|
145
|
-
|
|
146
|
-
### Fold-in algorithm in memory.ts
|
|
147
|
-
`computeFoldInProposals` mirrors the hook (good — single source of truth conceptually, though the hook re-implements it inline rather than importing — **CRITICAL drift risk:** any fix to one needs duplicate fix to the other). I see they're already drifted in subtle ways — hook hardcodes default config inline (`fold_in_score_threshold: 60, recurrence_window_days: 7`) and uses `now = Date.now()` while ts.lib uses `now = new Date()` parameter. Functionally equivalent here, but the duplication will rot.
|
|
148
|
-
|
|
149
|
-
`mapScopeToSection`: heuristic prefix matching. `scope = "color.dark-mode"` → matches `startsWith('color')` → §2. `scope = "voice.error.spec"` → matches `startsWith('voice')` → §10. OK. But `scope = "spacing.button.cta"` → §5 Layout? Should be §4 Component Stylings. The mapping is too coarse. **MINOR for S** (S can fix the section in plan review).
|
|
150
|
-
|
|
151
|
-
### Hook fires?
|
|
152
|
-
- Hook is `Stop` event. Will it actually run? Depends on settings.json registration — not visible from this audit. **Cannot verify without `.claude/settings.json`.** Assuming registered: yes the file logic itself is sound (parses pref blocks, writes timeline.md, exits cleanly).
|
|
153
|
-
- One real bug: line 93 `process.stdout.write(JSON.stringify({}) || '')` — `JSON.stringify({})` returns `"{}"` (truthy string), so the `|| ''` is dead code. Cosmetic. **MINOR.**
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Step 7 — post-edit-watch hook on Tailwind file
|
|
158
|
-
|
|
159
|
-
### Scenario
|
|
160
|
-
S edits `tailwind.config.ts` and adds a new hex `#3a86ff` in `theme.extend.colors.brand`.
|
|
161
|
-
|
|
162
|
-
### Reading post-edit-watch.cjs
|
|
163
|
-
- Filters: `tsx|jsx|ts|js|css|scss` — `tailwind.config.ts` matches via `.ts`. ✅
|
|
164
|
-
- Reads `payload.toolInput.content` or `new_string`. For an `Edit` of tailwind.config.ts, `new_string` will contain the inserted hex. ✅
|
|
165
|
-
- Extracts hexes, dedups, lowercases.
|
|
166
|
-
- Reads DESIGN.md, scans hex set.
|
|
167
|
-
- Reports introduced = hexes minus design set.
|
|
168
|
-
|
|
169
|
-
### Bugs
|
|
170
|
-
|
|
171
|
-
**MAJOR bug — case-sensitivity asymmetry:**
|
|
172
|
-
- New text scan: `(newText.match(/#[0-9a-f]{3,8}\b/gi) || []).map((h) => h.toLowerCase())` — matches both cases, lowercases.
|
|
173
|
-
- DESIGN.md scan: `text.toLowerCase()` first, then `text.match(/#[0-9a-f]{3,8}\b/g)` — **non-`i` regex on already-lowercased text**. Works but fragile.
|
|
174
|
-
- This *happens to work* but the asymmetry is a code smell — one of these will get touched and break the other.
|
|
175
|
-
|
|
176
|
-
**MAJOR bug — false positives on hex-like numerics:**
|
|
177
|
-
`#3a86ff` matches. But so does `#abc` and `#fff`. The regex `[0-9a-f]{3,8}` is correct for hex but **also matches `#decade` (a CSS comment "#decade") or random strings like `#abcdef` in code comments**. For S editing a config file with comments like `// see issue #1234abc`, **wait — `\b` after `[0-9a-f]{3,8}` requires a word boundary**, so `#abcdef` followed by `g` wouldn't match. OK, that's actually safe for length 3/4/6/8. But length-5 matches like `#decade` (length 6, valid hex chars, valid hex) **would** be picked up as a "color." False positive.
|
|
178
|
-
|
|
179
|
-
**MAJOR bug — DESIGN.md token coverage assumption:**
|
|
180
|
-
The hook flags any hex *not in DESIGN.md*. But DESIGN.md uses `oklch()` or CSS-var references in modern projects (Tailwind v4 / shadcn). If DESIGN.md says `--color-brand: oklch(0.62 0.19 256)` and never literally writes `#3a86ff`, the new hex will *always* be flagged "introduced" — even though it's the literal of the canonical token. **Net:** every hex edit gets flagged. S will silence the hook by day 2.
|
|
181
|
-
|
|
182
|
-
**MINOR bug — message is borderline noise:**
|
|
183
|
-
The output is "방금 X 에 DESIGN.md에 없는 색이 들어갔어요: #abc, #def, ...". For a config edit that adds 12 hexes (a palette import), the user gets a 3-hex truncated list with no scope on whether these are intentional palette extensions or accidental drift. Should differentiate: "1 hex added in `theme.colors.*` (likely intentional palette extension) — preference capture optional" vs "1 hex added in `Button.tsx` className=[#fff] (likely surface-patch) — preference capture **recommended**".
|
|
184
|
-
|
|
185
|
-
**MINOR bug — exit code:**
|
|
186
|
-
Hook exits 0 in all paths. Hook contract for Claude Code surfacing `additionalContext` is via stdout JSON. Confirmed correct on line 71. ✅
|
|
187
|
-
|
|
188
|
-
### Will it fire?
|
|
189
|
-
On `Edit` of `tailwind.config.ts` with `new_string` containing `#3a86ff` and DESIGN.md not containing it: **yes, fires, message displays.** Useful? **Marginally** — message is a one-liner suggestion, not a noise wall. But the false-positive rate (oklch projects, palette imports, comment hex-likes) will erode S's trust within days.
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## Cross-cutting findings
|
|
194
|
-
|
|
195
|
-
### CRITICAL
|
|
196
|
-
- **C1.** `code-introspect.ts` reports `1px` border widths as top spacing tokens (Step 2). Spec violation: "spacing" semantically excludes border widths. Fix required before v4 ships.
|
|
197
|
-
- **C2.** `code-introspect.ts` does **not** detect inconsistencies (radius scale length, color cluster count, 8pt grid violations) — only frequency. For S the headline value is missing. Either rename to `code-census.ts` or actually add the inconsistency detector.
|
|
198
|
-
- **C3.** Fold-in score formula promotes opinion-importance entries (importance=1) freely once count×recency clears the bar (Step 6). False promotion failure mode confirmed. Fix: weight by `(importance - 1)` so opinions need higher count to clear; or hard floor `importanceAvg >= 2.5`.
|
|
199
|
-
- **C4.** Fold-in algorithm duplicated between `memory.ts` and `session-end-foldin.cjs` with subtle config drift (Step 6). Source-of-truth violation.
|
|
200
|
-
- **C5.** post-edit-watch.cjs cannot reconcile `oklch()` / CSS-var DESIGN.md with literal-hex code edits → every Tailwind v4 project will see 100% false-positive flags (Step 7).
|
|
201
|
-
|
|
202
|
-
### MAJOR
|
|
203
|
-
- **M1.** Persona classification is sticky-on-first-message; long-form S who opens with "audit this" misclassifies (Step 1).
|
|
204
|
-
- **M2.** Rule 999 (`[FILL IN]` for §11–13) has no negotiation protocol when user pushes back (Step 4).
|
|
205
|
-
- **M3.** Critic.md lacks anti-platitude clause; can quietly hedge in §6 severity verdict.
|
|
206
|
-
- **M4.** Critic re-do-scope can cascade into 18 phase-re-runs over 3 iterations with no memoization (Step 5).
|
|
207
|
-
- **M5.** post-edit-watch.cjs case-sensitivity asymmetry between new-text scan and DESIGN.md scan (Step 7).
|
|
208
|
-
|
|
209
|
-
### MINOR
|
|
210
|
-
- **m1.** No "existing tooling acknowledgment" slot — husky/lint-staged user gets generic onboarding.
|
|
211
|
-
- **m2.** `harvestFromTailwindConfig` silently misses imported palettes.
|
|
212
|
-
- **m3.** Component/CSS file caps emit warnings nobody reads.
|
|
213
|
-
- **m4.** `mapScopeToSection` too coarse (`spacing.button` → §5 instead of §4).
|
|
214
|
-
- **m5.** session-end-foldin.cjs dead code on line 93.
|
|
215
|
-
- **m6.** Critic.md §2 has no minimum-row requirement; lazy critic can pass with 1-row table.
|
|
216
|
-
- **m7.** post-edit-watch message doesn't differentiate "intentional palette extension" vs "drift in component file."
|
|
217
|
-
- **m8.** Opinion vocab in signal-classifier may still be thin for English (i1 expanded Korean only — would need to verify but English opinionated dev vocabulary like "honestly / frankly / hate / love / not having it" likely under-covered).
|
|
218
|
-
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
## Verdict
|
|
222
|
-
|
|
223
|
-
**v4 is not yet S-ready. Two CRITICAL must-fix before a senior dev would tolerate a daily-driver loop:**
|
|
224
|
-
|
|
225
|
-
1. `code-introspect` outputs noise (border widths as spacing, no inconsistency detection). S will dismiss the system after the first inventory readout.
|
|
226
|
-
2. Fold-in algorithm allows opinion-tier entries to promote into §-level rules with mere recency/recurrence. False promotion is the single failure mode S flagged in advance — and the formula does it by default.
|
|
227
|
-
|
|
228
|
-
The critic scaffolding is genuinely strong (template forces verbatim evidence and root-cause traceback), and the file-handoff architecture between master and harness is clean. But the *measurement layer* (code-introspect + fold-in score) needs a rebuild, not a tweak. Currently the system is **honest about its rules but wrong in its math**.
|
|
229
|
-
|
|
230
|
-
Recommend i3 = focused fix of C1/C2/C3/C4/C5 with unit tests on (a) realistic 25-component fixture (real border + spacing mix) and (b) week-long synthetic preference log validating the score formula doesn't promote opinions. M-tier items are deferrable; minors can wait until post-v4.
|
|
231
|
-
|
|
232
|
-
**Severity: CRITICAL.**
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# Audit V (Vibe Coder)
|
|
2
|
-
|
|
3
|
-
## Walk-through narrative
|
|
4
|
-
|
|
5
|
-
Turn 0 — `omd install-skills` runs at the shell. **Silent — no prompt, no "now restart Claude Code"**. SKILL.md step 0 (omd-harness/SKILL.md:31-43) explicitly says install-skills *after* a session start requires `/agents` re-scan or full Cmd+Q restart, but install-skills itself never tells me that. I open Claude Code (already running) and don't know I need to restart.
|
|
6
|
-
|
|
7
|
-
Turn 1 — I type `/omd-harness 헬스 트래킹 메인 화면`. UserPromptSubmit hook (skill-activation.cjs) checks rules. The trigger keywords for omd-harness in skill-rules.json:54-62 are `["하네스","알아서","전체","디자인 처음부터","메인 화면 디자인","와이어프레임","디자인 시작"]`. My phrase "헬스 트래킹 메인 화면" contains "메인 화면" but the rule is "메인 화면 디자인" (substring match `lower.includes(...)` — fails because "디자인" is missing). So the hook does NOT fire required activation. The slash command itself still runs the skill (slash command bypasses activation hook gating anyway), but the redundancy guard is dead weight.
|
|
8
|
-
|
|
9
|
-
Turn 2 — Skill body runs preflight. Step 0 tries to detect if `omd-master` subagent is registered. It has *no actual mechanism* to verify (SKILL.md:33 just says "Agent tool 사용 가능 subagent 목록에 ... 있는지 확인" — there's no API to introspect subagent list). So it gambles. If install-skills was post-session it just crashes on first Agent() call.
|
|
10
|
-
|
|
11
|
-
Turn 3 — Step 1 runs `omd harness "<task>" --internal`, gets runDir. Step 2 loads `.claude/data/reference-fingerprints.json` and asks me to pick a reference. **This is an extra mandatory question BEFORE the master even spawns**. For a 7-turn budget V persona this burns turn 1/7 on something I don't care about. I type "go".
|
|
12
|
-
|
|
13
|
-
Turn 4 — master spawns. INTAKE state. context-detect.ts runs, detects Next + Tailwind + 10 components. inferPersonaSignal (context-detect.ts:128-137) sees `is_frontend && component_file_count between 5-20 && !has_design_md` → flags V. Turn cap = 7 (budget-tracker.ts:22).
|
|
14
|
-
|
|
15
|
-
Turn 5 — master writes phase1-round1.questions.json (RULE 2: tightly-coupled 4-question bundle for audience/tone/actions/anti). Launcher renders AskUserQuestion. I see 4 questions in one picker. I click through. Answers saved.
|
|
16
|
-
|
|
17
|
-
Turn 6 — master re-spawns with `continue checkpoint:phase1-round1`. Reads answers. signal-classifier.ts loaded, but **classifier is only called on free-text, not picker answers** — picker answers are option-label strings, never reach the opt-out detection. So my "skip"-equivalent option on a picker is just stored as the literal label, master treats it as a real selection.
|
|
18
|
-
|
|
19
|
-
Turn 7 — SLOT_GATE checks remaining. exit_scope, success_criteria, a11y_floor — RULE 1 says default these. But the master prompt at omd-master.md:73-89 lists `exit_scope` as required with default `wireframe-and-spec`. Will master actually apply default and not ask, or ask anyway? Prompt is ambiguous. I get asked. Type "그냥".
|
|
20
|
-
|
|
21
|
-
Turn 8 — signal-classifier picks up "그냥" → `opt_out_skip`. budget tick. RULE 6 requires 3 in a row to FAST_EXIT. I'm at 1.
|
|
22
|
-
|
|
23
|
-
Turn 9 — master asks personas_named. I type "skip". opt_out_skip count=2.
|
|
24
|
-
|
|
25
|
-
Turn 10 — master asks anti_patterns. I'm at turn 7+ now, **already past V cap of 7**. budget-tracker decide() returns `force_propose_plan` (budget-tracker.ts:81-83) but only if turn_count >= cap. Since cap is checked against `turn_count`, and V cap is 7, OMD-PLAN should fire. But the launcher safety cap is 12 spawns — these are decoupled. The user's perceived turn count vs spawn count vs budget turn_count are 3 different counters with no clear sync.
|
|
26
|
-
|
|
27
|
-
I close the terminal at turn ~8-9 because I've answered too many questions and have zero artifact yet.
|
|
28
|
-
|
|
29
|
-
## CRITICAL issues
|
|
30
|
-
|
|
31
|
-
- **[C1] Subagent registration check is fake.** `skills/omd-harness/SKILL.md:31-43` claims to detect if `omd-master` is registered, but there is no Claude Code API for the launcher (running as the main thread Skill body) to introspect available subagent types before calling `Agent()`. So the "preflight" is wishful prose. If a user runs `omd install-skills` *after* opening Claude Code, the first `Agent({subagent_type: "omd-master"})` call inside the loop (omd-harness/SKILL.md:117-122) throws "Agent type not found" with no graceful handling. Symptom: terminal shows raw error, run dir half-bootstrapped, user blocked. **Fix:** wrap the first Agent() call in try/catch with the `Cmd+Q restart` guidance baked into the catch. Also have `omd install-skills` print a post-install banner: "Restart Claude Code (Cmd+Q) before using new skills."
|
|
32
|
-
|
|
33
|
-
- **[C2] Picker answers bypass signal-classifier entirely.** `src/core/signal-classifier.ts:79-153` operates on free-text. The omd-harness loop (SKILL.md:144-147) writes raw `answers` from AskUserQuestion straight to `<checkpoint>.answers.json` and the master is told to read it. Answers are option `label` strings (e.g. "다이어터"), so opt-out detection (RULE 6 in omd-master.md:113-117) never triggers from picker UI — opt-out only works in the rare free-text "Other" path. For persona V who clicks through pickers tersely, FAST_EXIT is effectively unreachable. **Fix:** classify the *concatenation of picked labels + Other free-text*, and treat "skip"-style pre-baked options as `opt_out_skip` via a label allowlist; OR add an explicit "그만하기 / stop" first-class option to every checkpoint.
|
|
34
|
-
|
|
35
|
-
- **[C3] Reference selection forced before master spawns burns a turn for V.** SKILL.md:60-103 makes DESIGN.md reference selection a *separate* mandatory question outside master's budget tracker. V's cap is 7 (budget-tracker.ts:22) but this turn isn't counted, and it's a content-empty question (V doesn't know/care which of 67 references). With Phase 1 round 1 being a 4-Q bundle and the harness expecting up to a dozen subsequent gates, V already exceeds the 7-turn perceived budget by gate 3. **Fix:** when persona_signal_initial is V (from context-detect.ts:128-137 — already cheap to compute pre-spawn), auto-pick top-1 ref and include it in OMD-PLAN.md as editable. Don't ask.
|
|
36
|
-
|
|
37
|
-
- **[C4] Master ↔ launcher state-sync race on `.handoff.json`.** budget-tracker.ts:54-69 writes `handoff.budget` by reading existing `.handoff.json`, mutating, writing whole file back. master also writes `.handoff.json` per turn (omd-master.md:131-146). Launcher reads `.handoff.json` on its side (SKILL.md:131). If master writes handoff after `tick()` writes budget, the partial write order is undefined; master may overwrite budget, OR `saveBudget` may race-overwrite handoff state/questions_file pointers. There is no atomic-rename pattern. Symptom: on turn 5+, launcher reads stale handoff that points at stale checkpoint id, AskUserQuestion shows a question already answered. **Fix:** atomic write (`writeFileSync` to `.handoff.json.tmp` + `renameSync`); single writer (master only), expose `BudgetState` mutation through a CLI helper master invokes.
|
|
38
|
-
|
|
39
|
-
## MAJOR issues
|
|
40
|
-
|
|
41
|
-
- **[M1] Hook keyword mismatch makes activation unreliable.** `.claude/skills/skill-rules.json:58` keyword `"메인 화면 디자인"` requires the substring including "디자인". Persona V phrases "메인 화면 만들어줘" or "헬스 트래킹 메인 화면" → no hit. The omd-apply rule (skill-rules.json:8-17) catches "만들어" though, so omd-apply fires *instead of* omd-harness — wrong skill. **Fix:** loosen omd-harness keywords to `["메인 화면","와이어프레임","처음부터"]` and add an intent pattern that takes priority over omd-apply when the phrase implies *full design* not *edit existing*.
|
|
42
|
-
|
|
43
|
-
- **[M2] Budget caps don't include the reference-pick turn or plan-review turn.** budget-tracker.ts cap V=7 is meant to be user-perceived turns. But turn_count is incremented in `tick()` only when master is spawned with a slot probe (omd-master.md unclear when exactly). PLAN_REVIEW is a separate ask (omd-master.md:62-63) — does it count? No spec. SHIP_GATE is another. So V's 7-turn promise is a lie; real user-facing question count is 7 + ref + plan-review + ship + 2-3 phase gates ≈ 12. **Fix:** define `turn_count` precisely as "number of AskUserQuestion calls relayed to user" and increment in the launcher, not master. Document mandatory gates as not-counted, but cap them at 3.
|
|
44
|
-
|
|
45
|
-
- **[M3] FAST_EXIT trigger requires 3-in-a-row but master has no per-slot opt-out memory.** omd-master.md:113-117 says "opt_out_skip × 3 → propose plan", but budget-tracker.ts:117-121 only persists `last_signal_kind`, not a counter. So "3 in a row" is detected by master re-reading `trace.jsonl` each turn (omd-master.md:283-296) and counting — but trace.jsonl writes are advisory, not enforced. If master forgets to log, counter resets. **Fix:** add `consecutive_skip_count` and `consecutive_frustration_count` fields to BudgetState; increment/reset in `tick()` based on `signal_kind`.
|
|
46
|
-
|
|
47
|
-
- **[M4] OMD-PLAN.md edit-then-go round-trip is undefined.** omd-master.md:62-63 says "User edited file → re-read OMD-PLAN.md, ask one more confirm." But OMD-PLAN.md sections (plan-emitter.ts:39-126) are free-form Markdown; master must re-parse to extract slot values. There is no parser. Master will hallucinate a diff or ignore edits. For V who would just type "go" without reading, fine; for the user who edits, their changes silently vanish. **Fix:** plan-emitter parser that extracts slots back from Markdown headings, with `[FILL IN]` markers as anchors.
|
|
48
|
-
|
|
49
|
-
- **[M5] context-detect frontend definition is too loose.** context-detect.ts:159-163 considers the project frontend if `src/components/` OR `app/` OR `pages/` directory exists. A pure backend Next.js API project with `app/` folder would be classified as frontend, persona signal becomes V, and master would launch a wireframe pipeline on a non-UI codebase. **Fix:** require both a framework dep AND at least one .tsx/.jsx file present.
|
|
50
|
-
|
|
51
|
-
- **[M6] No path normalization for Korean slugs in run dir.** SKILL.md:51-58 punts slug generation to `omd harness --internal`. If that helper doesn't transliterate Korean → ascii, downstream Bash usage of `<run_dir>` paths breaks on shells that don't quote consistently. Master uses `Bash` for `node -e "..."` plan emit (omd-master.md:188) and `omd init prepare` — these need quoted paths. Symptom: silent path-quoting bugs on edge characters. **Fix:** verify run dir slug is `[a-z0-9-]+` only; assert in launcher before continuing.
|
|
52
|
-
|
|
53
|
-
## MINOR issues
|
|
54
|
-
|
|
55
|
-
- **[m1] Master prompt says 8-16 turn average (omd-master.md:3) but persona caps allow V=7. Inconsistent.** Update agent description to "7-16 turn (persona-adaptive)".
|
|
56
|
-
|
|
57
|
-
- **[m2] reference-pick prose (SKILL.md:88-94) uses Korean colloquial mixed with English ids — fine, but no English variant for English-speaking users.** Add locale switch.
|
|
58
|
-
|
|
59
|
-
- **[m3] post-edit-watch.cjs only checks hex colors (post-edit-watch.cjs:43), not spacing/radius drift mentioned in the file's own header comment.** Either implement or remove the claim.
|
|
60
|
-
|
|
61
|
-
- **[m4] plan-emitter.ts:128-132 leaks persona signal as HTML comment in OMD-PLAN.md.** Comment says "not user-facing" but Markdown viewers often show HTML comments in source view. Drop entirely or move to `.omd/internal/`.
|
|
62
|
-
|
|
63
|
-
- **[m5] signal-classifier.ts:131 sets persona V on `opt_out_skip || approval` with ≤5 words — but approval (e.g., "go") is also how F and S confirm. Will misclassify a senior dev who types "go" tersely.** Add latency or follow-up evidence before locking persona.
|
|
64
|
-
|
|
65
|
-
- **[m6] Hook skill-activation.cjs:35 does `lower.includes(k.toLowerCase()) || prompt.includes(k)` — Korean already-lowercase, the second OR is dead code for Korean-only keywords. Cosmetic.**
|
|
66
|
-
|
|
67
|
-
- **[m7] session-state-loader.cjs:31 caps state.md injection at 60 lines but state.md format isn't documented anywhere — fragile contract.**
|
|
68
|
-
|
|
69
|
-
## Overall verdict
|
|
70
|
-
|
|
71
|
-
**major rework**
|
|
72
|
-
|
|
73
|
-
The conversational state machine is well-conceived on paper (omd-master.md:39-67) but three first-contact failures (C1, C2, C3) would break or annoy persona V before they reach the first artifact. The budget contract (M2, M3) over-promises a 7-turn experience that the surrounding orchestration silently exceeds. Fix C1-C4 + M1-M3 before any more iteration on phases 5+; the downstream pipeline doesn't matter if V quits at turn 4.
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# i2 Consolidated Findings + Fix Plan
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-04-29
|
|
4
|
-
**Method:** 4 parallel audit subagents (V/J/F/S persona). Each read v4 implementation files and walked through the master state machine mentally.
|
|
5
|
-
|
|
6
|
-
## Cross-persona critical findings (deduped)
|
|
7
|
-
|
|
8
|
-
| # | Issue | Cited by | Fix tier |
|
|
9
|
-
|---|---|---|---|
|
|
10
|
-
| C1 | Subagent registration "preflight" is fake (no API) — first Agent() call may throw | V | 1 |
|
|
11
|
-
| C2 | Picker answers bypass signal-classifier — opt-out works only in free-text | V | 1 |
|
|
12
|
-
| C3 | Reference-pick burns user turn before master spawns (V cap=7) | V | 1 |
|
|
13
|
-
| C4 | Master ↔ launcher race on `.handoff.json` (no atomic write) | V | 2 |
|
|
14
|
-
| F1 | No F-FAST path — founder forced through 8-16 turn avg | F | 1 |
|
|
15
|
-
| F2 | dembrandt 90s timeout + unimplemented fallback (lethal on URL extract) | F | 1 |
|
|
16
|
-
| F3 | Default `exit_scope = wireframe-and-spec` mismatches F's handoff-zip need | F | 1 |
|
|
17
|
-
| J1 | URL_EXTRACT branch unimplemented (master.md:56 references it) | J | 1 |
|
|
18
|
-
| J2 | @figma/code-connect detected but used only for persona, never as token source | J | 2 |
|
|
19
|
-
| J3 | Catalog match will false-rank `figma` id when user shares own Figma file | J | 1 |
|
|
20
|
-
| J4 | PlanInputs has no extracted-token schema → tokens vanish before OMD-PLAN.md | J | 1 |
|
|
21
|
-
| S1 | code-introspect treats 1px borders as spacing tokens (PX_RE unfiltered) | S | 1 |
|
|
22
|
-
| S2 | No inconsistency detection (no 8pt-grid check, no radius-scale check) | S | 3 (defer) |
|
|
23
|
-
| S3 | Fold-in math: importance=1 × count=10 still promotes (false rule) | S | 1 |
|
|
24
|
-
| S4 | Fold-in duplicated in memory.ts AND session-end-foldin.cjs (drift risk) | S | 1 |
|
|
25
|
-
| S5 | post-edit-watch hex case asymmetry (Tailwind v4 oklch / CSS vars unhandled) | S | 1 |
|
|
26
|
-
|
|
27
|
-
## Major (priority 2)
|
|
28
|
-
|
|
29
|
-
- V-M1 hook keyword "메인 화면 디자인" too narrow → loosen
|
|
30
|
-
- V-M2 turn count not synced (master vs launcher) → spec
|
|
31
|
-
- V-M3 FAST_EXIT counter not persisted → add to BudgetState
|
|
32
|
-
- V-M4 OMD-PLAN.md edit round-trip parser missing → add Markdown→PlanInputs
|
|
33
|
-
- V-M5 frontend detection requires `is_frontend` to also need `.tsx/.jsx` file
|
|
34
|
-
- F-Major: turn count, persona sticky, no anti-platitude
|
|
35
|
-
- J-Major: designVocab regex too narrow (8pt grid / type ramp / modular scale missing), no J-specific question library, Phase 5 patch cites catalog tokens as user's
|
|
36
|
-
- S-Major: persona sticky, no rule 999 negotiation, no anti-platitude in critic, cascade re-runs, hex case
|
|
37
|
-
|
|
38
|
-
## Fix execution plan
|
|
39
|
-
|
|
40
|
-
**Batch A — data/code quality**
|
|
41
|
-
1. code-introspect: filter spacing < 4px (1px borders, etc.)
|
|
42
|
-
2. signal-classifier: re-classify picker labels via opt-out corpus
|
|
43
|
-
3. memory.ts: tighten fold-in (require importance avg ≥ 3 AND score ≥ 80)
|
|
44
|
-
4. session-end-foldin.cjs: align formula with memory.ts (single SoT note)
|
|
45
|
-
5. post-edit-watch.cjs: hex case + 3-vs-6 char normalization
|
|
46
|
-
6. designVocab regex: add 8pt grid / type ramp / modular scale / tracking / leading / line-height / radius scale / elevation / hierarchy
|
|
47
|
-
|
|
48
|
-
**Batch B — state machine**
|
|
49
|
-
7. F-FAST path: empty repo + URL hint + first turn → propose plan immediately, defaults
|
|
50
|
-
8. Persona-driven exit_scope: F → handoff-zip, others → wireframe-and-spec
|
|
51
|
-
9. V auto-pick top-1 ref (skip ref question)
|
|
52
|
-
10. Persona signal re-eval each turn
|
|
53
|
-
11. Anti-platitude clause in critic prompt
|
|
54
|
-
12. PlanInputs token schema: palette/typography/spacing fields
|
|
55
|
-
|
|
56
|
-
**Batch C — URL/data**
|
|
57
|
-
13. url-token-extractor: figma.com special case (graceful "paste tokens" message)
|
|
58
|
-
14. URL_EXTRACT branch: actually call extractor, fallback to catalog
|
|
59
|
-
15. Plan-emitter: surface extracted tokens
|
|
60
|
-
|
|
61
|
-
**Batch D — install/hooks**
|
|
62
|
-
16. install-skills postinstall: explicit "restart Claude Code" banner
|
|
63
|
-
17. skill-rules.json: loosen omd-harness keywords
|
|
64
|
-
|
|
65
|
-
**Batch E — guards**
|
|
66
|
-
18. install-skills + master spawn: try/catch + recovery prose
|
|
67
|
-
19. .handoff.json atomic write (rename pattern)
|
|
68
|
-
20. New unit tests covering all fixes
|
|
69
|
-
|
package/.opencode/oh-my-design/skills/omd-lab-02-design-harness/runs/v4-self-test/postmortem.md
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
# v4 Self-Test Loop — Postmortem
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-04-29 (single session)
|
|
4
|
-
**Iterations:** 2 (i1 unit-test driven + i2 audit-subagent driven)
|
|
5
|
-
**Total fixes applied:** 23 (16 critical + 7 major/minor)
|
|
6
|
-
**Final state:** 545/545 tests pass, build clean
|
|
7
|
-
|
|
8
|
-
## Iteration 1 — unit test driven
|
|
9
|
-
|
|
10
|
-
### Bugs caught
|
|
11
|
-
|
|
12
|
-
7 critical via unit tests:
|
|
13
|
-
1. Trailing `</content></invoke>` in 5+ fixture/test files (recurring write-tool artifact)
|
|
14
|
-
2. Founder fixture not actually empty (auto-created src/* dirs)
|
|
15
|
-
3. signal-classifier Korean directive regex `\b` failure
|
|
16
|
-
4. signal-classifier persona heuristic word-count threshold too high for Korean
|
|
17
|
-
5. vitest.config missed `test/v4/`
|
|
18
|
-
6. (cascade fixes from above)
|
|
19
|
-
|
|
20
|
-
→ All fixed. 545/545 green.
|
|
21
|
-
|
|
22
|
-
## Iteration 2 — audit subagent driven
|
|
23
|
-
|
|
24
|
-
4 parallel subagents (V/J/F/S persona) read v4 implementation files and walked through master state machine. Verdict: V "major rework", J "REJECT", F "FAIL", S "CRITICAL".
|
|
25
|
-
|
|
26
|
-
### Cross-persona critical issues identified (16)
|
|
27
|
-
|
|
28
|
-
V (4): subagent registration fake / picker bypass classifier / ref-pick burns turn / handoff race
|
|
29
|
-
F (4): no F-FAST / dembrandt timeout unhandled / wrong default exit_scope / exit_scope not persona-driven
|
|
30
|
-
J (4): URL_EXTRACT unimplemented / @figma/code-connect unused / catalog false-match / PlanInputs no token schema
|
|
31
|
-
S (5): 1px noise / no inconsistency detection / fold-in too lenient / fold-in duplicated / hex case asymmetry
|
|
32
|
-
|
|
33
|
-
### Fixes applied (this iteration)
|
|
34
|
-
|
|
35
|
-
| # | Fix | Files |
|
|
36
|
-
|---|---|---|
|
|
37
|
-
| 1 | Filter spacing < 4px (1px borders) | src/core/code-introspect.ts (×2 paths) |
|
|
38
|
-
| 2 | Fold-in importance avg ≥ 2.5 floor | src/core/memory.ts |
|
|
39
|
-
| 3 | Sync session-end-foldin.cjs with memory.ts formula | .claude/hooks/session-end-foldin.cjs |
|
|
40
|
-
| 4 | post-edit-watch hex normalization (3-vs-6 char) + Tailwind v4 oklch/CSS-var skip | .claude/hooks/post-edit-watch.cjs |
|
|
41
|
-
| 5 | designVocab regex expanded (8pt, type ramp, modular scale, tracking, leading, line-height, elevation, gradient, baseline, optical, kerning, hierarchy, 타입스케일, 모듈러) | src/core/signal-classifier.ts |
|
|
42
|
-
| 6 | PlanInputs.extracted_tokens schema (palette/typography/spacing/radius/shadows/has_dark_mode) | src/core/plan-emitter.ts |
|
|
43
|
-
| 7 | OMD-PLAN.md §7 renders extracted tokens | src/core/plan-emitter.ts |
|
|
44
|
-
| 8 | Persona-driven exit_scope defaults (F→handoff-zip, S→handoff-zip, V/J→wireframe-and-spec) | agents/omd-master.md |
|
|
45
|
-
| 9 | F-FAST path in INTAKE | agents/omd-master.md |
|
|
46
|
-
| 10 | V auto-pick top-1 reference (skip ref question) | agents/omd-master.md |
|
|
47
|
-
| 11 | URL_EXTRACT branch + FIGMA_GUIDANCE branch in state machine | agents/omd-master.md |
|
|
48
|
-
| 12 | url-token-extractor: figma.com special-case ("not yet supported, paste tokens") | src/core/url-token-extractor.ts |
|
|
49
|
-
| 13 | RULE 9 (no platitudes) + RULE 10 (persona re-evaluation) added | agents/omd-master.md |
|
|
50
|
-
| 14 | Anti-platitude audit clause in critic | agents/omd-critic.md |
|
|
51
|
-
| 15 | skill-rules omd-harness keywords loosened ("메인 화면" alone OK) | .claude/skills/skill-rules.json |
|
|
52
|
-
| 16 | postinstall ⚠ "Already running Claude Code? Quit and relaunch" line | scripts/postinstall.cjs |
|
|
53
|
-
| 17 | src/index.ts v4 module exports (programmatic API) | src/index.ts |
|
|
54
|
-
|
|
55
|
-
### Deferred to v4.1 (not blocking first demo)
|
|
56
|
-
|
|
57
|
-
- S2: code-introspect inconsistency detection (8pt-grid check, radius-scale check) — needs more thought, deferred
|
|
58
|
-
- V-C4: .handoff.json atomic write — race exists but low likelihood in single-master flow
|
|
59
|
-
- V-M4: OMD-PLAN.md edit round-trip parser (Markdown → PlanInputs) — current behavior: user edits silently dropped, master re-reads but doesn't re-parse
|
|
60
|
-
- J-M2: J-specific question library (different from V's pickers) — currently same questions for all personas
|
|
61
|
-
- C2: picker labels through signal-classifier — partial fix in regex, full fix needs label allowlist
|
|
62
|
-
|
|
63
|
-
## Final state
|
|
64
|
-
|
|
65
|
-
| Metric | i0 | i1 | i2 |
|
|
66
|
-
|---|---|---|---|
|
|
67
|
-
| Test count | 505 | 545 (+40 v4) | 545 |
|
|
68
|
-
| Test pass rate | 100% | 100% | 100% |
|
|
69
|
-
| Critical bugs known | (unknown) | 7 found+fixed | 16 found, 16 critical fixed (4 deferred) |
|
|
70
|
-
| Build | clean | clean | clean |
|
|
71
|
-
| Personas covered | 0 audited | 4 simulated | 4 audited |
|
|
72
|
-
|
|
73
|
-
## Honest assessment (보수적 기준)
|
|
74
|
-
|
|
75
|
-
- Real harness end-to-end run: **still 0회**. Lab tests are unit + audit (subagent-driven), not real user.
|
|
76
|
-
- Hooks fire-in-Claude-Code: **still 0회 verified**. Code follows docs but not test-fired.
|
|
77
|
-
- Code quality after i2: significantly improved (1px noise, fold-in math, designVocab, PlanInputs schema).
|
|
78
|
-
- Master prompt depth after i2: significantly improved (F-FAST, persona-driven defaults, anti-platitude, persona re-eval, URL_EXTRACT branch).
|
|
79
|
-
- Vs v2 baseline: **30% → ~55-60% of mature OSS harness sophistication**.
|
|
80
|
-
|
|
81
|
-
### What still won't work first try (predicted)
|
|
82
|
-
|
|
83
|
-
1. dembrandt CLI integration on Stripe URL — likely will work but possible failure modes (TOS, syntax) untested
|
|
84
|
-
2. Hook firing in actual Claude Code session — depends on Claude Code's hook contract reading
|
|
85
|
-
3. Master following all 10 rules under pressure — opus is good but 600+-line prompt is dense
|
|
86
|
-
4. F-FAST path actually firing — depends on master correctly classifying empty + URL hint INTAKE
|
|
87
|
-
|
|
88
|
-
### What v4.1 should do
|
|
89
|
-
|
|
90
|
-
- Real user demo (water-app or similar)
|
|
91
|
-
- Hook fire verification
|
|
92
|
-
- Real dembrandt URL test
|
|
93
|
-
- Inconsistency detection (S2)
|
|
94
|
-
- Atomic .handoff.json write (V-C4)
|
|
95
|
-
- OMD-PLAN.md edit parser (V-M4)
|
|
96
|
-
|
|
97
|
-
## Loop terminated
|
|
98
|
-
|
|
99
|
-
Self-feedback structure built and exercised twice. 23 fixes applied autonomously. Without user demo it cannot improve further on the same axes — diminishing returns. Real run-time data needed.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## v4.2 + v4.2.1 — User demo feedback (2026-04-29 evening)
|
|
104
|
-
|
|
105
|
-
User did real demo on water-app:
|
|
106
|
-
|
|
107
|
-
**Worked**: prototype 단계 (Drop habit-tracker single-glass viz with wave/splash motion) — wow ✓
|
|
108
|
-
|
|
109
|
-
**Failed**: production transition — when user said "프로덕션화 시키고자 하는데", harness 꺼지고 평범한 Next.js 변환으로 fallback. DESIGN.md 0건, asset audit 0건, brand spec 0건. *"프로덕션 와우 0"*.
|
|
110
|
-
|
|
111
|
-
**Fix v4.2** (production keywords + state):
|
|
112
|
-
- skill-rules.json: omd-harness keywords expanded (프로덕션화 / production / ship / deploy / 에셋 / 아이콘 / DESIGN.md 만들 / extract DESIGN.md)
|
|
113
|
-
- master.md: `PRODUCTION_TRANSITION` state added — when production keywords detected mid-flight, audit current state + spawn punch-list
|
|
114
|
-
|
|
115
|
-
**Fix v4.2.1** (user correction on curation philosophy):
|
|
116
|
-
- User pushed back on "DESIGN.md generate from prototype tokens" — that's mechanical/generic
|
|
117
|
-
- Correct: prototype = *signal* for matching, NOT source-of-truth
|
|
118
|
-
- Re-wrote PRODUCTION_TRANSITION:
|
|
119
|
-
- Step 1: Light read (5 adjectives, 1-2 dominant colors, motion vocab) — NOT full extraction
|
|
120
|
-
- Step 2: Score against 67-catalog → top 2-3 closest references
|
|
121
|
-
- Step 3: Curation proposal as user-facing prose: "이 톤이 toss + lovable 가까워 보여요. 거기에 [domain] 성격 가미해서 DESIGN.md 만들까요?"
|
|
122
|
-
- Step 4: Hybrid via `omd init prepare --ref X --description "..."` (preserves reference voice + applies delta_set on axes only)
|
|
123
|
-
- Step 5: asset-curator with production punch-list
|
|
124
|
-
- Step 6: microcopy + a11y + handoff
|
|
125
|
-
- Picker offers: toss / lovable / 둘 다 / 다른 ref / raw extract (less recommended)
|
|
126
|
-
|
|
127
|
-
This aligns with OmD's existing `omd-init` Phase 5 hybrid variation philosophy. The wow point in production: **"내 prototype을 toss + lovable로 인식하고 그 voice 보존하면서 Drop 도메인 가미해서 DESIGN.md를 줬다"** — curated, not extracted.
|
|
128
|
-
|