QiuSW
|
c72371ce90
|
feat(admin): initialize procurement service skeleton
|
2026-08-03 18:13:30 +08:00 |
|
QiuSW
|
b7559a9451
|
docs(tasks): define parallel T-001 and T-002
|
2026-08-03 17:57:53 +08:00 |
|
QiuSW
|
a63bdb8c37
|
docs(plan): prioritize MVP critical path
|
2026-08-03 17:47:22 +08:00 |
|
QiuSW
|
4948afc393
|
docs(tasks): define T-009 MVP critical path plan
|
2026-08-03 17:41:58 +08:00 |
|
QiuSW
|
31b08d736a
|
docs(tasks): close T-008 after MCP acceptance
|
2026-08-03 17:29:33 +08:00 |
|
 QiuSWandClaude Opus 5
|
3c458bcf5b
|
fix(tasks): make status git-authoritative, not Vikunja
修掉一处会让并行保护失效的设计缺口:AGENTS.md 声明「状态」权威在 Vikunja,
但离线门禁的检查 1 读的是 frontmatter 的 status,两者之间没有任何同步。
有人在看板上拖了卡片,frontmatter 不变,门禁就用过期数据放行了。
status 的权威定为 git frontmatter,理由与 write_paths 相同:它是判定
「两个活跃任务不得写同一路径」的输入,而门禁必须离线可跑;status 变更
决定谁能碰哪些文件,本来就该产生 commit。
- AGENTS.md:把 status 从 Vikunja 权威列表移入 git 原生表,并说明 bucket
与 done 仅为人类视图,不一致时以 git 为准
- agent-context.json:tracker.git_native_fields 增加 status
- validate_agent_context.py:强制 git_native_fields 必须含 status,
已用反例验证缺失时报错
- vikunja_export.py:新增只读漂移检测,导出时比对 frontmatter status 与
Vikunja done,不一致则提示;只提示不修正,不反向写回
- docs/tasks/README.md、T-008 方案第 1/2 节:同步口径
顺带解决了窄 token 时期的 bucket 401 遗留问题——status 权威在 git,
agent 不再依赖 bucket 移动来表达状态。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-03 17:17:35 +08:00 |
|
 QiuSWandClaude Opus 5
|
ed489bd13e
|
docs(tasks): switch to full-scope token and document agent MCP setup
窄权限 token 实测无法移动 kanban bucket(POST /projects/{p}/views/{v}/
buckets/{b}/tasks 返回 401,bucket 操作需要 project 级权限),导致
TODO / DOING / BLOCKED 的状态流转 agent 无法驱动。权衡后改用全量 token,
代价已在 T-008 方案第 5 节写明:任何配置此 MCP 的 agent 都持有该实例的
完整读写权,且 apiurl 走 http 公网 DDNS,token 明文过网。
AGENTS.md 增加各家 agent 的 MCP 配置片段(Claude Code 的 .mcp.json 与
Codex CLI 的 ~/.codex/config.toml),统一指向 scripts/vikunja-mcp.sh,
并明确任何配置文件内不得内联凭据——token 只存在于 vikunja.env。
看板卡片已归位:Doing #15,Done #12/#13/#14。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-03 17:14:00 +08:00 |
|
 QiuSWandClaude Opus 5
|
9198134d0b
|
chore(tasks): close T-005/T-006 after prototype sign-off
人工确认 6 个原型(web 登录 / 建单 / 工作台 / 详情,desk 执行 / 设备参数)
通过,两个任务的 needs_human_review 满足,转 DONE 并回填 vikunja_task_id。
两者内容已冻结,不迁入导出区块——转换只增加往返风险而无收益,门禁对无
区块的文件豁免检查 4。
这消解了 T-008 门禁上线时报出的存量违规(四处 write_paths 重叠),
validate_agent_context.py 现在 exit=0,未放宽任何检查。
同时修 vikunja_export.py 的一处不一致:文件有 vikunja_task_id 但无导出
区块时应跳过并说明,而不是硬失败;此前 --check 全量模式会因此报错。
半截标记(只有 BEGIN 或只有 END)仍然报错,已回归验证。
T-008 状态口径统一为 DOING:needs_human_review 的硬规则优先于草稿里的
BLOCKED 表述,工作可继续推进,只是未获人工确认前不得标 DONE。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-03 17:07:13 +08:00 |
|
 QiuSWandClaude Opus 5
|
421c865ad2
|
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>
|
2026-08-03 17:00:41 +08:00 |
|
QiuSW
|
b9e29ed970
|
docs(project): align product names and source directories
|
2026-08-03 16:27:05 +08:00 |
|
QiuSW
|
fe0c867948
|
docs(tasks): define project naming and directory contract
|
2026-08-03 16:18:10 +08:00 |
|
QiuSW
|
a7465d2745
|
feat(prototype): rename web app to procurement service
|
2026-08-03 16:05:05 +08:00 |
|
QiuSW
|
79a2767870
|
feat(prototype): show record details inline
|
2026-08-03 15:55:11 +08:00 |
|
QiuSW
|
0b757f8ad1
|
docs(tasks): plan inline desktop record detail
|
2026-08-03 15:47:37 +08:00 |
|
QiuSW
|
235abb4558
|
feat(prototype): redesign desktop procurement workspace
|
2026-08-03 15:35:31 +08:00 |
|
QiuSW
|
7e0b2e8b6a
|
docs(tasks): plan desktop workspace revision
|
2026-08-03 15:20:45 +08:00 |
|
QiuSW
|
9c3c2b2cab
|
feat(prototype): redesign procurement task workbench
|
2026-08-03 15:00:49 +08:00 |
|
QiuSW
|
cad00877d3
|
docs(tasks): plan web table prototype revision
|
2026-08-03 14:37:09 +08:00 |
|
QiuSW
|
b10a300a01
|
docs(prototype): record independent review and handoff
|
2026-08-03 12:44:59 +08:00 |
|
QiuSW
|
5550efff88
|
feat(prototype): add MVP desktop interaction flows
|
2026-08-03 12:37:32 +08:00 |
|
QiuSW
|
d052583607
|
feat(prototype): add MVP web interaction flows
|
2026-08-03 12:37:32 +08:00 |
|
QiuSW
|
851838e92a
|
docs(tasks): define web and desktop MVP prototypes
|
2026-08-03 12:15:34 +08:00 |
|
QiuSW
|
dfe3d56428
|
docs: establish MVP safety and prototype baseline
|
2026-08-03 12:13:39 +08:00 |
|