@mathripper/ideal-cli 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/README.md +263 -0
- package/dist/index.d.ts +186 -0
- package/dist/index.js +6887 -0
- package/dist/index.js.map +1 -0
- package/package.json +59 -0
package/README.md
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
# Claude Code 中心化团队工作流设计方案
|
|
2
|
+
|
|
3
|
+
## 一、项目背景
|
|
4
|
+
|
|
5
|
+
以 Claude Code 为中心重构团队工作流,实现从产品设计、前端设计到开发、测试、上线的全流程自动化。核心目标是让团队成员只需:**提需求、做评审、反馈意见**,其他工作由 Claude Code 自动完成。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 二、核心架构
|
|
10
|
+
|
|
11
|
+
### 2.1 统一存储结构
|
|
12
|
+
|
|
13
|
+
采用 **Git 仓库 + Obsidian vault 统一存储** 方案,`docs/` 目录即为 Obsidian vault,文档与代码在同一仓库中版本同步。
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
{项目名称}/ # Git 仓库根目录
|
|
17
|
+
│
|
|
18
|
+
├── .claude/ # Claude Code 相关
|
|
19
|
+
│ ├── skills/ # 定制化 skills(项目级)
|
|
20
|
+
│ │ ├── ideal-brainstorm/ # 头脑风暴(通用)
|
|
21
|
+
│ │ ├── ideal-requirement/ # 需求编写(通用)
|
|
22
|
+
│ │ ├── ideal-dev-solution/ # 技术方案(开发领域)
|
|
23
|
+
│ │ ├── ideal-dev-plan/ # 计划生成(开发领域)
|
|
24
|
+
│ │ ├── ideal-test-case/ # 测试用例(测试领域)
|
|
25
|
+
│ │ ├── ideal-dev-review/ # 代码审查(开发领域)
|
|
26
|
+
│ │ ├── ideal-wiki/ # 维基生成(通用)
|
|
27
|
+
│ │ └── ...
|
|
28
|
+
│ └── plans/ # 编码计划(临时文件)
|
|
29
|
+
│
|
|
30
|
+
├── src/ # 源代码
|
|
31
|
+
│ └── orchestrator/ # 流程编排器
|
|
32
|
+
│
|
|
33
|
+
├── tests/ # 测试代码
|
|
34
|
+
│
|
|
35
|
+
├── templates/ # 所有模板
|
|
36
|
+
│ └── docs/ # 文档模板
|
|
37
|
+
│ ├── 需求文档.md
|
|
38
|
+
│ ├── 技术方案.md
|
|
39
|
+
│ ├── 编码计划.md
|
|
40
|
+
│ ├── 测试用例.md
|
|
41
|
+
│ └── 测试报告.md
|
|
42
|
+
│
|
|
43
|
+
├── docs/ # Obsidian vault(文档中心)
|
|
44
|
+
│ ├── .obsidian/ # Obsidian 配置
|
|
45
|
+
│ ├── .automation/ # 自动化配置
|
|
46
|
+
│ │ └── config.yaml
|
|
47
|
+
│ │
|
|
48
|
+
│ ├── 项目状态.md # 项目状态看板
|
|
49
|
+
│ ├── 产品愿景.md
|
|
50
|
+
│ ├── 产品路线图.md
|
|
51
|
+
│ │
|
|
52
|
+
│ ├── 迭代/ # 按需求命名
|
|
53
|
+
│ │ └── {需求名称}/
|
|
54
|
+
│ │ ├── P1-需求文档.md
|
|
55
|
+
│ │ ├── P3-技术方案.md
|
|
56
|
+
│ │ ├── P5-编码计划.md
|
|
57
|
+
│ │ ├── P7-测试用例.md
|
|
58
|
+
│ │ ├── P11-测试报告.md
|
|
59
|
+
│ │ ├── 流程状态.md # 状态控制文件
|
|
60
|
+
│ │ └── stories/ # 故事文件(P5 生成)
|
|
61
|
+
│ │ ├── index.md # 故事索引
|
|
62
|
+
│ │ └── 0XX-*.md # 原子化故事
|
|
63
|
+
│ │
|
|
64
|
+
│ └── Wiki/ # 维基文档
|
|
65
|
+
│ ├── 用户文档/
|
|
66
|
+
│ ├── 开发文档/
|
|
67
|
+
│ └── 接口文档/
|
|
68
|
+
│
|
|
69
|
+
├── .gitignore
|
|
70
|
+
├── .gitlab-ci.yml
|
|
71
|
+
└── README.md # 仓库说明
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 2.2 职责划分
|
|
75
|
+
|
|
76
|
+
| 维度 | docs/ (Obsidian vault) | src/ + 根目录 |
|
|
77
|
+
|------|------------------------|---------------|
|
|
78
|
+
| **定位** | 文档中心、流程控制、决策记录 | 代码执行层 |
|
|
79
|
+
| **人类交互** | 产品/设计/管理者(Obsidian 界面) | 开发者评审代码 |
|
|
80
|
+
| **Claude 交互** | 读写文档、生成方案 | 读写代码、执行计划 |
|
|
81
|
+
| **版本控制** | Git(通过 Obsidian Git 插件) | Git |
|
|
82
|
+
|
|
83
|
+
### 2.3 Obsidian Git 插件配置
|
|
84
|
+
|
|
85
|
+
团队使用 Obsidian Git 插件实现文档的自动同步:
|
|
86
|
+
- 自动备份间隔:每 5 分钟
|
|
87
|
+
- 自动拉取间隔:每 5 分钟
|
|
88
|
+
- 冲突处理:先 pull 再 push
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 三、阶段流程定义(P1-P15)
|
|
93
|
+
|
|
94
|
+
### 3.1 阶段总览
|
|
95
|
+
|
|
96
|
+
```mermaid
|
|
97
|
+
flowchart LR
|
|
98
|
+
%% 主流程
|
|
99
|
+
P1((P1<br/>需求编写)):::claude --> P2((P2<br/>需求评审)):::human
|
|
100
|
+
P2 --> P3((P3<br/>技术方案)):::claude
|
|
101
|
+
P3 --> P4((P4<br/>方案评审)):::human
|
|
102
|
+
P4 --> P5((P5<br/>计划生成)):::claude
|
|
103
|
+
P5 --> P6((P6<br/>计划评审)):::human
|
|
104
|
+
|
|
105
|
+
P6 --> P7((P7<br/>测试用例)):::claude
|
|
106
|
+
P7 --> P8((P8<br/>用例评审)):::human
|
|
107
|
+
P8 --> P9((P9<br/>开发执行)):::claude
|
|
108
|
+
P9 --> P10((P10<br/>代码评审)):::human
|
|
109
|
+
P10 --> P11((P11<br/>测试执行)):::claude
|
|
110
|
+
P11 --> P12((P12<br/>测试评审)):::human
|
|
111
|
+
|
|
112
|
+
P12 --> P13((P13<br/>维基更新)):::claude
|
|
113
|
+
P13 --> P14((P14<br/>维基评审)):::human
|
|
114
|
+
P14 --> P15((P15<br/>成果提交)):::claude
|
|
115
|
+
|
|
116
|
+
%% 样式定义
|
|
117
|
+
classDef human fill:#fff2cc,stroke:#d6b656,stroke-width:2px,color:#000
|
|
118
|
+
classDef claude fill:#d5e8d4,stroke:#82b366,stroke-width:2px,color:#000
|
|
119
|
+
classDef auto fill:#dae8fc,stroke:#6c8ebf,stroke-width:2px,color:#000
|
|
120
|
+
|
|
121
|
+
%% 图例
|
|
122
|
+
subgraph legend[图例]
|
|
123
|
+
L1((人工)):::human
|
|
124
|
+
L2((Claude)):::claude
|
|
125
|
+
L3((自动)):::auto
|
|
126
|
+
end
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 3.2 阶段详情
|
|
130
|
+
|
|
131
|
+
| 阶段 | 名称 | 执行者 | 输入 | 输出 | 审核人 |
|
|
132
|
+
| --- | ---- | ------ | ----------------- | -------------- | --------- |
|
|
133
|
+
| P1 | 需求编写 | 产品/设计 | 需求想法 | 需求文档.md + 原型代码 | - |
|
|
134
|
+
| P2 | 需求评审 | 人工 | 需求文档.md | 评审意见/通过 | 产品+技术负责人 |
|
|
135
|
+
| P3 | 技术方案 | Claude | 需求文档.md | 技术方案.md | - |
|
|
136
|
+
| P4 | 方案评审 | 人工 | 技术方案.md | 评审意见/通过 | 技术负责人+架构师 |
|
|
137
|
+
| P5 | 计划生成 | Claude | 技术方案.md | 编码计划.md(原子任务) | - |
|
|
138
|
+
| P6 | 计划评审 | 人工 | 编码计划.md | 评审意见/通过 | 开发负责人 |
|
|
139
|
+
| P7 | 测试用例 | Claude | 需求文档.md + 编码计划.md | 测试用例.md | - |
|
|
140
|
+
| P8 | 用例评审 | 人工 | 测试用例.md | 评审意见/通过 | 测试负责人 |
|
|
141
|
+
| P9 | 开发执行 | Claude | 编码计划.md | 代码 + MR | - |
|
|
142
|
+
| P10 | 代码评审 | 人工 | MR | Approve/修改意见 | 开发团队 |
|
|
143
|
+
| P11 | 测试执行 | Claude | 测试用例.md | 测试报告.md | - |
|
|
144
|
+
| P12 | 测试评审 | 人工 | 测试报告.md | 通过/修复 | 测试负责人 |
|
|
145
|
+
| P13 | 维基更新 | Claude | 代码 + 需求文档.md | 维基文档 | - |
|
|
146
|
+
| P14 | 维基评审 | 人工 | 维基文档 | 发布许可 | 产品+技术 |
|
|
147
|
+
| P15 | 成果提交 | Claude | 全部通过 | 合并代码、删除 worktree、提交 PR | - |
|
|
148
|
+
|
|
149
|
+
> 注:上线部署由 CI/CD 自动化完成,P15 成果提交后自动触发 CI/CD 流水线。
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 四、触发机制
|
|
154
|
+
|
|
155
|
+
### 4.1 自动触发
|
|
156
|
+
- 文件变化监听(fswatch/chokidar)
|
|
157
|
+
- 流程状态.md 中的状态字段变更
|
|
158
|
+
- GitLab Webhook(MR 状态变化)
|
|
159
|
+
|
|
160
|
+
### 4.2 手动触发
|
|
161
|
+
- 修改 流程状态.md 中的审核状态字段
|
|
162
|
+
- 命令行:`automation trigger --project 项目名 --phase P7`
|
|
163
|
+
- Obsidian 内按钮(Templater 插件)
|
|
164
|
+
|
|
165
|
+
### 4.3 状态控制示例
|
|
166
|
+
|
|
167
|
+
```markdown
|
|
168
|
+
# 流程状态.md
|
|
169
|
+
---
|
|
170
|
+
current_phase: P6
|
|
171
|
+
plan_review: pending # 改为 approved 触发 P7
|
|
172
|
+
---
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 五、通知服务
|
|
178
|
+
|
|
179
|
+
- **邮件**:关键节点通知
|
|
180
|
+
- **即时通讯**:钉钉/企业微信机器人
|
|
181
|
+
- **Obsidian 内**:README.md 状态看板自动更新
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 六、维基管理
|
|
186
|
+
|
|
187
|
+
### 6.1 文档分类
|
|
188
|
+
|
|
189
|
+
| 类型 | 内容 | 生成时机 |
|
|
190
|
+
|------|------|----------|
|
|
191
|
+
| 用户文档 | 使用指南、常见问题、更新日志 | 上线后 P15 |
|
|
192
|
+
| 开发文档 | 架构说明、部署文档 | 方案确认后 + 上线后 |
|
|
193
|
+
| 接口文档 | REST/GraphQL 文档 | 代码合并后自动提取 |
|
|
194
|
+
|
|
195
|
+
### 6.2 发布方式
|
|
196
|
+
- GitLab Wiki(自动同步)
|
|
197
|
+
- 静态站点(VitePress/Docusaurus,可选)
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 七、技术组件
|
|
202
|
+
|
|
203
|
+
### 7.1 流程调度器
|
|
204
|
+
- 文件监听器(watcher)
|
|
205
|
+
- 状态机(state machine)
|
|
206
|
+
- 任务队列(task queue)
|
|
207
|
+
- 通知服务(notify)
|
|
208
|
+
|
|
209
|
+
### 7.2 执行器
|
|
210
|
+
- Claude Code 命令行调用
|
|
211
|
+
- GitLab 接口集成
|
|
212
|
+
- 持续集成流水线触发
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## 八、后续实施任务
|
|
217
|
+
|
|
218
|
+
| 优先级 | 任务 | 说明 |
|
|
219
|
+
|--------|------|------|
|
|
220
|
+
| 高 | 定义需求文档模板和编写指南 | 产品文档规范 |
|
|
221
|
+
| 高 | 定义技术方案模板 | 基于 Superpowers |
|
|
222
|
+
| 高 | 定义编码计划模板 | 参考 Superpowers writing-plans |
|
|
223
|
+
| 高 | 实现文件监听器 | chokidar/fswatch |
|
|
224
|
+
| 高 | 实现状态机 | 阶段流转控制 |
|
|
225
|
+
| 高 | GitLab 接口集成 | Issue/MR 管理 |
|
|
226
|
+
| 中 | 定义测试用例模板 | 测试规范 |
|
|
227
|
+
| 中 | 实现通知服务 | 邮件 + 即时通讯 |
|
|
228
|
+
| 中 | 定义产品级文档模板 | 愿景/路线图 |
|
|
229
|
+
| 低 | 维基静态站点构建 | VitePress 集成 |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 九、关键决策记录
|
|
234
|
+
|
|
235
|
+
1. **存储架构**:Git 仓库与 Obsidian vault 统一存储,`docs/` 目录即为 vault
|
|
236
|
+
2. **文档格式**:全量 Markdown
|
|
237
|
+
3. **Claude 调用方式**:Claude Code 命令行
|
|
238
|
+
4. **人工干预**:关键决策点 + 每阶段审核
|
|
239
|
+
5. **Bug 管理**:直接在 GitLab Issue,不存 Obsidian
|
|
240
|
+
6. **需求与 Issue**:一对一对应
|
|
241
|
+
7. **编码计划位置**:仓库根目录 `.claude/plans/`,临时文件
|
|
242
|
+
8. **Skills 位置**:`.claude/skills/`,Claude Code 标准位置
|
|
243
|
+
9. **Skills 命名规范**:`ideal-{领域?}-{功能}`,如 `ideal-brainstorm`、`ideal-dev-plan`
|
|
244
|
+
10. **模板位置**:`templates/docs/`,按类型统一管理
|
|
245
|
+
11. **迭代命名**:按需求名称命名,如 `迭代/用户登录/`
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## 十、验证方式
|
|
250
|
+
|
|
251
|
+
1. 选择一个简单功能(如用户登录)
|
|
252
|
+
2. 按照流程从 P1 到 P15 走一遍
|
|
253
|
+
3. 验证各阶段文档生成质量
|
|
254
|
+
4. 验证触发机制是否正常
|
|
255
|
+
5. 验证通知是否到位
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 参考资源
|
|
260
|
+
|
|
261
|
+
- [Superpowers GitHub](https://github.com/obra/Superpowers)
|
|
262
|
+
- [Superpowers writing-plans skill](https://github.com/obra/Superpowers/blob/master/skills/writing-plans/SKILL.md)
|
|
263
|
+
- [Jesse Vincent's Blog - How I'm using coding agents](https://blog.fsck.com/2025/10/09/superpowers/)
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 技术栈类型
|
|
3
|
+
*/
|
|
4
|
+
type TechStack = 'React' | 'Vue' | 'Node.js' | 'Python' | 'Other';
|
|
5
|
+
/**
|
|
6
|
+
* 项目配置
|
|
7
|
+
*/
|
|
8
|
+
interface ProjectConfig {
|
|
9
|
+
/** 项目名称 */
|
|
10
|
+
projectName: string;
|
|
11
|
+
/** Git 主分支名称 */
|
|
12
|
+
gitBranch: string;
|
|
13
|
+
/** 技术栈类型 */
|
|
14
|
+
techStack: TechStack;
|
|
15
|
+
/** 工作流配置 */
|
|
16
|
+
workflow: {
|
|
17
|
+
/** 模板仓库 */
|
|
18
|
+
templateRepo: string;
|
|
19
|
+
/** 模板分支 */
|
|
20
|
+
templateBranch: string;
|
|
21
|
+
/** 最后更新时间 */
|
|
22
|
+
lastUpdated: string;
|
|
23
|
+
};
|
|
24
|
+
/** 初始化时间 */
|
|
25
|
+
initializedAt: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 模板文件类型
|
|
30
|
+
*/
|
|
31
|
+
type TemplateFileType = 'agent' | 'skill' | 'config' | 'script';
|
|
32
|
+
/**
|
|
33
|
+
* 模板文件信息
|
|
34
|
+
*/
|
|
35
|
+
interface TemplateFile {
|
|
36
|
+
/** 相对于项目根目录的路径 */
|
|
37
|
+
path: string;
|
|
38
|
+
/** MD5 哈希值 */
|
|
39
|
+
hash: string;
|
|
40
|
+
/** 文件大小(字节) */
|
|
41
|
+
size: number;
|
|
42
|
+
/** 文件类型 */
|
|
43
|
+
type: TemplateFileType;
|
|
44
|
+
/** 文件版本(可选) */
|
|
45
|
+
version?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 模板版本信息
|
|
49
|
+
*/
|
|
50
|
+
interface TemplateMeta {
|
|
51
|
+
/** 语义化版本号 */
|
|
52
|
+
version: string;
|
|
53
|
+
/** 发布日期 */
|
|
54
|
+
releasedAt: string;
|
|
55
|
+
/** 版本变更说明 */
|
|
56
|
+
changelog?: string;
|
|
57
|
+
/** 最低兼容 CLI 版本 */
|
|
58
|
+
minCliVersion: string;
|
|
59
|
+
/** 文件清单 */
|
|
60
|
+
files?: TemplateFile[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 下载的模板文件
|
|
64
|
+
*/
|
|
65
|
+
interface DownloadedFile {
|
|
66
|
+
/** 文件路径 */
|
|
67
|
+
path: string;
|
|
68
|
+
/** 文件内容 */
|
|
69
|
+
content: string;
|
|
70
|
+
/** 文件类型 */
|
|
71
|
+
type: TemplateFileType;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 检查结果状态
|
|
76
|
+
*/
|
|
77
|
+
type CheckStatus = 'pass' | 'warning' | 'error';
|
|
78
|
+
/**
|
|
79
|
+
* 检查结果
|
|
80
|
+
*/
|
|
81
|
+
interface CheckResult {
|
|
82
|
+
/** 检查项名称 */
|
|
83
|
+
name: string;
|
|
84
|
+
/** 检查状态 */
|
|
85
|
+
status: CheckStatus;
|
|
86
|
+
/** 检查消息 */
|
|
87
|
+
message: string;
|
|
88
|
+
/** 详细信息 */
|
|
89
|
+
details?: string;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* 诊断结果
|
|
93
|
+
*/
|
|
94
|
+
interface DoctorResult {
|
|
95
|
+
/** 检查结果列表 */
|
|
96
|
+
checks: CheckResult[];
|
|
97
|
+
/** 摘要统计 */
|
|
98
|
+
summary: {
|
|
99
|
+
/** 通过数量 */
|
|
100
|
+
passed: number;
|
|
101
|
+
/** 警告数量 */
|
|
102
|
+
warnings: number;
|
|
103
|
+
/** 错误数量 */
|
|
104
|
+
errors: number;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* 元数据类型定义
|
|
110
|
+
*
|
|
111
|
+
* 用于跟踪模板文件的安装和更新状态
|
|
112
|
+
*/
|
|
113
|
+
/**
|
|
114
|
+
* 单个文件的元数据
|
|
115
|
+
*/
|
|
116
|
+
interface FileMetadata {
|
|
117
|
+
/** 原始文件哈希(安装时的哈希) */
|
|
118
|
+
originalHash: string;
|
|
119
|
+
/** 远程模板版本 */
|
|
120
|
+
remoteVersion: string;
|
|
121
|
+
/** 最后同步时间 */
|
|
122
|
+
lastSyncedAt?: string;
|
|
123
|
+
/** 文件大小(字节) */
|
|
124
|
+
size?: number;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 项目元数据
|
|
128
|
+
*/
|
|
129
|
+
interface ProjectMetadata {
|
|
130
|
+
/** 元数据格式版本 */
|
|
131
|
+
version: string;
|
|
132
|
+
/** 项目初始化时间 */
|
|
133
|
+
initializedAt: string;
|
|
134
|
+
/** 模板版本 */
|
|
135
|
+
templateVersion: string;
|
|
136
|
+
/** 文件元数据映射(相对路径 -> 文件元数据) */
|
|
137
|
+
files: Record<string, FileMetadata>;
|
|
138
|
+
/** 最后更新时间 */
|
|
139
|
+
lastUpdatedAt?: string;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 文件差异状态
|
|
143
|
+
*/
|
|
144
|
+
type FileDiffStatus = 'unchanged' | 'modified' | 'added' | 'deleted' | 'remote-new' | 'conflict';
|
|
145
|
+
/**
|
|
146
|
+
* 文件差异信息
|
|
147
|
+
*/
|
|
148
|
+
interface FileDiff {
|
|
149
|
+
/** 文件路径 */
|
|
150
|
+
path: string;
|
|
151
|
+
/** 差异状态 */
|
|
152
|
+
status: FileDiffStatus;
|
|
153
|
+
/** 本地哈希(如果存在) */
|
|
154
|
+
localHash?: string;
|
|
155
|
+
/** 远程哈希(如果存在) */
|
|
156
|
+
remoteHash?: string;
|
|
157
|
+
/** 原始哈希(如果存在) */
|
|
158
|
+
originalHash?: string;
|
|
159
|
+
/** 本地版本(如果存在) */
|
|
160
|
+
localVersion?: string;
|
|
161
|
+
/** 远程版本(如果存在) */
|
|
162
|
+
remoteVersion?: string;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* 差异比较结果
|
|
166
|
+
*/
|
|
167
|
+
interface DiffResult {
|
|
168
|
+
/** 是否有变化 */
|
|
169
|
+
hasChanges: boolean;
|
|
170
|
+
/** 未修改的文件数量 */
|
|
171
|
+
unchangedCount: number;
|
|
172
|
+
/** 用户修改的文件数量 */
|
|
173
|
+
modifiedCount: number;
|
|
174
|
+
/** 新增的文件数量 */
|
|
175
|
+
addedCount: number;
|
|
176
|
+
/** 删除的文件数量 */
|
|
177
|
+
deletedCount: number;
|
|
178
|
+
/** 远程新增的文件数量 */
|
|
179
|
+
remoteNewCount: number;
|
|
180
|
+
/** 冲突的文件数量 */
|
|
181
|
+
conflictCount: number;
|
|
182
|
+
/** 所有文件差异列表 */
|
|
183
|
+
diffs: FileDiff[];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export type { CheckResult, CheckStatus, DiffResult, DoctorResult, DownloadedFile, FileDiff, FileDiffStatus, FileMetadata, ProjectConfig, ProjectMetadata, TechStack, TemplateFile, TemplateFileType, TemplateMeta };
|