feat(tasks): adopt Vikunja as task authority with one-way export
把任务的协调状态迁到自建 Vikunja 的 cmbuyer 项目,git 保留单向投影, 并把「活跃任务写路径不得重叠」从自然语言规则变成机器门禁。 - scripts/vikunja_export.py:单向导出(只发 GET),stdlib-only 的 HTML→Markdown,只覆盖标记区块内,幂等,含 --selftest - scripts/vikunja-mcp.sh:MCP 启动包装从家目录迁入仓库,版本写死 1.1.1 - scripts/validate_agent_context.py:新增四项离线检查——DOING 任务写路径 互斥、通配不得圈走共享文档、导出区块 sha256、连接键一致性 - docs/agent-context.json:新增 shared_documents 与 tracker,schema_version 2 - vikunja.env 比照 gitea.env 加入 gitignore,提交 vikunja.env.example write_paths、## 边界与安全边界条目的权威留在 git,不迁往 Vikunja: 安全边界能否收紧靠 git diff 逐条复核,权威搬到远端会切断审计链。 门禁上线即报出存量违规:T-005 与 T-006 同为 DOING,在 06-tasks.md、 08-interaction-checklist.md、routes.md、current-state.md 四处重叠。 按 T-008 规定不得绕过,须由两者所有者收窄写路径或人工确认后转 DONE。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
1. 每个 agent 同时最多一个 `DOING` 任务。
|
||||
2. 领取编号最小、状态 `TODO`、依赖全部 `DONE` 的任务。
|
||||
3. 开工前写清 `write_paths`;与其他活跃任务路径重叠时不得并行。
|
||||
`scripts/validate_agent_context.py` 会强制这一条,不通过就不是「注意一下」而是失败。
|
||||
4. 记录默认分支头 `context_ref` 和工作分支。
|
||||
5. 状态改为 `DOING` 后再修改生产代码。
|
||||
6. 验收全部有证据后改 `DONE`;无法继续时标 `BLOCKED` 并写清所需外部输入。
|
||||
@@ -40,6 +41,7 @@ phase: 1
|
||||
deps: [T-002]
|
||||
status: TODO
|
||||
created: 2026-08-03
|
||||
vikunja_task_id: null # Vikunja 上对应任务的 id,是两边唯一的连接键
|
||||
context_ref: null
|
||||
work_branch: null
|
||||
needs_device: true # 是否需要真机验收
|
||||
@@ -78,6 +80,23 @@ write_paths:
|
||||
- 是否触发了创建订单的动作;若触发,订单是否已产生、如何处置。
|
||||
- 安全停止证据(若涉及)。
|
||||
|
||||
## 混合文件格式
|
||||
|
||||
任务文件是 Vikunja 投影与 git 原生内容的混合体,自上而下:
|
||||
|
||||
1. frontmatter。`vikunja_task_id` 是连接键;`write_paths`、`context_ref`、`work_branch`
|
||||
是 git 原生,导出脚本永不写入。
|
||||
2. 一行 BEGIN 标记(HTML 注释,含 `id`、`synced`、`sha256`)。
|
||||
3. 区块正文:问题 / 背景、关联需求与交互、方案、验收要点、执行记录。
|
||||
**Vikunja 权威**,`scripts/vikunja_export.py` 整段覆盖。
|
||||
4. 一行 END 标记。
|
||||
5. `## 边界`。**git 权威**,脚本不触碰。
|
||||
|
||||
改区块内的内容要去 Vikunja 改,然后重新导出。直接手改会被 `sha256` 校验抓到并失败——
|
||||
这是刻意的,两个权威同时可写就一定漂移。
|
||||
|
||||
尚未迁移到 Vikunja 的任务文件(没有导出区块)保持原样,门禁豁免。
|
||||
|
||||
## 硬规则
|
||||
|
||||
- **「代码写完」「看起来可以」不能作为 `DONE` 证据。**
|
||||
|
||||
Reference in New Issue
Block a user