@careerchain/stdd 0.1.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/README.md +44 -0
- package/assets/.claude/agents/code-reviewer.md +170 -0
- package/assets/.claude/agents/implementer.md +96 -0
- package/assets/.claude/agents/plan-writer.md +124 -0
- package/assets/.claude/agents/qa-engineer.md +133 -0
- package/assets/.claude/agents/spec-reviewer.md +173 -0
- package/assets/.claude/agents/spec-writer.md +194 -0
- package/assets/.claude/agents/test-reviewer.md +218 -0
- package/assets/.claude/docs/spec-driven-development-guide.md +436 -0
- package/assets/.claude/hooks/pre-push-check.sh +160 -0
- package/assets/.claude/settings.json +67 -0
- package/assets/.claude/skills/auto-implement/SKILL.md +168 -0
- package/assets/.claude/skills/auto-implement/references/github-project.md +54 -0
- package/assets/.claude/skills/auto-implement/references/phases.md +244 -0
- package/assets/.claude/skills/create-pr/SKILL.md +112 -0
- package/assets/.claude/skills/documenting-plans/SKILL.md +217 -0
- package/assets/.claude/skills/documenting-plans/templates/plan.md +182 -0
- package/assets/.claude/skills/documenting-specifications/SKILL.md +300 -0
- package/assets/.claude/skills/documenting-specifications/guides/error-handling.md +78 -0
- package/assets/.claude/skills/documenting-specifications/guides/stdd-violations.md +237 -0
- package/assets/.claude/skills/documenting-specifications/templates/requirements.md +184 -0
- package/assets/.claude/skills/documenting-specifications/templates/screen-items-definition.md +179 -0
- package/assets/.claude/skills/documenting-specifications/templates/tech-design.md +241 -0
- package/assets/.claude/skills/generating-wireframes/SKILL.md +121 -0
- package/assets/.claude/skills/generating-wireframes/examples/tob-form.html +497 -0
- package/assets/.claude/skills/generating-wireframes/examples/tob-list.html +536 -0
- package/assets/.claude/skills/generating-wireframes/examples/toc-form.html +493 -0
- package/assets/.claude/skills/generating-wireframes/examples/toc-list.html +538 -0
- package/assets/.claude/skills/generating-wireframes/guides/from-requirements.md +53 -0
- package/assets/.claude/skills/generating-wireframes/templates/index.html +472 -0
- package/assets/.claude/skills/generating-wireframes/templates/screen.html +480 -0
- package/assets/.claude/skills/introducing-stdd/SKILL.md +185 -0
- package/assets/.claude/skills/introducing-stdd/templates/introduction-plan.md +64 -0
- package/assets/.claude/skills/kaizen/SKILL.md +129 -0
- package/assets/.claude/skills/kaizen/references/code-examples.md +233 -0
- package/assets/.claude/skills/reverse-engineering-common-spec/SKILL.md +137 -0
- package/assets/.claude/skills/reverse-engineering-feature-spec/SKILL.md +463 -0
- package/assets/.claude/skills/reverse-engineering-feature-spec/guides/accuracy.md +215 -0
- package/assets/.claude/skills/reverse-engineering-feature-spec/guides/figma-capture.md +313 -0
- package/assets/.claude/skills/review-pr-with-agents/SKILL.md +159 -0
- package/assets/.claude/skills/searching-existing-solutions/SKILL.md +110 -0
- package/assets/.claude/skills/setup-stdd/SKILL.md +82 -0
- package/assets/.claude/skills/software-architecture/SKILL.md +260 -0
- package/assets/.claude/skills/starting-new-with-stdd/SKILL.md +142 -0
- package/assets/.claude/skills/starting-new-with-stdd/templates/bootstrap-plan.md +73 -0
- package/assets/.claude/skills/tailoring-spec-format/SKILL.md +103 -0
- package/assets/.claude/skills/verifying-consistency/SKILL.md +90 -0
- package/assets/stdd.config.yml.tpl +34 -0
- package/dist/cli.js +148 -0
- package/dist/cli.js.map +1 -0
- package/dist/install.js +121 -0
- package/dist/install.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# TECH_DESIGN.md テンプレート
|
|
2
|
+
|
|
3
|
+
**目的**: 機能実装のための技術設計とテスト戦略
|
|
4
|
+
|
|
5
|
+
**配置**: `docs/<app>/<path>/TECH_DESIGN.md`
|
|
6
|
+
|
|
7
|
+
## テンプレート構造
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# [機能名] - 技術設計書
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Part 1: 技術設計
|
|
15
|
+
|
|
16
|
+
## 1. 機能固有アーキテクチャ
|
|
17
|
+
|
|
18
|
+
(この機能固有のアーキテクチャ図とデータフロー)
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
graph TD
|
|
22
|
+
A[ユーザー] --> B[ページコンポーネント]
|
|
23
|
+
B --> C[APIエンドポイント]
|
|
24
|
+
C --> D[サービス層]
|
|
25
|
+
D --> E[リポジトリ]
|
|
26
|
+
E --> F[(データベース)]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 2. 主要な設計判断
|
|
32
|
+
|
|
33
|
+
### 判断1: [技術選定]
|
|
34
|
+
|
|
35
|
+
**選択**: ...
|
|
36
|
+
**理由**: ...
|
|
37
|
+
|
|
38
|
+
### 判断2: [アーキテクチャパターン]
|
|
39
|
+
|
|
40
|
+
**選択**: ...
|
|
41
|
+
**理由**: ...
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 3. データモデル
|
|
46
|
+
|
|
47
|
+
### ER図
|
|
48
|
+
|
|
49
|
+
```mermaid
|
|
50
|
+
erDiagram
|
|
51
|
+
users ||--o{ projects : has
|
|
52
|
+
users {
|
|
53
|
+
uuid id PK
|
|
54
|
+
string email
|
|
55
|
+
timestamp created_at
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### TypeScript型定義
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
// Entity型
|
|
63
|
+
export interface UserEntity {
|
|
64
|
+
id: string;
|
|
65
|
+
email: string;
|
|
66
|
+
created_at: string;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// UI型
|
|
70
|
+
export interface User {
|
|
71
|
+
id: string;
|
|
72
|
+
email: string;
|
|
73
|
+
createdAt: Date;
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### バリデーションルール
|
|
78
|
+
|
|
79
|
+
- `email`: 必須、メール形式、最大255文字
|
|
80
|
+
- `created_at`: ISO8601形式、過去の日時
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 4. API設計
|
|
85
|
+
|
|
86
|
+
### エンドポイント
|
|
87
|
+
|
|
88
|
+
#### POST /api/users
|
|
89
|
+
|
|
90
|
+
**リクエスト**:
|
|
91
|
+
```typescript
|
|
92
|
+
interface CreateUserRequest {
|
|
93
|
+
email: string;
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**レスポンス**:
|
|
98
|
+
```typescript
|
|
99
|
+
interface CreateUserResponse {
|
|
100
|
+
user: User;
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**ビジネスロジック**:
|
|
105
|
+
1. メールアドレスの重複チェック
|
|
106
|
+
2. ユーザー作成
|
|
107
|
+
3. ウェルカムメール送信
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 5. エラーハンドリング戦略
|
|
112
|
+
|
|
113
|
+
### エラーコード定義
|
|
114
|
+
|
|
115
|
+
| エラーコード | HTTPステータス | メッセージ | 原因 |
|
|
116
|
+
|------------|--------------|----------|------|
|
|
117
|
+
| `USER_NOT_FOUND` | 404 | ユーザーが見つかりません | 存在しないユーザーID |
|
|
118
|
+
| `EMAIL_ALREADY_EXISTS` | 409 | このメールアドレスは既に使用されています | メール重複 |
|
|
119
|
+
| `VALIDATION_ERROR` | 400 | 入力内容を確認してください | バリデーション失敗 |
|
|
120
|
+
|
|
121
|
+
### 実装方針
|
|
122
|
+
|
|
123
|
+
- すべてのエラーは`AppError`クラスを継承
|
|
124
|
+
- エラーコードでエラー種別を識別
|
|
125
|
+
- ユーザー向けメッセージとログ用メッセージを分離
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 6. セキュリティ要件
|
|
130
|
+
|
|
131
|
+
- **認証・認可**: 実装方法と適用範囲
|
|
132
|
+
- **XSS対策**: 対策内容
|
|
133
|
+
- **CSRF対策**: 対策内容
|
|
134
|
+
- **SQLインジェクション対策**: 対策内容
|
|
135
|
+
- **個人情報の暗号化**: 暗号化方式
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 7. パフォーマンス要件
|
|
140
|
+
|
|
141
|
+
- **ページ読み込み時間**: 2秒以内
|
|
142
|
+
- **API応答時間**: 500ms以内
|
|
143
|
+
- **同時接続数**: 1000ユーザー
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 8. テスト戦略
|
|
148
|
+
|
|
149
|
+
### ジャーニー別テスト戦略
|
|
150
|
+
|
|
151
|
+
| ジャーニー | E2E | Integration | Unit | 根拠 |
|
|
152
|
+
|---------|-----|-------------|------|-----------|
|
|
153
|
+
| P0: メインフロー | ✅ | ✅ | ✅ | Critical path、ビジネスに直結、複数システム統合 |
|
|
154
|
+
| P1: 重要なエラーケース | ⚠️ 検討 | ✅ | ✅ | 頻度高い、Integration必須、E2Eは複雑さ・コストで判断 |
|
|
155
|
+
| P2: エッジケース | ❌ | ⚠️ | ✅ | 低頻度、Unit十分 |
|
|
156
|
+
|
|
157
|
+
### テストファイル構成
|
|
158
|
+
|
|
159
|
+
- **E2E**: `e2e/tests/[app]/[feature].spec.ts`
|
|
160
|
+
- **Integration**: `[app]/components/[name].test.tsx`
|
|
161
|
+
- **Unit**: `[app]/lib/*.test.ts`, `[app]/domain/models/*.test.ts`
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 重要なポイント
|
|
165
|
+
|
|
166
|
+
- REQUIREMENTS.mdのジャーニーをテストレベル(E2E/Integration/Unit)にマッピング
|
|
167
|
+
- テストレベル決定の根拠(Rationale)を含める
|
|
168
|
+
- 設計判断は「選択」と「理由」を明記
|
|
169
|
+
- アーキテクチャ、API設計、エラーハンドリング戦略
|
|
170
|
+
|
|
171
|
+
### 実装例・コード例について
|
|
172
|
+
|
|
173
|
+
**TECH_DESIGN.mdには実装例・コード例を含めない**。ただし、以下の場合はコードブロックの使用が許容される:
|
|
174
|
+
|
|
175
|
+
- **型定義・インターフェース**: Entity型、UI型、Request/Response型など設計情報として必要なもの
|
|
176
|
+
- **データモデル**: ER図、バリデーションルール
|
|
177
|
+
- **API設計**: エンドポイント、リクエスト/レスポンス型
|
|
178
|
+
|
|
179
|
+
以下は記述しないこと:
|
|
180
|
+
- 関数・メソッドの具体的な実装
|
|
181
|
+
- コンポーネントの実装
|
|
182
|
+
- Server Actions の実装
|
|
183
|
+
- 処理フローのコード
|
|
184
|
+
|
|
185
|
+
## TECH_DESIGN.md作成時のルール
|
|
186
|
+
|
|
187
|
+
### 1. 「実装済み」「新規追加」の分類は不要
|
|
188
|
+
|
|
189
|
+
**理由**: REQUIREMENTS.mdが常にSSoT(Single Source of Truth)であるため、TECH_DESIGN.mdでは実装済みかどうかの区別は不要。すべての要件を統一的に設計する。
|
|
190
|
+
|
|
191
|
+
❌ **悪い例**:
|
|
192
|
+
```markdown
|
|
193
|
+
### 実装済み(既存)
|
|
194
|
+
- ✅ 認証・認可: NextAuth + Supabase Authで二重認証
|
|
195
|
+
|
|
196
|
+
### 新規追加(パスワード認証)
|
|
197
|
+
- ✅ Supabase Authによるパスワード認証
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
✅ **良い例**:
|
|
201
|
+
```markdown
|
|
202
|
+
## 6. セキュリティ要件
|
|
203
|
+
|
|
204
|
+
- **認証・認可**: NextAuth + Supabase Authで二重認証
|
|
205
|
+
- **Supabase Authによるパスワード認証**: Credentials Providerで`signInWithPassword`を使用
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 2. 削除すべきセクション
|
|
209
|
+
|
|
210
|
+
TECH_DESIGN.mdでは以下のセクションは**削除する**こと:
|
|
211
|
+
|
|
212
|
+
- ❌ **Integration Points**: 外部システム・内部システムの一覧
|
|
213
|
+
- ❌ **実装順序**: フェーズ別の実装計画
|
|
214
|
+
- ❌ **ドキュメント参照文言**: 「このドキュメントは〜を参考に作成されました」
|
|
215
|
+
|
|
216
|
+
### 3. チェックボックス形式の削除
|
|
217
|
+
|
|
218
|
+
TECH_DESIGN.mdでは、実装状態を示すチェックボックス(`- [ ]`や`- ✅`)は使用しない。
|
|
219
|
+
|
|
220
|
+
❌ **悪い例**:
|
|
221
|
+
```markdown
|
|
222
|
+
## 6. セキュリティ要件
|
|
223
|
+
|
|
224
|
+
- [ ] 認証・認可の実装
|
|
225
|
+
- [ ] XSS対策
|
|
226
|
+
- ✅ CSRF対策
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
✅ **良い例**:
|
|
230
|
+
```markdown
|
|
231
|
+
## 6. セキュリティ要件
|
|
232
|
+
|
|
233
|
+
- **認証・認可**: NextAuth + Supabase Authで二重認証
|
|
234
|
+
- **XSS対策**: React自動エスケープ + DOMPurify
|
|
235
|
+
- **CSRF対策**: NextAuthがCSRFトークンを自動管理
|
|
236
|
+
|
|
237
|
+
### スコープ外
|
|
238
|
+
|
|
239
|
+
- 二要素認証(2FA)
|
|
240
|
+
- アカウントロック
|
|
241
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generating-wireframes
|
|
3
|
+
description: |-
|
|
4
|
+
REQUIREMENTS.md のユーザージャーニーから、低忠実度(low-fidelity)の HTML ワイヤーフレームを生成する。技術スタック非依存の素の HTML(CSS は各 HTML に `<style>` で埋め込み・自己完結)で、画面レイアウト・情報設計・主要文言(タイトル / ボタン / 項目ラベル)を合意形成用に可視化する。
|
|
5
|
+
when_to_use: |-
|
|
6
|
+
「ワイヤーフレーム」「WF」「wireframe」「画面設計」「画面イメージ」「モックの前段」「UI/UX デザインのHTML化」「REQUIREMENTS の画面を作る」に関する作業のとき。
|
|
7
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ワイヤーフレーム生成
|
|
11
|
+
|
|
12
|
+
REQUIREMENTS.md の **ユーザージャーニー**と**画面要素**をもとに、低忠実度の HTML ワイヤーフレーム(WF)を生成する。WF は REQUIREMENTS.md の「3. UI/UX デザイン」セクションの実体となり、ステークホルダーが画面構成・遷移・主要文言を合意するために使う。
|
|
13
|
+
|
|
14
|
+
## 何を作るか / 作らないか
|
|
15
|
+
|
|
16
|
+
| 作る | 作らない |
|
|
17
|
+
| ---- | -------- |
|
|
18
|
+
| 画面レイアウト(ヘッダー / サイドバー / 検索 / 一覧 / フォーム / カード / カンバン等) | 確定したビジュアルデザイン(ブランドカラー・余白の最終値・タイポグラフィ) |
|
|
19
|
+
| 主要文言(画面タイトル・ボタン文言・項目ラベル・タブ名)を**実値で** | ピクセルパーフェクトなモック |
|
|
20
|
+
| 状態の出し分け(通常 / 空 / エラー) | 実データ・実 API 連携・JS による挙動 |
|
|
21
|
+
| レスポンシブの大枠(モバイル 1 列 → デスクトップ展開) | 細かいアニメーション・トランジション |
|
|
22
|
+
|
|
23
|
+
⚠️ **低忠実度だが、文言は実値**。`[ボタン]` のようなダミーで終わらせず、合意済みの「検索」「新規登録」「保存」「キャンセル」などの実文言を入れる。色や装飾は持たせない(実装の自由度を縛らないため、かつ公開資産としてブランド中立に保つため)。
|
|
24
|
+
|
|
25
|
+
## 配置ルール
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
docs/<app>/<feature_path>/wireframes/
|
|
29
|
+
├── index.html … 画面一覧(目次)
|
|
30
|
+
├── <screen-1>.html … 画面ごとの WF(状態違いは <screen>-empty.html 等)
|
|
31
|
+
└── <screen-2>.html
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- 各 HTML は **自己完結**(self-contained)。デザインシステムの CSS は `<head>` 内に `<style>` で**直接埋め込む**。**CSS 単体ファイル(wireframe.css 等)は作らない**。
|
|
35
|
+
- `<app>` / `<feature_path>` は REQUIREMENTS.md と同じ階層に合わせる(`.stdd.config.yml` の `docs.layout.wireframes` があればそれに従う。なければ上記の固定規約)。
|
|
36
|
+
- REQUIREMENTS.md からは **相対リンク**で `./wireframes/index.html` を指す。
|
|
37
|
+
|
|
38
|
+
## 生成手順
|
|
39
|
+
|
|
40
|
+
### 1. 入力を読む
|
|
41
|
+
|
|
42
|
+
- 対象の `REQUIREMENTS.md`(ユーザージャーニー・表示要素・空 / エラー状態)
|
|
43
|
+
- `SCREEN_ITEMS_DEFINITION.md`(存在する場合 — フォーム項目名・選択肢・必須/任意の出所はこれ)
|
|
44
|
+
- 既存の類似画面の WF(`docs/**/wireframes/` を Glob して文言・構造を踏襲)
|
|
45
|
+
|
|
46
|
+
### 2. 画面を洗い出す
|
|
47
|
+
|
|
48
|
+
ユーザージャーニーの各ステップが「どの画面で起きるか」を割り出し、画面のリストを作る。1 ジャーニー = 複数画面のことも、複数ジャーニーが 1 画面を共有することもある。各画面について必要な**状態**(通常 / 空 / エラー / ローディング)を決める。詳細は [guides/from-requirements.md](guides/from-requirements.md)。
|
|
49
|
+
|
|
50
|
+
### 3. 雛形をコピーして組む
|
|
51
|
+
|
|
52
|
+
1. `templates/screen.html` を各画面ぶんコピーする。このひな型は `<head>` 内に**デザインシステムの `<style>` を埋め込み済み**(=デザインシステム本体)。`<body>` をコンポーネント(下表 `wf-*`)で組む。
|
|
53
|
+
2. `templates/index.html` をコピーし、全画面へのリンクと 1 行説明を並べる。
|
|
54
|
+
3. 各画面の `<title>` と `.wf-screen-label` に「画面名 / 状態名」を実値で入れる。
|
|
55
|
+
4. `<style>` ブロックは各画面で同一内容を保つ(デザインシステムを変えたい場合は全画面の `<style>` を揃えて更新する)。CSS 単体ファイルは作らない。
|
|
56
|
+
|
|
57
|
+
### 4. REQUIREMENTS.md の「3. UI/UX デザイン」を更新
|
|
58
|
+
|
|
59
|
+
ASCII アートは置かない。代わりに以下を書く(テンプレートは `documenting-specifications` の REQUIREMENTS テンプレートに準拠):
|
|
60
|
+
|
|
61
|
+
- `./wireframes/index.html` へのリンク(ワイヤーフレーム一覧)
|
|
62
|
+
- 画面ごとに: 画面名・主な操作(ボタン文言)・表示要素の要点
|
|
63
|
+
- 表示要素テーブル / 空・エラー状態の説明
|
|
64
|
+
|
|
65
|
+
### 5. セルフチェック
|
|
66
|
+
|
|
67
|
+
- [ ] すべての P0 / P1 ジャーニーに対応する画面が WF 化されている
|
|
68
|
+
- [ ] 各画面に**実文言**のタイトル・ボタン・ラベルが入っている(ダミー `[...]` が残っていない)
|
|
69
|
+
- [ ] 空状態・主要エラー状態の WF がある
|
|
70
|
+
- [ ] モバイル幅でも破綻しない(`wf-page--mobile` でプレビュー確認、または論理的に 1 列化される構造)
|
|
71
|
+
- [ ] `index.html` から全画面に到達できる
|
|
72
|
+
- [ ] 各 HTML が自己完結している(`<style>` 埋め込み・外部 CSS ファイルを参照していない)
|
|
73
|
+
- [ ] ブランドカラー・固有の装飾を持ち込んでいない(グレースケール維持)
|
|
74
|
+
|
|
75
|
+
## コンポーネント早見表(埋め込み `<style>` のクラス)
|
|
76
|
+
|
|
77
|
+
| 用途 | クラス |
|
|
78
|
+
| ---- | ------ |
|
|
79
|
+
| ページ枠 | `wf-page`(モバイル枠は `wf-page--mobile`) |
|
|
80
|
+
| グローバルヘッダー | `wf-header` / `wf-header__logo` / `wf-header__nav` / `wf-header__spacer` |
|
|
81
|
+
| 本体レイアウト | `wf-body` / `wf-sidebar` / `wf-sidebar__item(--active)` / `wf-main` |
|
|
82
|
+
| 見出し | `wf-breadcrumb` / `wf-title` / `wf-subtitle` / `wf-tabs` / `wf-tabs__item(--active)` |
|
|
83
|
+
| ツールバー | `wf-toolbar` / `wf-toolbar__spacer` / `wf-count` |
|
|
84
|
+
| 検索・フィルタ | `wf-search` / `wf-search__head` / `wf-search__body` / `wf-search__actions` |
|
|
85
|
+
| フォーム | `wf-form(--2col)` / `wf-field(--full)` / `wf-label(--required)` / `wf-input` / `wf-select` / `wf-textarea` / `wf-help` / `wf-error` |
|
|
86
|
+
| ボタン | `wf-button` / `wf-button--primary` / `wf-button--ghost` / `wf-button--sm` |
|
|
87
|
+
| テーブル | `wf-table-wrap` / `wf-table` / `wf-td--muted` |
|
|
88
|
+
| カード / グリッド | `wf-grid(--2/--3)` / `wf-card` / `wf-card__title` / `wf-card__meta` |
|
|
89
|
+
| カンバン | `wf-kanban(--3)` / `wf-kanban__col` / `wf-kanban__head` |
|
|
90
|
+
| タグ / 画像 / アバター | `wf-tag` / `wf-img` / `wf-avatar` |
|
|
91
|
+
| ページネーション | `wf-pagination` / `wf-pagination__item(--active)` |
|
|
92
|
+
| 空・エラー | `wf-empty` |
|
|
93
|
+
| モーダル | `wf-modal` / `wf-modal__head` / `wf-modal__body` / `wf-modal__foot` |
|
|
94
|
+
| 注記・ユーティリティ | `wf-note` / `wf-row` / `wf-stack` / `wf-muted` / `wf-mt` |
|
|
95
|
+
|
|
96
|
+
実例は [examples/](examples/) を参照(toC 一覧 / フォーム、toB 管理画面 一覧 / フォーム)。
|
|
97
|
+
|
|
98
|
+
## STDD フローでの位置づけ
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
REQUIREMENTS.md(ジャーニー)
|
|
102
|
+
└─ ワイヤーフレーム生成(本スキル)── 「3. UI/UX デザイン」の実体に
|
|
103
|
+
└─ TECH_DESIGN.md → テスト → 実装
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- WF は **Spec の一部**。実装前のステークホルダー合意に使う(Figma 等の実画面キャプチャは実装**後**の別工程で、混同しない)。
|
|
107
|
+
- 仕様変更時は SSOT 原則に従い、REQUIREMENTS.md → WF の順で更新する(WF だけ先に直さない)。
|
|
108
|
+
|
|
109
|
+
## When NOT to Use This Skill
|
|
110
|
+
|
|
111
|
+
- UI を持たない機能(バッチ・API のみ・内部ロジック)
|
|
112
|
+
- 既存画面の文言・ロジックのみの軽微な変更(画面構成が変わらない)
|
|
113
|
+
- 実装後の実画面キャプチャ(それは別工程)
|
|
114
|
+
|
|
115
|
+
## 参照ファイル
|
|
116
|
+
|
|
117
|
+
- [templates/screen.html](templates/screen.html) — 画面ひな型(`<head>` に汎用デザインシステムの `<style>` を埋め込み済み=デザインシステム本体)
|
|
118
|
+
- [templates/index.html](templates/index.html) — 画面一覧ひな型
|
|
119
|
+
- [guides/from-requirements.md](guides/from-requirements.md) — ジャーニー → 画面の起こし方
|
|
120
|
+
- [examples/](examples/) — toC / toB のサンプル WF
|
|
121
|
+
- 関連: [documenting-specifications](../documenting-specifications/SKILL.md)(REQUIREMENTS テンプレート)
|