Files
Agent-System-Dev/AGENTS.md
T

83 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Agent 工作说明(Agent-System-Dev)
本文件是入口摘要:只列强制原则与触发式必读,细则与确切命令以所链权威文档为准。
通用规范为固定版本的 Development-Guidelines(`deps/development-guidelines`):核心规则与术语见 `core/`,
按任务触发阅读 `standards/` 专题,通用交付依据为 `workflows/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、PR 合入及安全收口由智能体连续推进。
- 只在目标/范围/验收条件变更、影响用户结果的重大取舍、高后果操作,或业务验收必须由用户判定时请求人工决策。
- 先交付用户明确要求的产物;不得用基础设施、工具治理、通用化、加固、重构或“以后可能用到”替代当前目标,不把简单修改升级成平台、框架或自动化工程。
- 最小充分实现:目标与受影响系统可用、最小直接验证通过即停止并交付;完善作为后续独立增量。
- 绝对禁止私自扩大范围:只修复阻塞目标、可用性、明确验收或强制安全门禁的问题;必要修复超出范围时,说明阻塞、最小扩围和影响,取得授权后再做。“相关”“顺手”“更完美”不构成授权;非阻塞高价值项只简记,噪音忽略,Review 只围绕阻塞项。
- 测试与编排成比例:实施中只跑最小直接检查,完整套件只在最终候选或确有必要时运行一次;编排成本不得超过任务本身。
- 细则:[最高优先级](policy/delivery.md#最高优先级目标兑现与最小充分交付)、[授权与决策点](policy/delivery.md#授权决策点与连续执行)、[问题分流](policy/delivery.md#目标优先范围控制与问题分流)。
## Agent 实施与独立 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)。
## 任务生命周期(强制)
- 新需求建分支前以远端为准分流;启动或恢复后、第一次项目写操作前保存一次启动检查收据。
- 新建任务须以权威远端分流并取得严格 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 <原因>"` 并记录原因,不豁免现场保护。
- 每次结束用户任务,最终回复末尾附简短自包含的交接块,供清空上下文后续办;它只是摘要,不替代任务卡、持久交接或证据。无仓库变更也无续办状态时,写一行明确的“不适用”。字段与细则见 [对话收尾交接块](policy/delivery.md#对话收尾交接块)。
- 首次克隆后运行 `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 × 可复核输出;用户、文档、旧报告或工具摘要中的“可用/已就位”都须先复核。
- 来源三分 `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 合入。模块边界与验证命令见 [PROJECT.md](PROJECT.md)。
## UI 设计门禁(强制)
- 一切界面生成/修改先读 [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 处理,过期事件丢弃。