cangming-ai-dev-kit 0.1.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.
- checksums.yaml +7 -0
- data/adapters/claude-code/.claude-plugin/plugin.json +20 -0
- data/adapters/claude-code/agents/coder.md +22 -0
- data/adapters/claude-code/agents/planner.md +24 -0
- data/adapters/claude-code/agents/reviewer.md +23 -0
- data/adapters/claude-code/hooks/hooks.json +16 -0
- data/adapters/codex/.codex-plugin/plugin.json +26 -0
- data/adapters/codex/AGENTS.md.template +45 -0
- data/core/references/review_checklist.md +48 -0
- data/core/references/verify_rules.md +48 -0
- data/core/references/workflow.md +65 -0
- data/core/scripts/detect_project_type.sh +49 -0
- data/core/scripts/summarize_context.sh +55 -0
- data/core/scripts/verify_project.sh +61 -0
- data/core/skills/code-review/SKILL.md +71 -0
- data/core/skills/plan-first/SKILL.md +56 -0
- data/core/skills/safe-code-change/SKILL.md +48 -0
- data/core/skills/verify-before-done/SKILL.md +71 -0
- data/domains/harmony/references/arkts_syntax.md +90 -0
- data/domains/harmony/references/arkui_rules.md +81 -0
- data/domains/harmony/references/common_compile_errors.md +40 -0
- data/domains/harmony/references/harmony_project_structure.md +56 -0
- data/domains/harmony/references/hvigor_ohpm_hdc_commands.md +40 -0
- data/domains/harmony/scripts/build_hap.sh +39 -0
- data/domains/harmony/scripts/lint_harmony.sh +39 -0
- data/domains/harmony/scripts/test_harmony.sh +32 -0
- data/domains/harmony/scripts/verify_harmony.sh +92 -0
- data/domains/harmony/skills/harmony-code/SKILL.md +73 -0
- data/domains/harmony/skills/harmony-plan/SKILL.md +68 -0
- data/domains/harmony/skills/harmony-verify/SKILL.md +68 -0
- data/exe/cangming-dev-kit +6 -0
- data/lib/cangming_ai_dev_kit/adapter.rb +68 -0
- data/lib/cangming_ai_dev_kit/cli.rb +88 -0
- data/lib/cangming_ai_dev_kit/commands/init.rb +53 -0
- data/lib/cangming_ai_dev_kit/commands/sync.rb +25 -0
- data/lib/cangming_ai_dev_kit/commands/verify.rb +32 -0
- data/lib/cangming_ai_dev_kit/syncer.rb +102 -0
- data/lib/cangming_ai_dev_kit/verifier.rb +134 -0
- data/lib/cangming_ai_dev_kit/version.rb +5 -0
- data/lib/cangming_ai_dev_kit.rb +7 -0
- data/marketplace/.claude-plugin/marketplace.json +21 -0
- metadata +88 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 3b9d632f3320840062e4a01c6778af96b76636de64ef3596e70fa571bec73f62
|
|
4
|
+
data.tar.gz: b697979c35319751a6546320ec79bc07f9319b92ab21c3888828dbb7f5040929
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 90672dac17b785772912c7f7fe173a1246e5cdb7ace22f979daa404e7244a57b7f31d611807e43dc7d65e172ba04fdc7391d1d21d0c7df0f5ef752c4a7658838
|
|
7
|
+
data.tar.gz: 2484751a06514442ab62ff30a20692354379286dc0efa8609eef1d4cb00e005dae25d584ed795a40aab44c9ba5e576a32aee4004432aab5af77d815b82975731
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cangming-dev-core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "cangming-ai-dev-kit Claude Code 插件 — 通用开发能力 + HarmonyOS 领域知识",
|
|
5
|
+
"source": "..",
|
|
6
|
+
"skills": {
|
|
7
|
+
"core/plan-first": "skills/core/plan-first/SKILL.md",
|
|
8
|
+
"core/safe-code-change": "skills/core/safe-code-change/SKILL.md",
|
|
9
|
+
"core/code-review": "skills/core/code-review/SKILL.md",
|
|
10
|
+
"core/verify-before-done": "skills/core/verify-before-done/SKILL.md",
|
|
11
|
+
"harmony/harmony-plan": "skills/harmony/harmony-plan/SKILL.md",
|
|
12
|
+
"harmony/harmony-code": "skills/harmony/harmony-code/SKILL.md",
|
|
13
|
+
"harmony/harmony-verify": "skills/harmony/harmony-verify/SKILL.md"
|
|
14
|
+
},
|
|
15
|
+
"agents": {
|
|
16
|
+
"planner": "agents/planner.md",
|
|
17
|
+
"coder": "agents/coder.md",
|
|
18
|
+
"reviewer": "agents/reviewer.md"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Coder Agent
|
|
2
|
+
|
|
3
|
+
## 职责
|
|
4
|
+
按计划小步实现代码。
|
|
5
|
+
|
|
6
|
+
## 工作流程
|
|
7
|
+
1. 确认计划已批准
|
|
8
|
+
2. 按顺序逐个文件实现
|
|
9
|
+
3. 每次修改后检查 diff
|
|
10
|
+
4. 运行相关测试
|
|
11
|
+
5. 失败时回滚或说明
|
|
12
|
+
|
|
13
|
+
## 输入
|
|
14
|
+
- 已批准的计划文档
|
|
15
|
+
- 当前项目代码
|
|
16
|
+
|
|
17
|
+
## 约束
|
|
18
|
+
遵循 `core/skills/safe-code-change/SKILL.md` 的规则:
|
|
19
|
+
- 小步修改
|
|
20
|
+
- 不引入无关依赖
|
|
21
|
+
- 不破坏现有 API
|
|
22
|
+
- 保持项目风格
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Planner Agent
|
|
2
|
+
|
|
3
|
+
## 职责
|
|
4
|
+
只做计划,不写代码。
|
|
5
|
+
|
|
6
|
+
## 工作流程
|
|
7
|
+
1. 读取需求
|
|
8
|
+
2. 扫描项目结构
|
|
9
|
+
3. 识别风险
|
|
10
|
+
4. 制定文件改动计划
|
|
11
|
+
5. 制定测试计划
|
|
12
|
+
6. 输出计划文档
|
|
13
|
+
|
|
14
|
+
## 输入
|
|
15
|
+
- 任务需求描述
|
|
16
|
+
- 项目目录结构
|
|
17
|
+
|
|
18
|
+
## 输出
|
|
19
|
+
遵循 `core/skills/plan-first/SKILL.md` 的输出格式。
|
|
20
|
+
|
|
21
|
+
## 限制
|
|
22
|
+
- 不修改任何文件
|
|
23
|
+
- 不生成代码
|
|
24
|
+
- 如果计划需要修改超过 5 个文件,提出简化和合并建议
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Reviewer Agent
|
|
2
|
+
|
|
3
|
+
## 职责
|
|
4
|
+
审查代码质量和验收。
|
|
5
|
+
|
|
6
|
+
## 工作流程
|
|
7
|
+
1. 读取改动 diff
|
|
8
|
+
2. 运行 core/skills/code-review/SKILL.md 的完整审查清单
|
|
9
|
+
3. 输出审查报告
|
|
10
|
+
4. 运行 core/skills/verify-before-done/SKILL.md 的验证流程
|
|
11
|
+
5. 输出验证报告
|
|
12
|
+
|
|
13
|
+
## 输入
|
|
14
|
+
- 代码改动 diff
|
|
15
|
+
- 项目验证脚本
|
|
16
|
+
|
|
17
|
+
## 输出
|
|
18
|
+
- 审查报告(问题列表 + 结论)
|
|
19
|
+
- 验证报告(命令 + 结果)
|
|
20
|
+
|
|
21
|
+
## 约束
|
|
22
|
+
- 不修改代码
|
|
23
|
+
- 发现 error 级别问题必须阻止完成
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "cangming-ai-dev-kit Claude Code hooks — MVP 示例",
|
|
3
|
+
"notice": "这是一个 MVP 示例。实际使用时请按当前 Claude Code hooks 文档调整 schema。",
|
|
4
|
+
"hooks": [
|
|
5
|
+
{
|
|
6
|
+
"name": "pre-commit",
|
|
7
|
+
"description": "提交前运行 verify 脚本",
|
|
8
|
+
"command": "bash scripts/verify_mvp.sh"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "pre-exit",
|
|
12
|
+
"description": "任务结束前验证项目",
|
|
13
|
+
"command": "bash core/scripts/verify_project.sh"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cangming-dev-core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "cangming-ai-dev-kit Codex 插件 — 通用开发能力 + HarmonyOS 领域知识",
|
|
5
|
+
"source": "..",
|
|
6
|
+
"skills": {
|
|
7
|
+
"core/plan-first": "skills/core/plan-first/SKILL.md",
|
|
8
|
+
"core/safe-code-change": "skills/core/safe-code-change/SKILL.md",
|
|
9
|
+
"core/code-review": "skills/core/code-review/SKILL.md",
|
|
10
|
+
"core/verify-before-done": "skills/core/verify-before-done/SKILL.md",
|
|
11
|
+
"harmony/harmony-plan": "skills/harmony/harmony-plan/SKILL.md",
|
|
12
|
+
"harmony/harmony-code": "skills/harmony/harmony-code/SKILL.md",
|
|
13
|
+
"harmony/harmony-verify": "skills/harmony/harmony-verify/SKILL.md"
|
|
14
|
+
},
|
|
15
|
+
"agents": {
|
|
16
|
+
"planner": {
|
|
17
|
+
"system_prompt": "你是一个只做计划的 agent。不要写代码。阅读项目结构,输出计划文档。遵循 AGENTS.md 规则。"
|
|
18
|
+
},
|
|
19
|
+
"coder": {
|
|
20
|
+
"system_prompt": "你是一个按计划实现代码的 agent。小步修改,每次检查 diff。遵循 AGENTS.md 规则。"
|
|
21
|
+
},
|
|
22
|
+
"reviewer": {
|
|
23
|
+
"system_prompt": "你是一个代码审查 agent。审查代码质量、安全性和测试覆盖。遵循 AGENTS.md 规则。"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# AGENTS.md — Codex 项目规则(模板)
|
|
2
|
+
|
|
3
|
+
将此文件复制到你的 Codex 项目根目录,按需修改。
|
|
4
|
+
|
|
5
|
+
## 核心规则
|
|
6
|
+
|
|
7
|
+
1. **先 plan 再 code**:任何超过 5 行的改动,必须先输出计划。
|
|
8
|
+
2. **读项目结构**:修改前阅读 README.md 和关键配置文件。
|
|
9
|
+
3. **运行 verify**:修改后必须运行 `bash core/scripts/verify_project.sh`。
|
|
10
|
+
4. **不伪造结果**:lint/test/build 不通过不能说完成。
|
|
11
|
+
|
|
12
|
+
## Skills 引用
|
|
13
|
+
|
|
14
|
+
本项目 skills 位于 `skills/` 目录:
|
|
15
|
+
|
|
16
|
+
| Skill 文件 | 用途 |
|
|
17
|
+
|------------|------|
|
|
18
|
+
| `skills/core/plan-first/SKILL.md` | 计划制定 |
|
|
19
|
+
| `skills/core/safe-code-change/SKILL.md` | 安全编码 |
|
|
20
|
+
| `skills/core/code-review/SKILL.md` | 代码审查 |
|
|
21
|
+
| `skills/core/verify-before-done/SKILL.md` | 验证流程 |
|
|
22
|
+
| `skills/harmony/harmony-plan/SKILL.md` | HarmonyOS 计划 |
|
|
23
|
+
| `skills/harmony/harmony-code/SKILL.md` | HarmonyOS 编码 |
|
|
24
|
+
| `skills/harmony/harmony-verify/SKILL.md` | HarmonyOS 验证 |
|
|
25
|
+
|
|
26
|
+
## 验证命令
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# 通用验证
|
|
30
|
+
bash core/scripts/verify_project.sh
|
|
31
|
+
|
|
32
|
+
# MVP 自验证
|
|
33
|
+
bash scripts/verify_mvp.sh
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 完成输出格式
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
## 执行摘要
|
|
40
|
+
- 项目类型:{type}
|
|
41
|
+
- 改动文件:{files}
|
|
42
|
+
- 执行命令:
|
|
43
|
+
1. {command_1} → {result}
|
|
44
|
+
- 验证结果:{PASS / FAIL}
|
|
45
|
+
```
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 通用代码审查清单
|
|
2
|
+
|
|
3
|
+
## 功能正确性
|
|
4
|
+
- [ ] 实现了需求中的所有功能
|
|
5
|
+
- [ ] 边界条件已处理(空值、越界、异常)
|
|
6
|
+
- [ ] 错误路径有合理处理(try-catch、错误返回)
|
|
7
|
+
- [ ] 并发/竞态条件已考虑
|
|
8
|
+
|
|
9
|
+
## 代码质量
|
|
10
|
+
- [ ] 命名清晰且符合项目规范
|
|
11
|
+
- [ ] 函数/方法职责单一
|
|
12
|
+
- [ ] 无重复代码(DRY)
|
|
13
|
+
- [ ] 无过深的嵌套(不超过 3 层)
|
|
14
|
+
- [ ] 注释只解释 WHY,不解释 WHAT
|
|
15
|
+
|
|
16
|
+
## 类型安全
|
|
17
|
+
- [ ] 所有变量有类型声明
|
|
18
|
+
- [ ] 无隐含的 any
|
|
19
|
+
- [ ] 泛型使用正确
|
|
20
|
+
- [ ] 无类型断言滥用
|
|
21
|
+
|
|
22
|
+
## 性能
|
|
23
|
+
- [ ] 无不必要的重复计算
|
|
24
|
+
- [ ] 无内存泄漏风险
|
|
25
|
+
- [ ] 无阻塞主线程操作
|
|
26
|
+
- [ ] 循环/递归有退出条件
|
|
27
|
+
|
|
28
|
+
## 安全
|
|
29
|
+
- [ ] 无硬编码密钥/密码
|
|
30
|
+
- [ ] 用户输入已校验
|
|
31
|
+
- [ ] 无命令注入风险
|
|
32
|
+
- [ ] 无路径遍历风险
|
|
33
|
+
|
|
34
|
+
## 测试
|
|
35
|
+
- [ ] 新代码有对应测试
|
|
36
|
+
- [ ] 边界条件有测试覆盖
|
|
37
|
+
- [ ] 测试可独立运行
|
|
38
|
+
- [ ] 测试命名清晰
|
|
39
|
+
|
|
40
|
+
## 依赖
|
|
41
|
+
- [ ] 未引入不必要的第三方库
|
|
42
|
+
- [ ] 已有依赖版本兼容
|
|
43
|
+
- [ ] 无循环依赖
|
|
44
|
+
|
|
45
|
+
## 版本控制
|
|
46
|
+
- [ ] 无调试代码/console.log
|
|
47
|
+
- [ ] 无被注释的代码块
|
|
48
|
+
- [ ] 提交信息清晰
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 验收规则
|
|
2
|
+
|
|
3
|
+
## 黄金法则
|
|
4
|
+
|
|
5
|
+
**不能伪造验证结果。**
|
|
6
|
+
|
|
7
|
+
即使验证看起来"麻烦"或"没必要",也要执行。如果命令不存在,输出明确说明,不能假装成功。
|
|
8
|
+
|
|
9
|
+
## 规则清单
|
|
10
|
+
|
|
11
|
+
### 规则 1:先识别,再验证
|
|
12
|
+
```bash
|
|
13
|
+
bash core/scripts/detect_project_type.sh
|
|
14
|
+
```
|
|
15
|
+
不知道项目类型就无法正确验证。
|
|
16
|
+
|
|
17
|
+
### 规则 2:使用正确的验证脚本
|
|
18
|
+
|
|
19
|
+
| 项目类型 | 验证脚本 |
|
|
20
|
+
|----------|----------|
|
|
21
|
+
| harmony | `domains/harmony/scripts/verify_harmony.sh` |
|
|
22
|
+
| flutter | TODO(扩展中) |
|
|
23
|
+
| iOS | TODO(扩展中) |
|
|
24
|
+
| android | TODO(扩展中) |
|
|
25
|
+
| node | TODO(扩展中) |
|
|
26
|
+
| unknown | 提示手动配置 |
|
|
27
|
+
|
|
28
|
+
### 规则 3:每条命令都要记录
|
|
29
|
+
记录内容包括:
|
|
30
|
+
- 执行的命令
|
|
31
|
+
- 实际输出
|
|
32
|
+
- 结果(PASS / FAIL / SKIP)
|
|
33
|
+
|
|
34
|
+
### 规则 4:失败必须修复
|
|
35
|
+
- 验证失败 → 修复问题 → 重新验证
|
|
36
|
+
- 不允许说"虽然验证失败但代码是对的"
|
|
37
|
+
- 不允许说"这个失败和我的改动无关"
|
|
38
|
+
|
|
39
|
+
### 规则 5:全部通过才能完成
|
|
40
|
+
只有当所有 verify 项都是 PASS 时,才能宣布完成。
|
|
41
|
+
如果有 SKIP 项,必须有明确的跳过原因(如命令不存在)。
|
|
42
|
+
|
|
43
|
+
### 规则 6:MVP 自验证
|
|
44
|
+
对 cangming-ai-dev-kit 自身的修改,必须运行:
|
|
45
|
+
```bash
|
|
46
|
+
bash scripts/verify_mvp.sh
|
|
47
|
+
```
|
|
48
|
+
确保项目结构完整。
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# 通用开发工作流
|
|
2
|
+
|
|
3
|
+
## Plan → Code → Review → Verify
|
|
4
|
+
|
|
5
|
+
每个开发任务严格遵循四个阶段:
|
|
6
|
+
|
|
7
|
+
### 1. Plan(计划)
|
|
8
|
+
- 理解需求,复述确认
|
|
9
|
+
- 扫描项目结构
|
|
10
|
+
- 识别风险点
|
|
11
|
+
- 制定文件改动计划
|
|
12
|
+
- **输出**:计划文档
|
|
13
|
+
- **验收**:得到确认
|
|
14
|
+
|
|
15
|
+
### 2. Code(编码)
|
|
16
|
+
- 按计划小步修改
|
|
17
|
+
- 一次改一个逻辑单元
|
|
18
|
+
- 每次修改后检查 diff
|
|
19
|
+
- 运行相关测试
|
|
20
|
+
- **输出**:代码改动
|
|
21
|
+
- **验收**:diff 已审查
|
|
22
|
+
|
|
23
|
+
### 3. Review(审查)
|
|
24
|
+
- 逐项审查代码质量
|
|
25
|
+
- 检查功能正确性、边界条件、类型安全
|
|
26
|
+
- 检查性能和安全风险
|
|
27
|
+
- 检查测试覆盖
|
|
28
|
+
- **输出**:审查报告
|
|
29
|
+
- **验收**:所有 error 级别问题已修复
|
|
30
|
+
|
|
31
|
+
### 4. Verify(验证)
|
|
32
|
+
- 识别项目类型
|
|
33
|
+
- 运行对应 verify 脚本
|
|
34
|
+
- 记录命令和结果
|
|
35
|
+
- **输出**:验证报告
|
|
36
|
+
- **验收**:全部 PASS
|
|
37
|
+
|
|
38
|
+
### 流程图
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
需求输入
|
|
42
|
+
│
|
|
43
|
+
▼
|
|
44
|
+
┌─────────┐
|
|
45
|
+
│ Plan │ ◄── 未确认
|
|
46
|
+
└────┬────┘
|
|
47
|
+
│ 确认
|
|
48
|
+
▼
|
|
49
|
+
┌─────────┐
|
|
50
|
+
│ Code │ ◄── 测试失败
|
|
51
|
+
└────┬────┘
|
|
52
|
+
│ diff 审查通过
|
|
53
|
+
▼
|
|
54
|
+
┌──────────┐
|
|
55
|
+
│ Review │ ◄── 发现问题
|
|
56
|
+
└────┬─────┘
|
|
57
|
+
│ 审查通过
|
|
58
|
+
▼
|
|
59
|
+
┌──────────┐
|
|
60
|
+
│ Verify │ ◄── 验证失败
|
|
61
|
+
└────┬─────┘
|
|
62
|
+
│ 全部 PASS
|
|
63
|
+
▼
|
|
64
|
+
完成
|
|
65
|
+
```
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# detect_project_type.sh — 根据文件判断项目类型
|
|
3
|
+
# 用法: bash core/scripts/detect_project_type.sh [项目目录]
|
|
4
|
+
|
|
5
|
+
PROJECT_DIR="${1:-.}"
|
|
6
|
+
cd "$PROJECT_DIR" 2>/dev/null || { echo "unknown"; exit 0; }
|
|
7
|
+
|
|
8
|
+
# HarmonyOS (按优先级: oh-package.json5 > hvigorfile.ts > build-profile.json5)
|
|
9
|
+
if [ -f "oh-package.json5" ] && [ -f "hvigorfile.ts" ] && [ -d "entry/src/main/ets" ]; then
|
|
10
|
+
echo "harmony"
|
|
11
|
+
exit 0
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Flutter
|
|
15
|
+
if [ -f "pubspec.yaml" ]; then
|
|
16
|
+
echo "flutter"
|
|
17
|
+
exit 0
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# iOS
|
|
21
|
+
if ls *.xcodeproj 2>/dev/null | head -1 | grep -q .; then
|
|
22
|
+
echo "ios"
|
|
23
|
+
exit 0
|
|
24
|
+
fi
|
|
25
|
+
if [ -f "Package.swift" ]; then
|
|
26
|
+
echo "ios"
|
|
27
|
+
exit 0
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# Android
|
|
31
|
+
if [ -f "build.gradle" ] || [ -f "settings.gradle" ] || [ -f "build.gradle.kts" ] || [ -f "settings.gradle.kts" ]; then
|
|
32
|
+
echo "android"
|
|
33
|
+
exit 0
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# Godot
|
|
37
|
+
if [ -f "project.godot" ]; then
|
|
38
|
+
echo "godot"
|
|
39
|
+
exit 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# Node
|
|
43
|
+
if [ -f "package.json" ]; then
|
|
44
|
+
echo "node"
|
|
45
|
+
exit 0
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
# 未知类型
|
|
49
|
+
echo "unknown"
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# summarize_context.sh — 输出当前上下文摘要
|
|
3
|
+
# 用法: bash core/scripts/summarize_context.sh [项目目录]
|
|
4
|
+
|
|
5
|
+
PROJECT_DIR="${1:-.}"
|
|
6
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
7
|
+
|
|
8
|
+
echo "===== 上下文摘要 ====="
|
|
9
|
+
echo ""
|
|
10
|
+
|
|
11
|
+
# 项目类型
|
|
12
|
+
PROJECT_TYPE=$(bash "$SCRIPT_DIR/detect_project_type.sh" "$PROJECT_DIR")
|
|
13
|
+
echo "项目类型: $PROJECT_TYPE"
|
|
14
|
+
|
|
15
|
+
# 项目路径
|
|
16
|
+
cd "$PROJECT_DIR" 2>/dev/null
|
|
17
|
+
echo "项目路径: $(pwd)"
|
|
18
|
+
echo ""
|
|
19
|
+
|
|
20
|
+
# Git 状态
|
|
21
|
+
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
22
|
+
echo "--- Git 状态 ---"
|
|
23
|
+
git status --short 2>/dev/null || echo " (无未提交改动)"
|
|
24
|
+
|
|
25
|
+
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
26
|
+
echo "当前分支: $BRANCH"
|
|
27
|
+
|
|
28
|
+
LAST_COMMIT=$(git log --oneline -1 2>/dev/null)
|
|
29
|
+
echo "最近提交: $LAST_COMMIT"
|
|
30
|
+
else
|
|
31
|
+
echo "--- Git 状态 ---"
|
|
32
|
+
echo " (不是 Git 仓库)"
|
|
33
|
+
fi
|
|
34
|
+
echo ""
|
|
35
|
+
|
|
36
|
+
# 最近改动文件
|
|
37
|
+
echo "--- 最近改动文件 ---"
|
|
38
|
+
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
39
|
+
git diff --name-only 2>/dev/null | head -20
|
|
40
|
+
git diff --cached --name-only 2>/dev/null | head -20
|
|
41
|
+
else
|
|
42
|
+
find . -type f -name "*.ts" -o -name "*.sh" -o -name "*.json" -o -name "*.md" 2>/dev/null | head -20
|
|
43
|
+
fi
|
|
44
|
+
echo ""
|
|
45
|
+
|
|
46
|
+
# 关键文件
|
|
47
|
+
echo "--- 关键文件 ---"
|
|
48
|
+
for f in package.json oh-package.json5 hvigorfile.ts pubspec.yaml build.gradle settings.gradle; do
|
|
49
|
+
if [ -f "$f" ]; then
|
|
50
|
+
echo " $f (存在)"
|
|
51
|
+
fi
|
|
52
|
+
done
|
|
53
|
+
|
|
54
|
+
echo ""
|
|
55
|
+
echo "===== 结束 ====="
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# verify_project.sh — 根据项目类型执行对应验证
|
|
3
|
+
# 用法: bash core/scripts/verify_project.sh [项目目录]
|
|
4
|
+
|
|
5
|
+
PROJECT_DIR="${1:-.}"
|
|
6
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
7
|
+
PROJECT_TYPE=$(bash "$SCRIPT_DIR/detect_project_type.sh" "$PROJECT_DIR")
|
|
8
|
+
|
|
9
|
+
echo "===== 项目验证 ====="
|
|
10
|
+
echo "项目目录: $(cd "$PROJECT_DIR" && pwd)"
|
|
11
|
+
echo "项目类型: $PROJECT_TYPE"
|
|
12
|
+
echo ""
|
|
13
|
+
|
|
14
|
+
case "$PROJECT_TYPE" in
|
|
15
|
+
harmony)
|
|
16
|
+
echo "检测到 HarmonyOS 项目,执行 HarmonyOS 验证..."
|
|
17
|
+
HARMONY_SCRIPT="$SCRIPT_DIR/../../domains/harmony/scripts/verify_harmony.sh"
|
|
18
|
+
if [ -f "$HARMONY_SCRIPT" ]; then
|
|
19
|
+
bash "$HARMONY_SCRIPT" "$PROJECT_DIR"
|
|
20
|
+
else
|
|
21
|
+
echo "WARN: 未找到 $HARMONY_SCRIPT"
|
|
22
|
+
exit 0
|
|
23
|
+
fi
|
|
24
|
+
;;
|
|
25
|
+
flutter)
|
|
26
|
+
echo "TODO: Flutter 验证脚本尚未实现"
|
|
27
|
+
echo "项目类型: flutter"
|
|
28
|
+
exit 0
|
|
29
|
+
;;
|
|
30
|
+
ios)
|
|
31
|
+
echo "TODO: iOS 验证脚本尚未实现"
|
|
32
|
+
echo "项目类型: ios"
|
|
33
|
+
exit 0
|
|
34
|
+
;;
|
|
35
|
+
android)
|
|
36
|
+
echo "TODO: Android 验证脚本尚未实现"
|
|
37
|
+
echo "项目类型: android"
|
|
38
|
+
exit 0
|
|
39
|
+
;;
|
|
40
|
+
godot)
|
|
41
|
+
echo "TODO: Godot 验证脚本尚未实现"
|
|
42
|
+
echo "项目类型: godot"
|
|
43
|
+
exit 0
|
|
44
|
+
;;
|
|
45
|
+
node)
|
|
46
|
+
echo "TODO: Node 验证脚本尚未实现"
|
|
47
|
+
echo "项目类型: node"
|
|
48
|
+
exit 0
|
|
49
|
+
;;
|
|
50
|
+
unknown)
|
|
51
|
+
echo "未知项目类型,请手动配置验证脚本"
|
|
52
|
+
echo "支持的检测条件:"
|
|
53
|
+
echo " - HarmonyOS: oh-package.json5 + hvigorfile.ts + entry/src/main/ets"
|
|
54
|
+
echo " - Flutter: pubspec.yaml"
|
|
55
|
+
echo " - iOS: *.xcodeproj 或 Package.swift"
|
|
56
|
+
echo " - Android: build.gradle 或 settings.gradle"
|
|
57
|
+
echo " - Godot: project.godot"
|
|
58
|
+
echo " - Node: package.json"
|
|
59
|
+
exit 0
|
|
60
|
+
;;
|
|
61
|
+
esac
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# code-review — 代码审查
|
|
2
|
+
|
|
3
|
+
## description
|
|
4
|
+
对代码改动进行全面审查,确保功能正确性、代码质量和安全性。
|
|
5
|
+
|
|
6
|
+
## when to use
|
|
7
|
+
- 任何代码修改之后
|
|
8
|
+
- 提交 PR 之前
|
|
9
|
+
- 合并到主分支之前
|
|
10
|
+
|
|
11
|
+
## workflow
|
|
12
|
+
1. 读取 diff 或改动文件
|
|
13
|
+
2. 逐项检查清单
|
|
14
|
+
3. 记录发现的问题
|
|
15
|
+
4. 输出审查报告
|
|
16
|
+
|
|
17
|
+
## 检查清单
|
|
18
|
+
|
|
19
|
+
### 功能正确性
|
|
20
|
+
- [ ] 代码实现了需求中的所有功能点
|
|
21
|
+
- [ ] 边界条件已处理(空值、越界、异常输入)
|
|
22
|
+
- [ ] 错误路径有合理的处理逻辑
|
|
23
|
+
|
|
24
|
+
### 类型安全
|
|
25
|
+
- [ ] 所有变量有正确的类型声明
|
|
26
|
+
- [ ] 无隐含的 any 类型
|
|
27
|
+
- [ ] 泛型使用正确
|
|
28
|
+
|
|
29
|
+
### 性能风险
|
|
30
|
+
- [ ] 无不必要的重复计算
|
|
31
|
+
- [ ] 无内存泄漏风险
|
|
32
|
+
- [ ] 无阻塞主线程的操作
|
|
33
|
+
|
|
34
|
+
### 安全风险
|
|
35
|
+
- [ ] 无硬编码敏感信息
|
|
36
|
+
- [ ] 输入已校验/清理
|
|
37
|
+
- [ ] 无命令注入风险
|
|
38
|
+
|
|
39
|
+
### 测试覆盖
|
|
40
|
+
- [ ] 新代码有对应测试
|
|
41
|
+
- [ ] 边界条件有测试覆盖
|
|
42
|
+
- [ ] 测试命名清晰
|
|
43
|
+
|
|
44
|
+
### 项目规则
|
|
45
|
+
- [ ] 符合项目代码风格
|
|
46
|
+
- [ ] 无未使用的 import/变量
|
|
47
|
+
- [ ] 命名符合项目规范
|
|
48
|
+
|
|
49
|
+
## output format
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
## 审查报告:{文件/PR 名称}
|
|
53
|
+
|
|
54
|
+
### 发现的问题
|
|
55
|
+
| 级别 | 文件 | 行号 | 说明 |
|
|
56
|
+
|------|------|------|------|
|
|
57
|
+
| error | src/x.ts | 42 | {问题描述} |
|
|
58
|
+
| warn | src/y.ts | 15 | {问题描述} |
|
|
59
|
+
|
|
60
|
+
### 建议
|
|
61
|
+
- {建议 1}
|
|
62
|
+
- {建议 2}
|
|
63
|
+
|
|
64
|
+
### 结论
|
|
65
|
+
{PASS / 需修改后重新审查}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## done criteria
|
|
69
|
+
- [ ] 所有 error 级别问题已修复
|
|
70
|
+
- [ ] 所有 warn 级别问题已评估
|
|
71
|
+
- [ ] 审查报告已输出
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# plan-first — 先计划再实施
|
|
2
|
+
|
|
3
|
+
## description
|
|
4
|
+
在任何代码修改前制定完整计划,确保方向正确、风险可控。
|
|
5
|
+
|
|
6
|
+
## when to use
|
|
7
|
+
- 任何超过 10 行的改动
|
|
8
|
+
- 涉及多个文件的改动
|
|
9
|
+
- 不熟悉当前项目结构时
|
|
10
|
+
- HarmonyOS / Flutter / 跨平台项目
|
|
11
|
+
|
|
12
|
+
## workflow
|
|
13
|
+
1. 读取需求并复述理解
|
|
14
|
+
2. 扫描项目目录结构
|
|
15
|
+
3. 识别风险点
|
|
16
|
+
4. 制定文件改动计划
|
|
17
|
+
5. 制定测试计划
|
|
18
|
+
6. 输出正式计划文档
|
|
19
|
+
7. 获得确认后开始编码
|
|
20
|
+
|
|
21
|
+
## output format
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
## 计划:{任务名称}
|
|
25
|
+
|
|
26
|
+
### 需求理解
|
|
27
|
+
{用一两句话复述需求}
|
|
28
|
+
|
|
29
|
+
### 当前项目结构观察
|
|
30
|
+
{关键目录和文件摘要}
|
|
31
|
+
|
|
32
|
+
### 风险点
|
|
33
|
+
- {风险 1}
|
|
34
|
+
- {风险 2}
|
|
35
|
+
|
|
36
|
+
### 文件改动计划
|
|
37
|
+
| 文件 | 操作 | 说明 |
|
|
38
|
+
|------|------|------|
|
|
39
|
+
| src/xxx.ts | 修改 | {修改内容} |
|
|
40
|
+
| src/yyy.ts | 新增 | {新增内容} |
|
|
41
|
+
|
|
42
|
+
### 测试计划
|
|
43
|
+
- {测试 1}
|
|
44
|
+
- {测试 2}
|
|
45
|
+
|
|
46
|
+
### 验收命令
|
|
47
|
+
```bash
|
|
48
|
+
{命令 1}
|
|
49
|
+
{命令 2}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 停止条件
|
|
53
|
+
- [ ] 计划未被确认 → 不改代码
|
|
54
|
+
- [ ] 发现新风险 → 更新计划
|
|
55
|
+
- [ ] 验收命令未通过 → 不完成
|
|
56
|
+
```
|