Skip to content

Commit 3f1fae4

Browse files
committed
update
1 parent f631d81 commit 3f1fae4

1 file changed

Lines changed: 35 additions & 19 deletions

File tree

AGENTS.md

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

77
- フレームワーク: Nuxt 4(Vue 3)
88
- 目的: 歴代の Vue Fes Japan スピーカー一覧を表示
9-
- UI/スタイル: @nuxt/ui, Tailwind CSS 4
9+
- UI/スタイル: Tailwind CSS 4(カスタムコンポーネント中心)
1010
- データ供給: Nuxt サーバルート(`server/api`)から年別データを返却
1111

1212
## 前提・セットアップ
1313

14-
- 推奨: Node.js LTS, pnpm(`packageManager: pnpm@10.15.0`
14+
- 推奨: Node.js LTS, pnpm(`packageManager: pnpm@10.33.1`
1515
- 依存関係のインストール:
1616

1717
```bash
@@ -24,19 +24,20 @@ pnpm install
2424
- ビルド: `pnpm build`
2525
- 静的生成: `pnpm generate`
2626
- プレビュー: `pnpm preview`
27-
- 型チェック: `pnpm typecheck`
28-
- Lint: `pnpm lint`
29-
- テスト(全件): `pnpm test`
30-
- テスト(監視): `pnpm test:watch`
27+
- 型チェック: `pnpm vp:check`
28+
- Lint: `pnpm vp:lint`
29+
- フォーマット: `pnpm vp:fmt`
30+
- テスト(全件): `pnpm vp:test`
31+
- テスト(監視): `pnpm vp:test:watch`
3132

3233
## ディレクトリ構成(要点)
3334

3435
- `app/`
3536
- `pages/` ページ
3637
- `components/` UI コンポーネント
37-
- `composables/` アプリ用のロジック
38+
- `composables/` アプリ用のロジック`useVfjsI18n`, `useColorScheme`, `speaker` など)
3839
- `utils/` ユーティリティ関数
39-
- `assets/css/main.css` Tailwind CSS設定ファイル
40+
- `assets/css/main.css` グローバル CSS・カラートークン定義
4041
- `server/`
4142
- `api/` API ルート
4243
- `data/` 年別スピーカーデータ(`speakers-YYYY.ts` とインデックス)
@@ -53,28 +54,43 @@ pnpm install
5354
### 変更に伴う確認ポイント:
5455

5556
- 新しい年を追加したら、API のレスポンスが期待通りかテストで検証(`server/api/speakers/[year].test.ts` など)。
56-
- UI 側で年選択や一覧表示が反映されるか(`app/utils/years.ts`, `YearSelector.vue`)を確認。
57+
- UI 側で年選択や一覧表示が反映されるか(`app/utils/years.ts`, `YearFilterBar.vue`)を確認。
5758

5859
## UI/ページの要点
5960

6061
- ルーティング:
6162
- `app/pages/[year]/index.vue` 年別一覧ページ
6263
- `app/pages/speakers/[name]/index.vue` スピーカー詳細/個別ページ
63-
- コンポーネント例:
64-
- `SpeakerTable.vue` 一覧表示
65-
- `SpeakerSelector.vue` / `YearSelector.vue` フィルタ・ナビゲーション
66-
- スタイル: Tailwind CSS 4 を使用
64+
- コンポーネント:
65+
- `AppHeader.vue` ナビゲーション・言語切替・カラースキーム切替
66+
- `AppMasthead.vue` / `AppFooter.vue` ページ共通ヘッダ・フッタ
67+
- `DirectoryView.vue` 全スピーカー一覧(開示行で年バッジ表示)
68+
- `ChronicleView.vue` 年別タイムライン表示
69+
- `SpeakerFilterBar.vue` / `YearFilterBar.vue` フィルタ UI
70+
- スタイル: Tailwind CSS 4 ユーティリティ + CSS カスタムプロパティ(`var(--paper)`, `var(--ink)`, `var(--accent)` 等)
71+
72+
## カラースキーム
73+
74+
`useColorScheme` composable でライト / ダーク / システム の3段階を管理します。
75+
76+
- 状態: `'light' | 'dark' | 'system'`(デフォルト: `'system'`
77+
- 保存先: `localStorage('vfjs:color-scheme')`
78+
- 適用方法: `:root``data-color-scheme` 属性を操作
79+
- `system` → 属性を削除し `@media (prefers-color-scheme: dark)` に委ねる
80+
- `light` / `dark``data-color-scheme="light/dark"` をセット
81+
- CSS 定義: `app/assets/css/main.css` にトークンを定義(ライト/ダーク両方)
82+
- `@import 'tailwindcss'``theme(static)` は LightningCSS minify エラーを引き起こすため除去済み)
6783

6884
## テスト
6985

7086
- ランナー: Vitest(DOM: happy-dom)
7187
- 位置: `app/**.test.ts`, `server/**.test.ts`
72-
- 実行: `pnpm test:watch`
88+
- 実行: `pnpm vp:test:watch`
7389

7490
## 型チェック
7591

76-
- ランナー: nuxt typecheck
77-
- 実行: `pnpm typecheck`
92+
- ランナー: vite-plus(`vp check`
93+
- 実行: `pnpm vp:check`
7894
- 目的: 型の整合性を保ち、潜在的なバグを防止
7995

8096
### 書き方の指針:
@@ -94,7 +110,7 @@ pnpm install
94110

95111
### 2. スピーカー検索/フィルタを調整
96112

97-
- `SpeakerSelector.vue``SpeakerTable.vue` を変更。
113+
- `SpeakerFilterBar.vue``DirectoryView.vue` を変更。
98114
- 変更に合わせ `composables/speaker.ts` で取得ロジックやフィルタを調整。
99115
- 影響範囲のテスト更新(該当ページ/コンポーネントの test)。
100116

@@ -108,13 +124,13 @@ pnpm install
108124

109125
- ブランチ: `feat/*`, `fix/*`, `chore/*` など用途別に作成。
110126
- 実装: 小さなコミットで進め、関連テストを同時に更新。
111-
- 検証: `pnpm lint && pnpm typecheck && pnpm test` で事前チェック。
127+
- 検証: `pnpm vp:lint && pnpm vp:check && pnpm vp:test` で事前チェック。
112128
- 型チェックは特に重要。型を消すなどしてエラーを隠さないこと。その場合は詰めます。
113129
- レビュー: 変更点の要約、スクリーンショットや再現手順があると親切。
114130

115131
## トラブルシュート
116132

117133
- Node/pnpm の不整合: ローカルの pnpm を `pnpm -v` で確認(推奨 10 系)。
118-
- 型エラー: `pnpm typecheck` で事前に洗い出し。
134+
- 型エラー: `pnpm vp:check` で事前に洗い出し。
119135
- 再三忠告しますが、型を消すなどしてエラーを隠さないこと。その場合は詰めます。
120136
- キャッシュ問題: Nuxt のキャッシュが怪しい場合は開発サーバ再起動で解消することがあります。

0 commit comments

Comments
 (0)