ナレッジDB(GitHub リポジトリ EraX-1/knowledge_db)に知識を蓄積・整理するためのスキル。ユーザーが「ナレッジDBに蓄積して」「ナレッジに記録して」「知識ベースに追加して」「ナレッジDBに書き込んで」「学んだことを記録して」などと言ったときに使用する。会話中に得られた技術的知見、トラブルシュートの結果、新しい手法の発見などを構造化してリポジトリに保存する。
EraX-1/knowledge_dbmain(直接コミット・push)gh CLIコマンドナレッジを蓄積する際は、以下の手順を必ず順番に実行する。
会話の文脈から、蓄積すべき知識を特定する。以下を明確にする:
リポジトリの現在のディレクトリ構造を必ず確認する。推測で分類先を決めてはいけない。
gh api 'repos/EraX-1/knowledge_db/git/trees/main?recursive=1' --jq '.tree[] | select(.type=="tree") | .path'
これにより、既存の大分類・小分類をすべて把握する。
既存の構造を確認した上で、知識の分類先を決める:
ディレクトリ名は英語の小文字、ハイフン区切りで命名する(例: ai/rag, devops/ci-cd)。
分類先ディレクトリ内に同じトピックのファイルが既にないか確認する:
gh api 'repos/EraX-1/knowledge_db/git/trees/main?recursive=1' --jq '.tree[] | select(.path | startswith("<分類パス>/")) | .path'
新規ファイルを作成する場合、リポジトリ直下の TEMPLATE.md を必ず取得し、その構成に従ってファイルを作成する:
gh api 'repos/EraX-1/knowledge_db/contents/TEMPLATE.md' --jq '.content' | base64 -d
テンプレートの各セクション(概要、使い方、発生した課題と対処方法、効果、サンプルコード)をすべて含めること。該当する内容がないセクションには「N/A」と記載する。
gh api を使ってファイルを作成または更新する。
CONTENT=$(cat <<'DOCEOF'
(テンプレートに従ったMarkdown内容)
DOCEOF
)
gh api --method PUT "repos/EraX-1/knowledge_db/contents/<分類パス>/<ファイル名>.md" \
-f message="add: <分類パス>/<ファイル名> のナレッジを追加" \
-f content="$(echo "$CONTENT" | base64)"
# まずSHAを取得
SHA=$(gh api "repos/EraX-1/knowledge_db/contents/<ファイルパス>" --jq '.sha')
gh api --method PUT "repos/EraX-1/knowledge_db/contents/<ファイルパス>" \
-f message="update: <ファイルパス> のナレッジを更新" \
-f content="$(echo "$CONTENT" | base64)" \
-f sha="$SHA"
完了後、ユーザーに以下を報告する:
ai/rag/hyde.md)https://github.com/EraX-1/knowledge_db/blob/main/<パス>small-to-big-retrieval.md)knowledge_db/
├── TEMPLATE.md
├── ai/
│ ├── rag/
│ │ ├── hyde.md
│ │ ├── small-to-big-retrieval.md
│ │ └── chunking-strategies.md
│ ├── ocr/
│ │ └── azure-document-intelligence.md
│ └── llm/
│ └── prompt-engineering.md
├── devops/
│ ├── ci-cd/
│ │ └── github-actions.md
│ └── deployment/
│ └── azure-vm-deploy.md
└── database/
├── mongodb/
│ └── schema-design.md
└── mysql/
└── migration-tips.md
TEMPLATE.md の構成を使用するadd: / update: プレフィックスを使う