cgraphx 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/.claude-template/skills/cgraphx/SKILL.md +3 -3
- package/dist/.claude-template/skills/cgraphx/agent-prompt.md +1 -1
- package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +94 -0
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +403 -0
- package/dist/.claude-template/skills/clarify-requirements/SKILL.md +19 -8
- package/dist/.claude-template/skills/code-impact-docgen/SKILL.md +186 -176
- package/dist/.claude-template/skills/code-impact-docgen/template-design-html.md +357 -0
- package/dist/.claude-template/skills/code-impact-docgen/template-design-md.md +164 -0
- package/dist/.claude-template/skills/code-impact-init/SKILL.md +47 -47
- package/dist/.claude-template/skills/developer-timeline/SKILL.md +9 -0
- package/dist/.claude-template/skills/write-api-doc/SKILL.md +317 -0
- package/dist/.claude-template/skills/write-api-doc/template-api-html.md +422 -0
- package/dist/.claude-template/skills/write-plan/SKILL.md +38 -16
- package/dist/.claude-template/skills/write-prd/SKILL.md +32 -8
- package/dist/.claude-template/skills/write-spec/SKILL.md +34 -9
- package/dist/bin/codegraph.js +0 -100
- package/dist/bin/codegraph.js.map +1 -1
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +13 -0
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/scope-index.d.ts +86 -0
- package/dist/resolution/scope-index.d.ts.map +1 -0
- package/dist/resolution/scope-index.js +143 -0
- package/dist/resolution/scope-index.js.map +1 -0
- package/dist/resolution/stdlib-blocklist.d.ts +53 -0
- package/dist/resolution/stdlib-blocklist.d.ts.map +1 -0
- package/dist/resolution/stdlib-blocklist.js +143 -0
- package/dist/resolution/stdlib-blocklist.js.map +1 -0
- package/dist/search/ast-helpers.d.ts +42 -0
- package/dist/search/ast-helpers.d.ts.map +1 -0
- package/dist/search/ast-helpers.js +106 -0
- package/dist/search/ast-helpers.js.map +1 -0
- package/dist/search/call-sites.d.ts +398 -0
- package/dist/search/call-sites.d.ts.map +1 -0
- package/dist/search/call-sites.js +1433 -0
- package/dist/search/call-sites.js.map +1 -0
- package/dist/search/context.d.ts +134 -0
- package/dist/search/context.d.ts.map +1 -0
- package/dist/search/context.js +575 -0
- package/dist/search/context.js.map +1 -0
- package/dist/search/impact.d.ts +139 -0
- package/dist/search/impact.d.ts.map +1 -0
- package/dist/search/impact.js +646 -0
- package/dist/search/impact.js.map +1 -0
- package/dist/search/related.d.ts +178 -0
- package/dist/search/related.d.ts.map +1 -0
- package/dist/search/related.js +667 -0
- package/dist/search/related.js.map +1 -0
- package/dist/search/slice.d.ts +148 -0
- package/dist/search/slice.d.ts.map +1 -0
- package/dist/search/slice.js +460 -0
- package/dist/search/slice.js.map +1 -0
- package/dist/search/snr-constants.d.ts +41 -0
- package/dist/search/snr-constants.d.ts.map +1 -0
- package/dist/search/snr-constants.js +44 -0
- package/dist/search/snr-constants.js.map +1 -0
- package/dist/search/types.d.ts +28 -0
- package/dist/search/types.d.ts.map +1 -0
- package/dist/search/types.js +12 -0
- package/dist/search/types.js.map +1 -0
- package/dist/timeline/cli.d.ts.map +1 -1
- package/dist/timeline/cli.js +22 -3
- package/dist/timeline/cli.js.map +1 -1
- package/dist/timeline/store.d.ts +5 -0
- package/dist/timeline/store.d.ts.map +1 -1
- package/dist/timeline/store.js +23 -3
- package/dist/timeline/store.js.map +1 -1
- package/package.json +1 -1
- package/scripts/agent-eval/block-cgraphx-and-gitnexus-cli-hook.sh +43 -0
- package/scripts/agent-eval/block-cgraphx-cli-hook.sh +32 -0
- package/scripts/agent-eval/block-cgraphx-cli-settings.json +16 -0
- package/scripts/agent-eval/cli-vs-mcp-3arm.sh +121 -0
- package/scripts/agent-eval/multi-tool-eval.sh +171 -0
- package/scripts/agent-eval/parse-cli-vs-mcp.mjs +232 -0
- package/scripts/agent-eval/parse-multi-tool.mjs +242 -0
- package/scripts/agent-eval/subagent-token-cost.py +188 -0
- package/dist/.claude-template/skills/code-impact-docgen/template-business-html.md +0 -242
- package/dist/.claude-template/skills/code-impact-docgen/template-business-md.md +0 -107
- package/dist/.claude-template/skills/code-impact-docgen/template-technical-html.md +0 -205
- package/dist/.claude-template/skills/code-impact-docgen/template-technical-md.md +0 -155
package/README.md
CHANGED
|
@@ -88,7 +88,6 @@ cgraphx node <symbol|file> # 单符号详情 / 文件内容(带行号)
|
|
|
88
88
|
cgraphx query <search> # 按名字搜符号(--kind / --limit / --json)
|
|
89
89
|
cgraphx callers <symbol> # 谁调用 X
|
|
90
90
|
cgraphx callees <symbol> # X 调用谁
|
|
91
|
-
cgraphx impact <symbol> # 改 X 的影响半径(--depth)
|
|
92
91
|
cgraphx affected [files...] # 改这些文件受影响的测试(--stdin / --filter)
|
|
93
92
|
cgraphx files [path] # 项目文件结构
|
|
94
93
|
|
|
@@ -39,9 +39,9 @@ cgraphx <subcommand> [args]
|
|
|
39
39
|
| 看符号定义 | `codegraph_explore` MCP,或 Bash `cgraphx query <name>` 后看返回 | 拿到完整源码 |
|
|
40
40
|
| 谁调用 X | `cgraphx callers <symbol>` | inbound 调用方 |
|
|
41
41
|
| X 调用谁 | `cgraphx callees <symbol>` | outbound 被调用方 |
|
|
42
|
-
| 改 X 的影响面 | `
|
|
42
|
+
| 改 X 的影响面 | `codegraph_impact(symbol, depth)` MCP | impact radius(BFS 影响传播,基于索引) |
|
|
43
43
|
| 改文件的受影响测试 | `cgraphx affected [<files>...]` | 找受影响测试文件 |
|
|
44
|
-
| 构建 task 上下文 | `
|
|
44
|
+
| 构建 task 上下文 | `codegraph_explore` MCP | 给 AI 一段任务描述,返回相关代码片段 + 调用路径 |
|
|
45
45
|
| 看索引状态 | `cgraphx status` | files/nodes/edges 计数、last_indexed_at |
|
|
46
46
|
| 增量同步 | `cgraphx sync` | 文件改了之后 |
|
|
47
47
|
| 全量重建 | `cgraphx index` | 出问题或大改动时 |
|
|
@@ -55,7 +55,7 @@ cgraphx <subcommand> [args]
|
|
|
55
55
|
│ → codegraph_explore MCP(一次拿源码 + 调用路径)
|
|
56
56
|
│
|
|
57
57
|
├── "改 X 会影响哪里" / "X 的 blast radius" / 重构前评估
|
|
58
|
-
│ →
|
|
58
|
+
│ → codegraph_impact(symbol) MCP(看影响半径)
|
|
59
59
|
│ → 或 cgraphx affected <file>(看受影响测试)
|
|
60
60
|
│
|
|
61
61
|
├── "谁调用 X" / "X 的 caller" / 反向追踪
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
| 工具 | 用途 |
|
|
14
14
|
|---|---|
|
|
15
15
|
| `codegraph_explore` MCP(首选) | 给一组符号名或自然语言问题,返回相关符号源码 + 调用路径(含 callback / React render / JSX children 等动态派生边) |
|
|
16
|
+
| `codegraph_impact(symbol, depth)` MCP | 改动影响半径(基于索引,返回 Subgraph 含 nodes/edges) |
|
|
16
17
|
| `cgraphx query "<name>"` CLI | 按名字模糊搜符号 |
|
|
17
18
|
| `cgraphx callers <symbol>` CLI | 反向追踪(谁调 X) |
|
|
18
19
|
| `cgraphx callees <symbol>` CLI | 正向追踪(X 调谁) |
|
|
19
|
-
| `cgraphx impact <symbol>` CLI | 改动影响半径 |
|
|
20
20
|
| `cgraphx affected [<files>...]` CLI | 受影响测试文件 |
|
|
21
21
|
| `cgraphx status` CLI | 看索引新鲜度 |
|
|
22
22
|
| `cgraphx files` CLI | 项目文件概览 |
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cgraphx-guide
|
|
3
|
+
description: cgraphx 应用整体使用指南 — 安装、项目接入、日常做需求的工作流(skill 串联)、agent 自动加载的上下文工具。Use when 用户问 cgraphx 怎么用/怎么安装/怎么接入项目/有哪些 skill/日常工作流/onboarding/新手入门/使用流程/安装步骤/skill 怎么配合/cgraphx 能干什么/cgraphx 和别的工具区别。问单个代码查询工具(codegraph_explore/callers/impact 怎么调)走 cgraphx skill,不是本 skill。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# cgraphx 应用使用指南
|
|
7
|
+
|
|
8
|
+
cgraphx 是本地优先的代码智能工具,把**代码图谱 + markdown 知识库 + 数据库查询 + 开发时间线**打包给 AI agent 用。本 skill 是**整体使用导航**——用户问"怎么用 / 怎么装 / 日常工作流 / 有哪些 skill"时调这里。
|
|
9
|
+
|
|
10
|
+
视觉版介绍页(给人类用户看):`how-to-use.html`(本 skill 目录内,随 skill 分发,`cgraphx install` 时部署到项目 `.claude/skills/cgraphx-guide/`)。
|
|
11
|
+
|
|
12
|
+
## 何时用 / 不用本 skill
|
|
13
|
+
|
|
14
|
+
**用本 skill**:
|
|
15
|
+
- 用户问 cgraphx 怎么安装 / 怎么接入项目
|
|
16
|
+
- 用户问日常怎么用 / 有哪些 skill / 工作流
|
|
17
|
+
- 用户是新手要 onboarding
|
|
18
|
+
- 用户问 cgraphx 整体能干什么、和别的工具区别
|
|
19
|
+
|
|
20
|
+
**不要用本 skill**(走对应专责 skill):
|
|
21
|
+
- 单个代码查询(`codegraph_explore` / `callers` / `impact` 怎么调)→ `cgraphx` skill
|
|
22
|
+
- 查业务知识(`docs/knowledge/`)→ `code-impact-api` skill
|
|
23
|
+
- 查数据库 → `db-query` skill
|
|
24
|
+
- 写 PRD / spec / plan → 各自 skill
|
|
25
|
+
- 探索陌生项目建知识库 → `code-impact-init` skill
|
|
26
|
+
|
|
27
|
+
本 skill 只做整体导航,不重复各 skill 的内部规范。
|
|
28
|
+
|
|
29
|
+
## 整体使用流程
|
|
30
|
+
|
|
31
|
+
| 阶段 | 命令 / skill |
|
|
32
|
+
|---|---|
|
|
33
|
+
| **机器级 · 每机器一次** | `npm install -g cgraphx` |
|
|
34
|
+
| **项目级 · 每项目一次** | `cgraphx init`(建代码图谱)、`cgraphx install`(写 MCP 配置 + 部署 skills 模板到项目 `.claude/`)、`/code-impact-init`(接手陌生项目时建业务知识库) |
|
|
35
|
+
| **日常做需求 · 必经 2 步** | `/clarify-requirements` 澄清 → `/implementation`(简单)或 `/subagent-implement`(复杂)实现 |
|
|
36
|
+
| **日常做需求 · 复杂按需** | `/write-prd`、`/write-spec`、`/write-plan`、`/code-impact-markdown`(沉淀到 `docs/knowledge/`) |
|
|
37
|
+
| **工作回顾 · 按需** | `/developer-timeline`(日/周/月报)、`/code-impact-docgen`(合成业务/技术文档) |
|
|
38
|
+
| **卸载 · 可选** | `npm uninstall -g cgraphx` + 删 `.cgraphx/` |
|
|
39
|
+
|
|
40
|
+
## 各 skill 导航
|
|
41
|
+
|
|
42
|
+
### 用户主动触发(在 Claude Code 里敲 `/skill-name`)
|
|
43
|
+
|
|
44
|
+
| skill | 何时建议用户调 |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `/clarify-requirements` | 接到模糊需求,先澄清意图、业务边界、技术边界 |
|
|
47
|
+
| `/write-prd` | 要给业务方 / 领导确认业务文档 |
|
|
48
|
+
| `/write-spec` | 写技术规格(归档业务行为 / 规则 / 接口 / 数据,作为 plan 的稳定输入) |
|
|
49
|
+
| `/write-plan` | 拆执行计划(给 agent 执行) |
|
|
50
|
+
| `/implementation` | 简单任务实现(主会话顺序做) |
|
|
51
|
+
| `/subagent-implement` | 复杂多任务实现(派子 agent,隔离上下文) |
|
|
52
|
+
| `/code-impact-init` | 接手陌生项目,派子 agent 自动探索、建业务知识库 |
|
|
53
|
+
| `/code-impact-markdown` | 把业务决策 / 概念沉淀成 md 到 `docs/knowledge/` |
|
|
54
|
+
| `/code-impact-docgen` | 从知识库合成面向人类阅读的业务 / 技术文档(HTML 或 Markdown) |
|
|
55
|
+
| `/developer-timeline` | 生成日报 / 周报 / 月报 / 阶段总结 / 交付汇报 |
|
|
56
|
+
|
|
57
|
+
### agent 自动调用(用户不主动敲,agent 用来加载项目上下文)
|
|
58
|
+
|
|
59
|
+
| skill / 工具 | agent 何时自动调 |
|
|
60
|
+
|---|---|
|
|
61
|
+
| `codegraph_explore` | 任何代码理解 / 修改前——查代码结构、调用链、影响半径 |
|
|
62
|
+
| `code-impact-api` | 任务开始时查 `docs/knowledge/` 业务决策 / 概念 / 历史教训 |
|
|
63
|
+
| `db-query` | 验证数据假设 / 查表结构 / 找测试数据(查 MySQL / PostgreSQL,沉淀 schema 到 `docs/schema-knowledge/`) |
|
|
64
|
+
|
|
65
|
+
## 安装与接入(三步)
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npm install -g cgraphx # 装 CLI(Node ≥ 20 且 < 25)
|
|
69
|
+
cd /your/project && cgraphx init # 建代码图谱索引、开 watcher
|
|
70
|
+
cgraphx install # 写 MCP 配置 + 部署 skills 模板到项目 .claude/(默认 local)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
`cgraphx install` 默认 **local**(写项目内 `.claude/` / `.cursor/` 等);想影响所有项目才用 `--location=global`。
|
|
74
|
+
|
|
75
|
+
接手陌生项目时可选第四步:`/code-impact-init` 派子 agent 自动探索、建业务知识库到 `docs/knowledge/`。
|
|
76
|
+
|
|
77
|
+
## 背后自动(agent 跑的,用户无感)
|
|
78
|
+
|
|
79
|
+
- 文件改动 → watcher 自动增量同步代码图谱(无需手动 reindex)
|
|
80
|
+
- agent 经 `codegraph_explore` 自动查代码结构 / 调用链 / 影响半径
|
|
81
|
+
- agent 经 `code-impact-api` 自动查业务知识
|
|
82
|
+
- agent 经 `db-query` 自动查数据库
|
|
83
|
+
- `status` / `sync` / `explore` / `docs` / `db` / `timeline` 等 CLI 子命令由 agent / skill 调用,人类日常不主动跑
|
|
84
|
+
|
|
85
|
+
## 卸载
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npm uninstall -g cgraphx # preuninstall 钩子自动清所有 agent 的 MCP 配置
|
|
89
|
+
# 需要清索引数据时,手动删项目目录下的 .cgraphx/
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 视觉版
|
|
93
|
+
|
|
94
|
+
给人类用户看介绍页时,指向 `how-to-use.html`(本 skill 目录内,部署后在 `.claude/skills/cgraphx-guide/how-to-use.html`)——分阶段卡片布局,一眼看清完整使用流程。
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>cgraphx 怎么用 — 安装与使用</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root {
|
|
9
|
+
--color-primary: #2B6CB0;
|
|
10
|
+
--color-primary-dark: #2C5282;
|
|
11
|
+
--color-text: #1A202C;
|
|
12
|
+
--color-text-secondary: #4A5568;
|
|
13
|
+
--color-text-tertiary: #718096;
|
|
14
|
+
--color-border: #E2E8F0;
|
|
15
|
+
--color-bg: #FFFFFF;
|
|
16
|
+
--color-bg-subtle: #F7FAFC;
|
|
17
|
+
--color-bg-code: #EDF2F7;
|
|
18
|
+
--color-bg-accent: #FFFAF0;
|
|
19
|
+
--color-cgraphx: #2B6CB0;
|
|
20
|
+
--radius: 6px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
* { box-sizing: border-box; }
|
|
24
|
+
html { scroll-behavior: smooth; }
|
|
25
|
+
|
|
26
|
+
body {
|
|
27
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
|
|
28
|
+
font-size: 16px;
|
|
29
|
+
line-height: 1.75;
|
|
30
|
+
color: var(--color-text);
|
|
31
|
+
background: var(--color-bg);
|
|
32
|
+
margin: 0;
|
|
33
|
+
padding: 0;
|
|
34
|
+
-webkit-font-smoothing: antialiased;
|
|
35
|
+
-moz-osx-font-smoothing: grayscale;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.container {
|
|
39
|
+
max-width: 880px;
|
|
40
|
+
margin: 0 auto;
|
|
41
|
+
padding: 0 24px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Header */
|
|
45
|
+
header {
|
|
46
|
+
padding: 80px 0 50px;
|
|
47
|
+
border-bottom: 1px solid var(--color-border);
|
|
48
|
+
margin-bottom: 50px;
|
|
49
|
+
}
|
|
50
|
+
header .eyebrow {
|
|
51
|
+
font-size: 13px;
|
|
52
|
+
color: var(--color-text-tertiary);
|
|
53
|
+
letter-spacing: 0.08em;
|
|
54
|
+
text-transform: uppercase;
|
|
55
|
+
margin-bottom: 12px;
|
|
56
|
+
font-weight: 500;
|
|
57
|
+
}
|
|
58
|
+
header h1 {
|
|
59
|
+
font-size: 38px;
|
|
60
|
+
font-weight: 700;
|
|
61
|
+
margin: 0 0 16px;
|
|
62
|
+
line-height: 1.2;
|
|
63
|
+
letter-spacing: -0.01em;
|
|
64
|
+
}
|
|
65
|
+
header .subtitle {
|
|
66
|
+
font-size: 18px;
|
|
67
|
+
color: var(--color-text-secondary);
|
|
68
|
+
margin: 0 0 24px;
|
|
69
|
+
}
|
|
70
|
+
header .meta {
|
|
71
|
+
font-size: 14px;
|
|
72
|
+
color: var(--color-text-tertiary);
|
|
73
|
+
margin: 0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Section */
|
|
77
|
+
section { margin-bottom: 56px; }
|
|
78
|
+
|
|
79
|
+
h2 {
|
|
80
|
+
font-size: 26px;
|
|
81
|
+
font-weight: 600;
|
|
82
|
+
margin: 0 0 24px;
|
|
83
|
+
padding-bottom: 10px;
|
|
84
|
+
border-bottom: 2px solid var(--color-border);
|
|
85
|
+
letter-spacing: -0.01em;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
p { margin: 0 0 16px; }
|
|
89
|
+
p strong, li strong { font-weight: 600; }
|
|
90
|
+
|
|
91
|
+
/* Inline code */
|
|
92
|
+
code {
|
|
93
|
+
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
94
|
+
font-size: 0.88em;
|
|
95
|
+
background: var(--color-bg-code);
|
|
96
|
+
color: var(--color-primary-dark);
|
|
97
|
+
padding: 2px 6px;
|
|
98
|
+
border-radius: 3px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* Tags */
|
|
102
|
+
.tag {
|
|
103
|
+
display: inline-block;
|
|
104
|
+
font-size: 12px;
|
|
105
|
+
font-weight: 600;
|
|
106
|
+
padding: 2px 8px;
|
|
107
|
+
border-radius: 3px;
|
|
108
|
+
letter-spacing: 0.02em;
|
|
109
|
+
white-space: nowrap;
|
|
110
|
+
}
|
|
111
|
+
.tag-cgraphx { background: #EBF8FF; color: #2C5282; }
|
|
112
|
+
|
|
113
|
+
/* Pipeline (单卡片,沿用左侧 code-workflow 卡片样式) */
|
|
114
|
+
.pipeline {
|
|
115
|
+
border: 1px solid var(--color-border);
|
|
116
|
+
border-top: 4px solid var(--color-cgraphx);
|
|
117
|
+
border-radius: var(--radius);
|
|
118
|
+
padding: 24px 28px;
|
|
119
|
+
background: var(--color-bg);
|
|
120
|
+
margin: 0 0 24px;
|
|
121
|
+
}
|
|
122
|
+
.pipeline h4 {
|
|
123
|
+
margin: 0 0 20px;
|
|
124
|
+
font-size: 16px;
|
|
125
|
+
font-weight: 600;
|
|
126
|
+
}
|
|
127
|
+
.phase {
|
|
128
|
+
margin-bottom: 18px;
|
|
129
|
+
padding-bottom: 18px;
|
|
130
|
+
border-bottom: 1px dashed var(--color-border);
|
|
131
|
+
}
|
|
132
|
+
.phase:last-child {
|
|
133
|
+
margin-bottom: 0;
|
|
134
|
+
padding-bottom: 0;
|
|
135
|
+
border-bottom: none;
|
|
136
|
+
}
|
|
137
|
+
.phase-label {
|
|
138
|
+
font-size: 11px;
|
|
139
|
+
text-transform: uppercase;
|
|
140
|
+
letter-spacing: 0.06em;
|
|
141
|
+
color: var(--color-text-tertiary);
|
|
142
|
+
font-weight: 600;
|
|
143
|
+
margin-bottom: 10px;
|
|
144
|
+
}
|
|
145
|
+
.phase-list {
|
|
146
|
+
padding-left: 20px;
|
|
147
|
+
margin: 0;
|
|
148
|
+
font-size: 14px;
|
|
149
|
+
line-height: 1.75;
|
|
150
|
+
}
|
|
151
|
+
.phase-list li { margin-bottom: 6px; }
|
|
152
|
+
.phase-list code { font-size: 12.5px; }
|
|
153
|
+
.phase-list em {
|
|
154
|
+
color: var(--color-text-tertiary);
|
|
155
|
+
font-size: 13px;
|
|
156
|
+
font-style: normal;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* Highlight box */
|
|
160
|
+
.highlight {
|
|
161
|
+
background: var(--color-bg-subtle);
|
|
162
|
+
border: 1px solid var(--color-border);
|
|
163
|
+
border-left: 4px solid var(--color-cgraphx);
|
|
164
|
+
border-radius: var(--radius);
|
|
165
|
+
padding: 20px 24px;
|
|
166
|
+
margin: 0 0 16px;
|
|
167
|
+
}
|
|
168
|
+
.highlight p:last-child { margin-bottom: 0; }
|
|
169
|
+
|
|
170
|
+
/* Lists */
|
|
171
|
+
ul, ol {
|
|
172
|
+
padding-left: 24px;
|
|
173
|
+
margin: 0 0 16px;
|
|
174
|
+
}
|
|
175
|
+
li { margin-bottom: 6px; }
|
|
176
|
+
|
|
177
|
+
/* Footer */
|
|
178
|
+
footer {
|
|
179
|
+
margin-top: 80px;
|
|
180
|
+
padding: 30px 0;
|
|
181
|
+
border-top: 1px solid var(--color-border);
|
|
182
|
+
text-align: center;
|
|
183
|
+
color: var(--color-text-tertiary);
|
|
184
|
+
font-size: 13px;
|
|
185
|
+
}
|
|
186
|
+
footer p { margin: 0; }
|
|
187
|
+
|
|
188
|
+
/* docs/ 目录速查 */
|
|
189
|
+
.docs-map {
|
|
190
|
+
list-style: none;
|
|
191
|
+
padding-left: 0;
|
|
192
|
+
margin: 0;
|
|
193
|
+
}
|
|
194
|
+
.docs-map li {
|
|
195
|
+
padding: 12px 0;
|
|
196
|
+
border-bottom: 1px dashed var(--color-border);
|
|
197
|
+
margin-bottom: 0;
|
|
198
|
+
}
|
|
199
|
+
.docs-map li:last-child { border-bottom: none; padding-bottom: 0; }
|
|
200
|
+
.docs-map .dir {
|
|
201
|
+
font-weight: 600;
|
|
202
|
+
color: var(--color-primary-dark);
|
|
203
|
+
background: var(--color-bg-code);
|
|
204
|
+
padding: 2px 6px;
|
|
205
|
+
border-radius: 3px;
|
|
206
|
+
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
207
|
+
font-size: 0.85em;
|
|
208
|
+
margin-right: 8px;
|
|
209
|
+
white-space: nowrap;
|
|
210
|
+
}
|
|
211
|
+
.docs-map .desc {
|
|
212
|
+
color: var(--color-text-secondary);
|
|
213
|
+
font-size: 14.5px;
|
|
214
|
+
}
|
|
215
|
+
.docs-map .owner {
|
|
216
|
+
display: block;
|
|
217
|
+
margin-top: 6px;
|
|
218
|
+
font-size: 13px;
|
|
219
|
+
color: var(--color-text-tertiary);
|
|
220
|
+
line-height: 1.6;
|
|
221
|
+
}
|
|
222
|
+
.docs-map .owner code { font-size: 12.5px; }
|
|
223
|
+
.docs-map .owner .label {
|
|
224
|
+
font-weight: 600;
|
|
225
|
+
color: var(--color-text-secondary);
|
|
226
|
+
margin-right: 4px;
|
|
227
|
+
}
|
|
228
|
+
.docs-map .owner .manual {
|
|
229
|
+
color: var(--color-text-tertiary);
|
|
230
|
+
font-style: italic;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/* Responsive */
|
|
234
|
+
@media (max-width: 768px) {
|
|
235
|
+
.container { padding: 0 18px; }
|
|
236
|
+
header { padding: 50px 0 30px; margin-bottom: 30px; }
|
|
237
|
+
header h1 { font-size: 28px; }
|
|
238
|
+
header .subtitle { font-size: 16px; }
|
|
239
|
+
h2 { font-size: 22px; }
|
|
240
|
+
body { font-size: 15px; }
|
|
241
|
+
.pipeline { padding: 20px; }
|
|
242
|
+
}
|
|
243
|
+
</style>
|
|
244
|
+
</head>
|
|
245
|
+
<body>
|
|
246
|
+
|
|
247
|
+
<div class="container">
|
|
248
|
+
|
|
249
|
+
<header>
|
|
250
|
+
<div class="eyebrow">cgraphx 安装与使用</div>
|
|
251
|
+
<h1>cgraphx 怎么用</h1>
|
|
252
|
+
<p class="subtitle">本地优先的代码智能 · 给 AI agent 用的代码图谱</p>
|
|
253
|
+
<p class="meta">最后更新:2026-07-02</p>
|
|
254
|
+
</header>
|
|
255
|
+
|
|
256
|
+
<section>
|
|
257
|
+
<h2>安装流程</h2>
|
|
258
|
+
|
|
259
|
+
<div class="pipeline">
|
|
260
|
+
<h4><span class="tag tag-cgraphx">cgraphx</span> 一次接入 · 三层就绪</h4>
|
|
261
|
+
|
|
262
|
+
<div class="phase">
|
|
263
|
+
<div class="phase-label">机器级 · 每机器一次</div>
|
|
264
|
+
<ul class="phase-list">
|
|
265
|
+
<li><code>npm install -g cgraphx</code> 装 CLI<em>(Node ≥ 20 且 < 25)</em></li>
|
|
266
|
+
</ul>
|
|
267
|
+
</div>
|
|
268
|
+
|
|
269
|
+
<div class="phase">
|
|
270
|
+
<div class="phase-label">项目级 · 每项目一次</div>
|
|
271
|
+
<ul class="phase-list">
|
|
272
|
+
<li><code>cd /your/project && cgraphx init</code> 建 <code>.cgraphx/</code> 代码图谱索引、开 watcher 自动增量同步</li>
|
|
273
|
+
<li><code>cgraphx install</code> 写 MCP 配置 + 部署 skills 模板到项目 <code>.claude/</code><em>(默认 local;想影响所有项目才用 <code>--location=global</code>)</em></li>
|
|
274
|
+
<li><code>/code-impact-init</code> 接手陌生项目时按需跑<em>(派子 agent 自动探索、建 <code>docs/knowledge/</code> 业务知识库)</em></li>
|
|
275
|
+
</ul>
|
|
276
|
+
</div>
|
|
277
|
+
|
|
278
|
+
<div class="phase">
|
|
279
|
+
<div class="phase-label">卸载 · 可选</div>
|
|
280
|
+
<ul class="phase-list">
|
|
281
|
+
<li><code>npm uninstall -g cgraphx</code><em>(preuninstall 钩子自动清所有 agent 的 MCP 配置)</em></li>
|
|
282
|
+
<li>删项目目录下 <code>.cgraphx/</code> 清索引数据</li>
|
|
283
|
+
</ul>
|
|
284
|
+
</div>
|
|
285
|
+
</div>
|
|
286
|
+
|
|
287
|
+
<div class="highlight">
|
|
288
|
+
<p><strong>装一次,自动维护</strong>——全局装 CLI,每个项目跑 <code>init</code> + <code>install</code> 就接入完成;之后 watcher 自动同步代码图谱、MCP 配置自动注入,你不需要主动跑命令。卸载也是一条命令。</p>
|
|
289
|
+
</div>
|
|
290
|
+
</section>
|
|
291
|
+
|
|
292
|
+
<section>
|
|
293
|
+
<h2>使用流程</h2>
|
|
294
|
+
|
|
295
|
+
<div class="pipeline">
|
|
296
|
+
<h4><span class="tag tag-cgraphx">cgraphx</span> 极简内核 · 按需扩展</h4>
|
|
297
|
+
|
|
298
|
+
<div class="phase">
|
|
299
|
+
<div class="phase-label">日常做需求 · 必经 2 步</div>
|
|
300
|
+
<ul class="phase-list">
|
|
301
|
+
<li><code>/clarify-requirements</code> 澄清意图、业务边界、技术边界</li>
|
|
302
|
+
<li><code>/implementation</code> 实现<em>(简单任务,主会话顺序做)</em>或 <code>/subagent-implement</code><em>(复杂多任务,派子 agent)</em></li>
|
|
303
|
+
</ul>
|
|
304
|
+
</div>
|
|
305
|
+
|
|
306
|
+
<div class="phase">
|
|
307
|
+
<div class="phase-label">日常做需求 · 复杂按需</div>
|
|
308
|
+
<ul class="phase-list">
|
|
309
|
+
<li><code>/write-prd</code> 写业务文档<em>(给业务方 / 领导确认)</em></li>
|
|
310
|
+
<li><code>/write-spec</code> 写技术规格<em>(归档业务行为 / 规则 / 接口 / 数据,作为 plan 的稳定输入)</em></li>
|
|
311
|
+
<li><code>/write-plan</code> 拆执行计划<em>(给 agent 执行)</em></li>
|
|
312
|
+
<li><code>/code-impact-markdown</code> 沉淀业务决策 / 概念到 <code>docs/knowledge/</code></li>
|
|
313
|
+
</ul>
|
|
314
|
+
</div>
|
|
315
|
+
|
|
316
|
+
<div class="phase">
|
|
317
|
+
<div class="phase-label">工作回顾 · 按需</div>
|
|
318
|
+
<ul class="phase-list">
|
|
319
|
+
<li><code>/developer-timeline</code> 生成日报 / 周报 / 月报 / 阶段总结 / 交付汇报</li>
|
|
320
|
+
<li>直接问「我上周做了什么」「这个月干了啥」「X 是哪天做的」也能答</li>
|
|
321
|
+
<li><code>/code-impact-docgen</code> 从知识库合成面向人类阅读的业务 / 技术文档<em>(HTML 或 Markdown)</em></li>
|
|
322
|
+
</ul>
|
|
323
|
+
</div>
|
|
324
|
+
|
|
325
|
+
<div class="phase">
|
|
326
|
+
<div class="phase-label">背后 · agent 自动</div>
|
|
327
|
+
<ul class="phase-list">
|
|
328
|
+
<li>agent 经 <code>codegraph_explore</code> 自动查代码结构、调用链、影响半径<em>(你不用主动跑)</em></li>
|
|
329
|
+
<li>文件改动 → watcher 自动增量同步,无需手动 reindex</li>
|
|
330
|
+
<li><code>status</code> / <code>sync</code> / <code>explore</code> / <code>docs</code> / <code>db</code> / <code>timeline</code> 等子命令由 agent / skill 调用,人类日常不主动跑</li>
|
|
331
|
+
</ul>
|
|
332
|
+
</div>
|
|
333
|
+
|
|
334
|
+
<div class="phase">
|
|
335
|
+
<div class="phase-label">项目上下文 · agent 自动</div>
|
|
336
|
+
<ul class="phase-list">
|
|
337
|
+
<li><code>code-impact-api</code> agent 自动查 <code>docs/knowledge/</code> 业务决策 / 概念 / 历史教训</li>
|
|
338
|
+
<li><code>db-query</code> agent 自动查 MySQL / PostgreSQL 验证数据假设,沉淀 schema 知识到 <code>docs/schema-knowledge/</code></li>
|
|
339
|
+
</ul>
|
|
340
|
+
</div>
|
|
341
|
+
</div>
|
|
342
|
+
|
|
343
|
+
<div class="highlight">
|
|
344
|
+
<p><strong>日常默认 2 步</strong>——澄清 + 实现;复杂需求按需补 <code>prd</code> / <code>spec</code> / <code>plan</code> / 沉淀。<strong>cgraphx 在背后自动同步代码图谱、agent 自动查</strong>,你不需要主动跑命令。</p>
|
|
345
|
+
</div>
|
|
346
|
+
</section>
|
|
347
|
+
|
|
348
|
+
<section>
|
|
349
|
+
<h2>docs/ 目录速查</h2>
|
|
350
|
+
<p>翻文档时知道去哪儿找 —— 哪个目录由哪个 skill 自动维护、哪些是项目自身的文档。</p>
|
|
351
|
+
|
|
352
|
+
<ul class="docs-map">
|
|
353
|
+
<li>
|
|
354
|
+
<code class="dir">docs/knowledge/</code>
|
|
355
|
+
<span class="desc">业务知识库 —— 决策 / 概念定义 / 历史教训,被 <code>codegraph_docs_*</code> 索引。</span>
|
|
356
|
+
<span class="owner"><span class="label">维护:</span><code>code-impact-markdown</code>、<code>code-impact-init</code> 写;<code>code-impact-api</code> 查;<code>code-impact-docgen</code> 从这里合成人类阅读文档。</span>
|
|
357
|
+
</li>
|
|
358
|
+
<li>
|
|
359
|
+
<code class="dir">docs/features/</code>
|
|
360
|
+
<span class="desc">单次需求的工作目录 —— <code>{date}-{slug}/</code> 下集中放 PRD / spec / plan / knowledge。</span>
|
|
361
|
+
<span class="owner"><span class="label">维护:</span>全流程 skills —— <code>clarify-requirements</code> → <code>write-prd</code> → <code>write-spec</code> → <code>write-plan</code> → <code>implementation</code> / <code>subagent-implement</code>。</span>
|
|
362
|
+
</li>
|
|
363
|
+
<li>
|
|
364
|
+
<code class="dir">docs/schema-knowledge/</code>
|
|
365
|
+
<span class="desc">DB schema 知识沉淀 —— 表结构 / 字段含义 / 业务假设的验证记录。</span>
|
|
366
|
+
<span class="owner"><span class="label">维护:</span><code>db-query</code>(查 MySQL / PostgreSQL 后自动沉淀)。</span>
|
|
367
|
+
</li>
|
|
368
|
+
<li>
|
|
369
|
+
<code class="dir">docs/reports/</code>
|
|
370
|
+
<span class="desc">时间线报告 —— 日报 / 周报 / 月报 HTML。</span>
|
|
371
|
+
<span class="owner"><span class="label">维护:</span><code>developer-timeline</code>。</span>
|
|
372
|
+
</li>
|
|
373
|
+
<li>
|
|
374
|
+
<code class="dir">docs/published/</code>
|
|
375
|
+
<span class="desc">面向人类阅读的合成文档(HTML / Markdown),对外可分享。</span>
|
|
376
|
+
<span class="owner"><span class="label">维护:</span><code>code-impact-docgen</code>(从 <code>docs/knowledge/</code> 合成产出)。</span>
|
|
377
|
+
</li>
|
|
378
|
+
<li>
|
|
379
|
+
<code class="dir">docs/benchmarks/</code>
|
|
380
|
+
<span class="desc">cgraphx 自身的性能基准 / 检索质量对比文档。</span>
|
|
381
|
+
<span class="owner"><span class="manual">无 skill 维护 —— maintainer 配合 <code>agent-eval</code> 手动产出。</span></span>
|
|
382
|
+
</li>
|
|
383
|
+
<li>
|
|
384
|
+
<code class="dir">docs/design/</code>
|
|
385
|
+
<span class="desc">cgraphx 自身的设计文档 —— 架构 / 算法 / 方法论 playbooks。</span>
|
|
386
|
+
<span class="owner"><span class="manual">无 skill 维护 —— maintainer 手动维护。</span></span>
|
|
387
|
+
</li>
|
|
388
|
+
<li>
|
|
389
|
+
<code class="dir">docs/plans/</code>
|
|
390
|
+
<span class="desc">历史遗留的早期计划文档;新需求一律走 <code>docs/features/{id}/plan/</code>。</span>
|
|
391
|
+
<span class="owner"><span class="manual">无 skill 维护 —— 仅历史归档,不要往这里写新文件。</span></span>
|
|
392
|
+
</li>
|
|
393
|
+
</ul>
|
|
394
|
+
</section>
|
|
395
|
+
|
|
396
|
+
<footer>
|
|
397
|
+
<p>cgraphx 使用说明 · 2026-07-02</p>
|
|
398
|
+
</footer>
|
|
399
|
+
|
|
400
|
+
</div>
|
|
401
|
+
|
|
402
|
+
</body>
|
|
403
|
+
</html>
|
|
@@ -33,11 +33,11 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
|
|
|
33
33
|
你必须为下列每一项创建一个任务,并按顺序完成:
|
|
34
34
|
1. **探索上下文**
|
|
35
35
|
- 按需读项目结构、文档、代码、测试、schema、路由、模型、API、UI、既有约定
|
|
36
|
-
-
|
|
37
|
-
- `code-impact-api skill` — 查
|
|
38
|
-
- `db-query skill` — 查数据库、查 DDL
|
|
39
|
-
- `codegraph_explore` MCP 工具 / `cgraphx query` / `cgraphx affected` CLI —
|
|
40
|
-
- `developer-timeline skill` — 查用户最近做了什么(回顾开发历史)
|
|
36
|
+
- 项目里有这些工具可作为上下文补充, 对于符合的场景,必须使用:
|
|
37
|
+
- `code-impact-api skill` — 查 历史决策、业务概念、项目经验时必须使用
|
|
38
|
+
- `db-query skill` — 查数据库、查 DDL 时必须使用
|
|
39
|
+
- `codegraph_explore` MCP 工具 / `cgraphx query` / `cgraphx affected` CLI — 查代码调用关系、影响半径时必须使用
|
|
40
|
+
- `developer-timeline skill` — 查用户最近做了什么(回顾开发历史) 时必须使用
|
|
41
41
|
- 调用前明确告诉用户"我需要先查 X 来理解背景"。收集完简要陈述发现,不要大段贴原文
|
|
42
42
|
- 在假设任务形态之前,先识别当前行为和既有约束
|
|
43
43
|
|
|
@@ -360,6 +360,15 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
|
|
|
360
360
|
|
|
361
361
|
边界情况(任务量 2-3 个、文件 3-5 个)由主 agent 根据 plan 是否存在 + 任务独立性判断。
|
|
362
362
|
|
|
363
|
+
**事后沉淀环节(可选,不在实现前)**:无论选 `/implementation` 还是 `/subagent-implement`,实现推进过程中可按需触发两个事后文档 skill:
|
|
364
|
+
|
|
365
|
+
| skill | 触发时机 | 产物 | 主题 |
|
|
366
|
+
|---|---|---|---|
|
|
367
|
+
| `/write-api-doc` | 接口开发完毕(不必等所有自测) | `<文件前缀>-接口文档.html` | 仅本次 feature 新增的接口;从 spec 接口章节 + 代码反向提取 |
|
|
368
|
+
| `/code-impact-docgen` | 自测通过后 | `<文件前缀>-设计文档.md` | 整个 feature 的设计(架构/模块/决策);从 knowledge + spec + plan 合成 |
|
|
369
|
+
|
|
370
|
+
两者互不替代:同一 feature 可以同时产出接口文档和设计文档,各自服务不同读者。默认输出路径都在 `docs/features/<feature-id>/`。
|
|
371
|
+
|
|
363
372
|
## 最终输出
|
|
364
373
|
|
|
365
374
|
结束时,只输出一份澄清总结:
|
|
@@ -402,10 +411,12 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
|
|
|
402
411
|
|
|
403
412
|
**用户控制的下一步**
|
|
404
413
|
接下来你可以选择:
|
|
405
|
-
- 写 PRD(`/write-prd`)
|
|
406
|
-
- 起草 spec(`/write-spec`)
|
|
407
|
-
- 创建实现计划(`/write-plan`)
|
|
414
|
+
- 写 PRD(`/write-prd`)—— 产物 `<文件前缀>-需求文档.md`
|
|
415
|
+
- 起草 spec(`/write-spec`)—— 产物 `<文件前缀>-spec.md`
|
|
416
|
+
- 创建实现计划(`/write-plan`)—— 产物 `plan/<文件前缀>-index.md` 等
|
|
408
417
|
- 开始实现 —— 根据任务规模选(`/implementation` 简单 / `/subagent-implement` 复杂,详见「下游实现 skill 选择」)
|
|
418
|
+
- 接口开发完毕后 —— 用 `/write-api-doc` 生成 `<文件前缀>-接口文档.html`(只覆盖新增接口,可选)
|
|
419
|
+
- 自测通过后 —— 用 `/code-impact-docgen` 生成 `<文件前缀>-设计文档.md` 沉淀到 feature 目录(可选)
|
|
409
420
|
```
|
|
410
421
|
|
|
411
422
|
**输出这份总结后,不再继续。** 不自动调用任何下游 skill,不写代码,不写文档。
|