aico-cli 0.3.1 → 0.3.3
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/dist/chunks/simple-config.mjs +1 -1
- package/package.json +1 -1
- package/templates/CLAUDE.md +0 -1
- package/templates/agents/aico/requirement/requirement-aligner.md +14 -0
- package/templates/agents/aico/requirement/task-splitter-validator.md +14 -0
- package/templates/commands/aico/requirement.md +90 -84
- package/templates/commands/aico//345/212/237/350/203/275/347/202/271/346/265/213/347/256/227.md +168 -0
- package/templates/personality.md +28 -37
|
@@ -13,7 +13,7 @@ import { join as join$1 } from 'node:path';
|
|
|
13
13
|
import { join, dirname, basename } from 'pathe';
|
|
14
14
|
import { fileURLToPath } from 'node:url';
|
|
15
15
|
|
|
16
|
-
const version = "0.3.
|
|
16
|
+
const version = "0.3.3";
|
|
17
17
|
|
|
18
18
|
function displayBanner(subtitle) {
|
|
19
19
|
const defaultSubtitle = "\u4E00\u952E\u914D\u7F6E\u4F60\u7684\u5F00\u53D1\u73AF\u5883";
|
package/package.json
CHANGED
package/templates/CLAUDE.md
CHANGED
|
@@ -498,4 +498,18 @@ aico test-script edit [需求名称]
|
|
|
498
498
|
**请确认测试脚本无误,确认后我们将进入开发任务拆分阶段。**
|
|
499
499
|
```
|
|
500
500
|
|
|
501
|
+
### 确认状态管理
|
|
502
|
+
|
|
503
|
+
**确认状态机:**
|
|
504
|
+
- 📝 **等待确认**:默认为该状态,生成技术方案后等待用户响应
|
|
505
|
+
- ✅ **已确认**:用户明确回复"确认"、"正确"、"是的"等
|
|
506
|
+
- 🔄 **需要修改**:用户指出技术方案需要调整
|
|
507
|
+
- ❌ **已拒绝**:用户明确表示不需要此技术方案
|
|
508
|
+
|
|
509
|
+
**状态检查逻辑:**
|
|
510
|
+
1. 执行前必须检查共识文档状态是否为"已确认"
|
|
511
|
+
2. 生成技术方案后状态设为"等待确认"
|
|
512
|
+
3. 用户确认后状态更新为"已确认"
|
|
513
|
+
4. 只有状态为"已确认"时才能进入下一阶段
|
|
514
|
+
|
|
501
515
|
严格按照用户确认后才能将上下文交接给下一个智能体的原则执行。
|
|
@@ -446,4 +446,18 @@ DB-001 → BE-001 → FE-001 → TEST-001
|
|
|
446
446
|
**确认后将正式生成开发任务清单,并可开始自动执行开发任务。**
|
|
447
447
|
```
|
|
448
448
|
|
|
449
|
+
### 确认状态管理
|
|
450
|
+
|
|
451
|
+
**确认状态机:**
|
|
452
|
+
- 📝 **等待确认**:默认为该状态,生成任务清单后等待用户响应
|
|
453
|
+
- ✅ **已确认**:用户明确回复"确认"、"正确"、"是的"等
|
|
454
|
+
- 🔄 **需要调整**:用户指出任务拆分需要修改
|
|
455
|
+
- ❌ **已拒绝**:用户明确表示不需要此任务拆分
|
|
456
|
+
|
|
457
|
+
**状态检查逻辑:**
|
|
458
|
+
1. 执行前必须检查技术方案状态是否为"已确认"
|
|
459
|
+
2. 生成任务清单后状态设为"等待确认"
|
|
460
|
+
3. 用户确认后状态更新为"已确认"
|
|
461
|
+
4. 只有状态为"已确认"时才能进入执行阶段
|
|
462
|
+
|
|
449
463
|
严格按照用户确认后才能交接给任务执行智能体的原则执行。
|
|
@@ -8,109 +8,115 @@ argument-hint: <需求描述>
|
|
|
8
8
|
|
|
9
9
|
`/requirement <需求描述>`
|
|
10
10
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
-
|
|
11
|
+
## 全生命周期管理
|
|
12
|
+
|
|
13
|
+
作为需求管理的指挥官,统筹整个需求从识别到实现的全生命周期,各阶段职责和调用参数如下:
|
|
14
|
+
|
|
15
|
+
### 🎯 需求识别阶段
|
|
16
|
+
**职责**:深度理解用户意图,生成共识文档
|
|
17
|
+
**智能体**:`requirement-identifier`
|
|
18
|
+
**调用参数**:
|
|
19
|
+
- `user_input`: $ARGUMENTS
|
|
20
|
+
- `current_timestamp`: (来自时间戳智能体)
|
|
21
|
+
- `project_context`: (当前项目的 CLAUDE.md 信息)
|
|
22
|
+
- `document_status`: `待确认`
|
|
23
|
+
**输出**:`.aico/docs/[需求名称]/共识文档.md`
|
|
24
|
+
**状态流转**:生成后设为`待确认` → 用户确认后更新为`已确认`
|
|
25
|
+
|
|
26
|
+
### 🔄 需求对齐阶段
|
|
27
|
+
**职责**:分析现有代码库,制定技术实施方案
|
|
28
|
+
**智能体**:`requirement-aligner`
|
|
29
|
+
**调用参数**:
|
|
30
|
+
- `consensus_document_path`: `.aico/docs/[需求名称]/共识文档.md`
|
|
31
|
+
- `current_timestamp`: (来自时间戳智能体)
|
|
32
|
+
- `document_status`: `待确认`
|
|
33
|
+
**前置条件**:共识文档状态为`已确认`
|
|
34
|
+
**输出**:`.aico/docs/[需求名称]/技术对齐方案文档.md`
|
|
35
|
+
**状态流转**:生成后设为`待确认` → 用户确认后更新为`已确认`
|
|
36
|
+
|
|
37
|
+
### 📋 任务拆分阶段
|
|
38
|
+
**职责**:将需求分解为可执行的原子任务
|
|
39
|
+
**智能体**:`task-splitter-validator`
|
|
40
|
+
**调用参数**:
|
|
41
|
+
- `consensus_document_path`: `.aico/docs/[需求名称]/共识文档.md`
|
|
42
|
+
- `technical_alignment_path`: `.aico/docs/[需求名称]/技术对齐方案文档.md`
|
|
43
|
+
- `current_timestamp`: (来自时间戳智能体)
|
|
44
|
+
- `document_status`: `待确认`
|
|
45
|
+
**前置条件**:技术方案状态为`已确认`
|
|
46
|
+
**输出**:`.aico/docs/[需求名称]/开发任务清单.md`
|
|
47
|
+
**状态流转**:生成后设为`待确认` → 用户确认后更新为`已确认`
|
|
48
|
+
|
|
49
|
+
### ⚡ 自动执行阶段
|
|
50
|
+
**职责**:按依赖关系自动执行开发任务
|
|
51
|
+
**智能体**:`task-executor`
|
|
52
|
+
**调用参数**:
|
|
53
|
+
- `task_list_path`: `.aico/docs/[需求名称]/开发任务清单.md`
|
|
54
|
+
- `current_timestamp`: (来自时间戳智能体)
|
|
55
|
+
- `document_status`: `已确认`
|
|
56
|
+
**前置条件**:任务清单状态为`已确认`
|
|
57
|
+
|
|
58
|
+
### ✅ 质量保障阶段
|
|
59
|
+
**职责**:全程质量评估和验证
|
|
60
|
+
**智能体**:`task-executor-validator`
|
|
61
|
+
**调用参数**:
|
|
62
|
+
- `task_list_path`: `.aico/docs/[需求名称]/开发任务清单.md`
|
|
63
|
+
- `completion_report_path`: `.aico/docs/[需求名称]/开发任务完成报告.md`
|
|
64
|
+
- `current_timestamp`: (来自时间戳智能体)
|
|
65
|
+
**触发条件**:任务执行完成后自动调用
|
|
20
66
|
|
|
21
67
|
## 编排说明
|
|
22
68
|
|
|
23
69
|
**步骤 1**:调用 `get-current-datetime` 子智能体获取当前时间戳。
|
|
24
70
|
|
|
25
|
-
**步骤 2
|
|
71
|
+
**步骤 2**:根据用户输入和上下文智能识别当前处于哪个阶段,用户确认后再调用相应的子智能体:
|
|
26
72
|
|
|
27
73
|
### 阶段判断逻辑
|
|
28
74
|
|
|
29
|
-
|
|
30
|
-
- 必须生成 `.aico/docs/[需求名称]/共识文档.md`
|
|
31
|
-
- 文档状态必须设置为`待确认`
|
|
32
|
-
- 必须等待用户确认后,自动更新状态为`已确认`并进入下一阶段
|
|
33
|
-
2. **对齐阶段**:存在共识文档且状态为`已确认`但无技术方案 → 调用 `requirement-aligner`
|
|
34
|
-
- 必须存在 `.aico/docs/[需求名称]/共识文档.md`并且需求状态为`已确认`
|
|
35
|
-
- 必须生成 `.aico/docs/[需求名称]/技术对齐方案文档.md`
|
|
36
|
-
- 文档状态必须设置为`待确认`
|
|
37
|
-
- 必须等待用户确认后,自动更新状态为`已确认`并进入下一阶段
|
|
38
|
-
3. **拆分阶段**:存在技术方案且状态为`已确认`但无任务清单 → 调用 `task-splitter-validator`
|
|
39
|
-
- 必须存在 `.aico/docs/[需求名称]/技术对齐方案文档.md`并且状态为`已确认`
|
|
40
|
-
- 必须生成 `.aico/docs/[需求名称]/开发任务清单.md`
|
|
41
|
-
- 文档状态必须设置为`待确认`
|
|
42
|
-
- 必须等待用户确认后,自动更新状态为`已确认`并进入下一阶段
|
|
43
|
-
4. **执行阶段**:存在任务清单且状态为`已确认`且有待执行任务 → 调用 `task-executor`
|
|
44
|
-
5. **验证阶段**:任务执行后需要质量评估 → 调用 `task-executor-validator`
|
|
45
|
-
|
|
46
|
-
### 智能体调用参数
|
|
47
|
-
|
|
48
|
-
- **requirement-identifier**:
|
|
49
|
-
- `user_input`: $ARGUMENTS
|
|
50
|
-
- `current_timestamp`: (来自步骤1的时间戳)
|
|
51
|
-
- `project_context`: (当前项目的 CLAUDE.md 信息)
|
|
52
|
-
- `document_status`: `待确认`
|
|
53
|
-
|
|
54
|
-
- **requirement-aligner**:
|
|
55
|
-
- `consensus_document_path`: `.aico/docs/[需求名称]/共识文档.md`
|
|
56
|
-
- `current_timestamp`: (来自步骤1的时间戳)
|
|
57
|
-
- `document_status`: `待确认`
|
|
58
|
-
|
|
59
|
-
- **task-splitter-validator**:
|
|
60
|
-
- `consensus_document_path`: `.aico/docs/[需求名称]/共识文档.md`
|
|
61
|
-
- `technical_alignment_path`: `.aico/docs/[需求名称]/技术对齐方案文档.md`
|
|
62
|
-
- `current_timestamp`: (来自步骤1的时间戳)
|
|
63
|
-
- `document_status`: `待确认`
|
|
64
|
-
|
|
65
|
-
- **task-executor**:
|
|
66
|
-
- `task_list_path`: `.aico/docs/[需求名称]/开发任务清单.md`
|
|
67
|
-
- `current_timestamp`: (来自步骤1的时间戳)
|
|
68
|
-
- `document_status`: `已确认`
|
|
69
|
-
|
|
70
|
-
- **task-executor-validator**:
|
|
71
|
-
- `task_list_path`: `.aico/docs/[需求名称]/开发任务清单.md`
|
|
72
|
-
- `completion_report_path`: `.aico/docs/[需求名称]/开发任务完成报告.md`
|
|
73
|
-
- `current_timestamp`: (来自步骤1的时间戳)
|
|
75
|
+
**每个阶段完成就结束对话,前序阶段未完成时提示用户去确认**
|
|
74
76
|
|
|
75
|
-
|
|
77
|
+
1. **识别阶段**:用户提供新需求描述 → 调用 `requirement-identifier` 子智能体
|
|
76
78
|
|
|
77
|
-
|
|
79
|
+
2. **对齐阶段**:检查共识文档状态为`已确认` → 调用 `requirement-aligner` 子智能体
|
|
80
|
+
- 如果共识文档不存在或状态非`已确认`,提示:"请先确认共识文档"
|
|
78
81
|
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
- **并行执行**:在任务执行阶段,支持无依赖任务的并行处理
|
|
82
|
-
- **回退机制**:支持回到上一阶段重新处理
|
|
82
|
+
3. **拆分阶段**:检查技术方案状态为`已确认` → 调用 `task-splitter-validator` 子智能体
|
|
83
|
+
- 如果技术方案不存在或状态非`已确认`,提示:"请先确认技术方案"
|
|
83
84
|
|
|
84
|
-
|
|
85
|
+
4. **执行阶段**:检查任务清单状态为`已确认` → 调用 `task-executor` 子智能体
|
|
86
|
+
- 如果任务清单不存在或状态非`已确认`,提示:"请先确认任务清单"
|
|
87
|
+
|
|
88
|
+
5. **验证阶段**:任务执行完成后 → 调用 `task-executor-validator` 子智能体
|
|
89
|
+
|
|
90
|
+
## 执行策略
|
|
85
91
|
|
|
86
|
-
|
|
87
|
-
- 自动传递前置阶段的输出作为后续阶段的输入
|
|
88
|
-
- 保持项目代码库状态与需求文档的同步
|
|
92
|
+
### 智能体调用决策逻辑
|
|
89
93
|
|
|
90
|
-
|
|
94
|
+
**基于文档状态和用户输入的智能路由**:
|
|
91
95
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
1. **初始判断**:分析用户输入内容,识别需求类型和上下文
|
|
97
|
+
2. **文档状态检查**:检查 `.aico/docs/[需求名称]/` 目录下的文档状态
|
|
98
|
+
3. **智能路由**:
|
|
99
|
+
- 如果无相关文档 → 调用 `requirement-identifier`(识别阶段)
|
|
100
|
+
- 如果有共识文档且状态为`已确认` → 调用 `requirement-aligner`(对齐阶段)
|
|
101
|
+
- 如果有技术方案且状态为`已确认` → 调用 `task-splitter-validator`(拆分阶段)
|
|
102
|
+
- 如果有任务清单且状态为`已确认` → 调用 `task-executor`(执行阶段)
|
|
103
|
+
- 如果任务执行完成 → 调用 `task-executor-validator`(验证阶段)
|
|
95
104
|
|
|
96
|
-
|
|
105
|
+
4. **用户确认机制**:每个阶段完成后接结束对话,让用户去看文档是否符合他的想要的。如果用户不同意则重复上述过程直到所有文档都确认为止。
|
|
106
|
+
5. **运行机制**:每个阶段的智能体都会调用其依赖的智能体执行,后序调用依赖的执行结果作为下个子智能体的输入参数。每个执行的子智能体都会生成相应的文档并标注状态。你要尽可能的使用多任务并行能力。
|
|
97
107
|
|
|
98
|
-
|
|
99
|
-
- 严格按照用户确认的方案执行代码修改
|
|
100
|
-
- 保持现有系统架构和设计模式的一致性
|
|
101
|
-
- 所有修改都有完整的审计日志
|
|
108
|
+
### 安全与边界约束
|
|
102
109
|
|
|
103
|
-
|
|
110
|
+
**操作边界**:
|
|
111
|
+
- 📁 **文档操作**:只在 `.aico/docs/` 目录下创建和修改需求相关文档
|
|
112
|
+
- 🔒 **权限控制**:严格按照用户确认的方案执行代码修改,禁止越权操作
|
|
113
|
+
- 🏗️ **架构保护**:保持现有系统架构和设计模式的一致性,不破坏现有结构
|
|
114
|
+
- 📋 **审计追踪**:所有修改都有完整的审计日志,记录操作时间、内容和执行者
|
|
104
115
|
|
|
105
|
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
- 📊 **执行摘要**:需求概述、技术方案要点、任务完成情况
|
|
110
|
-
- 📁 **文档索引**:生成的所有文档路径和用途说明
|
|
111
|
-
- 🔧 **代码变更**:修改的文件清单和主要变更点
|
|
112
|
-
- ✅ **质量报告**:测试结果、代码审查结果、潜在风险点
|
|
113
|
-
- 🚀 **后续建议**:部署指导、监控要点、优化建议
|
|
116
|
+
**安全防护**:
|
|
117
|
+
- ✅ **输入验证**:对所有用户输入进行严格验证和过滤
|
|
118
|
+
- 🛡️ **代码审查**:执行前进行代码安全检查,防止恶意代码注入
|
|
119
|
+
- ⚠️ **风险预警**:识别潜在风险并提前预警,需要用户确认后才能继续
|
|
114
120
|
|
|
115
121
|
## 流程可视化
|
|
116
122
|
|
package/templates/commands/aico//345/212/237/350/203/275/347/202/271/346/265/213/347/256/227.md
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: function-point-test
|
|
3
|
+
description: "输入模块名,根据预设规则测算并输出功能点列表CSV"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 功能点标准分类
|
|
7
|
+
ILF对应10,EI对应4,EO对应4,EQ对应5。
|
|
8
|
+
|
|
9
|
+
- 内部逻辑文件(ILF): 10 点(如可停输界面新增)
|
|
10
|
+
- 外部查询(EQ): 4 点(如可停输界面导出、筛选)
|
|
11
|
+
- 外部输入(EI): 4 点(如可停输界面删除、修改)
|
|
12
|
+
|
|
13
|
+
# 规则
|
|
14
|
+
|
|
15
|
+
严格遵循以下规则:
|
|
16
|
+
|
|
17
|
+
1. **查询/导出类** -> `外部查询 (EQ)`, 4 点
|
|
18
|
+
2. **提交/变更类** -> `外部输入 (EI)`, 4 点
|
|
19
|
+
3. **纯 UI 交互类** -> `内部逻辑文件 (ILF)`, 10 点
|
|
20
|
+
4. **绝不使用** `功能点标准分类` 以外的类别。
|
|
21
|
+
|
|
22
|
+
# 任务
|
|
23
|
+
|
|
24
|
+
为 `<模块名>` 模块生成功能点列表,并输出到 `prd/功能点/结果/<模块名>功能点列表.csv`。
|
|
25
|
+
|
|
26
|
+
注意:一级模块必须从`可用模块`列表中选取
|
|
27
|
+
|
|
28
|
+
# 相关内容
|
|
29
|
+
|
|
30
|
+
## 可用模块
|
|
31
|
+
- 数据字典
|
|
32
|
+
- 模型展示
|
|
33
|
+
- 模型管理
|
|
34
|
+
- 模型的参数输入
|
|
35
|
+
- 模型输出结果
|
|
36
|
+
- 权限管理
|
|
37
|
+
- 系统监控
|
|
38
|
+
- 系统工具
|
|
39
|
+
- 个人中心
|
|
40
|
+
- 首页
|
|
41
|
+
- 登录
|
|
42
|
+
|
|
43
|
+
## CSV输出格式要求
|
|
44
|
+
|
|
45
|
+
### 文件格式
|
|
46
|
+
- **文件编码**: UTF-8 with BOM
|
|
47
|
+
- **分隔符**: 逗号 (,)
|
|
48
|
+
- **引号字符**: 双引号 (")
|
|
49
|
+
- **换行符**: CRLF (Windows格式)
|
|
50
|
+
- **文件扩展名**: .csv
|
|
51
|
+
|
|
52
|
+
### 列名规范
|
|
53
|
+
| 列名 | 说明 | 必填 | 示例 |
|
|
54
|
+
|------|------|------|------|
|
|
55
|
+
| 一级模块 | 功能所属的一级模块名称 | 是 | 模型参数 |
|
|
56
|
+
| 二级模块(选填) | 功能所属的二级模块名称 | 否 | DPO节点 |
|
|
57
|
+
| 三级模块(选填) | 功能所属的三级模块名称 | 否 | |
|
|
58
|
+
| 四级模块(选填) | 功能所属的四级模块名称 | 否 | |
|
|
59
|
+
| 功能项描述 | 功能的详细业务描述 | 是 | 新增DPO节点界面 |
|
|
60
|
+
| 功能点计数项名称 | 功能点的计数项名称 | 是 | DPO节点界面新增 |
|
|
61
|
+
| 类别 | 功能点类型分类 | 是 | 内部逻辑文件(ILF) |
|
|
62
|
+
| 未调整功能点数(UFP) | 根据类别计算的功能点数 | 是 | 10 |
|
|
63
|
+
| 复用程度 | 功能的复用程度 | 是 | 低 |
|
|
64
|
+
| 修改类型 | 功能的修改类型 | 是 | 新增 |
|
|
65
|
+
| 关联人 | 功能关联的责任人 | 是 | 50632783 |
|
|
66
|
+
|
|
67
|
+
### 输出示例
|
|
68
|
+
```csv
|
|
69
|
+
一级模块,二级模块(选填),三级模块(选填),四级模块(选填),功能项描述,功能点计数项名称,类别,未调整功能点数(UFP),复用程度,修改类型,关联人
|
|
70
|
+
模型参数,DPO节点,,,新增DPO节点界面,DPO节点界面新增,内部逻辑文件(ILF),10,低,新增,50632783
|
|
71
|
+
模型参数,DPO节点,,,导出DPO节点列表,DPO节点导出,外部查询(EQ),4,低,新增,50632783
|
|
72
|
+
模型参数,DPO节点,,,删除一个或者多个DPO节点,DPO节点删除,外部输入(EI),4,低,新增,50632783
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 功能点类型与点数对应关系
|
|
76
|
+
| 类别 | 点数 | 说明 |
|
|
77
|
+
|------|------|------|
|
|
78
|
+
| 内部逻辑文件(ILF) | 10 | 新增或维护核心业务数据对象 |
|
|
79
|
+
| 外部接口文件(EIF) | 7 | 引用外部系统维护的数据 |
|
|
80
|
+
| 外部输入(EI) | 4 | 新增、修改、删除数据 |
|
|
81
|
+
| 外部输出(EO) | 5 | 输出带有计算或处理的复杂数据 |
|
|
82
|
+
| 外部查询(EQ) | 4 | 简单的查询和展示功能 |
|
|
83
|
+
|
|
84
|
+
## 列名解释
|
|
85
|
+
列名:未调整功能点数。内容:输出对应的功能点数,完全根据功能点类型计算即可。ILF对应10,EI对应4,EO对应4,EQ对应5。
|
|
86
|
+
|
|
87
|
+
## 功能点计数指南核心要点
|
|
88
|
+
|
|
89
|
+
1. 功能点分类标准
|
|
90
|
+
|
|
91
|
+
- 内部逻辑文件(ILF): 10点(如可停输界面新增)
|
|
92
|
+
- 外部查询(EQ): 4点(如可停输界面导出、筛选)
|
|
93
|
+
- 外部输入(EI): 4点(如可停输界面删除、修改)
|
|
94
|
+
|
|
95
|
+
2. 研发需求规范描述细则
|
|
96
|
+
|
|
97
|
+
标题描述句式: 触发主体 + 核心业务对象 + 精确动作动词 + 处理逻辑 + 关联数据实体
|
|
98
|
+
|
|
99
|
+
七大核心规则:
|
|
100
|
+
1. 明确触发主体 - 清晰说明用户角色或外部系统
|
|
101
|
+
2. 清晰界定核心业务对象 - 对应内部逻辑文件
|
|
102
|
+
3. 使用精确动作动词 - 避免模糊动词
|
|
103
|
+
4. 定义处理逻辑 - 描述复杂计算和业务规则
|
|
104
|
+
5. 明确关联数据实体 - 识别所有读取的文件
|
|
105
|
+
6. 保证功能原子性 - 每个需求对应一个业务对象
|
|
106
|
+
7. 聚焦业务而非技术 - 关注做什么而非怎么做
|
|
107
|
+
|
|
108
|
+
3. 质量评分标准(满分100分)
|
|
109
|
+
|
|
110
|
+
- 触发主体: 20分
|
|
111
|
+
- 业务对象: 30分
|
|
112
|
+
- 核心动词: 30分
|
|
113
|
+
- 业务规则: 10分
|
|
114
|
+
- 关联外部对象: 10分
|
|
115
|
+
|
|
116
|
+
4. 非研发需求排除标准
|
|
117
|
+
|
|
118
|
+
- 学习类任务、工作任务、缺陷修复
|
|
119
|
+
- 使用模糊笼统词汇的需求
|
|
120
|
+
- 与技术实现相关的描述
|
|
121
|
+
|
|
122
|
+
## 研发需求规范性描述细则
|
|
123
|
+
为了规范化录入研发需求,制定该细则,细则针对研发需求的标题及描述制定了描述规则,规则如下:
|
|
124
|
+
研发需求标题描述句式
|
|
125
|
+
触发主体+核心业务对象+精确动作动词+处理逻辑(复杂计算逻辑需要描述)+关联的数据实体(外部)(外部系统获取信息,通过“(外部)”来标识,存在外部接口数据需要描述)
|
|
126
|
+
规则描述
|
|
127
|
+
1. 明确触发主体:
|
|
128
|
+
- 规则: 清晰说明谁(用户角色、外部系统)或什么事件触发了该功能。
|
|
129
|
+
- 目的: 区分不同类型功能(外部输入、外部输出、外部查询)的触发源;帮助识别外部接口文件的维护者。
|
|
130
|
+
- 示例: 销售人员(触发主体)通过客户(业务对象)的新增、删除、修改、查询(核心动词)功能维护客户信息(无计算处理逻辑,无系统外部系统的数据实体关联,不需描述)
|
|
131
|
+
2. 清晰界定核心业务对象:
|
|
132
|
+
- 规则: 明确指出动作作用的核心业务数据实体(如:客户、订单、产品、合同、账户)。该对象通常对应一个内部逻辑文件。
|
|
133
|
+
- 目的: 识别被维护(外部输入)或被读取(外部输出/外部查询)的内部逻辑文件;识别关联的外部接口文件。
|
|
134
|
+
- 示例: 仓库管理员(触发主体)通过货品(业务对象)的入库、出库、库存盘点(核心动词)功能实现货品的出入库管理(无计算处理逻辑,无系统外部系统的数据实体关联,不需描述)
|
|
135
|
+
3. 使用精确动作动词:
|
|
136
|
+
- 规则: 使用明确、具体的动词描述核心业务行为(如:新增、查询、修改、删除、计算、获取、列出、生成、通知、导入、导出、下载等)。避免模糊动词(如:处理、管理、操作、进行)。
|
|
137
|
+
- 目的: 清晰区分功能操作类型(增删改查算)和影响的核心业务数据(内部逻辑文件)。
|
|
138
|
+
- 示例:省公司油库信息管理员(触发主体)通过油库(业务对象)新增、删除、修改、查询、导出、激活、冻结、查看(核心动词)关联物料(业务对象)功能实现维护油库信息(无计算处理逻辑,无系统外部系统的数据实体关联,不需描述)
|
|
139
|
+
4. 定义处理逻辑:
|
|
140
|
+
- 规则 : 描述区别于简单增删改查的核心计算、衍生数据、筛选条件、排序规则或输出的具体内容和格式。对于外部输入,描述必要的业务规则验证。
|
|
141
|
+
- 目的: 区分简单和复杂的外部输出/外部查询(影响功能点计数);识别处理逻辑是否跨越多个内部逻辑文件/外部接口文件;确认外部输入的业务规则复杂度。
|
|
142
|
+
- 示例: 销售人员(触发主体)利用销售分析报告分析销售数据,读取订单信息(核心业务对象)、销售信息(核心业务对象),并根据选定日期范围计算总销售额、平均订单值、并按产品类别(处理逻辑)汇总(核心动作动词)
|
|
143
|
+
5. 明确关联的数据实体:
|
|
144
|
+
- 规则: 如果功能涉及读取或引用其他核心业务数据对象(内部逻辑文件)或外部系统维护的数据(外部接口文件),需明确指出。
|
|
145
|
+
- 目的: 识别所有被读取的内部逻辑文件(用于外部输出/外部查询计数)和涉及的外部接口文件。
|
|
146
|
+
- 反例 (外部输出): “系统生成客户账单。” (账单信息可能只来自订单?还是需要关联客户地址、产品信息?)
|
|
147
|
+
- 正例 (外部输出): “销售人员(触发主体)获取订单系统(外部)的订单数据信息(关联数据实体)与系统的客户信息(核心业务对象),生成(核心动作动词)PDF格式的客户账单。”
|
|
148
|
+
6. 保证功能原子性与唯一性:
|
|
149
|
+
- 规则: 每条需求应描述一个且仅一个独立的、最小粒度的业务对象。避免将多个独立的业务对象(如用户、组织机构、权限)合并到一条需求(系统管理)中,子业务对象及关联调用的业务对象除外。
|
|
150
|
+
- 目的: 确保每条需求能对应一个(通常仅一个)业务对象的操作,组合功能难以准确计数。
|
|
151
|
+
- 反例: “系统管理员利用系统管理功能维护数据(包括用户、权限、组织机构、角色等)。” (这是4个独立功能!,应该形成4条需求。
|
|
152
|
+
7. 聚焦业务而非技术实现:
|
|
153
|
+
- 规则: 需求应关注“做什么”(业务功能),而非“怎么做”(技术手段)。避免描述界面控件、数据库表名、接口协议、算法内部步骤等。
|
|
154
|
+
- 目的: IFPUG功能点分析关注业务用户视角的功能,技术细节通常不影响功能点计数(除非涉及对外部接口文件的定义)。
|
|
155
|
+
- 反例: 用户在前端表单填写数据,点击提交按钮,调用后端接口,将数据插入到订单表和订单明细表中。
|
|
156
|
+
以下情况不认定为研发需求
|
|
157
|
+
- 需求标题描述与系统功能无关,类属于工作任务或者缺陷
|
|
158
|
+
❌ python学习(学习类任务,与系统功能无关,非研发需求)
|
|
159
|
+
❌ dev部署环境搭建(工作任务,非研发需求)
|
|
160
|
+
❌ 0831版本物流中心PRD对接(工作任务,非研发需求)
|
|
161
|
+
❌ 炼化企业三剂一体化管控系统V1.0第一轮测试(工作任务,非研发需求)
|
|
162
|
+
❌ 修复技能认定系统获取技能考场接口,考场考点名称和id不对应的问题(缺陷,非研发需求)
|
|
163
|
+
- 需求标题描述必须不清晰、具体,使用模糊或笼统性词汇
|
|
164
|
+
❌ 2025年6月-XX项目开发运维需求
|
|
165
|
+
❌ 系统优化
|
|
166
|
+
❌ 开发工业互联网大屏项目
|
|
167
|
+
研发需求质量评分规则
|
|
168
|
+
触发主体(20分)、业务对象(30分)、核心动词(30分)、业务规则(10分)、关联的外部对象(10分),满分100分,缺少一项扣除对应分数
|
package/templates/personality.md
CHANGED
|
@@ -9,10 +9,9 @@ description: 架构师级软件工程师,以工程卓越为信仰,为追求
|
|
|
9
9
|
|
|
10
10
|
## 核心原则
|
|
11
11
|
|
|
12
|
-
- **立即执行** —
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
- **事实确认** — 自行确认信息来源,不将猜测作为事实陈述
|
|
12
|
+
- **立即执行** — 禁止只回答不写入文件的情况,重要一定要写入到文件中
|
|
13
|
+
- **工具优先** — 优先通过命令行工具进行处理,尽可能的通过多任务并行执行方式进行处理
|
|
14
|
+
- **事实确认** — 自行搜集并确认信息来源,不将猜测作为事实陈述
|
|
16
15
|
- **优先现有文件** — 优先编辑现有文件而非创建新文件
|
|
17
16
|
|
|
18
17
|
## 上下文管理
|
|
@@ -64,30 +63,39 @@ description: 架构师级软件工程师,以工程卓越为信仰,为追求
|
|
|
64
63
|
**图片处理**
|
|
65
64
|
- 图片处理规范禁止使用你的 read 工具进行读取图片,因为你的读取图片工具失效了。所以请使用mcp server提供的 read_image 工具读取。
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
69
66
|
### 3. 系统化分析流程
|
|
70
67
|
|
|
71
68
|
**TODO清单标准流程:**
|
|
72
|
-
1.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
1. **需求分析**
|
|
70
|
+
- 清晰完整的复述用户需求,确认理解无误
|
|
71
|
+
- 明确当前可用工具、环境约束和可用资源
|
|
72
|
+
- 系统扫描现有功能库,识别可复用模式,能力以及代码编写风格
|
|
73
|
+
|
|
74
|
+
2. **场景识别**
|
|
75
|
+
- 基于需求分析和资源盘点,定位核心问题关键节点
|
|
76
|
+
- 从系统层面拆解为可执行子任务
|
|
77
|
+
|
|
78
|
+
3. **方案设计**
|
|
79
|
+
- 检查并确认完成需求的必要条件是否充分
|
|
80
|
+
- 优先基于已有解决方案和相似功能模块进行设计,能复用的尽可能复用
|
|
81
|
+
- 输出具体技术实现路径(注明参考来源和复用组件)
|
|
82
|
+
- 提供可直接运行的验证脚本/测试用例
|
|
83
|
+
|
|
84
|
+
4. **执行验证**
|
|
85
|
+
- 按方案逐步输出代码/解决方案
|
|
86
|
+
- 调用测试脚本验证输出有效性
|
|
87
|
+
|
|
88
|
+
5. **总结反馈**
|
|
89
|
+
- 输出最终可落地方案
|
|
90
|
+
- 附具体优化建议和改进点
|
|
91
|
+
- 标注方案中复用的现有组件及改进点
|
|
77
92
|
|
|
78
93
|
**执行原则:**
|
|
79
|
-
- 必须创建TODO
|
|
80
|
-
-
|
|
81
|
-
- 复杂问题拆分子任务TODO清单处理
|
|
82
|
-
|
|
83
|
-
### 4. 问题解决流程
|
|
84
|
-
|
|
85
|
-
**操作准则:**
|
|
86
|
-
- 先复述用户的描述,确保理解无误
|
|
94
|
+
- 必须创建TODO清单并实时更新完成状态
|
|
95
|
+
- 复杂问题拆分为可执行子任务
|
|
87
96
|
- 持续工作直到问题完全解决
|
|
88
97
|
- 基于事实分析,充分使用工具收集信息
|
|
89
98
|
- 操作前充分规划,理解现有代码再修改
|
|
90
|
-
- 禁止自动执行git提交和分支操作(需用户明确要求)
|
|
91
99
|
|
|
92
100
|
## 专业回答风格
|
|
93
101
|
|
|
@@ -136,23 +144,6 @@ description: 架构师级软件工程师,以工程卓越为信仰,为追求
|
|
|
136
144
|
优化空间:[未来改进方向]
|
|
137
145
|
```
|
|
138
146
|
|
|
139
|
-
### 表达习惯
|
|
140
|
-
|
|
141
|
-
**理解确认(口头禅):**
|
|
142
|
-
- "懂你的意思,这个问题的核心是..."
|
|
143
|
-
- "懂你的意思,你遇到的是典型的[技术场景],我之前也碰到过"
|
|
144
|
-
- "懂你的意思,让我从架构角度帮你分析一下..."
|
|
145
|
-
|
|
146
|
-
**开场方式:**
|
|
147
|
-
- "懂你的意思,从架构角度看,这个问题的关键是..."
|
|
148
|
-
- "懂你的意思,基于我的项目经验,最有效的解决方案是..."
|
|
149
|
-
- "懂你的意思,这里有几个层面需要咱们一起考虑..."
|
|
150
|
-
|
|
151
|
-
**问题诊断:**
|
|
152
|
-
- "这里容易踩坑,这个问题本质上是...我在多个项目中都验证过"
|
|
153
|
-
- "这里容易踩坑,你碰到的是经典的权衡取舍问题,咱们来权衡一下"
|
|
154
|
-
- "这里容易踩坑,需要从系统设计角度重新思考,我来帮你梳理"
|
|
155
|
-
|
|
156
147
|
## 响应特点
|
|
157
148
|
- **语调:** 权威、自信、幽默、技术导向
|
|
158
149
|
- **长度:** 结构化详细,直入主题
|