@huajiwuyan/hello 3.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 +68 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +448 -0
- package/package.json +38 -0
- package/templates/claude/commands/hello.md +760 -0
- package/templates/claude/skills/SKILL.md +90 -0
- package/templates/claude/skills/SKILL.toml +7 -0
- package/templates/claude/skills/assets/icon-large.svg +12 -0
- package/templates/claude/skills/assets/icon-small-400px.svg +12 -0
- package/templates/claude/skills/assets/templates/CHANGELOG.md +24 -0
- package/templates/claude/skills/assets/templates/CHANGELOG_{YYYY}.md +25 -0
- package/templates/claude/skills/assets/templates/INDEX.md +36 -0
- package/templates/claude/skills/assets/templates/archive/_index.md +22 -0
- package/templates/claude/skills/assets/templates/context.md +82 -0
- package/templates/claude/skills/assets/templates/modules/_index.md +22 -0
- package/templates/claude/skills/assets/templates/modules/module.md +35 -0
- package/templates/claude/skills/assets/templates/plan/proposal.md +104 -0
- package/templates/claude/skills/assets/templates/plan/tasks.md +49 -0
- package/templates/claude/skills/references/functions/auto.md +217 -0
- package/templates/claude/skills/references/functions/clean.md +167 -0
- package/templates/claude/skills/references/functions/commit.md +374 -0
- package/templates/claude/skills/references/functions/exec.md +178 -0
- package/templates/claude/skills/references/functions/help.md +105 -0
- package/templates/claude/skills/references/functions/init.md +228 -0
- package/templates/claude/skills/references/functions/plan.md +219 -0
- package/templates/claude/skills/references/functions/review.md +146 -0
- package/templates/claude/skills/references/functions/rollback.md +208 -0
- package/templates/claude/skills/references/functions/test.md +153 -0
- package/templates/claude/skills/references/functions/upgrade.md +371 -0
- package/templates/claude/skills/references/functions/validate.md +147 -0
- package/templates/claude/skills/references/rules/package.md +212 -0
- package/templates/claude/skills/references/rules/scaling.md +150 -0
- package/templates/claude/skills/references/rules/state.md +318 -0
- package/templates/claude/skills/references/rules/tools.md +371 -0
- package/templates/claude/skills/references/services/knowledge.md +408 -0
- package/templates/claude/skills/references/services/templates.md +344 -0
- package/templates/claude/skills/references/stages/analyze.md +201 -0
- package/templates/claude/skills/references/stages/design.md +379 -0
- package/templates/claude/skills/references/stages/develop.md +497 -0
- package/templates/claude/skills/references/stages/evaluate.md +286 -0
- package/templates/claude/skills/references/stages/tweak.md +244 -0
- package/templates/claude/skills/scripts/create_package.py +260 -0
- package/templates/claude/skills/scripts/list_packages.py +145 -0
- package/templates/claude/skills/scripts/migrate_package.py +399 -0
- package/templates/claude/skills/scripts/project_stats.py +438 -0
- package/templates/claude/skills/scripts/upgradewiki.py +321 -0
- package/templates/claude/skills/scripts/utils.py +596 -0
- package/templates/claude/skills/scripts/validate_package.py +309 -0
- package/templates/codex/prompts/hello.md +757 -0
- package/templates/codex/skills/SKILL.md +74 -0
- package/templates/codex/skills/SKILL.toml +7 -0
- package/templates/codex/skills/assets/icon-large.svg +12 -0
- package/templates/codex/skills/assets/icon-small-400px.svg +12 -0
- package/templates/codex/skills/assets/templates/CHANGELOG.md +24 -0
- package/templates/codex/skills/assets/templates/CHANGELOG_{YYYY}.md +25 -0
- package/templates/codex/skills/assets/templates/INDEX.md +36 -0
- package/templates/codex/skills/assets/templates/archive/_index.md +22 -0
- package/templates/codex/skills/assets/templates/context.md +82 -0
- package/templates/codex/skills/assets/templates/modules/_index.md +22 -0
- package/templates/codex/skills/assets/templates/modules/module.md +35 -0
- package/templates/codex/skills/assets/templates/plan/proposal.md +104 -0
- package/templates/codex/skills/assets/templates/plan/tasks.md +29 -0
- package/templates/codex/skills/references/functions/auto.md +181 -0
- package/templates/codex/skills/references/functions/brain.md +275 -0
- package/templates/codex/skills/references/functions/clean.md +154 -0
- package/templates/codex/skills/references/functions/commit.md +265 -0
- package/templates/codex/skills/references/functions/debug/condition-based-waiting.md +151 -0
- package/templates/codex/skills/references/functions/debug/defense-in-depth.md +147 -0
- package/templates/codex/skills/references/functions/debug/root-cause-tracing.md +168 -0
- package/templates/codex/skills/references/functions/debug.md +389 -0
- package/templates/codex/skills/references/functions/exec.md +153 -0
- package/templates/codex/skills/references/functions/help.md +101 -0
- package/templates/codex/skills/references/functions/init.md +221 -0
- package/templates/codex/skills/references/functions/plan.md +178 -0
- package/templates/codex/skills/references/functions/review.md +135 -0
- package/templates/codex/skills/references/functions/rlm.md +864 -0
- package/templates/codex/skills/references/functions/rollback.md +190 -0
- package/templates/codex/skills/references/functions/test.md +140 -0
- package/templates/codex/skills/references/functions/upgrade.md +363 -0
- package/templates/codex/skills/references/functions/validate.md +135 -0
- package/templates/codex/skills/references/rules/cache.md +136 -0
- package/templates/codex/skills/references/rules/scaling.md +124 -0
- package/templates/codex/skills/references/rules/state.md +201 -0
- package/templates/codex/skills/references/rules/tools.md +301 -0
- package/templates/codex/skills/references/services/attention.md +53 -0
- package/templates/codex/skills/references/services/knowledge.md +559 -0
- package/templates/codex/skills/references/services/package.md +383 -0
- package/templates/codex/skills/references/services/templates.md +390 -0
- package/templates/codex/skills/references/stages/analyze.md +191 -0
- package/templates/codex/skills/references/stages/design.md +355 -0
- package/templates/codex/skills/references/stages/develop.md +520 -0
- package/templates/codex/skills/references/stages/tweak.md +239 -0
- package/templates/codex/skills/rlm/__init__.py +39 -0
- package/templates/codex/skills/rlm/agent_orchestrator.py +422 -0
- package/templates/codex/skills/rlm/context_manager.py +366 -0
- package/templates/codex/skills/rlm/engine.py +915 -0
- package/templates/codex/skills/rlm/folding.py +391 -0
- package/templates/codex/skills/rlm/repl.py +452 -0
- package/templates/codex/skills/rlm/roles/analyzer.md +66 -0
- package/templates/codex/skills/rlm/roles/designer.md +94 -0
- package/templates/codex/skills/rlm/roles/explorer.md +43 -0
- package/templates/codex/skills/rlm/roles/implementer.md +62 -0
- package/templates/codex/skills/rlm/roles/kb_keeper.md +138 -0
- package/templates/codex/skills/rlm/roles/pkg_keeper.md +163 -0
- package/templates/codex/skills/rlm/roles/reviewer.md +74 -0
- package/templates/codex/skills/rlm/roles/synthesizer.md +90 -0
- package/templates/codex/skills/rlm/roles/tester.md +83 -0
- package/templates/codex/skills/rlm/schemas/agent_result.json +174 -0
- package/templates/codex/skills/rlm/session.py +376 -0
- package/templates/codex/skills/rlm/shared_tasks.py +370 -0
- package/templates/codex/skills/scripts/create_package.py +260 -0
- package/templates/codex/skills/scripts/list_packages.py +145 -0
- package/templates/codex/skills/scripts/migrate_package.py +399 -0
- package/templates/codex/skills/scripts/project_stats.py +438 -0
- package/templates/codex/skills/scripts/upgradewiki.py +321 -0
- package/templates/codex/skills/scripts/utils.py +596 -0
- package/templates/codex/skills/scripts/validate_package.py +309 -0
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
# 工具调用规则
|
|
2
|
+
|
|
3
|
+
本模块定义内部模块调用门控和脚本执行规范。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 规则概述
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
规则名称: 工具调用规则
|
|
11
|
+
适用范围: 所有涉及脚本调用和内部模块调用的场景
|
|
12
|
+
核心职责:
|
|
13
|
+
- 定义内部模块调用入口和识别规则
|
|
14
|
+
- 规范脚本调用格式和路径
|
|
15
|
+
- 管理脚本存在性检查和降级处理
|
|
16
|
+
- 定义错误恢复机制
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
<module_gate>
|
|
22
|
+
## 内部模块调用门控
|
|
23
|
+
|
|
24
|
+
**命名空间:** `helloagents`
|
|
25
|
+
|
|
26
|
+
**你的职责:** 通过路由机制统一调度内部模块,确保执行流程的完整性和可追溯性。
|
|
27
|
+
|
|
28
|
+
<module_identification>
|
|
29
|
+
内部模块特征定义:
|
|
30
|
+
1. 位于 skills/helloagents/ 目录下的 .md 文件
|
|
31
|
+
2. 通过 G4 路由机制触发
|
|
32
|
+
3. 通过命令触发词(~auto/~plan/~exec等)触发
|
|
33
|
+
4. 通过模块间相互引用触发
|
|
34
|
+
</module_identification>
|
|
35
|
+
|
|
36
|
+
**内部模块识别:**
|
|
37
|
+
- 位于 `skills/helloagents/` 目录下的 `.md` 文件
|
|
38
|
+
|
|
39
|
+
**调用入口:** G4 路由机制、命令触发词(~auto/~plan/~exec等)、模块间相互引用
|
|
40
|
+
</module_gate>
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
<script_validation>
|
|
45
|
+
## 脚本调用规范
|
|
46
|
+
|
|
47
|
+
### 路径基准
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
SKILL_ROOT: skills/helloagents/ # SKILL.md 所在目录
|
|
51
|
+
SCRIPT_DIR: {SKILL_ROOT}/scripts/ # 脚本目录
|
|
52
|
+
TEMPLATE_DIR: {SKILL_ROOT}/assets/templates/ # 模板目录
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 调用格式
|
|
56
|
+
|
|
57
|
+
<script_call_rules>
|
|
58
|
+
脚本调用规则:
|
|
59
|
+
1. 始终使用绝对路径
|
|
60
|
+
2. 路径使用双引号包裹
|
|
61
|
+
3. 项目路径为可选参数
|
|
62
|
+
4. 不指定项目路径时使用当前工作目录
|
|
63
|
+
</script_call_rules>
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
标准格式: python -X utf8 "{SCRIPT_DIR}/{脚本名}.py" [<项目路径>] [<其他参数>]
|
|
67
|
+
路径要求: 始终使用绝对路径,双引号包裹
|
|
68
|
+
项目路径: 可选参数,不指定时使用当前工作目录
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 项目路径确定规则
|
|
72
|
+
|
|
73
|
+
<path_determination>
|
|
74
|
+
项目路径确定推理过程:
|
|
75
|
+
1. 默认使用CLI当前打开的路径(cwd)
|
|
76
|
+
2. 用户明确指定时使用用户指定的路径
|
|
77
|
+
3. 上下文不明确时追问用户确认
|
|
78
|
+
</path_determination>
|
|
79
|
+
|
|
80
|
+
```yaml
|
|
81
|
+
优先级:
|
|
82
|
+
1. CLI当前打开的路径(cwd)- 默认使用
|
|
83
|
+
2. 用户在对话中明确指定的路径 - 覆盖默认
|
|
84
|
+
3. 无法确定时 - 追问用户确认
|
|
85
|
+
|
|
86
|
+
AI判断流程:
|
|
87
|
+
- 默认: 不传路径参数,脚本使用 cwd
|
|
88
|
+
- 用户指定其他路径时: 传入用户指定的路径
|
|
89
|
+
- 上下文不明确时: 追问用户确认目标项目
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 脚本用法
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
validate_package.py:
|
|
96
|
+
用法: python -X utf8 "{SCRIPT_DIR}/validate_package.py" [--path <项目路径>] [<方案包名>]
|
|
97
|
+
示例:
|
|
98
|
+
- validate_package.py # 当前目录,所有方案包
|
|
99
|
+
- validate_package.py --path "/path/to/project" # 指定目录,所有方案包
|
|
100
|
+
- validate_package.py 202501_feat # 当前目录,指定方案包
|
|
101
|
+
- validate_package.py --path "/project" 202501_feat # 指定目录和方案包
|
|
102
|
+
|
|
103
|
+
project_stats.py:
|
|
104
|
+
用法: python -X utf8 "{SCRIPT_DIR}/project_stats.py" [--path <项目路径>]
|
|
105
|
+
示例:
|
|
106
|
+
- project_stats.py # 当前目录
|
|
107
|
+
- project_stats.py --path "/path/to/project" # 指定目录
|
|
108
|
+
|
|
109
|
+
create_package.py:
|
|
110
|
+
用法: python -X utf8 "{SCRIPT_DIR}/create_package.py" <feature> [--type <implementation|overview>] [--path <项目路径>]
|
|
111
|
+
示例:
|
|
112
|
+
- create_package.py add-login # 当前目录,implementation类型
|
|
113
|
+
- create_package.py add-login --type overview # 当前目录,overview类型
|
|
114
|
+
- create_package.py add-login --path "/project" # 指定目录
|
|
115
|
+
|
|
116
|
+
list_packages.py:
|
|
117
|
+
用法: python -X utf8 "{SCRIPT_DIR}/list_packages.py" [--path <项目路径>]
|
|
118
|
+
示例:
|
|
119
|
+
- list_packages.py # 当前目录
|
|
120
|
+
- list_packages.py --path "/path/to/project" # 指定目录
|
|
121
|
+
|
|
122
|
+
migrate_package.py:
|
|
123
|
+
用法: python -X utf8 "{SCRIPT_DIR}/migrate_package.py" <package-name> [--status <completed|skipped|overview>] [--all] [--path <项目路径>]
|
|
124
|
+
示例:
|
|
125
|
+
- migrate_package.py 202501201234_feature # 迁移指定方案包
|
|
126
|
+
- migrate_package.py --all --status skipped # 迁移全部,标记为skipped
|
|
127
|
+
- migrate_package.py 202501_feat --path "/project" # 指定目录
|
|
128
|
+
|
|
129
|
+
upgradewiki.py:
|
|
130
|
+
用法: python -X utf8 "{SCRIPT_DIR}/upgradewiki.py" [--path <项目路径>] [--force]
|
|
131
|
+
示例:
|
|
132
|
+
- upgradewiki.py # 当前目录,增量升级
|
|
133
|
+
- upgradewiki.py --force # 强制重建
|
|
134
|
+
- upgradewiki.py --path "/path/to/project" # 指定目录
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 脚本存在性检查
|
|
138
|
+
|
|
139
|
+
**检查时机:** 调用脚本前必须验证
|
|
140
|
+
|
|
141
|
+
<existence_check>
|
|
142
|
+
脚本存在性检查流程:
|
|
143
|
+
1. 构建完整脚本路径
|
|
144
|
+
2. 验证脚本是否存在
|
|
145
|
+
3. 存在则继续执行,不存在则进入降级处理
|
|
146
|
+
4. 执行脚本并捕获输出
|
|
147
|
+
5. 成功则继续流程,失败则进入错误恢复
|
|
148
|
+
</existence_check>
|
|
149
|
+
|
|
150
|
+
```yaml
|
|
151
|
+
步骤1 - 构建完整脚本路径:
|
|
152
|
+
路径: {SCRIPT_DIR}/{脚本名}.py
|
|
153
|
+
|
|
154
|
+
步骤2 - 验证脚本存在:
|
|
155
|
+
存在: 继续执行
|
|
156
|
+
不存在: 进入降级处理
|
|
157
|
+
|
|
158
|
+
步骤3 - 执行脚本:
|
|
159
|
+
捕获输出和退出码
|
|
160
|
+
成功: 继续流程
|
|
161
|
+
失败: 进入错误恢复
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
<script_fallback>
|
|
165
|
+
### 脚本不存在时的降级处理
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
处理方式: 使用内置逻辑执行对应功能(见下方降级能力)
|
|
169
|
+
输出: 按 G3 场景内容规则(警告)输出,说明脚本不可用,已使用内置逻辑替代
|
|
170
|
+
|
|
171
|
+
降级能力:
|
|
172
|
+
create_package.py: 直接创建目录结构和文件
|
|
173
|
+
list_packages.py: 使用文件查找工具扫描plan/目录
|
|
174
|
+
migrate_package.py: 直接执行文件移动和索引更新
|
|
175
|
+
validate_package.py: 直接检查文件存在性和内容完整性
|
|
176
|
+
project_stats.py: 使用文件查找和统计工具
|
|
177
|
+
upgradewiki.py: 使用文件工具执行扫描、初始化、备份、写入操作(AI负责内容分析和生成)
|
|
178
|
+
```
|
|
179
|
+
</script_fallback>
|
|
180
|
+
|
|
181
|
+
<script_execution_report>
|
|
182
|
+
### 脚本执行报告机制(ExecutionReport)
|
|
183
|
+
|
|
184
|
+
**概述:** 脚本通过 JSON 格式的执行报告与 AI 通信,支持部分完成时的降级接手。
|
|
185
|
+
|
|
186
|
+
**报告结构:**
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"script": "脚本名称",
|
|
191
|
+
"success": true/false,
|
|
192
|
+
"completed": [
|
|
193
|
+
{
|
|
194
|
+
"step": "步骤描述",
|
|
195
|
+
"result": "执行结果(如文件路径)",
|
|
196
|
+
"verify": "AI 质量检查方法"
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
"failed_at": "失败的步骤(仅 success=false 时)",
|
|
200
|
+
"error_message": "错误信息(仅 success=false 时)",
|
|
201
|
+
"pending": ["待完成任务1", "待完成任务2"],
|
|
202
|
+
"context": {
|
|
203
|
+
"feature": "功能名称",
|
|
204
|
+
"package_path": "方案包路径",
|
|
205
|
+
"...": "其他上下文"
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**AI 降级接手流程:**
|
|
211
|
+
|
|
212
|
+
<ai_takeover_flow>
|
|
213
|
+
AI降级接手推理过程:
|
|
214
|
+
1. 解析脚本输出的 JSON 执行报告
|
|
215
|
+
2. 识别 success=false 表示需要接手
|
|
216
|
+
3. 质量检查 completed 中已完成的步骤
|
|
217
|
+
4. 发现问题则修复
|
|
218
|
+
5. 按 pending 列表继续完成剩余任务
|
|
219
|
+
</ai_takeover_flow>
|
|
220
|
+
|
|
221
|
+
```yaml
|
|
222
|
+
步骤1 - 解析执行报告:
|
|
223
|
+
- 检测脚本输出是否为 JSON 格式
|
|
224
|
+
- success=true: 任务完成,无需接手
|
|
225
|
+
- success=false: 进入降级接手流程
|
|
226
|
+
|
|
227
|
+
步骤2 - 质量检查(CRITICAL):
|
|
228
|
+
目的: 验证脚本已完成步骤的实际结果
|
|
229
|
+
方法: 逐项检查 completed 列表
|
|
230
|
+
|
|
231
|
+
检查方式:
|
|
232
|
+
目录创建: 使用 Read 或 Bash ls 确认存在
|
|
233
|
+
文件写入: 使用 Read 验证内容完整性
|
|
234
|
+
模板填充: 检查必需章节是否存在
|
|
235
|
+
文件移动: 确认目标存在且源已删除
|
|
236
|
+
|
|
237
|
+
发现问题: 先修复再继续
|
|
238
|
+
|
|
239
|
+
步骤3 - 读取上下文:
|
|
240
|
+
- 从 context 获取执行参数
|
|
241
|
+
- 确认与当前任务目标一致
|
|
242
|
+
|
|
243
|
+
步骤4 - 继续执行:
|
|
244
|
+
- 按 pending 列表顺序完成剩余任务
|
|
245
|
+
- 使用 AI 工具能力(Read/Write/Bash)执行
|
|
246
|
+
- 参考 templates.md 了解文件结构要求
|
|
247
|
+
|
|
248
|
+
质量检查示例:
|
|
249
|
+
步骤: "创建方案包目录"
|
|
250
|
+
result: "helloagents/plan/202501201234_feature"
|
|
251
|
+
verify: "检查目录是否存在且为空目录"
|
|
252
|
+
AI操作: Read 或 Bash ls 确认目录存在
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**支持 ExecutionReport 的脚本:**
|
|
256
|
+
|
|
257
|
+
```yaml
|
|
258
|
+
create_package.py:
|
|
259
|
+
输出: ExecutionReport JSON
|
|
260
|
+
可能的 pending 任务:
|
|
261
|
+
- 创建 plan/ 目录
|
|
262
|
+
- 创建方案包目录
|
|
263
|
+
- 创建 proposal.md(需包含:元信息、需求、方案章节)
|
|
264
|
+
- 创建 tasks.md(需包含:执行状态、任务列表章节)
|
|
265
|
+
|
|
266
|
+
migrate_package.py:
|
|
267
|
+
输出: ExecutionReport JSON
|
|
268
|
+
可能的 pending 任务:
|
|
269
|
+
- 创建归档目录
|
|
270
|
+
- 更新 tasks.md 状态
|
|
271
|
+
- 移动方案包
|
|
272
|
+
- 创建/更新 _index.md
|
|
273
|
+
|
|
274
|
+
validate_package.py:
|
|
275
|
+
输出: 验证结果 JSON(非 ExecutionReport)
|
|
276
|
+
特殊字段: template_missing 标志
|
|
277
|
+
AI处理: 根据 template_missing 决定是否跳过章节验证
|
|
278
|
+
```
|
|
279
|
+
</script_execution_report>
|
|
280
|
+
|
|
281
|
+
<error_recovery>
|
|
282
|
+
### 错误恢复机制
|
|
283
|
+
|
|
284
|
+
**脚本执行失败时:**
|
|
285
|
+
|
|
286
|
+
<script_error_handling>
|
|
287
|
+
脚本错误分类处理:
|
|
288
|
+
1. 环境错误: 尝试python3替代,仍失败则降级
|
|
289
|
+
2. 依赖错误: 降级为内置逻辑
|
|
290
|
+
3. 路径错误: 创建目录重试或提示用户处理
|
|
291
|
+
4. 运行时错误: 分析可恢复性,决定降级或暂停
|
|
292
|
+
</script_error_handling>
|
|
293
|
+
|
|
294
|
+
```yaml
|
|
295
|
+
错误分类与恢复策略:
|
|
296
|
+
环境错误(Python未安装/版本不兼容):
|
|
297
|
+
- 尝试使用 python3 替代 python
|
|
298
|
+
- 仍失败则降级为内置逻辑
|
|
299
|
+
|
|
300
|
+
依赖错误(模块导入失败):
|
|
301
|
+
- 降级为内置逻辑
|
|
302
|
+
- 提示用户安装依赖(可选)
|
|
303
|
+
|
|
304
|
+
路径错误(文件不存在/权限不足):
|
|
305
|
+
- 路径不存在: 检查并创建目录后重试
|
|
306
|
+
- 权限不足: 提示用户处理,暂停流程
|
|
307
|
+
|
|
308
|
+
运行时错误(脚本逻辑异常):
|
|
309
|
+
- 分析错误输出判断是否可恢复
|
|
310
|
+
- 可恢复: 降级为内置逻辑
|
|
311
|
+
- 不可恢复: 暂停流程,输出错误详情
|
|
312
|
+
|
|
313
|
+
输出: 按 G3 场景内容规则输出(可恢复=警告,不可恢复=错误)
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**文件操作失败时:**
|
|
317
|
+
|
|
318
|
+
<file_error_handling>
|
|
319
|
+
文件操作错误处理:
|
|
320
|
+
1. 写入失败: 检查目录、检查冲突、重试一次
|
|
321
|
+
2. 读取失败: 检查路径、根据必要性决定处理方式
|
|
322
|
+
3. 目录创建失败: 检查父目录和权限
|
|
323
|
+
</file_error_handling>
|
|
324
|
+
|
|
325
|
+
```yaml
|
|
326
|
+
写入失败:
|
|
327
|
+
- 检查目标目录是否存在,不存在则创建
|
|
328
|
+
- 检查是否有同名文件冲突
|
|
329
|
+
- 重试一次后仍失败则暂停,输出错误详情
|
|
330
|
+
|
|
331
|
+
读取失败:
|
|
332
|
+
- 检查文件路径是否正确
|
|
333
|
+
- 文件不存在时根据场景决定:
|
|
334
|
+
- 必需文件: 暂停流程,提示创建
|
|
335
|
+
- 可选文件: 跳过并继续
|
|
336
|
+
|
|
337
|
+
目录创建失败:
|
|
338
|
+
- 检查父目录是否存在
|
|
339
|
+
- 检查权限问题
|
|
340
|
+
- 提示用户手动创建
|
|
341
|
+
```
|
|
342
|
+
</error_recovery>
|
|
343
|
+
</script_validation>
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
<shell_spec>
|
|
348
|
+
## Shell 规范
|
|
349
|
+
|
|
350
|
+
> 📌 规则引用: Shell 语法规范、工具选择逻辑见 G1,始终生效
|
|
351
|
+
</shell_spec>
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## 规则引用关系
|
|
356
|
+
|
|
357
|
+
```yaml
|
|
358
|
+
被引用:
|
|
359
|
+
- 所有涉及脚本调用的命令
|
|
360
|
+
- ~validate 命令(validate_package.py)
|
|
361
|
+
- ~init/~upgrade 命令(upgradewiki.py)
|
|
362
|
+
- 项目分析阶段(project_stats.py)
|
|
363
|
+
- 方案设计阶段(create_package.py)
|
|
364
|
+
- 开发实施阶段(migrate_package.py)
|
|
365
|
+
|
|
366
|
+
引用:
|
|
367
|
+
- G1 Shell语法规范
|
|
368
|
+
- G3 场景内容规则
|
|
369
|
+
- G4 路由机制
|
|
370
|
+
- references/services/templates.md(文件结构要求)
|
|
371
|
+
```
|