5fa662be30
retry 强判据必须排在全部分支之前。plan 分支原先排在 delegated 与 autonomous-game-build 之后,两支都能绕开 reject_supervisor_plan_root_retry_without_identity: 一是 plan source 配伪造 parent 会落 delegated 支,直接返回 agent-delegate-retry,强判据根本不执行。二是 binding.source 是 plan 配 autonomous profile 会落 autonomous 支,因 plan 在可信集合内而被原样取回, 复活启动路径 reject_supervisor_plan_autonomous_profile 明令禁止的组合。 两者都要 durable 状态先畸变才可达,但强判据存在的意义正是对畸变状态 fail closed。守卫提到函数开头无条件执行,合法 plan 根 run 对它恒真; plan 分支不再重复读 durable 状态。autonomous 支另加一次 reject_supervisor_plan_autonomous_profile,兜住顶部守卫按 task.source 判定所挡不住的那一种。回归已用变异测试确认去掉任一守卫即变红。 __all_agents__ 身份哨兵改为编译期约束。四个不带 agentId 的 wrapper 会以 哨兵跳过按身份的工具面收窄与原始工具 identity 复核,M1A-2 之后调用点只剩 测试,但将来新增生产调用点漏改是静默拿全量目录而非编译失败。四个 wrapper 与对应 re-export 一并加 cfg(test)。该哨兵已扩散到两个文件,是正在复制的 模式而非单点遗留。 订正 M1A-3 决策条里「agent-background-task 唯一构造点」的错误结论: task_start 与 recovery_scan 各还有一处同形状的空 source 兜底,且 recovery_scan 那条不经过 plan 根强判据。经复核有意不改,理由随条记录。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
项目记忆目录
本目录保存可以进入 Git 的项目级长期知识,供开发者和 Agent 读取。.hermes/ 只保留 Hermes 工具专用资源,不再作为项目知识库。
目录结构
docs/project-memory/
├─ README.md
├─ shared-memory/
│ ├─ project-overview.md
│ ├─ team-conventions.md
│ ├─ development-workflow.md
│ ├─ document-map.md
│ ├─ decision-log.md
│ ├─ pitfalls.md
│ └─ handoff-template.md
├─ plans/
└─ todos/
使用原则
- 开发前先读
AGENTS.md;复杂任务继续读取docs/【协作规范】Agent工作入口与执行准则-2026-06-22.md,再按任务读取docs/project-memory/shared-memory/和当前docs/文档。 - 长期有效的架构约定、接口变化、排障经验、开发流程和协作规则写入
shared-memory/。 - 阶段性计划写入
plans/,已确定但暂未实施的共享 TODO 写入todos/。 - 如果本目录内容与代码或最新
docs/冲突,以代码和最新docs/为准,并同步修正过期记忆。 - 禁止写入个人配置、API Key、Token、Cookie、会话记录、认证文件、本地私密路径、构建产物、日志、缓存和数据库 dump。
RAG 索引
本目录是 Agent 本地 RAG 的高权重索引源。RAG 主要用于 Agent 检索上下文,不替代人工阅读入口或正式文档地图。索引脚本位于 scripts/rag/,本地生成的 .rag/ 数据不提交 Git。