[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71F9SSMBC5K4B15VH4Y9KEQ":3,"skill-same:01M71F9SSMBC5K4B15VH4Y9KEQ":71},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M71F9SSMBC5K4B15VH4Y9KEQ","graphify",null,"Use when navigating an unfamiliar codebase, tracing how code connects (callers, dependencies, the blast radius of a change), or whenever the repo ships a graphify-out\u002Fgraph.json knowledge graph. Query the graph before grepping\u002Freading raw source for orientation.","Wizarck\u002Fai-playbook","Wizarck","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F23051550?v=4","01M71B3AAVR67GRWFV5ZXXZP31","arturo6ramirez","01M71F5FHXDSX3G2F52R1YS77J",6,"MIT","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fgraphify\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"code","playbook","codebase","2026","dependencies","json","how","apache","change","knowledge graph","query","when","use","knowledge","blast radius","repo","for","orientation","notice","2026-11-10 10:12:30",false,"---\nname: graphify\ndescription: Use when navigating an unfamiliar codebase, tracing how code connects (callers, dependencies, the blast radius of a change), or whenever the repo ships a graphify-out\u002Fgraph.json knowledge graph. Query the graph before grepping\u002Freading raw source for orientation.\nlicense: MIT\nmetadata:\n  author: ai-playbook\n  wraps: \"Graphify — Apache-2.0, (c) 2026 Safi Shamsi and the Graphify contributors\"\n  notice: ..\u002F..\u002FNOTICE\n  version: \"1.0\"\n---\n\n# graphify — knowledge-graph code navigation\n\ngraphify ([safishamsi\u002Fgraphify](https:\u002F\u002Fgithub.com\u002Fsafishamsi\u002Fgraphify), PyPI `graphifyy`) parses a repo into a structured knowledge graph — nodes are files\u002Ffunctions\u002Fclasses, edges are imports\u002Fcalls\u002Finheritance — plus community clustering and a semantic label layer. Querying the graph returns a small, structurally-precise subgraph instead of a pile of raw file reads, so orientation costs far fewer tokens and round-trips.\n\n## When to use\n\nAct only when `graphify-out\u002Fgraph.json` exists in the repo. Reach for graphify FIRST (before grep\u002Fread) when the task is orientation or structure:\n\n- \"How does \u003Csubsystem> work \u002F where is \u003Cconcern> handled?\"\n- \"Who calls \u002F what depends on \u003Csymbol>?\" — blast radius before a change.\n- \"What is the path between \u003CA> and \u003CB>?\"\n- Onboarding to an unfamiliar area of the repo.\n\nIf `graphify-out\u002Fgraph.json` is absent, graphify is not set up here — fall back to normal search.\n\n## Commands\n\n- `graphify query \"\u003Cquestion>\"` — scoped subgraph for a natural-language question. The default entry point.\n- `graphify explain \"\u003Cconcept>\"` — focused view of one concept\u002Fcommunity.\n- `graphify path \"\u003CA>\" \"\u003CB>\"` — the relationship chain between two symbols.\n- `graphify update .` — re-parse changed files into the graph (AST-only, no API\u002Ftoken cost). Run after editing code so the graph stays fresh.\n- `graphify-out\u002Fwiki\u002Findex.md`, if present, is good for broad navigation.\n- `graphify-out\u002FGRAPH_REPORT.md` — read only for a broad architecture pass when query\u002Fpath\u002Fexplain do not surface enough.\n\n## Discipline\n\n- **Query-first.** On a code-exploration task, run `graphify query` before raw grep\u002Fread. Grep AFTER the graph has oriented you, or to modify\u002Fdebug specific lines.\n- **Pass it down.** Include the query-first instruction in any subagent prompt that explores code.\n- **Update-after-edit.** After changing code, run `graphify update .` so the next session's map is correct. A stale graph misleads.\n\n## When NOT to use\n\n- Editing a file you already know — go straight to it; graphify adds overhead.\n- Prose\u002Fdocument Q&A with no code structure — graphify is structural, not a text-similarity RAG.\n- The graph is stale or absent — regenerate (`graphify update .`) or fall back to grep; never trust a stale map.\n\n## Boundaries\n\n- graphify is a navigation aid, not a source of truth — verify a claim against the actual code before asserting it (the graph can lag the working tree).\n- It complements, not replaces, grep\u002Fread for line-level work.\n\n## Setup\n\nOnce per clone: `uv tool install \"graphifyy>=0.8.31\"` (or pipx) + `graphify hook install`. See [docs\u002Frunbooks\u002Fgraphify-setup.md](..\u002F..\u002Fdocs\u002Frunbooks\u002Fgraphify-setup.md). The `graphify-adoption` rule enforces the gitignore + merge-driver hygiene that keeps the committed graph portable across machines.\n\n## See also\n\n- [docs\u002Fconcepts\u002Fgraphify.md](..\u002F..\u002Fdocs\u002Fconcepts\u002Fgraphify.md) — what the graph is + graphify vs RAG.\n- [docs\u002Frules\u002Fgraphify-adoption.rule.md](..\u002F..\u002Fdocs\u002Frules\u002Fgraphify-adoption.rule.md) — multi-dev portability invariants.\n- [docs\u002Frunbooks\u002Fgraphify-setup.md](..\u002F..\u002Fdocs\u002Frunbooks\u002Fgraphify-setup.md) — install \u002F hook install \u002F troubleshoot.\n","# graphify — knowledge-graph code navigation\n\ngraphify ([safishamsi\u002Fgraphify](https:\u002F\u002Fgithub.com\u002Fsafishamsi\u002Fgraphify), PyPI `graphifyy`) parses a repo into a structured knowledge graph — nodes are files\u002Ffunctions\u002Fclasses, edges are imports\u002Fcalls\u002Finheritance — plus community clustering and a semantic label layer. Querying the graph returns a small, structurally-precise subgraph instead of a pile of raw file reads, so orientation costs far fewer tokens and round-trips.\n\n## When to use\n\nAct only when `graphify-out\u002Fgraph.json` exists in the repo. Reach for graphify FIRST (before grep\u002Fread) when the task is orientation or structure:\n\n- \"How does \u003Csubsystem> work \u002F where is \u003Cconcern> handled?\"\n- \"Who calls \u002F what depends on \u003Csymbol>?\" — blast radius before a change.\n- \"What is the path between \u003CA> and \u003CB>?\"\n- Onboarding to an unfamiliar area of the repo.\n\nIf `graphify-out\u002Fgraph.json` is absent, graphify is not set up here — fall back to normal search.\n\n## Commands\n\n- `graphify query \"\u003Cquestion>\"` — scoped subgraph for a natural-language question. The default entry point.\n- `graphify explain \"\u003Cconcept>\"` — focused view of one concept\u002Fcommunity.\n- `graphify path \"\u003CA>\" \"\u003CB>\"` — the relationship chain between two symbols.\n- `graphify update .` — re-parse changed files into the graph (AST-only, no API\u002Ftoken cost). Run after editing code so the graph stays fresh.\n- `graphify-out\u002Fwiki\u002Findex.md`, if present, is good for broad navigation.\n- `graphify-out\u002FGRAPH_REPORT.md` — read only for a broad architecture pass when query\u002Fpath\u002Fexplain do not surface enough.\n\n## Discipline\n\n- **Query-first.** On a code-exploration task, run `graphify query` before raw grep\u002Fread. Grep AFTER the graph has oriented you, or to modify\u002Fdebug specific lines.\n- **Pass it down.** Include the query-first instruction in any subagent prompt that explores code.\n- **Update-after-edit.** After changing code, run `graphify update .` so the next session's map is correct. A stale graph misleads.\n\n## When NOT to use\n\n- Editing a file you already know — go straight to it; graphify adds overhead.\n- Prose\u002Fdocument Q&A with no code structure — graphify is structural, not a text-similarity RAG.\n- The graph is stale or absent — regenerate (`graphify update .`) or fall back to grep; never trust a stale map.\n\n## Boundaries\n\n- graphify is a navigation aid, not a source of truth — verify a claim against the actual code before asserting it (the graph can lag the working tree).\n- It complements, not replaces, grep\u002Fread for line-level work.\n\n## Setup\n\nOnce per clone: `uv tool install \"graphifyy>=0.8.31\"` (or pipx) + `graphify hook install`. See [docs\u002Frunbooks\u002Fgraphify-setup.md](..\u002F..\u002Fdocs\u002Frunbooks\u002Fgraphify-setup.md). The `graphify-adoption` rule enforces the gitignore + merge-driver hygiene that keeps the committed graph portable across machines.\n\n## See also\n\n- [docs\u002Fconcepts\u002Fgraphify.md](..\u002F..\u002Fdocs\u002Fconcepts\u002Fgraphify.md) — what the graph is + graphify vs RAG.\n- [docs\u002Frules\u002Fgraphify-adoption.rule.md](..\u002F..\u002Fdocs\u002Frules\u002Fgraphify-adoption.rule.md) — multi-dev portability invariants.\n- [docs\u002Frunbooks\u002Fgraphify-setup.md](..\u002F..\u002Fdocs\u002Frunbooks\u002Fgraphify-setup.md) — install \u002F hook install \u002F troubleshoot.\n",{"name":5,"license":15,"metadata":43,"description":7},{"wraps":44,"author":45,"notice":46,"version":47},"Graphify — Apache-2.0, (c) 2026 Safi Shamsi and the Graphify contributors","ai-playbook","..\u002F..\u002FNOTICE","1.0","main","08fe7aa0f06bc1a3f592ec82360e46b854846968","skills\u002Fgraphify",1,"https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook","https:\u002F\u002Fgithub.com\u002FWizarck","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Framirezarturo\u002F","Geek by birth, with not much to say but plenty to talk about.","2026-11-09 19:34:21",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add Wizarck\u002Fai-playbook --skill graphify",{"tool":63,"command":64},"bunx","bunx skills add Wizarck\u002Fai-playbook --skill graphify",{"tool":66,"command":67},"pnpm","pnpm dlx skills add Wizarck\u002Fai-playbook --skill graphify","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fgraphify\u002FSKILL.md",true,[],[72,93,109,133,151,164],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":38},"01M71FATTWS9W3BME3S94SA1QR","sweep","Use when the user wants to find code that has quietly stopped being used — types \u002Fsweep, asks for a \"dead code sweep\", \"repo entropy\", \"what can we delete\", \"orphan files\", \"unused code\", or asks to review a sweep ledger. Adjudicates candidates a deterministic scanner already produced; it never deletes anything and never re-derives findings from raw source. Pairs with ponytail, which gates what gets written rather than what rots.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fsweep\u002FSKILL.md",[],[74,79,80,81,82,83,35,34,84,85,86,87,88,31,30,19,89,90,91,92],"deterministic","which","never","entropy","types","re","ponytail","orphan","files","unused","can","gates","review","candidates",{"skillNo":94,"name":85,"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":38},"01M71FAQKVDA209G7G5NMY9H1E","Use when the user wants the laziest solution that actually works — types \u002Fponytail, says \"be lazy\", \"lazy mode\", \"simplest solution\", \"minimal solution\", \"yagni\", \"do less\", or \"shortest path\", or complains about over-engineering, bloat, boilerplate, or unnecessary dependencies. Supports intensity levels lite, full, ultra (default). Pairs with caveman, which compresses prose, not code.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail\u002FSKILL.md",[],[85,37,99,80,100,83,101,102,103,104,31,30,19,105,106,107,23,22,20,108],"do","lazy","mode","default","minimal","intensity","with","yagni","about","boilerplate",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":120,"publishedAt":38},"01M71FAMS250NKNF1PET9KNBBV","ponytail-review","Use when the user wants a code review focused exclusively on over-engineering — says \"review for over-engineering\", \"what can we delete\", \"is this over-engineered\", \"simplify review\", or invokes \u002Fponytail-review. Complements correctness\u002Fsecurity review; this one only hunts complexity in the current diff. Gated by the ponytail review_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-review\u002FSKILL.md",[115],{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[121,85,91,122,123,35,124,125,31,30,126,127,19,128,89,129,130,131,132,20],"ponytail review","complexity","diff","code review","only","simplify","correctness","one","delete","component","security review","gated",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":38},"01M71FAG53ZPCSWE272P6S9JFN","ponytail-debt","Use when the user wants to harvest every `ponytail:` comment in the codebase into a tracked debt ledger — says \"ponytail debt\", \"\u002Fponytail-debt\", \"what did ponytail defer\", \"list the shortcuts\", \"ponytail ledger\", or \"what did we mark to do later\". One-shot report, changes nothing. Gated by the ponytail debt_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-debt\u002FSKILL.md",[],[140,85,141,142,99,143,144,130,145,146,132,147,21,20,148,149,31,30,150,128],"ponytail debt","debt","shortcuts","mark","to do","changes","later","report","harvest","list","ledger",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":38},"01M71FACJW88WCS2JGX3MQ3KV9","ponytail-audit","Use when the user wants a whole-repo audit for over-engineering — says \"audit this codebase\", \"audit for over-engineering\", \"what can I delete from this repo\", \"find bloat\", or invokes \u002Fponytail-audit. Like ponytail-review but scans the entire tree, not a diff. One-shot report, applies no fixes. Gated by the ponytail audit_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-audit\u002FSKILL.md",[],[158,85,159,160,123,161,35,34,31,30,162,128,89,91,129,130,132,163,147,21],"ponytail audit","audit","tree","fixes","entire","find",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":38},"01M71FA9THHXDX79PQTJ9CZX9E","openspec-propose","Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[171,172,105,173,174,27,175,176,177,35,178,179,180,181,182,183,31,30,184,185],"openspec","openspec propose","ready","proposal","cli","get","build","complete","design","new","implementation","generated","describe","artifacts","tasks"]