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>
This commit is contained in:
QiuSW
2026-08-03 17:07:13 +08:00
co-authored by Claude Opus 5
parent 421c865ad2
commit 9198134d0b
4 changed files with 43 additions and 4 deletions
+7
View File
@@ -427,6 +427,13 @@ def export_file(path: Path, apiurl: str, apikey: str, check_only: bool) -> bool:
if task_id is None:
return False
# 有连接键但没有区块 = 刻意未迁移(例如内容已冻结的 DONE 任务)。
# 与门禁的检查 4 保持一致:豁免而非报错。先判再联网,避免无谓请求。
if not EXPORT_BEGIN_RE.search(text) and EXPORT_END not in text:
print(f"跳过 {path.resolve().relative_to(REPO_ROOT)}"
f"(vikunja#{task_id},无导出区块,未迁移)")
return False
task = http_get(apiurl, apikey, f"/tasks/{task_id}")
comments = http_get(apiurl, apikey, f"/tasks/{task_id}/comments") or []
body = build_block_body(task, comments)