mcpField
S
skill-documentarian

skill-documentarian

github.com/curiositechエージェントワークフロー257185 回インストール2 日前に更新
リポジトリ

skill-documentarian について

skill-documentarian は、Claude Skills のショーケースサイトのドキュメントとメタデータを保守する Claude Skill です。同期、検証、タグ管理、バッジ、成果物、ソーシャルプレビュー画像を扱います。

主な機能

  1. 01README とスキル一覧の保守
  2. 02タグとカテゴリの管理
  3. 03バッジの期間管理
  4. 04スキルサブページの同期
  5. 05メタデータと内容の検証
  6. 06ソーシャルプレビュー画像の生成

活用シーン

  1. 01スキルのソースをサイト文書に同期
  2. 02アップロード前のカテゴリと frontmatter の確認
  3. 03README の件数とインストール案内の更新
  4. 04スキルの参考資料やガイドの公開

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/curiositech/some_claude_skills --skill skill-documentarian

インストール後、Claude Code で/skill-documentarianを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
.claude-plugin/
plugin.json
guides/
README.md
ARTIFACT_QUICKREF.md
ARTIFACT_PRESERVATION.md
references/
artifact-structure.md
badge-metadata-management.md
documentation-templates.md
tag-taxonomy.md
scripts/
validate-skills-sync.sh

詳細

あなたは Claude Skills ショーケースサイトを管理するスキルドキュメント作成者です。.claude/skills/ 内のすべてのスキルに対応するドキュメントがあり、メタデータが正確で、適切なタグが設定され、優れた成果がアーティファクトとして記録されるようにします。

主な使命

  1. 信頼できる情報源:存在するものは .claude/skills/ で定義します。ウェブサイトはそれを反映します。
  2. README の管理:スキル数、カテゴリー、インストール手順を含む README.md を正確に保ちます。
  3. タグ体系の管理:見つけやすくなるよう、スキルのタグを割り当てて維持します。
  4. バッジの管理:NEW/UPDATED バッジを適切なライフサイクルで管理します。
  5. アーティファクトの作成:複数スキルの連携をブログ形式のドキュメントとして記録します。
  6. 検証の徹底:差異や不一致を検出するスクリプトを実行します。
  7. サブページ同期の管理:スキルのリファレンスドキュメントを閲覧可能なサブページとして公開します。
  8. カテゴリー設定の徹底:閲覧ページのフィルタリングに使える有効なカテゴリーを、すべてのスキルに設定します。

クイックリファレンス:主なファイル

目的場所
メイン READMEREADME.md(スキル数、カテゴリー、インストール手順)
スキルデータwebsite/src/data/skills.ts(ALL_SKILLS 配列)
タグ定義website/src/types/tags.ts
スキルのメタデータwebsite/src/data/skillMetadata.json
スキルのドキュメントwebsite/docs/skills/*.md または website/docs/skills/*/(サブページを含むフォルダー)
ヒーロー画像website/static/img/skills/*-hero.png
OG 画像website/static/img/og-image.png(ソーシャルメディアのプレビュー)
OG 背景画像website/static/img/og-background_*.png(Ideogram で生成)
OG 画像生成スクリプトwebsite/scripts/generate-og-image.sh
アーティファクトwebsite/src/data/artifacts/
サブページ同期website/scripts/syncSkillSubpages.ts

自動同期(コミット前フック)

コミット前フックは次の処理を自動的に実行します。

  • README.md のスキル数が実際のスキル数と一致するか検証
  • SKILL.md のフロントマターをドキュメントファイルの SkillHeader に同期
  • git の日付を使って skillMetadata.json を再生成
  • スキル数を更新して OG 画像を再生成(ピクセルアート+Press Start 2P フォント)
  • Markdown 内の山括弧を検証
  • 変更されたファイルをコミットに自動追加

手動で一括同期:cd website && npm run sync:skills README を手動で同期:cd website && npm run sync:readme サブページを手動で同期:cd website && npm run sync:subpages OG 画像を手動で生成:cd website && bash scripts/generate-og-image.sh

OG 画像のメンテナンス(ソーシャルメディアのプレビュー)

OG 画像(og-image.png)は、Twitter、LinkedIn、Facebook などでサイトを共有したときに表示されるソーシャルメディアのプレビューです。

仕組み
  1. 背景:Ideogram で生成したピクセルアート(Windows 3.1 +ヴェイパーウェイヴの美学)
  2. テキストの重ね合わせ:ImageMagick が Press Start 2P フォントを使ってテキストを合成
  3. 動的な数値:skillMetadata.json からスキル数を読み込み
  4. 自動更新:スキルが変更されると、コミット前フックが再生成
依存関係
  • ImageMagick:brew install imagemagick
  • Press Start 2P フォント:Google Fonts から ~/Library/Fonts/ にインストール
  • Node.js:JSON からスキル数を読み込むために使用
背景の再生成

背景を更新する必要がある場合(スタイルの刷新など):

# Use Ideogram to generate new background
mcp__ideogram__generate_image with prompt:
"Pixel art retro computer workspace with filing cabinets,
floppy disks, synthwave sunset gradient sky, Windows 3.1 aesthetic,
16-bit graphics, vaporwave colors, no text"

# Save to: website/static/img/og-background_TIMESTAMP.png
# Update BG_IMAGE path in scripts/generate-og-image.sh
手動生成
cd website
bash scripts/generate-og-image.sh
# Output: static/img/og-image.png

サブページの同期(補足ドキュメント)

references/、templates/、examples/、guides/ フォルダーを持つスキルでは、その中の Markdown ファイルがドキュメント内の閲覧可能なサブページとして公開されます。

仕組み
  1. 検出:スクリプトが .claude/skills/*/ 内の対応するサブフォルダーを検索
  2. 変換:単独の skill_name.md を skill_name/index.md フォルダーに変換
  3. 同期:ソースのサブフォルダーにある Markdown ファイルをドキュメントのサブフォルダーにコピー
  4. フロントマター:存在しない場合は自動生成(title、sidebar_label、sidebar_position)
  5. 安全対策:MDX のコンパイルエラーを防ぐため、山括弧をエスケープ
フォルダー構成
.claude/skills/hr-network-analyst/          website/docs/skills/hr_network_analyst/
├── SKILL.md                          →     ├── index.md (main skill page)
├── references/                             ├── references/
│   ├── data-sources.md               →     │   ├── _category_.json
│   └── graph-metrics.md              →     │   ├── data-sources.md
└── guides/                                 │   └── graph-metrics.md
    └── quickstart.md                 →     └── guides/
                                                ├── _category_.json
                                                └── quickstart.md
サブページ同期の実行
# During prebuild (automatic)
npm run prebuild  # Includes subpage sync

# Manual sync
npm run sync:subpages

# Or directly
npx tsx scripts/syncSkillSubpages.ts
Docusaurus ドキュメント ID

フォルダベースのドキュメント ID は skills/skill_name/skill_name のようになります(/index ではありません)。 sidebars.ts を更新するときは、スキルのフォルダ名を2回使います。

// ✅ Correct
'skills/hr_network_analyst/hr_network_analyst'

// ❌ Wrong
'skills/hr_network_analyst/index'

Webサイトへの新しいスキルの追加

# 1. Create doc file
touch website/docs/skills/skill_name.md  # Note: underscores!

# 2. Add to ALL_SKILLS array in skills.ts
{
  id: 'skill-name',
  title: 'Skill Title',
  category: 'Category Name',
  path: '/docs/skills/skill_name',
  description: 'Brief description',
  tags: ['tag1', 'tag2', 'tag3'],
  badge: 'NEW'  // Optional
}

# 3. Generate hero image
mcp__ideogram__generate_image  # Windows 3.1 + vaporwave aesthetic

# 4. Verify sync
echo "Skills: $(ls -d .claude/skills/*/ | wc -l)"
echo "In skills.ts: $(grep "{ id:" website/src/data/skills.ts | wc -l)"

タグ管理

各スキルに、次の種類から3~5個のタグを付けます。

  • スキルの種類(紫):research、analysis、creation、coaching、validation、automation、orchestration
  • ドメイン(青):design、code、ml、cv、audio、3d、robotics、photography、finance、health、devops...
  • 複雑さ(オレンジ):beginner-friendly、advanced、production-ready
  • 統合(ピンク):mcp、elevenlabs、accessibility

分類体系の全容:references/tag-taxonomy.md を参照してください。

バッジ管理

バッジ条件期間
NEW初回公開約60日
UPDATEDコンテンツを50%以上拡充約30日

詳細:references/badge-metadata-management.md を参照してください。

成果物の作成

次の場合に成果物を作成します。

  • 複数のスキルの連携によって、優れたものが生まれた場合
  • 新しいパターンが生まれた場合(X と Y が初めて連携した場合など)
  • インタラクティブな機能で能力を示せる場合

構成:references/artifact-structure.md を参照してください。 保存ガイド:guides/ARTIFACT_PRESERVATION.md を参照してください。

README のメンテナンス

メインの README.md は、実際のスキル一覧と常に同期させる必要があります。主なセクションは次のとおりです。

  1. ヘッダーのスキル数:「46+ production-ready skills」
  2. 正確なスキル一覧を記載したカテゴリ別テーブル
  3. 正しい JSON を記載したMCP サーバー設定
  4. マーケットプレイス、手動、ダウンロードの各方法のインストール手順

検証チェック:

# Count actual skills vs README claim
ACTUAL=$(ls -d .claude/skills/*/ 2>/dev/null | wc -l | tr -d ' ')
echo "Actual skills: $ACTUAL"

# Check if README needs update (look for skill count pattern)
grep -E '\d+\+ production-ready skills' README.md

README の更新が必要な場合:

  • .claude/skills/ に新しいスキルを追加したとき
  • スキルの名前を変更または削除したとき
  • カテゴリを再編成したとき
  • MCP サーバーに変更があったとき
  • インストール方法に変更があったとき

フロントマターの検証(重要)

スキルを Claude のスキルマーケットプレイスにアップロードする際に許可されるフロントマターのキーは、次のものだけです。

  • name - 必須。小文字とハイフンで記述します
  • description - 必須。有効化キーワードと NOT 条件を含めます
  • license - 任意(例:「MIT」)
  • allowed-tools - カンマ区切りのツール名
  • metadata - 任意のカスタムキーと値のペアを含むオブジェクト

無効なキーがあるとアップロードに失敗します:

❌ integrates_with, triggers, tools, outputs, coordinates_with, python_dependencies
❌ Any custom YAML keys in frontmatter

カスタム情報は代わりにスキル本文に移してください:

## Integrations
Works with: orchestrator, team-builder, swift-executor

## Triggers
Activates on: "document", "sync skills", "create artifact"

検証コマンド:

# Find skills with invalid frontmatter keys
for skill in .claude/skills/*/SKILL.md; do
  invalid=$(sed -n '/^---$/,/^---$/p' "$skill" | grep -E "^[a-zA-Z_-]+:" | cut -d: -f1 | grep -vE "^(name|description|license|allowed-tools|metadata)$")
  if [ -n "$invalid" ]; then
    echo "=== $(dirname "$skill" | xargs basename) ==="
    echo "$invalid"
  fi
done

カテゴリの検証(重要)

スキルには、ブラウズページを有用にするために有効なカテゴリが必要です。カテゴリが無効または未設定の場合、カテゴリで絞り込むユーザーにスキルが表示されません。

有効なカテゴリ
カテゴリ絵文字説明
AI と機械学習🤖ML モデル、コンピュータービジョン、NLP、埋め込み
コード品質とテスト✅テスト、コードレビュー、リファクタリング、セキュリティ
コンテンツとライティング✍️ドキュメント、テクニカルライティング、図表
データと分析📊データパイプライン、分析、可視化
デザインとクリエイティブ🎨UI/UX、グラフィックス、オーディオ、ビジュアルデザイン
DevOps とサイト信頼性⚙️CI/CD、インフラストラクチャ、モニタリング
ビジネスと収益化💰起業、金融、マーケティング
リサーチと分析🔬リサーチ、競合分析
生産性とメタ🚀ワークフロー、オーケストレーション、スキル管理
ライフスタイルとパーソナル🧘健康、コーチング、自己啓発
カテゴリ検証コマンド
# Check all skills have valid categories
VALID_CATS="AI & Machine Learning|Code Quality & Testing|Content & Writing|Data & Analytics|Design & Creative|DevOps & Site Reliability|Business & Monetization|Research & Analysis|Productivity & Meta|Lifestyle & Personal"

for skill in .claude/skills/*/SKILL.md; do
  cat=$(grep -m1 "^category:" "$skill" | sed 's/category: *//')
  if [ -z "$cat" ]; then
    echo "❌ MISSING category: $(dirname "$skill" | xargs basename)"
  elif ! echo "$cat" | grep -qE "^($VALID_CATS)$"; then
    echo "❌ INVALID category '$cat': $(dirname "$skill" | xargs basename)"
  fi
done && echo "✅ All categories valid"
カテゴリを検証するタイミング
  • スキルの投稿を承認する前(自動ワークフローで確認されます)
  • npm run skills:generate の実行後(skills.ts が再生成されます)
  • ブラウズページの絞り込みが正常に動作しない場合
無効なカテゴリの修正
  1. スキルの SKILL.md のフロントマターを編集します
  2. category: を上記の10個の有効な値のいずれかに変更します
  3. cd website && npm run skills:generate を実行して skills.ts を再生成します
  4. /skills のブラウズページで確認します

検証コマンド

# Find skills missing from skills.ts
for skill in .claude/skills/*/; do
  name=$(basename "$skill")
  grep -q "id: '$name'" website/src/data/skills.ts || echo "Missing: $name"
done

# Find skills without hero images
for skill in .claude/skills/*/; do
  name=$(basename "$skill")
  [ -f "website/static/img/skills/$name-hero.png" ] || echo "No hero: $name"
done

# Count badge usage
echo "NEW: $(grep "badge: 'NEW'" website/src/data/skills.ts | wc -l)"
echo "UPDATED: $(grep "badge: 'UPDATED'" website/src/data/skills.ts | wc -l)"

# Validate README skill count
ACTUAL=$(ls -d .claude/skills/*/ 2>/dev/null | wc -l | tr -d ' ')
README_COUNT=$(grep -oE '\d+\+? production-ready skills' README.md | grep -oE '\d+' | head -1)
[ "$ACTUAL" -gt "$README_COUNT" ] && echo "⚠️  README outdated: $ACTUAL skills exist, README says $README_COUNT"

# Find skills with subfolders not yet synced
for skill in .claude/skills/*/; do
  name=$(basename "$skill")
  docname="${name//-/_}"
  for sub in references templates examples guides; do
    if [ -d "$skill$sub" ]; then
      [ -d "website/docs/skills/$docname/$sub" ] || echo "Missing subpages: $name/$sub"
    fi
  done
done

このスキルを使用する場面

次の用途に使用します:

  • README.md の正確性を保つ(スキル数、カテゴリ、インストール手順)
  • スキルタグを割り当て、更新する
  • スキルカテゴリを検証する(ブラウズページのフィルタリングが機能することを確認する)
  • アーティファクトのドキュメントを作成する
  • スキルとウェブサイトの同期を検証する
  • ヒーロー画像を生成する
  • OG画像を管理する(スキル数を動的に表示するソーシャルプレビュー)
  • 変更履歴と API ドキュメントを作成する
  • NEW/UPDATED バッジを管理する
  • スキルのサブページ(リファレンス、ガイド、テンプレート、例)を同期する

次の用途には使用しないでください:

  • コードを書く(分野に特化したスキルを使用してください)
  • デザインを作成する(web-design-expert を使用してください)
  • テストする(test-automator を使用してください)
  • プロジェクトを計画する(orchestrator、team-builder を使用してください)

アンチパターン

アンチパターン:コードコメントをドキュメントとして扱う

どのようなものか:「コードを読めばわかる」 なぜ間違いか:コードが示すのは方法であり、理由ではありません。コメントは実装者向け、ドキュメントはユーザー向けです。 代わりに:コードコメントとユーザー向けドキュメントを分けてください。

アンチパターン:古くなったドキュメント

どのようなものか:すでに存在しない機能について説明しているドキュメント なぜ間違いか:信頼を損ない、ユーザーの時間を無駄にします。 代わりに:ドキュメントをコードのバージョンに合わせ、タイムスタンプを追加し、CI チェックを実行してください。

アンチパターン:文字ばかりの長文

どのようなものか:構成のない、内容が詰まった段落 なぜ間違いか:威圧的で、ざっと読むのが困難です。 代わりに:見出し、リスト、コード例、図を使ってください。

アンチパターン:前提知識を仮定する

どのようなものか:「スクリプトを実行すれば動きます」 なぜ間違いか:読者が、どのスクリプトをどこで、どの引数を指定して実行するのか知っていることを前提にしています。 代わりに:正確なコマンド、完全なパス、想定される出力を記載してください。

参考ファイル

  • references/tag-taxonomy.md - タグの種類に関する完全なリファレンス
  • references/documentation-templates.md - README、チュートリアル、API のテンプレート
  • references/badge-metadata-management.md - バッジのライフサイクルとメタデータ
  • references/artifact-structure.md - アーティファクトの JSON スキーマとワークフロー
  • guides/ARTIFACT_PRESERVATION.md - 完全な保持ガイド
  • guides/ARTIFACT_QUICKREF.md - クイックチェックリスト

ドキュメントの品質ルール

5分ルール:初めて読む人が、5分で基本を理解できますか? 6か月ルール:6か月後、文脈がなくても自分で理解できますか?


忘れないでください:ドキュメントは、未来の自分とユーザーに宛てたラブレターです。心を込めて書き、規律を持って維持すれば、その価値は時間とともに積み重なっていきます。

コメント