docs(ops): salvage task docs and mineru gofmt in closeout batch
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: "意图确认优先与阶段感知消解"
|
||||
status: done
|
||||
created: 2026-09-21
|
||||
updated: 2026-09-21
|
||||
owner: Cursor
|
||||
branch: fix/intent-confirm-stage-aware-2026-09-21
|
||||
worktree: .worktrees/intent-confirm-stage-aware-2026-09-21
|
||||
base_dev_sha: 49fb68fec1ea56f00616c23d08efb15950c2300d
|
||||
mutex: intent+web+docgov
|
||||
---
|
||||
|
||||
# 意图确认优先与阶段感知消解
|
||||
|
||||
## 目标
|
||||
|
||||
商务流初期「整理一下需求」等弱写表述 → 阶段感知消解为 intake,经确认卡片拍板后再执行;不强指令误伤。扩展已合入的工作流作用域修复。
|
||||
|
||||
## 范围
|
||||
|
||||
- 批次5 `feat(intent)`:弱写动词 + `stageAwareRequirementsTask` + `needs_confirmation`
|
||||
- 批次6 `feat(coordinator)`:智能确认门禁(PendingExpectation)
|
||||
- 批次7 `feat(web)`:阶段错误降级聊天一次
|
||||
- 批次8:验收报告 + 合回 `dev` + 真实 PI 抽样
|
||||
|
||||
## 步骤
|
||||
|
||||
1. [x] 批次5–7 实现与单元门禁
|
||||
2. [x] 批次8:合入 `dev@0c401904` + rebuild + 真实链路抽样(陈威项目 6579)
|
||||
|
||||
## 验收标准
|
||||
|
||||
- [x] V0.1「整理一下需求」→ 确认 →「好」→ intake(单元 + 真实 PI)
|
||||
- [x] 强指令不强制确认;「编写用户需求表」无 rdev 误拦
|
||||
- [x] 合入后真实 PI 抽样(见测试报告)
|
||||
|
||||
## 相关链接
|
||||
|
||||
- Plan: `~/.cursor/plans/意图确认优先与阶段感知_7ab2c4d5.plan.md`
|
||||
- Prior (done): `.doc/archive/ops/2026-09-21-intent-workflow-scoping.md`
|
||||
- Test report: `.doc/test-reports/2026-09-21-intent-confirm-stage-aware-test-report.md`
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: "工作流作用域权重化"
|
||||
status: done
|
||||
created: 2026-09-21
|
||||
updated: 2026-09-21
|
||||
owner: Cursor
|
||||
branch: feature/workflow-scope-weighting-2026-09-21
|
||||
worktree: .worktrees/workflow-scope-weighting-2026-09-21
|
||||
base_dev_sha: 10aee3feb478c550adc9959f2d3a8d17cd5b48a0
|
||||
write_scope: [internal/workflowscope, internal/intent, internal/server, internal/coordinator, internal/config, internal/sysadmin, web/src, docker-compose.dev.yml, docker-compose.test.yml, docker-compose.main.yml, .env.example, .doc]
|
||||
head_sha: 7723a5515948788602b342cdda1137c90fee311b
|
||||
deployment: deployed
|
||||
cleanup: pending
|
||||
mutex: intent+web+docgov
|
||||
---
|
||||
|
||||
# 工作流作用域权重化
|
||||
|
||||
## 目标
|
||||
|
||||
把「句子里出现他流文档短语就硬拦截」改为「匹配质量 × 工作流关系权重」裁决。激活流优先;只有他流精确命中明显压过激活流时才跨流。只读跨流在查看权限通过后放行并注明归属;写动作仍引导到项目设置切换(跨流写在现架构下不可执行)。`WORKFLOW_SCOPE_MODE` 默认 `strict`,保持现状。
|
||||
|
||||
## 范围
|
||||
|
||||
- 新建 `internal/workflowscope`(开关、关系权重、打分裁决)
|
||||
- 服务端文档读取、意图填槽、前端模板匹配改用同一裁决
|
||||
- compose / `.env.example` / sysadmin 登记开关
|
||||
- dev 真实环境验收与测试报告
|
||||
|
||||
## 非目标
|
||||
|
||||
- 不迁移 `document_records`,不加 `workflow_instance_id`
|
||||
- 不改工作流切换 / 激活接口
|
||||
- 不改 `production_ready`,不晋升 test/main,不动项目 143
|
||||
|
||||
## 步骤
|
||||
|
||||
1. [x] 打分内核与开关
|
||||
2. [x] 服务端只读跨流放行与查看权限
|
||||
3. [x] 意图填槽改打分
|
||||
4. [x] 前端模板匹配改打分
|
||||
5. [x] 开关声明、真实验收、报告、合回 dev
|
||||
|
||||
## 验收标准
|
||||
|
||||
- [x] strict 模式与现有跨流拦截断言一致
|
||||
- [x] weighted 下激活流精确名压过他流短语,不再误拦
|
||||
- [x] weighted 下只读精确点名他流文档可放行并注明归属;写动作仍拦截
|
||||
- [x] 无查看权限 / 实例已关闭时跨流只读拒绝
|
||||
- [x] 空激活键不过滤
|
||||
|
||||
## 相关链接
|
||||
|
||||
- Plan: `~/.cursor/plans/工作流作用域权重化_411b5e35.plan.md`
|
||||
- Test report: `.doc/test-reports/2026-09-21-workflow-scope-weighting-test-report.md`
|
||||
|
||||
## 证据 / 备注
|
||||
|
||||
查看权限:治理实例 `ViewableTaskKeys` 只含当前实例已启用文档。他流任务键不在快照内,不能把它当成「显式隐藏」。判定为:解析失败按 `failClosedAuthz` 拒绝;`ViewableTaskKeys` 为空(实例已关闭)拒绝;键落在当前实例但不可见则拒绝;键不属于当前实例、且调用方已能查看该实例文档时允许只读。
|
||||
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: "Worktree 批量收口:合入 dev + 清理"
|
||||
task_id: "worktree-closeout-batch-2026-09-23"
|
||||
status: in_progress
|
||||
created: 2026-09-23
|
||||
updated: 2026-09-23
|
||||
owner: Cursor
|
||||
task_type: operations
|
||||
task_tier: multi_stage
|
||||
policy_revision: "agent-governance-2026-09-21-r1 @ 3f14d7fa"
|
||||
branch: feature/worktree-closeout-batch-2026-09-23
|
||||
worktree: .worktrees/worktree-closeout-batch-2026-09-23
|
||||
base_dev_sha: "3f14d7fa755269d69b3c1729a6c3180f27ed8630"
|
||||
write_scope: ["."]
|
||||
allowed_environments: []
|
||||
head_sha: ""
|
||||
mutex: "git:dev+worktree-cleanup"
|
||||
review_state: pending
|
||||
integration_state: pending
|
||||
deployment: not_required
|
||||
cleanup: pending
|
||||
cleanup_owner: "独立维护者"
|
||||
cleanup_trigger: "全部合入验证通过且 worktree 清理完成"
|
||||
remote_sync: not_requested
|
||||
---
|
||||
|
||||
# Worktree 批量收口:合入 dev + 清理
|
||||
|
||||
## 用户目标与授权
|
||||
|
||||
- 用户目标:检查当前所有 worktree,完成后测试合入 local `dev`,并清理 worktree。
|
||||
- 授权决策(计划确认):
|
||||
1. `merge_remote`:创建 integrate 候选,将 `origin/dev` 合入本地 `dev`,解决冲突后推进本地 dev;不默认 push。
|
||||
2. `keep_protected`:FAV / go-agentx 保留不合入不清理。
|
||||
- 交付终点:本地 `dev` 含远端 + 本地独有 + 未合 docs 分支;无争议 worktree 清理完毕。
|
||||
- 禁止项:不 push;不晋升 test/main;不强删;不整支合入 FAV;不清理 go-agentx cancelled 现场。
|
||||
|
||||
## 范围与非目标
|
||||
|
||||
- 允许:同步 `origin/dev`、合入未完成 docs 分支、抢救未跟踪任务文档与 mineru gofmt、关闭 active 任务、普通 remove worktree/stale 目录、CURRENT docs apply。
|
||||
- 非目标:远端 push;FAV / go-agentx;test/main 晋升。
|
||||
|
||||
## 步骤与验收
|
||||
|
||||
1. [x] 建场 + recover `dac0865f` + 关闭 promote 任务 + 主目录切回 `dev`
|
||||
2. [ ] 同步 `origin/dev` 进本地 `dev`(冲突解决 + validate + integrate)
|
||||
3. [ ] 合入 modular / lock / policy / workflow-governance + 抢救文档/gofmt
|
||||
4. [ ] 关闭其余 active 任务;清理已合入 worktree / stale 目录(保留保护项)
|
||||
5. [ ] 验证报告 + CURRENT 收口
|
||||
|
||||
## 验证与证据
|
||||
|
||||
| 范围 / 被测 SHA | 命令与环境 | 预期 | 实际 / 判定 | 证据 / 脱敏说明 |
|
||||
|---|---|---|---|---|
|
||||
| 前置 | recover + task close + checkout dev | recovery 清空、主目录在 dev | recovered;promote 任务 cancelled;主目录 `dev` | agentctl status |
|
||||
|
||||
独立报告:`.doc/test-reports/2026-09-23-worktree-closeout-batch-test-report.md`(阶段完成后补)。
|
||||
|
||||
## 收口与交接
|
||||
|
||||
- 本地提交 / dev 集成 / 远端:本轮仅本地;`remote_sync=not_requested`。
|
||||
- 保护项:`.worktrees/fix-dev-runtime-data-root-guard`(FAV)、`.worktrees/go-agentx-runtime-2026-09-21`。
|
||||
|
||||
## 相关链接
|
||||
|
||||
- 计划:`~/.cursor/plans/worktree_批量收口_c72b246f.plan.md`
|
||||
- 操作规范:`../2026-09-21-agent-worktree-workflow.md`
|
||||
@@ -29,8 +29,8 @@ type Client struct {
|
||||
Language string
|
||||
HTTP *http.Client
|
||||
|
||||
submitMu sync.Mutex
|
||||
submitLog []time.Time
|
||||
submitMu sync.Mutex
|
||||
submitLog []time.Time
|
||||
}
|
||||
|
||||
// Config wires Client from application settings.
|
||||
@@ -200,9 +200,9 @@ func (c *Client) applyUploadURL(ctx context.Context, fileName string) (batchID,
|
||||
"files": []map[string]any{
|
||||
{"name": fileName},
|
||||
},
|
||||
"model_version": c.ModelVersion,
|
||||
"language": c.Language,
|
||||
"enable_table": true,
|
||||
"model_version": c.ModelVersion,
|
||||
"language": c.Language,
|
||||
"enable_table": true,
|
||||
"enable_formula": true,
|
||||
}
|
||||
raw, err := c.postJSON(ctx, c.Endpoint+"/api/v4/file-urls/batch", body)
|
||||
@@ -266,10 +266,10 @@ func (c *Client) pollBatch(ctx context.Context, batchID, fileName string) (zipUR
|
||||
var data struct {
|
||||
BatchID string `json:"batch_id"`
|
||||
ExtractResult []struct {
|
||||
FileName string `json:"file_name"`
|
||||
State string `json:"state"`
|
||||
FullZipURL string `json:"full_zip_url"`
|
||||
ErrMsg string `json:"err_msg"`
|
||||
FileName string `json:"file_name"`
|
||||
State string `json:"state"`
|
||||
FullZipURL string `json:"full_zip_url"`
|
||||
ErrMsg string `json:"err_msg"`
|
||||
} `json:"extract_result"`
|
||||
}
|
||||
if err := json.Unmarshal(env.Data, &data); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user