[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ESGNGAHTV8SMZ7D3J14KSC":3,"skill-same:01M6ESGNGAHTV8SMZ7D3J14KSC":178},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":6,"ownerDescription":64,"updatedAt":65,"install":66,"resources":79},"01M6ESGNGAHTV8SMZ7D3J14KSC","kb-learn",null,"Manages a personal knowledge base with learning tracking. Modes: (1) learn from articles, (2) learn about topics, (3) fix errors. Uses markdown links with relative paths for cross-references. Maintains a rolling changelog, validates links, and keeps a markdown-compatible knowledge base. When a note reaches ~500 lines, suggests \u002Fkb-compact.","farzadshbfn\u002Fknowledge-skills","farzadshbfn","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6499563?v=4","01M6ESEW39Z8JCCXSM53M53PWT","Farzad Sharbafian","01M6ESG90SEXYCG777XSHF71QW",2,"MIT","https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"learn","kb learn","kb","changelog","run","paths","scripts","article","knowledge base","compact","references","uv","Bash","fix","edit","write","command","text","knowledge","markdown","2026-11-10 10:12:30",false,"---\nname: kb-learn\ndescription: \"Manages a personal knowledge base with learning tracking. Modes: (1) learn from articles, (2) learn about topics, (3) fix errors. Uses markdown links with relative paths for cross-references. Maintains a rolling changelog, validates links, and keeps a markdown-compatible knowledge base. When a note reaches ~500 lines, suggests \u002Fkb-compact.\"\nargument-hint: \"\u003Carticle|topic|fix> [url-or-text|topic-name|description]\"\neffort: medium\nhooks:\n  PostToolUse:\n    - matcher: \"Write|Edit|Bash\"\n      hooks:\n        - type: command\n          command: \"uv run ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fvalidate_kb.py --hook\"\n---\n\n# \u002Fkb-learn\n\n## Contents\n- [1. Configuration](#1-configuration)\n- [2. Routing](#2-routing)\n- [2a. Agents](#2a-agents)\n- [3. KB Discovery](#3-shared-procedure-kb-discovery)\n- [3a. Concept Evolution](#3a-shared-procedure-concept-evolution-and-legacy-patterns)\n- [4. Update KB](#4-shared-procedure-update-kb)\n- [4a. Structure Health Check](#4a-shared-procedure-structure-health-check)\n- [5. User Approval](#5-shared-procedure-user-approval)\n- [6. Naming and Folders](#6-note-naming-and-folder-conventions)\n\n## 1. Configuration\n\nOn first invocation, check for config at `.claude\u002Fknowledge-base\u002Fconfig.json`.\n\n**No config**: Tell user \"Run `\u002Fkb-bootstrap` to set up your knowledge base.\" and stop.\n\n**Config exists**: Read `kb_roots`. Single entry → use it. Multiple → defer to §4 step 0.\n\n## 2. Routing\n\nParse `$0` to determine workflow:\n- `article` → [reference\u002Farticle-workflow.md](reference\u002Farticle-workflow.md)\n- `topic` → [reference\u002Ftopic-workflow.md](reference\u002Ftopic-workflow.md)\n- `fix` → [reference\u002Fmistake-workflow.md](reference\u002Fmistake-workflow.md)\n- `compact` → Redirect: \"Run `\u002Fkb-compact [path]` instead.\"\n- Otherwise → show usage with modes (article\u002Ftopic\u002Ffix), tips, and examples\n\n## 2a. Agents\n\nSpecialized agents isolate high-volume work and enable parallelism. SKILL.md is the **orchestrator** — spawns agents and chains results. Agents never spawn other agents.\n\n| Agent | Model | Purpose | Used by |\n|-------|-------|---------|---------|\n| [scouter](agents\u002Fscouter.md) | haiku | KB discovery via `\u002Fkb-find` (supports `--challenge`) | all workflows |\n| [searcher](agents\u002Fsearcher.md) | sonnet | Web research — search, fetch, structure findings | topic, article |\n| [challenger](agents\u002Fchallenger.md) | sonnet | Adversarial web research — finds counter-evidence | topic |\n| [assessor](agents\u002Fassessor.md) | opus | Evaluate claims against KB + web evidence | article, topic |\n\n### Orchestration Pipeline\n\n```\n1. Spawn scouter(s) + searcher IN PARALLEL\n   ├── scouter (normal) → supporting evidence\n   ├── scouter (challenge) → counter-evidence\n   └── searcher → web findings\n2. Spawn challenger (with claims from step 1) → counter-evidence from web\n3. Spawn assessor (with all evidence incl. challenger) → verdicts + KB impact\n4. Apply changes\n```\n\nNot all steps required every time:\n- **Article**: scouter(s) + searcher → assessor (no challenger)\n- **Topic**: full pipeline including challenger\n- **Fix**: single scouter, no web search\n\nUse agents when output is high-volume, work is parallelizable, or task benefits from model specialization. Use inline when KB is small, single simple claim, or latency matters.\n\n## 3. Shared Procedure: KB Discovery\n\nAll KB discovery goes through the [scouter agent](agents\u002Fscouter.md). Never use `\u002Fkb-find` directly.\n\n### How to spawn scouters\n\n1. Read the kb-find SKILL.md at `${CLAUDE_SKILL_DIR}\u002F..\u002Fkb-find\u002FSKILL.md`\n2. Build prompt: scouter body text (after frontmatter) + separator + full kb-find SKILL.md content\n3. Spawn Agent with `model: haiku`, `background: true`\n\n**Why**: Skill-internal agents don't get automatic skill injection — the orchestrator must explicitly inject kb-find content.\n\n### Spawning patterns\n\n- **Bare lookup** (topic, fix): single scouter, normal mode\n- **Claim evaluation** (article, deep assessment): two scouters in parallel (normal + challenge)\n\n### Per-workflow queries\n\n- **article**: search by claims and key terms\n- **topic**: search by topic name\n- **fix**: search by described error (with scrutiny)\n\n**Empty KB**: Skip loading, note KB is empty.\n\n## 3a. Shared Procedure: Concept Evolution and Legacy Patterns\n\nAfter loading KB, check for concept evolution — outdated terminology, framing, or versioning. Follow [reference\u002Fevolution-workflow.md](reference\u002Fevolution-workflow.md) for detection, callouts, old patterns, and legacy notes.\n\n## 4. Shared Procedure: Update KB\n\n0. **KB routing**: Multiple KBs → infer target from context; if ambiguous, ask user.\n   - **Read-only guard**: If target KB has `[read-only]` badge (global KB), do NOT write to it. Instead, create a suggestion file in `~\u002F.claude\u002Fknowledge-base\u002Fsuggestions\u002F` using `suggestion.py` (see `${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fsuggestion.py --help`). Inform the user that a suggestion was created for the global KB.\n0a. **Skill folder check**: If topic has `skill\u002F` subfolder, route by content type:\n   - \"What\u002Fwhere\u002Fwhen\" → KB concept notes (lightweight: summary, sources)\n   - \"How\u002Fwhen to use\u002Fprocedures\" → skill's `reference\u002F` or `SKILL.md`\n   - Move overlapping \"how\" sections from concept notes into skill (no duplication)\n   - No `skill\u002F` → all content to concept notes\n\n1. **Templates** from [assets\u002F](assets\u002F): [topic-note](assets\u002Ftopic-note.md), [index-note](assets\u002Findex-note.md), [legacy-note](assets\u002Flegacy-note.md)\n\n2. **Slim frontmatter**:\n   \u003C!-- CANONICAL: Note format (frontmatter, TOC). Other files reference this section, not restate it. -->\n   - Topic\u002Findex notes: only `name` + `description` in frontmatter. No `title`, `summary`, `confidence`, `tags`.\n   - Inline `\u003Cconf:high>`, `\u003Cconf:medium>`, `\u003Cconf:low>` markers on claims are allowed and preserved during edits. Claims without a confidence tag should be treated as `\u003Cconf:medium>` (unverified but not flagged).\n   - Body: `# {Title}` → content sections. No summary paragraph duplicating description.\n   - **TOC**: Notes >100 lines need `## Contents` in first 10 lines of body.\n   - Legacy notes: `name` (append \" (legacy)\") + `description` (mention replacement).\n\n3. Keep heading accurate after modifications.\n\n4. **Cross-references**: markdown links with relative paths. Every concept note should link to at least one other note\u002Findex. Cross-KB: use `@kb-name\u002Fpath` format. **Global KBs**: use soft references only — `see: @namespace.kb\u002Ftopic` (no hard markdown links to read-only KBs).\n\n5. **Index updates**: Link new notes from relevant index. Create index if 3+ notes and none exists. Use table when section has 3+ items (see [reference\u002Ffolder-structure.md](reference\u002Ffolder-structure.md)).\n\n5a. **Sibling unification**: Skip if §4a already ran. Otherwise, if creating a new folder, check siblings per §4a.\n\n6. **MANDATORY changelog**: Every change to KB files → prepend entry to that KB's `CHANGELOG.md`. Follow [reference\u002Fchangelog-workflow.md](reference\u002Fchangelog-workflow.md). Do NOT skip.\n\n7. **Large notes**: If note reaches ~500 lines, suggest `\u002Fkb-compact \u003Cpath>`.\n\n## 4a. Shared Procedure: Structure Health Check\n\nRun after any KB update. Reuse KB root listing from step 5 if available; otherwise one `ls`.\n\n**Detection**: Group KB root folders by first hyphen-delimited segment. **3+ folders** sharing prefix (no existing parent) = candidate. No candidate = stop.\n\n**If found**: Ask user — \"Restructure now\", \"Skip\", \"Not applicable\".\n\n**If approved**: Follow [reference\u002Ffolder-structure.md](reference\u002Ffolder-structure.md#retroactive-sibling-unification). Run `validate_kb.py --quiet` to confirm zero errors.\n\n## 5. Shared Procedure: User Approval\n\nBefore non-trivial KB changes, present summary: notes to create, modify, index updates, changelog entry. Group claims by confidence level. Show `\u003Cconf:low>` claims in a separate \"⚠ Low confidence\" section. Use the **AskUserQuestion tool** (not plain text) with options: \"Apply high\u002Fmedium confidence\", \"Apply all (including low confidence)\", \"Apply selectively\", \"Cancel\".\n\n**Exception**: Minor changes (adding source URL, fixing typo) may proceed without approval but must be mentioned.\n\n## 6. Note Naming and Folder Conventions\n\n- Lowercase, hyphen-separated. Topic-prefixed when ambiguous (`crdt-operation-based.md`, not `operations.md`). 2-4 words.\n- Index: one `index.md` per folder. See [reference\u002Ffolder-structure.md](reference\u002Ffolder-structure.md).\n\n### Skill Folders (KB-backed skills)\n\nTopics with \"how\" content have `skill\u002F` inside their concept folder. Symlink from `.claude\u002Fskills\u002F` makes it discoverable. **All skills must be KB-backed.** When `skill\u002F` exists, concept notes are lightweight (provenance, summary, pointers to skill).\n\n### Forward-Only\n\nConventions apply to new notes by default. Existing notes not moved unless requested. When editing, may normalize frontmatter and update indexes.\n\n### Moving files\n\nWhen relocation requested: `mv` files → run `validate_kb.py` → fix reported broken links. Don't rewrite content just to relocate.\n\n## 7. Validation\n\nAfter completing KB changes, run the validator to catch broken links, frontmatter issues, and structural errors:\n\n```bash\nuv run ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fvalidate_kb.py --quiet --json\n```\n\nFix any reported errors before finishing.\n","# \u002Fkb-learn\n\n## Contents\n- [1. Configuration](#1-configuration)\n- [2. Routing](#2-routing)\n- [2a. Agents](#2a-agents)\n- [3. KB Discovery](#3-shared-procedure-kb-discovery)\n- [3a. Concept Evolution](#3a-shared-procedure-concept-evolution-and-legacy-patterns)\n- [4. Update KB](#4-shared-procedure-update-kb)\n- [4a. Structure Health Check](#4a-shared-procedure-structure-health-check)\n- [5. User Approval](#5-shared-procedure-user-approval)\n- [6. Naming and Folders](#6-note-naming-and-folder-conventions)\n\n## 1. Configuration\n\nOn first invocation, check for config at `.claude\u002Fknowledge-base\u002Fconfig.json`.\n\n**No config**: Tell user \"Run `\u002Fkb-bootstrap` to set up your knowledge base.\" and stop.\n\n**Config exists**: Read `kb_roots`. Single entry → use it. Multiple → defer to §4 step 0.\n\n## 2. Routing\n\nParse `$0` to determine workflow:\n- `article` → [reference\u002Farticle-workflow.md](reference\u002Farticle-workflow.md)\n- `topic` → [reference\u002Ftopic-workflow.md](reference\u002Ftopic-workflow.md)\n- `fix` → [reference\u002Fmistake-workflow.md](reference\u002Fmistake-workflow.md)\n- `compact` → Redirect: \"Run `\u002Fkb-compact [path]` instead.\"\n- Otherwise → show usage with modes (article\u002Ftopic\u002Ffix), tips, and examples\n\n## 2a. Agents\n\nSpecialized agents isolate high-volume work and enable parallelism. SKILL.md is the **orchestrator** — spawns agents and chains results. Agents never spawn other agents.\n\n| Agent | Model | Purpose | Used by |\n|-------|-------|---------|---------|\n| [scouter](agents\u002Fscouter.md) | haiku | KB discovery via `\u002Fkb-find` (supports `--challenge`) | all workflows |\n| [searcher](agents\u002Fsearcher.md) | sonnet | Web research — search, fetch, structure findings | topic, article |\n| [challenger](agents\u002Fchallenger.md) | sonnet | Adversarial web research — finds counter-evidence | topic |\n| [assessor](agents\u002Fassessor.md) | opus | Evaluate claims against KB + web evidence | article, topic |\n\n### Orchestration Pipeline\n\n```\n1. Spawn scouter(s) + searcher IN PARALLEL\n   ├── scouter (normal) → supporting evidence\n   ├── scouter (challenge) → counter-evidence\n   └── searcher → web findings\n2. Spawn challenger (with claims from step 1) → counter-evidence from web\n3. Spawn assessor (with all evidence incl. challenger) → verdicts + KB impact\n4. Apply changes\n```\n\nNot all steps required every time:\n- **Article**: scouter(s) + searcher → assessor (no challenger)\n- **Topic**: full pipeline including challenger\n- **Fix**: single scouter, no web search\n\nUse agents when output is high-volume, work is parallelizable, or task benefits from model specialization. Use inline when KB is small, single simple claim, or latency matters.\n\n## 3. Shared Procedure: KB Discovery\n\nAll KB discovery goes through the [scouter agent](agents\u002Fscouter.md). Never use `\u002Fkb-find` directly.\n\n### How to spawn scouters\n\n1. Read the kb-find SKILL.md at `${CLAUDE_SKILL_DIR}\u002F..\u002Fkb-find\u002FSKILL.md`\n2. Build prompt: scouter body text (after frontmatter) + separator + full kb-find SKILL.md content\n3. Spawn Agent with `model: haiku`, `background: true`\n\n**Why**: Skill-internal agents don't get automatic skill injection — the orchestrator must explicitly inject kb-find content.\n\n### Spawning patterns\n\n- **Bare lookup** (topic, fix): single scouter, normal mode\n- **Claim evaluation** (article, deep assessment): two scouters in parallel (normal + challenge)\n\n### Per-workflow queries\n\n- **article**: search by claims and key terms\n- **topic**: search by topic name\n- **fix**: search by described error (with scrutiny)\n\n**Empty KB**: Skip loading, note KB is empty.\n\n## 3a. Shared Procedure: Concept Evolution and Legacy Patterns\n\nAfter loading KB, check for concept evolution — outdated terminology, framing, or versioning. Follow [reference\u002Fevolution-workflow.md](reference\u002Fevolution-workflow.md) for detection, callouts, old patterns, and legacy notes.\n\n## 4. Shared Procedure: Update KB\n\n0. **KB routing**: Multiple KBs → infer target from context; if ambiguous, ask user.\n   - **Read-only guard**: If target KB has `[read-only]` badge (global KB), do NOT write to it. Instead, create a suggestion file in `~\u002F.claude\u002Fknowledge-base\u002Fsuggestions\u002F` using `suggestion.py` (see `${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fsuggestion.py --help`). Inform the user that a suggestion was created for the global KB.\n0a. **Skill folder check**: If topic has `skill\u002F` subfolder, route by content type:\n   - \"What\u002Fwhere\u002Fwhen\" → KB concept notes (lightweight: summary, sources)\n   - \"How\u002Fwhen to use\u002Fprocedures\" → skill's `reference\u002F` or `SKILL.md`\n   - Move overlapping \"how\" sections from concept notes into skill (no duplication)\n   - No `skill\u002F` → all content to concept notes\n\n1. **Templates** from [assets\u002F](assets\u002F): [topic-note](assets\u002Ftopic-note.md), [index-note](assets\u002Findex-note.md), [legacy-note](assets\u002Flegacy-note.md)\n\n2. **Slim frontmatter**:\n   \u003C!-- CANONICAL: Note format (frontmatter, TOC). Other files reference this section, not restate it. -->\n   - Topic\u002Findex notes: only `name` + `description` in frontmatter. No `title`, `summary`, `confidence`, `tags`.\n   - Inline `\u003Cconf:high>`, `\u003Cconf:medium>`, `\u003Cconf:low>` markers on claims are allowed and preserved during edits. Claims without a confidence tag should be treated as `\u003Cconf:medium>` (unverified but not flagged).\n   - Body: `# {Title}` → content sections. No summary paragraph duplicating description.\n   - **TOC**: Notes >100 lines need `## Contents` in first 10 lines of body.\n   - Legacy notes: `name` (append \" (legacy)\") + `description` (mention replacement).\n\n3. Keep heading accurate after modifications.\n\n4. **Cross-references**: markdown links with relative paths. Every concept note should link to at least one other note\u002Findex. Cross-KB: use `@kb-name\u002Fpath` format. **Global KBs**: use soft references only — `see: @namespace.kb\u002Ftopic` (no hard markdown links to read-only KBs).\n\n5. **Index updates**: Link new notes from relevant index. Create index if 3+ notes and none exists. Use table when section has 3+ items (see [reference\u002Ffolder-structure.md](reference\u002Ffolder-structure.md)).\n\n5a. **Sibling unification**: Skip if §4a already ran. Otherwise, if creating a new folder, check siblings per §4a.\n\n6. **MANDATORY changelog**: Every change to KB files → prepend entry to that KB's `CHANGELOG.md`. Follow [reference\u002Fchangelog-workflow.md](reference\u002Fchangelog-workflow.md). Do NOT skip.\n\n7. **Large notes**: If note reaches ~500 lines, suggest `\u002Fkb-compact \u003Cpath>`.\n\n## 4a. Shared Procedure: Structure Health Check\n\nRun after any KB update. Reuse KB root listing from step 5 if available; otherwise one `ls`.\n\n**Detection**: Group KB root folders by first hyphen-delimited segment. **3+ folders** sharing prefix (no existing parent) = candidate. No candidate = stop.\n\n**If found**: Ask user — \"Restructure now\", \"Skip\", \"Not applicable\".\n\n**If approved**: Follow [reference\u002Ffolder-structure.md](reference\u002Ffolder-structure.md#retroactive-sibling-unification). Run `validate_kb.py --quiet` to confirm zero errors.\n\n## 5. Shared Procedure: User Approval\n\nBefore non-trivial KB changes, present summary: notes to create, modify, index updates, changelog entry. Group claims by confidence level. Show `\u003Cconf:low>` claims in a separate \"⚠ Low confidence\" section. Use the **AskUserQuestion tool** (not plain text) with options: \"Apply high\u002Fmedium confidence\", \"Apply all (including low confidence)\", \"Apply selectively\", \"Cancel\".\n\n**Exception**: Minor changes (adding source URL, fixing typo) may proceed without approval but must be mentioned.\n\n## 6. Note Naming and Folder Conventions\n\n- Lowercase, hyphen-separated. Topic-prefixed when ambiguous (`crdt-operation-based.md`, not `operations.md`). 2-4 words.\n- Index: one `index.md` per folder. See [reference\u002Ffolder-structure.md](reference\u002Ffolder-structure.md).\n\n### Skill Folders (KB-backed skills)\n\nTopics with \"how\" content have `skill\u002F` inside their concept folder. Symlink from `.claude\u002Fskills\u002F` makes it discoverable. **All skills must be KB-backed.** When `skill\u002F` exists, concept notes are lightweight (provenance, summary, pointers to skill).\n\n### Forward-Only\n\nConventions apply to new notes by default. Existing notes not moved unless requested. When editing, may normalize frontmatter and update indexes.\n\n### Moving files\n\nWhen relocation requested: `mv` files → run `validate_kb.py` → fix reported broken links. Don't rewrite content just to relocate.\n\n## 7. Validation\n\nAfter completing KB changes, run the validator to catch broken links, frontmatter issues, and structural errors:\n\n```bash\nuv run ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fvalidate_kb.py --quiet --json\n```\n\nFix any reported errors before finishing.\n",{"name":5,"hooks":49,"effort":56,"description":7,"argument-hint":57},{"PostToolUse":50},[51],{"hooks":52,"matcher":55},[53],{"type":40,"command":54},"uv run ${CLAUDE_SKILL_DIR}\u002Fscripts\u002Fvalidate_kb.py --hook","Write|Edit|Bash","medium","\u003Carticle|topic|fix> [url-or-text|topic-name|description]","main","6cbd6958cb3173592eae2a4f7859bc356750f1c7","knowledge\u002Flearn\u002Fskill",0,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills","https:\u002F\u002Fgithub.com\u002Ffarzadshbfn","IOS Engineer, Swift lover and also a sport programmer.","2026-04-11 21:23:49",{"source":8,"skillName":5,"commands":67,"prompt":77,"zipAvailable":78},[68,71,74],{"tool":69,"command":70},"npx","npx skills add farzadshbfn\u002Fknowledge-skills --skill kb-learn",{"tool":72,"command":73},"bunx","bunx skills add farzadshbfn\u002Fknowledge-skills --skill kb-learn",{"tool":75,"command":76},"pnpm","pnpm dlx skills add farzadshbfn\u002Fknowledge-skills --skill kb-learn","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002FSKILL.md",true,[80,86,90,94,98,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,174],{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"agents\u002Fassessor.md","REFERENCE","参考文档",2609,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fagents\u002Fassessor.md",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"agents\u002Fchallenger.md",3044,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fagents\u002Fchallenger.md",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"agents\u002Fscouter.md",1939,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fagents\u002Fscouter.md",{"path":95,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":96,"sourceHtmlUrl":97},"agents\u002Fsearcher.md",2189,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fagents\u002Fsearcher.md",{"path":99,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":102,"sourceHtmlUrl":103},"assets\u002Findex-note.md","ASSET","资产文件",43,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fassets\u002Findex-note.md",{"path":105,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":106,"sourceHtmlUrl":107},"assets\u002Flegacy-note.md",625,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fassets\u002Flegacy-note.md",{"path":109,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":110,"sourceHtmlUrl":111},"assets\u002Ftopic-note.md",379,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fassets\u002Ftopic-note.md",{"path":113,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":114,"sourceHtmlUrl":115},"reference\u002Farticle-workflow.md",3226,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Freference\u002Farticle-workflow.md",{"path":117,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":118,"sourceHtmlUrl":119},"reference\u002Fchangelog-workflow.md",917,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Freference\u002Fchangelog-workflow.md",{"path":121,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":122,"sourceHtmlUrl":123},"reference\u002Fevolution-workflow.md",3539,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Freference\u002Fevolution-workflow.md",{"path":125,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":126,"sourceHtmlUrl":127},"reference\u002Ffetch-content.md",2369,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Freference\u002Ffetch-content.md",{"path":129,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":130,"sourceHtmlUrl":131},"reference\u002Ffolder-structure.md",52,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Freference\u002Ffolder-structure.md",{"path":133,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":134,"sourceHtmlUrl":135},"reference\u002Fmistake-workflow.md",1547,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Freference\u002Fmistake-workflow.md",{"path":137,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":138,"sourceHtmlUrl":139},"reference\u002Ftopic-workflow.md",4027,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Freference\u002Ftopic-workflow.md",{"path":141,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":142,"sourceHtmlUrl":143},"references\u002Fanti-patterns.md",7256,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Falpha-humanizer\u002Freferences\u002Fanti-patterns.md",{"path":145,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":146,"sourceHtmlUrl":147},"references\u002Fconcepts\u002Fbanned-patterns.md",7720,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Falpha-humanizer\u002Freferences\u002Fconcepts\u002Fbanned-patterns.md",{"path":149,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":150,"sourceHtmlUrl":151},"references\u002Fconcepts\u002Fmaster-techniques.md",12782,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Falpha-humanizer\u002Freferences\u002Fconcepts\u002Fmaster-techniques.md",{"path":153,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":154,"sourceHtmlUrl":155},"references\u002Fexamples\u002Fbefore-after.md",9062,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Falpha-humanizer\u002Freferences\u002Fexamples\u002Fbefore-after.md",{"path":157,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":158,"sourceHtmlUrl":159},"references\u002Fworkflows\u002Ffull-rewrite.md",6715,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Falpha-humanizer\u002Freferences\u002Fworkflows\u002Ffull-rewrite.md",{"path":161,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":162,"sourceHtmlUrl":163},"references\u002Fworkflows\u002Fquick-strip.md",2152,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Falpha-humanizer\u002Freferences\u002Fworkflows\u002Fquick-strip.md",{"path":165,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":166,"sourceHtmlUrl":167},"references\u002Fworkflows\u002Fwrite-from-scratch.md",5165,"https:\u002F\u002Fgithub.com\u002Fmarcelfahle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Falpha-humanizer\u002Freferences\u002Fworkflows\u002Fwrite-from-scratch.md",{"path":169,"resourceType":170,"resourceTypeDesc":171,"sizeBytes":172,"sourceHtmlUrl":173},"scripts\u002Fsuggestion.py","SCRIPT","脚本",5815,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fscripts\u002Fsuggestion.py",{"path":175,"resourceType":170,"resourceTypeDesc":171,"sizeBytes":176,"sourceHtmlUrl":177},"scripts\u002Fvalidate_kb.py",42855,"https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Flearn\u002Fskill\u002Fscripts\u002Fvalidate_kb.py",[179,199,224,243,258,275],{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":185,"publishedAt":44},"01M6ESH1JTT7FARJ6GJBCAPG3A","kb-view","Opens the KB viewer in the browser. Starts a local HTTP server that renders all configured knowledge bases with working links, fuzzy search, and knowledge graph visualization.","https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Fview\u002Fskill\u002FSKILL.md",[],[186,26,187,188,189,190,191,192,193,194,42,195,196,197,198],"view","kb view","http","visualization","browser","search","graph","knowledge graph","server","bases","local","http server","with",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":206,"publishedAt":44},"01M6ESGXKK9QJ8YKWJ2S47STTN","kb-monitor","Monitors KB usage patterns and skill health. Activates when KB access tracking detects frequently-read content that could become a skill, or when user corrections suggest a skill is underperforming. Also triggers on `this isn't working right`, `this skill keeps getting X wrong`, `convert this to a skill`, or `what should become a skill`. Tracks cross-session observations via memory.","https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Fmonitor\u002Fskill\u002FSKILL.md",[205],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[207,26,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223],"monitor","kb monitor","memory","status","content","health","access","convert","read","tracking","user","session","patterns","skill health","triggers","name","via",{"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":231,"publishedAt":44},"01M6ESGT9GZD25TJKPNHNT5H15","kb-mint","Mints skills from KB topics, packages skills into plugins, and prepares them for Cowork. Use when asked to create a skill from KB content, convert to a plugin, package for distribution, or make something cowork-ready. Also triggers on `convert this to a skill`, `package as plugin`, `mint a skill`, or `make this a plugin`.","https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Fmint\u002Fskill\u002FSKILL.md",[230],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[26,232,233,234,235,236,28,24,237,36,214,40,238,239,35,240,241,221,242,30],"mint","kb mint","plugin","packages","create","package","use","ready","uv run","distribution","as",{"skillNo":244,"name":245,"nameZh":6,"description":246,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":247,"categories":248,"keywords":249,"publishedAt":44},"01M6ESGJE1HRA9V4PBSJQVWADB","kb-find","Read-only KB discovery with progressive 4-tier loading and --challenge mode for counter-evidence.","https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Ffind\u002Fskill\u002FSKILL.md",[],[250,26,251,252,253,215,254,255,256,257,198],"find","kb find","discovery","challenge","only","evidence","query","loading",{"skillNo":259,"name":260,"nameZh":6,"description":261,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":262,"categories":263,"keywords":265,"publishedAt":44},"01M6ESGEERPGW217NBVWN2RF6R","kb-compact","Compacts KB directories — extracts legacy, unifies terminology, splits oversized notes, fixes indexes, reconciles with skill folders. Default: single directory. Use --deep for recursive bottom-up traversal.","https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Fcompact\u002Fskill\u002FSKILL.md",[264],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[26,33,266,267,268,28,24,36,40,238,269,270,35,271,240,272,273,274,30,198],"kb compact","directory","notes","up","oversized","Legacy","default","terminology","deep",{"skillNo":276,"name":277,"nameZh":6,"description":278,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":279,"categories":280,"keywords":281,"publishedAt":44},"01M6ESGAQGGHZM41TDJZYG5WQ4","kb-bootstrap","Sets up the knowledge base for a project or initializes the global (god) KB config. Creates the KB config, directory structure, and appends minimal instructions to the project's CLAUDE.md. Run this once when first using KB skills in a new project. Use --global to set up the global read-only KB.","https:\u002F\u002Fgithub.com\u002Ffarzadshbfn\u002Fknowledge-skills\u002Fblob\u002Fmain\u002Fknowledge\u002Fbootstrap\u002Fskill\u002FSKILL.md",[],[282,26,283,267,284,28,285,286,42,215,287,288,238,254,269,289,290,291,32,292],"bootstrap","kb bootstrap","config","SET","first","instructions","global","minimal","base","structure","project"]