zugzbot 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.opencode/agents/sdd-coder.md +5 -4
- package/.opencode/agents/sdd-orchestrator.md +1 -1
- package/.opencode/agents/sdd-spec-writer.md +3 -4
- package/.opencode/commands/loop.md +1 -1
- package/.opencode/plugins/loop-enforcer.ts +0 -1
- package/.opencode/plugins/sdd-bridge.ts +1 -1
- package/.opencode/scripts/lint-charts.js +1 -2
- package/.opencode/skills/sdd-foundation-overview/SKILL.md +3 -4
- package/.opencode/skills/sdd-methodology/SKILL.md +8 -10
- package/.opencode/skills/sdd-quickstart/SKILL.md +5 -9
- package/.opencode/tools/sdd_core.ts +8 -6
- package/.opencode/tools/sdd_lucide.ts +112 -0
- package/README.md +1 -7
- package/opencode.json +0 -10
- package/package.json +1 -3
- package/.opencode/oh-my-design/design-md/11st/.verification.md +0 -37
- package/.opencode/oh-my-design/design-md/11st/DESIGN.md +0 -400
- package/.opencode/oh-my-design/design-md/17live/DESIGN.md +0 -467
- package/.opencode/oh-my-design/design-md/29cm/DESIGN.md +0 -495
- package/.opencode/oh-my-design/design-md/29cm/_promo.json +0 -23
- package/.opencode/oh-my-design/design-md/29cm/_research.md +0 -103
- package/.opencode/oh-my-design/design-md/3o3/.verification.md +0 -73
- package/.opencode/oh-my-design/design-md/3o3/DESIGN.md +0 -454
- package/.opencode/oh-my-design/design-md/91app/.verification.md +0 -25
- package/.opencode/oh-my-design/design-md/91app/DESIGN.md +0 -182
- package/.opencode/oh-my-design/design-md/abema/.verification.md +0 -64
- package/.opencode/oh-my-design/design-md/abema/DESIGN.md +0 -535
- package/.opencode/oh-my-design/design-md/ably/DESIGN.md +0 -646
- package/.opencode/oh-my-design/design-md/ably/_promo.json +0 -18
- package/.opencode/oh-my-design/design-md/ably/_research.md +0 -120
- package/.opencode/oh-my-design/design-md/accupass/.verification.md +0 -66
- package/.opencode/oh-my-design/design-md/accupass/DESIGN.md +0 -494
- package/.opencode/oh-my-design/design-md/adobe/.verification.md +0 -63
- package/.opencode/oh-my-design/design-md/adobe/DESIGN.md +0 -458
- package/.opencode/oh-my-design/design-md/airbnb/.verification.md +0 -143
- package/.opencode/oh-my-design/design-md/airbnb/DESIGN.md +0 -639
- package/.opencode/oh-my-design/design-md/airbnb/README.md +0 -23
- package/.opencode/oh-my-design/design-md/airbnb/preview-dark.html +0 -234
- package/.opencode/oh-my-design/design-md/airbnb/preview.html +0 -233
- package/.opencode/oh-my-design/design-md/airtable/.verification.md +0 -136
- package/.opencode/oh-my-design/design-md/airtable/DESIGN.md +0 -314
- package/.opencode/oh-my-design/design-md/airtable/README.md +0 -23
- package/.opencode/oh-my-design/design-md/airtable/preview-dark.html +0 -165
- package/.opencode/oh-my-design/design-md/airtable/preview.html +0 -164
- package/.opencode/oh-my-design/design-md/alipay/DESIGN.md +0 -506
- package/.opencode/oh-my-design/design-md/amazingtalker/.verification.md +0 -38
- package/.opencode/oh-my-design/design-md/amazingtalker/DESIGN.md +0 -434
- package/.opencode/oh-my-design/design-md/appier/DESIGN.md +0 -465
- package/.opencode/oh-my-design/design-md/apple/.verification.md +0 -162
- package/.opencode/oh-my-design/design-md/apple/DESIGN.md +0 -613
- package/.opencode/oh-my-design/design-md/apple/README.md +0 -24
- package/.opencode/oh-my-design/design-md/apple/preview-dark.html +0 -420
- package/.opencode/oh-my-design/design-md/apple/preview.html +0 -414
- package/.opencode/oh-my-design/design-md/baemin/.verification.md +0 -132
- package/.opencode/oh-my-design/design-md/baemin/DESIGN.md +0 -578
- package/.opencode/oh-my-design/design-md/baemin/README.md +0 -19
- package/.opencode/oh-my-design/design-md/baemin/_research.md +0 -84
- package/.opencode/oh-my-design/design-md/banksalad/DESIGN.md +0 -688
- package/.opencode/oh-my-design/design-md/banksalad/_promo.json +0 -29
- package/.opencode/oh-my-design/design-md/banksalad/_research.md +0 -190
- package/.opencode/oh-my-design/design-md/bilibili/DESIGN.md +0 -471
- package/.opencode/oh-my-design/design-md/bithumb/.verification.md +0 -31
- package/.opencode/oh-my-design/design-md/bithumb/DESIGN.md +0 -208
- package/.opencode/oh-my-design/design-md/bmw/.verification.md +0 -114
- package/.opencode/oh-my-design/design-md/bmw/DESIGN.md +0 -360
- package/.opencode/oh-my-design/design-md/bmw/README.md +0 -23
- package/.opencode/oh-my-design/design-md/bmw/preview-dark.html +0 -211
- package/.opencode/oh-my-design/design-md/bmw/preview.html +0 -210
- package/.opencode/oh-my-design/design-md/brandi/.verification.md +0 -29
- package/.opencode/oh-my-design/design-md/brandi/DESIGN.md +0 -414
- package/.opencode/oh-my-design/design-md/bunjang/DESIGN.md +0 -374
- package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/.live-inspect-proof.json +0 -260
- package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/fonts.json +0 -33
- package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/logo-icon.svg +0 -10
- package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/structure.json +0 -131
- package/.opencode/oh-my-design/design-md/bunjang/assets/_reference/tokens.json +0 -147
- package/.opencode/oh-my-design/design-md/cakeresume/.verification.md +0 -25
- package/.opencode/oh-my-design/design-md/cakeresume/DESIGN.md +0 -191
- package/.opencode/oh-my-design/design-md/cal/.verification.md +0 -145
- package/.opencode/oh-my-design/design-md/cal/DESIGN.md +0 -481
- package/.opencode/oh-my-design/design-md/cal/README.md +0 -23
- package/.opencode/oh-my-design/design-md/cal/preview-dark.html +0 -449
- package/.opencode/oh-my-design/design-md/cal/preview.html +0 -575
- package/.opencode/oh-my-design/design-md/catchtable/DESIGN.md +0 -341
- package/.opencode/oh-my-design/design-md/catchtable/_research.md +0 -54
- package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-proof.json +0 -204
- package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/.live-inspect-raw.json +0 -22
- package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/fonts.json +0 -21
- package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/structure.json +0 -42
- package/.opencode/oh-my-design/design-md/catchtable/assets/_reference/tokens.json +0 -95
- package/.opencode/oh-my-design/design-md/cathay/.verification.md +0 -44
- package/.opencode/oh-my-design/design-md/cathay/DESIGN.md +0 -432
- package/.opencode/oh-my-design/design-md/channeltalk/DESIGN.md +0 -422
- package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/.live-inspect-proof.json +0 -320
- package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/fonts.json +0 -53
- package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/structure.json +0 -47
- package/.opencode/oh-my-design/design-md/channeltalk/assets/_reference/tokens.json +0 -78
- package/.opencode/oh-my-design/design-md/class101/DESIGN.md +0 -484
- package/.opencode/oh-my-design/design-md/classting/.verification.md +0 -32
- package/.opencode/oh-my-design/design-md/classting/DESIGN.md +0 -292
- package/.opencode/oh-my-design/design-md/classum/DESIGN.md +0 -279
- package/.opencode/oh-my-design/design-md/classum/assets/_reference/.live-inspect-proof.json +0 -72
- package/.opencode/oh-my-design/design-md/classum/assets/_reference/fonts.json +0 -20
- package/.opencode/oh-my-design/design-md/classum/assets/_reference/structure.json +0 -21
- package/.opencode/oh-my-design/design-md/classum/assets/_reference/tokens.json +0 -56
- package/.opencode/oh-my-design/design-md/claude/.verification.md +0 -106
- package/.opencode/oh-my-design/design-md/claude/DESIGN.md +0 -561
- package/.opencode/oh-my-design/design-md/claude/README.md +0 -24
- package/.opencode/oh-my-design/design-md/claude/preview-dark.html +0 -803
- package/.opencode/oh-my-design/design-md/claude/preview.html +0 -826
- package/.opencode/oh-my-design/design-md/clay/.verification.md +0 -129
- package/.opencode/oh-my-design/design-md/clay/DESIGN.md +0 -454
- package/.opencode/oh-my-design/design-md/clay/README.md +0 -23
- package/.opencode/oh-my-design/design-md/clay/preview-dark.html +0 -316
- package/.opencode/oh-my-design/design-md/clay/preview.html +0 -315
- package/.opencode/oh-my-design/design-md/clickhouse/.verification.md +0 -132
- package/.opencode/oh-my-design/design-md/clickhouse/DESIGN.md +0 -424
- package/.opencode/oh-my-design/design-md/clickhouse/README.md +0 -24
- package/.opencode/oh-my-design/design-md/clickhouse/preview-dark.html +0 -834
- package/.opencode/oh-my-design/design-md/clickhouse/preview.html +0 -786
- package/.opencode/oh-my-design/design-md/cloudflare/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/cloudflare/DESIGN.md +0 -637
- package/.opencode/oh-my-design/design-md/cohere/.verification.md +0 -136
- package/.opencode/oh-my-design/design-md/cohere/DESIGN.md +0 -409
- package/.opencode/oh-my-design/design-md/cohere/README.md +0 -24
- package/.opencode/oh-my-design/design-md/cohere/preview-dark.html +0 -803
- package/.opencode/oh-my-design/design-md/cohere/preview.html +0 -807
- package/.opencode/oh-my-design/design-md/coinbase/.verification.md +0 -116
- package/.opencode/oh-my-design/design-md/coinbase/DESIGN.md +0 -353
- package/.opencode/oh-my-design/design-md/coinbase/README.md +0 -23
- package/.opencode/oh-my-design/design-md/coinbase/preview-dark.html +0 -164
- package/.opencode/oh-my-design/design-md/coinbase/preview.html +0 -163
- package/.opencode/oh-my-design/design-md/coinone/.verification.md +0 -38
- package/.opencode/oh-my-design/design-md/coinone/DESIGN.md +0 -257
- package/.opencode/oh-my-design/design-md/composio/.verification.md +0 -143
- package/.opencode/oh-my-design/design-md/composio/DESIGN.md +0 -441
- package/.opencode/oh-my-design/design-md/composio/README.md +0 -24
- package/.opencode/oh-my-design/design-md/composio/preview-dark.html +0 -958
- package/.opencode/oh-my-design/design-md/composio/preview.html +0 -933
- package/.opencode/oh-my-design/design-md/cookpad/DESIGN.md +0 -394
- package/.opencode/oh-my-design/design-md/coupang/.verification.md +0 -141
- package/.opencode/oh-my-design/design-md/coupang/DESIGN.md +0 -557
- package/.opencode/oh-my-design/design-md/cursor/.verification.md +0 -141
- package/.opencode/oh-my-design/design-md/cursor/DESIGN.md +0 -460
- package/.opencode/oh-my-design/design-md/cursor/README.md +0 -24
- package/.opencode/oh-my-design/design-md/cursor/preview-dark.html +0 -393
- package/.opencode/oh-my-design/design-md/cursor/preview.html +0 -383
- package/.opencode/oh-my-design/design-md/dabang/DESIGN.md +0 -267
- package/.opencode/oh-my-design/design-md/dabang/assets/_reference/.live-inspect-proof.json +0 -145
- package/.opencode/oh-my-design/design-md/dabang/assets/_reference/fonts.json +0 -22
- package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture-map.json +0 -718
- package/.opencode/oh-my-design/design-md/dabang/assets/_reference/raw-capture.json +0 -1125
- package/.opencode/oh-my-design/design-md/dabang/assets/_reference/structure.json +0 -53
- package/.opencode/oh-my-design/design-md/dabang/assets/_reference/tokens.json +0 -130
- package/.opencode/oh-my-design/design-md/danawa/.verification.md +0 -60
- package/.opencode/oh-my-design/design-md/danawa/DESIGN.md +0 -477
- package/.opencode/oh-my-design/design-md/dcard/.verification.md +0 -118
- package/.opencode/oh-my-design/design-md/dcard/DESIGN.md +0 -633
- package/.opencode/oh-my-design/design-md/dcard/README.md +0 -12
- package/.opencode/oh-my-design/design-md/dcard/_research/forum-1440px.png +0 -0
- package/.opencode/oh-my-design/design-md/dcard/_research.md +0 -133
- package/.opencode/oh-my-design/design-md/dell/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/dell/DESIGN.md +0 -636
- package/.opencode/oh-my-design/design-md/devsisters/.verification.md +0 -32
- package/.opencode/oh-my-design/design-md/devsisters/DESIGN.md +0 -282
- package/.opencode/oh-my-design/design-md/discord/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/discord/DESIGN.md +0 -604
- package/.opencode/oh-my-design/design-md/dji/DESIGN.md +0 -454
- package/.opencode/oh-my-design/design-md/drnow/.verification.md +0 -41
- package/.opencode/oh-my-design/design-md/drnow/DESIGN.md +0 -383
- package/.opencode/oh-my-design/design-md/dropbox/.verification.md +0 -61
- package/.opencode/oh-my-design/design-md/dropbox/DESIGN.md +0 -445
- package/.opencode/oh-my-design/design-md/duolingo/.verification.md +0 -20
- package/.opencode/oh-my-design/design-md/duolingo/DESIGN.md +0 -563
- package/.opencode/oh-my-design/design-md/elevenlabs/.verification.md +0 -128
- package/.opencode/oh-my-design/design-md/elevenlabs/DESIGN.md +0 -415
- package/.opencode/oh-my-design/design-md/elevenlabs/README.md +0 -23
- package/.opencode/oh-my-design/design-md/elevenlabs/preview-dark.html +0 -252
- package/.opencode/oh-my-design/design-md/elevenlabs/preview.html +0 -251
- package/.opencode/oh-my-design/design-md/expo/.verification.md +0 -141
- package/.opencode/oh-my-design/design-md/expo/DESIGN.md +0 -412
- package/.opencode/oh-my-design/design-md/expo/README.md +0 -24
- package/.opencode/oh-my-design/design-md/expo/preview-dark.html +0 -533
- package/.opencode/oh-my-design/design-md/expo/preview.html +0 -533
- package/.opencode/oh-my-design/design-md/fastcampus/DESIGN.md +0 -529
- package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/.live-inspect-proof.json +0 -950
- package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/fonts.json +0 -14
- package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/structure.json +0 -30
- package/.opencode/oh-my-design/design-md/fastcampus/assets/_reference/tokens.json +0 -109
- package/.opencode/oh-my-design/design-md/ferrari/.verification.md +0 -119
- package/.opencode/oh-my-design/design-md/ferrari/DESIGN.md +0 -447
- package/.opencode/oh-my-design/design-md/ferrari/README.md +0 -23
- package/.opencode/oh-my-design/design-md/ferrari/preview-dark.html +0 -1162
- package/.opencode/oh-my-design/design-md/ferrari/preview.html +0 -1122
- package/.opencode/oh-my-design/design-md/figma/.verification.md +0 -206
- package/.opencode/oh-my-design/design-md/figma/DESIGN.md +0 -534
- package/.opencode/oh-my-design/design-md/figma/README.md +0 -24
- package/.opencode/oh-my-design/design-md/figma/preview-dark.html +0 -822
- package/.opencode/oh-my-design/design-md/figma/preview.html +0 -832
- package/.opencode/oh-my-design/design-md/finda/.verification.md +0 -33
- package/.opencode/oh-my-design/design-md/finda/DESIGN.md +0 -413
- package/.opencode/oh-my-design/design-md/firstory/.verification.md +0 -70
- package/.opencode/oh-my-design/design-md/firstory/DESIGN.md +0 -487
- package/.opencode/oh-my-design/design-md/flex/DESIGN.md +0 -356
- package/.opencode/oh-my-design/design-md/flex/_research.md +0 -49
- package/.opencode/oh-my-design/design-md/flex/assets/_reference/.live-inspect-proof.json +0 -192
- package/.opencode/oh-my-design/design-md/flex/assets/_reference/.raw-inspect.json +0 -873
- package/.opencode/oh-my-design/design-md/flex/assets/_reference/fonts.json +0 -17
- package/.opencode/oh-my-design/design-md/flex/assets/_reference/structure.json +0 -58
- package/.opencode/oh-my-design/design-md/flex/assets/_reference/tokens.json +0 -75
- package/.opencode/oh-my-design/design-md/flo/.verification.md +0 -33
- package/.opencode/oh-my-design/design-md/flo/DESIGN.md +0 -349
- package/.opencode/oh-my-design/design-md/framer/.verification.md +0 -147
- package/.opencode/oh-my-design/design-md/framer/DESIGN.md +0 -431
- package/.opencode/oh-my-design/design-md/framer/README.md +0 -23
- package/.opencode/oh-my-design/design-md/framer/preview-dark.html +0 -902
- package/.opencode/oh-my-design/design-md/framer/preview.html +0 -883
- package/.opencode/oh-my-design/design-md/freee/.verification.md +0 -145
- package/.opencode/oh-my-design/design-md/freee/DESIGN.md +0 -620
- package/.opencode/oh-my-design/design-md/freee/README.md +0 -12
- package/.opencode/oh-my-design/design-md/freee/_research/vibes-storybook-1440px.png +0 -0
- package/.opencode/oh-my-design/design-md/freee/_research.md +0 -116
- package/.opencode/oh-my-design/design-md/fugle/.verification.md +0 -40
- package/.opencode/oh-my-design/design-md/fugle/DESIGN.md +0 -290
- package/.opencode/oh-my-design/design-md/funnow/.verification.md +0 -62
- package/.opencode/oh-my-design/design-md/funnow/DESIGN.md +0 -431
- package/.opencode/oh-my-design/design-md/gangnamunni/DESIGN.md +0 -677
- package/.opencode/oh-my-design/design-md/gangnamunni/_promo.json +0 -26
- package/.opencode/oh-my-design/design-md/gangnamunni/_research.md +0 -113
- package/.opencode/oh-my-design/design-md/genie/.verification.md +0 -29
- package/.opencode/oh-my-design/design-md/genie/DESIGN.md +0 -415
- package/.opencode/oh-my-design/design-md/github/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/github/DESIGN.md +0 -727
- package/.opencode/oh-my-design/design-md/gmarket/DESIGN.md +0 -534
- package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/.live-inspect-proof.json +0 -217
- package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/fonts.json +0 -41
- package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-bestsellers.json +0 -1929
- package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/raw-capture-home.json +0 -3675
- package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/structure.json +0 -65
- package/.opencode/oh-my-design/design-md/gmarket/assets/_reference/tokens.json +0 -210
- package/.opencode/oh-my-design/design-md/gogolook/.verification.md +0 -31
- package/.opencode/oh-my-design/design-md/gogolook/DESIGN.md +0 -155
- package/.opencode/oh-my-design/design-md/gogoro/DESIGN.md +0 -441
- package/.opencode/oh-my-design/design-md/google/.verification.md +0 -61
- package/.opencode/oh-my-design/design-md/google/DESIGN.md +0 -499
- package/.opencode/oh-my-design/design-md/greenvines/.verification.md +0 -72
- package/.opencode/oh-my-design/design-md/greenvines/DESIGN.md +0 -454
- package/.opencode/oh-my-design/design-md/greeting/.verification.md +0 -64
- package/.opencode/oh-my-design/design-md/greeting/DESIGN.md +0 -462
- package/.opencode/oh-my-design/design-md/grip/.verification.md +0 -36
- package/.opencode/oh-my-design/design-md/grip/DESIGN.md +0 -289
- package/.opencode/oh-my-design/design-md/hahow/.verification.md +0 -31
- package/.opencode/oh-my-design/design-md/hahow/DESIGN.md +0 -184
- package/.opencode/oh-my-design/design-md/hashicorp/.verification.md +0 -142
- package/.opencode/oh-my-design/design-md/hashicorp/DESIGN.md +0 -411
- package/.opencode/oh-my-design/design-md/hashicorp/README.md +0 -24
- package/.opencode/oh-my-design/design-md/hashicorp/preview-dark.html +0 -1202
- package/.opencode/oh-my-design/design-md/hashicorp/preview.html +0 -1193
- package/.opencode/oh-my-design/design-md/hogangnono/.verification.md +0 -33
- package/.opencode/oh-my-design/design-md/hogangnono/DESIGN.md +0 -349
- package/.opencode/oh-my-design/design-md/hp/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/hp/DESIGN.md +0 -563
- package/.opencode/oh-my-design/design-md/hyperconnect/.verification.md +0 -40
- package/.opencode/oh-my-design/design-md/hyperconnect/DESIGN.md +0 -393
- package/.opencode/oh-my-design/design-md/hyundaicard/.verification.md +0 -25
- package/.opencode/oh-my-design/design-md/hyundaicard/DESIGN.md +0 -201
- package/.opencode/oh-my-design/design-md/ibm/.verification.md +0 -102
- package/.opencode/oh-my-design/design-md/ibm/DESIGN.md +0 -464
- package/.opencode/oh-my-design/design-md/ibm/README.md +0 -24
- package/.opencode/oh-my-design/design-md/ibm/preview-dark.html +0 -443
- package/.opencode/oh-my-design/design-md/ibm/preview.html +0 -428
- package/.opencode/oh-my-design/design-md/ichef/DESIGN.md +0 -455
- package/.opencode/oh-my-design/design-md/ikala/.verification.md +0 -35
- package/.opencode/oh-my-design/design-md/ikala/DESIGN.md +0 -400
- package/.opencode/oh-my-design/design-md/imweb/.verification.md +0 -61
- package/.opencode/oh-my-design/design-md/imweb/DESIGN.md +0 -460
- package/.opencode/oh-my-design/design-md/inflearn/DESIGN.md +0 -453
- package/.opencode/oh-my-design/design-md/inflearn/_promo.json +0 -29
- package/.opencode/oh-my-design/design-md/inflearn/_research.md +0 -85
- package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof-courses.json +0 -679
- package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/.live-inspect-proof.json +0 -448
- package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/fonts.json +0 -41
- package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/structure.json +0 -110
- package/.opencode/oh-my-design/design-md/inflearn/assets/_reference/tokens.json +0 -54
- package/.opencode/oh-my-design/design-md/intercom/.verification.md +0 -144
- package/.opencode/oh-my-design/design-md/intercom/DESIGN.md +0 -271
- package/.opencode/oh-my-design/design-md/intercom/README.md +0 -23
- package/.opencode/oh-my-design/design-md/intercom/preview-dark.html +0 -185
- package/.opencode/oh-my-design/design-md/intercom/preview.html +0 -184
- package/.opencode/oh-my-design/design-md/jandi/.verification.md +0 -26
- package/.opencode/oh-my-design/design-md/jandi/DESIGN.md +0 -382
- package/.opencode/oh-my-design/design-md/jkopay/.verification.md +0 -32
- package/.opencode/oh-my-design/design-md/jkopay/DESIGN.md +0 -283
- package/.opencode/oh-my-design/design-md/jobkorea/.verification.md +0 -30
- package/.opencode/oh-my-design/design-md/jobkorea/DESIGN.md +0 -349
- package/.opencode/oh-my-design/design-md/jumpit/DESIGN.md +0 -403
- package/.opencode/oh-my-design/design-md/jumpit/_research.md +0 -119
- package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/.live-inspect-proof.json +0 -182
- package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/fonts.json +0 -20
- package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/structure.json +0 -66
- package/.opencode/oh-my-design/design-md/jumpit/assets/_reference/tokens.json +0 -108
- package/.opencode/oh-my-design/design-md/kakao/.verification.md +0 -137
- package/.opencode/oh-my-design/design-md/kakao/DESIGN.md +0 -568
- package/.opencode/oh-my-design/design-md/kakao/README.md +0 -18
- package/.opencode/oh-my-design/design-md/kakao/_research.md +0 -98
- package/.opencode/oh-my-design/design-md/kakaobank/.verification.md +0 -133
- package/.opencode/oh-my-design/design-md/kakaobank/DESIGN.md +0 -602
- package/.opencode/oh-my-design/design-md/kakaopay/DESIGN.md +0 -603
- package/.opencode/oh-my-design/design-md/kakaopay/_promo.json +0 -22
- package/.opencode/oh-my-design/design-md/kakaopay/_research.md +0 -84
- package/.opencode/oh-my-design/design-md/kakaot/DESIGN.md +0 -507
- package/.opencode/oh-my-design/design-md/karrot/.verification.md +0 -143
- package/.opencode/oh-my-design/design-md/karrot/DESIGN.md +0 -494
- package/.opencode/oh-my-design/design-md/karrot/README.md +0 -18
- package/.opencode/oh-my-design/design-md/karrot/_research.md +0 -57
- package/.opencode/oh-my-design/design-md/kbank/DESIGN.md +0 -252
- package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-proof.json +0 -215
- package/.opencode/oh-my-design/design-md/kbank/assets/_reference/.live-inspect-raw.json +0 -1
- package/.opencode/oh-my-design/design-md/kbank/assets/_reference/fonts.json +0 -20
- package/.opencode/oh-my-design/design-md/kbank/assets/_reference/structure.json +0 -151
- package/.opencode/oh-my-design/design-md/kbank/assets/_reference/tokens.json +0 -101
- package/.opencode/oh-my-design/design-md/kdan/.verification.md +0 -30
- package/.opencode/oh-my-design/design-md/kdan/DESIGN.md +0 -193
- package/.opencode/oh-my-design/design-md/kintone/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/kintone/DESIGN.md +0 -586
- package/.opencode/oh-my-design/design-md/kkbox/.verification.md +0 -27
- package/.opencode/oh-my-design/design-md/kkbox/DESIGN.md +0 -136
- package/.opencode/oh-my-design/design-md/kkday/DESIGN.md +0 -470
- package/.opencode/oh-my-design/design-md/kmong/.verification.md +0 -30
- package/.opencode/oh-my-design/design-md/kmong/DESIGN.md +0 -427
- package/.opencode/oh-my-design/design-md/krafton/.verification.md +0 -38
- package/.opencode/oh-my-design/design-md/krafton/DESIGN.md +0 -267
- package/.opencode/oh-my-design/design-md/kraken/.verification.md +0 -143
- package/.opencode/oh-my-design/design-md/kraken/DESIGN.md +0 -277
- package/.opencode/oh-my-design/design-md/kraken/README.md +0 -23
- package/.opencode/oh-my-design/design-md/kraken/preview-dark.html +0 -169
- package/.opencode/oh-my-design/design-md/kraken/preview.html +0 -168
- package/.opencode/oh-my-design/design-md/krds/.verification.md +0 -373
- package/.opencode/oh-my-design/design-md/krds/DESIGN.md +0 -1060
- package/.opencode/oh-my-design/design-md/kream/DESIGN.md +0 -432
- package/.opencode/oh-my-design/design-md/kream/assets/_reference/.live-inspect-proof.json +0 -289
- package/.opencode/oh-my-design/design-md/kream/assets/_reference/fonts.json +0 -26
- package/.opencode/oh-my-design/design-md/kream/assets/_reference/structure.json +0 -56
- package/.opencode/oh-my-design/design-md/kream/assets/_reference/tokens.json +0 -154
- package/.opencode/oh-my-design/design-md/kurly/.verification.md +0 -126
- package/.opencode/oh-my-design/design-md/kurly/DESIGN.md +0 -620
- package/.opencode/oh-my-design/design-md/laftel/.verification.md +0 -39
- package/.opencode/oh-my-design/design-md/laftel/DESIGN.md +0 -293
- package/.opencode/oh-my-design/design-md/lamborghini/.verification.md +0 -127
- package/.opencode/oh-my-design/design-md/lamborghini/DESIGN.md +0 -430
- package/.opencode/oh-my-design/design-md/lamborghini/README.md +0 -23
- package/.opencode/oh-my-design/design-md/lamborghini/preview-dark.html +0 -303
- package/.opencode/oh-my-design/design-md/lamborghini/preview.html +0 -381
- package/.opencode/oh-my-design/design-md/laundrygo/.verification.md +0 -60
- package/.opencode/oh-my-design/design-md/laundrygo/DESIGN.md +0 -434
- package/.opencode/oh-my-design/design-md/layerx/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/layerx/DESIGN.md +0 -615
- package/.opencode/oh-my-design/design-md/lezhin/.verification.md +0 -47
- package/.opencode/oh-my-design/design-md/lezhin/DESIGN.md +0 -348
- package/.opencode/oh-my-design/design-md/line/.verification.md +0 -137
- package/.opencode/oh-my-design/design-md/line/DESIGN.md +0 -467
- package/.opencode/oh-my-design/design-md/line/README.md +0 -12
- package/.opencode/oh-my-design/design-md/line/_research/home-1440px.png +0 -0
- package/.opencode/oh-my-design/design-md/line/_research.md +0 -65
- package/.opencode/oh-my-design/design-md/linear.app/.verification.md +0 -143
- package/.opencode/oh-my-design/design-md/linear.app/DESIGN.md +0 -642
- package/.opencode/oh-my-design/design-md/linear.app/README.md +0 -24
- package/.opencode/oh-my-design/design-md/linear.app/preview-dark.html +0 -383
- package/.opencode/oh-my-design/design-md/linear.app/preview.html +0 -373
- package/.opencode/oh-my-design/design-md/loom/.verification.md +0 -31
- package/.opencode/oh-my-design/design-md/loom/DESIGN.md +0 -396
- package/.opencode/oh-my-design/design-md/lovable/.verification.md +0 -154
- package/.opencode/oh-my-design/design-md/lovable/DESIGN.md +0 -423
- package/.opencode/oh-my-design/design-md/lovable/README.md +0 -24
- package/.opencode/oh-my-design/design-md/lovable/preview-dark.html +0 -349
- package/.opencode/oh-my-design/design-md/lovable/preview.html +0 -348
- package/.opencode/oh-my-design/design-md/lunit/DESIGN.md +0 -296
- package/.opencode/oh-my-design/design-md/lunit/assets/_reference/.live-inspect-proof.json +0 -249
- package/.opencode/oh-my-design/design-md/lunit/assets/_reference/fonts.json +0 -24
- package/.opencode/oh-my-design/design-md/lunit/assets/_reference/structure.json +0 -162
- package/.opencode/oh-my-design/design-md/lunit/assets/_reference/tokens.json +0 -115
- package/.opencode/oh-my-design/design-md/mastercard/.verification.md +0 -19
- package/.opencode/oh-my-design/design-md/mastercard/DESIGN.md +0 -587
- package/.opencode/oh-my-design/design-md/meituan/DESIGN.md +0 -466
- package/.opencode/oh-my-design/design-md/melon/.verification.md +0 -27
- package/.opencode/oh-my-design/design-md/melon/DESIGN.md +0 -179
- package/.opencode/oh-my-design/design-md/mercari/.verification.md +0 -155
- package/.opencode/oh-my-design/design-md/mercari/DESIGN.md +0 -514
- package/.opencode/oh-my-design/design-md/mercari/README.md +0 -12
- package/.opencode/oh-my-design/design-md/mercari/_research/home-1440px.png +0 -0
- package/.opencode/oh-my-design/design-md/mercari/_research.md +0 -137
- package/.opencode/oh-my-design/design-md/mercury/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/mercury/DESIGN.md +0 -589
- package/.opencode/oh-my-design/design-md/meta/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/meta/DESIGN.md +0 -615
- package/.opencode/oh-my-design/design-md/microsoft/.verification.md +0 -62
- package/.opencode/oh-my-design/design-md/microsoft/DESIGN.md +0 -508
- package/.opencode/oh-my-design/design-md/millie/DESIGN.md +0 -584
- package/.opencode/oh-my-design/design-md/minimax/.verification.md +0 -135
- package/.opencode/oh-my-design/design-md/minimax/DESIGN.md +0 -396
- package/.opencode/oh-my-design/design-md/minimax/README.md +0 -24
- package/.opencode/oh-my-design/design-md/minimax/preview-dark.html +0 -1262
- package/.opencode/oh-my-design/design-md/minimax/preview.html +0 -1248
- package/.opencode/oh-my-design/design-md/mintlify/.verification.md +0 -160
- package/.opencode/oh-my-design/design-md/mintlify/DESIGN.md +0 -472
- package/.opencode/oh-my-design/design-md/mintlify/README.md +0 -24
- package/.opencode/oh-my-design/design-md/mintlify/preview-dark.html +0 -409
- package/.opencode/oh-my-design/design-md/mintlify/preview.html +0 -398
- package/.opencode/oh-my-design/design-md/miricanvas/.verification.md +0 -61
- package/.opencode/oh-my-design/design-md/miricanvas/DESIGN.md +0 -464
- package/.opencode/oh-my-design/design-md/miro/.verification.md +0 -138
- package/.opencode/oh-my-design/design-md/miro/DESIGN.md +0 -319
- package/.opencode/oh-my-design/design-md/miro/README.md +0 -23
- package/.opencode/oh-my-design/design-md/miro/preview-dark.html +0 -174
- package/.opencode/oh-my-design/design-md/miro/preview.html +0 -173
- package/.opencode/oh-my-design/design-md/mistral.ai/.verification.md +0 -146
- package/.opencode/oh-my-design/design-md/mistral.ai/DESIGN.md +0 -390
- package/.opencode/oh-my-design/design-md/mistral.ai/README.md +0 -24
- package/.opencode/oh-my-design/design-md/mistral.ai/preview-dark.html +0 -806
- package/.opencode/oh-my-design/design-md/mistral.ai/preview.html +0 -805
- package/.opencode/oh-my-design/design-md/modusign/.verification.md +0 -58
- package/.opencode/oh-my-design/design-md/modusign/DESIGN.md +0 -524
- package/.opencode/oh-my-design/design-md/momoshop/.verification.md +0 -36
- package/.opencode/oh-my-design/design-md/momoshop/DESIGN.md +0 -322
- package/.opencode/oh-my-design/design-md/money-forward/DESIGN.md +0 -443
- package/.opencode/oh-my-design/design-md/mongodb/.verification.md +0 -145
- package/.opencode/oh-my-design/design-md/mongodb/DESIGN.md +0 -401
- package/.opencode/oh-my-design/design-md/mongodb/README.md +0 -23
- package/.opencode/oh-my-design/design-md/mongodb/preview-dark.html +0 -260
- package/.opencode/oh-my-design/design-md/mongodb/preview.html +0 -259
- package/.opencode/oh-my-design/design-md/muji/.verification.md +0 -20
- package/.opencode/oh-my-design/design-md/muji/DESIGN.md +0 -605
- package/.opencode/oh-my-design/design-md/musinsa/.verification.md +0 -59
- package/.opencode/oh-my-design/design-md/musinsa/DESIGN.md +0 -593
- package/.opencode/oh-my-design/design-md/mustit/.verification.md +0 -37
- package/.opencode/oh-my-design/design-md/mustit/DESIGN.md +0 -328
- package/.opencode/oh-my-design/design-md/myrealtrip/DESIGN.md +0 -494
- package/.opencode/oh-my-design/design-md/naver/.verification.md +0 -134
- package/.opencode/oh-my-design/design-md/naver/DESIGN.md +0 -582
- package/.opencode/oh-my-design/design-md/naverwebtoon/DESIGN.md +0 -477
- package/.opencode/oh-my-design/design-md/netflix/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/netflix/DESIGN.md +0 -572
- package/.opencode/oh-my-design/design-md/nexon/.verification.md +0 -27
- package/.opencode/oh-my-design/design-md/nexon/DESIGN.md +0 -389
- package/.opencode/oh-my-design/design-md/nhncloud/.verification.md +0 -23
- package/.opencode/oh-my-design/design-md/nhncloud/DESIGN.md +0 -207
- package/.opencode/oh-my-design/design-md/nike/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/nike/DESIGN.md +0 -588
- package/.opencode/oh-my-design/design-md/note/DESIGN.md +0 -346
- package/.opencode/oh-my-design/design-md/notion/.verification.md +0 -141
- package/.opencode/oh-my-design/design-md/notion/DESIGN.md +0 -557
- package/.opencode/oh-my-design/design-md/notion/README.md +0 -24
- package/.opencode/oh-my-design/design-md/notion/preview-dark.html +0 -372
- package/.opencode/oh-my-design/design-md/notion/preview.html +0 -364
- package/.opencode/oh-my-design/design-md/nvidia/.verification.md +0 -127
- package/.opencode/oh-my-design/design-md/nvidia/DESIGN.md +0 -550
- package/.opencode/oh-my-design/design-md/nvidia/README.md +0 -24
- package/.opencode/oh-my-design/design-md/nvidia/_research.md +0 -68
- package/.opencode/oh-my-design/design-md/nvidia/preview-dark.html +0 -374
- package/.opencode/oh-my-design/design-md/nvidia/preview.html +0 -366
- package/.opencode/oh-my-design/design-md/ohouse/.verification.md +0 -87
- package/.opencode/oh-my-design/design-md/ohouse/DESIGN.md +0 -635
- package/.opencode/oh-my-design/design-md/oliveyoung/DESIGN.md +0 -407
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/.live-inspect-proof.json +0 -158
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_best_capture.json +0 -644
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_detail_capture.json +0 -447
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main.html +0 -419
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_main_capture.json +0 -1126
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/_search_capture.json +0 -912
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/fonts.json +0 -20
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/structure.json +0 -91
- package/.opencode/oh-my-design/design-md/oliveyoung/assets/_reference/tokens.json +0 -79
- package/.opencode/oh-my-design/design-md/ollama/.verification.md +0 -138
- package/.opencode/oh-my-design/design-md/ollama/DESIGN.md +0 -393
- package/.opencode/oh-my-design/design-md/ollama/README.md +0 -24
- package/.opencode/oh-my-design/design-md/ollama/preview-dark.html +0 -678
- package/.opencode/oh-my-design/design-md/ollama/preview.html +0 -678
- package/.opencode/oh-my-design/design-md/omnichat/.verification.md +0 -74
- package/.opencode/oh-my-design/design-md/omnichat/DESIGN.md +0 -499
- package/.opencode/oh-my-design/design-md/openai/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/openai/DESIGN.md +0 -641
- package/.opencode/oh-my-design/design-md/opencode.ai/.verification.md +0 -136
- package/.opencode/oh-my-design/design-md/opencode.ai/DESIGN.md +0 -425
- package/.opencode/oh-my-design/design-md/opencode.ai/README.md +0 -24
- package/.opencode/oh-my-design/design-md/opencode.ai/preview-dark.html +0 -366
- package/.opencode/oh-my-design/design-md/opencode.ai/preview.html +0 -357
- package/.opencode/oh-my-design/design-md/payco/.verification.md +0 -28
- package/.opencode/oh-my-design/design-md/payco/DESIGN.md +0 -267
- package/.opencode/oh-my-design/design-md/paypay/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/paypay/DESIGN.md +0 -656
- package/.opencode/oh-my-design/design-md/pchome/.verification.md +0 -38
- package/.opencode/oh-my-design/design-md/pchome/DESIGN.md +0 -439
- package/.opencode/oh-my-design/design-md/perplexity/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/perplexity/DESIGN.md +0 -546
- package/.opencode/oh-my-design/design-md/piccollage/.verification.md +0 -34
- package/.opencode/oh-my-design/design-md/piccollage/DESIGN.md +0 -320
- package/.opencode/oh-my-design/design-md/pinkoi/.verification.md +0 -147
- package/.opencode/oh-my-design/design-md/pinkoi/DESIGN.md +0 -639
- package/.opencode/oh-my-design/design-md/pinkoi/README.md +0 -12
- package/.opencode/oh-my-design/design-md/pinkoi/_research/browse-1440px.png +0 -0
- package/.opencode/oh-my-design/design-md/pinkoi/_research.md +0 -167
- package/.opencode/oh-my-design/design-md/pinterest/.verification.md +0 -141
- package/.opencode/oh-my-design/design-md/pinterest/DESIGN.md +0 -366
- package/.opencode/oh-my-design/design-md/pinterest/README.md +0 -23
- package/.opencode/oh-my-design/design-md/pinterest/preview-dark.html +0 -233
- package/.opencode/oh-my-design/design-md/pinterest/preview.html +0 -232
- package/.opencode/oh-my-design/design-md/pixiv/.verification.md +0 -20
- package/.opencode/oh-my-design/design-md/pixiv/DESIGN.md +0 -613
- package/.opencode/oh-my-design/design-md/pixnet/.verification.md +0 -31
- package/.opencode/oh-my-design/design-md/pixnet/DESIGN.md +0 -430
- package/.opencode/oh-my-design/design-md/posthog/.verification.md +0 -159
- package/.opencode/oh-my-design/design-md/posthog/DESIGN.md +0 -480
- package/.opencode/oh-my-design/design-md/posthog/README.md +0 -23
- package/.opencode/oh-my-design/design-md/posthog/preview-dark.html +0 -699
- package/.opencode/oh-my-design/design-md/posthog/preview.html +0 -749
- package/.opencode/oh-my-design/design-md/postype/.verification.md +0 -61
- package/.opencode/oh-my-design/design-md/postype/DESIGN.md +0 -431
- package/.opencode/oh-my-design/design-md/publy/DESIGN.md +0 -563
- package/.opencode/oh-my-design/design-md/qanda/.verification.md +0 -121
- package/.opencode/oh-my-design/design-md/qanda/DESIGN.md +0 -516
- package/.opencode/oh-my-design/design-md/ragic/.verification.md +0 -37
- package/.opencode/oh-my-design/design-md/ragic/DESIGN.md +0 -444
- package/.opencode/oh-my-design/design-md/rakuten/.verification.md +0 -60
- package/.opencode/oh-my-design/design-md/rakuten/DESIGN.md +0 -440
- package/.opencode/oh-my-design/design-md/ramp/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/ramp/DESIGN.md +0 -634
- package/.opencode/oh-my-design/design-md/rayark/.verification.md +0 -22
- package/.opencode/oh-my-design/design-md/rayark/DESIGN.md +0 -154
- package/.opencode/oh-my-design/design-md/raycast/.verification.md +0 -138
- package/.opencode/oh-my-design/design-md/raycast/DESIGN.md +0 -467
- package/.opencode/oh-my-design/design-md/raycast/README.md +0 -23
- package/.opencode/oh-my-design/design-md/raycast/preview-dark.html +0 -606
- package/.opencode/oh-my-design/design-md/raycast/preview.html +0 -688
- package/.opencode/oh-my-design/design-md/remember/.verification.md +0 -135
- package/.opencode/oh-my-design/design-md/remember/DESIGN.md +0 -504
- package/.opencode/oh-my-design/design-md/remember/_promo.json +0 -27
- package/.opencode/oh-my-design/design-md/remember/_research.md +0 -90
- package/.opencode/oh-my-design/design-md/renault/.verification.md +0 -139
- package/.opencode/oh-my-design/design-md/renault/DESIGN.md +0 -439
- package/.opencode/oh-my-design/design-md/renault/README.md +0 -23
- package/.opencode/oh-my-design/design-md/renault/preview-dark.html +0 -406
- package/.opencode/oh-my-design/design-md/renault/preview.html +0 -606
- package/.opencode/oh-my-design/design-md/replicate/.verification.md +0 -154
- package/.opencode/oh-my-design/design-md/replicate/DESIGN.md +0 -387
- package/.opencode/oh-my-design/design-md/replicate/README.md +0 -24
- package/.opencode/oh-my-design/design-md/replicate/preview-dark.html +0 -828
- package/.opencode/oh-my-design/design-md/replicate/preview.html +0 -831
- package/.opencode/oh-my-design/design-md/resend/.verification.md +0 -143
- package/.opencode/oh-my-design/design-md/resend/DESIGN.md +0 -440
- package/.opencode/oh-my-design/design-md/resend/README.md +0 -23
- package/.opencode/oh-my-design/design-md/resend/preview-dark.html +0 -355
- package/.opencode/oh-my-design/design-md/resend/preview.html +0 -354
- package/.opencode/oh-my-design/design-md/retool/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/retool/DESIGN.md +0 -645
- package/.opencode/oh-my-design/design-md/revolut/.verification.md +0 -140
- package/.opencode/oh-my-design/design-md/revolut/DESIGN.md +0 -319
- package/.opencode/oh-my-design/design-md/revolut/README.md +0 -23
- package/.opencode/oh-my-design/design-md/revolut/preview-dark.html +0 -234
- package/.opencode/oh-my-design/design-md/revolut/preview.html +0 -233
- package/.opencode/oh-my-design/design-md/richart/.verification.md +0 -41
- package/.opencode/oh-my-design/design-md/richart/DESIGN.md +0 -465
- package/.opencode/oh-my-design/design-md/ridi/.verification.md +0 -108
- package/.opencode/oh-my-design/design-md/ridi/DESIGN.md +0 -573
- package/.opencode/oh-my-design/design-md/riiid/.verification.md +0 -33
- package/.opencode/oh-my-design/design-md/riiid/DESIGN.md +0 -260
- package/.opencode/oh-my-design/design-md/ringle/.verification.md +0 -53
- package/.opencode/oh-my-design/design-md/ringle/DESIGN.md +0 -444
- package/.opencode/oh-my-design/design-md/robinhood/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/robinhood/DESIGN.md +0 -604
- package/.opencode/oh-my-design/design-md/runwayml/.verification.md +0 -141
- package/.opencode/oh-my-design/design-md/runwayml/DESIGN.md +0 -431
- package/.opencode/oh-my-design/design-md/runwayml/README.md +0 -24
- package/.opencode/oh-my-design/design-md/runwayml/preview-dark.html +0 -664
- package/.opencode/oh-my-design/design-md/runwayml/preview.html +0 -665
- package/.opencode/oh-my-design/design-md/salesforce/.verification.md +0 -66
- package/.opencode/oh-my-design/design-md/salesforce/DESIGN.md +0 -473
- package/.opencode/oh-my-design/design-md/sanity/.verification.md +0 -174
- package/.opencode/oh-my-design/design-md/sanity/DESIGN.md +0 -499
- package/.opencode/oh-my-design/design-md/sanity/README.md +0 -24
- package/.opencode/oh-my-design/design-md/sanity/preview-dark.html +0 -990
- package/.opencode/oh-my-design/design-md/sanity/preview.html +0 -1135
- package/.opencode/oh-my-design/design-md/sansan/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/sansan/DESIGN.md +0 -631
- package/.opencode/oh-my-design/design-md/sendbird/.verification.md +0 -67
- package/.opencode/oh-my-design/design-md/sendbird/DESIGN.md +0 -331
- package/.opencode/oh-my-design/design-md/sentry/.verification.md +0 -157
- package/.opencode/oh-my-design/design-md/sentry/DESIGN.md +0 -397
- package/.opencode/oh-my-design/design-md/sentry/README.md +0 -24
- package/.opencode/oh-my-design/design-md/sentry/preview-dark.html +0 -626
- package/.opencode/oh-my-design/design-md/sentry/preview.html +0 -951
- package/.opencode/oh-my-design/design-md/shinhancard/.verification.md +0 -31
- package/.opencode/oh-my-design/design-md/shinhancard/DESIGN.md +0 -421
- package/.opencode/oh-my-design/design-md/shopline/.verification.md +0 -34
- package/.opencode/oh-my-design/design-md/shopline/DESIGN.md +0 -431
- package/.opencode/oh-my-design/design-md/slack/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/slack/DESIGN.md +0 -635
- package/.opencode/oh-my-design/design-md/smarthr/DESIGN.md +0 -452
- package/.opencode/oh-my-design/design-md/smartnews/DESIGN.md +0 -360
- package/.opencode/oh-my-design/design-md/socar/DESIGN.md +0 -438
- package/.opencode/oh-my-design/design-md/socar/_promo.json +0 -28
- package/.opencode/oh-my-design/design-md/socar/_research.md +0 -55
- package/.opencode/oh-my-design/design-md/soomgo/.verification.md +0 -27
- package/.opencode/oh-my-design/design-md/soomgo/DESIGN.md +0 -326
- package/.opencode/oh-my-design/design-md/spacex/.verification.md +0 -132
- package/.opencode/oh-my-design/design-md/spacex/DESIGN.md +0 -415
- package/.opencode/oh-my-design/design-md/spacex/README.md +0 -23
- package/.opencode/oh-my-design/design-md/spacex/_research.md +0 -69
- package/.opencode/oh-my-design/design-md/spacex/preview-dark.html +0 -221
- package/.opencode/oh-my-design/design-md/spacex/preview.html +0 -220
- package/.opencode/oh-my-design/design-md/spoon/DESIGN.md +0 -492
- package/.opencode/oh-my-design/design-md/spotify/.verification.md +0 -128
- package/.opencode/oh-my-design/design-md/spotify/DESIGN.md +0 -489
- package/.opencode/oh-my-design/design-md/spotify/README.md +0 -23
- package/.opencode/oh-my-design/design-md/spotify/preview-dark.html +0 -231
- package/.opencode/oh-my-design/design-md/spotify/preview.html +0 -230
- package/.opencode/oh-my-design/design-md/starbucks/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/starbucks/DESIGN.md +0 -597
- package/.opencode/oh-my-design/design-md/stores/.verification.md +0 -61
- package/.opencode/oh-my-design/design-md/stores/DESIGN.md +0 -447
- package/.opencode/oh-my-design/design-md/stripe/.verification.md +0 -140
- package/.opencode/oh-my-design/design-md/stripe/DESIGN.md +0 -571
- package/.opencode/oh-my-design/design-md/stripe/README.md +0 -24
- package/.opencode/oh-my-design/design-md/stripe/preview-dark.html +0 -428
- package/.opencode/oh-my-design/design-md/stripe/preview.html +0 -419
- package/.opencode/oh-my-design/design-md/studio/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/studio/DESIGN.md +0 -602
- package/.opencode/oh-my-design/design-md/supabase/.verification.md +0 -145
- package/.opencode/oh-my-design/design-md/supabase/DESIGN.md +0 -389
- package/.opencode/oh-my-design/design-md/supabase/README.md +0 -24
- package/.opencode/oh-my-design/design-md/supabase/preview-dark.html +0 -977
- package/.opencode/oh-my-design/design-md/supabase/preview.html +0 -955
- package/.opencode/oh-my-design/design-md/superhuman/.verification.md +0 -184
- package/.opencode/oh-my-design/design-md/superhuman/DESIGN.md +0 -453
- package/.opencode/oh-my-design/design-md/superhuman/README.md +0 -23
- package/.opencode/oh-my-design/design-md/superhuman/preview-dark.html +0 -973
- package/.opencode/oh-my-design/design-md/superhuman/preview.html +0 -951
- package/.opencode/oh-my-design/design-md/surveycake/.verification.md +0 -31
- package/.opencode/oh-my-design/design-md/surveycake/DESIGN.md +0 -442
- package/.opencode/oh-my-design/design-md/tada/DESIGN.md +0 -579
- package/.opencode/oh-my-design/design-md/teamblind/.verification.md +0 -76
- package/.opencode/oh-my-design/design-md/teamblind/DESIGN.md +0 -497
- package/.opencode/oh-my-design/design-md/tesla/.verification.md +0 -149
- package/.opencode/oh-my-design/design-md/tesla/DESIGN.md +0 -501
- package/.opencode/oh-my-design/design-md/tesla/README.md +0 -23
- package/.opencode/oh-my-design/design-md/tesla/_research.md +0 -70
- package/.opencode/oh-my-design/design-md/tesla/preview-dark.html +0 -947
- package/.opencode/oh-my-design/design-md/tesla/preview.html +0 -925
- package/.opencode/oh-my-design/design-md/theverge/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/theverge/DESIGN.md +0 -500
- package/.opencode/oh-my-design/design-md/timee/.verification.md +0 -67
- package/.opencode/oh-my-design/design-md/timee/DESIGN.md +0 -444
- package/.opencode/oh-my-design/design-md/together.ai/.verification.md +0 -145
- package/.opencode/oh-my-design/design-md/together.ai/DESIGN.md +0 -389
- package/.opencode/oh-my-design/design-md/together.ai/README.md +0 -24
- package/.opencode/oh-my-design/design-md/together.ai/preview-dark.html +0 -892
- package/.opencode/oh-my-design/design-md/together.ai/preview.html +0 -897
- package/.opencode/oh-my-design/design-md/toss/.verification.md +0 -120
- package/.opencode/oh-my-design/design-md/toss/DESIGN.md +0 -698
- package/.opencode/oh-my-design/design-md/toss/README.md +0 -19
- package/.opencode/oh-my-design/design-md/toss-securities/DESIGN.md +0 -247
- package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-proof.json +0 -126
- package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-raw.json +0 -619
- package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/.live-inspect-stock.json +0 -525
- package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/fonts.json +0 -24
- package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/structure.json +0 -35
- package/.opencode/oh-my-design/design-md/toss-securities/assets/_reference/tokens.json +0 -87
- package/.opencode/oh-my-design/design-md/tossbank/DESIGN.md +0 -576
- package/.opencode/oh-my-design/design-md/trenbe/.verification.md +0 -32
- package/.opencode/oh-my-design/design-md/trenbe/DESIGN.md +0 -293
- package/.opencode/oh-my-design/design-md/triple/DESIGN.md +0 -481
- package/.opencode/oh-my-design/design-md/tumblbug/DESIGN.md +0 -578
- package/.opencode/oh-my-design/design-md/tving/DESIGN.md +0 -317
- package/.opencode/oh-my-design/design-md/tving/assets/_reference/.live-inspect-proof.json +0 -131
- package/.opencode/oh-my-design/design-md/tving/assets/_reference/LICENSE-NOTE.md +0 -37
- package/.opencode/oh-my-design/design-md/tving/assets/_reference/attribution.md +0 -52
- package/.opencode/oh-my-design/design-md/tving/assets/_reference/fonts.json +0 -31
- package/.opencode/oh-my-design/design-md/tving/assets/_reference/screenshots/hero-desktop.png +0 -0
- package/.opencode/oh-my-design/design-md/tving/assets/_reference/structure.json +0 -55
- package/.opencode/oh-my-design/design-md/tving/assets/_reference/tokens.json +0 -115
- package/.opencode/oh-my-design/design-md/uber/.verification.md +0 -128
- package/.opencode/oh-my-design/design-md/uber/DESIGN.md +0 -423
- package/.opencode/oh-my-design/design-md/uber/README.md +0 -24
- package/.opencode/oh-my-design/design-md/uber/preview-dark.html +0 -1120
- package/.opencode/oh-my-design/design-md/uber/preview.html +0 -1119
- package/.opencode/oh-my-design/design-md/ubie/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/ubie/DESIGN.md +0 -615
- package/.opencode/oh-my-design/design-md/uniqlo/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/uniqlo/DESIGN.md +0 -575
- package/.opencode/oh-my-design/design-md/upbit/DESIGN.md +0 -337
- package/.opencode/oh-my-design/design-md/upbit/_research.md +0 -83
- package/.opencode/oh-my-design/design-md/upbit/assets/_reference/.live-inspect-proof.json +0 -263
- package/.opencode/oh-my-design/design-md/upbit/assets/_reference/fonts.json +0 -18
- package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture-exchange.json +0 -1901
- package/.opencode/oh-my-design/design-md/upbit/assets/_reference/raw-capture.json +0 -1121
- package/.opencode/oh-my-design/design-md/upbit/assets/_reference/structure.json +0 -52
- package/.opencode/oh-my-design/design-md/upbit/assets/_reference/tokens.json +0 -169
- package/.opencode/oh-my-design/design-md/upstage/DESIGN.md +0 -270
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/.live-inspect-proof.json +0 -157
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_brand-resource-center.json +0 -44
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_curated-samples.json +0 -310
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_raw-capture.json +0 -1560
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_root-vars.json +0 -76
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/_structure-raw.json +0 -298
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/fonts.json +0 -35
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/structure.json +0 -72
- package/.opencode/oh-my-design/design-md/upstage/assets/_reference/tokens.json +0 -183
- package/.opencode/oh-my-design/design-md/velog/.verification.md +0 -26
- package/.opencode/oh-my-design/design-md/velog/DESIGN.md +0 -196
- package/.opencode/oh-my-design/design-md/vercel/.verification.md +0 -134
- package/.opencode/oh-my-design/design-md/vercel/DESIGN.md +0 -523
- package/.opencode/oh-my-design/design-md/vercel/README.md +0 -24
- package/.opencode/oh-my-design/design-md/vercel/preview-dark.html +0 -368
- package/.opencode/oh-my-design/design-md/vercel/preview.html +0 -367
- package/.opencode/oh-my-design/design-md/voicetube/.verification.md +0 -34
- package/.opencode/oh-my-design/design-md/voicetube/DESIGN.md +0 -266
- package/.opencode/oh-my-design/design-md/voltagent/.verification.md +0 -159
- package/.opencode/oh-my-design/design-md/voltagent/DESIGN.md +0 -454
- package/.opencode/oh-my-design/design-md/voltagent/README.md +0 -24
- package/.opencode/oh-my-design/design-md/voltagent/preview-dark.html +0 -487
- package/.opencode/oh-my-design/design-md/voltagent/preview.html +0 -766
- package/.opencode/oh-my-design/design-md/wadiz/DESIGN.md +0 -415
- package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/.live-inspect-proof.json +0 -137
- package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/fonts.json +0 -17
- package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/structure.json +0 -35
- package/.opencode/oh-my-design/design-md/wadiz/assets/_reference/tokens.json +0 -80
- package/.opencode/oh-my-design/design-md/wanted/DESIGN.md +0 -575
- package/.opencode/oh-my-design/design-md/wanted/_promo.json +0 -31
- package/.opencode/oh-my-design/design-md/wanted/_research.md +0 -119
- package/.opencode/oh-my-design/design-md/wantedly/.verification.md +0 -53
- package/.opencode/oh-my-design/design-md/wantedly/DESIGN.md +0 -437
- package/.opencode/oh-my-design/design-md/warp/.verification.md +0 -156
- package/.opencode/oh-my-design/design-md/warp/DESIGN.md +0 -431
- package/.opencode/oh-my-design/design-md/warp/README.md +0 -23
- package/.opencode/oh-my-design/design-md/warp/preview-dark.html +0 -500
- package/.opencode/oh-my-design/design-md/warp/preview.html +0 -533
- package/.opencode/oh-my-design/design-md/watcha/DESIGN.md +0 -465
- package/.opencode/oh-my-design/design-md/wavve/DESIGN.md +0 -480
- package/.opencode/oh-my-design/design-md/wconcept/DESIGN.md +0 -556
- package/.opencode/oh-my-design/design-md/webflow/.verification.md +0 -151
- package/.opencode/oh-my-design/design-md/webflow/DESIGN.md +0 -330
- package/.opencode/oh-my-design/design-md/webflow/README.md +0 -23
- package/.opencode/oh-my-design/design-md/webflow/preview-dark.html +0 -147
- package/.opencode/oh-my-design/design-md/webflow/preview.html +0 -146
- package/.opencode/oh-my-design/design-md/wired/.verification.md +0 -21
- package/.opencode/oh-my-design/design-md/wired/DESIGN.md +0 -572
- package/.opencode/oh-my-design/design-md/wise/.verification.md +0 -141
- package/.opencode/oh-my-design/design-md/wise/DESIGN.md +0 -317
- package/.opencode/oh-my-design/design-md/wise/README.md +0 -23
- package/.opencode/oh-my-design/design-md/wise/preview-dark.html +0 -230
- package/.opencode/oh-my-design/design-md/wise/preview.html +0 -229
- package/.opencode/oh-my-design/design-md/x.ai/.verification.md +0 -140
- package/.opencode/oh-my-design/design-md/x.ai/DESIGN.md +0 -397
- package/.opencode/oh-my-design/design-md/x.ai/README.md +0 -24
- package/.opencode/oh-my-design/design-md/x.ai/preview-dark.html +0 -356
- package/.opencode/oh-my-design/design-md/x.ai/preview.html +0 -407
- package/.opencode/oh-my-design/design-md/xiaohongshu/DESIGN.md +0 -462
- package/.opencode/oh-my-design/design-md/yanolja/.verification.md +0 -83
- package/.opencode/oh-my-design/design-md/yanolja/DESIGN.md +0 -508
- package/.opencode/oh-my-design/design-md/yeogiotte/.verification.md +0 -210
- package/.opencode/oh-my-design/design-md/yeogiotte/DESIGN.md +0 -500
- package/.opencode/oh-my-design/design-md/yogiyo/DESIGN.md +0 -515
- package/.opencode/oh-my-design/design-md/yourator/.verification.md +0 -39
- package/.opencode/oh-my-design/design-md/yourator/DESIGN.md +0 -453
- package/.opencode/oh-my-design/design-md/zapier/.verification.md +0 -156
- package/.opencode/oh-my-design/design-md/zapier/DESIGN.md +0 -474
- package/.opencode/oh-my-design/design-md/zapier/README.md +0 -24
- package/.opencode/oh-my-design/design-md/zapier/preview-dark.html +0 -380
- package/.opencode/oh-my-design/design-md/zapier/preview.html +0 -372
- package/.opencode/oh-my-design/design-md/zigbang/DESIGN.md +0 -500
- package/.opencode/oh-my-design/design-md/zigbang/_promo.json +0 -16
- package/.opencode/oh-my-design/design-md/zigbang/_research.md +0 -101
- package/.opencode/oh-my-design/design-md/zigzag/DESIGN.md +0 -695
- package/.opencode/oh-my-design/design-md/zigzag/_promo.json +0 -23
- package/.opencode/oh-my-design/design-md/zigzag/_research.md +0 -64
- package/.opencode/oh-my-design/design-md/zozotown/.verification.md +0 -20
- package/.opencode/oh-my-design/design-md/zozotown/DESIGN.md +0 -578
- package/.opencode/oh-my-design/packages/mcp/dist/index.mjs +0 -21685
- package/.opencode/oh-my-design/packages/mcp/dist/index.mjs.map +0 -1
- package/.opencode/tools/extract-design-pattern.py +0 -182
- package/.opencode/tools/sdd_design.ts +0 -303
|
@@ -62,7 +62,7 @@ Eres el Programador de Código (sdd-coder) del arnés SDD. Tu trabajo es codific
|
|
|
62
62
|
|
|
63
63
|
<f2_implementation>
|
|
64
64
|
<bootstrap_obligatorio>
|
|
65
|
-
**Acción Inicial (Bloqueante)**: Antes de codificar, debes leer `.openspec/active-brief.md` (o `.opencode/active-brief.md` si existiera) y el archivo
|
|
65
|
+
**Acción Inicial (Bloqueante)**: Antes de codificar, debes leer `.openspec/active-brief.md` (o `.opencode/active-brief.md` si existiera) y el archivo `.openspec/DESIGN.md` activo para asimilar todos los requerimientos y contratos de la iteración. El arnés ya no inyecta marcas externas: el tema base es `shadcn-zinc` nativo del template `nextjs-shadcn/src/app/globals.css`.
|
|
66
66
|
1. **Verifica Estado**: Si indica `Bootstrap Status: OK`, salta directamente al paso 4.
|
|
67
67
|
2. **Detecta Stack**: Next.js/React (`sdd_bootstrap_nextjs_shadcn`), FastAPI/Python (`sdd_bootstrap_fastapi`) o Agnostico/Scripting (`sdd_bootstrap_agnostic`).
|
|
68
68
|
3. **Ejecuta Bootstrap**: Llama a la herramienta del stack instalando dependencias (con `install: true` y `force: false`). Para `sdd_bootstrap_agnostic`, indica el `language` adecuado (ej: `google-apps-script`, `python`, `javascript`, `bash` o `plano`).
|
|
@@ -91,11 +91,11 @@ Eres el Programador de Código (sdd-coder) del arnés SDD. Tu trabajo es codific
|
|
|
91
91
|
</f2_implementation>
|
|
92
92
|
|
|
93
93
|
<coding_cheatsheet>
|
|
94
|
-
- **
|
|
94
|
+
- **Tokens de tema**: Los tokens viven en `globals.css` vía CSS vars (`--background`, `--foreground`, `--primary`, etc.). PROHIBIDO reescribir `globals.css` desde cero o usar colores Hex hardcodeados (`bg-white`, `text-black`) en componentes. Usa siempre variables semánticas (`bg-background`, `text-foreground`, `border-border`).
|
|
95
95
|
- **Estado**: Declara estados centralizados con `useState` en el componente padre (`owner` o `AppLayout`) y pásalos como props. Evita declarar estados compartidos en hijos.
|
|
96
96
|
- **Instalación de Shadcn Segura**: La herramienta de shadcn a utilizar en F2 es `npx shadcn@latest add <componentes>` (o simplemente `npx shadcn add`). Utiliza siempre la última versión final estable de Shadcn para garantizar la compatibilidad con Tailwind v4 y permitir la descarga de bloques complejos de la comunidad y del registro oficial (como dashboards, sidebars y formularios modernos) sin errores 404.
|
|
97
97
|
- **Next.js & Tailwind v4 Style Resolution**: En Tailwind v4, si `globals.css` importa `@import "shadcn/tailwind.css";`, debes asegurarte de instalar el paquete ejecutable `shadcn` ejecutando `npm install shadcn` o el compilador fallará.
|
|
98
|
-
- **PROHIBIDO SOBREESCRIBIR GLOBALS.CSS (Preservación del Tema Shadcn)**: Tienes ESTRICTAMENTE PROHIBIDO sobreescribir
|
|
98
|
+
- **PROHIBIDO SOBREESCRIBIR GLOBALS.CSS (Preservación del Tema Shadcn)**: Tienes ESTRICTAMENTE PROHIBIDO sobreescribir `globals.css` borrando sus variables semánticas. El tema `shadcn-zinc` del template ya provee todas las vars necesarias para claro/oscuro. Si necesitas custom tokens, agregarlos en un bloque nuevo al FINAL del archivo (después del `@theme inline` original) sin tocar las vars existentes. Borrar las vars originales rompe los componentes de Shadcn.
|
|
99
99
|
- **Next.js Auth Redirects robustas (Evitar bucles/parpadeo)**:
|
|
100
100
|
- Usa siempre `router.replace("/")` en lugar de `push` para redirecciones de login.
|
|
101
101
|
- Para evitar efectos concurrentes o solapados en Strict Mode, usa un `useRef(false)` en redirecciones asíncronas para dispararlas solo una vez.
|
|
@@ -105,7 +105,8 @@ Eres el Programador de Código (sdd-coder) del arnés SDD. Tu trabajo es codific
|
|
|
105
105
|
</coding_cheatsheet>
|
|
106
106
|
|
|
107
107
|
<design_standards>
|
|
108
|
-
- **
|
|
108
|
+
- **Diseño = `shadcn-zinc` por defecto**: El tema base viene del template `nextjs-shadcn/src/app/globals.css`. NO leas `.openspec/design-assets/<brandId>/DESIGN.md` (ese flujo está deprecado desde v1.4.0). Si el usuario pidió custom tokens en el contrato, agregarlos al final de `globals.css` sin tocar las vars originales.
|
|
109
|
+
- **Alineación con DESIGN.md e Instanciación de Bloques**: Para recrear diseños premium con grids, sidebars y headers, es **obligatorio** que si la vista requiere un dashboard, panel lateral, login o registro, utilices primero las herramientas MCP de Shadcn (`shadcn_search_items_in_registries` filtrando por `types: ["block"]`) para buscar bloques oficiales. Observa los ejemplos con `shadcn_get_item_examples_from_registries` y compón la vista. Distribuye y compón estos bloques prehechos enlazándolos con el backend en lugar de inventar la UI desde cero.
|
|
109
110
|
- **Uso Obligatorio del MCP de Shadcn (Cero Alucinaciones)**: Tienes PROHIBIDO alucinar o inventar la API, las props o los subcomponentes requeridos de los componentes de Shadcn (especialmente en componentes compuestos como Select, Tooltip, Dialog, DropdownMenu). Antes de escribir el código que use estos componentes, DEBES usar la herramienta `shadcn_get_item_examples_from_registries` para ver la implementación real, los imports exactos y su composición obligatoria.
|
|
110
111
|
- **Self-audit pre-transición (BLOQUEANTE)**: Antes de entregar, ejecuta este bloque en una sola corrida de terminal. Si el linter o el tipado TypeScript fallan, debes corregirlos antes de transicionar (el test suite completo queda delegado al Tester en F3 para ahorrar tus turnos):
|
|
111
112
|
```bash
|
|
@@ -38,7 +38,7 @@ Eres el coordinador principal del arnés de desarrollo SDD (Spec-Driven Developm
|
|
|
38
38
|
- **Stack UI Exclusivo**: Toda interfaz de usuario debe usar únicamente **Shadcn UI**.
|
|
39
39
|
- **Límite de `todowrite`**: Llama a `todowrite` MÁXIMO 2 veces por sesión: al inicio para crear la lista de fases y al final para marcar todo completado en bloque. No lo actualices en cada transición.
|
|
40
40
|
- **Modo de Verificación ("Console" vs "Visual")**: Si es `console`, queda PROHIBIDO para ti y todos los subagentes usar Playwright o navegadores.
|
|
41
|
-
- **Herramientas Específicas**:
|
|
41
|
+
- **Herramientas Específicas**: Inicia specs con `sdd_set_phase` (transacción atómica). El arnés ya no inyecta marcas externas: el default de diseño es `shadcn-zinc` nativo del template `nextjs-shadcn`.
|
|
42
42
|
- **Ruta de Capturas**: Guarda cualquier screenshot de Playwright en `.openspec/ts-<nombre>.png`.
|
|
43
43
|
- **Sistema de Memoria (Brain)**: Consulta el cerebro con `sdd_get_initial_session_data` al inicio (F0/F1) para entender el historial del proyecto. Guarda los aprendizajes clave al final en `<completion>` con `brain_save_memory`.
|
|
44
44
|
- **Modo Autopiloto (`/loop`)**: Si se detecta `loopMode: true` o comando `/loop`, autotomará el 100% de las decisiones recomendadas por defecto. Tienes PROHIBIDO usar la tool `question` en autopiloto.
|
|
@@ -25,7 +25,7 @@ Eres el Diseñador de Contratos (sdd-spec-writer) del flujo SDD. Tu único traba
|
|
|
25
25
|
- **Solo Contratos y Diseño**: Tienes prohibido escribir código de aplicación (`.py`, `.ts`, `.tsx`, etc.). Solo generas el contrato en `contract.json` bajo la carpeta spec asignada y mantienes `.openspec/DESIGN.md`.
|
|
26
26
|
- **Sin Carpetas Duplicadas**: Escribe siempre en la carpeta activa especificada en la tarea o en `activeContract`. No llames a `sdd_create_spec_folder` si ya existe.
|
|
27
27
|
- **Sin Acciones de Orquestación**: Tienes prohibido pedir aprobación directa al usuario o usar `sdd_set_phase`.
|
|
28
|
-
- **Restricción de Archivos**: El enforcer del arnés bloquea mecánicamente cualquier intento de escribir o modificar archivos fuera de la carpeta del spec actual
|
|
28
|
+
- **Restricción de Archivos**: El enforcer del arnés bloquea mecánicamente cualquier intento de escribir o modificar archivos fuera de la carpeta del spec actual y `.openspec/DESIGN.md`. El directorio `.openspec/design-assets/` ya no se usa (flujo deprecado desde v1.4.0).
|
|
29
29
|
</constraints>
|
|
30
30
|
|
|
31
31
|
<contract_structure>
|
|
@@ -49,12 +49,11 @@ Antes de declarar firmas de componentes o APIs externas en el contrato, **debes*
|
|
|
49
49
|
</mcp_validation>
|
|
50
50
|
|
|
51
51
|
<omd_reference_loading>
|
|
52
|
-
**Diseño
|
|
53
|
-
Extrae los tokens canónicos (paleta de colores, escala de bordes, tipografía, sombras) y embeberlos en el campo `tokens` dentro del `contract.json`. Esto garantiza el acoplamiento directo entre el contrato y `.openspec/DESIGN.md`.
|
|
52
|
+
**Diseño por defecto = `shadcn-zinc`**: El arnés ya no carga marcas externas. El tema base es el del template `nextjs-shadcn/src/app/globals.css` (zinc nativo, modo claro/oscuro via variables CSS semánticas). NO declares `brandId` ni `designTokens` en el contrato a menos que el usuario haya pedido custom tokens explícitamente. En ese caso, agregalos al campo `design.tokens` como JSON inline (paleta, radios, fuentes) y el Coder los inyectará al final de `globals.css` sin tocar las vars originales.
|
|
54
53
|
</omd_reference_loading>
|
|
55
54
|
|
|
56
55
|
<design_standards>
|
|
57
|
-
- **Alineación con DESIGN.md**:
|
|
56
|
+
- **Alineación con DESIGN.md**: El archivo `.openspec/DESIGN.md` activo contiene el estado del contrato actual. Si el usuario pidió custom tokens, declara el bloque `design.tokens` en el contrato. Si no, omítelo y deja que el Coder use el default `shadcn-zinc` del template.
|
|
58
57
|
- **Diseño Premium y Bloques Shadcn**: El contrato debe instruir el uso de bloques prehechos oficiales de Shadcn (`dashboard-01`, `sidebar-01` al `16`, `login-01` al `05`, `signup-01` al `05`, etc.) mediante el skill `shadcn-templates` (Sección 3.1) alineado a la guía del `DESIGN.md`. Quedan prohibidos los MVPs de pantalla única flotante. El spec-writer debe usar proactivamente las herramientas MCP (`shadcn_search_items_in_registries`, `shadcn_list_items_in_registries`) para identificar qué bloques de tipo `registry:block` o `registry:ui` se adecuan a la necesidad y declararlos en `frontend.components` y `files_affected`.
|
|
59
58
|
- **Escenarios de Test**:
|
|
60
59
|
- Si `verificationMode === "console"`, genera únicamente escenarios de tipo `unit` o `integration` (entre 3 y 5 escenarios en total). No generes escenarios de tipo `visual` ni tests basados en browser.
|
|
@@ -12,7 +12,7 @@ Estás ejecutando el ciclo SDD en modo **Autopiloto Autónomo** para resolver la
|
|
|
12
12
|
## Instrucciones de Autopiloto Obligatorias:
|
|
13
13
|
1. Activa inmediatamente el modo piloto en el estado llamando a `sdd_set_phase` pasándole `phase: "F1_CONTRACT"`, un `spec_name` descriptivo en kebab-case, `loopMode: true`, `loopTargetIterations: N` (si el usuario ingresó un número en su comando, ej: `/loop 3` o `iteraciones=3`; por defecto 1), y `loopCurrentIteration: 1`.
|
|
14
14
|
2. Tienes estrictamente prohibido usar la herramienta `question` para pedir confirmaciones de diseño, stack o contratos.
|
|
15
|
-
3. Elige los valores recomendados por defecto de forma autónoma (Next.js 16, Console mode,
|
|
15
|
+
3. Elige los valores recomendados por defecto de forma autónoma (Next.js 16, Console mode, diseño `shadcn-zinc` nativo del template).
|
|
16
16
|
4. No te detengas en las verificaciones humanas (HIL): asume la aprobación si el linter y los tests pasan satisfactoriamente.
|
|
17
17
|
5. Registra de forma proactiva tus hallazgos, decisiones e iteraciones en el Brain (`brain_save_memory`).
|
|
18
18
|
6. Al finalizar cada ciclo en `<completion>`, si `loopCurrentIteration < loopTargetIterations`, autoevalúa el producto, propón exactamente una (1) mejora clave de UX/UI o usabilidad, e inicia automáticamente el siguiente ciclo de mejora regresando a `F0_DETECT` / `F1_CONTRACT` incrementando `loopCurrentIteration`. No desactives `loopMode` hasta llegar a la última iteración.
|
|
@@ -231,7 +231,6 @@ export const LoopEnforcerPlugin: Plugin = async ({ project, client, $, directory
|
|
|
231
231
|
const isAllowedSpecWriterFile =
|
|
232
232
|
targetFilePath.includes(".openspec/specs/") ||
|
|
233
233
|
targetFilePath.includes(".openspec/DESIGN.md") ||
|
|
234
|
-
targetFilePath.includes(".openspec/design-assets/") ||
|
|
235
234
|
targetFilePath.endsWith("contract-schema.json")
|
|
236
235
|
|
|
237
236
|
if (!isAllowedSpecWriterFile) {
|
|
@@ -452,7 +452,7 @@ export const SddBridgePlugin: Plugin = async ({ project, client, $, directory, w
|
|
|
452
452
|
}
|
|
453
453
|
// Live-refresh the canonical _sessions.jsonl so future sessions
|
|
454
454
|
// can read compact history (1 line per contract) instead of full MD exports.
|
|
455
|
-
if (input?.tool === "sdd_set_phase" || input?.tool === "
|
|
455
|
+
if (input?.tool === "sdd_set_phase" || input?.tool === "sdd_create_spec_folder") {
|
|
456
456
|
try {
|
|
457
457
|
const metrics = readMetrics()
|
|
458
458
|
const state = readState()
|
|
@@ -39,8 +39,7 @@ const IGNORE_DIRS = new Set([
|
|
|
39
39
|
"coverage",
|
|
40
40
|
".openspec/cache",
|
|
41
41
|
".openspec/__tests__",
|
|
42
|
-
".opencode/templates"
|
|
43
|
-
".opencode/oh-my-design"
|
|
42
|
+
".opencode/templates"
|
|
44
43
|
])
|
|
45
44
|
|
|
46
45
|
// Patrones prohibidos: cualquier chartConfig que envuelva una variable CSS
|
|
@@ -24,18 +24,17 @@ F4 → deployer genera Dockerfile + build + verify
|
|
|
24
24
|
- **Stack**: Next.js 16 + Shadcn UI + Tailwind v4 (frontend), FastAPI + Pydantic (backend)
|
|
25
25
|
- **Verificación**: `console` (5x más rápido que `visual`)
|
|
26
26
|
- **Persistencia**: localStorage (mock frontend), SQLite (backend simple)
|
|
27
|
-
- **Diseño**:
|
|
27
|
+
- **Diseño**: `shadcn-zinc` nativo (default; sin marcas externas)
|
|
28
28
|
|
|
29
29
|
## Atajos críticos
|
|
30
30
|
|
|
31
31
|
| Atajo | Ahorro |
|
|
32
32
|
|---|---|
|
|
33
|
-
| `sdd_list_design_recommendations({ use_case: "all" })` en F0 | 4 calls → 1 |
|
|
34
33
|
| `sdd_set_phase({ phase: "F1_CONTRACT", spec_name: "..." })` atómico | Crea carpeta sin race |
|
|
35
|
-
| `sdd_select_design({ brandId: "..." })` | Copia DESIGN.md |
|
|
36
34
|
| `brain_read_memory({ category: ... })` en F0 y F3 inicio | Previene errores históricos |
|
|
37
35
|
| Skill `sdd-quickstart` en F1 | Plantilla pre-rellenada (~1 min vs 3+ min) |
|
|
38
|
-
| `
|
|
36
|
+
| `sdd_catalog_list_blocks({ registry: "all" })` en F1 | Lista shadcn/basecn/reactbits en 1 call |
|
|
37
|
+
| `sdd_lucide_validate_lucide_icons_batch({ icons: [...] })` en F1 | Valida lote de iconos en 1 call |
|
|
39
38
|
| `sdd_generate_dockerfile({ stack: "nextjs", port: 3000 })` en F4 | Genera 3 archivos en 1 call |
|
|
40
39
|
|
|
41
40
|
## Reglas duras
|
|
@@ -35,23 +35,24 @@ Cada fase tiene un **gate explícito** (HIL del usuario) antes de transicionar a
|
|
|
35
35
|
|
|
36
36
|
| Atajo | Cuándo | Ahorro |
|
|
37
37
|
|---|---|---|
|
|
38
|
-
| `sdd_list_design_recommendations({ use_case: "all" })` | F0 | 4 llamadas a `oh-my-design_list_references` → 1 |
|
|
39
38
|
| `sdd_set_phase({ phase: "F1_CONTRACT", spec_name: "..." })` | F0→F1 | Crea la carpeta del spec atómicamente, sin race de timestamp |
|
|
40
|
-
| `sdd_select_design({ brandId: "nike" })` | F0 | Copia DESIGN.md al path canónico `.openspec/design-assets/<brandId>/` |
|
|
41
39
|
| `brain_read_memory({ category: ... })` | F0-F4 | Consulta el cerebro del proyecto para recuperar aprendizajes y evitar errores históricos |
|
|
42
40
|
| `brain_save_memory({ category: ... })` | F2, F4 | Guarda aprendizajes, errores técnicos resueltos y decisiones de diseño en el cerebro |
|
|
43
41
|
| Skill `sdd-quickstart` | F1 | Plantilla de `contract.json` pre-rellenada + test_scenarios recurrentes |
|
|
44
|
-
| `
|
|
42
|
+
| `sdd_lucide_validate_lucide_icons_batch({ icons: [...] })` | F1 | Valida lote completo de iconos Lucide en 1 call (vs 1 por icono) |
|
|
43
|
+
| `sdd_catalog_list_blocks({ registry: "all" })` | F1 | Lista candidatos de shadcn/basecn/reactbits en 1 call |
|
|
45
44
|
| `sdd_generate_dockerfile({ stack: "nextjs", port: 3000 })` | F4 | Genera Dockerfile + .dockerignore + docker-compose.yml en 1 call |
|
|
46
45
|
| `_sessions.jsonl` | Histórico | 1 línea por contrato (vs 18K+ líneas de MD export) |
|
|
47
46
|
|
|
47
|
+
> **Diseño**: el arnés ya no inyecta marcas externas. El default es `shadcn-zinc` nativo del template `nextjs-shadcn`. Si el usuario quiere tokens custom, lo hace explícito en F2 con edición manual de `globals.css`.
|
|
48
|
+
|
|
48
49
|
---
|
|
49
50
|
|
|
50
51
|
## 3. Trampas del Flujo Maestro (EVITAR siempre)
|
|
51
52
|
|
|
52
|
-
### Trampa 1:
|
|
53
|
-
**NO HAGAS**:
|
|
54
|
-
**HAZ**:
|
|
53
|
+
### Trampa 1: Preguntar marca de diseño al usuario en F0
|
|
54
|
+
**NO HAGAS**: Preguntar al usuario "¿qué marca/diseño quieres?" o asumir tokens custom por defecto.
|
|
55
|
+
**HAZ**: Asumir `shadcn-zinc` nativo. El template `nextjs-shadcn/src/app/globals.css` ya viene con todas las variables semánticas para tema claro/oscuro. El usuario puede pedir custom en F2 si quiere.
|
|
55
56
|
|
|
56
57
|
### Trampa 2: Crear la carpeta del spec en 2 steps
|
|
57
58
|
**NO HAGAS**: Llamar a `sdd_create_spec_folder("mi-spec")` y luego a `sdd_set_phase("F1_CONTRACT", ...)` por separado (causa race conditions en el timestamp).
|
|
@@ -111,10 +112,7 @@ Cada fase tiene un **gate explícito** (HIL del usuario) antes de transicionar a
|
|
|
111
112
|
│ ├── archive/ # Contratos completados
|
|
112
113
|
│ │ ├── _sessions.jsonl # 1 línea por contrato (histórico compacto)
|
|
113
114
|
│ │ └── <archived_specs>/
|
|
114
|
-
│ ├──
|
|
115
|
-
│ │ ├── DESIGN.md
|
|
116
|
-
│ │ ├── preview.html
|
|
117
|
-
│ │ └── preview-dark.html
|
|
115
|
+
│ ├── DESIGN.md # Resumen del spec activo (actualizado por sdd_save_active_brief)
|
|
118
116
|
│ ├── .playwright/ # (transient, se borra en F0_DETECT)
|
|
119
117
|
│ ├── sdd_state.json
|
|
120
118
|
│ └── .sdd_session_metrics.json
|
|
@@ -36,9 +36,8 @@ Copia el siguiente JSON y rellena los huecos. Los campos sin `{{...}}` se mantie
|
|
|
36
36
|
"persistence": "{{localStorage|sqlite|postgresql}}"
|
|
37
37
|
},
|
|
38
38
|
"design": {
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"tokens": "{{PEGA_AQUI_LOS_TOKENS_EXTRAIDOS_CON_oh-my-design_get_design_md}}"
|
|
39
|
+
"system": "shadcn-zinc-default",
|
|
40
|
+
"tokens": "inherited from .opencode/templates/nextjs-shadcn/src/app/globals.css (zinc native)"
|
|
42
41
|
},
|
|
43
42
|
"stack": {
|
|
44
43
|
"core": ["Next.js 16", "Shadcn UI", "Tailwind CSS v4", "{{PERSISTENCE}}"],
|
|
@@ -265,10 +264,8 @@ Para un dashboard o panel estándar, usa esta plantilla **reducida** de **~80 l
|
|
|
265
264
|
## 3. Anti-patrones a evitar en el contrato
|
|
266
265
|
|
|
267
266
|
- **Inconsistencia de nombres de componentes (CRÍTICO)**: Los nombres declarados en `frontend.components[].name` del contrato son **un compromiso inmutable**. El spec-writer DEBE usar exactamente estos mismos nombres al crear las pruebas unitarias/integración, y el coder DEBE usarlos para crear los componentes de producción. **PROHIBIDO renombrar o cambiar de PascalCase a kebab-case en archivos de test**. Si el contrato dice `CalculatorPanel`, el archivo de test se llamará `CalculatorPanel.test.tsx` y no se debe cambiar a `CalculatorPage.test.tsx` (esto causó fallas de compilación con imports rotos en la sesión 1374).
|
|
268
|
-
- **NO busques iconos uno por uno**: PROHIBIDO usar `lucide-icons_fuzzy_search_icons` de forma repetitiva en un loop para cada icono. Usa la herramienta optimizada por lotes `sdd_validate_lucide_icons_batch` pasándole todo el arreglo de nombres de iconos que desees usar en una sola llamada.
|
|
269
|
-
- **NO
|
|
270
|
-
- **NO embebas código TSX en el contrato.** El contrato es declarativo (qué, no cómo).
|
|
271
|
-
- **NO dupliques los tokens de `.openspec/design-assets/<brandId>/DESIGN.md` línea por línea.** Usa el tool `oh-my-design_get_design_md` y pega el bloque `tokens` completo UNA vez.
|
|
267
|
+
- **NO busques iconos uno por uno**: PROHIBIDO usar `lucide-icons_fuzzy_search_icons` de forma repetitiva en un loop para cada icono. Usa la herramienta optimizada por lotes `sdd_validate_lucide_icons_batch` (tool `sdd_lucide_validate_lucide_icons_batch`) pasándole todo el arreglo de nombres de iconos que desees usar en una sola llamada.
|
|
268
|
+
- **NO embabes código TSX en el contrato.** El contrato es declarativo (qué, no cómo).
|
|
272
269
|
- **NO escribas más de 5-6 `test_scenarios`** para modo `console`. Más de eso no acelera la entrega, solo retrasa F2.
|
|
273
270
|
- **NO incluyas escenarios `visual` o `e2e` si `verificationMode` es `console`.** El tester los rechazará.
|
|
274
271
|
- **NO omitas la disposición espacial y propuesta de Layout**: El spec-writer DEBE proponer un bosquejo textual o diagrama ASCII de la disposición espacial de la UI en F1 (ej. layouts con sidebar lateral para configuración o paneles complejos en lugar de simples pestañas tradicionales planas) y acordar anchos de pantalla generosos (`max-w-6xl` o superior, evitando el limitante `max-w-3xl`) con el usuario antes de transicionar a F2. Esto previene reestructuraciones estéticas costosas y asegura entregas de alta gama a la primera.
|
|
@@ -282,8 +279,7 @@ Para un dashboard o panel estándar, usa esta plantilla **reducida** de **~80 l
|
|
|
282
279
|
[orchestrator] → sdd_set_phase({ phase: "F1_CONTRACT", spec_name: "..." })
|
|
283
280
|
[spec-writer] → skill sdd-quickstart ← ESTA SKILL
|
|
284
281
|
[spec-writer] → read .opencode/contract-schema.json
|
|
285
|
-
[spec-writer] →
|
|
286
|
-
[spec-writer] → write .openspec/specs/.../contract.json (rellenando plantilla)
|
|
282
|
+
[spec-writer] → write .openspec/specs/.../contract.json (rellenando plantilla; design=shadcn-zinc-default)
|
|
287
283
|
[spec-writer] → sdd_set_phase({ phase: "F2_IMPLEMENTATION" })
|
|
288
284
|
```
|
|
289
285
|
|
|
@@ -2,7 +2,6 @@ import { tool } from "@opencode-ai/plugin"
|
|
|
2
2
|
import fs from "fs"
|
|
3
3
|
import path from "path"
|
|
4
4
|
import { execSync } from "child_process"
|
|
5
|
-
import { RECOMMENDED_BRANDS } from "./sdd_design"
|
|
6
5
|
|
|
7
6
|
// Helper to safely resolve root directory (avoiding OpenCode bug where worktree is '/' in non-git repos)
|
|
8
7
|
const getRoot = (context: any) => {
|
|
@@ -528,15 +527,18 @@ export const get_initial_session_data = tool({
|
|
|
528
527
|
} catch (e) {}
|
|
529
528
|
}
|
|
530
529
|
|
|
531
|
-
//
|
|
532
|
-
|
|
533
|
-
|
|
530
|
+
// Diseño por defecto: zinc nativo de Shadcn. El harness ya no inyecta
|
|
531
|
+
// marcas externas (oh-my-design removido en v1.4.0); si el usuario quiere
|
|
532
|
+
// custom tokens, lo hace explicitamente en F2 via edicion manual de globals.css.
|
|
534
533
|
const response: any = {
|
|
535
534
|
status: "SUCCESS",
|
|
536
535
|
state: currentState,
|
|
537
536
|
brainMemory,
|
|
538
|
-
|
|
539
|
-
|
|
537
|
+
design: {
|
|
538
|
+
default: "shadcn-zinc",
|
|
539
|
+
note: "Diseño por defecto = shadcn zinc nativo. Sin marcas externas."
|
|
540
|
+
},
|
|
541
|
+
note: "Inicialización completada. No es necesario que llames a sdd_get_state o brain_read_memory por separado."
|
|
540
542
|
}
|
|
541
543
|
if (cleanedCount > 0) {
|
|
542
544
|
response.cleanedArtifacts = cleanedCount
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { tool } from "@opencode-ai/plugin"
|
|
2
|
+
import fs from "fs"
|
|
3
|
+
import path from "path"
|
|
4
|
+
import { execSync } from "child_process"
|
|
5
|
+
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// SDD Lucide Icons Tool
|
|
8
|
+
// ============================================================================
|
|
9
|
+
//
|
|
10
|
+
// Validacion batch de iconos de Lucide React. Antes vivia en sdd_design.ts
|
|
11
|
+
// (junto con tools de oh-my-design). Se independizo para que sobreviva a
|
|
12
|
+
// la remocion de oh-my-design (sigue siendo util para spec-writer cuando
|
|
13
|
+
// declara iconos en el contract.json).
|
|
14
|
+
//
|
|
15
|
+
// Fuentes de validacion (en orden de prioridad):
|
|
16
|
+
// 1. node_modules/lucide-react: introspeccion real de los exports del paquete
|
|
17
|
+
// 2. static_common_list: ~110 iconos mas usados como fallback rapido
|
|
18
|
+
// 3. pascal_case_fallback: cualquier PascalCase se asume valido
|
|
19
|
+
// ============================================================================
|
|
20
|
+
|
|
21
|
+
const getRoot = (context: any): string => {
|
|
22
|
+
if (context?.directory && context.directory !== "/") return context.directory
|
|
23
|
+
if (context?.worktree && context.worktree !== "/") return context.worktree
|
|
24
|
+
if (context?.cwd && context.directory !== "/") return context.directory
|
|
25
|
+
return process.cwd()
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Lista de iconos comunes como fallback cuando lucide-react no esta instalado
|
|
29
|
+
// (ej. durante F1 cuando todavia no se ha corrido el bootstrap del target).
|
|
30
|
+
const COMMON_ICONS = new Set([
|
|
31
|
+
"Sun", "Moon", "Plus", "Trash2", "History", "Clock", "Calculator", "User", "Settings",
|
|
32
|
+
"Home", "ChevronLeft", "ChevronRight", "ChevronUp", "ChevronDown", "Search", "X", "Check",
|
|
33
|
+
"Edit", "Menu", "LogOut", "LogIn", "Lock", "Mail", "Phone", "MapPin", "Calendar", "Upload",
|
|
34
|
+
"Download", "ExternalLink", "Eye", "EyeOff", "AlertCircle", "CheckCircle", "Info", "HelpCircle",
|
|
35
|
+
"Bell", "Share2", "Copy", "File", "Folder", "Image", "Video", "Music", "Play", "Pause",
|
|
36
|
+
"Server", "Database", "Terminal", "Code", "Grid", "List", "Filter", "Heart", "Star",
|
|
37
|
+
"ArrowRight", "ArrowLeft", "ArrowUp", "ArrowDown", "RefreshCw", "Send", "Activity", "Briefcase",
|
|
38
|
+
"Camera", "Cloud", "Compass", "Cpu", "CreditCard", "DollarSign", "DownloadCloud", "Edit2", "Edit3",
|
|
39
|
+
"FileText", "Gift", "Globe", "Hash", "Key", "Laptop", "Map", "MessageCircle", "MessageSquare",
|
|
40
|
+
"Mic", "Monitor", "Package", "Paperclip", "Percent", "Power", "Printer", "Radio", "RotateCcw",
|
|
41
|
+
"Save", "Scissors", "Shield", "ShoppingBag", "ShoppingCart", "Slider", "Sliders", "Smartphone",
|
|
42
|
+
"Speaker", "Tablet", "Tag", "Target", "ThumbsUp", "ThumbsDown", "ToggleLeft", "ToggleRight",
|
|
43
|
+
"Trash", "TrendingUp", "TrendingDown", "Truck", "Tv", "Type", "Umbrella", "Unlock", "UploadCloud",
|
|
44
|
+
"Users", "Volume2", "VolumeX", "Wifi", "Wind", "Zap"
|
|
45
|
+
])
|
|
46
|
+
|
|
47
|
+
export const validate_lucide_icons_batch = tool({
|
|
48
|
+
description:
|
|
49
|
+
"Valida un lote de nombres de iconos de Lucide React. " +
|
|
50
|
+
"Si el proyecto target tiene `lucide-react` instalado, introspecciona " +
|
|
51
|
+
"los exports reales. Si no, usa una lista estatica de iconos comunes " +
|
|
52
|
+
"(~110) o acepta cualquier PascalCase como fallback. " +
|
|
53
|
+
"Util para que el spec-writer valide iconos antes de declararlos en " +
|
|
54
|
+
"el contract.json (frontend.icons).",
|
|
55
|
+
args: {
|
|
56
|
+
icons: tool.schema
|
|
57
|
+
.array(tool.schema.string())
|
|
58
|
+
.describe("Lista de nombres de iconos a validar (ej: ['Sun', 'Moon', 'Plus']).")
|
|
59
|
+
},
|
|
60
|
+
async execute(args, context) {
|
|
61
|
+
const root = getRoot(context)
|
|
62
|
+
const results: Record<string, { valid: boolean; source: string }> = {}
|
|
63
|
+
|
|
64
|
+
let hasNodeModules = false
|
|
65
|
+
let exportsList: Set<string> | null = null
|
|
66
|
+
|
|
67
|
+
const lucidePath = path.resolve(root, "node_modules/lucide-react")
|
|
68
|
+
if (fs.existsSync(lucidePath)) {
|
|
69
|
+
try {
|
|
70
|
+
const nodeScript = `
|
|
71
|
+
const lucide = require('lucide-react');
|
|
72
|
+
console.log(JSON.stringify(Object.keys(lucide)));
|
|
73
|
+
`
|
|
74
|
+
const output = execSync(
|
|
75
|
+
`node -e "${nodeScript.replace(/"/g, '\\"')}"`,
|
|
76
|
+
{ cwd: root, stdio: "pipe" }
|
|
77
|
+
).toString()
|
|
78
|
+
const keys = JSON.parse(output) as string[]
|
|
79
|
+
exportsList = new Set(keys)
|
|
80
|
+
hasNodeModules = true
|
|
81
|
+
} catch (e) {
|
|
82
|
+
// lucide-react instalado pero introspeccion fallo: cae a fallback
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
for (const icon of args.icons) {
|
|
87
|
+
if (hasNodeModules && exportsList) {
|
|
88
|
+
results[icon] = {
|
|
89
|
+
valid: exportsList.has(icon),
|
|
90
|
+
source: "node_modules/lucide-react"
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
const isPascalCase = /^[A-Z][a-zA-Z0-9]*$/.test(icon)
|
|
94
|
+
const inCommon = COMMON_ICONS.has(icon)
|
|
95
|
+
results[icon] = {
|
|
96
|
+
valid: inCommon || isPascalCase,
|
|
97
|
+
source: inCommon ? "static_common_list" : "pascal_case_fallback"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return JSON.stringify(
|
|
103
|
+
{
|
|
104
|
+
status: "SUCCESS",
|
|
105
|
+
validatedAt: new Date().toISOString(),
|
|
106
|
+
results
|
|
107
|
+
},
|
|
108
|
+
null,
|
|
109
|
+
2
|
|
110
|
+
)
|
|
111
|
+
}
|
|
112
|
+
})
|
package/README.md
CHANGED
|
@@ -63,8 +63,6 @@ El desarrollo se ejecuta secuencialmente a través de cinco fases estrictas, con
|
|
|
63
63
|
|
|
64
64
|
El arnés inyecta y habilita automáticamente varios servidores MCP avanzados en tu espacio de trabajo para dar soporte contextual al bot:
|
|
65
65
|
|
|
66
|
-
* 📚 **`oh-my-design` (MCP de Diseño Offline)**:
|
|
67
|
-
Servidor oficial que empaqueta **246 marcas de diseño icónicas** (Toss, Stripe, Supabase, Linear, etc.). Permite buscar especificaciones estéticas (`DESIGN.md`), paletas de colores exactas, tipografía y plantillas HTML interactivas de previsualización 100% offline (sin llamadas a APIs ni coste de tokens).
|
|
68
66
|
* 🎨 **`shadcn` (MCP de Interfaz de Usuario)**:
|
|
69
67
|
Permite explorar, buscar e instalar de forma instantánea componentes del registro oficial de Shadcn UI (botones, inputs, cards, dashboards completos) directamente desde la terminal.
|
|
70
68
|
* 🔍 **`context7` (MCP de Consultas de Documentación)**:
|
|
@@ -161,11 +159,7 @@ Si deseas realizar modificaciones en este instalador o probar el código localme
|
|
|
161
159
|
Para publicar una nueva versión de Zugzbot en el registro público de NPM:
|
|
162
160
|
|
|
163
161
|
1. Incrementa la versión en el `package.json` de la raíz (ej. `1.0.1`).
|
|
164
|
-
2.
|
|
165
|
-
```bash
|
|
166
|
-
npm run build
|
|
167
|
-
```
|
|
168
|
-
3. Inicia sesión y publica desde la raíz de tu proyecto:
|
|
162
|
+
2. Inicia sesión y publica desde la raíz de tu proyecto:
|
|
169
163
|
```bash
|
|
170
164
|
npm login
|
|
171
165
|
npm publish --access public
|
package/opencode.json
CHANGED
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"permission": {
|
|
21
21
|
"*": "allow",
|
|
22
22
|
"skill": {
|
|
23
|
-
"omd-*": "allow",
|
|
24
23
|
"stack-validator": "allow",
|
|
25
24
|
"sdd-foundation-overview": "allow",
|
|
26
25
|
"sdd-methodology": "allow",
|
|
@@ -45,15 +44,6 @@
|
|
|
45
44
|
"opencode-notificator"
|
|
46
45
|
],
|
|
47
46
|
"mcp": {
|
|
48
|
-
"oh-my-design": {
|
|
49
|
-
"type": "local",
|
|
50
|
-
"command": [
|
|
51
|
-
"node",
|
|
52
|
-
"./.opencode/oh-my-design/packages/mcp/dist/index.mjs"
|
|
53
|
-
],
|
|
54
|
-
"enabled": true,
|
|
55
|
-
"purpose": "Busca, consulta y aplica temas de diseño (Toss, Stripe, Supabase, etc.)."
|
|
56
|
-
},
|
|
57
47
|
"shadcn": {
|
|
58
48
|
"type": "local",
|
|
59
49
|
"command": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zugzbot",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Fácil instalador del arnés SDD de Zugzbot para proyectos OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
".opencode/tools/",
|
|
21
21
|
".opencode/scripts/",
|
|
22
22
|
".opencode/contract-schema.json",
|
|
23
|
-
".opencode/oh-my-design/design-md/",
|
|
24
|
-
".opencode/oh-my-design/packages/mcp/dist/",
|
|
25
23
|
".utils/export_opencode_session.py",
|
|
26
24
|
".utils/toggle_model.py"
|
|
27
25
|
],
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# 11st — Verification Notes (2026-06-09)
|
|
2
|
-
|
|
3
|
-
## Proof — Tier 1 live inspect
|
|
4
|
-
|
|
5
|
-
**Inspected:** 2026-06-09
|
|
6
|
-
**Method:** playwright getComputedStyle (live DOM)
|
|
7
|
-
**Sources:**
|
|
8
|
-
- https://www.11st.co.kr (homepage, live DOM)
|
|
9
|
-
- https://about.11st.co.kr (brand/company surface)
|
|
10
|
-
|
|
11
|
-
Live DOM inspection of https://www.11st.co.kr was performed with the global
|
|
12
|
-
Playwright (chromium, headless, `--disable-http2`), navigating to `networkidle`
|
|
13
|
-
and dismissing overlays before running `getComputedStyle` on body, headings,
|
|
14
|
-
buttons, links, search input, product/price elements, and a full-tree color
|
|
15
|
-
scan. The homepage chrome is intentionally grayscale (`#666666` body on
|
|
16
|
-
`#111111` headings over a white field); the brand red surfaces on active/focused
|
|
17
|
-
states and discount accents. Over 10 real samples collected; representative set
|
|
18
|
-
below.
|
|
19
|
-
|
|
20
|
-
### Raw samples
|
|
21
|
-
- body → color `rgb(102, 102, 102)` (#666666), font-family `"Noto Sans KR", "Helvetica Neue", "Apple SD Gothic Neo", "맑은 고딕", "Malgun Gothic", 돋움, dotum, sans-serif`, font-size 14px, line-height 21px
|
|
22
|
-
- h1 / h2 → color `rgb(102, 102, 102)` (#666666), font-size 14px, font-weight 700, line-height 21px
|
|
23
|
-
- active search tab (LI.focused, 통합검색) → color `#ff0038`, font-size 16px; tab border-radius `25px 25px 0px`
|
|
24
|
-
- discount/related accent (EM) → color `#f43142`
|
|
25
|
-
- discount price (강조) → color `#111111`, font-size 24px, font-weight 700 ("2,749,000")
|
|
26
|
-
- base price figure → color `#111111`, font-size 16px, font-weight 400 ("할인모음가2,749,000원")
|
|
27
|
-
- strikethrough original price (판매가) → color `#a9a9a9`, font-size 13px ("판매가3,190,420원")
|
|
28
|
-
- search input → font-size 16px, fg `rgb(102, 102, 102)` (#666666)
|
|
29
|
-
- nav/links → color `rgb(102, 102, 102)` (#666666), 14px; emphasis link `rgb(17, 17, 17)` (#111111) 17px
|
|
30
|
-
- canvas → white field (`#ffffff`); structural hairlines `#eeeeee`
|
|
31
|
-
|
|
32
|
-
## Country sources
|
|
33
|
-
|
|
34
|
-
Korean brand-owned / regional sources (not getdesign/refero/google favicon):
|
|
35
|
-
- https://www.11st.co.kr — 11st (11번가) official storefront, live DOM source of truth
|
|
36
|
-
- https://about.11st.co.kr — Eleven Street Co., Ltd. official company/brand site (회사소개)
|
|
37
|
-
- https://apps.apple.com/kr/app/11번가/id412759628 — 11st official iOS app, App Store KR listing (brand-owned product surface)
|