{"id":"d0d28d97-c08e-4f26-8e3a-cc49e14afe6b","shortId":"cVfK4X","kind":"skill","title":"nexus-mapper","tagline":"Generate a persistent .nexus-map/ knowledge base that lets any AI session instantly understand a codebase's architecture, systems, dependencies, and change hotspots. Use when starting work on an unfamiliar repository, onboarding with AI-assisted context, preparing for a major ref","description":"# nexus-mapper — AI 项目探测协议\n\n本 Skill 指导 AI Agent 使用 **PROBE 五阶段协议**，对任意本地 Git 仓库执行系统性探测，产出 `.nexus-map/` 分层知识库。\n\n---\n\n## 何时调用 / 何时不调用\n\n| 场景                                                                | 调用  |\n| ------------------------------------------------------------------- | :---: |\n| 用户提供本地 repo 路径，希望 AI 理解其架构                          |  是   |\n| 需要生成 `.nexus-map/INDEX.md` 供后续 AI 会话冷启动                 |  是   |\n| 用户说「帮我分析项目」「建立项目知识库」「让 AI 了解这个仓库」      |  是   |\n| 运行环境无 shell 执行能力（纯 API 调用模式，无 `run_command` 工具） |  否   |\n| 宿主机无本地 Python 3.10+                                           |  否   |\n| 目标仓库无任何已知语言源文件（`.py/.ts/.java/.go/.rs/.cpp` 等均无） |  否   |\n| 用户只想查询某个特定文件/函数 → 直接用 `view_file` / `grep_search`  |  否   |\n\n---\n\n## 前提检查\n\n缺失项要显式告知用户；需要降级等时及时提醒用户，经过同意才能继续。\n\n| 前提              | 检查方式                                |\n| ----------------- | --------------------------------------- |\n| 目标路径存在      | `$repo_path` 可访问                     |\n| Python 3.10+      | `python --version` >= 3.10              |\n| 脚本依赖已安装    | `python -c \"import tree_sitter\"` 无报错 |\n| 有 shell 执行能力 | Agent 环境支持 `run_command` 工具调用   |\n\n`git` 历史是加分项，不是硬阻塞项。没有 `.git` 或历史过少时，跳过热点分析，并在输出中明确记录这是一次降级探测。\n\n---\n\n## 输入契约\n\n```\nrepo_path: 目标仓库的本地绝对路径（必填）\n```\n\n**语言支持**：自动按文件扩展名 dispatch，语言配置（扩展名映射 + Tree-sitter 查询）存储在 `scripts/languages.json`。当前已接入 Python/JavaScript/TypeScript/TSX/Bash/Java/Go/Rust/C#/C/C++/Kotlin/Ruby/Swift/Scala/PHP/Lua/Elixir/GDScript/Dart/Haskell/Clojure/SQL/Proto/Solidity/Vue/Svelte/R/Perl 等 30+ 语言。\n\n**非标准语言**：若仓库含有内置未支持的语言，通过命令行参数动态补充（详见 `references/05-language-customization.md`）：\n- `--add-extension .templ=templ` 添加新文件扩展名映射\n- `--add-query templ struct \"(component_declaration ...)\"` 添加结构查询\n- `--language-config <JSON_FILE>` 复杂配置时使用 JSON 文件\n\n**扫描过滤**：AST 提取与 `raw/file_tree.txt` 生成共享同一套过滤规则：\n- `--exclude-dirs django_static,.go_root` 按目录名或仓库相对路径忽略杂物目录\n- `--use-gitignore` 启用 `<repo_path>/.gitignore` 规则（默认开启），忽略其中声明的文件和目录\n- `--no-gitignore` 不应用 `.gitignore` 规则；此时仍会保留内置排除项和 `--exclude-dirs`\n\n---\n\n## 输出格式\n\n执行完成后，目标仓库根目录下将产出：\n\n```text\n.nexus-map/\n├── INDEX.md                    ← AI 冷启动主入口（< 2000 tokens）\n├── arch/\n│   ├── systems.md              ← 系统边界 + 代码位置\n│   ├── dependencies.md         ← Mermaid 依赖图 + 时序图\n│   └── test_coverage.md        ← 静态测试面：测试文件、覆盖到的核心模块、证据缺口\n├── concepts/\n│   ├── concept_model.json      ← Schema V1 机器可读图谱\n│   └── domains.md              ← 核心领域概念说明\n├── hotspots/\n│   └── git_forensics.md        ← Git 热点 + 耦合对分析\n└── raw/\n    ├── ast_nodes.json          ← Tree-sitter 解析原始数据\n    ├── git_stats.json          ← Git 热点与耦合数据\n    └── file_tree.txt           ← 过滤后的文件树\n```\n\n所有生成的 Markdown 文件必须带一个简短头部，至少包含：`generated_by`、`verified_at`、`provenance`。\n\n`concept_model.json` 的人类可读名称字段统一使用 `label`，不要添加 `title`。\n\n如果 PROFILE 阶段发现语言覆盖降级或人工推断，`provenance` 必须明确标注。\n\n---\n\n## PROBE 阶段门控\n\n> [!IMPORTANT]\n> **进入每个阶段前必须先读对应 reference，不得跳过。**\n> 各阶段详细步骤、完成检查清单与边界场景处理均在 reference 中定义。\n\n```\n[Skill 激活时]     → read references/probe-protocol.md  （阶段步骤蓝图，含边界场景与三维度质疑框架）\n[EMIT 前]          → read references/output-schema.md    （Schema 校验规范）\n[非标准语言时]     → read references/language-customization.md（按需，非门控）\n```\n\n---\n\n## 执行守则\n\n### 守则1: OBJECT 拒绝形式主义\n\nOBJECT 的存在意义是打破 REASON 的幸存者偏差。大量工程事实隐藏在目录命名和 git 热点背后，第一直觉几乎总是错的。\n\n不合格质疑（禁止提交）：\n```\nQ1: 我对系统结构的把握还不够扎实\nQ2: xxx 目录的职责暂时没有直接证据\n```\n问题不在措辞，而在于没有证据线索，也无法在 BENCHMARK 阶段验证。\n\n合格质疑格式：\n```\nQ1: git_stats 显示 tasks/analysis_tasks.py 变更 21 次（high risk），\n    但 HYPOTHESIS 认为编排入口是 evolution/detective_loop.py。\n    矛盾：若 detective_loop 是入口，为何 analysis_tasks 热度更高？\n    证据线索: git_stats.json hotspots[0].path\n    验证计划: view tasks/analysis_tasks.py 的 class 定义 + import 树\n```\n\n---\n\n### 守则2: implemented 节点必须有真实 code_path\n\n> [!IMPORTANT]\n> 写入 `concept_model.json` 前，必须先区分节点是 `implemented`、`planned` 还是 `inferred`。\n> 只有 `implemented` 节点允许写入 `code_path`，且必须亲手验证存在。\n\n```bash\n# BENCHMARK 阶段验证方式\nls $repo_path/src/nexus/application/weaving/   # 目录存在 → 节点有效\nls $repo_path/src/nexus/application/nonexist/  # [!ERROR] → 修正或删除此节点\n```\n\n对于 `planned` 或 `inferred` 节点，使用：\n\n```json\n{\n  \"implementation_status\": \"planned\",\n  \"code_path\": null,\n  \"evidence_path\": \"docs/architecture.md\",\n  \"evidence_gap\": \"仓库中未发现 src/agents/monarch/，仅在设计文档中出现\"\n}\n```\n\n禁止：用勉强相关的文件冒充 `code_path`、把状态塞进路径字段（如 `code_path: \"PLANNED\"`）。\n\n---\n\n### 守则3: EMIT 原子性\n\n先全部写入 `.nexus-map/.tmp/`，全部成功后整体移动到正式目录，删除 `.tmp/`。\n目的：中途失败不留半成品。下次执行检测到 `.tmp/` 存在 → 清理后重新生成。\n\n幂等性规则：\n\n| 状态                                 | 处理方式                                   |\n| ------------------------------------ | ------------------------------------------ |\n| `.nexus-map/` 不存在                 | 直接继续                                   |\n| `.nexus-map/` 存在且 `INDEX.md` 有效 | 询问用户：「是否覆盖？[y/n]」              |\n| `.nexus-map/` 存在但文件不完整       | 「检测到未完成分析，将重新生成」，直接继续 |\n\n---\n\n### 守则4: INDEX.md 的角色——冷启动路由器，而非静态字典\n\n`INDEX.md` 的读者是**从未见过这个仓库的 AI**。两个硬约束：\n- **< 2000 tokens** — 超过就重写，不是截断\n- **结论必须具体** — 证据不足时明确写出 `evidence gap` 或 `unknown`，并说明缺了什么证据\n\n写完后执行 token 估算：行数 × 平均 30 tokens/行 = 粗估值。\n\n**INDEX.md 必须包含的强制路由块（Hard-Trigger Block）**——生成时把这段结构写入文件末尾：\n\n```markdown\n## [操作指南] 强制执行步骤\n\n> 本节是对所有读取本文件的 AI 发出的硬性操作指令，不是建议。\n\n### 步骤1 — 必须先读完以下所有文件（顺序不限）\n\n读完本文件后，在执行任何任务之前，必须依次 read 以下文件完整内容：\n\n- `.nexus-map/arch/systems.md` — 系统边界与代码位置\n- `.nexus-map/arch/dependencies.md` — 系统间依赖关系与 Mermaid 图\n- `.nexus-map/arch/test_coverage.md` — 测试面与证据缺口\n- `.nexus-map/hotspots/git_forensics.md` — Git 热点与耦合风险\n- `.nexus-map/concepts/domains.md` — 核心领域概念\n\n> 这些文件均为高密度摘要，总量通常 < 5000 tokens，是必要的上下文成本。\n> 不得以\"任务简单\"或\"只改一个文件\"为由跳过。\n\n### 步骤2 — 按任务类型追加操作（步骤1 完成后执行）\n\n- 若任务涉及**接口修改、新增跨模块调用、删除/重命名公共函数**：\n  → 必须运行 `query_graph.py --impact <目标文件>` 确认影响半径后再写代码。\n- 若任务需要**判断某文件被谁引用**：\n  → 运行 `query_graph.py --who-imports <模块名>`。\n- 若仓库结构已发生重大变化（新增系统、重构模块边界）：\n  → 任务完成后评估是否需要重新运行 nexus-mapper 更新知识库。\n```\n\n---\n\n### 守则5: 最小执行面与敏感信息保护\n\n> [!IMPORTANT]\n> 默认只运行本 Skill 自带脚本和必要的只读检查。不要因为\"想更懂仓库\"就执行目标仓库里的构建脚本、测试脚本或自定义命令。\n\n- 默认允许：`extract_ast.py`、`git_detective.py`、目录遍历、文本搜索、只读文件查看\n- 默认禁止：执行目标仓库的 `npm install`、`pnpm dev`、`python main.py`、`docker compose up` 等，除非用户明确要求\n- 遇到 `.env`、密钥文件、凭据配置时：只记录其存在和用途，不抄出具体值\n\n---\n\n### 守则6: 降级与人工推断必须显式可见\n\n> [!IMPORTANT]\n> 如果 AST 覆盖不完整，或者某部分来自人工阅读而非脚本产出，必须在最终文件中显式标注 provenance。\n\n- `dependencies.md` 中凡是非 AST 直接支持的依赖关系，必须标注 `inferred from file tree/manual inspection`\n- `domains.md`、`systems.md`、`INDEX.md` 如果涉及未支持语言区域，必须说明 `unsupported language downgrade`\n- 若写入进度快照、Sprint 状态，必须附 `verified_at`，避免过期信息伪装成当前事实\n\n---\n\n## 不确定性表达规范\n\n避免只写：待确认 · 可能是 · 疑似 · 也许 · 待定 · 暂不清楚 · pending · maybe · possibly · TBD\n\n如果证据不足，按以下格式写：\n- `unknown: 未发现直接证据表明 api/ 是主入口，当前仅能确认 cli.py 被 README 引用`\n- `evidence gap: 仓库没有 git 历史，因此 hotspots 部分跳过`\n\n允许诚实地写不确定，但必须解释不确定来自哪一条缺失证据。\n\n---\n\n## 脚本工具链\n\n```bash\n# 设置 SKILL_DIR（根据实际安装路径）\n# 场景 A: 作为 .agent/skills 安装\nSKILL_DIR=\".agent/skills/nexus-mapper\"\n# 场景 B: 独立 repo（开发/调试时）\nSKILL_DIR=\"/path/to/nexus-mapper\"\n\n# PROFILE 阶段 — 基础用法\npython $SKILL_DIR/scripts/extract_ast.py <repo_path> [--max-nodes 500] \\\n  --file-tree-out <repo_path>/.nexus-map/raw/file_tree.txt \\\n  > <repo_path>/.nexus-map/raw/ast_nodes.json\n\n# 忽略三方静态资源或杂物目录\npython $SKILL_DIR/scripts/extract_ast.py <repo_path> [--max-nodes 500] \\\n  --exclude-dirs django_static,.go_root,third_party/assets \\\n  --file-tree-out <repo_path>/.nexus-map/raw/file_tree.txt \\\n  > <repo_path>/.nexus-map/raw/ast_nodes.json\n\n# 若希望忽略内置噪音目录，但不要读取 .gitignore\npython $SKILL_DIR/scripts/extract_ast.py <repo_path> [--max-nodes 500] \\\n  --no-gitignore \\\n  --file-tree-out <repo_path>/.nexus-map/raw/file_tree.txt \\\n  > <repo_path>/.nexus-map/raw/ast_nodes.json\n\n# 补充非标准语言支持\npython $SKILL_DIR/scripts/extract_ast.py <repo_path> [--max-nodes 500] \\\n  --add-extension .templ=templ \\\n  --add-query templ struct \"(component_declaration name: (identifier) @class.name) @class.def\" \\\n  > <repo_path>/.nexus-map/raw/ast_nodes.json\n\n# 复杂配置：使用 JSON 配置文件\npython $SKILL_DIR/scripts/extract_ast.py <repo_path> [--max-nodes 500] \\\n  --language-config /custom/path/to/language-config.json \\\n  > <repo_path>/.nexus-map/raw/ast_nodes.json\n```\n\n**依赖安装（首次使用）**：\n```bash\npip install -r $SKILL_DIR/scripts/requirements.txt\n```\n\n---\n\n## 持久化记忆规则（写入宿主 AGENTS.md）\n\n建议把以下规则写入仓库的 `AGENTS.md`、`CLAUDE.md` 或同类持久记忆文件，使知识库在长期对话中保持活跃：\n\n```md\n如果仓库中存在 .nexus-map/INDEX.md，先阅读它，然后在执行任务前读完其路由块中列出的所有文件。\n\n如果 .nexus-map/ 不存在，且当前任务涉及跨模块修改或接口变更，先向用户提议运行 nexus-mapper；若用户需立即开始，至少先运行 query_graph.py --summary 建立结构感知。\n\n当任务改变了项目的结构认知（系统边界、入口、依赖关系），在交付前评估是否需要更新 .nexus-map。\n```\n\n---\n\n## 按需查询工具（PROBE 辅助）\n\n`scripts/query_graph.py` 读取 `raw/ast_nodes.json`，零额外依赖（纯 Python 标准库）。\n\n```bash\npython $SKILL_DIR/scripts/query_graph.py <ast_nodes.json> --file <path>         # 文件骨架\npython $SKILL_DIR/scripts/query_graph.py <ast_nodes.json> --who-imports <mod>   # 反向依赖\npython $SKILL_DIR/scripts/query_graph.py <ast_nodes.json> --impact <path>       # 影响半径\npython $SKILL_DIR/scripts/query_graph.py <ast_nodes.json> --impact <path> --git-stats <git_stats.json>\npython $SKILL_DIR/scripts/query_graph.py <ast_nodes.json> --hub-analysis        # 核心节点\npython $SKILL_DIR/scripts/query_graph.py <ast_nodes.json> --summary             # 目录聚合\n```\n\n| 阶段   | 推荐查询               | 用途                                         |\n| ------ | ---------------------- | -------------------------------------------- |\n| REASON | `--hub-analysis`       | 数据验证核心系统假说，不靠目录名猜测         |\n| OBJECT | `--impact --git-stats` | 验证边界假设，查看真实上下游依赖             |\n| EMIT   | `--summary`, `--file`  | 生成 systems.md / dependencies.md 的数据支撑 |\n\n各查询模式的核心价值：`--hub-analysis` 用于 REASON 期验证架构假说；`--impact --git-stats` 用于 OBJECT 期量化边界风险；`--summary` 与 `--file` 用于 EMIT 期生成精确数据支撑。","tags":["nexus","mapper","skills","haaaiawd","agent-skills","agentic-ai","ai-coding","ai-tools","ast","claude-code","claude-skills","cline"],"capabilities":["skill","source-haaaiawd","skill-nexus-mapper","topic-agent-skills","topic-agentic-ai","topic-ai-coding","topic-ai-tools","topic-ast","topic-claude-code","topic-claude-skills","topic-cline","topic-code-analysis","topic-codebase-intelligence","topic-cursor","topic-dependency-graph"],"categories":["Nexus-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Haaaiawd/Nexus-skills/nexus-mapper","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Haaaiawd/Nexus-skills","source_repo":"https://github.com/Haaaiawd/Nexus-skills","install_from":"skills.sh"}},"qualityScore":"0.530","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 161 github stars · SKILL.md body (9,484 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T12:54:42.014Z","embedding":null,"createdAt":"2026-04-18T22:08:59.535Z","updatedAt":"2026-05-02T12:54:42.014Z","lastSeenAt":"2026-05-02T12:54:42.014Z","tsv":"'/.gitignore':225 '/.nexus-map/raw/ast_nodes.json':758,781,800,825,841 '/.nexus-map/raw/file_tree.txt':757,780,799 '/.tmp':464 '/arch/dependencies.md':558 '/arch/systems.md':553 '/arch/test_coverage.md':565 '/c/c':178 '/concepts/domains.md':576 '/custom/path/to/language-config.json':840 '/hotspots/git_forensics.md':570 '/index.md':83,863 '/kotlin/ruby/swift/scala/php/lua/elixir/gdscript/dart/haskell/clojure/sql/proto/solidity/vue/svelte/r/perl':179 '/path/to/nexus-mapper':742 '0':384 '2000':249,508 '21':364 '3.10':108,133,136 '30':181,524 '500':752,766,791,808,836 '5000':580 'add':189,195,810,815 'add-extens':188,809 'add-queri':194,814 'agent':56,147 'agent/skills':729 'agent/skills/nexus-mapper':733 'agents.md':852,854 'ai':15,39,50,55,76,85,92,247,506,539 'ai-assist':38 'analysi':378,929,942,962 'api':99,703 'arch':251 'architectur':22 'assist':40 'ast':209,657,664 'ast_nodes.json':277 'b':735 'base':11 'bash':414,721,844,899 'benchmark':355,415 'block':533 'c':139 'chang':26 'class':390 'class.def':824 'class.name':823 'claude.md':855 'cli.py':706 'code':397,411,437,450,454 'codebas':20 'command':103,150 'compon':199,819 'compos':643 'concept':264 'concept_model.json':265,296,401 'config':204,839 'context':41 'declar':200,820 'depend':24 'dependencies.md':255,662,957 'detect':374 'dev':639 'dir':215,238,724,732,741,769 'dir/scripts/extract_ast.py':748,762,787,804,832 'dir/scripts/query_graph.py':902,907,914,919,926,933 'dir/scripts/requirements.txt':849 'dispatch':167 'django':216,770 'docker':642 'docs/architecture.md':442 'domains.md':269,672 'downgrad':679 'emit':322,458,952,977 'env':648 'error':425 'evid':440,443,514,710 'evolution/detective_loop.py':371 'exclud':214,237,768 'exclude-dir':213,236,767 'extens':190,811 'extract_ast.py':629 'file':118,669,754,777,796,903,954,975 'file-tree-out':753,776,795 'file_tree.txt':285 'gap':444,515,711 'generat':4,291 'git':61,152,156,273,283,342,359,571,713,922,948,968 'git-stat':921,947,967 'git_detective.py':630 'git_forensics.md':272 'git_stats.json':282,382 'gitignor':223,231,233,784,794 'go':218,772 'grep':119 'hard':531 'hard-trigg':530 'high':366 'hotspot':27,271,383,716 'hub':928,941,961 'hub-analysi':927,940,960 'hypothesi':369 'identifi':822 'impact':599,915,920,946,966 'implement':395,404,409,434 'import':140,308,392,399,608,620,655,910 'index.md':246,486,499,503,528,674 'infer':407,430,667 'inspect':671 'instal':637,846 'instant':17 'json':206,433,828 'knowledg':10 'label':298 'languag':203,678,838 'language-config':202,837 'let':13 'loop':375 'ls':417,422 'main.py':641 'major':45 'map':9,66,82,245,463,479,484,493,552,557,564,569,575,862,869,888 'mapper':3,49,616,875 'markdown':288,535 'max':750,764,789,806,834 'max-nod':749,763,788,805,833 'mayb':696 'md':858 'mermaid':256,560 'name':821 'nexus':2,8,48,65,81,244,462,478,483,492,551,556,563,568,574,615,861,868,874,887 'nexus-map':7,64,80,243,461,477,482,491,550,555,562,567,573,860,867,886 'nexus-mapp':1,47,614,873 'no-gitignor':229,792 'node':751,765,790,807,835 'npm':636 'null':439 'object':335,337,945,971 'onboard':36 'party/assets':775 'path':130,162,385,398,412,438,441,451,455 'path/src/nexus/application/nonexist':424 'path/src/nexus/application/weaving':419 'pend':695 'persist':6 'pip':845 'plan':405,428,436,456 'pnpm':638 'possibl':697 'prepar':42 'probe':58,306,890 'profil':302,743 'proven':295,304,661 'py/.ts/.java/.go/.rs/.cpp':111 'python':107,132,134,138,640,746,760,785,802,830,897,900,905,912,917,924,931 'python/javascript/typescript/tsx/bash/java/go/rust/c':177 'q1':347,358 'q2':349 'queri':196,816 'query_graph.py':598,605,878 'r':847 'raw':276 'raw/ast_nodes.json':894 'raw/file_tree.txt':211 'read':318,324,329,548 'readm':708 'reason':339,939,964 'ref':46 'refer':310,314 'references/05-language-customization.md':187 'references/language-customization.md':330 'references/output-schema.md':325 'references/probe-protocol.md':319 'repo':73,129,161,418,423,737 'repositori':35 'risk':367 'root':219,773 'run':102,149 'schema':266,326 'scripts/languages.json':175 'scripts/query_graph.py':892 'search':120 'session':16 'shell':96,145 'sitter':142,172,280 'skill':53,316,622,723,731,740,747,761,786,803,831,848,901,906,913,918,925,932 'skill-nexus-mapper' 'source-haaaiawd' 'sprint':681 'src/agents/monarch':446 'start':30 'stat':360,923,949,969 'static':217,771 'status':435 'struct':198,818 'summari':879,934,953,973 'system':23 'systems.md':252,673,956 'task':379 'tasks/analysis_tasks.py':362,388 'tbd':698 'templ':191,192,197,812,813,817 'test_coverage.md':259 'text':242 'third':774 'titl':300 'tmp':467,471 'token':250,509,520,525,581 'topic-agent-skills' 'topic-agentic-ai' 'topic-ai-coding' 'topic-ai-tools' 'topic-ast' 'topic-claude-code' 'topic-claude-skills' 'topic-cline' 'topic-code-analysis' 'topic-codebase-intelligence' 'topic-cursor' 'topic-dependency-graph' 'tree':141,171,279,755,778,797 'tree-sitt':170,278 'tree/manual':670 'trigger':532 'understand':18 'unfamiliar':34 'unknown':517,701 'unsupport':677 'use':28,222 'use-gitignor':221 'v1':267 'verifi':293,684 'version':135 'view':117,387 'who-import':606,908 'work':31 'xxx':350 'y/n':490 '下次执行检测到':470 '不合格质疑':345 '不存在':480,870 '不应用':232 '不得以':583 '不得跳过':311 '不抄出具体值':652 '不是建议':541 '不是截断':511 '不是硬阻塞项':154 '不确定性表达规范':687 '不要因为':624 '不要添加':299 '不靠目录名猜测':944 '与':974 '且当前任务涉及跨模块修改或接口变更':871 '且必须亲手验证存在':413 '两个硬约束':507 '中凡是非':663 '中定义':315 '中途失败不留半成品':469 '为何':377 '为由跳过':587 '也无法在':354 '也许':692 '了解这个仓库':93 '五阶段协议':59 '产出':63 '仅在设计文档中出现':447 '从未见过这个仓库的':505 '仓库中未发现':445 '仓库执行系统性探测':62 '仓库没有':712 '代码位置':254 '以下文件完整内容':549 '任务完成后评估是否需要重新运行':613 '任务简单':584 '会话冷启动':86 '估算':521 '但':368 '但不要读取':783 '但必须解释不确定来自哪一条缺失证据':719 '何时不调用':69 '何时调用':68 '作为':728 '使用':57,432,827 '使知识库在长期对话中保持活跃':857 '供后续':84 '依赖关系':884 '依赖图':257 '依赖安装':842 '修正或删除此节点':426 '允许诚实地写不确定':718 '先全部写入':460 '先向用户提议运行':872 '先阅读它':864 '入口':883 '全部成功后整体移动到正式目录':465 '写入':400 '写入宿主':851 '写完后执行':519 '冷启动主入口':248 '冷启动路由器':501 '凭据配置时':650 '函数':115 '分层知识库':67 '删除':466,595 '判断某文件被谁引用':603 '前':323,402 '前提':126 '前提检查':122 '历史':714 '历史是加分项':153 '原子性':459 '反向依赖':911 '发出的硬性操作指令':540 '变更':363 '只改一个文件':586 '只有':408 '只记录其存在和用途':651 '只读文件查看':633 '可能是':690 '可访问':131 '各查询模式的核心价值':959 '各阶段详细步骤':312 '合格质疑格式':357 '否':105,109,113,121 '含边界场景与三维度质疑框架':321 '启用':224 '因此':715 '图':561 '在交付前评估是否需要更新':885 '在执行任何任务之前':546 '场景':70,726,734 '基础用法':745 '处理方式':476 '复杂配置':826 '复杂配置时使用':205 '大量工程事实隐藏在目录命名和':341 '如':453 '如果':301,656,866 '如果仓库中存在':859 '如果涉及未支持语言区域':675 '如果证据不足':699 '存储在':174 '存在':472 '存在且':485 '存在但文件不完整':494 '守则1':334 '守则2':394 '守则3':457 '守则4':498 '守则5':618 '守则6':653 '安装':730 '完成后执行':591 '完成检查清单与边界场景处理均在':313 '定义':391 '宿主机无本地':106 '密钥文件':649 '对于':427 '对任意本地':60 '将重新生成':496 '就执行目标仓库里的构建脚本':626 '工具':104 '工具调用':151 '希望':75 '帮我分析项目':89 '幂等性规则':474 '平均':523 '并在输出中明确记录这是一次降级探测':159 '并说明缺了什么证据':518 '建立结构感知':880 '建立项目知识库':90 '建议把以下规则写入仓库的':853 '开发':738 '引用':709 '强制执行步骤':537 '当任务改变了项目的结构认知':881 '当前仅能确认':705 '当前已接入':176 '影响半径':916 '待定':693 '待确认':689 '必填':164 '必须依次':547 '必须先区分节点是':403 '必须先读完以下所有文件':543 '必须包含的强制路由块':529 '必须在最终文件中显式标注':660 '必须明确标注':305 '必须标注':666 '必须说明':676 '必须运行':597 '必须附':683 '忽略三方静态资源或杂物目录':759 '忽略其中声明的文件和目录':228 '总量通常':579 '想更懂仓库':625 '我对系统结构的把握还不够扎实':348 '或':429,516,585 '或历史过少时':157 '或同类持久记忆文件':856 '或者某部分来自人工阅读而非脚本产出':659 '所有生成的':287 '执行守则':333 '执行完成后':240 '执行目标仓库的':635 '执行能力':97,146 '扩展名映射':169 '扫描过滤':208 '把状态塞进路径字段':452 '拒绝形式主义':336 '持久化记忆规则':850 '指导':54 '按以下格式写':700 '按任务类型追加操作':589 '按目录名或仓库相对路径忽略杂物目录':220 '按需':331 '按需查询工具':889 '接口修改':593 '推荐查询':937 '提取与':210 '操作指南':536 '数据验证核心系统假说':943 '文件':207 '文件必须带一个简短头部':289 '文件骨架':904 '文本搜索':632 '新增系统':611 '新增跨模块调用':594 '无':101 '无报错':143 '时序图':258 '是':78,87,94 '是主入口':704 '是入口':376 '是否覆盖':489 '是必要的上下文成本':582 '显示':361 '暂不清楚':694 '更新知识库':617 '最小执行面与敏感信息保护':619 '有':144 '有效':487 '期生成精确数据支撑':978 '期量化边界风险':972 '期验证架构假说':965 '未发现直接证据表明':702 '本':52 '本节是对所有读取本文件的':538 '机器可读图谱':268 '查看真实上下游依赖':951 '查询':173 '标准库':898 '树':393 '校验规范':327 '核心节点':930 '核心领域概念':577 '核心领域概念说明':270 '根据实际安装路径':725 '检查方式':127 '检测到未完成分析':495 '模块名':609 '次':365 '此时仍会保留内置排除项和':235 '步骤1':542,590 '步骤2':588 '没有':155 '测试文件':261 '测试脚本或自定义命令':627 '测试面与证据缺口':566 '添加新文件扩展名映射':193 '添加结构查询':201 '清理后重新生成':473 '激活时':317 '热度更高':380 '热点':274 '热点与耦合数据':284 '热点与耦合风险':572 '热点背后':343 '然后在执行任务前读完其路由块中列出的所有文件':865 '状态':475,682 '独立':736 '环境支持':148 '理解其架构':77 '生成':955 '生成共享同一套过滤规则':212 '生成时把这段结构写入文件末尾':534 '用于':963,970,976 '用勉强相关的文件冒充':449 '用户只想查询某个特定文件':114 '用户提供本地':72 '用户说':88 '用途':938 '疑似':691 '的':389 '的人类可读名称字段统一使用':297 '的存在意义是打破':338 '的幸存者偏差':340 '的数据支撑':958 '的角色':500 '的读者是':504 '目录存在':420 '目录的职责暂时没有直接证据':351 '目录聚合':935 '目录遍历':631 '目标仓库无任何已知语言源文件':110 '目标仓库根目录下将产出':241 '目标仓库的本地绝对路径':163 '目标文件':600 '目标路径存在':128 '目的':468 '直接支持的依赖关系':665 '直接用':116 '直接继续':481,497 '矛盾':372 '确认影响半径后再写代码':601 '禁止':448 '禁止提交':346 '第一直觉几乎总是错的':344 '等':180,645 '等均无':112 '粗估值':527 '系统边界':253,882 '系统边界与代码位置':554 '系统间依赖关系与':559 '纯':98,896 '经过同意才能继续':125 '结论必须具体':512 '缺失项要显式告知用户':123 '而在于没有证据线索':353 '而非静态字典':502 '耦合对分析':275 '脚本依赖已安装':137 '脚本工具链':720 '自动按文件扩展名':166 '自带脚本和必要的只读检查':623 '至少先运行':877 '至少包含':290 '节点':431 '节点允许写入':410 '节点必须有真实':396 '节点有效':421 '若':373 '若仓库含有内置未支持的语言':184 '若仓库结构已发生重大变化':610 '若任务涉及':592 '若任务需要':602 '若写入进度快照':680 '若希望忽略内置噪音目录':782 '若用户需立即开始':876 '行':526 '行数':522 '补充非标准语言支持':801 '被':707 '覆盖不完整':658 '覆盖到的核心模块':262 '规则':226,234 '解析原始数据':281 '认为编排入口是':370 '让':91 '设置':722 '证据不足时明确写出':513 '证据线索':381 '证据缺口':263 '询问用户':488 '详见':186 '语言':182 '语言支持':165 '语言配置':168 '读取':893 '读完本文件后':545 '调用':71 '调用模式':100 '调试时':739 '超过就重写':510 '路径':74 '跳过热点分析':158 '辅助':891 '输入契约':160 '输出格式':239 '过滤后的文件树':286 '运行':604 '运行环境无':95 '还是':406 '这些文件均为高密度摘要':578 '进入每个阶段前必须先读对应':309 '通过命令行参数动态补充':185 '遇到':647 '避免只写':688 '避免过期信息伪装成当前事实':686 '部分跳过':717 '配置文件':829 '重命名公共函数':596 '重构模块边界':612 '问题不在措辞':352 '阶段':744,936 '阶段发现语言覆盖降级或人工推断':303 '阶段步骤蓝图':320 '阶段门控':307 '阶段验证':356 '阶段验证方式':416 '降级与人工推断必须显式可见':654 '除非用户明确要求':646 '零额外依赖':895 '需要生成':79 '需要降级等时及时提醒用户':124 '静态测试面':260 '非标准语言':183 '非标准语言时':328 '非门控':332 '项目探测协议':51 '顺序不限':544 '首次使用':843 '验证计划':386 '验证边界假设':950 '默认允许':628 '默认只运行本':621 '默认开启':227 '默认禁止':634","prices":[{"id":"5e432d3a-05a1-423a-b320-1bac751218c3","listingId":"d0d28d97-c08e-4f26-8e3a-cc49e14afe6b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Haaaiawd","category":"Nexus-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:08:59.535Z"}],"sources":[{"listingId":"d0d28d97-c08e-4f26-8e3a-cc49e14afe6b","source":"github","sourceId":"Haaaiawd/Nexus-skills/nexus-mapper","sourceUrl":"https://github.com/Haaaiawd/Nexus-skills/tree/master/skills/nexus-mapper","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:59.535Z","lastSeenAt":"2026-05-02T12:54:42.014Z"}],"details":{"listingId":"d0d28d97-c08e-4f26-8e3a-cc49e14afe6b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Haaaiawd","slug":"nexus-mapper","github":{"repo":"Haaaiawd/Nexus-skills","stars":161,"topics":["agent-skills","agentic-ai","ai-coding","ai-tools","ast","claude-code","claude-skills","cline","code-analysis","codebase-intelligence","cursor","dependency-graph","github-copilot","legacy-code","refactoring","skills","spec","tree-sitter","vibe-coding"],"license":null,"html_url":"https://github.com/Haaaiawd/Nexus-skills","pushed_at":"2026-03-31T13:40:48Z","description":"AI-native codebase intelligence skills — generate persistent .nexus-map/ knowledge bases and instantly query file structure, dependency graphs, and change impact. Built for Copilot, Cursor, and any tool-calling LLM. 面向 AI 编程助手的代码库感知技能——生成持久化知识图谱，精准查询文件结构、依赖关系与改动影响半径。","skill_md_sha":"1d2ab5bcb0806099f5b97196b2690c1c2aee90c1","skill_md_path":"skills/nexus-mapper/SKILL.md","default_branch":"master","skill_tree_url":"https://github.com/Haaaiawd/Nexus-skills/tree/master/skills/nexus-mapper"},"layout":"multi","source":"github","category":"Nexus-skills","frontmatter":{"name":"nexus-mapper","description":"Generate a persistent .nexus-map/ knowledge base that lets any AI session instantly understand a codebase's architecture, systems, dependencies, and change hotspots. Use when starting work on an unfamiliar repository, onboarding with AI-assisted context, preparing for a major refactoring initiative, or enabling reliable cold-start AI sessions across a team. Produces INDEX.md, systems.md, concept_model.json, git_forensics.md and more. Requires shell execution and Python 3.10+. For ad-hoc file queries or instant impact analysis during active development, use nexus-query instead."},"skills_sh_url":"https://skills.sh/Haaaiawd/Nexus-skills/nexus-mapper"},"updatedAt":"2026-05-02T12:54:42.014Z"}}