File contents np-knowledge - ナレッジ管理スキル
概要
nepp-chan RAG システムのナレッジデータを管理する統合スキル。
dataset → knowledge 同期、frontmatter 付与、R2/Vectorize アップロードの3段階パイプライン。
パイプライン
np:syncKnowledge np:frontmatter np:uploadKnowledge
dataset/v*/src/ → frontmatter を → R2 → Vectorize に
knowledge/ に同期 付与・抽出・レビュー アップロード
スクリプト一覧
スクリプト
pnpm コマンド
説明
upload-knowledge.ts
knowledge:upload:<env>
R2 にアップロード
convert-tables-to-json.ts
—
MD テーブルを JSON ブロックに変換
add-frontmatter.ts
frontmatter:add
title/category/subcategory/url を一括付与
extract-date-contact.ts
frontmatter:extract
LLM 2パスで date/contact/date_type を抽出→TSV
apply-date-contact.ts
frontmatter:apply
抽出・レビュー結果を frontmatter に書き込み
frontmatter フィールド定義
フィールド
型
付与方法
説明
title
string
自動(# 見出しから)
ドキュメントタイトル
category
string
自動(パスから)
大分類
subcategory
string
自動(パスから)
小分類
url
string
自動(otoko のみ)
出典URL
date
string
LLM抽出 + 人間レビュー
情報の日付(YYYY-MM-DD)
date_type
string
LLM判定
exact / estimated / observed / evergreen
contact
string
LLM抽出
問い合わせ先の課名
date_type の定義
date_type
意味
date の値
エージェントの振る舞い
exact
本文・ファイル名に明示的な日付
明示的日付
年度を明示して回答
estimated
間接的手がかりから推測
推測日付
「〜と思われます」とヘッジ
observed
変動リスクあり、掲載確認日
スクレイピング日
最新情報は直接確認を促す
evergreen
日付に依存しない恒久情報
なし
ヘッジなしで回答
カテゴリマッピング
villotoinep/(音威子府村公式サイト)
category
対応ディレクトリ
住民生活
kurashi/
行政
gyousei/
施設案内
shisetsu/
産業
sangyou/
防災
bousai/
ライフイベント
lifeevent/
村長の部屋
village_mayor/
村の概要
about/
各課案内
kakuka/(subcategory で課名を区別)
資料
pdf/
otoko/(おといねっぷ美術工芸高等学校)
全ファイル category: 教育。subcategory でディレクトリを区別。
subcategory
対応ディレクトリ
入試
entrance/
イベント
event/
学校便り
gakkoudayori/
ギャラリー
gallery/
中学生向け
junior/
寮
ryou/
学校生活
seikatsu/
問合せ
contact/
extract の2パス構成
Pass 1: date + contact 抽出(全ファイル)
機械的抽出(LLM スキップ):
otoko/ タイムスタンプファイル名(YYYY-MMDD-HHMM-SS.md)
広報誌ファイル名(YYYY-MM.md)
frontmatter url 内のタイムスタンプ
LLM 抽出(Gemini Flash Lite):
本文から date + contact を抽出
間接推測(年度表記、シーズン情報等)も対応
Pass 2: evergreen vs observed 判定(date=null のファイルのみ)
専用プロンプトで「1年後に変わっている可能性があるか」を判定
電話番号・料金・時間・期限を含む → observed
歴史的事実・制度概念・リンク集 → evergreen
review のフロー
要レビューファイルを1件ずつ確認する:
code -r {ファイルパス} でエディタにファイルを開く
AskUserQuestion で判定:
承認(候補の日付で frontmatter に記録)
observed に変更(日付不明として扱い、スクレイピング日を付与)
日付を修正して承認
次のファイルへ
中間ファイル(review/)
ファイル
内容
date-contact-candidates.tsv
全件の抽出結果
date-contact-auto-applied.tsv
high 判定(自動適用可)
date-contact-needs-review.tsv
medium/low 判定(要レビュー)
※ review/ は .gitignore 対象
レポート記録先
ファイル
内容
公開
dataset/eval/eval-test-history.md
eval テスト結果のサマリー履歴
非公開(.gitignore)
dataset/eval/results/*.json
eval 生データ(JSON)
非公開(.gitignore)
dataset/eval/results/*.html
eval 可視化レポート(Chart.js)
非公開(.gitignore)
review/
frontmatter 抽出の中間ファイル(TSV)
非公開(.gitignore)
eval 実行後は dataset/eval/eval-test-history.md に結果を追記すること。
典型的な運用フロー
1. np:syncKnowledge ← dataset → knowledge 同期
2. np:frontmatter add ← title/category/url 付与
3. np:frontmatter extract ← LLM で date/contact 抽出
4. np:frontmatter review ← 要レビューを人間確認
5. np:frontmatter apply ← 結果を frontmatter に書き込み
6. np:uploadKnowledge ← R2/Vectorize にアップロード
7. np:eval ← 品質テスト → dataset/eval/eval-test-history.md に追記
1 --- 2 name: np-knowledge 3 description: np-knowledge - ナレッジ管理スキル 4 --- 5 # np-knowledge - ナレッジ管理スキル 6 7 ## 概要 8 9 nepp-chan RAG システムのナレッジデータを管理する統合スキル。 10 dataset → knowledge 同期、frontmatter 付与、R2/Vectorize アップロードの3段階パイプライン。 11 12 ## パイプライン 13 14 ``` 15 np:syncKnowledge np:frontmatter np:uploadKnowledge 16 dataset/v*/src/ → frontmatter を → R2 → Vectorize に 17 knowledge/ に同期 付与・抽出・レビュー アップロード 18 ``` 19 20 ## スクリプト一覧 21 22 | スクリプト | pnpm コマンド | 説明 | 23 |-----------|-------------|------| 24 | `upload-knowledge.ts` | `knowledge:upload:<env>` | R2 にアップロード | 25 | `convert-tables-to-json.ts` | — | MD テーブルを JSON ブロックに変換 | 26 | `add-frontmatter.ts` | `frontmatter:add` | title/category/subcategory/url を一括付与 | 27 | `extract-date-contact.ts` | `frontmatter:extract` | LLM 2パスで date/contact/date_type を抽出→TSV | 28 | `apply-date-contact.ts` | `frontmatter:apply` | 抽出・レビュー結果を frontmatter に書き込み | 29 30 ## frontmatter フィールド定義 31 32 | フィールド | 型 | 付与方法 | 説明 | 33 |-----------|-----|---------|------| 34 | `title` | string | 自動(# 見出しから) | ドキュメントタイトル | 35 | `category` | string | 自動(パスから) | 大分類 | 36 | `subcategory` | string | 自動(パスから) | 小分類 | 37 | `url` | string | 自動(otoko のみ) | 出典URL | 38 | `date` | string | LLM抽出 + 人間レビュー | 情報の日付(YYYY-MM-DD) | 39 | `date_type` | string | LLM判定 | exact / estimated / observed / evergreen | 40 | `contact` | string | LLM抽出 | 問い合わせ先の課名 | 41 42 ## date_type の定義 43 44 | date_type | 意味 | date の値 | エージェントの振る舞い | 45 |-----------|------|-----------|---------------------| 46 | `exact` | 本文・ファイル名に明示的な日付 | 明示的日付 | 年度を明示して回答 | 47 | `estimated` | 間接的手がかりから推測 | 推測日付 | 「〜と思われます」とヘッジ | 48 | `observed` | 変動リスクあり、掲載確認日 | スクレイピング日 | 最新情報は直接確認を促す | 49 | `evergreen` | 日付に依存しない恒久情報 | なし | ヘッジなしで回答 | 50 51 ## カテゴリマッピング 52 53 ### villotoinep/(音威子府村公式サイト) 54 55 | category | 対応ディレクトリ | 56 |----------|---------------| 57 | 住民生活 | `kurashi/` | 58 | 行政 | `gyousei/` | 59 | 施設案内 | `shisetsu/` | 60 | 産業 | `sangyou/` | 61 | 防災 | `bousai/` | 62 | ライフイベント | `lifeevent/` | 63 | 村長の部屋 | `village_mayor/` | 64 | 村の概要 | `about/` | 65 | 各課案内 | `kakuka/`(subcategory で課名を区別) | 66 | 資料 | `pdf/` | 67 68 ### otoko/(おといねっぷ美術工芸高等学校) 69 70 全ファイル `category: 教育`。subcategory でディレクトリを区別。 71 72 | subcategory | 対応ディレクトリ | 73 |-------------|---------------| 74 | 入試 | `entrance/` | 75 | イベント | `event/` | 76 | 学校便り | `gakkoudayori/` | 77 | ギャラリー | `gallery/` | 78 | 中学生向け | `junior/` | 79 | 寮 | `ryou/` | 80 | 学校生活 | `seikatsu/` | 81 | 問合せ | `contact/` | 82 83 ## extract の2パス構成 84 85 ### Pass 1: date + contact 抽出(全ファイル) 86 - 機械的抽出(LLM スキップ): 87 - otoko/ タイムスタンプファイル名(`YYYY-MMDD-HHMM-SS.md`) 88 - 広報誌ファイル名(`YYYY-MM.md`) 89 - frontmatter url 内のタイムスタンプ 90 - LLM 抽出(Gemini Flash Lite): 91 - 本文から date + contact を抽出 92 - 間接推測(年度表記、シーズン情報等)も対応 93 94 ### Pass 2: evergreen vs observed 判定(date=null のファイルのみ) 95 - 専用プロンプトで「1年後に変わっている可能性があるか」を判定 96 - 電話番号・料金・時間・期限を含む → observed 97 - 歴史的事実・制度概念・リンク集 → evergreen 98 99 ## review のフロー 100 101 要レビューファイルを1件ずつ確認する: 102 103 1. `code -r {ファイルパス}` でエディタにファイルを開く 104 2. AskUserQuestion で判定: 105 - 承認(候補の日付で frontmatter に記録) 106 - observed に変更(日付不明として扱い、スクレイピング日を付与) 107 - 日付を修正して承認 108 3. 次のファイルへ 109 110 ## 中間ファイル(review/) 111 112 | ファイル | 内容 | 113 |---------|------| 114 | `date-contact-candidates.tsv` | 全件の抽出結果 | 115 | `date-contact-auto-applied.tsv` | high 判定(自動適用可) | 116 | `date-contact-needs-review.tsv` | medium/low 判定(要レビュー) | 117 118 ※ review/ は .gitignore 対象 119 120 ## レポート記録先 121 122 | ファイル | 内容 | 公開 | 123 |---------|------|:----:| 124 | `dataset/eval/eval-test-history.md` | eval テスト結果のサマリー履歴 | 非公開(.gitignore) | 125 | `dataset/eval/results/*.json` | eval 生データ(JSON) | 非公開(.gitignore) | 126 | `dataset/eval/results/*.html` | eval 可視化レポート(Chart.js) | 非公開(.gitignore) | 127 | `review/` | frontmatter 抽出の中間ファイル(TSV) | 非公開(.gitignore) | 128 129 eval 実行後は `dataset/eval/eval-test-history.md` に結果を追記すること。 130 131 ## 典型的な運用フロー 132 133 ``` 134 1. np:syncKnowledge ← dataset → knowledge 同期 135 2. np:frontmatter add ← title/category/url 付与 136 3. np:frontmatter extract ← LLM で date/contact 抽出 137 4. np:frontmatter review ← 要レビューを人間確認 138 5. np:frontmatter apply ← 結果を frontmatter に書き込み 139 6. np:uploadKnowledge ← R2/Vectorize にアップロード 140 7. np:eval ← 品質テスト → dataset/eval/eval-test-history.md に追記 141 ```
kayac/nepp-chan/tree/main/.claude/skills/np-knowledge commit 26731b5367
Frequently asked questions How do I install the Np Knowledge skill? Run npx skillmds@latest add kayac/np-knowledge in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Np Knowledge skill do? np-knowledge - ナレッジ管理スキル It is listed under Coding & Dev Tools on SkillMD.
Is Np Knowledge safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Np Knowledge? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Np Knowledge free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Np Knowledge? kayac (@kayac) published this skill. Their other Agent Skills are listed on their SkillMD profile.