Skip to content

支持把 cheat-on-content 数据目录隔离到子目录,避免污染项目根目录 #64

Description

@sudoHG

问题

cheat-on-content 现在默认把用户当前工作目录当成内容项目根目录。执行初始化之后,会在根目录直接创建和维护一整套文件与目录。

这个设计在一个空项目里还可以接受,但如果用户本来已经有自己的内容工作区、资料库、草稿、归档和项目规则,根目录会很快变得难以导航。校准系统本身是有价值的,但它的运行文件、状态文件和用户原本的内容资产混在一起之后,会让人不知道哪些是“我的项目文件”,哪些是“工具运行文件”。

我现在的工作区根目录里同时出现了项目文件和 cheat-on-content 的运行 / 校准文件,例如:

.cheat-state.json
.cheat-hooks/
.claude/
WORKFLOW.md
STATUS.md
candidates.md
audience.md
benchmark.md
rubric_notes.md
rubric-memo.md
script_patterns.md
imports/
samples/
scripts/
predictions/
videos/

这些文件对工具来说都合理,但从用户视角看,体验很像一个工具直接接管了项目根目录。

为什么这会影响使用

很多内容项目的根目录本来就有自己的信息架构,例如:

  • 内容创作标准和流程文档
  • 人设 / 定位文档
  • 草稿和发布稿
  • 资料库归档 / 证据链
  • 不同平台的发布资产

cheat-on-content 初始化后,根目录会同时承载两种角色:

  1. 用户自己的内容项目入口
  2. cheat-on-content 的数据目录和运行目录

这会让工作区可读性下降,也会降低新用户的安全感:初始化一个工具后,根目录突然多出十几个文件 / 文件夹,用户很难判断哪些能动、哪些不能动、哪些是运行时状态、哪些是长期资产。

建议方案

希望可以支持一个隔离的数据 / 工作目录,例如:

content-project/
├── README.md
├── content-workbench/
├── archive/
└── cheat-content/
    ├── .cheat-state.json
    ├── .cheat-hooks/
    ├── .claude/
    ├── WORKFLOW.md
    ├── STATUS.md
    ├── candidates.md
    ├── audience.md
    ├── benchmark.md
    ├── rubric_notes.md
    ├── rubric-memo.md
    ├── script_patterns.md
    ├── imports/
    ├── samples/
    ├── scripts/
    ├── predictions/
    └── videos/

可能的交互方式:

  1. cheat-init --dir cheat-content
  2. 初始化时问一句:“cheat-on-content 的文件要放在哪里?”
  3. 支持 CHEAT_PROJECT_ROOT / CHEAT_DATA_DIR,让所有 skill 都从这个目录读写,而不是只依赖 cwd。
  4. 在项目根目录放一个很小的指针配置,例如 .cheat-content.json,告诉 skill 真正的数据目录在哪里。
  5. 保持向后兼容:如果当前 cwd 下已经有 .cheat-state.json,继续沿用现在的根目录布局。

实现时需要注意的点

  • 所有子 skill 应该从同一个数据根目录解析 .cheat-state.jsonrubric_notes.mdcandidates.mdpredictions/scripts/videos/ 等路径。
  • immutability hook 应该保护 <cheat-data-dir>/predictions/*.md,而不是只保护 ${CLAUDE_PROJECT_DIR}/predictions/*.md
  • SessionStart / meta-logging hook 也应该写入隔离的数据目录。
  • 文档里最好明确区分:用户内容项目根目录 vs cheat-on-content 数据根目录。
  • Codex 场景下尤其需要说明,因为自然语言触发很依赖当前 cwd。

期望结果

用户可以保持自己的内容工作区清爽,同时完整使用 cheat-on-content 的闭环:

  • 打分
  • 盲预测
  • 发布登记
  • T+3 复盘
  • rubric 进化
  • 候选池推荐

这不是要移除现有根目录布局,而是希望给已有结构化工作区的用户一个“命名空间 / 隔离目录”选项。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions