Merge pull request 'Route project rules through concise authoritative entrypoints' (#623) from feature/norm-remediation-u5 into feature/norm-remediation
ci / svc-realcombo (pull_request) Successful in 2m1s
ci / test (pull_request) Successful in 7m29s
ci / test-pg (pull_request) Successful in 8m10s

This commit was merged in pull request #623.
This commit is contained in:
2026-10-18 18:16:30 +00:00
3 changed files with 317 additions and 139 deletions
@@ -0,0 +1,221 @@
# feature/norm-remediation-u5 任务卡
任务主记录:PR #623 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/623;状态:已完成(合入前闭合);owner:weichen
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= eef7e5e778cabcb6216f74b74213a3d7511f383b
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u5(worktree);分支:feature/norm-remediation-u5
- 分支类型:child;initiative_id:feature-norm-remediation;root_target:main;immediate_target:feature/norm-remediation;accepting_requirements:false;parent_branch:feature/norm-remediation;parent_head_sha:825e4fc98f30da4950a48d15d59f5338206726bf;parent_pr:无;parent_source:origin
- 需求分流:免(父 initiative 子任务登记已列出 feature/norm-remediation-u5;parent_head_sha=825e4fc98f30da4950a48d15d59f5338206726bf)
- 授权与交付终点:按批准的规范整改计划实施 U5,范围仅 `AGENTS.md` 与 `PROJECT.md`,完成必要检查、独立 Review、PR/CI 后合入 initiative。U1-U4 前置已完成(U4 #621 / `825e4fc`);不修改规范正文、命令、执行器、平台、组件或业务。
- 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)
- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)
- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)
- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)
## 目标与非目标
目标:根入口只保留强制原则与触发式必读指针,详细规则分别归 delivery/governance/AGENT-EXECUTION/facts 等权威文档;删除重复且不安全的 token 提取步骤。PROJECT 保留稳定事实、验证入口和全部既有主题索引,将动态批准/进度/验收状态归还主记录,避免多份状态漂移。保持既有授权、安全、独立 Review、证据与最终准入边界。
## Agent 实施收据
路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。
| 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 |
|---|---|---|---|---|---|---|---|---|---|---|
| norm-u5-concise-project-entrypoints | AGENTS.md + PROJECT.md | caefcb72 | implementation | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 832bee205380 | 0 | /tmp/norm-u5-entrypoints-receipt.json |
| norm-u5-readiness-evidence-summary-consistency | conditional local readiness / layered evidence summaries | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 36103dc62d59 | 0 | /tmp/norm-u5-summary-consistency-repair-receipt.json |
| norm-u5-ready-routing-without-circular-gate | sync/recovery is not gated by prior READY | caefcb72 | repair | cursor, agy, pi | 1 | cursor-agent-stable / auto | success | 1b04fd4a0408 | 0 | /tmp/norm-u5-readiness-routing-final-receipt.json |
| norm-u5-independent-entrypoint-review | independent fixed-diff/rule/link review | caefcb72 | review | pi, agy, cursor, codex | 1 | pi / minimax-cn/MiniMax-M3 | success | d0ae825547b4 | 0 | /tmp/norm-u5-independent-review-receipt.json |
## 同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | eef7e5e778cabcb6216f74b74213a3d7511f383b | 825e4fc98f30da4950a48d15d59f5338206726bf | 2026-10-18T17:48:21Z |
## 证据(Evidence)
<!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 -->
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|---|---|---|---|---|---|
## 结果与验证
- 结果:AGENTS 改为触发式权威路由与必要边界,删除重复的 token/端点说明;明确本地续作与正式准入、同步恢复和分级证据,避免无条件摘要重新阻断 U2/U3。PROJECT 保留稳定组合/验证事实与全部既有主题链接,将动态批准/进度/验收归还主记录。
- 验证:host 在实现候选 `1b04fd4a0408931bb84c44c2fe692205ff25079f` 检查 diff 与物化后的核心权威目标文件,均通过(SELF receipt 已导入);独立 fresh PI Review 对规则保留、恢复无循环门禁、证据分级及链接/锚点审查无阻塞项。纯说明/路由变更不新增镜像文本测试、不重复完整套件;最终组合验证仍由 U6 执行。
- 影响与剩余项:只改两个入口文件。review 私有目录未物化子模块,报告中相关目标存在性以其末尾限制说明为准;host 已在当前物化 checkout 验证核心权威文件存在,既有 proposal 链接未改变。不读取凭据、不运行在线事实刷新。
## 合入与清理
- Review 记录(独立 fresh CLI session,2026-10-18):PI / minimax-cn / MiniMax-M3;本评审仅写一条 task 卡记录,不触碰源代码/索引/引用/config,不做合入/CI/PR/部署/同侪派遣。
base/head = `825e4fc98f30da4950a48d15d59f5338206726bf..1b04fd4a0408931bb84c44c2fe692205ff25079f`(已 `git rev-parse` 对账);
diff 范围仅 `.task/feature-norm-remediation-u5.md` + `AGENTS.md` + `PROJECT.md`(与 U5 任务卡「范围仅 AGENTS.md 与 PROJECT.md」一致,未越界)。
结论:**无阻塞项**。所有强制边界在压缩后保留,原始规则未丢失,仅路由至权威文档;`AGENTS.md` 不再展开凭据提取命令、SSH 指纹、API/SSH 主机名、`~/.secrets/gitea` / `~/.ssh/home_gitea` 路径字面值与 `awk` 切片片段,与 U4「凭据字面值不入仓、不回显、不进命令行/日志/证据/产出物」的硬边界一致;事实查询路由到 `policy/facts.md`,与其登记的探针命令一致。
逐项校验(按约束清单):
· **goal-first / 严格范围 / 最小充分 / 测试与编排成比例** 完整保留为「最高优先级:目标兑现与最小充分交付(强制)」节:优先级四层链、「先交付用户明确要求的产物」「最小充分实现」「绝对禁止私自扩大范围」「测试与编排成比例」与「编排成本不得超过任务本身」原文落地,细则链到 `policy/delivery.md` 三段标题锚点。
· **agent-per-unit / no-host-fallback / transport / admission / fresh independent Review** 保留为「Agent 实施与独立 Review(强制)」节:`agent-per-unit(配置:AGENT-EXECUTION.md)`、`fallback_to_host` 为 `never`、`scripts/agent-exec apply` 或 pre-commit `admit` 精确核对、host 豁免仅 `.task/**`、`docs/superpowers/specs/**`、`docs/superpowers/plans/**`、`不同阶段、不同单元各用全新会话`、`禁止实施者经 continue/resume/session 等机制续作评审`、`无法证明会话独立时不得标为独立 Review` 均原义落地;细则链 `policy/delivery.md#agent-实施单元与主模型职责`、`policy/delivery.md#阶段会话隔离与独立-review`、`deps/development-guidelines/core/baseline.md`(unobservable,见限制)。
· **任务生命周期 → governance** 保留为「任务生命周期(强制)」节,启动/恢复、PR 检查、任务卡闭合、回收、放弃未合入工作用 `make task-finish ABANDON=…`、首次克隆 `make setup`、治理脚本改动 `make test-governance` 全部原文落地,命令与细则链 `policy/governance.md`(启动与恢复 / 回收 / 持续回归)和 `policy/delivery.md`(两级分支与分流 / 分级门禁 / 合入调度 / Review 与合入);与 `policy/governance.md` 同名标题一一对应。
· **新建任务严格 fresh READY;既有任务 LOCAL_READY 仅本地** 原文落地:`SHARED_WORKSPACE_BUSY / SYNC_REQUIRED / REMOTE_UNVERIFIED` 均不得建任务;`LOCAL_READY 只是 SELF 局部工作记录,不能替代建任务、正式交付、CI、GATE 或 REPLAY 的准入或证据;脏现场、未对账或副作用未知时仍须停止`,与 `policy/governance.md` 启动与恢复节一致。
· **恢复 / task-sync 允许绕开 READY 前置** 原文落地:`已登记任务的恢复与局部继续按 [启动与恢复](policy/governance.md#启动与恢复),为消除落后所需的同步按 [被测对象](policy/governance.md#被测对象) 执行,READY 不是执行该同步的前提`,明确解环。
· **L2 / main 证据按分层表** 原文落地:`各层级要求的证据与 CI 以 [分级门禁表](policy/delivery.md#层级任务通道与分级门禁) 为准:L2→L1 不要求三段证据;推进 main 的交付仍须三段输出(precheck / task-sync / 测试)由 evidence 写入任务卡,PR 描述引用不另手抄。测试通过的权威源是 PR HEAD 上 .gitea/workflows/ci.yaml 的 CI`,与 `policy/governance.md` 本地记录与独立证据、`policy/delivery.md` 分级门禁一致;细则链回 governance 与 guidelines `standards/verification.md`。
· **凭据字面值 / 提取片段已清除**:`awk '/^HOME:/{h=1;next} /^IMC:/{h=0} h&&sub(/^- ACCESS_TOKEN=/,""){print;exit}' ~/.secrets/gitea` 命令、SSH 公钥指纹 `SHA256:GYXaOXIMeloQ1fKSfdJ/ndgPQzs/Ix7Hk62ekfkfQ20`、API/SSH 主机名 `git-home.u1680832.nyat.app:30319` / `git-ssh.u1680832.nyat.app:31411`、`~/.secrets/gitea` HOME/IMC 段、`~/.ssh/home_gitea` 与 `~/.ssh/config` 主机条目、`GITEA_TOKEN` 环境变量注入方式、token `Authorization: token <值>` 头拼接示例均已从 `AGENTS.md` 删除;现仅以「端点、SSH、API 与 token 可用性只以 [policy/facts.md](policy/facts.md) 为准;引用前先跑其验证命令;凭据类核验只用该表登记的探针」+「凭据值不入仓、不回显,不进命令行字面量、日志、证据或产出物(baseline 硬边界 2)」两短句承接,路由到 `policy/facts.md`(含 F1–F6 登记命令)与 `policy/governance.md#ci-凭据边界`;未发现事实表以外的任何凭据字面值残留。
· **高后果操作双钥匙 owner 执行** 保留为独立节:`改写历史、解除/变更分支保护、删除归档引用、发布版本:Agent 只准备方案与命令,由用户确认并亲手执行`,未削弱。
· **UI 强制 DESIGN / tokens / motion / Collapsible / 异步边界** 保留为「UI 设计门禁(强制)」节:`DESIGN.md` 四原则、`@ui/tokens.css` 颜色/圆角/字号、`--fs-ui-*` 字号标尺、`@ui/motion.css` 的 `mk-*` 工具类、`@ui` Collapsible 折叠原语、`<details>` 禁用、`design-guard.test.ts`(UI 与 Frontend 各一份)棘轮拦截裸色值/私有 `@keyframes`/行内字号、风格调整的 UI 令牌 PR + Dev 组合 PR 流程、跨仓不要求同一 PR、异步状态唯一所有者、事件按 seq 过期丢弃均原义落地,与 `DESIGN.md` 第 9 节组件范式一致。
· **提交与 PR** 保留:`Why: / Evidence: / Impact: / Refs:` 四段 body、英文祈使句主题行 ≤100 列、跨仓 gitlink 组合验证 + 受保护分支 PR 合入均原文落地。
· **必读路由表(强制)** 新增 `## 必读路由(强制)` 表把触发映射到权威文档,覆盖需求/设计/实施/交付 → `policy/delivery.md`;任务分流/启动/恢复/同步/PR 检查/证据/任务卡闭合/回收 → `policy/governance.md`;实施/修复/测试/Review 候选与模型与尝试上限与 fail-stop 与会话路由 → `AGENT-EXECUTION.md` + `deps/development-guidelines/standards/agent-execution.md`;外部 API/Git/SSH 端点或凭据 → `policy/facts.md`;界面 → `DESIGN.md`;项目组成/构建/验证/方向规划入口 → `PROJECT.md`,与各权威文档作用域一一对应。
· **`PROJECT.md` 动态批准/进度回收**:移除每条主记录后的「r1/r2/r3/r3.1、批准日期、未授权/部署/真实账号验收、U1-U5/U6 状态、PR #xxx #yyy 落地、dev 8788 续查形成候选草案」等动态状态段;保留主题链接与一句话主题描述;新增显式声明 `下列条目只是主题索引:批准、进展、验收与部署状态一律以所链主记录、任务卡与 PR 为准,本入口不复制;收录不构成批准`,符合「动态批准/进度/验收状态归还主记录,避免多份状态漂移」;同时核对保留的链接集合等于或收敛于基线(2026-10-10..18 共 14 条主记录 + 续审记录 + INDEX + 采纳记录 + 合入调度 + 开发门禁),未删除任何既往主题索引;`docs/svc-deploy/2026-10-12-account-durability-plan-review.md`、`policy/adoption.md`、`policy/governance.md`、`policy/delivery.md`、所有 `modules/documents/docs/proposals/*.md` 链接路径字符串相对基线未变(链接路径差异 = 仅删除 r1/r2/r3/r3.1 后缀与状态描述)。
链接 / 锚点核验:`git diff --check 825e4fc..1b04fd4` 无空白冲突;仓内非子模块相对链接(`policy/delivery.md`、`policy/governance.md`、`policy/facts.md`、`policy/adoption.md`、`AGENT-EXECUTION.md`、`DESIGN.md`、`PROJECT.md`、`docs/svc-deploy/2026-10-12-account-durability-plan-review.md`、`modules/documents/docs/proposals/INDEX.md`、`modules/documents/docs/proposals/`)目标文件在本仓库工作区全部存在;新引用的 16 个标题锚点(policy/delivery.md ×9 + policy/governance.md ×7)与 `policy/delivery.md` / `policy/governance.md` 的标题层级对应(去标点 lowercase slug,与基线 `[policy/delivery.md](policy/delivery.md#agent-实施单元与主模型职责)` 等使用的同一生成规则一致,渲染器侧由 Gitea 自行生成,未在 PR 头验证);`policy/facts.md` 锚点 `## ` 段无,故未引用,路由回整文件。
限制(按约束声明):
· 子模块链接 `deps/development-guidelines/core/baseline.md`、`deps/development-guidelines/standards/agent-execution.md` 与全部 `modules/documents/docs/proposals/*.md` 在本私有 checkout 未物化(`modules/documents` 与 `deps/development-guidelines` 子模块目录为空),未初始化它们;按约束仅做链接集合对比,未对子模块做 `git submodule init/update`、未断言渲染或文件存在性,host 须在物化后独立核验目标文件与锚点;此为 unobservable,不影响本评审「无阻塞项」结论。
· 本评审不跑 `make precheck` / `make test` / `make test-governance`(范围仅 prose + 任务卡路由,无脚本/治理改动);不刷新 `policy/facts.md` `last_verified`;不申请 CI(CI 是 PR HEAD 的 `make test` + `make build` 由 Gitea Actions 执行,本评审不冒充 GATE)。
· 不修正实现;不在本评审做合入 / CI / PR 操作(合规范围内仅写一条 review 记录到 `.task/feature-norm-remediation-u5.md`)。
· 基线 825e4fc 之前未合入的 prose 提案内容不在 U5 范围,不重复审查。
- 冲突记录:已同步包含 U7 的 initiative `2e5d981`,无冲突;两个入口相对已审实现 `1b04fd4` 未再改变。合成候选 `45bcba0` 的执行配置、diff 和核心权威链接检查通过(SELF receipt 已导入),不重复完整套件。
- CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
- 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
- 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"summary_schema": 1,
"source": "SELF",
"timestamp": "2026-10-18T17:46:31.953994+00:00",
"command": "make precheck",
"exit_code": 0,
"cwd": "/home/weichen/projects/Agent-System-Dev",
"before_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"after_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"branch": "main",
"target_branch": "main",
"target_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"root_target": "main",
"immediate_target": "main",
"before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"output_tail": [
"make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev'",
"[repo] branch=main head=eef7e5e778",
"[remote] origin/main=eef7e5e778 ahead=0 behind=0",
"[tree] clean submodules_drift=0 uninit=12",
"[warn] 12 个子模块未初始化——构建/测试前需物化(不阻断写入)",
"[worktrees] linked=8",
"[recycle] merged un-recycled branches: feature/layered-python-env",
"[initiatives] local cards (not authoritative): none",
"[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)",
"[facts] policy/facts.md 6 条事实均在有效期内",
"[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md",
"[R0] eef7e5e778(完整:eef7e5e778cabcb6216f74b74213a3d7511f383b)",
"[worktree] before-sync: recursive component checks passed",
"[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch",
"make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev'"
],
"output_sha256": "b1b224c850fc8ccfd988d17caaf1f716e2c2e07ab50d9c5387de9ed292aa9ad0",
"receipt_sha256": "b2bafbab20fc394a5013d8714d3ccdb15afdcfcc090992cf81cbc97ce930c283",
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/b2bafbab20fc394a5013d8714d3ccdb15afdcfcc090992cf81cbc97ce930c283.json"
}
```
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"summary_schema": 1,
"source": "SELF",
"timestamp": "2026-10-18T18:01:25.152723+00:00",
"command": "git diff --check 825e4fc..HEAD && for task_target in policy/delivery.md policy/governance.md AGENT-EXECUTION.md policy/facts.md DESIGN.md PROJECT.md deps/development-guidelines/core/baseline.md deps/development-guidelines/standards/agent-execution.md; do test -f \"$task_target\" || exit 1; done && echo \"PASS: entrypoint authority targets exist\"",
"exit_code": 0,
"cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u5",
"before_head": "1b04fd4a0408931bb84c44c2fe692205ff25079f",
"after_head": "1b04fd4a0408931bb84c44c2fe692205ff25079f",
"branch": "feature/norm-remediation-u5",
"target_branch": "main",
"target_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"root_target": "main",
"immediate_target": "feature/norm-remediation",
"before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"output_tail": [
"PASS: entrypoint authority targets exist"
],
"output_sha256": "6143d7beacc4096c4d0313c752e882c73f41557171c148f3ce4da07fc2ca7517",
"receipt_sha256": "1708ac2a687dfc99f17ef1eea02ab183aacd7d72e83ee8fc8a12d4dc6fb8d7a8",
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/1708ac2a687dfc99f17ef1eea02ab183aacd7d72e83ee8fc8a12d4dc6fb8d7a8.json"
}
```
| 同步(记录前对象) | 2e5d98118fe436794d1267c5d2ab5ce5013d25ca | 405d00ba05cdf3db643d2bc4d35a8aaf92ed0370 | 2026-10-18T18:03:01Z |
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"summary_schema": 1,
"source": "SELF",
"timestamp": "2026-10-18T18:02:28.140768+00:00",
"command": "make task-sync",
"exit_code": 0,
"cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u5",
"before_head": "92c74cee99bf49e7b93ed089d24b7d7529e9ecc8",
"after_head": "45bcba0829dc08fa932c3a52cb99e1e10a099547",
"branch": "feature/norm-remediation-u5",
"target_branch": "main",
"target_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"root_target": "main",
"immediate_target": "feature/norm-remediation",
"before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"output_tail": [
" .task/archive/feature-norm-remediation-u7.md | 216 +++++++++++++++++++++++++++",
" .task/feature-norm-remediation.md | 22 ++-",
" AGENT-EXECUTION.md | 41 ++++-",
" policy/delivery.md | 24 +++",
" 4 files changed, 295 insertions(+), 8 deletions(-)",
" create mode 100644 .task/archive/feature-norm-remediation-u7.md",
"[worktree] before-update: recursive component checks passed",
"[worktree] materialize: recursive component checks passed",
"[worktree] after-sync: recursive component checks passed",
"admit: ok",
"[evidence] WARN JSON receipt line 80: unverified: recorded component state was not at its pinned SHA ——关键检查须重跑并以 make evidence 重新写入",
"[evidence] WARN JSON receipt line 121: recorded HEAD predates non-card changes ——关键检查须重跑并以 make evidence 重新写入",
"[synced] sync_base=2e5d98118fe436794d1267c5d2ab5ce5013d25ca tested_head=45bcba0829dc08fa932c3a52cb99e1e10a099547 checked_at=2026-10-18T18:03:01Z changed=1 sync_target=feature/norm-remediation",
"[next] 跑正式验收(make test 等),证据写入任务卡",
"make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u5'"
],
"output_sha256": "23685fbda4ccf9211ab3c9ffee2f8ebd0e239149d7a687aac214881a3192aa6b",
"receipt_sha256": "639cd7b09ba93fea06daec4dc1c750e05e7a83293ddd4da5e43fddaaf6b54388",
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/639cd7b09ba93fea06daec4dc1c750e05e7a83293ddd4da5e43fddaaf6b54388.json"
}
```
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
```json
{
"summary_schema": 1,
"source": "SELF",
"timestamp": "2026-10-18T18:04:48.522344+00:00",
"command": "scripts/agent-exec validate --repo . && git diff --check 2e5d981..HEAD && for task_target in policy/delivery.md policy/governance.md AGENT-EXECUTION.md policy/facts.md DESIGN.md PROJECT.md deps/development-guidelines/core/baseline.md deps/development-guidelines/standards/agent-execution.md; do test -f \"$task_target\" || exit 1; done && echo \"PASS: entrypoint authority targets and merged execution config\"",
"exit_code": 0,
"cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-norm-remediation-u5",
"before_head": "45bcba0829dc08fa932c3a52cb99e1e10a099547",
"after_head": "45bcba0829dc08fa932c3a52cb99e1e10a099547",
"branch": "feature/norm-remediation-u5",
"target_branch": "main",
"target_head": "eef7e5e778cabcb6216f74b74213a3d7511f383b",
"root_target": "main",
"immediate_target": "feature/norm-remediation",
"before_tracked_diff_sha256": "61ad55e3861841014dd9c58c94f17bc251511c7f83e7a70dbf2ab98e5cff5240",
"after_tracked_diff_sha256": "61ad55e3861841014dd9c58c94f17bc251511c7f83e7a70dbf2ab98e5cff5240",
"output_tail": [
"validate: ok",
"PASS: entrypoint authority targets and merged execution config"
],
"output_sha256": "5315267aaca5e016412b6f406903e907d4e7eead2f2f02bbef689581a2127221",
"receipt_sha256": "638362d67ec6d009a4dea4047844154f5e33bd81e724dd3815243b5cde60c595",
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/638362d67ec6d009a4dea4047844154f5e33bd81e724dd3815243b5cde60c595.json"
}
```
## 闭合记录(合入前折叠)
- 本卡在 PR #623(https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/623)合入前闭合并归档,随该 PR 一同合入。
- 该 PR 的合并提交即本任务的落地记录。
- 合入后无需回填,也无需单独的闭合 PR。
+63 -77
View File
@@ -1,95 +1,81 @@
# Agent 工作说明(Agent-System-Dev)
本仓开发遵循 Development-Guidelines(见 `deps/development-guidelines`,gitlink 固定版本):
核心规则与术语见其 `core/`,按任务触发阅读 `standards/` 专题;通用交付依据为 `workflows/delivery.md`。
本项目的需求、设计试验、实施调整及交付**必读 [policy/delivery.md](policy/delivery.md)**(交付规则唯一权威):
目标、范围和交付终点一次确认;范围内的分析、方案、实施、修复、验证、代码 Review、PR 合入及安全收口由智能体连续推进。
只在目标/范围/验收条件变更、存在会影响用户结果的重大取舍、触及高后果操作,或业务验收必须由用户判定时请求人工决策。
智能体解决冲突并确认当前 HEAD 的 CI 通过后执行合入,无需另请人工操作。本文件是入口摘要,细则以所链文档为准。
本文件是入口摘要:只列强制原则与触发式必读,细则与确切命令以所链权威文档为准。
通用规范为固定版本的 Development-Guidelines(`deps/development-guidelines`):核心规则与术语见 `core/`,
按任务触发阅读 `standards/` 专题,通用交付依据为 `workflows/delivery.md`。
## 立即生效的最高优先级(强制)
## 必读路由(强制)
- **先交付用户产物**:在既有授权与强制安全边界内,先交付用户明确要求的产物;不得用基础设施、工具治理、通用化、加固、重构或“以后可能用到”替代当前目标,禁止把简单 Markdown、配置或说明修改擅自升级成平台、框架、自动化系统或大规模工程。
- **最小充分实现**:目标可用、系统可用并通过最小直接验证后立即停止并交付;体验、结构、性能与治理完善作为后续独立增量,不得拖延当前结果。
- **只修阻塞项**:只修复直接阻塞目标、可用性、明确验收条件或强制安全门禁的问题;高价值非阻塞项只简记,低影响噪音直接忽略;Review/迭代只围绕阻塞项,阻塞项闭合即结束。
- **测试与风险成比例**:实施中只跑最小直接检查;完整/长耗时套件仅在最终候选、规范明确要求或影响面确有必要时运行一次,禁止每个小文档、配置或 adapter 修改后重复全量测试。
- **编排成本不得超过任务本身**:按 AGENT-EXECUTION.md 的候选和尝试上限调度,不限制单次 CLI 的推理时长、工具次数、规划方式或首次写文件时间;除非用户明确要求或有证据证明直接阻塞,不新增嵌套控制器、额外 worktree、复杂收据体系或新架构;执行路由不能成为推迟用户产物的理由。细则见 [最高优先级](policy/delivery.md#最高优先级目标兑现与最小充分交付)。
| 触发 | 权威 |
|---|---|
| 需求、设计试验、实施调整与交付;阶段、决策点、优先级、分支拓扑、Review/合入、合入调度、清理 | [policy/delivery.md](policy/delivery.md)(交付规则唯一权威) |
| 任务分流、启动/恢复、同步、PR 检查、证据写入、任务卡闭合、回收及其确切命令 | [policy/governance.md](policy/governance.md) |
| 实施/修复/测试/Review 的候选、模型、尝试上限、fail-stop 与会话路由 | [AGENT-EXECUTION.md](AGENT-EXECUTION.md) 与 [standards/agent-execution.md](deps/development-guidelines/standards/agent-execution.md) |
| 引用外部 API、Git/SSH 端点或凭据可用性 | [policy/facts.md](policy/facts.md) |
| 任何界面生成或修改 | [DESIGN.md](DESIGN.md) |
| 项目组成、构建与验证命令、方向规划入口 | [PROJECT.md](PROJECT.md) |
## 任务目标与范围(强制)
## 最高优先级:目标兑现与最小充分交付(强制)
- 优先级固定为:授权与安全边界 → 本次任务目标和系统可用 → 阻塞目标的必要问题 → 非阻塞改进。完成标准是已批准验收条件成立且受影响系统保持可用,不是清零所有附近问题。
- 绝对禁止私自扩大范围:影响目标的问题只在既有授权内作最小充分修复;必要修复超出范围时,说明阻塞、最小扩围和影响,取得授权后再做。“相关”“顺手”“更完美”不构成扩围授权。
- 新发现按影响分流:阻塞验收、导致不可用/明确回归、违反安全边界或必需门禁失败的必须处理;其余不阻塞交付,只有明确影响和后续价值的才记录。先实现端到端可用的最小闭环,非阻塞 Review 意见不阻止交付(见 [问题分流](policy/delivery.md#目标优先范围控制与问题分流))。
- 优先级固定为:授权与安全边界 → 本次任务目标和系统可用 → 阻塞目标的必要问题 → 非阻塞改进。
- 目标、范围和交付终点一次确认;范围内的分析、方案、实施、修复、验证、代码 Review、PR 合入及安全收口由智能体连续推进。
- 只在目标/范围/验收条件变更、影响用户结果的重大取舍、高后果操作,或业务验收必须由用户判定时请求人工决策。
- 先交付用户明确要求的产物;不得用基础设施、工具治理、通用化、加固、重构或“以后可能用到”替代当前目标,不把简单修改升级成平台、框架或自动化工程。
- 最小充分实现:目标与受影响系统可用、最小直接验证通过即停止并交付;完善作为后续独立增量。
- 绝对禁止私自扩大范围:只修复阻塞目标、可用性、明确验收或强制安全门禁的问题;必要修复超出范围时,说明阻塞、最小扩围和影响,取得授权后再做。“相关”“顺手”“更完美”不构成授权;非阻塞高价值项只简记,噪音忽略,Review 只围绕阻塞项。
- 测试与编排成比例:实施中只跑最小直接检查,完整套件只在最终候选或确有必要时运行一次;编排成本不得超过任务本身。
- 细则:[最高优先级](policy/delivery.md#最高优先级目标兑现与最小充分交付)、[授权与决策点](policy/delivery.md#授权决策点与连续执行)、[问题分流](policy/delivery.md#目标优先范围控制与问题分流)。
## 实施执行路由(强制)
## Agent 实施与独立 Review(强制)
- 调度**必读 [AGENT-EXECUTION.md](AGENT-EXECUTION.md)**(唯一项目执行路由配置);通用契约遵循 guidelines [core/baseline.md(硬边界 8)](deps/development-guidelines/core/baseline.md) 与 [standards/agent-execution.md](deps/development-guidelines/standards/agent-execution.md)。产生仓库变更的实施按可独立实施的单元拆分,任务卡记 `实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)`。
- 外部 Agent 在新进程/隔离工作区执行一个有界单元;host 负责计划、拆解、范围审阅、权威验证、规范提交、PR/CI/合入、证据与任务元数据及安全清理。Worker 不得提交、推送、开或合 PR、部署、改路由或派遣同伴。
- 实施、修复与测试的正常候选只有 Cursor、Antigravity(`agy`)和 PI,顺序以配置为准;每个候选对安全可恢复失败(`unavailable`,或外部无副作用已被机制证明的 `failed-clean`)最多 3 次全新尝试后才换候选。`network=false`/`external_cost=false` 只是声明;没有强制隔离或可信对账时,已启动的失败尝试记 `failed-unknown`。成功须从该 CLI 实际事件信封解出有效的 `completed` 终态记录,缺失或无效即 fail closed。
- 三者都安全耗尽后才允许一次全新的 Codex CLI 紧急尝试;Codex 平时只用于规划、方案设计、实施计划或独立 Review。`fallback_to_host` 为 `never`(旧值 `all-unavailable` 同样不授权):安全耗尽不发出 host-fallback-authorized,终态为 unavailable 或 blocked,host 不撰写该单元。
- 显式 fail-stop 立即停止,不重试、不换候选、不启动紧急尝试:`failed-unknown`、`scope-expansion`、`blocked`、`cancelled`、无效配置、未对账 Git 状态与安全失败;总超时及 stdin/stdout/stderr 都无活动的空闲超时归入 `failed-unknown`。一次尝试只在显式终态失败、进程退出、总超时或空闲超时时结束,CLI 可在目标、范围与安全边界内自主检查、计划、测试并迭代。
- 实施变更只经成功 transport 由 `scripts/agent-exec apply` 集成,或由 pre-commit `admit` 按精确内容核对。本地 HMAC 历史与该钩子只是本地完整性/篡改证据(SELF),不是 GATE、可信身份,也不防同一主机 OS 用户;本地记录缺失或无效仍拒绝,交付信任只来自精确 HEAD 的 CI 或独立 REPLAY。host 直接管理的豁免只有 `.task/**`、`docs/superpowers/specs/**` 与 `docs/superpowers/plans/**`,host 不直接撰写实施单元。细则见 [policy/delivery.md](policy/delivery.md#agent-实施单元与主模型职责) 与 [policy/governance.md](policy/governance.md);不削弱 goal-first、严格范围、先可用、独立 Review、证据、平台准入与高后果双钥匙规则。
- 产生仓库变更的实施按可独立实施的单元交给外部 Agent,任务卡记 `实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)`。
- host 负责计划、拆解、范围审阅、权威验证、规范提交、PR/CI/合入、证据与任务元数据及安全清理;worker 不得提交、推送、开或合 PR、部署、改路由或派遣同伴。
- `fallback_to_host` 为 `never`:候选安全耗尽时终态为 unavailable 或 blocked,host 不撰写该单元;显式 fail-stop 立即停止;成功须有有效的 `completed` 终态记录。
- 实施变更只经成功 transport 的 `scripts/agent-exec apply` 或 pre-commit `admit` 精确核对进入分支;host 直接撰写的豁免只有 `.task/**`、`docs/superpowers/specs/**`、`docs/superpowers/plans/**`。
- 不同阶段、不同单元各用全新会话;Review 由当前主模型或全新独立 CLI session 执行,禁止实施者经 continue/resume/session 等机制续作评审;无法证明会话独立时不得标为独立 Review。
- 细则:[Agent 实施单元](policy/delivery.md#agent-实施单元与主模型职责)、[会话隔离与独立 Review](policy/delivery.md#阶段会话隔离与独立-review);通用契约见 guidelines [core/baseline.md(硬边界 8)](deps/development-guidelines/core/baseline.md)。
### 阶段与会话隔离(强制)
## 任务生命周期(强制)
- 需求分析、方案、设计、计划、实施、测试、Review 与验收默认各启动一个全新会话;不同阶段、不同实施单元不得复用同一 CLI 会话、conversation、thread 或 session。
- Review 由当前主模型或**全新且独立**的 CLI session 执行;绝对禁止实施者通过 `continue`、`resume`、conversation/session ID、session 路径或等价机制继续充当评审者。
- 评审只接收固定的目标/需求、base/head、实际 diff、测试与证据,默认不转交实施聊天、思维过程、中间自评或原会话历史;确需补充时只提供可复核产物。
- 每阶段记录工具、模型、stage、attempt/session 身份及 `fresh_session`;工具不暴露 session ID 时标 `not-observable`,但仍须新进程并禁用恢复/续聊;无法证明会话独立时不得标为独立 Review(见 [会话隔离](policy/delivery.md#阶段会话隔离与独立-review))。
## UI 设计门禁(强制)
- 本仓一切界面生成/修改**先读根目录 `DESIGN.md`**(四原则:美观、现代、简洁、易用)再动手;违反视为设计系统缺陷,不是风格偏好。
- 颜色/圆角/字号只消费 `@ui/tokens.css` 令牌(字号走 `--fs-ui-*` 标尺);动效只用 `@ui/motion.css` 的 `mk-*` 工具类;折叠一律用 `@ui` Collapsible 原语,禁止 `<details>`。
- 守护测试(UI 仓与 Frontend 仓各一份 `design-guard.test.ts`)以棘轮拦截新增裸色值、私有 `@keyframes` 与行内字号;风格调整须在同一变更集中关联 UI 令牌 PR 与 Dev 的 `DESIGN.md`/gitlink 组合 PR,并验证精确组件 SHA(跨仓不要求两个文件出现在同一 PR)。
- 异步状态只有一个所有者。事件按 seq 处理,过期事件丢弃。
## 任务启动门禁(强制)
- **新需求分流**:创建分支前以远端为准运行 `make task-triage REQ='<需求>' TRIAGE_RECEIPT=<路径>` 检查接纳中的大任务(`branch_kind=initiative` 且 `accepting_requirements=true`);有候选时运行 `make task-triage-decide TRIAGE_RECEIPT=<路径> VERDICT=JOIN|NEW … REASON='<理由>'`;`make task-start … TRIAGE_RECEIPT=<路径>` 核验收据通过后才建分支。`JOIN` 建子任务(`KIND=child INITIATIVE=feature/<initiative> NAME=feature/<initiative>-<slug>`),`NEW` 建普通任务或新大任务(`[KIND=initiative] NAME=feature/<slug>`),`DECISION_REQUIRED` 为有候选时的待决策状态,改变范围/优先级的加入由人工决策。已登记在父卡 `## 子任务登记` 的计划内 L2 子任务可免分流收据。
- **启动检查**:启动或恢复后、第一次项目写操作前运行一次 `RECEIPT=/tmp/<本次唯一名称>.json CMD="make precheck" make evidence` 保存完整脱敏收据并按输出完成必读;`make task-start` 省略 `PRECHECK_RECEIPT` 时自动捕获,恢复在原 worktree 用 `make task-resume PRECHECK_RECEIPT=<路径>`。`SHARED_WORKSPACE_BUSY / SYNC_REQUIRED / REMOTE_UNVERIFIED` 均不得进入写入流程,失败后排除原因再启动,不把缓存远端当最新事实。默认要求严格 READY,任务中途不重复;局部恢复见 [开发门禁](policy/governance.md#启动与恢复)。
- **分支层级**:一律从权威 `origin/main` 切,同批互不依赖的子任务用同一 R0 的兄弟分支。确有顺序依赖的堆叠例外:加 `PARENT=feature/<父slug> PARENT_PR=<父PR链接>`,卡记主干 R0、父分支及 SHA、父 PR,命名 `<type>/<父slug>-<子题>` 不嵌 SHA,合入顺序父→子,父合入后子须 `make task-sync` 并把 PR base 改回 main 才可合入(见 [policy/delivery.md](policy/delivery.md) 与 [开发门禁](policy/governance.md#启动与恢复))。
- **同步与 PR 门禁**:验收、请求审核、合入前各运行一次 `make task-sync` 与 `make task-pr-check`(大任务收口用 `FINAL=1`);三段完成证据由 `make evidence` 写入任务卡。层级、任务通道与分级门禁见 [层级与分级门禁](policy/delivery.md#层级任务通道与分级门禁),多分支交付的最终窗口见 [合入调度](policy/delivery.md#合入调度)。
- **回收**:合入后核对所有写者退出;能从当前会话、进程、锁与工作区状态证明时,智能体在**已登记任务 worktree 根目录**运行 `TASK_WRITERS_STOPPED=1 make task-finish`,无法证明时才请 owner 确认。父子仓改动、未跟踪/ignored 唯一文件先保存或显式处置;删除被拒时保留现场,禁止强删兜底。放弃未合入工作用 `make task-finish ABANDON="--abandon <原因>"` 并记录原因,不豁免现场保护。
- **任务卡闭合**:默认在最终同步/合入前于任务 worktree 运行 `make task-close SELF=1`(卡改为“已完成(合入前闭合)”、写入本 PR 链接并归档,随同一 PR 合入;会提交并推送本分支,只处理本分支的卡)。post-merge 钩子仅提示。主检出 `make task-close` 或 `FOLD=--fold` 只用于已合入未闭合的遗留卡,须核对只含目标卡,其闭合 PR 同样经智能体 Review、冲突处置与当前 HEAD CI 后合入。precheck `[cards]` 欠账验收前须清零。
- 新需求建分支前以远端为准分流;启动或恢复后、第一次项目写操作前保存一次启动检查收据。
- 新建任务须以权威远端分流并取得严格 READY(`SHARED_WORKSPACE_BUSY / SYNC_REQUIRED / REMOTE_UNVERIFIED` 均不得建任务),不把缓存远端当最新事实;已登记任务的恢复与局部继续按 [启动与恢复](policy/governance.md#启动与恢复),为消除落后所需的同步按 [被测对象](policy/governance.md#被测对象) 执行,READY 不是执行该同步的前提。正式 Review 与合入须先完成新鲜的权威目标同步并满足适用交付门禁。LOCAL_READY 只是 SELF 局部工作记录,不能替代建任务、正式交付、CI、GATE 或 REPLAY 的准入或证据;脏现场、未对账或副作用未知时仍须停止。
- 分支从权威远端目标切出(子任务从所属大任务分支),同批互不依赖的子任务用同一 R0 的兄弟分支;堆叠例外按门禁文档执行。
- 验收、请求审核、合入前各同步一次并做 PR 检查;任务卡默认合入前闭合并随同一 PR 合入;precheck `[cards]` 欠账验收前须清零。
- 智能体完成 Review、解决冲突并确认当前 HEAD 必需 CI 通过后执行合入,无需另请人工操作。
- 合入后仅在已登记任务 worktree 根目录、确认所有写者退出后回收;父子仓改动与未跟踪/ignored 唯一文件先保存或处置,删除被拒时保留现场,禁止强删兜底。
- 放弃未合入工作用 `make task-finish ABANDON="--abandon <原因>"` 并记录原因,不豁免现场保护。
- 首次克隆后运行 `make setup` 启用本地钩子;治理脚本改动须运行 `make test-governance`(见 [持续回归](policy/governance.md#持续回归))。
- 命令与细则:[启动与恢复](policy/governance.md#启动与恢复)、[回收](policy/governance.md#回收)、[两级分支与分流](policy/delivery.md#两级分支交付模型与分流检查)、[分级门禁](policy/delivery.md#层级任务通道与分级门禁)、[合入调度](policy/delivery.md#合入调度)、[Review 与合入](policy/delivery.md#智能体-review-与-pr-合入)。
## 证据与验证门禁(强制)
- **声明不是证据**:「声明已就位」≠「能力已就位」;任何来源的结果声明都不是证据,证据 = 命令 × 被测对象 SHA × 可复核输出(guidelines `standards/verification.md`「声明与证据来源」)。
- **来源三分**:通过类断言标注 `GATE`(可核验身份及固定对象的 CI/受信执行器)/ `REPLAY`(独立审阅者的重跑记录)/ `SELF`(作者或本地工具记录,含 precheck)。工具写入、摘要和标签不提升可信等级,本地 evidence 只生成 SELF,不能靠 `SRC` 升级;合入与验收须核验 GATE 的运行链接/身份及 SHA,或 REPLAY 的审阅者、命令和对象,与重验不一致以重验为准。
- **证据由工具写入**:命令输出只经 `CMD="<命令>" make evidence` 写入(卡内写摘要块,完整脱敏收据一次性存于仓外,见 [开发门禁](policy/governance.md#本地记录与独立证据));凭据只经环境或受保护文件引用。手抄、转写、凭记忆重构的输出无效,补写输出与伪造测试同级红线。
- **完成声明三段输出**(precheck / task-sync / 测试)由 evidence 写入任务卡,PR 描述引用不另手抄;测试通过的权威源是 CI(`.gitea/workflows/ci.yaml` 在 PR HEAD 上 `make test`+`make build`),本地输出只是辅助线索。
- **验收即重放**:请求审核后,审阅者先在评审环境重放最小重放集(关键门禁命令 + 变更直接相关检查)再读作者证据;不一致直接阻塞并登记为失实事件。
- **外部事实零信任**:用户/文档/旧报告中的“可用/已就位”须先执行 `policy/facts.md` 对应验证命令或当场实测才能写入产出物,无法复核标 `[未经证实]`;登记项带 `last_verified` 与 TTL,precheck `[facts]` 报告过期项,`make facts-verify` 逐条重验。
- **诚实出口**:未执行/未验证是合法状态,如实标注(NOT_RUN/未验证)优于补写。
- 声明不是证据:证据 = 命令 × 被测对象 SHA × 可复核输出;用户、文档、旧报告或工具摘要中的“可用/已就位”都须先复核。
- 来源三分 `GATE` / `REPLAY` / `SELF`;本地 evidence 只生成 SELF,标签不提升可信等级;交付信任只来自精确 HEAD 的必需 CI 或独立 REPLAY。
- 命令输出只经 `make evidence` 写入任务卡;手抄、转写或凭记忆重构的输出无效,补写输出与伪造测试同级红线。
- 各层级要求的证据与 CI 以 [分级门禁表](policy/delivery.md#层级任务通道与分级门禁) 为准:L2→L1 不要求三段证据;推进 `main` 的交付仍须三段输出(precheck / task-sync / 测试)由 evidence 写入任务卡,PR 描述引用不另手抄。测试通过的权威源是 PR HEAD 上 `.gitea/workflows/ci.yaml` 的 CI。
- 验收即重放:审阅者先重放最小重放集再读作者证据,不一致即阻塞并登记失实。
- 诚实出口:未执行/未验证如实标注 NOT_RUN/未验证;无法复核的外部事实标 `[未经证实]`。
- 等待 CI 只用 `make ci-wait SHA=<完整 SHA>`;禁止手写 sleep + curl 轮询,禁止对同一 SHA 重复或并行轮询。
- 细则:[本地记录与独立证据](policy/governance.md#本地记录与独立证据)、guidelines `standards/verification.md`「声明与证据来源」。
## 高后果操作双钥匙(强制)
改写历史、解除/变更分支保护、删除归档引用、发布版本:Agent 只准备方案与命令,由用户确认并亲手执行。
## Gitea 与 Git 访问事实
- 端点、SSH、API 与 token 可用性只以 [policy/facts.md](policy/facts.md) 为准:引用前先跑其验证命令,凭据类核验只用该表登记的探针;历史卡片或旧脚本中的端点不作为事实。
- 凭据值不入仓、不回显,不进命令行字面量、日志、证据或产出物(baseline 硬边界 2);只经环境变量或受保护文件引用。CI 侧见 [CI 凭据边界](policy/governance.md#ci-凭据边界)。
## 提交与 PR
- 主题行:英文祈使句一行(≤100 列,不以句点结尾);body 写 `Why: / Evidence: / Impact: / Refs:` 四段;任务卡与 PR 描述为同一份文档。
- 跨仓 gitlink 变更须经组合验证(`make test`)后在 Dev 仓推进;受保护分支经 PR 合入。
- **等待 CI** 只用一条阻塞命令 `make ci-wait SHA=<完整 SHA>`(15 s 轮询、失败即停、默认 20 分钟超时);
禁止手写 `sleep` + `curl` 轮询循环,禁止对同一 SHA 重复/并行轮询;等待期间去做其他独立工作。
- **高后果操作双钥匙**:改写历史、解除/变更分支保护、删除归档引用、发布版本——Agent 只准备方案与命令,由用户确认并亲手执行;Agent 不得自行实施(baseline 硬边界 1 的授权范围要求)。
- 模块边界、公开契约与隔离档位见 `policy/modules/`(如有)与 PROJECT.md;验证命令见 PROJECT.md「验证」节。
- 首次克隆本仓后运行 `make setup` 启用本地 pre-commit 钩子。
- 治理脚本改动须运行 `make test-governance`(临时真实仓库覆盖正常、拒绝及异常路径,已纳入 `make test`);证据、工作区和 CI 凭据边界细则见 `policy/governance.md`。
- 主题行为英文祈使句一行(≤100 列,不以句点结尾);body 写 `Why: / Evidence: / Impact: / Refs:` 四段;任务卡与 PR 描述为同一份文档。
- 跨仓 gitlink 变更经组合验证(`make test`)后在 Dev 仓推进;受保护分支经 PR 合入。模块边界与验证命令见 [PROJECT.md](PROJECT.md)。
## Gitea 与 Git 访问事实(2026-09-30 实测;登记表 `policy/facts.md`)
## UI 设计门禁(强制)
机器可核的登记表在 `policy/facts.md`(每条带验证命令、last_verified 与 TTL);
引用任一事实前先跑其验证命令。以下为叙述版:
历史任务卡与旧脚本里的 `git-panel.u1680832.nyat.app:30319` 已失效(TLS 握手失败),
见到一律按过期处理,不要再试。当前权威通道:
- **Web / API(HTTPS)**:`https://git-home.u1680832.nyat.app:30319`(Gitea 1.27.3,
API 前缀 `/api/v1`;偶发 broken pipe / 超时,重试即可)。
- **Git over SSH**:`ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/<Repo>.git`
(.gitmodules 与各仓 origin 均为此格式)。
- **API token**:`~/.secrets/gitea` HOME/IMC 段各有 `- URL_PREFIX=`/`- ACCESS_TOKEN=<40 hex>`,本仓取 HOME 段(F2):
`awk '/^HOME:/{h=1;next} /^IMC:/{h=0} h&&sub(/^- ACCESS_TOKEN=/,""){print;exit}' ~/.secrets/gitea`,作 `Authorization: token <值>` 头。**token 值不入仓、不回显、不进产出物**(baseline 硬边界 2)。
- **SSH key**:`~/.ssh/home_gitea`(ED25519,公钥指纹
`SHA256:GYXaOXIMeloQ1fKSfdJ/ndgPQzs/Ix7Hk62ekfkfQ20`,Gitea 侧密钥名 GMKtec);
`~/.ssh/config` 已有 `git-ssh.u1680832.nyat.app` 主机条目,克隆/推送直接可用。
- 任务卡闭合 PR(标准收口中运行 `make task-close`)经 API 建 PR 时以
`GITEA_TOKEN` 环境变量传入同上的 token。
- 一切界面生成/修改先读 [DESIGN.md](DESIGN.md)(四原则:美观、现代、简洁、易用);违反视为设计系统缺陷,不是风格偏好。
- 颜色/圆角/字号只消费 `@ui/tokens.css` 令牌(字号走 `--fs-ui-*`);动效只用 `@ui/motion.css` 的 `mk-*`;折叠只用 `@ui` Collapsible,禁止 `<details>`。
- 守护测试(UI 仓与 Frontend 仓各一份 `design-guard.test.ts`)以棘轮拦截新增裸色值、私有 `@keyframes` 与行内字号。
- 风格调整按 DESIGN.md「演进规则」在同一变更集中关联 UI 令牌 PR 与 Dev 组合 PR,并验证精确组件 SHA(跨仓不要求同一 PR)。
- 异步状态只有一个所有者;事件按 seq 处理,过期事件丢弃。
+33 -62
View File
@@ -1,70 +1,11 @@
# Agent-System-Dev 项目事实
- 用途:开发集成父仓(gitlink 权威);非分发单元。
- 组合:modules/{core,backend,frontend,ui,documents} + deps/{development-guidelines,agent-native,agent-squad,agent-intent,agent-command,error-code-system,logging-system}。
- 组合(与 `.gitmodules` 一致):modules/{core,backend,frontend,ui,documents} + deps/{development-guidelines,development-manager,agent-native,agent-squad,agent-intent,agent-command,error-code-system,logging-system}。
- 部署:非容器;Releases 仓从本仓固定提交导出版本。
## 方向与规划入口
长期方向、目标及跨任务规划从过程仓的 [项目方向与规划索引](modules/documents/docs/proposals/INDEX.md)
查找主记录、里程碑和关联任务;原始正文沿用 [方案与规划目录](modules/documents/docs/proposals/)。
确立或调整具体方向时,在本入口维护其主记录链接;正文、确认依据和进展仍以该主记录为准。
目录中的既有文档不因被收录而自动成为已批准规划。记录、任务关联及收尾建议按
[交付规范的长期方向与任务衔接](policy/delivery.md#长期方向与任务衔接) 执行。
- [分层分支交付与规范精简 r1](modules/documents/docs/proposals/2026-10-18-delivery-model-v3.md):2026-10-18 用户批准实施。固定两级分支、任务卡合入前折叠闭合、按层级分配门禁、任务分类通道与规范精简;由治理大任务 `feature/delivery-model-v3` 推进。
- [文档职责矩阵整改 r2](modules/documents/docs/proposals/2026-10-15-rdm-duty-matrix-rework.md):项目设置的文档职责改为三视图分配,不创建文档、不执行审签。2026-10-15 按实施方案执行;部署与真实账号验收未授权。
- [svc 插件组合部署(--with)方案 r1](modules/documents/docs/proposals/2026-10-14-svc-plugin-compose-deploy.md):待评审。部署时把登记插件与 Dev 基座编成一个二进制并校验激活。收录不构成批准。
- [用户、职位角色与分层权限统一方案 r1](modules/documents/docs/proposals/2026-10-13-identity-role-permission-plan.md):用户已批准,首批仅 I1(U1–U2);
[权限合同](modules/documents/docs/proposals/2026-10-13-iam-i1-permission-contract.md) 冻结边界,
[I1 实施候选与评审记录](modules/documents/docs/proposals/2026-10-13-iam-i1-review.md) 维护实际结果与剩余限制;后续单元须另行授权。
- [快慢通道展示与动态工作摘要方案 r1.1](modules/documents/docs/proposals/2026-10-12-fast-slow-channel-display.md):
对话即时答复、后台动态发现与来源、四层阅读、真实状态、并发/恢复及 U1–U4;
2026-10-12 方案设计已批准(阶段 1–4),首批仅 U1;
[U1 实施计划](modules/documents/docs/proposals/2026-10-12-fast-slow-channel-display-u1-plan.md) 待阶段 5 批准后启动业务代码;
业务实施、模型实验、运行验收与部署 NOT_RUN。
新增方向:[Generative UI 调研与插件方案 r2](modules/documents/docs/proposals/2026-10-10-generative-ui-plugin.md)。
2026-10-11 用户裁定首试点(对话内分析页)、可信编译插件交付与试验参数;U1 受控试验当日完成
(结构分化 6/6、生成走工具参数通道、首期自研 renderer,详见方案「U1 结果与 r2 修订」);
U2 起实施与部署分别评审。
- [多人协作存储与分布式演进方案](modules/documents/docs/proposals/2026-10-11-collaboration-storage-and-distribution.md):
10–100 人、多项目、多会话并行;PostgreSQL 团队档、迁移恢复与多实例执行。方案 r1 已批准
(2026-10-11,用户指示「按方案开始改造」),实施自首选增量 U1+U2 启动。
- [RDM 两树一网集成、完善与追溯审计展示方案](modules/documents/docs/proposals/2026-10-11-rdm-two-trees-trace-audit-integration.md):
每项目一套笔记树、文档树与追溯网;项目绑定与读取授权闭环、原子事件历史、统一审计读服务
与四入口工作区。方案 r1 已获用户评审通过(2026-10-11,五阶段一并,KTD4 双层管理员裁定);
U1–U5 全部实施合入(RDM PR #195/#197/#201/#213;Dev PR #368,2026-10-11;超管槽待基座能力
接线,申请见 RDM 仓 docs/proposals/2026-10-11-u1-base-extension-requests.md);
U6 团队存储独立后续;运行验收属部署环境。
- [DHF 模板接入 RDM 文档生成管线 r0.1](modules/documents/docs/proposals/2026-10-14-dhf-template-generation-plan.md):2026-10-14 获用户批准开始实施;RDM 独立分支已保存 U1 资产合同与 44 份原件目录,E1 与获批追加试验共为 14 份 DOC 生成转换候选。owner 已分别接受项目建议书、F01、F02、设计输入规格书四份确切四哈希候选包,四份均未发布;设计输入规格书的动态 SR/子系统分组使用已裁定的 v2 内容块合同,原型和完整包分别获评审。F01/F02 为独立过程确认用途、默认阶段10,owner 兼任体系专员,公开字典与存量实例升级合同仍需独立评审。14 份 DOC 的 Word 保真待反馈。正式模板发布数为 0;U1 整体、U2–U6、正式浏览器验收、迁移和部署均未完成,复用在途两树合同并按阶段人工评审。
- [RDM 模板与两树一网对话文档生成方案 r1.1](modules/documents/docs/proposals/2026-10-11-rdm-template-dialog-generation.md):69 类历史资产盘点、模板版本与章节实例化、持久提案、文档级审签及 DOCX;待用户评审,业务实施与运行验收 NOT_RUN。 首批项目建议书/竞品分析、随后扩展全部文档已确认(2026-10-11),其余方案与实施仍待评审。
- [RDM 最终目标核对与完整交付方案 r1](modules/documents/docs/proposals/2026-10-11-rdm-final-target-completion.md):系统级项目、上限内权限覆盖、私域协作、全部文档三权与完整业务链;34 UR/68 SR/10 F 逐条映射;方案已随 #340 合入(2026-10-11),U1 需求基线核对经 RDM #199/#200 落地,U2 起未启动。
- [服务重启与全量数据恢复方案 r3.1](modules/documents/docs/proposals/2026-10-12-service-restart-data-recovery.md):
svc 启停、异常进程/主机退出后的依赖、配置/数据身份、任务/HITL/副作用、文件与组合备份恢复;
r2 已批准。r3.1 增补 D1 实例身份收尾、D2 可回滚切换、D3 真实组合门禁,并记录 2026-10-12 rdmcand 数据归属:会话不在 dev 库的 rdmcand 窗口内,领域事件为空,不跨实例搬迁。
D1 与 D2 已合入 Backend #184、RDM #291、Dev #485。D3 的 `make test-lifecycle` 跑真实组合用例;登录仍是 NOT_RUN,依赖账户方案 U7/U5,不在本轮公共化账户 CLI。r3 其余未批条款仍待人工评审。
- [svc 统一部署与一次性登录 Key 方案 r1](modules/documents/docs/proposals/2026-10-12-svc-unified-deploy-and-login-key.md):
二进制/源码统一部署、环境准备、无初始密码开户与账户恢复;一次性 Key 仅兑换设密受限会话;
2026-10-12 已批准;U1/U4 实施启动中;规格见 `docs/svc-deploy/`。
上述账户/恢复方案已有 U1/U4 与 recover/watchdog 基础源码。2026-10-12 的 dev 8788 续查形成账户 r2、恢复 r3 **候选草案**:帮助与能力发现、账户事务/审计/登录接线、SQLite 活动服务隔离及备份恢复增补。新增内容待人工评审;Documents 独立分支 `feature/svc-account-durability-plan` 仅本地保存,不推进本仓 gitlink;本入口原链接仍指固定版。候选交接与核查见[续审记录](docs/svc-deploy/2026-10-12-account-durability-plan-review.md)。
## 验证
多个分支向 Dev main 交付时按[合入调度](policy/delivery.md#合入调度)执行:等待分支不追 main,轮到后同步一次、固定候选、运行当前 HEAD 的完整 CI,再由智能体合入。实际采纳范围见[采纳记录](policy/adoption.md)。
`make test` 先核对子模块工作树与固定指针,再运行治理脚本、公开边界、跨仓指针、库及各模块
测试。实际目标以根 Makefile 为准。`make test-governance` 可独立检查开发门禁,使用临时
真实仓库,不访问生产数据;操作与证据要求见 [开发门禁](policy/governance.md)。
@@ -78,6 +19,36 @@ U2 起实施与部署分别评审。
未加 go.work:工作区最小版本选择会抬高 backend 单独构建使用的部分 `golang.org/x` 版本。
发布消费方须从固定 Dev 提交递归物化后运行 `make build`,再核验制品与实际运行状态。
- [渐进工作台界面重设计 r0.2](modules/documents/docs/proposals/2026-10-12-work-companion-ui-design.md):用户已授权连续实施;[计划 r1](modules/documents/docs/proposals/2026-10-12-work-companion-ui-plan.md)覆盖任务摘要、对话/输入、窄屏和真实状态投影;进展见对应任务卡。
多个分支向 Dev main 交付时按 [合入调度](policy/delivery.md#合入调度) 执行;实际采纳范围见 [采纳记录](policy/adoption.md)。
- [系统项目、成员工作入口与私域协作闭环 r1](modules/documents/docs/proposals/2026-10-13-system-project-membership.md):2026-10-13 用户批准阶段 1–9 连续推进;统一全局项目身份与名称、成员个人会话、每项目两树一网和私域权限;当前组合验证/CI/tag 消费推进中,部署与线上修复未授权。
## 方向与规划入口
长期方向、目标及跨任务规划从过程仓的 [项目方向与规划索引](modules/documents/docs/proposals/INDEX.md)
查找主记录、里程碑和关联任务;原始正文沿用 [方案与规划目录](modules/documents/docs/proposals/)。
确立或调整具体方向时,在本入口维护其主记录链接;记录、任务关联及收尾建议按
[交付规范的长期方向与任务衔接](policy/delivery.md#长期方向与任务衔接) 执行。
下列条目只是主题索引:批准、进展、验收与部署状态一律以所链主记录、任务卡与 PR 为准,
本入口不复制;收录不构成批准。
- [分层分支交付与规范精简](modules/documents/docs/proposals/2026-10-18-delivery-model-v3.md):两级分支、任务卡合入前闭合、分级门禁、任务分类通道与规范精简。
- [文档职责矩阵整改](modules/documents/docs/proposals/2026-10-15-rdm-duty-matrix-rework.md):项目设置的文档职责三视图分配。
- [svc 插件组合部署(--with)](modules/documents/docs/proposals/2026-10-14-svc-plugin-compose-deploy.md):部署时把登记插件与 Dev 基座编成一个二进制并校验激活。
- [用户、职位角色与分层权限统一](modules/documents/docs/proposals/2026-10-13-identity-role-permission-plan.md):
[I1 权限合同](modules/documents/docs/proposals/2026-10-13-iam-i1-permission-contract.md)、
[I1 实施候选与评审记录](modules/documents/docs/proposals/2026-10-13-iam-i1-review.md)。
- [系统项目、成员工作入口与私域协作闭环](modules/documents/docs/proposals/2026-10-13-system-project-membership.md):全局项目身份与名称、成员个人会话、每项目两树一网与私域权限。
- [快慢通道展示与动态工作摘要](modules/documents/docs/proposals/2026-10-12-fast-slow-channel-display.md):对话即时答复、后台动态发现与来源、四层阅读、真实状态、并发/恢复;
[U1 实施计划](modules/documents/docs/proposals/2026-10-12-fast-slow-channel-display-u1-plan.md)。
- [渐进工作台界面重设计](modules/documents/docs/proposals/2026-10-12-work-companion-ui-design.md):
[计划](modules/documents/docs/proposals/2026-10-12-work-companion-ui-plan.md) 覆盖任务摘要、对话/输入、窄屏和真实状态投影。
- [服务重启与全量数据恢复](modules/documents/docs/proposals/2026-10-12-service-restart-data-recovery.md):svc 启停、异常退出后的依赖、配置/数据身份、任务/HITL/副作用、文件与组合备份恢复。
- [svc 统一部署与一次性登录 Key](modules/documents/docs/proposals/2026-10-12-svc-unified-deploy-and-login-key.md):
二进制/源码统一部署、环境准备、无初始密码开户与账户恢复;规格见 `docs/svc-deploy/`,
账户与恢复续审见 [续审记录](docs/svc-deploy/2026-10-12-account-durability-plan-review.md)。
- [Generative UI 调研与插件](modules/documents/docs/proposals/2026-10-10-generative-ui-plugin.md):对话内生成界面与可信编译插件交付。
- [多人协作存储与分布式演进](modules/documents/docs/proposals/2026-10-11-collaboration-storage-and-distribution.md):多项目、多会话并行;PostgreSQL 团队档、迁移恢复与多实例执行。
- [RDM 两树一网集成、完善与追溯审计展示](modules/documents/docs/proposals/2026-10-11-rdm-two-trees-trace-audit-integration.md):每项目笔记树、文档树与追溯网,项目绑定与读取授权、原子事件历史、统一审计读服务与四入口工作区。
- [DHF 模板接入 RDM 文档生成管线](modules/documents/docs/proposals/2026-10-14-dhf-template-generation-plan.md):DHF 模板资产合同与文档生成转换。
- [RDM 模板与两树一网对话文档生成](modules/documents/docs/proposals/2026-10-11-rdm-template-dialog-generation.md):历史资产盘点、模板版本与章节实例化、持久提案、文档级审签及 DOCX。
- [RDM 最终目标核对与完整交付](modules/documents/docs/proposals/2026-10-11-rdm-final-target-completion.md):系统级项目、权限覆盖、私域协作、全部文档三权与完整业务链的需求映射。