[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0T0E5MZX188E17B8M8Z8W":3,"skill-same:01M6C0T0E5MZX188E17B8M8Z8W":118},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":14,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M6C0T0E5MZX188E17B8M8Z8W","graphify",null,"Build\u002Fquery a navigable knowledge graph of a codebase. Use when onboarding to an unfamiliar codebase, answering cross-module how-does-X-relate-to-Y, or tracing dependencies before a refactor.","matheusnorjosa\u002Faprender_sistema","matheusnorjosa","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F117673804?v=4","01M6C0S19FG12BDFBTRWY9TTEQ","Matheus Norjosa","01M6C0S1DF0YB17TKGEYC70GSP",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgraphify\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32],"onboarding","graph","knowledge graph","tracing","refactor","how","knowledge","use","build","query","dependencies","module","codebase","when","2026-11-10 10:12:30",false,"---\nname: graphify\ndescription: \"Build\u002Fquery a navigable knowledge graph of a codebase. Use when onboarding to an unfamiliar codebase, answering cross-module how-does-X-relate-to-Y, or tracing dependencies before a refactor.\"\ntrigger: \u002Fgraphify\n---\n\n# \u002Fgraphify\n\nTurn any folder of files into a navigable knowledge graph with community detection, an honest audit\ntrail, and three outputs: interactive HTML, GraphRAG-ready JSON, and a plain-language GRAPH_REPORT.md.\n\nThree things it does that Claude alone cannot:\n1. **Persistent graph** — relationships are stored in `graphify-out\u002Fgraph.json` and survive across sessions. Ask questions weeks later without re-reading everything.\n2. **Honest audit trail** — every edge is tagged EXTRACTED, INFERRED, or AMBIGUOUS. You know what was found vs invented.\n3. **Cross-document surprise** — community detection finds connections between concepts in different files you would never think to ask about directly.\n\n## Command surface\n\n```\n\u002Fgraphify [\u003Cpath>|\u003Cgithub-url> ...]   # build a graph (default path: current directory)\n\u002Fgraphify query \"\u003Cquestion>\"          # traverse the graph for an answer (--dfs, --budget N)\n\u002Fgraphify path \"A\" \"B\"                # shortest path between two concepts\n\u002Fgraphify explain \"Concept\"           # plain-language explanation of one node\n\u002Fgraphify add \u003Curl>                   # fetch a URL into .\u002Fraw, then update the graph\n```\n\nBuild flags (combine freely): `--mode deep`, `--update`, `--directed`, `--cluster-only`, `--no-viz`,\n`--svg`, `--graphml`, `--neo4j[-push \u003Curi>]`, `--mcp`, `--watch`, `--wiki`, `--obsidian[-dir \u003Cpath>]`,\n`--branch \u003Cb>`, `--whisper-model \u003Cname>`. Multiple URLs build each repo and merge into one cross-repo\ngraph.\n\n## Route by command\n\nPick the matching reference, then follow its steps in order. Do not skip steps.\n\n- **Building a graph** (any `\u002Fgraphify \u003Cpath>` or `\u003Cgithub-url>`, with or without build flags) →\n  `reference\u002Fbuild-pipeline.md` (Steps 0–9: clone, install, detect, transcribe, extract, build,\n  cluster, label, export, report).\n- **Querying an existing graph** (`query`, `path`, `explain`) → `reference\u002Fquery-and-navigate.md`.\n- **Keeping a graph current** (`--update`, `--cluster-only`, `add`, `--watch`, git hook, CLAUDE.md\n  integration) → `reference\u002Fupdate-and-maintain.md`.\n\nThe interpreter resolved in build Step 1 is written to `graphify-out\u002F.graphify_python`; every later\nbash block uses `$(cat graphify-out\u002F.graphify_python)` instead of `python3`. Query and maintenance\nsubcommands re-resolve it first if `graphify-out\u002F` was deleted (guard in the reference files).\n\n## Honesty Rules (apply to every branch)\n\n- Never invent an edge. If unsure, use AMBIGUOUS.\n- Never skip the corpus-size check warning (Step 2: >2M words or >200 files).\n- Always show token cost in the report.\n- Never hide cohesion scores behind symbols — show the raw number.\n- Never run HTML viz on a graph with more than 5,000 nodes without warning the user.\n","# \u002Fgraphify\n\nTurn any folder of files into a navigable knowledge graph with community detection, an honest audit\ntrail, and three outputs: interactive HTML, GraphRAG-ready JSON, and a plain-language GRAPH_REPORT.md.\n\nThree things it does that Claude alone cannot:\n1. **Persistent graph** — relationships are stored in `graphify-out\u002Fgraph.json` and survive across sessions. Ask questions weeks later without re-reading everything.\n2. **Honest audit trail** — every edge is tagged EXTRACTED, INFERRED, or AMBIGUOUS. You know what was found vs invented.\n3. **Cross-document surprise** — community detection finds connections between concepts in different files you would never think to ask about directly.\n\n## Command surface\n\n```\n\u002Fgraphify [\u003Cpath>|\u003Cgithub-url> ...]   # build a graph (default path: current directory)\n\u002Fgraphify query \"\u003Cquestion>\"          # traverse the graph for an answer (--dfs, --budget N)\n\u002Fgraphify path \"A\" \"B\"                # shortest path between two concepts\n\u002Fgraphify explain \"Concept\"           # plain-language explanation of one node\n\u002Fgraphify add \u003Curl>                   # fetch a URL into .\u002Fraw, then update the graph\n```\n\nBuild flags (combine freely): `--mode deep`, `--update`, `--directed`, `--cluster-only`, `--no-viz`,\n`--svg`, `--graphml`, `--neo4j[-push \u003Curi>]`, `--mcp`, `--watch`, `--wiki`, `--obsidian[-dir \u003Cpath>]`,\n`--branch \u003Cb>`, `--whisper-model \u003Cname>`. Multiple URLs build each repo and merge into one cross-repo\ngraph.\n\n## Route by command\n\nPick the matching reference, then follow its steps in order. Do not skip steps.\n\n- **Building a graph** (any `\u002Fgraphify \u003Cpath>` or `\u003Cgithub-url>`, with or without build flags) →\n  `reference\u002Fbuild-pipeline.md` (Steps 0–9: clone, install, detect, transcribe, extract, build,\n  cluster, label, export, report).\n- **Querying an existing graph** (`query`, `path`, `explain`) → `reference\u002Fquery-and-navigate.md`.\n- **Keeping a graph current** (`--update`, `--cluster-only`, `add`, `--watch`, git hook, CLAUDE.md\n  integration) → `reference\u002Fupdate-and-maintain.md`.\n\nThe interpreter resolved in build Step 1 is written to `graphify-out\u002F.graphify_python`; every later\nbash block uses `$(cat graphify-out\u002F.graphify_python)` instead of `python3`. Query and maintenance\nsubcommands re-resolve it first if `graphify-out\u002F` was deleted (guard in the reference files).\n\n## Honesty Rules (apply to every branch)\n\n- Never invent an edge. If unsure, use AMBIGUOUS.\n- Never skip the corpus-size check warning (Step 2: >2M words or >200 files).\n- Always show token cost in the report.\n- Never hide cohesion scores behind symbols — show the raw number.\n- Never run HTML viz on a graph with more than 5,000 nodes without warning the user.\n",{"name":5,"trigger":38,"description":7},"\u002Fgraphify","main","9e3a882d83e0853bdc570ae9d89c02d2a53bed82",".agents\u002Fskills\u002Fgraphify","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa","Dev Python | IA | Automation | HTML | CSS | Data | Process | Projects","2026-11-14 02:36:38",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add matheusnorjosa\u002Faprender_sistema --skill graphify",{"tool":52,"command":53},"bunx","bunx skills add matheusnorjosa\u002Faprender_sistema --skill graphify",{"tool":55,"command":56},"pnpm","pnpm dlx skills add matheusnorjosa\u002Faprender_sistema --skill graphify","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgraphify\u002FSKILL.md",true,[60,66,70,74,78,82,86,90,94,98,102,106,110,114],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"backfill-docs-prompt.md","REFERENCE","参考文档",6830,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fbackfill-docs-prompt.md",{"path":67,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":68,"sourceHtmlUrl":69},"batch-mode.md",1642,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fbatch-mode.md",{"path":71,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":72,"sourceHtmlUrl":73},"bugfix-agent-prompt.md",33,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fbugfix-agent-prompt.md",{"path":75,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":76,"sourceHtmlUrl":77},"build-agent-prompt.md",3222,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fbuild-agent-prompt.md",{"path":79,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":80,"sourceHtmlUrl":81},"coverage-gate-prompt.md",34,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fcoverage-gate-prompt.md",{"path":83,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":84,"sourceHtmlUrl":85},"doc-update-prompt.md",31,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fdoc-update-prompt.md",{"path":87,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":88,"sourceHtmlUrl":89},"e2e-gate-prompt.md",2103,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fe2e-gate-prompt.md",{"path":91,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":92,"sourceHtmlUrl":93},"investigation-agent-prompt.md",2675,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Finvestigation-agent-prompt.md",{"path":95,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":96,"sourceHtmlUrl":97},"merge-agent-prompt.md",2377,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fmerge-agent-prompt.md",{"path":99,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":100,"sourceHtmlUrl":101},"reference\u002Fbuild-pipeline.md",37324,"https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgraphify\u002Freference\u002Fbuild-pipeline.md",{"path":103,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":104,"sourceHtmlUrl":105},"reference\u002Fquery-and-navigate.md",9000,"https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgraphify\u002Freference\u002Fquery-and-navigate.md",{"path":107,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":108,"sourceHtmlUrl":109},"reference\u002Fupdate-and-maintain.md",9963,"https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgraphify\u002Freference\u002Fupdate-and-maintain.md",{"path":111,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":112,"sourceHtmlUrl":113},"review-gate-prompt.md",3431,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Freview-gate-prompt.md",{"path":115,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":116,"sourceHtmlUrl":117},"summary-prompt.md",1471,"https:\u002F\u002Fgithub.com\u002Ffxmartin\u002Fclaude-code-config\u002Fblob\u002Fmain\u002Fplugins\u002Fautonomous-sdlc\u002Fskills\u002Ffix-issue\u002Fsummary-prompt.md",[119,157,180,202,214,246],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":135,"publishedAt":33},"01M6C0WHSP7S2QMJGGMQRXJ6PD","writing-standards","Apply AS v2 technical-writing standards (clarity, brevity, active voice, Python\u002FDjango conventions). Use when writing a README, a docstring (PEP 257), a commit message, a PR description, an error message, or any technical doc.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwriting-standards\u002FSKILL.md",[125,130],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":131,"categoryName":132,"taxonomyType":133,"taxonomyTypeDesc":134},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,32],"writing","writing standards","standards","python","commit","pr","pr description","commit message","doc","voice","clarity","django","technical","README","message","active","as","error","technical-writing","brevity","docstring",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":33},"01M6C0WG2SBP9PJG1YQFGGVJAR","verification-gate","Verify before claiming success. Use when about to say something works\u002Fis done, after implementing a feature, after a bugfix, or before pushing — run the proof command and confirm output first.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fverification-gate\u002FSKILL.md",[],[164,165,166,167,168,169,170,26,171,172,173,174,175,176,177,178,179,32],"verification","verification gate","gate","run","first","verify","command","verify before claiming","say","done","feature","proof","bugfix","output","about","implementing",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":189,"publishedAt":33},"01M6C0WE010G12KH45YZW6M7K5","test-driven-development","Write the failing test before the implementation in AS v2 (pytest + Django\u002FDRF). Use when implementing a feature or fixing a bug, before any production code is written.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[186],{"categoryNo":187,"categoryName":188,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000008","测试与质量",[190,191,192,193,194,195,147,196,26,197,198,199,174,152,200,179,32,201],"test","test driven development","development","driven","code","Production","write","bug","implementation","pytest","drf","failing",{"skillNo":203,"name":204,"nameZh":6,"description":205,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":206,"categories":207,"keywords":208,"publishedAt":33},"01M6C0WC6Y81XRVBJQSTKA96XQ","subagent-development","Orquestra subagents no AS v2 — decompõe a tarefa em domínios independentes, paraleliza e revisa em 2 estágios. Use ao delegar exploração, implementação ou validação cross-arquivo para acelerar o trabalho e poupar o contexto principal.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsubagent-development\u002FSKILL.md",[],[192,209,210,211,212,26,213,152],"subagent","subagent development","para","subagents","ao",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":220,"publishedAt":33},"01M6C0W9W8D6JJWXW28Q7ZHAC9","security-scan","Automated security scanning for AS v2. Use before commits or when reviewing changes for vulnerabilities. Runs dependency audit (pip-audit, npm audit), secret detection (grep patterns), and code pattern scanning (SQL injection, XSS, eval, pickle, hardcoded secrets). Integrates with project hooks system.","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsecurity-scan\u002FSKILL.md",[],[221,222,223,224,225,194,226,227,228,229,230,231,232,233,234,235,236,237,26,238,239,240,152,241,242,243,244,245,32],"security","security scan","scan","vulnerabilities","sql","npm","audit","dependency audit","detection","injection","xss","secrets","pip-audit","commits","system","grep","eval","hooks","security scanning","project","with","true","pip","for","changes",{"skillNo":247,"name":248,"nameZh":6,"description":249,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":250,"categories":251,"keywords":255,"publishedAt":33},"01M6C0W7RE3G3C2852YXQKR5J9","resume-handoff","Resume work from a saved handoff document, validating its state against the current codebase before continuing. Use when resuming work from a saved handoff after a context clear or in a new session (path, session name, or GitHub issue).","https:\u002F\u002Fgithub.com\u002Fmatheusnorjosa\u002Faprender_sistema\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fresume-handoff\u002FSKILL.md",[252],{"categoryNo":253,"categoryName":254,"taxonomyType":133,"taxonomyTypeDesc":134},"01JBSEEDCAT000000000000038","人力资源",[256,257,258,259,260,261,262,263,264,26,265,266,267,268,269,270,31,271,32,272],"handoff","resume handoff","resume","github","state","new session","work","context","session","github issue","issue","document","clear","name","saved","resuming","new"]