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:
@@ -67,6 +67,10 @@ cmbuyer 是一个自动化采购系统:**采购服务**(网页端,`admin/`
|
||||
- 默认**单任务、单责任 agent、单写入者**:一个任务只有一个负责人,同时只有一个 agent
|
||||
修改该任务的 `write_paths`。
|
||||
- 多 agent 并行只拆到写路径互不重叠的任务。`admin/` 采购服务与 `client/` 采购工具天然可并行。
|
||||
这条不再只靠自觉:`scripts/validate_agent_context.py` 会拒绝两个 `DOING` 任务写同一路径。
|
||||
- **共享文档只由任务所有者写入。** `docs/agent-context.json` 的 `shared_documents` 列出
|
||||
跨任务共享的文档;受托执行者不得直接改它们,只提交建议由所有者合入。共享文档可以出现在
|
||||
某个任务的 `write_paths`,但必须逐条显式列出,不得用通配圈走。
|
||||
- 复杂任务先规划再编码。方案、不可变约束、写路径和验收门禁必须写入任务文件,
|
||||
不能只停留在对话里。
|
||||
- 任务内委派不是默认流程。委派后仍保持唯一写入者,执行者必须继承任务文件中的不可变
|
||||
@@ -74,6 +78,21 @@ cmbuyer 是一个自动化采购系统:**采购服务**(网页端,`admin/`
|
||||
- 无论是否委派,任务所有者都对结果负责,独立审阅差异、重跑验证;
|
||||
**不能把执行者或工具的自我报告当成完成证据**。
|
||||
|
||||
## 任务状态存放在哪
|
||||
|
||||
任务的**协调状态**(标题、状态、标签、依赖、方案正文、执行记录)权威在自建 Vikunja 的
|
||||
`cmbuyer` 项目;`docs/tasks/T-XXX.md` 里两行 `VIKUNJA EXPORT` 标记之间的内容是它的
|
||||
**单向投影**,由 `scripts/vikunja_export.py` 覆盖写入,不要手工编辑。
|
||||
|
||||
**`write_paths`、`## 边界` 与安全边界条目的权威始终在 git**,不迁往 Vikunja。理由见
|
||||
本文第 2 条:安全边界能不能收紧靠 `git diff` 逐条复核,权威一旦搬到远端,放宽边界的改动
|
||||
在 diff 里只呈现为「导出内容更新」,审计链就断了。
|
||||
|
||||
只读任务内容不需要接入 Vikunja——导出产物就在仓库里,`git clone` 即可。只有写状态和
|
||||
执行记录才需要配置 MCP(`.mcp.json` → `scripts/vikunja-mcp.sh`,凭据见 `vikunja.env.example`)。
|
||||
|
||||
Vikunja 不可达时按 `degraded_mode` 处理:继续手头任务,不领新任务,不写远端。
|
||||
|
||||
## 验证
|
||||
|
||||
按 [`docs/03-tech-stack.md`](docs/03-tech-stack.md) 第六节的验证矩阵判断层级:
|
||||
|
||||
Reference in New Issue
Block a user