index-lib-docs
npx skills add https://github.com/884js/agent-skills --skill index-lib-docs
Agent 安装分布
Skill 文档
ããã¸ã§ã¯ãä¾åé¢ä¿ããã¥ã¡ã³ãèªåçæ
æ¦è¦
ããã¸ã§ã¯ãã®å
¨ä¾åã©ã¤ãã©ãªã®ããã¥ã¡ã³ããèªåçæããproject-libs ã¹ãã«ã使ããã
çæãããã¹ãã«:
- project-libs: ã©ã¤ãã©ãªimportæã«èªåçºåããããã¥ã¡ã³ãã¹ãã«
åºåå :
{project}/.claude/skills/project-libs/
âââ SKILL.md # ã¡ã¤ã³ã¹ãã«
âââ references/
âââ react.md # åã©ã¤ãã©ãªã®ããã¥ã¡ã³ããªã³ã¯é
âââ next.md
âââ ...
å®è¡ããã¼
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â Phase 1: ããã±ã¼ã¸ããã¼ã¸ã£ã¼æ¤åº â
âââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â package.json / pyproject.toml / Cargo.toml / â
â go.mod ãæ¢ç´¢ â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â Phase 2: ä¾åé¢ä¿æ½åº â
âââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â - dependencies / devDependencies ãè§£æ â
â - ãã¼ã¸ã§ã³æ
å ±ãåå¾ â
â - ã©ã¤ãã©ãªãªã¹ãã使 â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â Phase 2.5: ã¦ã¼ã¶ã¼ç¢ºèª â
âââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â - æ¤åºãããã©ã¤ãã©ãªä¸è¦§ãæç¤º â
â - é¤å¤ã»è¿½å ã®ç¢ºèª â
â - æ¿èªãå¾
㤠â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â Phase 3: ããã¥ã¡ã³ãURLçºè¦ â
âââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â - ã¬ã¸ã¹ããªAPIããhomepageåå¾ â
â - /llms.txt ã®åå¨ç¢ºèª â
â - ããã¥ã¡ã³ãURLãç¹å® â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â Phase 4: ãã¡ã¤ã«çæ â
âââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â - references/*.md ãçæ â
â - SKILL.md ãçæï¼å
¨ããªã¬ã¼æ¡ä»¶ãå«ãï¼ â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
Phase 1: ããã±ã¼ã¸ããã¼ã¸ã£ã¼æ¤åº
ããã¸ã§ã¯ãã«ã¼ããç¹å®ããããã±ã¼ã¸ããã¼ã¸ã£ã¼ãæ¤åºããã
æ¤åºãã¸ãã¯
詳細㯠package-managers.md ãåç §ã
# 弿°ã§ããã¸ã§ã¯ããã¹ãæå®ããã¦ããã°ããã使ç¨ããªããã°ã«ã¬ã³ããã£ã¬ã¯ããª
PROJECT_ROOT="${1:-.}"
# æ¤åºåªå
é ä½
if [ -f "$PROJECT_ROOT/package.json" ]; then
PM="node"
elif [ -f "$PROJECT_ROOT/pyproject.toml" ] || [ -f "$PROJECT_ROOT/requirements.txt" ]; then
PM="python"
elif [ -f "$PROJECT_ROOT/Cargo.toml" ]; then
PM="rust"
elif [ -f "$PROJECT_ROOT/go.mod" ]; then
PM="go"
else
echo "Error: No supported package manager found"
exit 1
fi
Phase 2: ä¾åé¢ä¿æ½åº
Node.js (jqã使ç¨)
# production dependenciesï¼ååã¨ãã¼ã¸ã§ã³ç¯å²ï¼
jq -r '.dependencies | to_entries[] | "\(.key) \(.value)"' package.json 2>/dev/null
# dev dependenciesï¼ååã¨ãã¼ã¸ã§ã³ç¯å²ï¼
jq -r '.devDependencies | to_entries[] | "\(.key) \(.value)"' package.json 2>/dev/null
Note: ãã¼ã¸ã§ã³ã¯ package.json ã®ãã¼ã¸ã§ã³ç¯å²ï¼ä¾: ^18.2.0ï¼ããã®ã¾ã¾ä½¿ç¨ãããã¥ã¡ã³ãåç
§ç¨éã§ã¯ç¯å²è¡¨è¨ã§ååã§ãããlock fileè§£æã®è¤éããåé¿ã§ããã
Python
# requirements.txt
grep -v '^#' requirements.txt | grep -v '^\s*$' | cut -d'=' -f1 | cut -d'>' -f1 | cut -d'<' -f1
# pyproject.toml (dependenciesé
å)
grep -E '^\s*"[^"]+' pyproject.toml | sed 's/.*"\([^"]*\)".*/\1/' | cut -d'>' -f1 | cut -d'=' -f1
Rust / Go
詳細㯠package-managers.md ãåç §ã
Phase 2.5: ã¦ã¼ã¶ã¼ç¢ºèªï¼ããã©ã«ãå ¨é¸ææ¹å¼ï¼
ããã©ã«ãå ¨é¸ææ¹å¼: æ¤åºãããå ¨ã©ã¤ãã©ãªãããã¥ã¡ã³ãå対象ã¨ãã¦æç¤ºããé¤å¤ããããã®ã ããå ¥åãã¦ããããããã«ãããã©ã¤ãã©ãªã®æ¼ãã鲿¢ããã
以ä¸ã®ä¾åé¢ä¿ããã¹ã¦ããã¥ã¡ã³ãåãã¾ã:
react (^18.2.0), next (^14.2.0), jotai (^2.16.2), swr (^2.3.8),
axios (^1.13.2), tailwindcss (^3.4.19), react-markdown (^9.0.1),
streamdown (^1.6.11), typescript (^5.3.0), eslint (^8.56.0),
vitest (^1.2.0), ... ï¼å
¨ã©ã¤ãã©ãªãã«ã³ãåºåãã§1è¡è¡¨ç¤ºï¼
åè¨: XX ããã±ã¼ã¸ (Production: YY, Dev: ZZ)
é¤å¤ãããã©ã¤ãã©ãªãããã°å
¥åãã¦ãã ããï¼ã«ã³ãåºåãã空æ¬ã§ç¶è¡ï¼:
â [ããªã¼ããã¹ãå
¥å]
å®è£
æ¹æ³: AskUserQuestion ãã¼ã«ã使ç¨ããã¦ã¼ã¶ã¼ã«ããªã¼ããã¹ãã§é¤å¤ãªã¹ããå
¥åãã¦ãããã
ãã¤ã³ã:
- ããã®ãªã¹ãã§OK?ãã§ã¯ãªãããã¹ã¦ããã¥ã¡ã³ãåãã¾ããã¨æç¤º
- å ¨ã©ã¤ãã©ãªãã«ã³ãåºåãã§è¡¨ç¤ºï¼è¦è½ã¨ã鲿¢ï¼
- åè¨æ°ãè¡¨ç¤ºï¼æãããªãã確èªããããï¼
- 空æ¬å ¥åï¼Other ã§ä½ãå ¥åããªãï¼ã§å ¨é¸æã®ã¾ã¾ç¶è¡
Phase 3: ããã¥ã¡ã³ãURLçºè¦
Step 1: ã¬ã¸ã¹ããªAPIããåå¾
詳細㯠registry-apis.md ãåç §ã
npm:
# homepageã¾ãã¯repository.urlãåå¾
curl -s "https://registry.npmjs.org/{package}" | jq -r '.homepage // .repository.url // empty'
ã¹ã³ã¼ãä»ãããã±ã¼ã¸:
# @tanstack/react-query â %40tanstack%2Freact-query
ENCODED=$(echo "@tanstack/react-query" | sed 's/@/%40/g; s/\//%2F/g')
curl -s "https://registry.npmjs.org/$ENCODED"
Step 2: WebSearchã«ããããã¥ã¡ã³ããµã¤ãæ¤ç´¢
ã¬ã¸ã¹ããªAPIã§ããã¥ã¡ã³ãURLãè¦ã¤ãããªããã¾ãã¯GitHubãªãã¸ããªããè¦ã¤ãããªãå ´åãWebSearchã§å ¬å¼ããã¥ã¡ã³ããµã¤ããæ¤ç´¢ãã:
WebSearch(query="{package} documentation official site")
æ¤ç´¢çµæã®åªå é ä½:
- å
¬å¼ããã¥ã¡ã³ããµã¤ãï¼
*.dev,docs.*.comçï¼ - å ¬å¼ã¦ã§ããµã¤ã
- GitHubãªãã¸ããªã®README
ä¾:
- “zod documentation” â zod.dev
- “tanstack query documentation” â tanstack.com/query
- “prisma documentation” â prisma.io/docs
Step 3: llms.txt確èª
# ããã¥ã¡ã³ããµã¤ãã§llms.txtã確èª
DOCS_URL="https://tanstack.com/query/latest"
if curl -sI "$DOCS_URL/llms.txt" 2>/dev/null | grep -q "200"; then
LLMS_TXT="$DOCS_URL/llms.txt"
fi
Phase 4: ãã¡ã¤ã«çæ
éè¦ã«ã¼ã«
- 1ã©ã¤ãã©ãª1ãã¡ã¤ã«: åã©ã¤ãã©ãªã¯å¿
ãåå¥ã®
references/{lib-name}.mdãã¡ã¤ã«ã¨ãã¦çæãã - è¤æ°ã©ã¤ãã©ãªã1ãã¡ã¤ã«ã«ã¾ã¨ããªãï¼
other-libs.mdã®ãããªçµ±åãã¡ã¤ã«ã¯ä½æç¦æ¢ï¼ - ããã¥ã¡ã³ããè¦ã¤ãããªãã©ã¤ãã©ãªãåå¥ãã¡ã¤ã«ã使ããGitHubãªãã¸ããªã®READMEãªã³ã¯ãè¨è¼ãã
åºåãã£ã¬ã¯ããª
mkdir -p "$PROJECT_ROOT/.claude/skills/project-libs/references"
åã©ã¤ãã©ãªãã¡ã¤ã«çæ
ãã³ãã¬ã¼ã㯠templates/library-entry.md ãåç §ã
åã©ã¤ãã©ãªã«ã¤ã㦠references/{lib-name}.md ãçæ:
# {Library}
> Version: {version}
> Docs: {docs_url}
> llms.txt: {llms_txt_url or "Not available"}
## Documentation Links
### Getting Started
- [Quick Start]({docs_url}/getting-started): åºæ¬çãªä½¿ãæ¹
### API Reference
- [API]({docs_url}/api): APIä¸è¦§
...
SKILL.mdçæ
ãã³ãã¬ã¼ã㯠templates/project-skill.md ãåç §ã
å ¨ã©ã¤ãã©ãªã®ããªã¬ã¼æ¡ä»¶ãå«ãSKILL.mdãçæ:
---
name: project-libs
description: |
Provides documentation for project dependencies.
Use when working with code that imports "react", "next", "@tanstack/react-query", "zod", ...
(æ¤åºãããå
¨ã©ã¤ãã©ãªåãåæ)
context: fork
agent: Explore
allowed-tools: WebFetch, WebSearch, Read
---
並åå¦ç
ã©ã¤ãã©ãªæ°ãå¤ãå ´åãTaskã¨ã¼ã¸ã§ã³ãã並åèµ·åãã¦ããã¥ã¡ã³ãURLçºè¦ãé«éå:
Task(subagent_type="Explore", prompt="以ä¸ã®npmããã±ã¼ã¸ã®ããã¥ã¡ã³ãURLã¨llms.txtæç¡ã調æ»: [ããã±ã¼ã¸ãªã¹ãA]")
Task(subagent_type="Explore", prompt="以ä¸ã®npmããã±ã¼ã¸ã®ããã¥ã¡ã³ãURLã¨llms.txtæç¡ã調æ»: [ããã±ã¼ã¸ãªã¹ãB]")
å®äºã¡ãã»ã¼ã¸
çæå®äºå¾ã以ä¸ã表示:
project-libs ã¹ãã«ãçæãã¾ãã:
{project}/.claude/skills/project-libs/
çæããããã¡ã¤ã«:
- SKILL.md (ããªã¬ã¼æ¡ä»¶: {n}ã©ã¤ãã©ãª)
- references/ ({n}ãã¡ã¤ã«)
ã¹ãã«ã¯ä»¥ä¸ã®å ´åã«èªåçºåãã¾ã:
- react, next, @tanstack/react-query, ... ã®importæ
- "useQuery", "useState", ... ãªã©ã®APIä½¿ç¨æ
æåã§å¼ã³åºãå ´å: /project-libs [質å]
ãã©ãã«ã·ã¥ã¼ãã£ã³ã°
jqãã¤ã³ã¹ãã¼ã«ããã¦ããªã
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
ã¹ã³ã¼ãä»ãããã±ã¼ã¸ã®å¦ç
@scope/package å½¢å¼ã¯é©åã«URLã¨ã³ã³ã¼ãããå¿
è¦ãããã
ãã¡ã¤ã«å㯠scope-package.md ã®ããã«ã¹ã©ãã·ã¥ããã¤ãã³ã«å¤æã
ããã¥ã¡ã³ãURLãè¦ã¤ãããªã
- GitHubãªãã¸ããªã®READMEã代æ¿ã¨ãã¦ä½¿ç¨
- WebSearchã§ããã¥ã¡ã³ããµã¤ããæ¤ç´¢