[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M710M1ZXDKAZM2DKC4HCRCK5":3,"skill-same:01M710M1ZXDKAZM2DKC4HCRCK5":70},{"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":49,"commitSha":50,"skillDirectory":51,"forksCount":14,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M710M1ZXDKAZM2DKC4HCRCK5","lint-wiki",null,"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.","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\u002Flint-wiki\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"lint","lint wiki","wiki","markdown","REST","health","reports","check","health-check","batch","llm wiki","when","use","pages","mechanical","missing","issues","orphan","fixes","broken","2026-11-10 10:12:30",false,"---\nname: lint-wiki\ndescription: 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.\n---\n# Lint Wiki\n\n## When to use\n\nUse this skill when the user asks to lint, audit, or health-check a wiki, or after several\npages were added or renamed. It needs only a folder of markdown pages. A `wiki\u002Findex.md` and\n`wiki\u002Flog.md` are used if present and created if missing. It does not need a scaffolded\nWikiForge repo or `.forge\u002Fconfig.yaml`.\n\nIf the user passes `--report-only`, skip every fix and report everything.\n\n## Posture\n\nFix what is pure bookkeeping. Report what changes meaning, confidence, or topology.\n\n| Finding | Action |\n|---|---|\n| Page on disk not listed in `index.md` | Fix: add an entry with a one-line description |\n| Wikilink to a page that does not exist | Fix: create a stub page with `status: stub`, then flag it |\n| Frontmatter missing `type`, `title`, `last_updated`, or `status` | Fix: insert defaults (`status: current`, `last_updated` from file mtime) |\n| Non-ISO dates in frontmatter | Fix: normalize when unambiguous |\n| Page with no inbound links | Report as orphan |\n| Two pages that contradict each other | Report only |\n| Duplicate pages for the same subject | Report only |\n| Stub pages still empty | Report only |\n\n## Steps\n\n1. **Locate the wiki root.** Use the `wiki\u002F` folder if it exists, otherwise the folder the\n   user named. Set `WIKI` to that path for the commands below.\n\n2. **Catalog the pages.**\n   ```bash\n   find \"$WIKI\" -name '*.md' -not -name 'index.md' -not -name 'log.md' | sort\n   ```\n\n3. **Find pages missing from the index.** For every page in the catalog, check whether its\n   title or filename stem appears in `index.md`:\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     grep -qiF \"$stem\" \"$WIKI\u002Findex.md\" || echo \"MISSING FROM INDEX: $f\"\n   done\n   ```\n   Unless `--report-only`, add each missing page under the matching heading in `index.md`\n   (Entities, Concepts, Sources, Comparisons, or Other) as `- [[stem]] — one-line summary`,\n   taking the summary from the page's first paragraph.\n\n4. **Find broken wikilinks.** Collect every `[[target]]` and check a file exists for it:\n   ```bash\n   grep -rhoE '\\[\\[[^]|#]+' \"$WIKI\" | sed 's\u002F\\[\\[\u002F\u002F' | sort -u | while read -r t; do\n     find \"$WIKI\" -iname \"$(echo \"$t\" | tr ' ' '-').md\" -o -iname \"$t.md\" | grep -q . || echo \"BROKEN LINK: [[$t]]\"\n   done\n   ```\n   Also check standard markdown links of the form `](relative\u002Fpath.md)`. Unless\n   `--report-only`, create a stub for each broken wikilink with this frontmatter and a single\n   line saying the page was created to satisfy a link:\n   ```markdown\n   ---\n   type: concept\n   title: \u003CTarget>\n   status: stub\n   last_updated: \u003Ctoday ISO date>\n   ---\n   ```\n   Keep stubs in the report so the user knows they need content.\n\n5. **Find orphans.** A page is an orphan when no other page links to it:\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     grep -rlF \"[[$stem\" \"$WIKI\" --include='*.md' | grep -v \"\u002F$(basename \"$f\")$\" | grep -qv 'index.md' || echo \"ORPHAN: $f\"\n   done\n   ```\n   Report orphans. Do not delete them.\n\n6. **Check frontmatter.** For each page, read the block between the first two `---` lines.\n   Required keys: `type`, `title`, `last_updated`, `status`. Unless `--report-only`, insert\n   missing keys with defaults and normalize dates to `YYYY-MM-DD`. Report any `type` or\n   `status` value you do not recognize instead of guessing.\n\n7. **Read for contradictions and duplicates.** Open pages that share a subject (same entity\n   named in two titles, or overlapping tags) and note claims that disagree. Report these; do\n   not edit them.\n\n8. **Write the report.** Two sections, Fixed and Unresolved, with counts, then a health\n   score: the percentage of pages with no unresolved finding. Sort Unresolved by severity:\n   contradictions and broken links, then orphans and stubs, then suggestions.\n\n9. **Log the run.** Append to `$WIKI\u002Flog.md`, creating the file if needed:\n   ```\n   ## [\u003CISO-8601 timestamp>] lint-wiki | fixed: \u003CN>, unresolved: \u003CM>\n   - \u003Ccategory>: \u003Cpage>   (one bullet per fix applied)\n   ```\n   Add ` | report-only` to the heading when fixes were skipped.\n\n## What good output looks like\n\n```\nLint report for wiki\u002F — 42 pages, health 88%\n\nFixed (5)\n- index: added wiki\u002Fentities\u002Facme-corp.md\n- stub: created wiki\u002Fconcepts\u002Fretrieval-latency.md (linked from 3 pages)\n- frontmatter: added status: current to 3 pages\n\nUnresolved (5)\n- CONTRADICTION: entities\u002Facme-corp.md says founded 2014; sources\u002Facme-s1.md says 2015\n- ORPHAN: concepts\u002Fold-pricing-model.md (no inbound links)\n- STUB: concepts\u002Fretrieval-latency.md needs content\n```\n\n## When a command fails\n\n- `grep: wiki\u002Findex.md: No such file` means there is no index. Create one with headings\n  for Entities, Concepts, Sources, and Comparisons, then rerun step 3.\n- `find` returns nothing: the wiki path is wrong or the pages are not `.md`. Confirm the\n  path with the user before changing anything.\n- Filenames with spaces break the `for f in $(find ...)` loops. Rerun with\n  `find \"$WIKI\" -name '*.md' -print0 | while IFS= read -r -d '' f; do ...; done`.\n- If a fix would touch more than a quarter of the pages, stop, show the list, and ask\n  before applying.\n","# Lint Wiki\n\n## When to use\n\nUse this skill when the user asks to lint, audit, or health-check a wiki, or after several\npages were added or renamed. It needs only a folder of markdown pages. A `wiki\u002Findex.md` and\n`wiki\u002Flog.md` are used if present and created if missing. It does not need a scaffolded\nWikiForge repo or `.forge\u002Fconfig.yaml`.\n\nIf the user passes `--report-only`, skip every fix and report everything.\n\n## Posture\n\nFix what is pure bookkeeping. Report what changes meaning, confidence, or topology.\n\n| Finding | Action |\n|---|---|\n| Page on disk not listed in `index.md` | Fix: add an entry with a one-line description |\n| Wikilink to a page that does not exist | Fix: create a stub page with `status: stub`, then flag it |\n| Frontmatter missing `type`, `title`, `last_updated`, or `status` | Fix: insert defaults (`status: current`, `last_updated` from file mtime) |\n| Non-ISO dates in frontmatter | Fix: normalize when unambiguous |\n| Page with no inbound links | Report as orphan |\n| Two pages that contradict each other | Report only |\n| Duplicate pages for the same subject | Report only |\n| Stub pages still empty | Report only |\n\n## Steps\n\n1. **Locate the wiki root.** Use the `wiki\u002F` folder if it exists, otherwise the folder the\n   user named. Set `WIKI` to that path for the commands below.\n\n2. **Catalog the pages.**\n   ```bash\n   find \"$WIKI\" -name '*.md' -not -name 'index.md' -not -name 'log.md' | sort\n   ```\n\n3. **Find pages missing from the index.** For every page in the catalog, check whether its\n   title or filename stem appears in `index.md`:\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     grep -qiF \"$stem\" \"$WIKI\u002Findex.md\" || echo \"MISSING FROM INDEX: $f\"\n   done\n   ```\n   Unless `--report-only`, add each missing page under the matching heading in `index.md`\n   (Entities, Concepts, Sources, Comparisons, or Other) as `- [[stem]] — one-line summary`,\n   taking the summary from the page's first paragraph.\n\n4. **Find broken wikilinks.** Collect every `[[target]]` and check a file exists for it:\n   ```bash\n   grep -rhoE '\\[\\[[^]|#]+' \"$WIKI\" | sed 's\u002F\\[\\[\u002F\u002F' | sort -u | while read -r t; do\n     find \"$WIKI\" -iname \"$(echo \"$t\" | tr ' ' '-').md\" -o -iname \"$t.md\" | grep -q . || echo \"BROKEN LINK: [[$t]]\"\n   done\n   ```\n   Also check standard markdown links of the form `](relative\u002Fpath.md)`. Unless\n   `--report-only`, create a stub for each broken wikilink with this frontmatter and a single\n   line saying the page was created to satisfy a link:\n   ```markdown\n   ---\n   type: concept\n   title: \u003CTarget>\n   status: stub\n   last_updated: \u003Ctoday ISO date>\n   ---\n   ```\n   Keep stubs in the report so the user knows they need content.\n\n5. **Find orphans.** A page is an orphan when no other page links to it:\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     grep -rlF \"[[$stem\" \"$WIKI\" --include='*.md' | grep -v \"\u002F$(basename \"$f\")$\" | grep -qv 'index.md' || echo \"ORPHAN: $f\"\n   done\n   ```\n   Report orphans. Do not delete them.\n\n6. **Check frontmatter.** For each page, read the block between the first two `---` lines.\n   Required keys: `type`, `title`, `last_updated`, `status`. Unless `--report-only`, insert\n   missing keys with defaults and normalize dates to `YYYY-MM-DD`. Report any `type` or\n   `status` value you do not recognize instead of guessing.\n\n7. **Read for contradictions and duplicates.** Open pages that share a subject (same entity\n   named in two titles, or overlapping tags) and note claims that disagree. Report these; do\n   not edit them.\n\n8. **Write the report.** Two sections, Fixed and Unresolved, with counts, then a health\n   score: the percentage of pages with no unresolved finding. Sort Unresolved by severity:\n   contradictions and broken links, then orphans and stubs, then suggestions.\n\n9. **Log the run.** Append to `$WIKI\u002Flog.md`, creating the file if needed:\n   ```\n   ## [\u003CISO-8601 timestamp>] lint-wiki | fixed: \u003CN>, unresolved: \u003CM>\n   - \u003Ccategory>: \u003Cpage>   (one bullet per fix applied)\n   ```\n   Add ` | report-only` to the heading when fixes were skipped.\n\n## What good output looks like\n\n```\nLint report for wiki\u002F — 42 pages, health 88%\n\nFixed (5)\n- index: added wiki\u002Fentities\u002Facme-corp.md\n- stub: created wiki\u002Fconcepts\u002Fretrieval-latency.md (linked from 3 pages)\n- frontmatter: added status: current to 3 pages\n\nUnresolved (5)\n- CONTRADICTION: entities\u002Facme-corp.md says founded 2014; sources\u002Facme-s1.md says 2015\n- ORPHAN: concepts\u002Fold-pricing-model.md (no inbound links)\n- STUB: concepts\u002Fretrieval-latency.md needs content\n```\n\n## When a command fails\n\n- `grep: wiki\u002Findex.md: No such file` means there is no index. Create one with headings\n  for Entities, Concepts, Sources, and Comparisons, then rerun step 3.\n- `find` returns nothing: the wiki path is wrong or the pages are not `.md`. Confirm the\n  path with the user before changing anything.\n- Filenames with spaces break the `for f in $(find ...)` loops. Rerun with\n  `find \"$WIKI\" -name '*.md' -print0 | while IFS= read -r -d '' f; do ...; done`.\n- If a fix would touch more than a quarter of the pages, stop, show the list, and ask\n  before applying.\n",{"name":5,"description":7},"main","e186a7664ca12d28165e3f0b06d0094ab43418b5","skills\u002Flint-wiki","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":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add rileydrakedesign\u002Fwikiforge --skill lint-wiki",{"tool":62,"command":63},"bunx","bunx skills add rileydrakedesign\u002Fwikiforge --skill lint-wiki",{"tool":65,"command":66},"pnpm","pnpm dlx skills add rileydrakedesign\u002Fwikiforge --skill lint-wiki","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frileydrakedesign\u002Fwikiforge\u002Fblob\u002Fmain\u002Fskills\u002Flint-wiki\u002FSKILL.md",true,[],[71,92],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":44},"01M710M69DR8G8580AKCKBHNJM","wiki-stats","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.","https:\u002F\u002Fgithub.com\u002Frileydrakedesign\u002Fwikiforge\u002Fblob\u002Fmain\u002Fskills\u002Fwiki-stats\u002FSKILL.md",[],[78,26,79,80,81,82,83,84,41,37,85,86,36,35,87,88,89,90,29,91],"stats","wiki stats","for","work","read-only","page","work on","only","produce","statistics","log","healthy","type","coverage",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":44},"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",[],[94,99,100,35,36,101,26,102,37,39,103,83,27,104,105,90],"rebuild","disk","index","stale","folder","verify","title"]