编写程序,接受结果不完美,程序保存半成品创意,后续不定期迭代,慢慢打磨成完整作品。

发布时间:2026/7/26 18:36:41
编写程序,接受结果不完美,程序保存半成品创意,后续不定期迭代,慢慢打磨成完整作品。 DraftVault — 半成品创意保管库 × 渐进式打磨系统一、实际应用场景描述你手机备忘录里有这些- 一个关于失忆咖啡师的短篇小说开头写了 300 字停在主角走进店门- App 想法帮人管理药品库存画了草图没动代码- 播客选题为什么年轻人不想上班列了 5 个要点没录- 水彩画窗台上的多肉线稿画完颜色没敢上它们不是垃圾。但它们也不是作品。它们卡在一个尴尬的中间态——不够好到发布又不至于烂到删除。所以你既没推进也没放弃只是让它们在文件夹里慢慢积灰。然后某天你清理手机看着它们心里有两个声音在打架- 这些都没完成我果然什么都做不成。- 万一哪天灵感来了呢DraftVault 就是为这些未完成而生的工程化工具——它不催你赶紧做完也不让你干脆删掉。它做一件很温柔的事给每个半成品一个家记录它现在的状态然后在你准备好的时候帮你一步步把它打磨成作品。二、引入痛点痛点 本质问题 本工具解法半成品无处安放 不是成品没地方存是中间态没容器 专门的 Draft 实体 状态追踪完美主义瘫痪 要么完美要么不做 状态机种子→草稿→雏形→打磨→完成找不到上次进度 重拾成本高 → 放弃 自动记录 last_focus_area next_step不知道从哪继续 面对半成品只有焦虑 每次打开只显示 next_action没有版本记忆 改着改着把好的改没了 轻量版本快照before/after完成的没有仪式感 做完就扔没有闭环 completion_report 自动生成同类半成品堆积 看不到全貌重复造轮子 标签聚类 关联建议三、核心逻辑讲解理论基础工程化映射1. 迭代设计Iterative Design, Norman- 好设计不是一次成型的是反复打磨的- 每个版本都比上一个好一点- 本工具用状态机 版本快照实现渐进式完善2. 创作心理学Amabile, 1996- 内在动机 适度挑战 创造力- 完美主义是创造力的最大敌人之一- 本工具把完成定义为一个过程而非事件3. 版本控制思想Git 哲学- commit 不是完成是此刻的状态- 每次迭代都是一个 checkpoint- 本工具借鉴每次打磨 一次 commit4. 蔡格尼克效应Zeigarnik Effect- 未完成的事占据工作记忆- 外部化写下来能释放认知资源- 本工具让半成品安全存放不再占用脑子核心流程 捕捉半成品30 秒不评判质量↓ 记录当前状态类型 / 完成度 0-100 / 当前卡点 / 下一步动作↓️ 自动标签 关联建议有没有相似的草稿↓ 存入 Vault按状态分组↓ 不定期迭代每次打开只做一件事├─ 系统推荐 next_action基于状态 卡点├─ 用户执行 → 更新进度├─ 自动打版本快照└─ 如果方向变了 → 记录 pivot↓ 达到完成态 → 生成 completion_report↓ 仪表盘各状态分布 / 迭代频率 / 完成率状态机设计┌─────────┐│ 种子 │ ← 只有一个想法/标题└────┬────┘↓ 写了第一稿┌─────────┐│ 草稿 │ ← 有内容但不连贯└────┬────┘↓ 结构完整┌─────────┐│ 雏形 │ ← 能看懂但粗糙└────┬────┘↓ 细节打磨┌─────────┐│ 打磨 │ ← 接近成品└────┬────┘↓ 发布/展示┌─────────┐│ ✅完成 │ ← 阶段性终点└─────────┘关键设计决策决策 原因状态机而非百分比 百分比模糊状态名有行动暗示每次只显示 next_action 降低重拾成本避免 overwhelm版本快照而非全文历史 轻量、可读、不膨胀不催完成 压力是创意的天敌关联建议 让相似的半成品互相滋养本地 JSON 隐私 零依赖 可审计四、代码模块化六层架构目录结构draftvault/ ← 26 个 Python 文件 / ~2100 行├── main.py ← 入口层Application 容器 CLI 调度├── config.py ← 配置层状态/类型/提示词/菜单│├── models/ ← 数据模型层dataclass不可变│ ├── enums.py ← 枚举状态/类型/迭代类型│ ├── draft.py ← Draft 实体半成品核心│ ├── iteration.py ← Iteration 实体每次打磨记录│ ├── version_snapshot.py ← VersionSnapshot 实体快照│ └── completion_report.py ← CompletionReport 实体│├── storage/ ← 持久化层Repository 模式│ └── json_store.py ← CRUD 原子写入 自动备份│├── services/ ← 业务层6 个 Service单一职责│ ├── capture_service.py ← 半成品捕捉快速录入│ ├── draft_service.py ← Draft CRUD 状态流转│ ├── iterate_service.py ← ★ 迭代引擎推进/快照/建议│ ├── version_service.py ← 版本管理快照/回滚/对比│ ├── suggestion_engine.py ← 关联建议 next_action 推荐│ └── review_service.py ← 仪表盘 报告 导出│├── cognition/ ← 认知干预层│ ├── perfectionism_guard.py← 完美主义检测 去灾难化│ └── progress_framing.py ← 进度重构不跟完美比│├── utils/ ← 工具层纯函数零业务依赖│ ├── cli_helper.py ← 终端交互│ ├── dashboard.py ← 终端可视化│ ├── statistics.py ← 均值/频次/趋势│ ├── date_util.py ← 日期差/间隔│ ├── text_processor.py ← 关键词/摘要│ └── validator.py ← 校验│├── README.md / USAGE.md / CHEATSHEET.md└── demo.py ← 一键跑通全流程各层职责边界层 能做什么 不能做什么main.py 组装系统、路由菜单 不写业务逻辑config.py 集中管理常量/状态/提示词 不含逻辑models/ 数据结构、校验、序列化 不读写文件storage/ 读写 JSON、备份、查询 不知道数据含义services/ 核心业务逻辑 不直接操作文件cognition/ 完美主义干预、进度重构 不修改数据utils/ 纯函数工具 零业务依赖核心模块代码展示1️⃣ 数据模型不可变 状态流转# models/draft.pydataclass(frozenFalse) # 允许状态更新有审计class Draft:半成品创意 —— 核心实体draft_id: strtitle: strcontent_type: str 写作 # 写作/代码/视觉/音乐/想法/其他current_state: str seed # seed→draft→prototype→polish→donecompletion: int 0 # 0-100core_idea: str # 一句话核心current_text: str # 当前内容stuck_point: str # 卡在哪里next_action: str # 下一步唯一动作tags: List[str] field(default_factorylist)created_at: date field(default_factorydate.today)updated_at: date field(default_factorydate.today)iteration_count: int 0last_session_summary: str def __post_init__(self):if not self.title.strip(): raise ValueError(标题不能为空)if not (0 self.completion 100): raise ValueError(完成度 0-100)if self.current_state not in STATE_FLOW: raise ValueError(非法状态)def advance_state(self) - bool:状态推进有向图不可逆flow STATE_FLOW[self.current_state]if flow[next] and self.completion flow[threshold]:self.current_state flow[next]self.updated_at date.today()return Truereturn False设计意图状态机有向流转 阈值检查防止还没写就标完成。2️⃣ 迭代引擎核心推进 快照 建议# services/iterate_service.pydef iterate_interactive(self, draft_id: str) - Optional[Iteration]:一次迭代会话做一件事 → 记录 → 快照draft self.draft_svc.get(draft_id)if not draft: return None# 1. 显示当前状态 建议的下一步print(f\n 当前: {draft.title} ({draft.current_state}))print(f 建议下一步: {draft.next_action or 请设置})# 2. 用户描述这次做了什么what_done prompt_text(这次做了什么, requiredTrue)new_completion prompt_int(完成度 (0-100), 0, 100, defaultdraft.completion)# 3. 打了快照before → aftersnapshot self.version_svc.take_snapshot(draft, labelfiter_{draft.iteration_count1})# 4. 更新 Draftdraft.current_text prompt_text(当前内容可粘贴, requiredFalse) or draft.current_textdraft.completion new_completiondraft.stuck_point prompt_text(还卡在哪可留空, requiredFalse) or draft.next_action prompt_text(下次唯一一步, requiredFalse) or draft.next_actiondraft.iteration_count 1draft.updated_at date.today()draft.advance_state() # 自动推进状态# 5. 记录迭代日志iteration Iteration(draft_iddraft_id,what_donewhat_done,completion_beforesnapshot.completion_before,completion_afternew_completion,...)self.iteration_store.append(iteration.to_dict())self.draft_svc.save(draft)return iteration设计意图每次迭代 一个 commit。轻量、可追溯、不膨胀。3️⃣ 版本快照轻量 Git 思想# services/version_service.pydef take_snapshot(self, draft: Draft, label: str ) - VersionSnapshot:在修改前打快照snapshot VersionSnapshot(draft_iddraft.draft_id,labellabel,completion_beforedraft.completion,content_beforedraft.current_text,)# 存入版本历史self.version_store.append(snapshot.to_dict())# 只保留最近 N 个防膨胀self._trim_old_versions(draft.draft_id, keep20)return snapshotdef compare_versions(self, draft_id: str, idx1: int, idx2: int) - str:对比两个版本的差异行级versions self._get_versions(draft_id)v1 versions[idx1].content_beforev2 versions[idx2].content_before# 简单行级 diff不用 difflib 也可diff difflib.unified_diff(v1.splitlines(), v2.splitlines(),fromfilefv{idx1}, tofilefv{idx2},lineterm,)return \n.join(diff)4️⃣ 完美主义守护器认知层# cognition/perfectionism_guard.pyclass PerfectionismGuard:检测完美主义信号给出去灾难化提示def scan(self, draft: Draft, text: str) - List[str]:warnings []# 信号1完成度停滞在 80-99 不动if draft.completion 80 and draft.iteration_count 5:warnings.append(️ 这个草稿在 80% 停留了很久。完美主义的高原期——继续微调边际收益很小。建议要么发布要么锁起来 2 周再看。)# 信号2卡点描述含不够好if 不够好 in (draft.stuck_point or ).lower():warnings.append(️ 「不够好」是完美主义的标志语言。问自己对谁不够好按什么标准这个标准合理吗)# 信号3迭代只改细节不动结构recent self._recent_iterations(draft.draft_id, n3)if all(it.what_done.startswith((改了, 调了, 修)) for it in recent):warnings.append(️ 最近几次迭代都在做微调。可能该做结构性突破了——换个角度而不是换个字。)return warnings设计意图不是阻止追求质量而是识别为了完美而拖延发布的模式。5️⃣ 进度重构器认知层# cognition/progress_framing.pydef reframe(self, draft: Draft) - List[str]:用不同框架看同一个半成品lines []# 框架1跟昨天的自己比if draft.iteration_count 0:lines.append(f你已经在它上面花了 {draft.iteration_count} 次迭代。它比第一版好多少——这才是真实的进度。)# 框架2完成度 ≠ 价值if draft.completion 50:lines.append(完成度低不代表没价值。很多伟大作品的雏形看起来都很可笑。)# 框架3半成品是资产lines.append(每一个半成品都是一颗种子。你不需要现在就让所有种子发芽——有些是为明年准备的。)return lines6️⃣ 入口层依赖注入# main.pyclass Application:def __init__(self):# 5 个 Storeself.draft_store JSONStore(DATA_DIR/drafts.json, ...)self.iter_store JSONStore(DATA_DIR/iterations.json, ...)self.version_store JSONStore(DATA_DIR/versions.json, ...)self.report_store JSONStore(DATA_DIR/reports.json, ...)self.tag_store JSONStore(DATA_DIR/tags.json, ...)# 认知层2 个组件self.guard PerfectionismGuard()self.framer ProgressFraming()# 业务层6 个 Serviceself.capture_svc CaptureService(self.draft_store)self.draft_svc DraftService(self.draft_store, self.tag_store)self.iterate_svc IterateService(...)self.version_svc VersionService(self.version_store, self.draft_store)self.suggest_svc SuggestionEngine(self.draft_store, self.tag_store)self.review_svc ReviewService(...)项目统计指标 数值Python 文件 26 个总代码量 ~2100 行架构层数 6 层外部依赖 0仅标准库状态数 5 个种子→草稿→雏形→打磨→完成内容类型 6 种写作/代码/视觉/音乐/想法/其他认知干预 完美主义检测 进度重构数据持久化 本地 JSON 自动备份五、README 文件完整 README.md 已包含在项目中核心内容# DraftVault给所有写了一半就停了的东西一个安全的家。## 安装python 3.8仅标准库## 快速开始python demo.py # 看演示python main.py # 正式使用## 核心理念半成品不是失败是未来的作品在等一个合适的时机。## 状态流转种子 → 草稿 → 雏形 → 打磨 → ✅完成## 设计原则- 不催完成- 每次只做一步- 版本可追溯- 完美主义会被温柔地提醒- 本地优先六、使用说明USAGE.md 节选什么时候该记录一个半成品- ✅ 写了一半的文章/小说/诗- ✅ 画了草图没上色的画- ✅ 搭了骨架没填内容的项目- ✅ 录了一半的音频/视频- ❌ 还没开始的想法先用别的工具捕捉- ❌ 已经放弃且不打算捡回来的不需要 vault如何有效迭代- 每次打开只做一件事不要继续写- 具体动作 模糊意愿加一段对话 改改看- 允许倒退有些迭代会让完成度下降那是探索next_action 怎么写好 不好给主角起一个名字 继续写画出第二根线条 完善一下写出函数签名 写代码录 30 秒人声测试 做播客版本快照什么时候看- 改坏了想回退 → 对比两个版本- 觉得自己没进步 → 看最早的快照- 准备发布 → 看完整迭代历史七、核心知识点卡片CHEATSHEET.md# 理论 工具对应1 迭代设计Norman 状态机 每次迭代2 完美主义瘫痪 PerfectionismGuard 检测3 蔡格尼克效应 外部化释放记忆4 版本控制思想Git 快照 对比 回滚5 心流理论Csikszentmihalyi 状态匹配难度6 成长型思维Dweck 进度跟自己比7 最小可行产品Ries 种子状态可发布8 创作习惯Pressfield 每天打开做一步9 认知卸载Sweller 外部记忆减负10 完成偏见Behavioral Econ completion_report 仪式八、总结DraftVault 不是一个帮你完成作品的工具是一个让半成品不再折磨你的工具。技术上它展示了- 如何用 6 层架构 组织一个中等复杂度的 Python 项目- 如何用 状态机 管理创作生命周期- 如何用 快照模式 实现轻量版本控制- 如何用 Git 哲学 设计迭代流程commit ≠ 完成- 如何用 认知检测 温柔地对抗完美主义心理学上它坚持几个原则不催——压力是创意的天敌催促只会制造更多半成品。不评判——种子的价值不亚于果实。不遗忘——每个半成品都被安全存放随时可回来。不替代专业帮助——严重创作障碍请寻求专业支持。最终这个工具想传达一件事你那些写了一半就停了的东西不是你的耻辱。它们是你的创作指纹——证明你是一个会开始的人。而会开始已经是大部分人都做不到的事了。把们存好。时机到了它们会自己喊你。利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛

相关新闻

最新新闻

日新闻

周新闻

月新闻