Imported from STC214/GenShin_Tools (
AGENTS.md). Install upstream withnpx skills add STC214/GenShin_Tools. Copyright stays with the author.
Codex 工作区规则
本项目固定执行规则
- 修改或创建代码文件必须使用
apply_patch,禁止通过echo、cat、Set-Content、Out-File或命令行字符串写入代码。 - 修改流程固定为:读取相关文件 -> 最小
apply_patch-> 使用适用的格式化工具(如适用)-> 针对性测试或最小验证。 - 每次修改后立即完成适用的格式化和最小验证,不要先继续搜索或修改其他文件。
- 不要重复确认已经明确的事项,不要输出冗长计划;直接执行并简要报告结果。
- 不要修改任务范围之外的文件,不要撤销用户已有改动。
需求语义完整性
- 处理用户请求时,先识别全部明确要求、隐含约束、目标文件和验收条件。
- 不得因为任务较长而省略后半部分要求,不得只执行最容易实现的子任务。
- 修改文件前,先检查相关文件的现有内容、调用关系和用户已有改动。
- 保留与当前任务无关的已有内容、配置和用户改动,不得用新内容整体覆盖旧内容。
- 如果用户要求合并、追加或保留原内容,必须先读取原文,再进行局部追加;无法读取原文时应停止编辑并说明原因。
- 需求存在歧义时,优先采用最小、可逆、符合现有项目约定的改动;若无法安全判断则先询问。
- 完成修改后,执行与改动直接相关的验证,并报告未完成的检查或剩余风险。
Windows 命令稳定性
- 对复杂 PowerShell 命令,将
-Command视为不可靠方式。 - 当命令包含嵌套单双引号、JSON、正则、脚本块、管道、重定向、多行文本或多文件处理时,不得嵌套使用
powershell -Command、pwsh -Command、cmd /c或bash -c。 - 复杂命令必须先写入临时
.ps1文件,再使用以下形式执行:
pwsh -NoProfile -File <script-path>
- 外层命令保持简单,不要把脚本正文再次嵌入命令参数。
- 路径优先使用
-LiteralPath;使用脚本变量或参数块传递路径和数据,避免把路径插入嵌套命令字符串。 - 优先拆分为多个短命令,不要生成超长 PowerShell 单行命令。
- 除非任务明确要求,不要重复添加 UTF-8 控制台初始化前缀或额外 shell 包装层。
- 创建会修改文件的脚本后,执行前先检查或验证脚本内容。
- 用于整合、转义或临时执行命令而创建的
.ps1等临时脚本,必须在使用完成后自动清理;用于编写、维护版本信息的正式脚本不属于临时文件,应予保留。用于打包 release 的版本化脚本按语义版本从新到旧仅保留最新三个版本,每次生成或使用后自动清理更早版本;无版本区分的通用打包脚本作为正式脚本保留。 - 对删除、递归移动、网络配置等高风险操作,执行前先输出解析后的目标路径,并获得用户明确确认。
失败时的处理
如果命令因引号、转义或参数截断失败,不要继续在原命令上堆叠反斜杠和引号。改为创建 .ps1 文件,使用 pwsh -NoProfile -File 执行,并报告脚本路径、退出码和关键输出。