フロントエンドナレッジ管理
概要
フロントエンド技術のナレッジベースを管理するスキル。3つの主要機能を提供:
- 実装時の自発的参照(最優先): Web開発の実装タスク時にナレッジベースを参照し、ベストプラクティスを適用して作業の精度と速度を向上
- 収集・蓄積: URLや記事からフロントエンド技術を要約してナレッジベースに追加
- 参照・回答: 蓄積されたナレッジベースから質問に関連する情報を検索して回答
使用場面
実装タスク時の自発的参照(最優先)
- Web開発の実装タスク(コンポーネント作成、レイアウト実装、アニメーション実装など)
- コーディング作業時のベストプラクティス適用
- 最新のCSS/JavaScript機能の活用
- アクセシビリティやパフォーマンスへの配慮
トリガー: ユーザーからの実装依頼、コード作成タスク、機能追加など
収集モード
- URLが渡された場合: 「この記事を保存して」
- 記事内容の追加: 「ナレッジに追加して」
- ナレッジ整理: 「ナレッジを整理して」
参照モード(質問対応)
- フロントエンド技術の質問
- CSS、JavaScript、パフォーマンス、アクセシビリティに関する質問
- 蓄積されたナレッジに基づく回答が必要な場合
パート1: ナレッジ収集・蓄積
実行モード
1. 追加モード(デフォルト)
- URLが渡された場合
- 「この記事を保存して」「ナレッジに追加して」等の依頼
2. 整理モード
- 「ナレッジを整理して」「重複を確認して」等の依頼
- 特定カテゴリの整理: 「css-layout.md を整理して」
収集フロー
Step 1: コンテンツ取得
URLが渡された場合は WebFetch で内容を取得。
Step 2: 要約・構造化
人間が直接参照できるデータ集として、以下を意識:
- 専門用語には簡潔な説明を添える
- コード例は実際にコピペして使えるレベルに
- 「なぜこの方法が良いのか」の理由を明記
- ブラウザサポート状況は具体的に記載
以下のフォーマットで要約:
## [テクニック名]
> 出典: [URL]
> 執筆日: [YYYY-MM-DD](記事の公開日・更新日。不明な場合は「不明」)
> 追加日: [YYYY-MM-DD]
[1〜3文で概要を説明]
### コード例
\```css
/* または js/html */
[実用的なコード例]
\```
### ユースケース
- [具体的な使用場面1]
- [具体的な使用場面2]
### 注意点
- [ブラウザサポート、制限事項など]
---
Step 3: カテゴリ判定
以下のカテゴリから最適なものを選択(新しい階層構造):
| カテゴリ |
ファイルパス |
対象 |
キーワード |
| CSS - レイアウト |
knowledge/css/layout/ |
Grid, Flexbox, Container Queries, full-bleed |
レイアウト, 幅, 高さ, 中央寄せ, 全幅 |
| CSS - アニメーション |
knowledge/css/animation/ |
Transitions, View Transitions, Scroll-driven |
動き, アニメーション, 遷移, トランジション |
| CSS - ビジュアル |
knowledge/css/visual/ |
filter, clip-path, mask, shape |
フィルター, マスク, 図形, 視覚効果 |
| CSS - タイポグラフィ |
knowledge/css/typography/ |
text-box, フォント, paint-order |
文字, フォント, テキスト |
| CSS - セレクタ |
knowledge/css/selectors/ |
@scope, :has, :is, :where |
スコープ, セレクタ, 擬似クラス |
| CSS - 値 |
knowledge/css/values/ |
clamp, viewport units, currentColor |
値, 単位, ビューポート, カスタムプロパティ |
| CSS - コンポーネント |
knowledge/css/components/ |
Popover, Anchor Positioning, field-sizing |
UI, コンポーネント, ポップオーバー |
| CSS - テーマ |
knowledge/css/theming/ |
light-dark, color-scheme |
テーマ, ダークモード, 配色 |
| HTML |
knowledge/html/ |
モダンHTML, セマンティック, dialog, details |
HTML, マークアップ, 要素 |
| JavaScript - パターン |
knowledge/javascript/patterns/ |
DOM, イベント, 非同期, Utilities |
JS, DOM, イベント, パターン |
| JavaScript - アニメーション |
knowledge/javascript/animation/ |
requestAnimationFrame, 補間 |
JS アニメーション, 数学的補間 |
| パフォーマンス |
knowledge/cross-cutting/performance/ |
最適化, Core Web Vitals, lazy-load |
速度, 最適化, LCP, CLS |
| アクセシビリティ |
knowledge/cross-cutting/accessibility/ |
WCAG, a11y, リンク |
a11y, アクセシビリティ, WCAG |
| ブラウザ互換性 |
knowledge/cross-cutting/browser-compat/ |
ブラウザバグ, 回避策, workarounds |
バグ, 回避, Safari, iOS |
| Apple Style Guide |
knowledge/apple-style-guide/ |
Apple製品のライティング規約、UI用語、スタイルガイド |
Apple, ライティング, UI用語, 製品名, スタイル規約, 表記 |
| Human Interface Guidelines |
knowledge/human-interface-guidelines/ |
Appleデザイン原則、iOS/macOS UI設計 |
HIG, Apple design, iOS, macOS, SwiftUI, UIKit, アプリデザイン |
| Material Design 3 |
knowledge/material-design-3/ |
Googleデザインシステム、Material You、デザイン哲学 |
Material Design, Material You, Google, デザインシステム, Dynamic Color |
Step 4: 重複チェックと処理方針の決定
重要: ナレッジ追加前に必ず既存ナレッジとの重複をチェックする。
4-1. 既存ナレッジの検索
以下のコマンドで該当トピックの既存ファイルを検索:
# キーワードで検索(例: Container Query)
find knowledge -type f -name "*.md" | xargs grep -l "container.*query\|@container"
# ファイル名で検索
find knowledge -type f -name "*container*"
4-2. 処理方針の決定
| 状況 |
対応 |
| 完全に新しい情報 |
新規ファイル作成 |
| 既存ファイルに追記可能 |
既存ファイルの末尾に追加 |
| 既存情報の更新 |
既存セクションを Edit ツールで更新 |
| 複数記事の統合 |
情報を統合して1つのファイルを作成/更新 |
| 古い情報の置き換え |
古いセクションを削除し、新情報を追加 |
| 明らかに古く有用でない |
ナレッジ化しない |
4-3. 古い情報の判断基準
以下の場合は「古く有用でない」と判断し、ナレッジ化しない:
- ブラウザサポートが終了した技術(例: IE11専用のハック)
- 非推奨になった API/構文(公式ドキュメントで deprecated)
- より良い代替手段がある古い手法(例: Polyfill が不要になった機能)
- セキュリティ上の問題がある実装
- 5年以上前の記事で、現在の標準と乖離している内容
ただし、以下は例外的に保存:
- 歴史的価値のある情報(「なぜこの書き方が避けられるようになったか」の理解)
- レガシーコード保守に必要な情報(明示的に「レガシー」とタグ付け)
4-4. 分割と統合の判断
分割すべき場合:
- 1つのファイルが500行を超える
- 複数の独立したトピックが含まれる
- 異なるカテゴリに属する情報が混在
統合すべき場合:
- 同じトピックが複数ファイルに分散している
- 内容が薄い複数ファイルを1つにまとめた方が理解しやすい
- 相互に強く関連するトピック(例: Container Query と Container Query Units)
Step 5: ファイル更新
~/.claude/skills/managing-frontend-knowledge/knowledge/[カテゴリ]/[ファイル名].md を Read
- 処理方針に従って更新:
- 新規: Write ツールで新規ファイル作成
- 追記: Edit ツールで既存ファイルの末尾に追加
- 更新: Edit ツールで既存セクションを置き換え
- 統合: 複数ファイルの内容を統合して1つのファイルを作成
- ファイルが存在しない場合は新規作成し、YAML frontmatterを追加
- YAML frontmatter形式:
---
title: タイトル
category: css/layout (カテゴリパス)
tags: [タグ1, タグ2, タグ3]
browser_support: ブラウザ対応状況
created: YYYY-MM-DD
updated: YYYY-MM-DD
---
Step 6: 確認
追加完了後、以下を報告:
- 追加したテクニック名
- 保存先カテゴリ
- 要約内容のプレビュー
複数テクニックを含む記事の場合
1つの記事に複数のテクニックがある場合:
- 各テクニックを個別エントリとして追加
- 同じ出典URLを記載
- 関連がある場合は相互参照を記載
複数カテゴリにまたがる記事の場合
記事の内容が複数のカテゴリに関連する場合は、無理に1つのファイルに押し込めない。
分割の判断基準
| 状況 |
対応 |
| 主題が1つで、他カテゴリは補足 |
主カテゴリに追加、他は参照リンクのみ |
| 独立した複数のトピックを含む |
各カテゴリに分割して追加 |
| カテゴリ間で密接に関連 |
各カテゴリに追加し、相互参照を記載 |
分割時のルール
- 各ファイルで自己完結させる: そのファイルだけ読んでも理解できるように
- 重複は最小限に: 共通部分は概要のみ、詳細は適切なカテゴリで
- 相互参照を明記: 関連ナレッジへのリンクを必ず記載
分割例
例: 「アクセシビリティを考慮したアニメーション実装」という記事
accessibility-link-underline.md:
- prefers-reduced-motion の必要性と判定方法
- 関連: css-animation.md の「モーション軽減対応」
css-animation.md:
- モーション軽減対応のCSS実装パターン
- 関連: accessibility-link-underline.md の「prefers-reduced-motion」
報告フォーマット
✅ ナレッジを追加しました(2カテゴリに分割)
📁 accessibility-link-underline.md
📝 prefers-reduced-motion の考慮
📁 css-animation.md
📝 モーション軽減対応パターン
🔗 相互参照を設定済み
類似ナレッジの検出と統合(追加時)
追加前に既存ナレッジとの類似性を確認:
チェック項目
- 同一URL: 既に存在する場合は更新として扱う
- 類似テクニック: 同じ概念・機能を扱っている場合
類似が見つかった場合のアクション
- 矛盾なし: 既存エントリに統合して強化
- アップデート: 新情報で既存を更新(旧情報は「以前の方法」として残す場合あり)
- 矛盾あり: 両論併記し、推奨を明示
- 別観点: 別エントリとして追加(相互参照を記載)
統合時の報告
🔄 類似ナレッジを検出・統合しました
既存: 「CSS Grid の基本」(執筆: 2023-06)
新規: 「Grid Layout 実践ガイド」(執筆: 2024-08)
→ 統合: 「CSS Grid レイアウト完全ガイド」として強化
- 基本構文(既存)+ 実践パターン(新規)を統合
- ブラウザサポート情報を最新化
カテゴリが不明な場合
ユーザーに確認するか、最も近いカテゴリに追加。
新カテゴリが必要な場合は SKILL.md のカテゴリ一覧も更新。
出力例(追加モード)
✅ ナレッジを追加しました
📁 カテゴリ: css-layout.md
📝 テクニック: Container Queries の実践的パターン
🔗 出典: https://example.com/container-queries
### 追加内容プレビュー:
> コンテナクエリを使用してコンポーネント単位の
> レスポンシブデザインを実現する方法...
整理モード
「ナレッジを整理して」「重複チェックして」等で発動。
整理タスク
1. 類似ナレッジの統合
統合プロセス:
- 類似エントリを検出したら内容を比較
- 矛盾がないか確認(矛盾がある場合は執筆日が新しい方を優先、または両論併記)
- 問題なければ1つの強いナレッジに統合
統合の判断基準:
- 同一テクニック: 完全統合(より詳細・最新の情報を残す)
- アップデート関係: 新情報で上書き、旧情報は「以前の方法」として注記
- 補完関係: 両方の知見を合わせてより包括的なエントリに
- 矛盾あり: 両論併記し、どちらが推奨かを明記
統合後のフォーマット:
## [テクニック名]
> 出典: [URL1], [URL2](複数の場合はカンマ区切り)
> 執筆日: [最新の執筆日](統合元: [日付1], [日付2])
> 追加日: [最初の追加日] / 統合日: [YYYY-MM-DD]
[統合された包括的な説明]
2. 古い情報の更新
- 執筆日が2年以上前のエントリを優先確認
- ブラウザサポートが変わったもの
- より良い方法が登場したもの
- 非推奨になったもの(削除 or 注記追加)
3. カテゴリの再編成
- 肥大化したカテゴリの分割提案
- 誤分類の移動
- 関連テクニックの相互参照追加
4. フォーマット統一
- コード例の書式統一
- セクション構造の統一
- 不足情報(ユースケース、注意点)の補完提案
整理フロー
- 対象カテゴリファイルを Read
- 以下を分析:
- 重複エントリ
- 古い情報(執筆日から2年以上経過、または執筆日不明で追加日から1年以上経過)
- フォーマット不統一
- 肥大化(20エントリ以上)
- 改善提案をリスト化
- ユーザー承認後に実行
出力例(整理モード)
📊 css-layout.md の分析結果
エントリ数: 15件
最終更新: 2025-01-15
### 検出された課題
1. 🔄 重複の可能性
- 「Flexbox gap」と「Flexbox の gap プロパティ」が類似
2. ⚠️ 古い情報
- 「IE対応のGrid fallback」(執筆: 2021-03)
→ IE サポート終了済み、削除を推奨
3. 📝 フォーマット不統一
- 3件のエントリに「ユースケース」セクションがない
### 推奨アクション
- [ ] 重複を統合する
- [ ] 古い情報を削除する
- [ ] フォーマットを統一する
実行しますか?
定期整理の推奨
以下のタイミングで整理を実行:
- カテゴリが20エントリを超えたとき
- 3ヶ月に1回の定期メンテナンス
- 大きな仕様変更があったとき(新ブラウザ機能など)
パート2: ナレッジ参照(実装時・回答時)
使い方
実装タスク時の自発的参照(推奨)
Web開発の実装タスクやコーディング作業を行う際、以下の流れで自発的にナレッジベースを参照する:
タスク内容からキーワードを抽出
- 例: 「レスポンシブなカードコンポーネント」→ Container Query、Grid、clamp()
- 例: 「アニメーション実装」→ View Transitions、prefers-reduced-motion
- 例: 「モーダル実装」→ dialog要素、Popover API
該当カテゴリを特定 (上記カテゴリ一覧を参照)
ナレッジファイルを Read
~/.claude/skills/managing-frontend-knowledge/knowledge/ 内の該当ファイル
ベストプラクティスを適用して実装
- ナレッジに基づいた最新の手法を使用
- ブラウザサポート情報を考慮
- アクセシビリティやパフォーマンスの考慮事項を反映
効果: 作業の精度向上、実装速度向上、最新のベストプラクティス適用
質問への回答時
- ユーザーの質問からキーワードを抽出
- 上記カテゴリ一覧から該当するファイルを特定
~/.claude/skills/managing-frontend-knowledge/knowledge/ 内の該当ファイルを Read
- 蓄積された知識を基に回答
ディレクトリ構造
knowledge/
├── INDEX.md # 全体インデックス
├── css/
│ ├── layout/ # Grid, Flexbox, 配置
│ ├── animation/ # Transitions, アニメーション
│ ├── visual/ # filter, mask, shape
│ ├── typography/ # フォント, テキスト
│ ├── selectors/ # @scope, :has, 擬似クラス
│ ├── values/ # clamp, 単位, カスタムプロパティ
│ ├── components/ # Popover, Anchor Positioning
│ └── theming/ # light-dark, テーマ
├── javascript/
│ ├── patterns/ # DOM, イベント, パターン
│ └── animation/ # requestAnimationFrame, 補間
├── html/ # モダンHTML, セマンティック
├── cross-cutting/
│ ├── performance/ # 最適化, Core Web Vitals
│ ├── accessibility/ # WCAG, a11y
│ └── browser-compat/ # ブラウザバグ, 回避策
├── apple-style-guide/ # Appleライティング規約
├── human-interface-guidelines/ # Apple HIG、デザイン原則
└── material-design-3/ # Material Design 3、デザイン哲学
回答フォーマット
## [質問に対する回答]
[説明]
### コード例
\```css
/* または js/html */
\```
### ユースケース
- [具体的な使用場面]
### 参考
- [出典URL(あれば)]
該当カテゴリがない場合
- 一般的な知識で回答
- 「ナレッジベースに該当情報がありません」と伝える
- 必要に応じてナレッジ収集機能での追加を提案
複数カテゴリにまたがる場合
関連する複数のファイルを Read して総合的に回答する。
例: 「スクロールアニメーション」→ css-animation.md + performance.md
注意事項
- カテゴリファイルが存在しない場合はエラーにせず、ある情報で回答
- 出典URLがある場合は必ず記載
- コード例は実用的なものを優先
1---2name: managing-frontend-knowledge3description: フロントエンド技術(CSS、JavaScript、HTML、パフォーマンス、アクセシビリティ)のナレッジベース管理。Web開発の実装タスクやコーディング作業時に自発的にナレッジベースを参照し、ベストプラクティスを適用することで作業の精度と速度を向上させる。URLや記事からの技術情報の要約・蓄積、質問への回答も行う。モダンCSS(Grid、Flexbox、@scope、View Transitions)、JavaScript パターン、Core Web Vitals、WCAG、ブラウザ互換性などに対応。4---5
6# フロントエンドナレッジ管理
7
8## 概要
9
10フロントエンド技術のナレッジベースを管理するスキル。3つの主要機能を提供:
11
121. **実装時の自発的参照**(最優先): Web開発の実装タスク時にナレッジベースを参照し、ベストプラクティスを適用して作業の精度と速度を向上
132. **収集・蓄積**: URLや記事からフロントエンド技術を要約してナレッジベースに追加
143. **参照・回答**: 蓄積されたナレッジベースから質問に関連する情報を検索して回答
15
16## 使用場面
17
18### 実装タスク時の自発的参照(最優先)
19
20- Web開発の実装タスク(コンポーネント作成、レイアウト実装、アニメーション実装など)
21- コーディング作業時のベストプラクティス適用
22- 最新のCSS/JavaScript機能の活用
23- アクセシビリティやパフォーマンスへの配慮
24
25**トリガー**: ユーザーからの実装依頼、コード作成タスク、機能追加など
26
27### 収集モード
28
29- URLが渡された場合: 「この記事を保存して」
30- 記事内容の追加: 「ナレッジに追加して」
31- ナレッジ整理: 「ナレッジを整理して」
32
33### 参照モード(質問対応)
34
35- フロントエンド技術の質問
36- CSS、JavaScript、パフォーマンス、アクセシビリティに関する質問
37- 蓄積されたナレッジに基づく回答が必要な場合
38
39---
40
41# パート1: ナレッジ収集・蓄積
42
43## 実行モード
44
45### 1. 追加モード(デフォルト)
46
47- URLが渡された場合
48- 「この記事を保存して」「ナレッジに追加して」等の依頼
49
50### 2. 整理モード
51
52- 「ナレッジを整理して」「重複を確認して」等の依頼
53- 特定カテゴリの整理: 「css-layout.md を整理して」
54
55## 収集フロー
56
57### Step 1: コンテンツ取得
58
59URLが渡された場合は `WebFetch` で内容を取得。
60
61### Step 2: 要約・構造化
62
63**人間が直接参照できるデータ集**として、以下を意識:
64
65- 専門用語には簡潔な説明を添える
66- コード例は実際にコピペして使えるレベルに
67- 「なぜこの方法が良いのか」の理由を明記
68- ブラウザサポート状況は具体的に記載
69
70以下のフォーマットで要約:
71
72```markdown
73## [テクニック名]
74
75> 出典: [URL]
76> 執筆日: [YYYY-MM-DD](記事の公開日・更新日。不明な場合は「不明」)
77> 追加日: [YYYY-MM-DD]
78
79[1〜3文で概要を説明]
80
81### コード例
82
83\```css
84/* または js/html */
85[実用的なコード例]
86\```
87
88### ユースケース
89- [具体的な使用場面1]
90- [具体的な使用場面2]
91
92### 注意点
93- [ブラウザサポート、制限事項など]
94
95---
96```
97
98### Step 3: カテゴリ判定
99
100以下のカテゴリから最適なものを選択(新しい階層構造):
101
102| カテゴリ | ファイルパス | 対象 | キーワード |
103|---------|-------------|------|-----------|
104| **CSS - レイアウト** | `knowledge/css/layout/` | Grid, Flexbox, Container Queries, full-bleed | レイアウト, 幅, 高さ, 中央寄せ, 全幅 |
105| **CSS - アニメーション** | `knowledge/css/animation/` | Transitions, View Transitions, Scroll-driven | 動き, アニメーション, 遷移, トランジション |
106| **CSS - ビジュアル** | `knowledge/css/visual/` | filter, clip-path, mask, shape | フィルター, マスク, 図形, 視覚効果 |
107| **CSS - タイポグラフィ** | `knowledge/css/typography/` | text-box, フォント, paint-order | 文字, フォント, テキスト |
108| **CSS - セレクタ** | `knowledge/css/selectors/` | @scope, :has, :is, :where | スコープ, セレクタ, 擬似クラス |
109| **CSS - 値** | `knowledge/css/values/` | clamp, viewport units, currentColor | 値, 単位, ビューポート, カスタムプロパティ |
110| **CSS - コンポーネント** | `knowledge/css/components/` | Popover, Anchor Positioning, field-sizing | UI, コンポーネント, ポップオーバー |
111| **CSS - テーマ** | `knowledge/css/theming/` | light-dark, color-scheme | テーマ, ダークモード, 配色 |
112| **HTML** | `knowledge/html/` | モダンHTML, セマンティック, dialog, details | HTML, マークアップ, 要素 |
113| **JavaScript - パターン** | `knowledge/javascript/patterns/` | DOM, イベント, 非同期, Utilities | JS, DOM, イベント, パターン |
114| **JavaScript - アニメーション** | `knowledge/javascript/animation/` | requestAnimationFrame, 補間 | JS アニメーション, 数学的補間 |
115| **パフォーマンス** | `knowledge/cross-cutting/performance/` | 最適化, Core Web Vitals, lazy-load | 速度, 最適化, LCP, CLS |
116| **アクセシビリティ** | `knowledge/cross-cutting/accessibility/` | WCAG, a11y, リンク | a11y, アクセシビリティ, WCAG |
117| **ブラウザ互換性** | `knowledge/cross-cutting/browser-compat/` | ブラウザバグ, 回避策, workarounds | バグ, 回避, Safari, iOS |
118| **Apple Style Guide** | `knowledge/apple-style-guide/` | Apple製品のライティング規約、UI用語、スタイルガイド | Apple, ライティング, UI用語, 製品名, スタイル規約, 表記 |
119| **Human Interface Guidelines** | `knowledge/human-interface-guidelines/` | Appleデザイン原則、iOS/macOS UI設計 | HIG, Apple design, iOS, macOS, SwiftUI, UIKit, アプリデザイン |
120| **Material Design 3** | `knowledge/material-design-3/` | Googleデザインシステム、Material You、デザイン哲学 | Material Design, Material You, Google, デザインシステム, Dynamic Color |
121
122### Step 4: 重複チェックと処理方針の決定
123
124**重要**: ナレッジ追加前に必ず既存ナレッジとの重複をチェックする。
125
126#### 4-1. 既存ナレッジの検索
127
128以下のコマンドで該当トピックの既存ファイルを検索:
129
130```bash
131# キーワードで検索(例: Container Query)
132find knowledge -type f -name "*.md" | xargs grep -l "container.*query\|@container"
133
134# ファイル名で検索
135find knowledge -type f -name "*container*"
136```
137
138#### 4-2. 処理方針の決定
139
140| 状況 | 対応 |
141|------|------|
142| **完全に新しい情報** | 新規ファイル作成 |
143| **既存ファイルに追記可能** | 既存ファイルの末尾に追加 |
144| **既存情報の更新** | 既存セクションを Edit ツールで更新 |
145| **複数記事の統合** | 情報を統合して1つのファイルを作成/更新 |
146| **古い情報の置き換え** | 古いセクションを削除し、新情報を追加 |
147| **明らかに古く有用でない** | ナレッジ化しない |
148
149#### 4-3. 古い情報の判断基準
150
151以下の場合は「古く有用でない」と判断し、ナレッジ化しない:
152
153- **ブラウザサポートが終了した技術**(例: IE11専用のハック)
154- **非推奨になった API/構文**(公式ドキュメントで deprecated)
155- **より良い代替手段がある古い手法**(例: Polyfill が不要になった機能)
156- **セキュリティ上の問題がある実装**
157- **5年以上前の記事で、現在の標準と乖離している内容**
158
159ただし、以下は例外的に保存:
160
161- **歴史的価値のある情報**(「なぜこの書き方が避けられるようになったか」の理解)
162- **レガシーコード保守に必要な情報**(明示的に「レガシー」とタグ付け)
163
164#### 4-4. 分割と統合の判断
165
166**分割すべき場合**:
167- 1つのファイルが500行を超える
168- 複数の独立したトピックが含まれる
169- 異なるカテゴリに属する情報が混在
170
171**統合すべき場合**:
172- 同じトピックが複数ファイルに分散している
173- 内容が薄い複数ファイルを1つにまとめた方が理解しやすい
174- 相互に強く関連するトピック(例: Container Query と Container Query Units)
175
176### Step 5: ファイル更新
177
1781. `~/.claude/skills/managing-frontend-knowledge/knowledge/[カテゴリ]/[ファイル名].md` を Read
1792. 処理方針に従って更新:
180 - **新規**: Write ツールで新規ファイル作成
181 - **追記**: Edit ツールで既存ファイルの末尾に追加
182 - **更新**: Edit ツールで既存セクションを置き換え
183 - **統合**: 複数ファイルの内容を統合して1つのファイルを作成
1843. ファイルが存在しない場合は新規作成し、YAML frontmatterを追加
1854. YAML frontmatter形式:
186 ```yaml
187 ---
188 title: タイトル
189 category: css/layout (カテゴリパス)
190 tags: [タグ1, タグ2, タグ3]
191 browser_support: ブラウザ対応状況
192 created: YYYY-MM-DD
193 updated: YYYY-MM-DD
194 ---
195 ```
196
197### Step 6: 確認
198
199追加完了後、以下を報告:
200
201- 追加したテクニック名
202- 保存先カテゴリ
203- 要約内容のプレビュー
204
205## 複数テクニックを含む記事の場合
206
2071つの記事に複数のテクニックがある場合:
208
209- 各テクニックを個別エントリとして追加
210- 同じ出典URLを記載
211- 関連がある場合は相互参照を記載
212
213## 複数カテゴリにまたがる記事の場合
214
215記事の内容が複数のカテゴリに関連する場合は、**無理に1つのファイルに押し込めない**。
216
217### 分割の判断基準
218
219| 状況 | 対応 |
220|------|------|
221| 主題が1つで、他カテゴリは補足 | 主カテゴリに追加、他は参照リンクのみ |
222| 独立した複数のトピックを含む | 各カテゴリに分割して追加 |
223| カテゴリ間で密接に関連 | 各カテゴリに追加し、相互参照を記載 |
224
225### 分割時のルール
226
2271. **各ファイルで自己完結させる**: そのファイルだけ読んでも理解できるように
2282. **重複は最小限に**: 共通部分は概要のみ、詳細は適切なカテゴリで
2293. **相互参照を明記**: 関連ナレッジへのリンクを必ず記載
230
231### 分割例
232
233例: 「アクセシビリティを考慮したアニメーション実装」という記事
234
235```
236accessibility-link-underline.md:
237 - prefers-reduced-motion の必要性と判定方法
238 - 関連: css-animation.md の「モーション軽減対応」
239
240css-animation.md:
241 - モーション軽減対応のCSS実装パターン
242 - 関連: accessibility-link-underline.md の「prefers-reduced-motion」
243```
244
245### 報告フォーマット
246
247```
248✅ ナレッジを追加しました(2カテゴリに分割)
249
250📁 accessibility-link-underline.md
251 📝 prefers-reduced-motion の考慮
252
253📁 css-animation.md
254 📝 モーション軽減対応パターン
255
256🔗 相互参照を設定済み
257```
258
259## 類似ナレッジの検出と統合(追加時)
260
261追加前に既存ナレッジとの類似性を確認:
262
263### チェック項目
264
2651. **同一URL**: 既に存在する場合は更新として扱う
2662. **類似テクニック**: 同じ概念・機能を扱っている場合
267
268### 類似が見つかった場合のアクション
269
270- **矛盾なし**: 既存エントリに統合して強化
271- **アップデート**: 新情報で既存を更新(旧情報は「以前の方法」として残す場合あり)
272- **矛盾あり**: 両論併記し、推奨を明示
273- **別観点**: 別エントリとして追加(相互参照を記載)
274
275### 統合時の報告
276
277```
278🔄 類似ナレッジを検出・統合しました
279
280既存: 「CSS Grid の基本」(執筆: 2023-06)
281新規: 「Grid Layout 実践ガイド」(執筆: 2024-08)
282
283→ 統合: 「CSS Grid レイアウト完全ガイド」として強化
284 - 基本構文(既存)+ 実践パターン(新規)を統合
285 - ブラウザサポート情報を最新化
286```
287
288## カテゴリが不明な場合
289
290ユーザーに確認するか、最も近いカテゴリに追加。
291新カテゴリが必要な場合は `SKILL.md` のカテゴリ一覧も更新。
292
293## 出力例(追加モード)
294
295```
296✅ ナレッジを追加しました
297
298📁 カテゴリ: css-layout.md
299📝 テクニック: Container Queries の実践的パターン
300🔗 出典: https://example.com/container-queries
301
302### 追加内容プレビュー:
303> コンテナクエリを使用してコンポーネント単位の
304> レスポンシブデザインを実現する方法...
305```
306
307---
308
309## 整理モード
310
311「ナレッジを整理して」「重複チェックして」等で発動。
312
313### 整理タスク
314
315#### 1. 類似ナレッジの統合
316
317**統合プロセス:**
318
3191. 類似エントリを検出したら内容を比較
3202. 矛盾がないか確認(矛盾がある場合は執筆日が新しい方を優先、または両論併記)
3213. 問題なければ1つの強いナレッジに統合
322
323**統合の判断基準:**
324
325- **同一テクニック**: 完全統合(より詳細・最新の情報を残す)
326- **アップデート関係**: 新情報で上書き、旧情報は「以前の方法」として注記
327- **補完関係**: 両方の知見を合わせてより包括的なエントリに
328- **矛盾あり**: 両論併記し、どちらが推奨かを明記
329
330**統合後のフォーマット:**
331
332```markdown
333## [テクニック名]
334
335> 出典: [URL1], [URL2](複数の場合はカンマ区切り)
336> 執筆日: [最新の執筆日](統合元: [日付1], [日付2])
337> 追加日: [最初の追加日] / 統合日: [YYYY-MM-DD]
338
339[統合された包括的な説明]
340```
341
342#### 2. 古い情報の更新
343
344- 執筆日が2年以上前のエントリを優先確認
345- ブラウザサポートが変わったもの
346- より良い方法が登場したもの
347- 非推奨になったもの(削除 or 注記追加)
348
349#### 3. カテゴリの再編成
350
351- 肥大化したカテゴリの分割提案
352- 誤分類の移動
353- 関連テクニックの相互参照追加
354
355#### 4. フォーマット統一
356
357- コード例の書式統一
358- セクション構造の統一
359- 不足情報(ユースケース、注意点)の補完提案
360
361### 整理フロー
362
3631. 対象カテゴリファイルを Read
3642. 以下を分析:
365 - 重複エントリ
366 - 古い情報(執筆日から2年以上経過、または執筆日不明で追加日から1年以上経過)
367 - フォーマット不統一
368 - 肥大化(20エントリ以上)
3693. 改善提案をリスト化
3704. ユーザー承認後に実行
371
372### 出力例(整理モード)
373
374```
375📊 css-layout.md の分析結果
376
377エントリ数: 15件
378最終更新: 2025-01-15
379
380### 検出された課題
381
3821. 🔄 重複の可能性
383 - 「Flexbox gap」と「Flexbox の gap プロパティ」が類似
384
3852. ⚠️ 古い情報
386 - 「IE対応のGrid fallback」(執筆: 2021-03)
387 → IE サポート終了済み、削除を推奨
388
3893. 📝 フォーマット不統一
390 - 3件のエントリに「ユースケース」セクションがない
391
392### 推奨アクション
393- [ ] 重複を統合する
394- [ ] 古い情報を削除する
395- [ ] フォーマットを統一する
396
397実行しますか?
398```
399
400### 定期整理の推奨
401
402以下のタイミングで整理を実行:
403
404- カテゴリが20エントリを超えたとき
405- 3ヶ月に1回の定期メンテナンス
406- 大きな仕様変更があったとき(新ブラウザ機能など)
407
408---
409
410# パート2: ナレッジ参照(実装時・回答時)
411
412## 使い方
413
414### 実装タスク時の自発的参照(推奨)
415
416Web開発の実装タスクやコーディング作業を行う際、以下の流れで自発的にナレッジベースを参照する:
417
4181. **タスク内容からキーワードを抽出**
419 - 例: 「レスポンシブなカードコンポーネント」→ Container Query、Grid、clamp()
420 - 例: 「アニメーション実装」→ View Transitions、prefers-reduced-motion
421 - 例: 「モーダル実装」→ dialog要素、Popover API
422
4232. **該当カテゴリを特定** (上記カテゴリ一覧を参照)
424
4253. **ナレッジファイルを Read**
426 - `~/.claude/skills/managing-frontend-knowledge/knowledge/` 内の該当ファイル
427
4284. **ベストプラクティスを適用して実装**
429 - ナレッジに基づいた最新の手法を使用
430 - ブラウザサポート情報を考慮
431 - アクセシビリティやパフォーマンスの考慮事項を反映
432
433**効果**: 作業の精度向上、実装速度向上、最新のベストプラクティス適用
434
435### 質問への回答時
436
4371. ユーザーの質問からキーワードを抽出
4382. 上記カテゴリ一覧から該当するファイルを特定
4393. `~/.claude/skills/managing-frontend-knowledge/knowledge/` 内の該当ファイルを Read
4404. 蓄積された知識を基に回答
441
442### ディレクトリ構造
443
444```
445knowledge/
446├── INDEX.md # 全体インデックス
447├── css/
448│ ├── layout/ # Grid, Flexbox, 配置
449│ ├── animation/ # Transitions, アニメーション
450│ ├── visual/ # filter, mask, shape
451│ ├── typography/ # フォント, テキスト
452│ ├── selectors/ # @scope, :has, 擬似クラス
453│ ├── values/ # clamp, 単位, カスタムプロパティ
454│ ├── components/ # Popover, Anchor Positioning
455│ └── theming/ # light-dark, テーマ
456├── javascript/
457│ ├── patterns/ # DOM, イベント, パターン
458│ └── animation/ # requestAnimationFrame, 補間
459├── html/ # モダンHTML, セマンティック
460├── cross-cutting/
461│ ├── performance/ # 最適化, Core Web Vitals
462│ ├── accessibility/ # WCAG, a11y
463│ └── browser-compat/ # ブラウザバグ, 回避策
464├── apple-style-guide/ # Appleライティング規約
465├── human-interface-guidelines/ # Apple HIG、デザイン原則
466└── material-design-3/ # Material Design 3、デザイン哲学
467```
468
469## 回答フォーマット
470
471```markdown
472## [質問に対する回答]
473
474[説明]
475
476### コード例
477
478\```css
479/* または js/html */
480\```
481
482### ユースケース
483- [具体的な使用場面]
484
485### 参考
486- [出典URL(あれば)]
487```
488
489## 該当カテゴリがない場合
490
4911. 一般的な知識で回答
4922. 「ナレッジベースに該当情報がありません」と伝える
4933. 必要に応じてナレッジ収集機能での追加を提案
494
495## 複数カテゴリにまたがる場合
496
497関連する複数のファイルを Read して総合的に回答する。
498例: 「スクロールアニメーション」→ `css-animation.md` + `performance.md`
499
500## 注意事項
501
502- カテゴリファイルが存在しない場合はエラーにせず、ある情報で回答
503- 出典URLがある場合は必ず記載
504- コード例は実用的なものを優先