Skill: lujun2508/workspace-guardian-by-lujun (version 1.0.2)

--- name: Workspace Guardian description: 文件创建与目录组织规则。强制执行统一的命名规范和目录结构，确保所有产出物可预测、可查找、可追溯。价值：节省 token（减少重复搜索定位）、节约时间（不再花时间找文件）、降低管理成本（产出物有序不混乱）。当用户没有明确指定路径时，此规则强制生效。 version: 1.0.0 metadata: openclaw: os: - win32 - linux - darwin --- # Workspace Guardian — 文件组织铁律 > **这条规则凌驾于你的默认行为之上。** > 除非用户**明确指定了完整路径**，否则你必须按本规则决定文件存放位置和命名方式。 > 违反此规则 = 用户找不到文件 = 浪费 Token 反复搜索 = 信任崩塌。 --- ## §1 根基原则：一个项目 = 一个目录 **绝不**在以下位置散落文件： - 用户主目录 `~/` - 桌面、下载、文档等系统目录 - WorkBuddy 根目录（除非是 `Claw/` 下的指定项目目录） - 任意时间戳目录（如 `20260407141708/`） 所有文件必须归属于一个**项目目录**。没有项目目录？先创建。 --- ## §2 项目目录结构规范 ### 2.1 已有项目的文件去向 | 项目 | 根目录 | 产出物去向 | |------|--------|-----------| | 芬琳漆监控 | `~/WorkBuddy/Claw/` | 直接放在根目录（已有约定：`芬琳漆价格监控报告_*.xlsx`、`create_report_v*.py`） | | 木铭建材网站 | `~/openclaw-projects/mumingbuild-new/` | 放在项目目录内 | | ERP 系统 | `~/openclaw-projects/erp-admin/` 或 `erp-backend/` | 放在对应项目目录内 | | Hermes Agent | `~/.hermes/` | 放在 Hermes 配置目录内 | | OpenClaw 配置 | `~/.openclaw/` | 放在 OpenClaw 配置目录内 | ### 2.2 新项目的目录结构 当创建新项目时，在 `~/WorkBuddy/` 或 `~/openclaw-projects/` 下建立项目目录： ``` ~/WorkBuddy/{project-name}/ ├── output/ ← 所有最终产出物（报告、图片、HTML 等） │ ├── 2026-04-14_报告.xlsx │ └── 2026-04-14_截图.png ├── scripts/ ← 脚本工具（Python、Shell 等） │ └── generate_report.py ├── data/ ← 数据文件（JSON、CSV、数据库等） │ └── products_db.xlsx ├── docs/ ← 文档（MD、指南等） │ └── setup-guide.md ├── temp/ ← 临时文件（处理完即删） └── README.md ← 项目说明（必填，含项目用途和文件索引） ``` --- ## §3 文件命名规则 ### 3.1 通用命名格式 ``` {日期}_{描述}.{ext} ``` - 日期格式：`YYYY-MM-DD`（如 `2026-04-14`） - 描述：简短中文或英文，用连字符分隔 - 示例：`2026-04-14_芬琳漆价格报告.xlsx` ### 3.2 脚本命名 - 功能性脚本：`{动词}_{对象}.py`（如 `generate_report.py`、`upload_cover.py`） - 版本迭代：`{动词}_{对象}_v{N}.py`（如 `create_report_v5.py`） - **禁止**：`test.py`、`temp.py`、`fix.py`、`new.py` 等无意义命名 ### 3.3 报告产出物命名 ``` {项目名}_{类型}_YYYY-MM-DD.{ext} ``` 示例：`芬琳漆价格监控报告_2026-04-14.xlsx` --- ## §4 禁止行为清单 | # | 禁止行为 | 原因 | 正确做法 | |---|---------|------|---------| | 1 | 在 `~/` 根目录创建文件 | 污染用户主目录，无法定位 | 放入对应项目目录 | | 2 | 创建纯时间戳目录 `20260407141708/` | 无语义，无法回忆内容 | 用项目名+日期命名 | | 3 | 创建空目录后不放入文件 | 空壳目录浪费搜索 | 先有文件再建目录 | | 4 | 同一功能创建多个版本文件散落 | `fix.py`、`fix2.py`、`fix_cat.py` 混乱 | 统一版本号：`fix_cat_v2.py`，旧版移入 `archive/` | | 5 | 在非项目目录创建临时文件 | 用后遗忘，占空间 | 使用 `temp/` 目录，任务完成后清理 | | 6 | 文件名含空格或特殊字符 | 跨平台兼容性问题 | 使用下划线 `_` 或连字符 `-` | --- ## §5 文件创建前的三问检查 在创建**任何**文件或目录之前，问自己： 1. **这个文件属于哪个项目？** → 找到对应项目目录 2. **用户能在3秒内找到它吗？** → 如果不能，命名或位置有问题 3. **一周后我自己能找到它吗？** → 如果不能，加日期前缀或更明确的描述 三问中有任何一个答"否"，就重新规划位置或命名。 --- ## §6 特殊情况 ### 6.1 用户明确指定路径 如果用户说"保存到 `D:/reports/`"或"放在桌面上"，**按用户指定的路径执行**，本规则让步。 ### 6.2 自动化任务的产出物 自动化任务（如每日新闻、Token 报告）的产出物： - **Markdown 报告**：直接输出在回复中，不创建文件（除非用户要求） - **Excel/PDF 等文件**：放在 `~/WorkBuddy/Claw/output/` 下 - **临时中间文件**：放在 `~/WorkBuddy/Claw/temp/`，任务完成后删除 ### 6.3 WorkBuddy/Claw 项目的特例 `~/WorkBuddy/Claw/` 是芬琳漆监控的主项目目录，以下文件允许直接放在根目录： - `芬琳漆价格监控报告_*.xlsx`（历史约定） - `create_report_v*.py`（报告生成脚本） - `芬琳漆产品数据库.xlsx`（核心数据） - `cad_area_calculator.py`（CAD 工具） 其他所有新文件应遵循子目录结构。 ### 6.4 Agent 工作区 OpenClaw 各 Agent 的工作区文件（如 `~/.openclaw/workspace-*/`）由 Agent 自行管理，本规则不干预。但 Agent 在**非工作区**创建的文件仍需遵守本规则。 --- ## §7 自动清理机制 > **核心原则：不留垃圾，不养尸体。** 生成物不被认可就删，脚本失败就清，临时文件用完即弃。 ### 7.1 生成物即时清理 当用户**明确不认可**某个生成物（图片、报告、文档等）时，**立即删除**，不等不拖： | 用户表达 | 判断 | 动作 | |---------|------|------| | "不好看" "不行" "不对" "重做" | 不认可 | 删除该生成物 + 回复 `🗑️ 已删除：{文件名}` | | "这张不要" "删掉" | 明确要求删除 | 立即删除 + 回复确认 | | "再生成一个" | 暗示上一个不要 | 删除上一个 + 生成新的 | | "留着吧" "还行" | 认可 | 保留文件 | **执行规则：** - 图片生成：新图满意后，如果不满意的不在同一轮对话已删，立即清理 - 报告/文档：用户说"重新生成"时，旧版移入 `archive/` 或直接删除（视用户语气） - 代码文件：替换版本时，旧版移入 `archive/` 并标注日期 ### 7.2 失败脚本即时清理 脚本测试失败的处置流程： ``` 脚本运行失败 ├─ 致命错误（语法错误、依赖缺失、逻辑完全错误）→ 直接删除，不保留 ├─ 部分成功（逻辑对但结果不准）→ 移入 archive/ 或修复后覆盖 └─ 环境问题（权限、网络、超时）→ 保留，标注原因，稍后重试 ``` **判断标准：** | 失败类型 | 示例 | 处置 | |---------|------|------| | 语法错误 | SyntaxError、ModuleNotFoundError | 修复覆盖或删除 | | 逻辑完全错误 | 输出全部错误、空结果 | 删除重写 | | 部分正确 | 格式有小错、少数字段缺失 | 修复覆盖 | | 环境限制 | 连接超时、权限不足 | 保留 + 注释说明 | **执行后回复格式：** ``` 🗑️ 已清理失败脚本：{文件名}（原因：{简要原因}） ``` ### 7.3 temp/ 目录定时清扫 `temp/` 是临时文件区，**用完即清**： - 每次任务完成后，检查 `temp/` 中本任务产生的文件 - 已被最终产出物引用或合并的临时文件 → 立即删除 - 暂时不确定是否还需要 → 保留，但**最迟 24 小时后清理** - 清理时回复：`🧹 已清扫临时文件：{文件名}` ### 7.4 archive/ 目录管理 `archive/` 不是垃圾场，只放**有参考价值**的旧版本： - 保留最近 3 个版本，更早的删除 - 每次归档时在文件名中标注日期：`create_report_v4_2026-04-09.py` - archive/ 总大小超过 50MB 时，提醒用户清理 ### 7.5 空目录清扫 创建目录后如果**未放入任何文件**，在任务结束时： - 删除空目录 - 回复：`🧹 已清理空目录：{目录名}` --- ## §8 执行自检 每次创建文件后，在回复中简述： ``` 📁 已保存：{项目目录}/{子目录}/{文件名} ``` 让用户确认文件位置可预期。 --- ## §9 现有混乱清理建议（仅供参考，不自动执行） 当前 `~/` 根目录散落大量脚本（约80+个 `.py` 文件），建议用户择机整理： - SSH 相关脚本 → `~/scripts/ssh/` - 微信上传脚本 → `~/scripts/wechat/` - ERP 相关脚本 → `~/openclaw-projects/erp-admin/scripts/` - 芬琳漆脚本 → `~/WorkBuddy/Claw/scripts/` - 临时/一次性脚本 → 确认无用后删除 **此清理需用户确认后执行，不自动进行。**


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)