From c6c07263c7bdebe4c9bd87ef8ddda7d0ee9f8976 Mon Sep 17 00:00:00 2001 From: weichen Date: Thu, 17 Sep 2026 09:59:38 +0000 Subject: [PATCH] docs(ops): claim and close document-author-only U3 Co-authored-by: Cursor --- .doc/ops/CURRENT.md | 1 + .../2026-09-17-document-author-only-u3.md | 55 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 .doc/ops/short-term/2026-09-17-document-author-only-u3.md diff --git a/.doc/ops/CURRENT.md b/.doc/ops/CURRENT.md index 2f636e92..06408996 100644 --- a/.doc/ops/CURRENT.md +++ b/.doc/ops/CURRENT.md @@ -13,6 +13,7 @@ | owner | task | branch | worktree | mutex | status | |-------|------|--------|----------|-------|--------| +| Cursor | 2026-09-17-document-author-only-u3 | feature/document-author-only-plan | .worktrees/feature-document-author-only-plan | docgov + docduty + bizdev + document-duty-policy | done | | Cursor | 2026-09-17-document-author-only-u2 | feature/document-author-only-plan | .worktrees/feature-document-author-only-plan | projectinstance + document-duty-policy | done | | Cursor | 2026-09-17-document-author-only-u1 | feature/document-author-only-plan | .worktrees/feature-document-author-only-plan | sysadmin + document-duty-policy | done | | Codex | 2026-09-17-document-author-only-plan | feature/document-author-only-plan | .worktrees/feature-document-author-only-plan | document-duty-policy-plan | done | diff --git a/.doc/ops/short-term/2026-09-17-document-author-only-u3.md b/.doc/ops/short-term/2026-09-17-document-author-only-u3.md new file mode 100644 index 00000000..1881e45d --- /dev/null +++ b/.doc/ops/short-term/2026-09-17-document-author-only-u3.md @@ -0,0 +1,55 @@ +--- +title: "文档编制人兼任:U3 文档绑定与职责投影" +status: done +created: 2026-09-17 +updated: 2026-09-17 +owner: Cursor +branch: feature/document-author-only-plan +worktree: ".worktrees/feature-document-author-only-plan" +mutex: docgov + docduty + bizdev + document-duty-policy +--- + +# 文档编制人兼任:U3 文档绑定与职责投影 + +## 目标 + +生成时写入实例治理职责并 `duty_locked`;heal/revoke 跳过锁定行;读侧投影 `duty_policy`。 + +## 范围 + +- Goose 00052:`document_records.duty_locked` / `duty_policy` +- `docgov.LockDocumentDuty` + 列表投影 +- `docduty` heal/revoke `AND NOT duty_locked` +- `bizdev.InstanceDutySource` + `resolveTaskDocumentDuties` 治理分支;跳过 governed 内存 heal +- `app/instance_duty_adapter.go` 装配 + +## 非目标 + +- U4 动作鉴权 / allowed_actions +- U5/U6 前端 +- 合入 `dev` + +## 步骤 + +1. [x] 迁移 +2. [x] docgov / docduty +3. [x] bizdev + app 适配器 +4. [x] 测试与提交 + +## 验收标准 + +- [x] 受治理文档创建后 `duty_locked=true` 且三职来自实例 +- [x] heal/revoke 不清锁定行(SQL 过滤 + 单测/PG 可选) +- [x] 生成后 governed 路径不再用项目默认覆盖内存态 +- [x] 模块边界:bizdev/docduty/docgov 不导入 projectinstance + +## 相关链接 + +- Plan: U3(文档绑定与职责投影一致性) +- 依赖:U1 `3b6def2`、U2 `c03d0a3` + +## 证据 / 备注 + +- `go vet ./internal/docgov/ ./internal/docduty/ ./internal/bizdev/ ./internal/app/ ./internal/projectinstance/` +- `go test -short` 上述包 PASS +- PG:`TEST_DATABASE_URL` 未配置时 `Heal/Revoke SkipsDutyLocked` 自动跳过