@kunlv/atdc 1.0.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/AGENTS.md +58 -0
- package/GO.md +245 -0
- package/bin/add-command.py +144 -0
- package/bin/atdc.js +460 -0
- package/bin/cls.js +98 -0
- package/central/link.sh +60 -0
- package/central/ticket_center_server/.handoffs/TASK-238389_QYinVipLimit.md +128 -0
- package/central/ticket_center_server/.test_plans/TASK-227254-SupportMembership-self-test-plan.md +566 -0
- package/central/ticket_center_server/.test_plans/task-238389-qyin-vip-limit-self-test-plan.md +210 -0
- package/commands/claude/atd.md +3 -0
- package/commands/claude/atdc/1-spec.md +5 -0
- package/commands/claude/atdc/1-update.md +5 -0
- package/commands/claude/atdc/2-qa.md +3 -0
- package/commands/claude/atdc/3-impl-skip-spec.md +5 -0
- package/commands/claude/atdc/3-impl.md +3 -0
- package/commands/claude/atdc/4-verify.md +3 -0
- package/commands/claude/atdc/5-done.md +3 -0
- package/commands/claude/atdc/add-command.md +4 -0
- package/commands/claude/atdc/add-to-hc.md +3 -0
- package/commands/claude/atdc/analysis-cls-log.md +4 -0
- package/commands/claude/atdc/article.md +6 -0
- package/commands/claude/atdc/bugfix.md +4 -0
- package/commands/claude/atdc/code-simplifier.md +8 -0
- package/commands/claude/atdc/commit.md +4 -0
- package/commands/claude/atdc/compound.md +5 -0
- package/commands/claude/atdc/context.md +3 -0
- package/commands/claude/atdc/diagnose.md +8 -0
- package/commands/claude/atdc/git-guardrails.md +18 -0
- package/commands/claude/atdc/grill-with-docs.md +8 -0
- package/commands/claude/atdc/handoff.md +8 -0
- package/commands/claude/atdc/health.md +3 -0
- package/commands/claude/atdc/learn.md +4 -0
- package/commands/claude/atdc/review.md +10 -0
- package/commands/claude/atdc/search.md +4 -0
- package/commands/claude/atdc/strategy.md +3 -0
- package/commands/claude/atdc/table2xlsx.md +4 -0
- package/commands/claude/atdc/test-plan.md +5 -0
- package/commands/claude/atdc/travel-planner.md +4 -0
- package/commands/claude/atdc/xlsx2sql-insert.md +4 -0
- package/commands/claude/atdc/xlsx2sql-update.md +4 -0
- package/commands/claude/atdc/zoom-out.md +8 -0
- package/commands/codex/atdc/SKILL.md +8 -0
- package/commands/codex/atdc-1-spec/SKILL.md +8 -0
- package/commands/codex/atdc-1-update/SKILL.md +8 -0
- package/commands/codex/atdc-2-qa/SKILL.md +8 -0
- package/commands/codex/atdc-3-impl/SKILL.md +8 -0
- package/commands/codex/atdc-3-impl-skip-spec/SKILL.md +8 -0
- package/commands/codex/atdc-4-verify/SKILL.md +8 -0
- package/commands/codex/atdc-5-done/SKILL.md +8 -0
- package/commands/codex/atdc-add-command/SKILL.md +7 -0
- package/commands/codex/atdc-add-to-hc/SKILL.md +8 -0
- package/commands/codex/atdc-analysis-cls-log/SKILL.md +5 -0
- package/commands/codex/atdc-article/SKILL.md +8 -0
- package/commands/codex/atdc-bugfix/SKILL.md +5 -0
- package/commands/codex/atdc-code-simplifier/SKILL.md +7 -0
- package/commands/codex/atdc-commit/SKILL.md +7 -0
- package/commands/codex/atdc-compound/SKILL.md +8 -0
- package/commands/codex/atdc-context/SKILL.md +8 -0
- package/commands/codex/atdc-diagnose/SKILL.md +9 -0
- package/commands/codex/atdc-git-guardrails/SKILL.md +19 -0
- package/commands/codex/atdc-grill-with-docs/SKILL.md +9 -0
- package/commands/codex/atdc-handoff/SKILL.md +9 -0
- package/commands/codex/atdc-health/SKILL.md +8 -0
- package/commands/codex/atdc-learn/SKILL.md +7 -0
- package/commands/codex/atdc-review/SKILL.md +49 -0
- package/commands/codex/atdc-search/SKILL.md +5 -0
- package/commands/codex/atdc-strategy/SKILL.md +8 -0
- package/commands/codex/atdc-table2xlsx/SKILL.md +8 -0
- package/commands/codex/atdc-test-plan/SKILL.md +13 -0
- package/commands/codex/atdc-travel-planner/SKILL.md +7 -0
- package/commands/codex/atdc-xlsx2sql-insert/SKILL.md +8 -0
- package/commands/codex/atdc-xlsx2sql-update/SKILL.md +8 -0
- package/commands/codex/atdc-zoom-out/SKILL.md +9 -0
- package/commands/cursor/atdc/SKILL.md +8 -0
- package/commands/cursor/atdc-1-spec/SKILL.md +8 -0
- package/commands/cursor/atdc-1-update/SKILL.md +8 -0
- package/commands/cursor/atdc-2-qa/SKILL.md +8 -0
- package/commands/cursor/atdc-3-impl/SKILL.md +8 -0
- package/commands/cursor/atdc-3-impl-skip-spec/SKILL.md +8 -0
- package/commands/cursor/atdc-4-verify/SKILL.md +8 -0
- package/commands/cursor/atdc-5-done/SKILL.md +8 -0
- package/commands/cursor/atdc-add-command/SKILL.md +7 -0
- package/commands/cursor/atdc-add-to-hc/SKILL.md +8 -0
- package/commands/cursor/atdc-analysis-cls-log/SKILL.md +5 -0
- package/commands/cursor/atdc-article/SKILL.md +8 -0
- package/commands/cursor/atdc-bugfix/SKILL.md +5 -0
- package/commands/cursor/atdc-code-simplifier/SKILL.md +7 -0
- package/commands/cursor/atdc-commit/SKILL.md +7 -0
- package/commands/cursor/atdc-compound/SKILL.md +8 -0
- package/commands/cursor/atdc-context/SKILL.md +8 -0
- package/commands/cursor/atdc-diagnose/SKILL.md +8 -0
- package/commands/cursor/atdc-git-guardrails/SKILL.md +18 -0
- package/commands/cursor/atdc-grill-with-docs/SKILL.md +8 -0
- package/commands/cursor/atdc-handoff/SKILL.md +8 -0
- package/commands/cursor/atdc-health/SKILL.md +8 -0
- package/commands/cursor/atdc-learn/SKILL.md +7 -0
- package/commands/cursor/atdc-review/SKILL.md +49 -0
- package/commands/cursor/atdc-search/SKILL.md +5 -0
- package/commands/cursor/atdc-strategy/SKILL.md +8 -0
- package/commands/cursor/atdc-table2xlsx/SKILL.md +8 -0
- package/commands/cursor/atdc-test-plan/SKILL.md +7 -0
- package/commands/cursor/atdc-travel-planner/SKILL.md +7 -0
- package/commands/cursor/atdc-xlsx2sql-insert/SKILL.md +8 -0
- package/commands/cursor/atdc-xlsx2sql-update/SKILL.md +8 -0
- package/commands/cursor/atdc-zoom-out/SKILL.md +8 -0
- package/commands/opencode/atd.md +6 -0
- package/commands/opencode/atdc/1-spec.md +8 -0
- package/commands/opencode/atdc/1-update.md +8 -0
- package/commands/opencode/atdc/2-qa.md +6 -0
- package/commands/opencode/atdc/3-impl-skip-spec.md +8 -0
- package/commands/opencode/atdc/3-impl.md +6 -0
- package/commands/opencode/atdc/4-verify.md +6 -0
- package/commands/opencode/atdc/5-done.md +6 -0
- package/commands/opencode/atdc/add-command.md +6 -0
- package/commands/opencode/atdc/add-to-hc.md +6 -0
- package/commands/opencode/atdc/analysis-cls-log.md +6 -0
- package/commands/opencode/atdc/article.md +6 -0
- package/commands/opencode/atdc/bugfix.md +6 -0
- package/commands/opencode/atdc/code-simplifier.md +8 -0
- package/commands/opencode/atdc/commit.md +6 -0
- package/commands/opencode/atdc/compound.md +8 -0
- package/commands/opencode/atdc/context.md +6 -0
- package/commands/opencode/atdc/diagnose.md +8 -0
- package/commands/opencode/atdc/git-guardrails.md +18 -0
- package/commands/opencode/atdc/grill-with-docs.md +8 -0
- package/commands/opencode/atdc/handoff.md +8 -0
- package/commands/opencode/atdc/health.md +6 -0
- package/commands/opencode/atdc/learn.md +6 -0
- package/commands/opencode/atdc/review.md +7 -0
- package/commands/opencode/atdc/search.md +6 -0
- package/commands/opencode/atdc/strategy.md +6 -0
- package/commands/opencode/atdc/table2xlsx.md +6 -0
- package/commands/opencode/atdc/test-plan.md +6 -0
- package/commands/opencode/atdc/travel-planner.md +6 -0
- package/commands/opencode/atdc/xlsx2sql-insert.md +6 -0
- package/commands/opencode/atdc/xlsx2sql-update.md +6 -0
- package/commands/opencode/atdc/zoom-out.md +8 -0
- package/config/cls-defaults.json +19 -0
- package/hooks/atd-archive.sh +86 -0
- package/hooks/atd-state.sh +165 -0
- package/hooks/evidence-hook.sh +88 -0
- package/hooks/evidence-log.sh +54 -0
- package/hooks/guardrails.sh +65 -0
- package/hooks/handoff-compress.sh +104 -0
- package/hooks/phase-guard.sh +134 -0
- package/hooks/phase-write-guard.sh +96 -0
- package/hooks/ponytail-fix.sh +179 -0
- package/hooks/ponytail-guard.sh +66 -0
- package/hooks/ponytail-scan.sh +62 -0
- package/install.sh +276 -0
- package/package.json +20 -0
- package/packages/cls/bin/cls.js +146 -0
- package/packages/cls/config/defaults.json +17 -0
- package/packages/cls/mcp/server.js +142 -0
- package/packages/cls/package.json +29 -0
- package/packages/cls/scripts/postinstall.js +19 -0
- package/packages/cls/src/client.js +262 -0
- package/prompts/1-spec.md +271 -0
- package/prompts/1-update.md +198 -0
- package/prompts/2-qa.md +164 -0
- package/prompts/3-impl-bugfix.md +271 -0
- package/prompts/3-impl.md +419 -0
- package/prompts/4-verify.md +160 -0
- package/prompts/5-done.md +227 -0
- package/prompts/6-article.md +571 -0
- package/prompts/X-add-command.md +60 -0
- package/prompts/X-add-to-hc.md +178 -0
- package/prompts/X-analysis-cls-log.md +68 -0
- package/prompts/X-bugfix.md +10 -0
- package/prompts/X-code-simplifier.md +38 -0
- package/prompts/X-commit.md +116 -0
- package/prompts/X-compound.md +188 -0
- package/prompts/X-context-scan.md +101 -0
- package/prompts/X-diagnose.md +116 -0
- package/prompts/X-grill-with-docs.md +120 -0
- package/prompts/X-handoff.md +80 -0
- package/prompts/X-health.md +78 -0
- package/prompts/X-learn.md +151 -0
- package/prompts/X-review.md +417 -0
- package/prompts/X-search.md +74 -0
- package/prompts/X-strategy.md +95 -0
- package/prompts/X-table2xlsx.md +46 -0
- package/prompts/X-test-plan.md +436 -0
- package/prompts/X-travel-planner.md +22 -0
- package/prompts/X-xlsx2sql-insert.md +34 -0
- package/prompts/X-xlsx2sql-update.md +40 -0
- package/prompts/X-zoom-out.md +119 -0
- package/reference/diagnose-loop.md +66 -0
- package/reference/gates.md +90 -0
- package/reference/git-guardrails.md +71 -0
- package/reference/guards.md +275 -0
- package/reference/learn.md +100 -0
- package/reference/memory.md +190 -0
- package/reference/risk.md +74 -0
- package/reference/tdd.md +40 -0
- package/scripts/svg2png.js +46 -0
- package/src/cls/client.js +244 -0
- package/src/constants.js +49 -0
- package/src/evidence/ai-draft-metrics.js +157 -0
- package/src/evidence/canvas.js +184 -0
- package/src/evidence/index.js +98 -0
- package/src/evidence/sink-events.js +165 -0
- package/src/evidence/stage-timing.js +112 -0
- package/src/installers/claude.js +79 -0
- package/src/installers/codex.js +62 -0
- package/src/installers/opencode.js +72 -0
- package/src/manifest/ponytail-patterns.json +185 -0
- package/src/mcp/cls-mcp-server.js +142 -0
- package/src/utils.js +79 -0
- package/src/validators/state-validate.js +123 -0
- package/templates/.phase-state.json +13 -0
- package/templates/adr.md +62 -0
- package/templates/changelog.md +21 -0
- package/templates/concepts.md +35 -0
- package/templates/design.md +47 -0
- package/templates/handoff.md +64 -0
- package/templates/learn-skill.md +43 -0
- package/templates/progress.json +17 -0
- package/templates/proposal.md +29 -0
- package/templates/solution.md +36 -0
- package/templates/strategy.md +39 -0
- package/templates/tasks.md +41 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# prompts/X-add-to-hc · 添加接口到 .hc HTTP Client
|
|
2
|
+
|
|
3
|
+
横向命令,触发词:add-to-hc、add to hc、/atdc:add-to-hc、加接口、添加 hc
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 目标
|
|
8
|
+
|
|
9
|
+
将新的 API 接口添加到 ticket_center_server 的 `.hc/external_routes.http`,生成可用的 HTTP Client 测试条目。
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Phase 0:定位目标文件
|
|
14
|
+
|
|
15
|
+
优先读取 `~/.atdc/config/hc-target.txt` 获取用户配置的 .hc 目录路径。
|
|
16
|
+
若不存在该文件,使用默认路径:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/Users/lvkun/Documents/Codes/ticket_center_server.TASK-235057_QYinInternalMsg/.hc
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
然后读取以下文件以了解现有结构:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
cat <hc-dir>/external_routes.http
|
|
26
|
+
cat <hc-dir>/http-client.env.json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Phase 1:解析用户输入
|
|
32
|
+
|
|
33
|
+
用户可能提供以下形式之一:
|
|
34
|
+
|
|
35
|
+
| 输入类型 | 示例 |
|
|
36
|
+
|---------|------|
|
|
37
|
+
| 结构化 | `POST /v1/order/refund_apply 申请退款 {"order_no":"xxx"}` |
|
|
38
|
+
| 仅路径 | `/v1/ticket/recommend_list` |
|
|
39
|
+
| 自然语言 | "加一个获取演出推荐的接口" |
|
|
40
|
+
| 仅路径+描述 | `/v1/user/follow_list 获取关注列表` |
|
|
41
|
+
|
|
42
|
+
解析出以下字段(缺失的按模板推断或反问):
|
|
43
|
+
- **method**: GET/POST(路径含 `list/detail/info/count` → GET,`create/submit/cancel/do/register` → POST)
|
|
44
|
+
- **path**: 完整路径(如 `/v1/order/refund_apply`)
|
|
45
|
+
- **description**: 中文描述(如未提供,按规则生成)
|
|
46
|
+
- **body**: POST 时的 JSON body(可选,缺失则反问)
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Phase 2:模板匹配
|
|
51
|
+
|
|
52
|
+
### 2a. 鉴权模板(根据路径前缀自动匹配)
|
|
53
|
+
|
|
54
|
+
| 路径前缀 | 鉴权方式 | 预请求脚本 | 公参模板 |
|
|
55
|
+
|---------|---------|-----------|---------|
|
|
56
|
+
| `/v1/ticket/` | 标准签名 | `< sign.js` | `appid={{appid}}&clientver={{clientver}}&clienttime={{$timestamp}}&mid={{mid}}&uuid={{uuid}}&dfid={{dfid}}&userid={{userid}}&token={{token}}&signature={{signature}}` |
|
|
57
|
+
| `/v1/banner/` | 标准签名 | `< sign.js` | 同上 |
|
|
58
|
+
| `/v1/search/` | 标准签名 | `< sign.js` | 同上 |
|
|
59
|
+
| `/v1/config/` | 标准签名 | `< sign.js` | 同上 |
|
|
60
|
+
| `/v1/wish/` | 标准签名 | `< sign.js` | 同上 |
|
|
61
|
+
| `/v1/celebrity/` | 标准签名 | `< sign.js` | 同上 |
|
|
62
|
+
| `/v1/user/collect*` | UserToken | `< sign.js` | 标准公参 + `&app_third_code={{app_third_code}}` |
|
|
63
|
+
| `/v1/user/subscribe*` | UserToken | `< sign.js` | 同上 |
|
|
64
|
+
| `/v1/user/wish/` | UserToken | `< sign.js` | 同上 |
|
|
65
|
+
| `/v1/user/celebrity/` | UserToken | `< sign.js` | 同上 |
|
|
66
|
+
| `/v1/user/missing*` | UserToken | `< sign.js` | 同上 |
|
|
67
|
+
| `/v1/order/` | UserToken | `< sign.js` | 同上 |
|
|
68
|
+
| `/v1/refund/` | UserToken | `< sign.js` | 同上 |
|
|
69
|
+
| `/v1/ticket_folder/` | 无签名 | 无 | `userid={{userid}}&token={{token}}` |
|
|
70
|
+
| `/inner/v1/` | 无签名 | 无 | 按已有条目推断 |
|
|
71
|
+
| `/qqmusic/v1/` | Q音 | 按已有条目推断 | 按已有条目推断 |
|
|
72
|
+
|
|
73
|
+
### 2b. 中文描述模板(未提供时自动生成)
|
|
74
|
+
|
|
75
|
+
| method + 路径后缀 | 生成描述 |
|
|
76
|
+
|------------------|---------|
|
|
77
|
+
| GET */list | 获取...列表 |
|
|
78
|
+
| GET */detail | 获取...详情 |
|
|
79
|
+
| GET */info | 获取...信息 |
|
|
80
|
+
| GET */count | 获取...数量 |
|
|
81
|
+
| GET */status | 查询...状态 |
|
|
82
|
+
| GET */hot_list | 获取...热门列表 |
|
|
83
|
+
| GET */popular_list | 获取...精选列表 |
|
|
84
|
+
| POST */create | 创建... |
|
|
85
|
+
| POST */submit | 提交... |
|
|
86
|
+
| POST */cancel | 取消... |
|
|
87
|
+
| POST */do | 执行...操作 |
|
|
88
|
+
| POST */register | ...登记 |
|
|
89
|
+
| POST */check | 核验... |
|
|
90
|
+
|
|
91
|
+
路径中间的英文名自动翻译为中文关键词:
|
|
92
|
+
- ticket → 演出/票品
|
|
93
|
+
- order → 订单
|
|
94
|
+
- refund → 退款
|
|
95
|
+
- subscribe → 预约
|
|
96
|
+
- celebrity → 歌手
|
|
97
|
+
- wish → 许愿
|
|
98
|
+
- search → 搜索
|
|
99
|
+
- banner → Banner
|
|
100
|
+
- config → 配置
|
|
101
|
+
- user → 用户
|
|
102
|
+
|
|
103
|
+
### 2c. 分类 Section 匹配
|
|
104
|
+
|
|
105
|
+
| 路径前缀 | 插入位置 |
|
|
106
|
+
|---------|---------|
|
|
107
|
+
| `/v1/ticket/` | 一、演出(ticket)末尾 |
|
|
108
|
+
| `/v1/banner/` | 二、Banner 末尾 |
|
|
109
|
+
| `/v1/user/collect*` `/v1/user/subscribe*` `/v1/user/performance_show*` | 三、想看 / 预约 末尾 |
|
|
110
|
+
| `/v1/user/missing*` | 四、缺票登记 末尾 |
|
|
111
|
+
| `/v1/order/` | 五、订单 末尾 |
|
|
112
|
+
| `/v1/search/` | 六、搜索 末尾 |
|
|
113
|
+
| `/v1/ticket_folder/` | 七、票夹 末尾 |
|
|
114
|
+
| `/v1/refund/` | 八、退款 末尾 |
|
|
115
|
+
| `/v1/config/` | 九、配置 末尾 |
|
|
116
|
+
| `/v1/user/wish/` | 十、许愿加场 末尾 |
|
|
117
|
+
| `/v1/celebrity/` `/v1/user/celebrity/` | 十一、歌手页 末尾 |
|
|
118
|
+
| `/qqmusic/v1/` | 十二、Q音专属路由 末尾 |
|
|
119
|
+
| `/inner/v1/` | 文件末尾(新建 section 或插入已有 section) |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Phase 3:生成条目
|
|
124
|
+
|
|
125
|
+
### GET 请求格式
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
### <描述>
|
|
129
|
+
[< sign.js 或 < sign_server.js 或 无]
|
|
130
|
+
GET {{BASE_URL}}{{PREFIX}}<path>?<公参>[&业务参数]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### POST 请求格式
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
### <描述>
|
|
137
|
+
[< sign.js 或 < sign_server.js 或 无]
|
|
138
|
+
POST {{BASE_URL}}{{PREFIX}}<path>?<公参>
|
|
139
|
+
Content-Type: application/json
|
|
140
|
+
|
|
141
|
+
[<JSON body>]
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 规则
|
|
145
|
+
|
|
146
|
+
1. 公参按 Phase 2a 的鉴权模板填写
|
|
147
|
+
2. 业务参数追加在公参后面(GET 的 query 参数在 URL 中,POST 的在 body 中)
|
|
148
|
+
3. POST 无 body 时省略 body 部分
|
|
149
|
+
4. 无鉴权时 `< script` 行省略,Content-Type 也省略(除非 POST 有 body)
|
|
150
|
+
5. 描述用 `###` 注释分隔,空行与已有条目保持一致
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Phase 4:插入文件
|
|
155
|
+
|
|
156
|
+
1. 在 `external_routes.http` 中找到对应 section 的 `###` 起始注释行
|
|
157
|
+
2. 在该 section 最后一个请求条目之后、下一个 section(`# ───` 或 `###` 开头的新 section)之前插入
|
|
158
|
+
3. 前后各保留一个空行,与已有格式一致
|
|
159
|
+
4. 用 **Edit 工具** 精确插入,不要重写整个文件
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Phase 5:输出确认
|
|
164
|
+
|
|
165
|
+
插入后输出一行确认:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
✓ 已添加 [method] [path] → .hc/external_routes.http([section名],第[N]行)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 特殊情况处理
|
|
174
|
+
|
|
175
|
+
- **路径前缀不在已知模板中**:反问用户鉴权方式(1=标准签名 2=UserToken 3=服务间 4=无签名)
|
|
176
|
+
- **POST 无 body 描述**:反问 "这个 POST 接口是否有 request body?"
|
|
177
|
+
- **路径冲突(已存在)**:提示已存在,询问是否覆盖
|
|
178
|
+
- **无法推断分类**:插入到文件末尾,并在注释中标注 "Chore: 未分类"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# prompts/X-analysis-cls-log · CLS 日志分析
|
|
2
|
+
|
|
3
|
+
从此文件读取后直接开始执行,无需用户再次确认。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 输入
|
|
8
|
+
|
|
9
|
+
日志文件路径:`$ARGUMENTS`
|
|
10
|
+
|
|
11
|
+
若未指定路径 → 提示"请提供日志文件路径,如 /atdc:analysis-cls-log ~/.cls/logs/tcs_xxx.jsonl",停止。
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Step 1:读取日志文件
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
cat $ARGUMENTS | head -500
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
若文件不存在或为空 → 停止。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Step 2:执行分析
|
|
26
|
+
|
|
27
|
+
读取 cls-log-investigation 的排查流程并按需执行:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Read /Users/lvkun/Documents/Codes/agent-skills/cls-log-investigation/SKILL.md
|
|
31
|
+
Read /Users/lvkun/Documents/Codes/agent-skills/cls-log-investigation/references/decision-rules.md
|
|
32
|
+
Read /Users/lvkun/Documents/Codes/agent-skills/cls-log-investigation/references/topics.yaml
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
1. **日志分类**:统计 ERROR / WARN / INFO 数量和占比
|
|
36
|
+
2. **异常识别**:提取错误码、异常堆栈、重复模式
|
|
37
|
+
3. **噪声过滤**:排除已知噪声(如 Apollo 空值 WARN、cfgcenter 504 等)
|
|
38
|
+
4. **根因推断**:基于日志锚点 + 错误码给出可能根因
|
|
39
|
+
5. **分级结论**:查证级 / 模块级 / 行级
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Step 3:输出报告
|
|
44
|
+
|
|
45
|
+
按报告模板格式生成报告:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Read /Users/lvkun/Documents/Codes/agent-skills/cls-log-investigation/references/report-template.md
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
.cls-reports/{文件名}-analysis.md
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
报告必须包含:
|
|
56
|
+
- 一句话结论
|
|
57
|
+
- 要不要改代码(改 / 先别动 / 待验证)
|
|
58
|
+
- 行动清单
|
|
59
|
+
- 什么情况下推翻结论
|
|
60
|
+
- 代码语义(日志锚点 → 源码含义)
|
|
61
|
+
- 已确认日志事实
|
|
62
|
+
- 根因推断
|
|
63
|
+
- 不确定项
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
mkdir -p .cls-reports
|
|
67
|
+
# 写入报告文件
|
|
68
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# prompts/X-code-simplifier · 代码简化
|
|
2
|
+
|
|
3
|
+
横向命令,基于 `code-simplifier` skill 对代码进行简化、精炼和清理。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Step 0:确保 skill 已安装
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
if [ ! -f ~/.agents/skills/code-simplifier/SKILL.md ]; then
|
|
11
|
+
npx skills add aktsmm/agent-skills@code-simplifier -g -y
|
|
12
|
+
fi
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 执行
|
|
16
|
+
|
|
17
|
+
1. 用 Skill 工具加载 `code-simplifier` skill
|
|
18
|
+
2. 按 skill 中的规则对目标代码进行简化:
|
|
19
|
+
- 保留功能不变
|
|
20
|
+
- 遵循项目编码规范
|
|
21
|
+
- 增强可读性(减少嵌套、消除冗余、清晰命名)
|
|
22
|
+
- 仅处理最近修改或用户指定的代码范围
|
|
23
|
+
3. 简化完成后运行测试确保无回归
|
|
24
|
+
|
|
25
|
+
## 参数
|
|
26
|
+
|
|
27
|
+
| 参数 | 模式 |
|
|
28
|
+
|------|------|
|
|
29
|
+
| 文件路径 | 简化指定文件 |
|
|
30
|
+
| `PR` / `diff` | 简化当前分支变更 |
|
|
31
|
+
| 无参数 | 简化最近修改的文件 |
|
|
32
|
+
|
|
33
|
+
## 完成标准
|
|
34
|
+
|
|
35
|
+
- [ ] 所有测试通过
|
|
36
|
+
- [ ] 功能无变化
|
|
37
|
+
- [ ] 代码符合项目规范
|
|
38
|
+
- [ ] 无新增过度抽象
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# prompts/X-commit · Git Commit Message 规范化生成
|
|
2
|
+
|
|
3
|
+
横向命令,任意时刻可触发:`/atdc:commit`。基于 `git diff` 生成符合 Conventional Commits 规范的提交信息。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 规范
|
|
8
|
+
|
|
9
|
+
### 格式
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
<type>(<scope>): <subject>
|
|
13
|
+
|
|
14
|
+
<body>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Type 类型
|
|
18
|
+
|
|
19
|
+
- `feat`: 新功能
|
|
20
|
+
- `fix`: Bug 修复
|
|
21
|
+
- `docs`: 文档更新
|
|
22
|
+
- `style`: 代码格式调整(不影响逻辑)
|
|
23
|
+
- `refactor`: 重构(既不是新功能也不是修复)
|
|
24
|
+
- `perf`: 性能优化
|
|
25
|
+
- `test`: 测试相关
|
|
26
|
+
- `chore`: 构建过程或辅助工具变动
|
|
27
|
+
|
|
28
|
+
### 规则
|
|
29
|
+
|
|
30
|
+
1. subject 使用中文,不超过 50 字
|
|
31
|
+
2. subject 不要以句号结尾
|
|
32
|
+
3. scope 用英文小写,表示影响范围(如 auth、api、ui)
|
|
33
|
+
4. body 部分可选,用于解释 why 而不是 what
|
|
34
|
+
5. 如果有 Breaking Change,必须在 body 中用 `BREAKING CHANGE:` 说明
|
|
35
|
+
6. 使用祈使语气("添加"、"修复"、"删除",而非"添加了"、"已修复")
|
|
36
|
+
|
|
37
|
+
### 禁止出现
|
|
38
|
+
|
|
39
|
+
- "This commit"、"I"、"we"、"目前"、"现在" — diff 本身说明了 what
|
|
40
|
+
- Emoji(除非项目规范要求)
|
|
41
|
+
- 在 scope 已明确时重复文件名
|
|
42
|
+
- 任何 AI 归属标注("Generated with...")
|
|
43
|
+
|
|
44
|
+
### 何时必须写 body
|
|
45
|
+
|
|
46
|
+
- Breaking changes
|
|
47
|
+
- 安全修复
|
|
48
|
+
- 数据迁移
|
|
49
|
+
- 回滚之前的 commit
|
|
50
|
+
- 非显而易见的意图
|
|
51
|
+
|
|
52
|
+
### 示例
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
feat(auth): 添加微信扫码登录功能
|
|
56
|
+
|
|
57
|
+
fix(api): 修复用户列表分页参数错误
|
|
58
|
+
|
|
59
|
+
refactor(utils): 重构日期格式化工具函数
|
|
60
|
+
|
|
61
|
+
提取公共逻辑,支持更多日期格式
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 执行步骤
|
|
67
|
+
|
|
68
|
+
### Step 1:获取变更内容
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
git diff --staged
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
如果 staged 区为空,检查 `git diff`(未暂存的变更)。如果仍为空,提示用户先 `git add`。
|
|
75
|
+
|
|
76
|
+
### Step 2:分析变更
|
|
77
|
+
|
|
78
|
+
阅读 diff 内容,判断:
|
|
79
|
+
- 变更类型(feat / fix / refactor / ...)
|
|
80
|
+
- 影响范围(scope)
|
|
81
|
+
- 变更意图(why)
|
|
82
|
+
|
|
83
|
+
### Step 3:生成 commit message
|
|
84
|
+
|
|
85
|
+
按上述规范生成,以代码块形式输出。如果变更有非显而易见的意图,补充 body。
|
|
86
|
+
|
|
87
|
+
### Step 4:请用户确认
|
|
88
|
+
|
|
89
|
+
以代码块输出 message,询问用户:
|
|
90
|
+
- **确认执行** → 立即 `git commit -m "<message>"`
|
|
91
|
+
- **需要修改** → 按用户要求调整后重新确认
|
|
92
|
+
- **仅查看** → 不执行
|
|
93
|
+
|
|
94
|
+
**规则**:`git commit` 必须在用户明确确认后才能执行,禁止跳过确认自动提交。
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 参数
|
|
99
|
+
|
|
100
|
+
| 参数 | 行为 |
|
|
101
|
+
|------|------|
|
|
102
|
+
| 无参数 | 读取 `git diff --staged` |
|
|
103
|
+
| `--unstaged` | 读取 `git diff`(未暂存变更) |
|
|
104
|
+
| `--range <ref>` | 读取指定范围的 diff,如 `--range HEAD~3` |
|
|
105
|
+
| `--amend` | 读取上次 commit 的变更,用于修正 commit message |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 完成标准
|
|
110
|
+
|
|
111
|
+
- [ ] 生成的 message 符合 Conventional Commits 格式
|
|
112
|
+
- [ ] subject 为中文,不超过 50 字,无句号
|
|
113
|
+
- [ ] scope 为英文小写
|
|
114
|
+
- [ ] body 解释了 why(如需要)
|
|
115
|
+
- [ ] Breaking Change 已用 `BREAKING CHANGE:` 标注(如适用)
|
|
116
|
+
- [ ] `git commit` 仅在用户明确确认后执行
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# prompts/X-compound · 知识沉淀
|
|
2
|
+
|
|
3
|
+
横向命令,将已解决的问题结构化沉淀到个人知识库 `~/Documents/Obsidian/Docs/`,按类别归档。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 目标
|
|
8
|
+
|
|
9
|
+
捕获问题解决方案,让知识复利。第一次解决某个问题需要调研,记录后下次只需几分钟。
|
|
10
|
+
所有知识统一存储于个人 Obsidian 知识库,跨项目复用。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Phase 0:判断模式
|
|
15
|
+
|
|
16
|
+
检查参数:
|
|
17
|
+
|
|
18
|
+
- **无参数** → Phase 1(交互式,选择沉淀目标)
|
|
19
|
+
- **`<change-name>`** → Phase 2(从指定 change 提取知识)
|
|
20
|
+
- **`session`** → Phase 3(从当前 session 提取)
|
|
21
|
+
- **`concepts`** → Phase 5(仅更新 CONCEPTS.md)
|
|
22
|
+
- **`skills`** → Phase 6(扫描未晋升的 harvested skill,提示晋升候选)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Phase 0.5:确定归类目录
|
|
27
|
+
|
|
28
|
+
根据解决方案类型,选择 Docs 下的子目录:
|
|
29
|
+
|
|
30
|
+
| 目录 | 适用场景 |
|
|
31
|
+
|------|---------|
|
|
32
|
+
| `claude-code/` | Claude Code / opencode 配置、调试、工具链 |
|
|
33
|
+
| `ai-tools/` | AI 辅助开发工具、MCP Server、Skill |
|
|
34
|
+
| `development/` | 通用开发技巧、语言特性、框架用法 |
|
|
35
|
+
| `gsd/` | GSD 相关(目标-场景-决策框架)|
|
|
36
|
+
| `atdc/` | atdc 工作流使用经验 |
|
|
37
|
+
| `cursor/` | Cursor IDE 配置和技巧 |
|
|
38
|
+
| `kugou/` | Kugou 业务相关 |
|
|
39
|
+
|
|
40
|
+
不确定归类时,提示用户选择。
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Phase 1:选择沉淀目标
|
|
45
|
+
|
|
46
|
+
输出选项让用户选择:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
📚 知识沉淀 — 选择来源:
|
|
50
|
+
|
|
51
|
+
1. 从已归档的 change 提取(列出最近 5 个)
|
|
52
|
+
2. 从当前 session 提取(本次对话中解决的问题)
|
|
53
|
+
3. 手动描述一个已解决的问题
|
|
54
|
+
|
|
55
|
+
选择:
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
选择后进入对应 Phase。
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Phase 2:从归档 change 提取
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# 列出最近归档的 changes
|
|
66
|
+
ls -t openspec/changes/archive/ 2>/dev/null | head -5
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
1. 读取选中 change 的 `proposal.md` 和 `design.md`
|
|
70
|
+
2. 提取:解决了什么问题、用了什么方案、排除了什么
|
|
71
|
+
3. 进入 Phase 4
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Phase 3:从当前 session 提取
|
|
76
|
+
|
|
77
|
+
回顾当前 session 的对话历史,识别:
|
|
78
|
+
|
|
79
|
+
1. **解决过的问题**:bug 修复、架构决策、技术选型
|
|
80
|
+
2. **排除过的方案**:尝试过但不 work 的路径
|
|
81
|
+
3. **有价值的教训**:超过 2 次尝试才解决的问题
|
|
82
|
+
|
|
83
|
+
提取后进入 Phase 4。
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Phase 4:生成知识文档 + 可选更新 CONCEPTS
|
|
88
|
+
|
|
89
|
+
### 4a. 生成 solution 文档
|
|
90
|
+
|
|
91
|
+
参考 `@atdc/templates/solution.md`,生成 `~/Documents/Obsidian/Docs/<category>/<topic>.md`:
|
|
92
|
+
|
|
93
|
+
- **YAML frontmatter 必填**:title, date, tags, difficulty, module
|
|
94
|
+
- **可检索关键词**:3-5 个,用于未来模糊匹配
|
|
95
|
+
- **控制篇幅**:每个文档 20-40 行,不展开代码细节(指向源文件)
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
mkdir -p ~/Documents/Obsidian/Docs/<category>
|
|
99
|
+
# 写入 ~/Documents/Obsidian/Docs/<category>/<topic>.md
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 4b. 检测是否需要更新 CONCEPTS
|
|
103
|
+
|
|
104
|
+
检查本次沉淀是否引入了新的领域概念:
|
|
105
|
+
|
|
106
|
+
1. 读取项目根目录 `CONCEPTS.md`
|
|
107
|
+
2. 比对 solution 中出现的术语
|
|
108
|
+
3. 有新概念 → 提示用户是否更新 CONCEPTS.md
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
检测到新的领域概念:
|
|
112
|
+
- <概念 A>:在本次 solution 中出现,未记录在 CONCEPTS.md
|
|
113
|
+
- <概念 B>:同上
|
|
114
|
+
|
|
115
|
+
是否更新 CONCEPTS.md?(y/n)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
用户确认后,将新概念追加到 CONCEPTS.md 对应表格中。
|
|
119
|
+
|
|
120
|
+
### 4c. 可发现性检查
|
|
121
|
+
|
|
122
|
+
知识已存入 Obsidian Docs 个人知识库,具备 Obsidian 原生搜索 + 反向链接能力,无需额外发现性配置。跳过。
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Phase 5:仅更新 CONCEPTS.md
|
|
127
|
+
|
|
128
|
+
用户指定 `concepts` 参数时:
|
|
129
|
+
|
|
130
|
+
1. 扫描项目源码,识别领域实体和命名流程
|
|
131
|
+
2. 读取现有 `CONCEPTS.md`
|
|
132
|
+
3. 补充缺失的概念,更新过时的描述
|
|
133
|
+
4. 如果 CONCEPTS.md 不存在,参考 `@atdc/templates/concepts.md` 创建
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Phase 6:完成
|
|
138
|
+
|
|
139
|
+
输出:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
✅ 知识沉淀完成
|
|
143
|
+
|
|
144
|
+
新增文档:~/Documents/Obsidian/Docs/<category>/<topic>.md
|
|
145
|
+
CONCEPTS.md:<已更新 / 无需更新 / 未创建>
|
|
146
|
+
|
|
147
|
+
沉淀的知识已存入 Obsidian Docs,可通过 Obsidian 搜索和反向链接发现。
|
|
148
|
+
可随时运行 /atd compound 沉淀更多知识。
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Phase 6:扫描未晋升的 harvested skill
|
|
154
|
+
|
|
155
|
+
用户指定 `skills` 参数,或 Phase 1 交互中选择此项时:
|
|
156
|
+
|
|
157
|
+
### 6a. 扫描 .memory.md 中的 🧠 条目
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
_PROJ=$(basename "$(git worktree list 2>/dev/null | head -1 | awk '{print $1}')" 2>/dev/null || basename "$PWD")
|
|
161
|
+
grep "^## 🧠" "$HOME/.atdc/memory/$_PROJ/.memory.md" 2>/dev/null || echo "[无 learned-skill 条目]"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### 6b. 检查是否满足 promotion rule
|
|
165
|
+
|
|
166
|
+
对每条 🧠 条目:
|
|
167
|
+
1. 读取完整内容(Read 工具)
|
|
168
|
+
2. 检查是否有 `failure:` 字段(命名失败模式)
|
|
169
|
+
3. 检查是否有 `dead-end:` 字段(排除的死路)
|
|
170
|
+
4. 检查是否有 passing check(从 change 关联推断)
|
|
171
|
+
|
|
172
|
+
### 6c. 输出晋升候选
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
🔍 Learned-skill 晋升扫描
|
|
176
|
+
|
|
177
|
+
已记录的 🧠 learned-skill 条目:
|
|
178
|
+
1. learn-db-connect — 缺 passing check(未记录验证方式)
|
|
179
|
+
2. learn-deploy-staging — ✅ 满足 promotion rule 3 条 → 可晋升为 /atdc:learn-deploy-staging
|
|
180
|
+
|
|
181
|
+
选择:输入编号 + "promote" 晋升为 atd 命令,或 "skip"。
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 6d. 晋升
|
|
185
|
+
|
|
186
|
+
对选中的条目,调用 `add-command.py --from-learn` 生成 atd 命令(同 X-learn.md Phase 3)。
|
|
187
|
+
|
|
188
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# prompts/X-context-scan · 老项目首次入场扫描
|
|
2
|
+
|
|
3
|
+
横向命令,老项目第一次使用 atdc 时触发。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 目标
|
|
8
|
+
|
|
9
|
+
生成 `CONTEXT.md`,让后续所有 change 不需要重新扫描项目基础信息。
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 扫描内容
|
|
14
|
+
|
|
15
|
+
### 1. 技术栈识别
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 语言/框架
|
|
19
|
+
ls go.mod package.json pom.xml requirements.txt 2>/dev/null
|
|
20
|
+
# 主要依赖
|
|
21
|
+
head -30 go.mod 2>/dev/null || head -30 package.json 2>/dev/null
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 2. 目录结构
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
find . -type d -not -path "*/\.*" -not -path "*/vendor/*" -not -path "*/node_modules/*" | head -40
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 3. 命名风格
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# 优先用 CodeGraph(已索引则无需 grep)
|
|
34
|
+
# codegraph_files 查看文件列表 + codegraph_search 抽样几个函数名即可
|
|
35
|
+
|
|
36
|
+
# 无 CodeGraph 时才用(限制输出行数)
|
|
37
|
+
grep -rn "^func " --include="*.go" . | grep -v vendor | head -15
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 4. 既有抽象识别
|
|
41
|
+
|
|
42
|
+
重点扫描以下能力有无现成实现:
|
|
43
|
+
- HTTP 客户端封装
|
|
44
|
+
- 缓存读写(Redis/本地)
|
|
45
|
+
- 日志工具
|
|
46
|
+
- 错误处理模式
|
|
47
|
+
- 数据库操作封装
|
|
48
|
+
- 配置加载
|
|
49
|
+
|
|
50
|
+
### 5. 禁动清单
|
|
51
|
+
|
|
52
|
+
读取 AGENTS.md / CLAUDE.md,提取明确的约束和禁止操作。
|
|
53
|
+
|
|
54
|
+
### 6. 策略与领域词汇(可选)
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
cat STRATEGY.md 2>/dev/null && echo "---EXISTS---" || echo "[无 STRATEGY.md]"
|
|
58
|
+
cat CONCEPTS.md 2>/dev/null && echo "---EXISTS---" || echo "[无 CONCEPTS.md]"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- **STRATEGY.md 不存在** → 提示用户可运行 `/atd strategy` 创建产品策略锚点
|
|
62
|
+
- **CONCEPTS.md 不存在** → 提示用户可运行 `/atd compound concepts` 生成领域词汇表
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 输出
|
|
67
|
+
|
|
68
|
+
写入 `CONTEXT.md`(项目根目录):
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
# CONTEXT — <项目名>
|
|
72
|
+
|
|
73
|
+
扫描时间:<日期>
|
|
74
|
+
|
|
75
|
+
## 技术栈
|
|
76
|
+
- 语言:
|
|
77
|
+
- 主框架:
|
|
78
|
+
- 数据库:
|
|
79
|
+
- 消息队列:
|
|
80
|
+
|
|
81
|
+
## 目录结构摘要
|
|
82
|
+
<关键目录说明>
|
|
83
|
+
|
|
84
|
+
## 命名风格
|
|
85
|
+
- 函数:驼峰 / 下划线
|
|
86
|
+
- 文件:
|
|
87
|
+
- 包名:
|
|
88
|
+
|
|
89
|
+
## 既有抽象(写新代码前必须先 grep 这些)
|
|
90
|
+
| 能力 | 位置 | 用法示例 |
|
|
91
|
+
|------|------|---------|
|
|
92
|
+
| HTTP 客户端 | pkg/httpclient/ | httpclient.Get(...) |
|
|
93
|
+
|
|
94
|
+
## 禁动清单
|
|
95
|
+
- <从 AGENTS.md 提取>
|
|
96
|
+
|
|
97
|
+
## 引入新依赖审批
|
|
98
|
+
需要在 change propose 阶段说明理由并获得人工确认。
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
写完输出:`✓ CONTEXT.md 已生成,后续 change 将自动读取。`
|