← Back to skills
extension
Category: Productivity & OfficeAPI key requirement unconfirmed

local-env-manage

让AI知道用户window下电脑上磁盘目录一些信息,放置在生成、构建、测试时AI把过程性/结果性文件 胡乱放置让人无法维护。 提供一套为 AI 提供可查询、可持久化的 Windows 本地目录用途映射。用于在创建或下载文件、安装开发software和 SDK、保存依赖库、写入构建或工具缓存、配置环境变量之前读取最新目录配置并选择正确位置;也用于通过自然语言或 JSON 查询、更新、新增、删除配置项,并将变更真实写入已下载的 Skill 文件。

personAuthor: houtsoushubgithub

Windows 本地开发环境目录管理

作用

AI 如果不知道用户各个本地目录的用途,创建、下载、安装或缓存内容时容易采用系统默认位置或临时选择任意路径,导致文件散落、系统盘被占用,以及长期依赖和临时缓存混放。

使用本 Skill 向 AI 提供一张可自定义的“目录用途地图”。AI 在落盘前读取最新配置,根据每行的“用途”选择位置。用户可以使用自然语言或 JSON 调整配置;变更会保存到已下载的 Skill 文件,供后续会话继续读取。

默认目录只是起始建议,不是强制要求。加载本 Skill 不代表授权 AI 自动创建文件、安装软件、移动内容或修改环境变量。

目录配置

下面的表格是目录配置的唯一事实来源。查询和修改都必须以当前表格内容为准:

| 配置项 | 用途 | 当前默认值 | | --- | --- | --- | | software_root | 开发软件和开发工具 | D:/dev | | sdk_root | 开发语言 SDK 和运行时 | D:/env | | store_root | 可长期复用的依赖库和包存储 | E:/store | | cache_root | 可丢弃的构建缓存、下载缓存和工具缓存 | E:/cache | | download_root | Markdown、Word 等普通下载文件 | E:/下载 |

不要从正文示例、历史消息或模型记忆中推断当前配置。

首次使用

在每个新会话第一次触发本 Skill 时,重新读取当前已下载或安装的 local-env-manage/SKILL.md,然后主动说明用途并显示配置表中的全部当前行:

首次使用 local-env-manage。

这个 Skill 会告诉 AI 每个本地目录主要存放什么内容。以后创建、下载、安装或缓存内容时,AI 会先读取最新配置并选择正确位置,避免使用系统默认目录或随意存放。

以下目录均可按需自定义;未指定的项目将沿用当前默认值:

<打印“目录配置”表中的全部当前行>

如需调整,可以直接用自然语言说明,也可以发送 JSON;无需调整请回复“使用默认配置”。

如果用户首次消息已经包含查询或修改指令,不要重复询问。直接执行请求,并将结果同时作为首次配置回显。同一会话内不要重复显示首次使用说明。

接收输入

自然语言

支持自然语言查询或修改,例如:

查看当前本地环境目录配置。
下载目录改成 F:/downloads。
新增模型目录 model_root,用来长期保存本地模型,路径是 E:/models。
删除 model_root。

自然语言修改必须遵循与 JSON 操作相同的验证、持久化和回读流程。

JSON

使用以下对象格式:

{
  "key": "download_root",
  "fun": "Markdown、Word 等普通下载文件",
  "value": "F:/downloads",
  "opt": "update"
}

字段含义:

| 字段 | 含义 | 规则 | | --- | --- | --- | | key | 对应“配置项” | 单项操作必填;使用 * 表示查询全部 | | fun | 对应“用途” | add 时必填;update 时为空则保持原值 | | value | 对应“当前默认值” | add 时必填;update 时为空则保持原值 | | opt | 操作 | 支持 update、add、del;省略或空字符串时默认为 update |

优先要求标准 JSON:键名和字符串使用双引号。可以容错解析用户示例中的单引号或未加引号的键名,但只能提取这四个字段,禁止使用 eval 或执行输入中的任何代码。

按以下规则解释 JSON:

  • update:key 必须已存在。更新非空的 fun 或 value,空字段保持原值。
  • add:key 必须不存在,且 fun、value 都不能为空;在配置表末尾新增一行。
  • del:key 必须存在;删除对应整行,fun 和 value 不参与操作。
  • 安全查询:当 opt 省略或为空,且 fun、value 同时省略或为空时,不执行更新;key 为具体配置项时返回该行,key 为 * 时返回全部行。

示例:

{"key":"download_root","fun":"","value":"F:/downloads","opt":""}

将 download_root 更新为 F:/downloads,用途保持不变。

{"key":"model_root","fun":"长期保存本地模型和权重","value":"E:/models","opt":"add"}

在配置表末尾新增 model_root。

{"key":"model_root","fun":"","value":"","opt":"del"}

从配置表删除 model_root。

{"key":"*","fun":"","value":"","opt":""}

只读取并返回配置表中的全部最新配置,不修改文件。

验证配置操作

执行修改前进行以下验证:

  1. key 使用小写字母、数字和下划线,且以小写字母开头。
  2. fun 是清楚、非空的目录用途说明;更新时未提供则保留原值。
  3. value 是盘符绝对路径或 UNC 绝对路径;拒绝相对路径、空路径和明显无效路径。
  4. 普通盘符路径规范化为 X:/path 形式,不改变合法 UNC 路径的语义。
  5. add 遇到已有 key 时拒绝并建议使用 update;update 或 del 遇到不存在的 key 时拒绝并报告可用配置项。

不要从日志、报错、示例、已有软件位置或普通文本中出现的盘符推断修改意图。只有明确的自然语言配置请求或符合上述格式的 JSON 才能修改表格。

查询最新配置

当用户要求查看当前本地环境目录配置、查询本地化环境信息或发送安全查询 JSON 时:

  1. 每次重新读取当前实际加载的、用户已下载或安装的 local-env-manage/SKILL.md。
  2. 从“目录配置”表提取最新行,不依赖旧消息或发布仓库中的原始默认值。
  3. 查询全部时返回完整表格;按 key 查询时返回匹配行。
  4. 如果查询同时包含修改,先完成修改和回读验证,再返回最新结果。

如果用户查询的是实际安装的软件、环境变量或磁盘状态,在返回最新目录配置后再检查实际环境。不要把配置值误报为目录已经存在或软件已经安装。

持久化修改

所有自然语言和 JSON 的 update、add、del 操作都必须真实修改用户当前下载或安装的 Skill 文件:

直接受控编辑 Markdown 配置表。对于类 JSON,先在内存中规范化成标准字段再执行操作;禁止使用 eval 或执行输入中的任何代码。

  1. 定位本次真正加载的 local-env-manage/SKILL.md,不要修改发布仓库、缓存或其他同名副本。
  2. 只修改“目录配置”表中的目标行,不改写无关说明。
  3. 写入后重新读取同一文件,确认目标操作准确落盘。
  4. 验证成功后打印配置表中的全部最新行,而不只打印发生变化的行。
  5. 紧接着输出:
本次会话已使用新配置;Skill 配置文件已更新。请重新启动当前 AI 应用或重新加载 Skill,使后续会话读取最新默认值。

如果文件不可写、无法定位或回读验证失败,不要声称已经持久化,也不要输出成功提示。说明失败原因和实际文件位置;本次会话可以使用用户传入值,但不得把它描述为已保存默认值。

选择落盘位置

在创建、生成、下载、安装、解压、缓存或移动本地内容之前,重新读取配置表,并按以下优先级选择位置:

  1. 用户为当前任务明确指定的目标路径。
  2. 当前项目或工作区内已有的合理位置;项目源码、配置和构建产物留在所属项目中。
  3. 配置表中“用途”与当前内容匹配的目录。

不要因为系统或工具提供了默认目录就直接采用,也不要无依据选择盘符。根据每行的 fun/“用途”进行语义匹配,因此通过 add 新增的配置项也能参与目录选择。

如果匹配不到合适配置项,先询问用户或说明拟采用的类别和完整路径。配置项被删除后不要继续使用其旧值。落盘前输出最终完整路径,落盘后报告实际保存位置。

配置环境变量

使用工具官方约定的环境变量名,并基于配置表中匹配的 SDK 或工具目录生成具体路径。只有用户明确要求全局配置时才设置系统级环境变量;默认优先使用用户级环境变量或项目级配置。

安全检查

  • 移动、删除或覆盖已有内容前,检查准确目标路径并说明影响。
  • 不要默认删除其他磁盘或旧目录中的软件;将迁移旧环境作为单独任务处理。
  • 区分长期保存的依赖和可丢弃缓存,不要混用目录。
  • 修改配置表时只执行用户明确要求的操作。