[デザイン] 2. SSOT → 静的UI骨格(見た目のみ)を生成
Scanned 2/12/2026
Install to Claude Code
npx -y skills add mae616/ai-template --skill design-ui --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Design Ui?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mae616-design-ui)More formats (shields.io, HTML) on the badges page.
---
user-invocable: true
description: "[デザイン] 2. SSOT → 静的UI骨格(見た目のみ)を生成"
---
# [デザイン] 2. SSOT → 静的UI骨格(見た目のみ)を生成
## コマンド: /design-ui [$TARGET] [$PAGE_KEY]
設計JSON(tokens/components/design_context)を参照し、**静的UI骨格**のみ生成。
ロジック/状態/データ取得は入れない。ターゲットは **doc/input/rdd.md** の技術スタックを既定とし、引数で上書きする場合は **ADR-lite承認必須**。
## いつ使う?(位置づけ)
- `/design-ssot` または `/design-mock` で **SSOT(tokens/components/context)** が揃ったあと
- 「実装スタック準拠のファイル配置」で **見た目だけの骨格**を先に作りたいとき(後で分割・結合する前提)
## 次に何をする?
- 重複UIを減らして保守しやすくする → `/design-components`
- variantsを型付きprops/属性に落として再利用UIにする → `/design-assemble`
## 共通前提(参照)
- 口調・出力規約・差分出力の方針は `CLAUDE.md` に従う。
- `doc/input/rdd.md` を読み、該当する `.claude/skills/*` を適用して判断軸を揃える。
- 例(ロール): `frontend-implementation` / `accessibility-engineer`
- 例(tech): `react` / `astro` / `svelte` / `tailwind`(※テンプレートでは固定せず、RDDのスタックに合わせて選ぶ)
- 詳細運用(サンプル運用/依存評価補助/ADR-lite)は `doc/guide/ai_guidelines.md` を参照。
## 見た目の基準(ビューポート)について
- まず `doc/input/rdd.md` の「ターゲット表示環境(事実)」を参照し、プレビュー/Story等の確認は **そのビューポートを基準**に行う
- 未記入の場合は、以下を **推奨デフォルト**として仮置きする:
- desktop: 1440x900
- mobile: 390x844
- tablet: 834x1194
### 入力
- $TARGET(任意): react | vue | svelte | swiftui | flutter | web-components | plain-html など
- $PAGE_KEY(任意): 画面キー(`doc/input/design/design_context.json` の `pages[].key`)
- 省略時: **全ページ**を対象に生成する(複数ページ対応の既定)
### 出力(差分のみ)
- スタック別の標準配置へ静的UIファイル一式
- 例: React → `src/components/*`, `src/stories/*`, `tailwind.config.js`(tokens反映)
- 例: Vue → `src/components/*.vue`, `src/stories/*`
- 例: SwiftUI → `Sources/UI/*`
- Storybook/プレビュー(対応スタックのみ)
### 前提(入力ファイル)
- `doc/input/design/design-tokens.json`
- `doc/input/design/components.json`
- `doc/input/design/design_context.json`
- `doc/input/design/copy.json`(文言のSSOT。一字一句固定)
- `doc/input/design/assets/assets.json`(任意。存在する場合は必ず参照して画像を配置する)
(通常は `/design-ssot` の成果物)
### 参照(スキーマ)
- constraints/resizing/autoLayout の解釈とレスポンシブ対応表は `doc/input/design/ssot_schema.md` を参照する
### レスポンシブ適用規則(Figma→CSS/スタイル)
- Auto Layout → `flex` 等 + tokens の `gap/padding`
- constraints/resizing マッピング
- horizontal: SCALE → `w-full` / `flex-grow` 等
- vertical: TOP_BOTTOM → `h-full`(文脈でcol)
- resizing: FILL → `flex-1` / `w-full`
- resizing: HUG → `inline-size: max-content` / `inline-block`
- breakpoints → `doc/input/design/design-tokens.json` の `primitives.breakpoints` 準拠
- **tokens外の値禁止 / magic number禁止**
### 禁止
- 状態/ロジック/フェッチの追加
- RDD逸脱スタックの導入($TARGET指定時はADR-lite要)
- `copy.json` の文言を推測/言い換えして埋めること(不足は不足として止める)
- `div` クリック等でボタン/リンク相当を作ること(セマンティック要素を優先し、必要最小限のWAI-ARIAに限定する)
### 文言(copy)の適用ルール
- `design_context.json` の text ノードは `copyKey` を持つ前提で、対応する文言を `doc/input/design/copy.json` から参照して埋め込む
- `copyKey` が未定義/不足している場合は、**推測で生成しない**。ユーザーに以下を依頼して停止する:
- `FIGMA_REF` を再提示して `/design-ssot` をやり直す
- または `copy.json` の差分(追加すべきキーと文言)を提供してもらう
### 画像アセット(assets.json)の適用ルール
- `doc/input/design/assets/assets.json` が存在する場合は、`baseDir` 配下にある画像を参照してUI骨格に反映する
- 例: Next/Astro/React → `public/design-assets/*`
- 例: SvelteKit → `static/design-assets/*`
- `components.json` の `slots` や `usedBy` 情報と照合し、画像が必要な箇所(ロゴ/アイコン/イラスト/写真)の取りこぼしを防ぐ
- 画像の最適化(次世代フォーマット変換/圧縮/レスポンシブ画像生成等)は、この工程では必須にしない(まず再現性を優先)
- `assets.json` に `status: "failed"` がある場合は、**必ずユーザーに不足(動画/画像等)を報告**し、手元提供またはFigma Export設定の依頼をして停止する(推測で代替しない)
### ゲート
- 見た目一致(主要variantsのプレビュー/Story)
- tokens外の値0件 / Lint/Type green
**Agent Browser利用可能時(自律確認):**
```bash
# Storybook または開発サーバーを起動後
agent-browser open http://localhost:6006 # Storybook
# または
agent-browser open http://localhost:3000/{対象パス}
# スナップショットで要素構造を確認
agent-browser snapshot -i
# 主要breakpointsでの表示確認(viewport変更)
# 問題発見時は修正後に再スナップショット
```
- デザインとの差異(余白/色/タイポ)を目視確認
- レスポンシブ崩れがないか確認
- ここで停止
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!