# 路径配置(运行时优先) > 本文件是**产出路径的唯一权威配置**,运行时优先于标准库 `references/创作流程规范.md` 五、产出路径规范。 > 只要本文件存在(含默认配置),AI 执行创作流程前必须先读本文件;如有「用户自定义路径」记录,一律以用户指定为准,标准库默认路径自动失效。 ## 一、默认路径(用户未自定义时生效) **先判断运行环境(两环境判定 · 仓库特征判定,v3),再按运行系统解析桌面路径:** | 运行环境 | 判断依据 | 默认产出根目录 | |:---|:---|:---| | 开发机 | 技能**处于源技能 git 检出内**(`git -C {技能目录} rev-parse --show-toplevel` 能返回仓库根) | 用户桌面 `MCNSkill项目/`(`{账号名}/脚本{编号}/` 直挂,无技能文件夹层) | | 用户环境 | 技能**不在任何 git 检出内**(技能装在用户机器上,路径不限,如 `~/.workbuddy/skills/…`) | 用户桌面 `MCNSkill项目/`(与开发机同构) | 桌面路径按运行系统自动解析: | 系统 | 桌面路径 | |:---|:---| | Windows | `C:\Users\{用户名}\Desktop\` | | macOS | `~/Desktop/`(即 `/Users/{用户名}/Desktop/`) | **AI 执行规则:** 1. 先做两环境判定(**仓库特征判定**): - 判断技能是否处于**源技能 git 检出内**——执行 `git -C "{技能目录}" rev-parse --show-toplevel`,返回仓库根即 **① 开发机**;命令失败(或返回 NOT_IN_REPO)即 **② 用户环境**。无 git 环境时兜底:从技能目录向上逐级查找,任一级存在 `.git` 目录/文件即开发机,查到盘符根仍未命中即用户环境 - 开发机与用户环境产出**同构** → 桌面 `MCNSkill项目/{账号名}/脚本{编号}/` - ⚠️ 禁止按 `.dsh` 路径段或 `D:\dshworkspace` 做任何分支判断(该部署环境已不存在) 2. 再判断当前运行系统(Windows / macOS),拼接桌面路径 3. 目录不存在则自动创建 4. 产出结构:`{产出根目录}/{账号名}/脚本{编号}/…`(内部文件结构不变,仅根目录可变) ## 二、用户自定义路径(最高优先级) **如果用户明确要求修改产出位置,一律以用户指定为准,不要沿用默认桌面路径,也不要自作主张改回桌面。** 出现自定义需求时,在此追加记录(保留用户原话,便于追溯): ``` > 用户指定:{用户原话} > 解析后路径:{绝对路径} > 记录时间:{日期} ``` **示例:** > 用户指定:产出放到 D 盘我的文件夹里 > 解析后路径:`D:\我的素材\MCN产出\` > 记录时间:2026-08-13 记录后,AI 每次执行创作流程都以「解析后路径」为产出根目录;用户再次修改时直接更新本记录即可(旧记录保留,标注新记录生效)。 ## 三、解析规则(优先级从高到低) 1. 本文件「用户自定义路径」记录 → 用自定义路径(最新一条生效) 2. 本文件默认路径 → 按两环境判定确定产出根目录(在源技能 git 检出内 = 开发机 → 桌面 `MCNSkill项目/`;不在任何 git 检出内 = 用户环境 → 桌面 `MCNSkill项目/`。**两者同构**),再按系统拼接桌面路径 3. 路径含 `~` 时自动展开为用户主目录 4. 路径含 `{用户名}` 时替换为当前系统用户名 5. 目录不存在时自动创建 ## 变更记录 - 2026-08-26:新增运行环境判断——技能不在 `.dsh` 路径下(本地/源技能环境)时,默认产出根目录改为用户桌面 `MCNSkill项目/脚本创作/`(统一项目文件夹中的本技能对应文件夹);dsh 部署环境维持桌面 `MCNSkillCase/` 不变(用户指定:"技能的输出不在dsh路径下时,默认放在桌面 MCNSkill项目下对应文件夹中";双向同步自 V1.0)。 - 2026-08-26(修订):dsh 部署环境默认产出根目录由桌面 `MCNSkillCase/` 改为桌面 `DSHSkill项目/`(用户指定:"在 dsh环境下 生成的文件放到 桌面DSHSkill项目 文件夹下");产出结构 `{账号名}/脚本{编号}/` 不变;双向同步自 V1.0。 - 2026-08-26(再修订):dsh 部署环境改为**优先操作** `D:\dshworkspace\创作任务\`(主工作区「创作任务」目录,与 .dsh 部署副本既有自定义路径记录一致;用户指定:"dsh 中优先操作 D:\dshworkspace\创作任务\");主工作区不存在时兜底桌面 `DSHSkill项目/`。产出结构不变;双向同步自 V1.0。 - 2026-08-26(三环境重构):环境判定由两级改为**三环境两步判定**(①本机无 `D:\AgentSkill`=用户环境;②有且技能路径含 `.dsh`=dsh 部署环境;③有且不含 `.dsh`=开发机);`DSHSkill项目/` 根目录**整体废弃**(用户确认),原"dsh 异机兜底 DSHSkill项目/"场景并入用户环境 → 桌面 `MCNSkill项目/脚本创作/`;dsh 部署环境产出 `D:\dshworkspace\创作任务\` 不变。产出结构不变;双向同步自 V1.0。 - 2026-08-26(层级精简):开发机与用户环境产出根目录由 `MCNSkill项目/脚本创作/` 改为 `MCNSkill项目/`——去掉技能文件夹层,`{账号名}/脚本{编号}/` 直挂(用户指定:"不论1还是3,都是 桌面\MCNSkill项目\{账号名}\{脚本名}\对应文件");dsh 部署环境不变;双向同步自 V1.0。 - 2026-09-10(判定锚点重构 v2 · 仓库特征判定):环境判定锚点由「本机是否存在 `D:\AgentSkill`」改为**仓库特征判定**——第一步查技能路径是否含 `.dsh`(含 = dsh 部署环境),第二步用 `git -C {技能目录} rev-parse --show-toplevel` 判断技能是否处于源技能 git 检出内(在 = 开发机,不在 = 用户环境;无 git 时兜底为向上逐级查找 `.git`)。产出根目录三环境结果**完全不变**,仅判定依据改变。**根因**:仓库本地路径迁移导致写死盘符锚点失效 → 开发机被误判为「用户环境」。(用户确认:"改为仓库特征判定";同源同步自 V1.0) - 2026-09-10(环境模型精简 v3 · 三环境 → 两环境):**dsh 部署环境整体废弃**(用户确认:"第一步 技能路径含 .dsh 路径段 ② dsh 部署环境 没有这个环境了")。实测依据:`~/.dsh/skills/` 不存在、`~/.dsh/mcn-plugin.db` 不存在、`~/.dsh` 下仅剩 `profiles/`、`D:\dshworkspace` 整个目录不存在。故删除 `.dsh` 判定分支与 `D:\dshworkspace\创作任务\` 产出路径,判定简化为**一步**。剩余两环境产出本就同构(桌面 `MCNSkill项目/`),产出结果不变。(同源同步自 V1.0)