Files

2.8 KiB
Raw Permalink Blame History

id, title, phase, deps, status, created
id title phase deps status created
T-589 AI工场独立提示词模板数据层与完整 CRUD 7
T-583
DONE 2026-07-11

问题 / 背景

AI工场只有一个完整提示词框,不再区分“主提示词/每张动作词”,但需要较窄模板下拉和“新建、重命名、保存、删除”。模板不能与②封面模板混用,避免不同业务语义互相覆盖。

方案

  • appconfig 增加 image_studio_prompts_dir(),固定为 data/prompts/image_studio/。
  • 复用 T-583 通用模板 CRUD,不复制另一套文件名校验、重名保护或删除逻辑。
  • 新建输入不重复名称;重命名只改名;保存把当前完整文本写入选中模板;删除二次确认。
  • 不解析模板内容、不拆段、不按行生成;模板只是把完整文本载入编辑框。
  • 当前项目草稿提示词由 T-586 项目字段保存,选择模板只覆盖编辑框/草稿,不自动改历史 job。

验收要点

  • AI工场模板与标题/封面模板目录完全隔离,CRUD 和中文错误完整。
  • 空名、非法路径、重名、目标不存在、删除最后模板均有确定行为。
  • 选择模板返回原始完整文本;换行不触发任务拆分。
  • 测试只用临时目录,不写真实 data;通用模板既有测试不回归。

边界(不改什么)

  • 本任务只做路径/数据层,不做 GUI 和 AI 请求。
  • 不复制②模板 CRUD,不引入本地图片或提示词自动补写。
  • 不把 AI工场模板打成②封面模板的别名。

执行记录

  • 2026-07-11:完成 AI工场独立提示词模板数据层。
    • app/appconfig.py 新增 image_studio_prompts_dir(config=None),固定解析到 data/prompts/image_studio/。
    • app/prompts.py 复用 T-583 通用 list/load/save/rename/delete_template,新增 list/load/save/rename/delete_image_studio_template 薄封装;模板内容按原始完整文本保存,不解析、不拆行。
    • tests/test_prompts.py 覆盖 AI工场模板 CRUD、空名/非法名/重名/不存在错误、原始多行文本保持,以及与标题/封面模板目录隔离;tests/test_appconfig.py 覆盖目录路径。
    • docs/04-architecture.md 已同步 data/prompts/image_studio/<名称>.txt 存储口径。
    • 当前工作树运行 py -3.10 -m unittest tests.test_prompts tests.test_appconfig 仍因无关未提交默认封面模板改名失败(papa1 变为「默认」);T-589 本身在 clean worktree 验证通过。
    • 验证:在只套用 T-589 diff 的 clean worktree 中运行 py -3.10 -m unittest tests.test_prompts tests.test_appconfig(25 tests)、python -m ruff check app tests main.py、py -3.10 -m compileall app main.py、py -3.10 -m unittest discover -s tests(356 tests)和 git diff --check,全部通过。