[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M710M69DR8G8580AKCKBHNJM":3,"skill-same:01M710M69DR8G8580AKCKBHNJM":65},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M710M69DR8G8580AKCKBHNJM","wiki-stats",null,"Produce a statistics and health dashboard for a markdown wiki folder, covering page counts by type, link density, hub and orphan pages, recent activity from log.md, and source coverage. Read-only. Use when asked how big or how healthy a wiki is, or what to work on next.","rileydrakedesign\u002Fwikiforge","rileydrakedesign","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F57300632?v=4","01M6NRZVBCXVH2JSRXXE8MA4TR","Riley Drake","01M6NRZVFA49X4BG180E9RTZT7",0,"MIT","https:\u002F\u002Fgithub.com\u002Frileydrakedesign\u002Fwikiforge\u002Fblob\u002Fmain\u002Fskills\u002Fwiki-stats\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"wiki","stats","wiki stats","work","health","type","healthy","log","statistics","when","use","produce","only","pages","orphan","work on","page","read-only","for","coverage","2026-11-10 10:12:30",false,"---\nname: wiki-stats\ndescription: Produce a statistics and health dashboard for a markdown wiki folder, covering page counts by type, link density, hub and orphan pages, recent activity from log.md, and source coverage. Read-only. Use when asked how big or how healthy a wiki is, or what to work on next.\n---\n# Wiki Stats\n\n## When to use\n\nUse this skill when the user asks how large the wiki is, how connected it is, what changed\nrecently, or what to work on next. It only reads files and never edits the wiki. It needs a\nfolder of markdown pages; `log.md`, `raw\u002F`, and frontmatter are used when present and\nskipped when absent.\n\n## Steps\n\n1. **Locate the wiki root.** Use `wiki\u002F` if it exists, otherwise the folder the user named.\n   Set `WIKI` to that path. If a sibling `raw\u002F` folder exists, set `RAW` to it.\n\n2. **Count pages by type.** Prefer the frontmatter `type` and fall back to the parent folder:\n   ```bash\n   for f in $(find \"$WIKI\" -name '*.md' -not -name 'index.md' -not -name 'log.md' -not -name 'overview.md'); do\n     t=$(sed -n '\u002F^---$\u002F,\u002F^---$\u002Fp' \"$f\" | awk -F': *' '$1==\"type\"{print $2; exit}')\n     echo \"${t:-$(basename \"$(dirname \"$f\")\")}\"\n   done | sort | uniq -c | sort -rn\n   ```\n\n3. **Measure link density.** Count wikilinks per page and overall:\n   ```bash\n   total=$(grep -rhoE '\\[\\[[^]]+\\]\\]' \"$WIKI\" --include='*.md' | wc -l | tr -d ' ')\n   pages=$(find \"$WIKI\" -name '*.md' -not -name 'index.md' -not -name 'log.md' | wc -l | tr -d ' ')\n   echo \"links=$total pages=$pages avg=$(awk \"BEGIN{printf \\\"%.1f\\\", $total\u002F($pages?$pages:1)}\")\"\n   ```\n   If the wiki uses standard markdown links, count `](...*.md)` instead.\n\n4. **Find hubs and orphans.** Rank pages by inbound links:\n   ```bash\n   for f in $(find \"$WIKI\" -name '*.md' -not -name 'index.md' -not -name 'log.md'); do\n     stem=$(basename \"$f\" .md)\n     n=$(grep -rlF \"[[$stem\" \"$WIKI\" --include='*.md' | grep -v \"index.md\" | grep -vc \"\u002F$(basename \"$f\")$\")\n     printf '%s\\t%s\\n' \"$n\" \"$stem\"\n   done | sort -rn > \u002Ftmp\u002Fwiki-inbound.tsv\n   head -5 \u002Ftmp\u002Fwiki-inbound.tsv          # hubs\n   awk -F'\\t' '$1==0' \u002Ftmp\u002Fwiki-inbound.tsv  # orphans\n   ```\n\n5. **Summarize recent activity** from `log.md` if it exists. Entries follow\n   `## [ISO-timestamp] operation | title`:\n   ```bash\n   grep -E '^## \\[' \"$WIKI\u002Flog.md\" | sed -E 's\u002F^## \\[[^]]+\\] ([a-z-]+).*\u002F\\1\u002F' | sort | uniq -c | sort -rn\n   grep -E '^## \\[' \"$WIKI\u002Flog.md\" | tail -5\n   ```\n   Report operations by type, the five most recent entries, and days since the last\n   `ingest` entry.\n\n6. **Check source coverage** when `RAW` is set. Every raw file should have a summary page:\n   ```bash\n   find \"$RAW\" -type f -not -path '*\u002Fassets\u002F*' | wc -l\n   find \"$WIKI\u002Fsources\" -name '*.md' 2>\u002Fdev\u002Fnull | wc -l\n   ```\n   Compute coverage as summaries divided by raw files. List raw files whose stem does not\n   appear anywhere under `$WIKI\u002Fsources\u002F`.\n\n7. **Present the dashboard** with these sections in order: Page Counts, Link Health, Top\n   Hubs, Orphans, Recent Activity, Source Coverage, Suggested Next Steps. Keep each section\n   short. Base the suggestions on the numbers: un-ingested sources suggest ingesting them,\n   orphans suggest cross-referencing or pruning, a long gap since the last ingest suggests\n   finding new sources, and low link density suggests running `lint-wiki`.\n\n## What good output looks like\n\n```\nWiki stats for wiki\u002F\n\nPage Counts     42 pages — 18 entities, 15 concepts, 7 sources, 2 comparisons\nLink Health     203 wikilinks, 4.8 per page, 0 broken\nTop Hubs        acme-corp (14), retrieval-latency (9), vector-databases (8)\nOrphans         2 — old-pricing-model, meeting-2025-03-notes\nRecent Activity 31 ingest, 12 query, 4 lint; last ingest 3 days ago\nSource Coverage 7 of 9 raw files summarized (78%) — missing: q3-report.pdf, podcast-ep-12.md\n\nNext: ingest the 2 uncovered sources, then run lint-wiki to link the 2 orphans.\n```\n\n## When a command fails\n\n- `grep: log.md: No such file`: there is no log. Skip the Recent Activity section and say so.\n- `find: raw: No such file`: no raw folder. Skip Source Coverage and say so.\n- Division shows `avg=0.0` with a nonzero page count: the wiki uses markdown links, not\n  wikilinks. Recount with `grep -rhoE '\\]\\([^)]+\\.md\\)'`.\n- Filenames with spaces break the `for f in $(find ...)` loops. Rerun with\n  `find \"$WIKI\" ... -print0 | while IFS= read -r -d '' f; do ...; done`.\n","# Wiki Stats\n\n## When to use\n\nUse this skill when the user asks how large the wiki is, how connected it is, what changed\nrecently, or what to work on next. It only reads files and never edits the wiki. It needs a\nfolder of markdown pages; `log.md`, `raw\u002F`, and frontmatter are used when present and\nskipped when absent.\n\n## Steps\n\n1. **Locate the wiki root.** Use `wiki\u002F` if it exists, otherwise the folder the user named.\n   Set `WIKI` to that path. If a sibling `raw\u002F` folder exists, set `RAW` to it.\n\n2. **Count pages by type.** Prefer the frontmatter `type` and fall back to the parent folder:\n   ```bash\n   for f in $(find \"$WIKI\" -name '*.md' -not -name 'index.md' -not -name 'log.md' -not -name 'overview.md'); do\n     t=$(sed -n '\u002F^---$\u002F,\u002F^---$\u002Fp' \"$f\" | awk -F': *' '$1==\"type\"{print $2; exit}')\n     echo \"${t:-$(basename \"$(dirname \"$f\")\")}\"\n   done | sort | uniq -c | sort -rn\n   ```\n\n3. **Measure link density.** Count wikilinks per page and overall:\n   ```bash\n   total=$(grep -rhoE '\\[\\[[^]]+\\]\\]' \"$WIKI\" --include='*.md' | wc -l | tr -d ' ')\n   pages=$(find \"$WIKI\" -name '*.md' -not -name 'index.md' -not -name 'log.md' | wc -l | tr -d ' ')\n   echo \"links=$total pages=$pages avg=$(awk \"BEGIN{printf \\\"%.1f\\\", $total\u002F($pages?$pages:1)}\")\"\n   ```\n   If the wiki uses standard markdown links, count `](...*.md)` instead.\n\n4. **Find hubs and orphans.** Rank pages by inbound links:\n   ```bash\n   for f in $(find \"$WIKI\" -name '*.md' -not -name 'index.md' -not -name 'log.md'); do\n     stem=$(basename \"$f\" .md)\n     n=$(grep -rlF \"[[$stem\" \"$WIKI\" --include='*.md' | grep -v \"index.md\" | grep -vc \"\u002F$(basename \"$f\")$\")\n     printf '%s\\t%s\\n' \"$n\" \"$stem\"\n   done | sort -rn > \u002Ftmp\u002Fwiki-inbound.tsv\n   head -5 \u002Ftmp\u002Fwiki-inbound.tsv          # hubs\n   awk -F'\\t' '$1==0' \u002Ftmp\u002Fwiki-inbound.tsv  # orphans\n   ```\n\n5. **Summarize recent activity** from `log.md` if it exists. Entries follow\n   `## [ISO-timestamp] operation | title`:\n   ```bash\n   grep -E '^## \\[' \"$WIKI\u002Flog.md\" | sed -E 's\u002F^## \\[[^]]+\\] ([a-z-]+).*\u002F\\1\u002F' | sort | uniq -c | sort -rn\n   grep -E '^## \\[' \"$WIKI\u002Flog.md\" | tail -5\n   ```\n   Report operations by type, the five most recent entries, and days since the last\n   `ingest` entry.\n\n6. **Check source coverage** when `RAW` is set. Every raw file should have a summary page:\n   ```bash\n   find \"$RAW\" -type f -not -path '*\u002Fassets\u002F*' | wc -l\n   find \"$WIKI\u002Fsources\" -name '*.md' 2>\u002Fdev\u002Fnull | wc -l\n   ```\n   Compute coverage as summaries divided by raw files. List raw files whose stem does not\n   appear anywhere under `$WIKI\u002Fsources\u002F`.\n\n7. **Present the dashboard** with these sections in order: Page Counts, Link Health, Top\n   Hubs, Orphans, Recent Activity, Source Coverage, Suggested Next Steps. Keep each section\n   short. Base the suggestions on the numbers: un-ingested sources suggest ingesting them,\n   orphans suggest cross-referencing or pruning, a long gap since the last ingest suggests\n   finding new sources, and low link density suggests running `lint-wiki`.\n\n## What good output looks like\n\n```\nWiki stats for wiki\u002F\n\nPage Counts     42 pages — 18 entities, 15 concepts, 7 sources, 2 comparisons\nLink Health     203 wikilinks, 4.8 per page, 0 broken\nTop Hubs        acme-corp (14), retrieval-latency (9), vector-databases (8)\nOrphans         2 — old-pricing-model, meeting-2025-03-notes\nRecent Activity 31 ingest, 12 query, 4 lint; last ingest 3 days ago\nSource Coverage 7 of 9 raw files summarized (78%) — missing: q3-report.pdf, podcast-ep-12.md\n\nNext: ingest the 2 uncovered sources, then run lint-wiki to link the 2 orphans.\n```\n\n## When a command fails\n\n- `grep: log.md: No such file`: there is no log. Skip the Recent Activity section and say so.\n- `find: raw: No such file`: no raw folder. Skip Source Coverage and say so.\n- Division shows `avg=0.0` with a nonzero page count: the wiki uses markdown links, not\n  wikilinks. Recount with `grep -rhoE '\\]\\([^)]+\\.md\\)'`.\n- Filenames with spaces break the `for f in $(find ...)` loops. Rerun with\n  `find \"$WIKI\" ... -print0 | while IFS= read -r -d '' f; do ...; done`.\n",{"name":5,"description":7},"main","e186a7664ca12d28165e3f0b06d0094ab43418b5","skills\u002Fwiki-stats","https:\u002F\u002Fgithub.com\u002Frileydrakedesign\u002Fwikiforge","https:\u002F\u002Fgithub.com\u002Frileydrakedesign","AI engineer • Agent platforms, LLM pipelines & agentic CI\u002FCD in production • TypeScript · Python · Postgres · Azure · Claude\u002FMCP • UCSB Stats & DS\r\n","2026-11-09 07:54:14",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add rileydrakedesign\u002Fwikiforge --skill wiki-stats",{"tool":57,"command":58},"bunx","bunx skills add rileydrakedesign\u002Fwikiforge --skill wiki-stats",{"tool":60,"command":61},"pnpm","pnpm dlx skills add rileydrakedesign\u002Fwikiforge --skill wiki-stats","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frileydrakedesign\u002Fwikiforge\u002Fblob\u002Fmain\u002Fskills\u002Fwiki-stats\u002FSKILL.md",true,[],[66,82],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":39},"01M710M46TP8H0VYD1F7597SWD","reindex","Rebuild the index.md of a markdown wiki folder from the pages on disk, grouped by page type and sorted by title, and verify that every wikilink resolves. Use when the index is stale, missing, or out of order, or after pages were renamed or moved.","https:\u002F\u002Fgithub.com\u002Frileydrakedesign\u002Fwikiforge\u002Fblob\u002Fmain\u002Fskills\u002Freindex\u002FSKILL.md",[],[68,73,28,29,74,19,75,32,76,77,35,78,79,80,24,81],"disk","index","stale","missing","folder","markdown","verify","title","rebuild",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":93,"publishedAt":39},"01M710M1ZXDKAZM2DKC4HCRCK5","lint-wiki","Health-check a markdown wiki folder (an LLM Wiki or any folder of interlinked .md pages). Finds broken wikilinks, orphan pages, pages missing from the index, and malformed frontmatter, fixes the mechanical issues, and reports the rest. Use when asked to lint, audit, or health-check a wiki, or after a batch of ingestions.","https:\u002F\u002Fgithub.com\u002Frileydrakedesign\u002Fwikiforge\u002Fblob\u002Fmain\u002Fskills\u002Flint-wiki\u002FSKILL.md",[88],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[94,19,95,28,96,97,33,98,76,99,32,29,78,100,101,102,103,104,23,105],"lint","lint wiki","broken","fixes","issues","mechanical","llm wiki","batch","health-check","check","reports","REST"]