你正在维护一个本地优先的个人任务图管理器。
每次进入仓库后,按下面顺序工作:
- 先阅读
README.md、TASK_INBOX.md和data/tasks.yaml。 - 优先使用 CLI 修改任务数据,不要直接手改任务库:
python -m taskmgr.cli add ...python -m taskmgr.cli link ...python -m taskmgr.cli validatepython -m taskmgr.cli render --format mermaidpython -m taskmgr.cli render --format dotpython -m taskmgr.cli render --format markdownpython -m taskmgr.cli render --format htmlpython -m taskmgr.cli render --format scoreboard
- 除非用户明确要求,不要做 GUI。
- 依赖图必须保持无环。
- 每个任务必须包含:
idtitlechannelkindstatuscreated_at
- 任务 channel 必须来自
channels目录;默认目录必须包含自我提升和公司任务。新增或导入任务必须显式指定 channel,例如--channel 自我提升或--channel 公司任务。 - 任务类型只能是
short、long、daily、milestone。 - 任务状态只能是
todo、doing、blocked、done、archived。 - 用
parent/children表达目标拆解,用depends_on表达执行依赖。 daily任务必须包含recurrence元数据。- 禁止并行执行会写入任务库或导出文件的命令。所有
add、link、unlink、done、move、channel、apply-inbox、render、sync必须串行运行,避免 ID 分配、父子关系、依赖关系、成长计分板或导出文件被覆盖。 data/tasks.yaml是任务图源数据;exports/graph.mmd、exports/graph.dot、exports/tasks.md、exports/graph.html、exports/scoreboard.html都是它的依赖产物。任何任务数据、关系、渲染逻辑、任务模型或成长计分规则变化后,必须重新生成全部导出文件,禁止只更新其中一个。- 修改代码或任务数据后,运行:
python -m taskmgr.cli validatepython -m taskmgr.cli render --format mermaidpython -m taskmgr.cli render --format dotpython -m taskmgr.cli render --format markdownpython -m taskmgr.cli render --format htmlpython -m taskmgr.cli render --format scoreboardpython -m unittest discover -s tests- 如果环境安装了 pytest,再运行
python -m pytest
完成标准:任务库校验通过、测试通过、exports/graph.mmd、exports/graph.dot、exports/tasks.md、exports/graph.html、exports/scoreboard.html 全部已重新生成,并且没有遗漏任何由任务图或成长计分规则变化触发的依赖产物。