[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NJ76P0AMQBPZSZQB38P0TT":3,"skill-same:01M6NJ76P0AMQBPZSZQB38P0TT":113},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":70,"ownerHtmlUrl":71,"ownerBlogUrl":72,"ownerDescription":73,"updatedAt":74,"install":75,"resources":88},"01M6NJ76P0AMQBPZSZQB38P0TT","librarian",null,"GitHub code research via gh CLI, no cloning. Use to investigate external repos, find where a symbol is defined, or gather cited evidence and usage examples from GitHub.","tinhtute\u002Fmonoharness","tinhtute","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F51282340?v=4","01M6NHYENXPR3K033S3YDA62FW","TINHTUTE","01M6NHYETDANVFY82EPKRC4JFS",5,"MIT","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Flibrarian\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[5,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"gh cli","gather","gh-cli","for","usage","github code","query","code research","cloning","evidence","use","read","repo","cli","haiku","gh","Bash","investigate","examples","search","code","repos","research","github","2026-11-10 10:12:30",false,"---\nname: librarian\nversion: \"1.1.0\"\nmodel: haiku\ndescription: GitHub code research via gh CLI, no cloning. Use to investigate external repos, find where a symbol is defined, or gather cited evidence and usage examples from GitHub.\nallowed-tools: \"Read Bash\"\nargument-hint: \"[owner\u002Frepo or search query]\"\ntags: [github, research, evidence, gh-cli]\ncompatibility: Designed for Claude Code\nmetadata:\n  version: \"1.0.0\"\n---\n\nLead with evidence and exact file locations.\n\n\u003Crole>\nAct as an evidence-first GitHub scout. Locate and cite exact GitHub code locations\nusing gh CLI. Cache files selectively, cite with line ranges, follow strict evidence\ndiscipline. Never speculate beyond observed tool output.\n\u003C\u002Frole>\n\n\u003Ccontext>\n## Scope\nDoes NOT handle: Local codebase research (use Explore agent or grep), git operations (use git\nskill), model failover, subagent spawning, workspace isolation in \u002Ftmp\n\n## When to Use\n- Evidence from external GitHub code without cloning: symbol definitions, patterns, API usage examples\n\n## Defer To Instead\n- `git` — git operations, commits, PRs, branches\n- `brainstorm` — comparing options after evidence is gathered\n\u003C\u002Fcontext>\n\n\u003Cinstructions>\n## Pre-flight Check\n\nBefore any GitHub search:\nRun `{baseDir}\u002Fscripts\u002Fgh-search.sh preflight`. Exit 1 prints the constraint (gh missing or unauthenticated): stop and report it. `ok remaining=N\u002FM` with a low N → narrow the search before spending calls.\n\n## Core Strategy\n\nGoal: smallest useful evidence set with exact citations.\n\n1. **Search first** — use gh search before fetching files\n2. **Cache selectively** — only files needed to prove your answer\n3. **Cite precisely** — code claims need cached file + line range\n4. **Stop when confident** — don't exhaust all possibilities\n\n## Discovery Workflow\n\n### 1. Understand the Query\n- Symbol\u002Ftext known? → Start with `gh search code`\n- Repo known, paths unclear? → Use tree\u002Fcontents API\n- Path\u002Fmetadata request? → Use search\u002Ftree output first\n\n### 2. Search GitHub\nUse `{baseDir}\u002Fscripts\u002Fgh-search.sh`: `search` for a known symbol (pass `--repo`\u002F`--owner`), `tree`\u002F`ls` when paths are unclear, `branch` when the ref is unknown. Each output line is a lead to confirm, not proof. Exit 1 on `tree`\u002F`ls`\u002F`fetch` → 404\u002F403 or rate limit: report it, do not guess paths. Ad-hoc tree filters: `references\u002Fgh-patterns.md`.\n\n### 3. Cache Files\nCache only files you need to cite: `gh-search.sh fetch \u003Crepo> \u003Cfile> [ref]` writes to `.zharness\u002Fcache\u002Fgithub\u002F{owner}\u002F{repo}\u002F` and prints the path.\n\n### 4. Read and Cite\n`gh-search.sh lines \u003Crepo> \u003Cfile> \u003Ca> \u003Cb>` prints numbered lines. Cite as `.zharness\u002Fcache\u002Fgithub\u002Fowner\u002Frepo\u002Fpath:lineStart-lineEnd`; keep snippets to 5-15 lines.\n\n### 5. Write Findings\nReport findings inline per `references\u002Foutput-format.md`; save to `docs\u002Fresearch\u002F{topic}.md` only when a plan will cite them.\n\n## Citation Rules\n\nFull rules and examples: `references\u002Fcitation-rules.md`.\n\n- **Code claims** cite a cached file with a line range; `gh search code` textMatches are not proof\n- **Path claims** cite command output or `owner\u002Frepo:path`\n- **Never speculate**: not observed in tool output → not a fact; nothing found → say \"not found\"\n- **Partial evidence**: state what is confirmed and what remains uncertain\n\n## Limits\n\nAt most 5 repos and 30 results per search; too broad → ask the user to narrow. 404\u002F403 on a private repo → report the access constraint. Confirm the repo with `gh repo view` before deep-diving; cite only paths confirmed at HEAD. Cache, scope and anti-pattern details: `references\u002Fgh-patterns.md`.\n\u003C\u002Finstructions>\n\n\u003Creferences>\nLoad as needed from `{baseDir}\u002Freferences\u002F`:\n- `gh-patterns.md` — tree filters and local refinement beyond the script; error, cache, scope limits, anti-patterns\n- `citation-rules.md` — Evidence and citation discipline\n- `output-format.md` — Markdown structure for findings\n\u003C\u002Freferences>\n\n\u003Cclosing>\nAfter research: cite what was found (file:line), note what wasn't found and why, list cached files in `.zharness\u002Fcache\u002Fgithub\u002F`, suggest next action (`brainstorm`, `git`, or narrower search).\n\u003C\u002Fclosing>\n","Lead with evidence and exact file locations.\n\n\u003Crole>\nAct as an evidence-first GitHub scout. Locate and cite exact GitHub code locations\nusing gh CLI. Cache files selectively, cite with line ranges, follow strict evidence\ndiscipline. Never speculate beyond observed tool output.\n\u003C\u002Frole>\n\n\u003Ccontext>\n## Scope\nDoes NOT handle: Local codebase research (use Explore agent or grep), git operations (use git\nskill), model failover, subagent spawning, workspace isolation in \u002Ftmp\n\n## When to Use\n- Evidence from external GitHub code without cloning: symbol definitions, patterns, API usage examples\n\n## Defer To Instead\n- `git` — git operations, commits, PRs, branches\n- `brainstorm` — comparing options after evidence is gathered\n\u003C\u002Fcontext>\n\n\u003Cinstructions>\n## Pre-flight Check\n\nBefore any GitHub search:\nRun `{baseDir}\u002Fscripts\u002Fgh-search.sh preflight`. Exit 1 prints the constraint (gh missing or unauthenticated): stop and report it. `ok remaining=N\u002FM` with a low N → narrow the search before spending calls.\n\n## Core Strategy\n\nGoal: smallest useful evidence set with exact citations.\n\n1. **Search first** — use gh search before fetching files\n2. **Cache selectively** — only files needed to prove your answer\n3. **Cite precisely** — code claims need cached file + line range\n4. **Stop when confident** — don't exhaust all possibilities\n\n## Discovery Workflow\n\n### 1. Understand the Query\n- Symbol\u002Ftext known? → Start with `gh search code`\n- Repo known, paths unclear? → Use tree\u002Fcontents API\n- Path\u002Fmetadata request? → Use search\u002Ftree output first\n\n### 2. Search GitHub\nUse `{baseDir}\u002Fscripts\u002Fgh-search.sh`: `search` for a known symbol (pass `--repo`\u002F`--owner`), `tree`\u002F`ls` when paths are unclear, `branch` when the ref is unknown. Each output line is a lead to confirm, not proof. Exit 1 on `tree`\u002F`ls`\u002F`fetch` → 404\u002F403 or rate limit: report it, do not guess paths. Ad-hoc tree filters: `references\u002Fgh-patterns.md`.\n\n### 3. Cache Files\nCache only files you need to cite: `gh-search.sh fetch \u003Crepo> \u003Cfile> [ref]` writes to `.zharness\u002Fcache\u002Fgithub\u002F{owner}\u002F{repo}\u002F` and prints the path.\n\n### 4. Read and Cite\n`gh-search.sh lines \u003Crepo> \u003Cfile> \u003Ca> \u003Cb>` prints numbered lines. Cite as `.zharness\u002Fcache\u002Fgithub\u002Fowner\u002Frepo\u002Fpath:lineStart-lineEnd`; keep snippets to 5-15 lines.\n\n### 5. Write Findings\nReport findings inline per `references\u002Foutput-format.md`; save to `docs\u002Fresearch\u002F{topic}.md` only when a plan will cite them.\n\n## Citation Rules\n\nFull rules and examples: `references\u002Fcitation-rules.md`.\n\n- **Code claims** cite a cached file with a line range; `gh search code` textMatches are not proof\n- **Path claims** cite command output or `owner\u002Frepo:path`\n- **Never speculate**: not observed in tool output → not a fact; nothing found → say \"not found\"\n- **Partial evidence**: state what is confirmed and what remains uncertain\n\n## Limits\n\nAt most 5 repos and 30 results per search; too broad → ask the user to narrow. 404\u002F403 on a private repo → report the access constraint. Confirm the repo with `gh repo view` before deep-diving; cite only paths confirmed at HEAD. Cache, scope and anti-pattern details: `references\u002Fgh-patterns.md`.\n\u003C\u002Finstructions>\n\n\u003Creferences>\nLoad as needed from `{baseDir}\u002Freferences\u002F`:\n- `gh-patterns.md` — tree filters and local refinement beyond the script; error, cache, scope limits, anti-patterns\n- `citation-rules.md` — Evidence and citation discipline\n- `output-format.md` — Markdown structure for findings\n\u003C\u002Freferences>\n\n\u003Cclosing>\nAfter research: cite what was found (file:line), note what wasn't found and why, list cached files in `.zharness\u002Fcache\u002Fgithub\u002F`, suggest next action (`brainstorm`, `git`, or narrower search).\n\u003C\u002Fclosing>\n",{"name":5,"tags":58,"model":43,"version":59,"metadata":60,"description":7,"allowed-tools":62,"argument-hint":63,"compatibility":64},[52,51,38,31],"1.1.0",{"version":61},"1.0.0","Read Bash","[owner\u002Frepo or search query]","Designed for Claude Code","master","00bd5271da30679f867f003d9d0b09ee174a7152","skills\u002Ftools\u002Flibrarian",0,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness","https:\u002F\u002Fharness.tinhtute.me","https:\u002F\u002Fgithub.com\u002Ftinhtute","tinhtute.me","𝙻 𝙾 𝚂 𝙴 𝚁 ✨🚀","2026-11-11 23:47:07",{"source":8,"skillName":5,"commands":76,"prompt":86,"zipAvailable":87},[77,80,83],{"tool":78,"command":79},"npx","npx skills add tinhtute\u002Fmonoharness --skill librarian",{"tool":81,"command":82},"bunx","bunx skills add tinhtute\u002Fmonoharness --skill librarian",{"tool":84,"command":85},"pnpm","pnpm dlx skills add tinhtute\u002Fmonoharness --skill librarian","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Flibrarian\u002FSKILL.md",true,[89,95,99,103,107],{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fcitation-rules.md","REFERENCE","参考文档",5990,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Flibrarian\u002Freferences\u002Fcitation-rules.md",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fexamples.md",1935,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Flibrarian\u002Freferences\u002Fexamples.md",{"path":100,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fgh-patterns.md",2675,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Flibrarian\u002Freferences\u002Fgh-patterns.md",{"path":104,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Foutput-format.md",8527,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Flibrarian\u002Freferences\u002Foutput-format.md",{"path":108,"resourceType":109,"resourceTypeDesc":110,"sizeBytes":111,"sourceHtmlUrl":112},"scripts\u002Fgh-search.sh","SCRIPT","脚本",2367,"https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Flibrarian\u002Fscripts\u002Fgh-search.sh",[114,136,161,183,205,224],{"skillNo":115,"name":40,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":122,"publishedAt":53},"01M6NJ7YY1Q5V2JYZ401YHKJVK","Search the web and fetch URLs or PDFs as clean Markdown via a privacy-first cascade (local, gh, TinyFish\u002FFirecrawl\u002FExa, opt-in proxy). Use to read, cite or save a URL. Not for repo files.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Fread\u002FSKILL.md",[119],{"categoryNo":120,"categoryName":121,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[40,123,124,49,48,125,126,44,41,127,39,128,129,130,131,35,132,133,134,32,135],"PDF","web","proxy","first","fetch","files","clean","exa","tinyfish","local","as","URL","opt",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":53},"01M6WWM7Y4Q4C1NN9DRC33J6F8","mono-write","Polish a research or learn draft (EN\u002FVI) so it reads naturally, and write CHANGELOG entries and release notes from a commit list. Not for UI copy, marketing or tone changes.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Fmono-write\u002FSKILL.md",[],[143,144,145,51,146,147,148,149,150,151,152,153,154,155,156,157,158,159,32,160],"write","mono","mono write","write changelog","commit","notes","release notes","learn","release","changelog","polish","marketing","list","en","draft","entries","tone","changes",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":53},"01M6NJ72XJYEV4VDYBZVT69E5T","git","Git operations with conventional commits. Use for staging, committing, pushing, PRs, merges. Auto-splits commits by type\u002Fscope. Security scans for secrets.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Ftools\u002Fgit\u002FSKILL.md",[],[163,168,169,49,170,171,43,172,39,173,174,175,176,177,178,179,180,32,181,182],"merge","pr","secrets","commits","operations","auto","cm","conventional commits","type","cp","git operations","scope","with","splits","prs",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":53},"01M6NJ6BBWY0ZTGKE4TNA6W3KF","work","Execution orchestrator after `brainstorm` (and `to-plan` for high-risk). Runs phases wave-by-wave from locked artifacts, verifies each task, and hands off to `check`, `git`, or `handoff`.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Fstages\u002Fwork\u002FSKILL.md",[],[185,190,148,49,163,191,192,193,194,195,196,197,173,198,199,200,201,202,203,32,204],"handoff","artifacts","execution","risk","plan","brainstorm","check","orchestrator","simple","task","full","name","mode","high","phase",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":211,"publishedAt":53},"01M6WWM38JH25Y72M733S1WT9G","wayfinder","Chart a Goal too fogged for one session as a decision map in the active plan, settle one decision per session, then hand it to brainstorm lock. Use when grilling shows the work spans sessions.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Fstages\u002Fwayfinder\u002FSKILL.md",[],[207,212,49,213,194,214,195,185,215,39,216,217,133,218,219,220,221,32,222,223],"sessions","file","decision","session","resume","map","chart","hand","lock","decision map","when","settle",{"skillNo":225,"name":226,"nameZh":6,"description":227,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":228,"categories":229,"keywords":230,"publishedAt":53},"01M6NJ65CX2MAJ9RTCMMDN2ZN9","watzup","Recap: read branch state, committed + uncommitted changes, handoff context, and artifact chain — then recommend the next action.","https:\u002F\u002Fgithub.com\u002Ftinhtute\u002Fmonoharness\u002Fblob\u002Fmaster\u002Fskills\u002Fstages\u002Fwatzup\u002FSKILL.md",[],[226,190,49,231,232,233,40,234,235,236,237,238,32,239,160],"state","recap","branch","context","next","artifact","chain","action","recommend"]