Files
DevFlow/docs/02-架构设计/专项设计/并行化与异步唤醒-设计-2026-10-04.md
T

24 KiB
Raw Blame History

并行化与异步唤醒 — 能力设计

创建: 2026-10-04 | 定位: 能力建设批(非缺陷修复)。两条已实证的能力边界:①写并行缺位+同文件写竞态隐患 ②无异步唤醒原语(挂起即等人) 关联: 跨进程任务接力-设计(M1 接力棒/wake 对接)/无人值守长任务-设计(continuum/租约)/飞书直连通道(外部唤醒源)

一、能力 1:写并行化(risk × 路径租约二维分组)

1.1 现状与缺口

工具批执行按 risk 单维分组:Low 并行(join_all),Medium 逐个审批/串行,boundary 会话 Medium 旁路后并入并行向量。三个缺口:

  1. 潜在竞态(顺带修复):boundary/auto 会话同轮两个 patch 同一文件→旁路后并行执行→写竞态(实证可能:LLM 同轮多次编辑同文件常见);
  2. 非 boundary 会话写类纯串行:多文件重构任务(今日主场景)单轮写吞吐受限;
  3. 分组器无资源维度:risk 之外,「是否同一路径」这一冲突维度未建模。

1.2 设计:二维分组器

  • 分组三档:纯读类→并行(上限沿用 8);写类按规范路径分片→异路径并行、同路径按 LLM 发出顺序串行(路径经 canonicalize 归一,与 boundary 白名单同款归一口径);High→逐个审批不变。
  • boundary/auto 旁路逻辑不变,旁路后的写类再按路径分片;非 boundary 会话维持逐个审批(用户逐个拍板语义不倒退)。
  • 顺带消解 1.1-1 竞态:同路径强制串行即修复。
  • 实现:单点在 audit 的 process_tool_calls 批分组器;写类路径冲突判定抽纯函数+单测(双 patch 同文件/异文件/读写混合三态)。

1.3 五项自评

兼容(零 schema)/破坏(同路径保序显式化=消竞态,是修复非破坏)/安全(写面与审批面均不扩)/资源(进程内并发写不同文件安全)/回退(分组器单点开关,默认随 auto/boundary 开)。

二、能力 2:wake 异步唤醒原语

2.1 模型

挂起任务登记唤醒条件,条件满足自动唤醒注入续跑——「挂起」与「等人」解耦。

  • WakeRegistry(首期进程内存,随 app 存亡;宁少勿预留不落库):条目={conv_id, condition, payload, created_at, expires_at, once=true}
  • 条件三型(首期):delay(延时到)/file-appear(文件出现,接力棒 result.json 场景)/process-exit(进程退出,自换装场景)
  • 唤醒动作:向目标会话注入一条 user 角色消息(复用 a5 换向注入路径+force_send 语义,过 generating guard/epoch 守卫),内容=唤醒上下文人话;注入即从当前会话状态续跑
  • 防重:once 语义+expires 过期清理(默认 24h);注册表上限 64

2.2 三源对接(唤醒源不新增机制)

唤醒源 对接方式
接力棒脚本(M1) 脚本完成写 result.json → file-appear 唤醒
飞书直连通道 用户消息到达 → 直接注入(不经 registry,即时唤醒)
app 内调度器 delay 型 tick 检查(复用既有定时模式)

2.3 五项自评

兼容(零 schema,首期内存)/破坏(无既有语义变更)/安全(注入走既有 guard;外部源经飞书白名单;registry 本地条件无远程面)/资源(64 上限+24h 过期)/回退(随接力棒 M1 开关,未开关时 registry 不启用)。

三、分期

  • W-a: 写并行二维分组器(独立交付,含同文件竞态修复)
  • W-b: wake 原语核心(三条件+注入续跑)
  • W-c: 与 M1/飞书通道对接(依赖各方落地)

四、拍板点

  1. 写并行默认开(仅 auto/boundary 会话)还是全局?建议:仅 auto/boundary,普通会话维持逐个审批,观测一版再放宽。
  2. wake 注入消息形态:user 角色(对齐 a5,落库可见)还是 system(静默)?建议 user,审计可见。
  3. registry 首期内存态(重启即失)可接受?建议可接受——唤醒条件本就依附 app 存续,接力棒场景由进程外脚本兜底。

五、明确不做

  • 不做跨设备唤醒分发;不做条件表达式引擎(三型够用,复杂条件=任务书职责);不做并行度动态调优(常量起步,实测再调)。

六、续接与主动性(下一阶能力,2026-10-04 深夜分析)

6.1 续接能力现状与根修

场景 现状 根修
同 loop 断流/失败 ✅ 跨轮重入退避(P1 已修) —
停靠后续接 ✅ 人工(点继续/重发);a5 落地后先自动换向×2 —
进程重启后 ❌ 任务静默失踪(落库稀疏:225 轮存 2 条) continuum 任务连续体(M2/W4 批,V46 轮级持久化)
换装/进程死亡 ❌ 无恢复入口 M1 接力棒(result.json+file-appear 唤醒=6.2)
长会话上下文 ✅ 视图压缩续接(今日已修 memo/豁免) —

缺口本质=「执行续点」不持久+「进程级恢复」缺位。根修两件均设计已备(W4 批与 M1),不新增立项。

6.2 主动性能力分层与根修

主动性四层:反应性(✅ 响应指令)→自愈性(a5 ✅ 在飞)→前瞻性(缺)→目标驱动持续性(缺)。

根修=wake 原语的首个应用场景「空闲自领」(不新立大设计):

  • 空闲检测(无活跃 loop+无 pending)→ delay 型 wake 唤醒 → 查 todo 板按优先级领任务 → 领单纪律(已注入的纪律段覆盖「修复必销账」)→ 完成回写
  • 边界约束(要害):自领任务默认限 Low 风险档+白名单目录,Medium 以上仍需人工——主动性≠放权,是边界内自主(对齐无人值守 TaskBoundary 信任分级)
  • 治理环联动:自领行为全量进监控 history.jsonl,自领质量纳入 S 阶升级判据
  • 拍板点(新增 4):①自领默认开还是白名单会话(建议后者起步)②自领频率(建议空闲后 30 分钟延迟触发)③自领范围(todo 板确定性条目 only,设计先行类不领)④自领产出是否推送飞书(建议是,对齐治理环)

6.3 挂机模式(2026-10-04 深夜用户拍板:自领/自推进/自拆解/自设计)

W-d 空闲自领的完全体:agent 在边界内持续自主运转,人只做拍板与验收。

核心循环: 空闲检测(delay wake)→ 领单(todo 板按优先级)→ 分类(确定性条目直推/设计先行类先自设计)→ 自拆解(大任务切子批,文件零交集矩阵)→ 自推进(边界内执行,熔断走 a5 自愈)→ 自验证(门禁三件套)→ 自销账(板回写+核验语)→ 间隔 → 循环。

约束框架(防失控四闸):

  1. 边界闸: 挂机会话=boundary 会话(auto_exec+risk_ceiling+白名单目录),High 风险(部署/push/删除)一律挂起等拍板
  2. 预算闸: 复用 TaskBudget 三值(挂机时长/单任务轮次/总 token),耗尽→停靠+飞书通知(不无限空转)
  3. 自愈闸: 执行中熔断走 a5 换向×2;挂机内换向耗尽→跳过该任务领下一个(不死磕单点),同一任务两次挂机失败进「待人工」清单
  4. 治理闸: 全程进 history.jsonl;每日挂机报告(领了几单/完成几单/返工率/消耗)→飞书

与既建机制的组合(零新基建,全是既有件循环化): wake(循环驱动)/a5(执行自愈)/continuum(续点)/boundary(边界)/TaskBudget(预算)/监控 history(治理)/飞书(通知与远程指令)。

分期:

  • W-d1 挂机循环骨架(领单→执行→销账,确定性条目 only)
  • W-d2 自拆解+自设计(设计先行类:先出设计稿落 docs→登记→作为后续实施批自领;编码类大任务切子批)
  • W-d3 治理强化(预算闸/挂机报告/待人工清单)

拍板点(挂机版,覆盖 6.2 的 4 项):

  1. 挂机开关形态: 托盘一键+设置页(建议双入口)
  2. 挂机时段: 全天 or 夜间档(初衷图既有「夜间额度高宜批量推进」设想,建议可配,默认全天)
  3. 任务范围: 确定性条目 W-d1 起步;设计类 W-d2 起(自设计产出稿仍挂「待拍板」不直接实施,人工审后自动领实施)
  4. 失败升级路径: 两次挂机失败→待人工清单+飞书(建议是)

6.3.1 续接能力并入挂机(2026-10-04 深夜 [补1] 用户令)

挂机跑长时段(尤其过夜),进程重启/崩溃/换装必须能续——续接是挂机的命门,不是附加项:

  • 挂机状态持久化: 挂机会话登记为 continuum 条目(挂机上下文=当前任务/子批进度/预算消耗/待人工清单);W-d1 首版用轻量挂机状态文件(挂机目录 JSON,对齐接力棒 result.json 模式),M2 continuum 落地后升级
  • 重启自动续: 启动扫描发现「挂机中」状态→自动恢复循环(挂机=显式完全信任档,重启自动续符合语义;区别于普通任务的「重启不自动续」,开关=挂机开关本身)
  • 断点任务续跑: 单任务中断从 continuum 续点恢复(不重放已落库轮次);W-d1 首版退化为「重启后该任务重领,已完成部分靠销账标记去重」——销账纪律(已注入)在此兜底
  • 换装特殊流: 挂机中自带换装(接力棒场景)→换装后 file-appear 唤醒自动续,全程无人
  • 依赖序: W-d1 轻量续接(状态文件)→ M2 continuum(精确续点)→ W-d3 治理强化;续接不阻塞挂机骨架先行

七、多任务×子代理×真异步编排(2026-10-04 深夜用户定标)

7.1 三级并行模型

会话层: 多会话并行(F-09 per-conv 已有,并行度可配化)
  └ 任务层: 每会话一活跃任务,多任务跨会话并行
      └ 子代理层: 每任务 N 个子代理(spawn 并发已验证),W-a 后工具批内写类亦并行

7.2 真异步 spawn(核心新增)

现状:spawn_agent 同步语义(报告=工具返回值,父阻塞等全部子代理)。真异步变体:

  • spawn_agent(async=true): 派发后立即返回「已派发+agent_id」,父 loop 继续其它工具/下一轮
  • 子代理完成 → 经 wake 原语(file-appear/process 条件,§二)唤醒父会话,注入「[子代理报告] agent-N: <摘要>」user 消息 → 父下一轮消化
  • 父任务若已收敛: 报告落审计+完成卡,不强行唤醒(任务边界尊重)
  • 轮界注入: 父正在流式生成时报告到达→排队至本轮结束(对齐 a5 轮界注入模式),不打断流

7.3 并发治理(防爆炸)

  • 全局子代理并发池上限(建议 4-6,实测调):防 API 限流+token 成本失控+CPU 争抢
  • per-task TaskBudget 预算已备,async 子代理计入所属任务预算
  • 超限行为: async spawn 排队(WakeRegistry 挂 pending 条件=有空槽),非拒绝

7.4 失败面

子代理失败/截断 → wake 注入失败报告(带 stop_kind,对齐停靠词表),父可重派;父会话已删 → 报告落审计即止。

7.5 依赖与分期

  • 前置: W-a(写并行)/W-b(wake 原语)——本节是二者的组合应用层
  • W-e1: async spawn 变体+报告回填注入(轮界排队)
  • W-e2: 全局并发池+预算联动
  • W-e3: 与 continuum 组合(父会话被压缩/切换后报告仍可达)

7.6 拍板点

  1. async 子代理失败是否自动重派一次?(建议:是,带失败摘要,重派计入任务预算)
  2. 报告回填消息是否也走 [自动换向] 类前缀族(建议:新增 [子代理报告] 前缀,前端完成卡旁路消费)

八、编排能力分析与规划(2026-10-04 深夜 [补1])

8.1 存量资产盘点(反转发现:编排面零使用≠零资产)

资产 状态 编排价值
tasks 表(parent_id 层级+8 态状态机) 在用 任务分解与推进的原语
task_links 依赖图(DAG 关联+循环检测) 建成零使用 依赖满足自动推进的底座
df-workflow(DAG 引擎+workflow_executions 持久化) 建成零使用(9 张编排表 0 行) 编排轨迹与节点化执行面
TaskAdvanceNode(DAG 节点已注册) 建成未联动 DAG×agent 融合的现成插销
spawn_agent+registry/boundary/budget 在用 子代理编配原语
todo 协作板+挂机自领(W-d 设计) 设计中 任务源与自驱入口

结论:编排缺口不在资产,在「连接与驱动」——依赖图没人推进、DAG 引擎不知道 agent、任务源没有调度器。

8.2 缺口清单

  1. 依赖图静态:task_links 声明了 A→B,但 A 完成不会解锁 B(无依赖满足→自动推进)
  2. 两套孤岛:df-workflow 与 agent loop 互不感知
  3. 多任务调度器缺位:挂机领单只查板,无依赖/优先级/资源三维调度
  4. 事件驱动编排缺位:「X 完成→触发 Y」无机制(wake 是雏形)

8.3 编排能力三层路线(渐进,复用率极高)

  • 编排 1.0(挂机模式内含,W-d):板驱动+任务状态机推进,无依赖图——已设计
  • 编排 2.0 依赖图自动推进:task_links 依赖满足(前置任务 completed)→wake 唤醒解锁下游任务(advance+可选自动派发);执行轨迹落 workflow_executions——把「死的依赖图」变成「活的流水线」;改动面=advance 成功回调+wake 注册,复用 df-nodes 状态机与 task_links
  • 编排 3.0 DAG×agent 融合:工作流节点=agent 动作(spawn/advance/notify 已有 TaskAdvanceNode 插销),DAG 即多任务编排面;初衷图 Code-Working 会话「dynamic workflow 编排推进」的落地形态;前置=2.0+async spawn(W-e)

8.4 拍板点

  1. 编排 2.0 的依赖解锁是否自动派发执行(建议:解锁仅标记 ready,派发由挂机领单消费——调度权仍在挂机,编排只管条件)
  2. 编排 3.0 的 DAG 定义形态(YAML 模板 vs 板驱动自动生成,建议后者起步)

九、状态即时同步与通知能力(2026-10-04 深夜 [补2])

可控支柱的推送面:agent 状态变化即时可达所有端。现状=事件总线单一事实源已立(AiChatEvent 族),缺的是出口扇出与分级。

9.1 出口扇出(一对多,零新事实源)

AiChatEvent 族(进度/停靠/完成/失败/审批)→ 出口适配器:桌面 UI(既有)/托盘 NeedAction(既有)/飞书通道(设计已立,关键路径)/relay-miniapp(隧道既有)/监控 history(已建)。

9.2 即时性分级(防刷屏)

级 事件 策略
即时 停靠/审批挂起/任务完成/失败熔断 即推(同类 5s 节流,notify 既有范式)
摘要 TaskProgress 每 N 轮 可选推(挂机模式开时推)
批量 小时监控摘要/每日挂机报告 cron 推(治理环既有设想)

9.3 状态查询面(补「跑到哪了」)

远控查询命令族(飞书/miniapp 同构):查活跃任务/预算消耗/最近停靠原因——复用 remote_bridge 命令族扩展,只读零风险。

9.4 依赖与分期

W-g1 出口适配器框架+即时级(依赖飞书通道实施)/W-g2 摘要级+查询命令族/W-g3 每日报告(挂机 W-d3 联动)。

十、会话间/代理间感知能力(2026-10-04 深夜 [补3])

今天的全部互踩(双头编排/子代理同文件/主客两线)同根:无人知道「谁正占着什么」。感知能力=lease 原语的读写两面落地。

10.1 FileLeaseRegistry(文件面占用感知,要害)

  • 写类工具(patch/write/edit)执行前登记 path→(conv, agent, ttl) 到进程级注册表,完成释放;同路径第二写者前置校验命中→拒绝+指路「该文件正被会话 B 编辑,等它完成或换文件」
  • 与 W-a 二维分组器互补:分组器管同轮内保序,registry 管跨轮跨会话互斥——合起来=完整 lease
  • 直接根治:双头编排互踩/子代理同文件竞态/主客两线叠改

10.2 拓扑与状态感知

  • 父↔子: 父见子代理实时状态(ai_sub_agent_list 已备,S3 轨迹已建),子见兄弟在做什么(query_leases 天然覆盖)
  • 会话↔会话: 一行状态查询「会话 B 在干什么」(per_conv 状态投影,只读)
  • 发现共享: agent 的排障发现(如「X 是软删地雷」)写 knowledges→其他会话 knowledge_search 可见(盘活 1033 条只写不读的存量)

10.3 分期

W-h1 FileLeaseRegistry+写前置校验(小改,价值立现)/W-h2 query_leases 工具+兄弟感知/W-h3 跨会话状态+知识联动。前置: 无(纯增量);与 W-a 同批相邻落地最佳。

十一、伪命题甄别(2026-10-04 深夜 [补4],对抗自查,实施清单以此为准)

五测试:今天有无真实被卡/有无更轻替代/是否预建/与既有重复/收益成本比。

件 判定 理由与处置
W-h 感知/租约 真命题,P0 今日三连实锤(双头/子代理同文件/主客两线);小改大收益,提到最前
W-d1 挂机最小闭环 真命题 用户亲定场景;先跑一周看真实产出率再议深化
W-e2 全局并发池 真命题(小) 3 子代理连发已近约束,防 token 爆炸真约束
W-a 写并行吞吐 半伪,降级 墙钟大头是构建(38%)非写(秒级);只修同文件竞态保序(一行分组逻辑),吞吐优化等写耗时占比>20% 实测再做
W-d2 自拆解/自设计 降级 板上条目登板时已拆好;设计稿产出不需要专门机制——作顺手能力,不立子系统
W-b wake 原语 条件性,随场景建 现有消费者(挂机/接力棒)均未落地;单独建=预建。与 W-d1 绑定实施
W-e1 async spawn 条件性,缓 今日子报告全是下一步输入(依赖决定同步是对的);先建并发池,出现「父有事可做」场景再建 async
W-f 编排 2.0/3.0 冻结(高伪风险) task_links/df-workflow 至今零真实使用——「编排面零使用」的正确读法是还没到需要编排的阶段;启动信号=用户开始建依赖链或挂机领单遇前置任务
W-g 状态推送 真命题但被阻塞 随飞书通道走,不单独排
W-c 对接层 合并 非独立件,并入 W-d/M1 实施阶段标记

实施序修正: W-h 感知租约(最先)→ W-e2 并发池 → W-d1 挂机最小闭环(含 W-b wake 按需)→ 其余冻结等信号。 自查教训: 本文档 §1-§9 是「能力全景」(留给未来对照),§十一才是「现在做什么」——全景图与施工图必须分开,否则全景会冒充计划。

十一·修正(2026-10-04 深夜 [补2] 用户纠正)

方法错误更正:「零真实使用→冻结等信号」是鸡生蛋逻辑错误——task_links/df-workflow 零使用的主因是能力未暴露(无 agent 工具面入口/无调用门),不是需求不存在。正确方法=投最小探针:暴露最小可用入口让真实使用发生,用使用率(而非等待)决定深化。

修正后处置:

  • W-f 2.0: 降级为最小探针——agent 工具面暴露「声明依赖」+依赖满足时提示一行(不做自动推进);探针使用率决定是否建自动推进
  • W-e1 async spawn: 同理暴露 async 参数(小改),有机会用才有需求验证;并发池(W-e2)不受影响仍立做
  • 其余维持: W-a 写并行降级有实测数据支撑(构建 38% vs 写秒级),不依赖使用信号,结论不变;W-d2 维持「顺手能力不立子系统」但自设计保留为挂机探索项
  • 通用教训(入方法论): 能力甄别双判据——有量化实测数据的按数据判;无数据的投最小探针判;禁止把「未被使用」直接读成「不需要」(尤其当入口未提供时)

十二、自进化能力(2026-10-04 深夜 [补1]:自造工具+重复寻优)

初衷图「进化系统(自举)」的落地形态,两层:

12.1 重复→寻优(重复是重构信号,不只是停滞信号)

  • 数据源已备: audit 表全量工具调用序列——同一序列模式出现 N 次(如「grep X→read Y→patch Z」×5)即抽象候选
  • 两种触发: ①在线(G2 熔断前的中途检测:重复达阈值时先问「是否有更优解/可抽象为脚本」,从「数次数」升级为「问原因」)②离线(挂机空闲扫 audit 出模式报告——进化任务成为挂机的自领任务类型)
  • 输出: 优化建议(换工具/写脚本/建技能),不自动改=零风险

12.2 工具/技能自造管线

  • 现状: agent 会写脚本(run_command)但无「晋升为注册技能」的管线;devflow 技能库与 read_skill 已存在(read_skill cm/advance 今日实证)
  • 设计: 脚本落 scripts/ → 注册进技能库(最小元数据: 名称/用途/入参/风险档) → 后续任务 read_skill 复用;风险档默认 Low(只读类)/写类需审批;资产可审计可回收
  • 沉淀物分流: 重复的排障发现→knowledges;重复的操作序列→skills(两种进化物各归其位)

12.3 分期与拍板

  • E-m1 模式扫描报告(只读,零风险,挂机自领一类)→ E-m2 在线启发(熔断对话化)→ E-m3 技能注册管线(风险档+审批)
  • 拍板点: 技能注册是否需人工审(建议 E-m3 首次注册必审,之后同类自动)

十三、失败学习环(2026-10-04 深夜:所有失败作为学习教材,不反复在相同处失败)

「不重复失败」的量化判据分两层:同签名不重放(已管:loop 内窗口+纪律注入)+ 同类失败不跨会话重演(缺,本节补)。

13.1 失败归类与学习

  • audit 已是全量失败事实源(status+error+参数);缺「归类」:按错误模式聚类(状态机拒绝/路径未授权/精确匹配未中/网络/参数非法),类粒度才是学习单元
  • 高频失败类 → 提炼教训文本(因果+规避法一句话),存 knowledges(失败分册,复用既有知识链与召回闭环设计,零新存储)

13.2 教训的三个消费点

  1. 同类任务前置注入: 派发/自领任务时,若目标域有高频失败类教训→提示词附「历史高频坑」(与 a5 换向注入同路)
  2. 失败现场即时附学: 新失败发生时,若该类已有教训→失败提示附「同类失败已 N 次,已学经验:...」(治盲试的直接抓手)
  3. 挂机进化任务: F-m1 失败归类统计=自领任务一类(只读零风险),产出高频失败 Top 与教训草案

13.3 分期与自评

F-m1 归类统计(只读)/F-m2 教训提炼+注入/F-m3 失败现场附学。自评: 兼容(复用 audit+knowledge 链零新存储)/安全(教训文本进提示词,无注入面——教训由 LLM 提炼经审核入板)/资源(统计查询按需)/回退(注入开关)。拍板点: 教训提炼由谁审(LLM 出稿+用户/主代理审,建议后者)。

12.4 工具进化环([补]:自写工具的自迭代)

自造(E-m3)之后是自进化——工具不是写完即终态:

  • 使用遥测: 自造工具每次调用记 次数/失败率/「调用后紧跟修正」率(补丁紧跟=不顺手信号),数据源=既有 audit,零新埋点
  • 进化触发: 失败率高 或 修正跟随率超阈值 → 该工具进进化候选
  • 进化动作: 读工具源码+遥测 → LLM 产改进版(参数向后兼容)→ 版本号递增 → 旧调用方不受影响 → 旧版退役
  • 安全闸: 进化=代码变更,走既有门禁(check+相关测试);行为变化审计留痕;风险档升级需审批(对齐技能注册同款纪律)
  • 依赖序: E-m3 注册管线之后(先有自造才有自进化),真工具的真实使用积累(E-m3 落地后自然产生)——本阶是最远期件,前面三阶不落地它不启动

12.5 脚本生命周期纪律([补1]:不瞎写瞎用瞎删)

今日实证三类乱象:仓库根目录散落探查脚本(.fix_audit.py 类)/feishu_smoke.rs 写删横跳/docs 目录混入 .research 脚本堆。纪律四条:

  1. 落位: 一次性探查脚本→scripts/ 专用目录+命名 scratch-<主题>.<ext>,头部两行注释(用途/一次性或可复用);持久工具→走 E-m3 注册管线晋技能;禁止落仓库根目录与文档目录
  2. 声明: 头部即声明生命周期(用完即删/长期保留),删前核对「目的已达成且无引用」
  3. 写前想清: 结构性脚本(超过 30 行/含依赖引入)先定形态再写——对齐纪律段「一次成形」;写删回环超过一轮=停下换思路(与 G3 熔断同一触发语义,但纪律在前熔断在后)
  4. 资产化优先: 同类脚本写第二次→触发 E-m 重复寻优(抽象为注册技能),脚本资产不流失

落地: ①E-m3 管线含落位与声明规范 ②纪律段增补第 7 条(脚本落位,下一批注入修订顺带,不单独改) ③既有 memory「工作空间根目录整洁规范/AI临时文件写入规范」与此同源,agent 侧规则注入后即为同一纪律的对端执行

  1. 临时文件同规: 临时文件(中间产物/探针输出/快照)与脚本同一套生命周期——落专用目录(temp/ 或 .scratch/,禁根目录/文档目录/源码树)+命名带主题与日期+声明保留策略(用完即删/任务末清理)+永不进 git(gitignore 已挡,提交前三问第 1 问复核)。今天实证的应然态:探查脚本堆落 docs/.research/ 即违规,应落 temp/agent-monitor/ 同级专用目录。

  2. 文档同规: AI 产文档三分各归其位——①会话报告/分析结论:默认对话内直交,需跨会话保留落 temp/(命名主题-日期);②设计文档:docs/02-架构设计/专项设计/ +INDEX 登记;③项目文档:对应 docs/ 子目录+中文命名+INDEX 更新。禁:文档落根目录/未进 INDEX/设计稿与正式文档混放。今天正反例:四篇设计落专项设计目录(正)vs .research 勘察堆落 docs 目录(反,应落 temp/)。