[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M718880EMSHEXDM1KNAQ0R3H":3,"skill-same:01M718880EMSHEXDM1KNAQ0R3H":57},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":27,"linkOnly":28,"markdownContent":29,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":13,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":36,"install":37,"resources":50},"01M718880EMSHEXDM1KNAQ0R3H","code-relationship-mapper",null,"sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fcode-relationship-mapper\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[23,24,25,26],"code","relationship","mapper","code relationship mapper","2026-11-10 10:12:30",false,"# code-relationship-mapper\n\n## Purpose\n\nCreate a complete, agent-friendly understanding of a selected code project by:\n\n1. Reading all source code files in scope.\n2. Mapping relationships between modules, classes, functions, and data flow.\n3. Producing layered Markdown documentation.\n4. Capturing function-level call and return behavior for every function in scope.\n\n## When To Use\n\nUse this skill when user asks for:\n\n- full codebase analysis\n- code relationship mapping\n- call graph and dependency graph\n- architecture understanding docs\n- function-level caller\u002Fcallee\u002Freturn tracing\n\n## Required Outcomes\n\nThis skill MUST produce documentation that is:\n\n- complete for the selected scope\n- precise down to each function's calls and returns\n- structured for fast agent reading\n- linkable with stable IDs and relative links\n\n## Scope Rules\n\nBefore analysis, define scope explicitly:\n\n- `project_root`: root folder to analyze\n- `include_patterns`: source file globs\n- `exclude_patterns`: vendor\u002Fbuild\u002Fcache\u002Fgenerated paths\n- `language_set`: detected or user-specified languages\n\nIf user does not specify, default include:\n\n- `**\u002F*.py`, `**\u002F*.js`, `**\u002F*.ts`, `**\u002F*.tsx`, `**\u002F*.jsx`, `**\u002F*.java`, `**\u002F*.go`, `**\u002F*.rs`, `**\u002F*.cs`, `**\u002F*.cpp`, `**\u002F*.c`, `**\u002F*.h`, `**\u002F*.hpp`, `**\u002F*.php`, `**\u002F*.rb`, `**\u002F*.swift`, `**\u002F*.kt`\n\nDefault exclude:\n\n- `**\u002Fnode_modules\u002F**`, `**\u002F.git\u002F**`, `**\u002Fdist\u002F**`, `**\u002Fbuild\u002F**`, `**\u002Fout\u002F**`, `**\u002F.next\u002F**`, `**\u002Ftarget\u002F**`, `**\u002F__pycache__\u002F**`, `**\u002Fcoverage\u002F**`, `**\u002Fvendor\u002F**`, `**\u002F*.min.*`\n\n## Output Location\n\nWrite documentation to:\n\n- `docs\u002Fcode-map\u002F`\n\nIf folder does not exist, create it.\n\n## Output Files (Layered)\n\nGenerate these files in order:\n\n1. `docs\u002Fcode-map\u002F00-overview.md`\n2. `docs\u002Fcode-map\u002F01-module-map.md`\n3. `docs\u002Fcode-map\u002F02-dependency-map.md`\n4. `docs\u002Fcode-map\u002F03-call-graph.md`\n5. `docs\u002Fcode-map\u002F04-function-index.md`\n6. `docs\u002Fcode-map\u002F05-dataflow-return-map.md`\n7. `docs\u002Fcode-map\u002F06-entrypoints-and-routes.md`\n8. `docs\u002Fcode-map\u002F07-external-interfaces.md`\n9. `docs\u002Fcode-map\u002F08-hotspots-and-risks.md`\n10. `docs\u002Fcode-map\u002F99-glossary-and-ids.md`\n\nWhen codebase is large, add per-module detail pages:\n\n- `docs\u002Fcode-map\u002Fmodules\u002F\u003Cmodule-id>.md`\n\n## Function-Level Precision Standard\n\nFor EACH function\u002Fmethod in scope, capture:\n\n- stable function ID\n- file path and line\n- signature (name, params, return annotation if present)\n- direct callers (internal)\n- direct callees (internal)\n- external\u002Flibrary calls (grouped)\n- return behavior:\n  - return type annotation or inferred shape\n  - all distinct return paths\n  - sentinel returns (`null`, `None`, error objects, empty collections)\n- side effects (I\u002FO, DB, network, file write, global state)\n- error behavior (throws\u002Fraises\u002Freturns error)\n- async\u002Fconcurrency behavior\n\nIf exact return type cannot be proven, mark as:\n\n- `unknown (static inference limited)`\n\nDo not fabricate.\n\n## Markdown Format Contract\n\nUse compact, scan-friendly Markdown with strict structure.\n\n### A. Header Block\n\nEvery file starts with:\n\n```md\n# \u003Ctitle>\n\nGenerated: \u003CISO datetime>\nScope: \u003Cshort scope>\nConfidence: \u003Chigh|medium|low>\n```\n\n### B. Stable IDs\n\nUse IDs:\n\n- module: `M-\u003Cslug>`\n- class: `C-\u003Cslug>`\n- function: `F-\u003Cslug>`\n\nKeep IDs stable across reruns unless path\u002Fname changes.\n\n### C. Function Record Template\n\nUse this exact block shape in `04-function-index.md` and module pages:\n\n```md\n## F-\u003Cslug> `\u003Cfunction_name>`\n\n- Location: `\u003Cpath>:\u003Cline>`\n- Parent: `\u003Cmodule-or-class-id>`\n- Signature: `\u003Craw signature>`\n- Calls: `F-...`, `F-...`\n- Called by: `F-...`, `F-...`\n- External calls: `\u003Clib.fn>`, `\u003Clib.fn>`\n- Returns:\n  - Path A: `\u003Ccondition>` -> `\u003Cvalue\u002Ftype>`\n  - Path B: `\u003Ccondition>` -> `\u003Cvalue\u002Ftype>`\n- Side effects: `\u003Cnone|list>`\n- Errors: `\u003Cnone|throws\u002Fraises\u002Freturns error>`\n- Async: `\u003Csync|async|mixed>`\n- Notes: `\u003Cbrief fact only>`\n```\n\n### D. Call Graph Tables\n\nIn `03-call-graph.md`, include:\n\n- top-down call chains from entrypoints\n- fan-in\u002Ffan-out table\n- cycles (if any)\n\nTable format:\n\n```md\n| Function ID | Fan-in | Fan-out | Layer | Notes |\n|---|---:|---:|---|---|\n```\n\n### E. Return Map\n\nIn `05-dataflow-return-map.md`, include:\n\n- function -> return type\u002Fshape summary table\n- uncertain inferences grouped separately\n- error\u002Fexception return channels\n\n## Execution Workflow\n\n1. **Inventory**\n   - enumerate files in scope\n   - group by module\u002Fpackage\n2. **Symbol extraction**\n   - collect classes\u002Ffunctions\u002Fmethods\u002Fsignatures\n3. **Relationship extraction**\n   - imports and dependencies\n   - caller\u002Fcallee graph\n4. **Return-path analysis**\n   - enumerate return statements and conditions\n5. **Entrypoint analysis**\n   - CLI, HTTP routes, main functions, workers, schedulers\n6. **Markdown generation**\n   - write required files with stable IDs and links\n7. **Consistency pass**\n   - verify each referenced ID exists\n   - verify each function appears at least once in index\n\n## Quality Gates\n\nBefore finalizing, MUST verify:\n\n- `function_coverage == 100%` for in-scope functions\n- all `Calls` and `Called by` IDs resolve\n- all files have generated timestamp and confidence\n- no broken relative links\n- unknown items explicitly marked (not omitted)\n\nIf any gate fails, fix and regenerate affected files.\n\n## Fast-Read Optimizations For Agents\n\nAlways optimize for machine + human scan:\n\n- short bullets\n- consistent field order\n- no narrative padding\n- no duplicated long prose\n- prefer tables and ID links for traversal\n- keep each function block concise\n\n## Non-Goals\n\n- no runtime profiling unless user requests\n- no code changes unless user requests\n- no speculative behavior claims without evidence\n\n## Minimal Command Checklist\n\nWhen executing this skill, follow this checklist:\n\n1. detect scope\n2. build symbol map\n3. build dependency map\n4. build call graph\n5. build return map\n6. write layered Markdown docs\n7. run consistency gates\n8. report completion with file list and coverage stats\n",{},"main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fglobal\u002Fcode-relationship-mapper","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":7,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill code-relationship-mapper",{"tool":43,"command":44},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill code-relationship-mapper",{"tool":46,"command":47},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill code-relationship-mapper","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fcode-relationship-mapper\u002FSKILL.md",true,[51],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"README.md","REFERENCE","参考文档",1375,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fcode-relationship-mapper\u002FREADME.md",[58,80,106,116,129,148],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":67,"publishedAt":27},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[64],{"categoryNo":65,"categoryName":66,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000037","律师与法务",[68,69,70,71,72,73,74,75,76,77,78,79],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":27},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[87,88,89,90,91,92,70,93,94,95,96,97,98,99,100,101,102,103,104,105],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":27},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[113,114,87,98,99,100,101,91,70,103,115,104,105,97,95,94,93,102,92,90],"trend radar","radar","pulse",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":27},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[123,124,125,126,127,128],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":140,"publishedAt":27},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[135],{"categoryNo":136,"categoryName":137,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[131,76,141,142,143,79,98,144,145,146,89,147,102],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":27},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[150,155,156,157,102,158,145,159,160,161,162,163],"status","play","go","latest","github","discover","control","cmd","volume"]