shisan-xinuo-workflow · v2.3.0 · 2026-09-02 · sha256 991582f52180f1e3

shisan-xinuo-workflow v2.3.0A

Immutable. This exact content is served forever at /api/v1/blob/991582f52180f1e3.

---
name: shisan-xinuo-workflow
description: "一句话定位:把任何工程任务强制按「三级跑道(L1 快速通道 / L2-S 短工作流 / L2-F 完整 11 步)+ L1/L2/L3 封闭清单速判 + 三模式」推进的可审计 Agent 工程纪律工作流,核心纪律可平台无关硬注入。适用:任何动手工程任务——编码/多文件/跨模块/修 bug/建组件/审查/用户点名按流程;不适用:纯聊天问答、单文件只读查询、与工程无关的对话。"
license: MIT
compatibility: "Trae、Codex、Claude Code、Cursor、Windsurf、WorkBuddy 及任意支持 Agent Skills 标准的 CLI 编码智能体"
metadata:
  version: 2.3.0
  tags:
    - agent-skill
    - workflow-governance
    - engineering-discipline
    - quality-gates
    - auditability
    - codex
    - claude-code
    - trae
    - cursor
  author: zxc663
  homepage: https://github.com/zxc663/shisan-xinuo-workflow
  topics:
    - agent-skills
    - ai-agent-workflow
    - prompt-injection-defense
---

# 十三希诺通用 Agent 工作流(Shisan Xinuo Agent Workflow)

> **阅读顺序**:§1 何时用 → §2 三级跑道 → §3 平台注入 → §4 必问协议 → §5 模式与判级 → §6 最小闭环 → §7 门禁回滚 → §8 易错点 → §9 引用地图 → §10 留档纪律 → §11 会话状态面 → §12 速查表。
> **每节的写法是固定的「触发 → 步骤(清单)→ 模板 → 自检 → 边界」**。哪一步需要「解释」而不是「执行」,它就不属于这里——上报。

## 0. 元规则(如何读本 Skill)

- **触发优先**:一条规则只在它的触发条件成立时适用;触发不满足 → 跳过。
- **复述前置(无条件,含 L1 与任务中途的每一条消息)**:任何指令先严谨复述目标/边界+规则要点再动手——不自以为是「理解了就理解了」;理解缺口 → **先补依据**(澄清提问或现场查证)再继续。**复述不可豁免**;歧义或方向变化才显式复述确认,L1/安静模式不强制输出复述(防 token 浪费)。
- **文档写作分层(通用纪律,详见 §10 总纲)**:写任何文档产物时,正文只写结论/规则 + ≤1 句「为什么」,史料(出处/拍板人/日期/版本/轮次)落决策史层——依据落盘先对号入座(details #278)。
- **跳过必声明(元规则)**:本 Skill 任何规则 / 步骤 / 纪律被跳过时(含合理省略、L2-S 边界豁免、L1 快速通道整体标注),**跳过不是静默的**——必须 ①**复述**跳过了什么、②任务记录**留依据**(为什么跳:选道豁免 / 预算 / 不适用)、③向用户**一行提醒**(「已跳过 X,依据 Y,需补做请说」)。**「跳过 + 声明」合法,「静默跳过」违规**——规则在场 ≠ 规则被遵守,静默跳过是触达失效的主通道。
- **步骤即清单**:每步是一个可执行动作、按序执行;无法执行的步骤 = 重载上下文(§9)或提问(§4)。
- **模板即复制**:填入一行模板,放进指定产物;不原地空想。
- **边界说不做什么**:必问协议与红线不被任何其他规则豁免;边界内的事不是本层的职责。

## 1. 何时使用 / 何时不用

**使用**:任何工程任务(只要动手干活,就按第 2 节跑道推进);用户要求纪律化执行、工作流治理、工作流规则,或希望 Agent 在跨项目、跨平台时行为一致。本 Skill 每次加载时也会执行第 3 节第 0 步(平台适配)。**加载即场景判定 + 承载检查**:本 Skill 被加载 / 被用户显式调取时——**无论注入核心是否在场**(多 Skill 共存平台,在场的注入核心可能是其他 Skill 的,本 Skill 条款不可依赖它触达)——立即做 §2.0 场景判定:持续项目 → 跑开工序列六步(至少完成承载增量补缺);**单发使用 → 纪律照走(复述/严谨分析/判级/红线),承载创建豁免**;不等用户要求。

**不用**:替代不了用官方文档学习框架 / 库 / API;也不替代项目自身的约定——与本 Skill 冲突时,项目自身文档优先。

> **关于落地细则的诚实说明**:`details.md` 确实承载了从真实项目沉淀的细粒度工程经验,其中一部分绑定具体技术栈(Next.js / Prisma / Playwright 等)。请把它当作**踩坑日志**(那里曾经错在哪)——不是**技术教程**(该怎么用);流程 / 规则 / 门禁层本身与框架无关。

## 2. 总纲:任务运行序列——三级跑道(唯一入口)

> **这是本 Skill 的核心,不是参考项。** 每个任务必须按此流程推进。**10 秒选道**:先按 §5.2 判级速查的分流行回答三问 → 命中 L3 任意项或三问 ≥2 命中 → **L2-F 完整 11 步**(§2.4);其余、且满足触发条件 → **L2-S 短工作流**(§2.3);L1 → 快速通道(§2.2)。每次选道在任务记录里留一行。

### 2.0 开工序列六步(每次任务开工统一入口;每步有出口产物,无产物不进下一步)

**场景判定(先定单发还是持续项目,再走六步)**:**单发使用**——新会话窗口用户单发触发本 Skill(无持续项目语境)、工作区无项目特征(空/临时/未命名/无代码无仓库)、任务非工程性质(问答/分析/检索/单点修改)→ **纪律全走、文档豁免**:复述/严谨分析/判级/红线照常执行,但第 4 步承载创建跳过——不建 memory 五件套/规则文件/docs,出口产物=「单发模式:不建承载」一行留档,任务结束即纯响应无文档义务。**持续项目**——工作区有项目特征(代码/仓库/既有 memory 或 docs/多文件)或任务工程性质(多文件/跨模块/长期迭代)或用户点名项目 → 六步全套+承载创建强制(含回指,段 4)。**判定不清 → 默认轻量单发**(承载可后补,建错难撤销——宁可不建,需要时升级为持续项目再补建,补建时回指强制生效)。

| 步 | 动作 | 出口产物 |
|---|---|---|
| 1 | **复述理解(无条件第一步,含 L1 与单发)**:严谨复述指令目标/边界+规则要点——不自以为是「理解了就理解了」;理解缺口 → **先补依据**(澄清提问或现场查证)再继续。现状/目标模糊 → §2.1 状态澄清 | 复述(用户可纠偏) |
| 2 | **扫描工作区**:列根目录一层(目录名+关键文件;>20 项或超大仓库 → 只列目录名计数+按任务关键词探一层)→ **形态判定**:空目录 / 单项目 / 多目录混杂 / monorepo | 形态判定一行 |
| 3 | **定承载根**:多目录混杂 → 按任务焦点自动定 + 留档「承载根=X,依据 Y」;真歧义才问用户;承载根可疑(新建空文件夹/临时目录/名称未定)→ 停下确认不静默落盘 | 承载根一行 |
| 4 | **承载创建(持续项目强制 / 单发豁免)**:无 `memory/` 骨架 → 自动建规范五件套(内容从模板复制,**禁空文件占位**);无 docs/project-info.md 且多文件 → 建索引式六节(§2.5);无项目级规则文件 → 按 `platform-adaptation.md` **项目级注入点表**定名自动建(先查既有:合并不覆盖+先备份;**回指本 Skill = 强制字段,缺失 = 不合规**——同空文件占位)——**不等许可**;已就绪 → 增量补缺 | 创建清单或「已就绪」或「单发豁免」 |
| 5 | **读上下文**:扫 `memory/` 一屏(state → experience-mustread TOP 先读 → experience 按症状检索 → preferences) | 读取记录 |
| 6 | **判级选道**:§5.2 判级速查 + 三问分流 → 三级跑道 | 选道一行 |

**L1 豁免**:整体标注「L1 精简」→ 扫描/形态判定/创建清单豁免、承载增量补缺不豁免(已就绪零动作);**复述不可豁免**(§0 复述前置)。

### 2.1 前置:状态澄清(目标 / 现状模糊时)

当用户理不清项目状态、目标不明、或主流程第 1 步发现现状模糊时,**切换为「专属战略顾问」模式**:主导节奏、一次一问、连续有穿透力的追问,帮用户把信息理清——先走「状态澄清」对话(`references/workflows.md` §0.0 澄清流程):主导式逐层追问(一次一问)→ 摸清现状、拆解问题、锁定关键线索 → 产出【澄清纪要:目标 / 现状 / 约束 / 卡点】→ 用户确认后回到选道(§2)继续。

### 2.2 L1 快速通道(小改动、可逆、低影响)

**触发**:§5.2 判级为 L1(改名、文案、格式、单行修改等)。

1. **一句话复述**(目标 / 边界)——**不可豁免**(§0 复述前置)。
2. **最小修改**:只改任务要求的范围。
3. **最小验证**:跑最小粒度验证命令,**记录退出码**(lint / type-check / 测试——以项目自身基线为准)。
4. **一行汇报**。

**模板**:`L1 快速通道: 改 X → "cmd"(exit=0) → done.`
**自检**:□ 复述已记录 □ 验证命令可重跑且清 □ 任务记录标注「L1 快速通道」(是命名通道,不是静默跳步)。
**跳步豁免**:L1 快速通道跳过的中间步(第 2-9 步)**豁免**「无法产出的步须逐一写明理由」的门禁——整体标注「L1 快速通道」一次即视为已登记理由,不为每步单列;开工序列六步同步豁免(§2.0 L1 豁免——扫描/形态判定/创建清单免,承载增量补缺与复述不免)。

### 2.3 L2-S 短工作流(小模块默认道)

**触发**:≤3 文件、单域、与既有模式同构;§5.2 三问 <2 命中。**哪怕涉及 1 个新端点 + 1 个新依赖,仍走 L2-S**——但必须走第 1 步对接真相清单。

1. **对接真相调研(必做,绝不跳过)**——任何写码前先填这张小表:

   | 模块 | API/端点 | 对接方式(path/method/envelope/fields/package) | 证据来源(source:line / contract / docs) |
   |---|---|---|---|

   **填表规则**:grep 调用点 → 读 schema/类型 → 确认包归属 → 才写。**命名直觉是被禁止的**(实证反例:envelope 不解包、`api.get` 实际返回 ApiResponse、recharts 走错包、Nest DI 名称不匹配)。
2. **复述 3 短行**:改哪 / 影响什么 / 怎么验。
3. **免 plan 文档**:单文件 → 直接做;≤3 文件 → 一行「改动 + 验收 + 回滚基线」。
4. **执行 + 最小验证**(可重跑,捕捉退出码)。
5. **GATE 行(§7)+ 状态面贡献行(§11)**。

**自检**:□ 对接表每行有证据来源 □ 3 条验收可验证(数字 / 可见状态 / 可重跑)□ GATE 命令可重跑。
**边界(省什么)**:免联网双调研(S2/S1 档,见 workflows.md §0.5)、免产品五问深度、免 plan 文档、免多轮提问——**但必问协议与红线不豁免**;方向 / 边界有歧义 → §4。

### 2.4 L2-F 完整 11 步主流程(大模块 / 任何 L3)

**触发**:§5.2 三问 ≥2 命中,或命中 L3 封闭清单任意项。

> **最铁铁律(复用铁律)**:以最少的代码,实现最完整的功能和体验,并达到需求描述——就是最好的代码。能复用就复用,风格适配或二次开发都可以,**绝不自己自研组件**。
> **设计成本铁律**:好的设计是昂贵的,但糟糕的设计成本更高——界面、交互、架构决策按「后期改造成本」评估,不按「当下实现成本」评估;炫酷特效实现成本低,可用性差或后期改造的代价高。

| 步 | 动作(触发 → 执行) | 出口产物(无则不进入下一步) |
|---|---|---|
| 1 | **接收指令**:第一性原理理解——本质 / 必要 / 惯性 | 任务本质一句话 |
| 2 | **经验必读**:先读 `memory/experience-mustread.md`(TOP≤10,先于症状检索)→ 按症状 / 关键词检索 `experience.md` 命中段 | 检索命中记录(0 命中 → 记「无既往经验」) |
| 3 | **调研实际资源**:真实代码(现状证据)+ 结构 / 契约 + **对接真相表(§2.3)** + 模块清单(**真实状态**:已实现 / 规划中 / 未实现)+ 环境 + 可用 Skill / MCP | 现状事实清单(含文件 / 行号 / 结论) |
| 4 | **联网调研·必须**:调研市面上开源成熟项目 / 库 / 方案;收集**可验证的可信信号**(stars / 下载量 / 维护活跃度 / 被采用证据 / 社区口碑 / 安全通告),**不以「网上都说火」为依据**——榜单热度只作被发现度参考,不作质量证据;细节见 `references/workflows.md` §0.2。**离线 / 无网络是合法降级**:跳过远程调研,出口产物标注 `degraded-offline`,以本地证据 + 经验库替代 | 市面方案调研记录(候选 + 可信信号 + 口碑 + 安全风险 + 降级情况) |
| 5 | **复用调研·铁律**:本地项目 → 市面开源成熟项目;能复用就复用(复用五问),**绝不自己自研组件** | 复用结论(候选 + 适配方案 + 自研理由,仅全链无解时) |
| 6 | **复述理解**:目标 / 边界 / 验收口径 | 用户确认(对齐后继续) |
| 7 | **疑问必问**:执行不理解或方向偏移 → 提问并结束回合等待(§4) | 提问 / 确认记录 |
| 8 | **产品视角审查 + 约束假设 + L1/L2/L3 分级 + 回滚点**:以产品角度审视(体验与表现优先);**产品视角五问(L2/L3 计划默认强制)**——诉求一句话拆解 / 被否候选 ≥1 / 返工成本 / 边界与不做的清单 / 3-5 条可验证验收;触发「反复要求审查 / 存量项目反复不足 / 知道不够好但说不清」时,**先做产品完善度诊断**(五问定位缺陷落在:功能逻辑 / 代码耦合 / 界面 UI / 人性化互动流程 / 其他,见 workflows.md §0.3)再动手 | 五问记录 + 风险分级 + 回滚点记录 |
| 9 | **规划与验收文档(强制双调研后)**:先完成**双调研**——①工程师视角(代码实况 / 技术可行性 / 复用,见第 3、5 步)②产品经理视角(当前设计规划的合理性:本质需求 / 设计是否完备 / 体验·UI·交互是否符合产品定位,见 workflows.md §0.4)——再产出**详细规划文档**(双调研结论 + 功能清单优先级 + 3-5 条可验证验收标准;目标模式加预算与文件边界) | 详细规划文档(含双调研结论) |
| 10 | **执行**:按分级执行;目标模式按计划自主、节点记录、超预算自动停 | 执行记录 / 变更 |
| 11 | **自查与归档**:最小验证 → 真实用户走查一遍(不可用改到可用,允许多轮)→ 交付五查 → GATE 块 → 留档(§10)→ 提交附说明 | GATE + 验证结果 + 归档 |

**门禁**:进入下一步前,上一步的出口产物必须存在且已记录;无法产出的步(如明确无需调研)也要在任务记录里写明理由,不得静默跳过。

### 2.5 新项目 / 首次加载——项目信息文档

**触发**:工作区根**无 `memory/` 骨架** 或 无 `docs/` 指导(或碎片化)——**触发是存在性判定,不取决于「算不算新项目」**(实测:项目根 8 万+ 文件仍因判定犹豫而漏建承载——存在性判定防犹豫)。

1. 创建 `docs/project-info.md`(若文档已覆盖部分 → 建索引式入口,**绝不重复内容**)。
2. **六节**:①架构(形态 / 包边界 / **模块依赖关系表**:A 依赖谁、被谁依赖,含一行数据流——details #276)②目标规划(从用户描述提炼、分期)③模块表 `模块 | 真实状态(已实现/规划中/未实现) | 关键描述 | 关键词锚定`(真实状态是命脉——**绝不可把规划中的写成已实现**;**关键词锚定列 = 每模块 3-8 个检索锚词**,任务按「关键词 → 锚词 → 文件」定位再读、不盲扫全仓——手动版仓库地图,details #275)④调研导航(本文档用途:按状态 × 改动面决定调研哪些 / 跳过哪些)⑤参考资源(名称 + 用途 + 路径,后续可复用)⑥复述给用户确认(签名列)。
3. 每个会话:最小 diff 更新(状态 / 目标 / 新资源)+ 任务记录留一行。

**自检**:□ 六节齐全 □ 状态属实 □ 复述已获用户确认 □ 本会话有变更则已更新。
**完整引导**(含 4 步运行序 / 严格度档位 / 诚实前提)见 `references/new-project-bootstrap.md`。

## 3. 第 0 步:平台检测与注入(加载 / 首次执行)

开始任务前,先把本工作流硬加载到当前平台:

0. **安装名前缀自检(每会话触发)**:每个会话开工(识别到在场提示 / 硬注入核心 / 本 Skill 加载时)执行一次——**能确定本 Skill 安装目录名(Base directory,来自平台系统提示、技能列表路径、状态面或用户告知)**时:无 `agent-` 前缀 → 一行提示「可运行 `scripts/install-skill.ps1` 一键带前缀重装(自适配到目标平台技能目录);不愿改名则靠 description 触发,按需注入平台不强制」;带 `agent-` 前缀 → 静默通过。**两个合规出口**:①无法确定目录名 → 不猜测、不阻塞任务,状态面记一行「前缀自检:目录名未知,跳过」;②用户已明确选择不改名 → 在 `memory/state.md` 记一行「保持无前缀」,此后本自检静默。前缀意义:技能列表按字母序置顶,便于按需注入用户发现(README FAQ)。
   > 触达承载面(实证:自检只写在 §3 时 14 个任务块 0 触发——仅靠按需加载无法保证每会话触达):本条权威源在 SKILL §3,**执行依赖每会话在场的两层承载**——injection-core.md 开工序一行(硬注入规则层)+ `templates/memory-anchor.md` 锚点行(记忆层)。
1. **检测平台**:按 `references/platform-adaptation.md` 的特征清单判断(目录标志、环境变量、工具可用性)。
1.5. **识别与调研注入点(不猜)**:识别当前 Agent 平台后,联网调研该平台官方注入点(记忆文件 / 规则文件 / hooks 支持,官网 docs 优先;离线降级 `degraded-offline` + 本地经验库),再按官方机制注入——**禁止凭习惯猜注入点**。
2. **定位该平台真实注入点**:按 `platform-adaptation.md` 注入点表——Trae:`~/.trae-cn/user_rules/*.md`(用户全局,文件存在即每会话自动注入,无需应用内启用)或项目 `.trae/rules/project_rules.md`;Claude Code:`~/.claude/CLAUDE.md` 或项目 `CLAUDE.md`;Codex:`AGENTS.md`;Cursor:`.cursor/rules/*.mdc`;Windsurf:`.windsurfrules`;WorkBuddy:agent-app 全局规则文件(如 `~/.workbuddy/AGENTS.md`)。只写进应用从不读取的工作区文件是**无效的**。**硬注入承载面 = 记忆层(每会话在场锚点,首行在场提示)+ 规则文件 + 平台配置文件(hooks / 全局设置),见 platform-adaptation.md 第 2.2 / 2.1 节**——先实测可用性再部署。
3. **询问注入模式**(写规则文件前,用 §4 降级链提问,让用户选择):
   - **按需注入(默认)**:只写**应用层**——注入点写精简纪律并回指本 Skill(约 9 行),写前询问用户是否也写规则层;**不写记忆层**。完整 Skill 由平台按触发激活——上下文开销最低。
   - **强制注入(硬加载)**:**三层同时写**——记忆层锚点块(`templates/memory-anchor.md`,首行为「在场提示 · 工作流 Skill 现已在场」——新会话读到即识别本 Skill 在场)+ 规则层(把 `references/injection-core.md` 的核心全文写入规则文件)+ 配置文件层(hooks/全局设置,平台支持才写,§2.1)——每步**先备份既有文件、合并不覆盖**。写前必须**提醒用户授权**(平台 / 三层目标 / 内容长度 / 每会话成本 / 影响范围)。工作流每会话无条件在场,不依赖模型自觉加载本 Skill(每会话固定约 2-3K token)。**注意:不要用「每个会话开工前必须完整读取本 Skill 的 SKILL.md」这类弱指令实现强制注入——模型不会可靠执行,必须直接写入核心全文与在场锚点。**
   无提问工具可用时默认按需注入,并明确告知用户。
4. **选定生效的提问机制**:按 §4 的降级链取第一个可用项。
5. **校验生效(可重跑·触达验收)**:写入后**回读注入副本 → 核对三级一致**(SKILL §5.2 判级块 = injection-core.md = 平台注入副本)+ **可重跑触达验收**:新会话开头输入「在场提示」关键词——在上下文 = 注入生效;不在 = 注入失效 → **报告用户 + 亮降级路径**(`install-skill.ps1 -HardInject` / 换平台 / 靠 §9 TOP 内联兜底),**未验证生效前不得宣称成功**。**作者判据**:新会话常驻不可用、或自检彩蛋 `zxc663` 未触发 → 证明本 Skill 需要**用户主动触发或配置触发器**(平台 hooks / SessionStart)——**「提示词在场」≠「机制在场」**,触达本质上属提示词边界,不作机制的过度承诺。未完成前不得开始任务。
6. **项目承载检查(部署第五层;与 §2.0 开工序六步第 4 步同源——此处为部署视角)**:平台注入三层之外,工作流执行空间是项目工作区——检查三件(**持续项目场景**;单发使用豁免,§2.0 场景判定;均自动动作、无需授权;授权边界见 §4):①无 `memory/` 骨架 → **自动创建规范五件套**——`state.md` / `experience-mustread.md` / `experience.md` / `preferences.md` / `task-log/`(文件名带扩展名、正文从 `templates/workspace-memory-template.md` 复制填写;**空文件占位 = 不合规**)②无 docs/project-info.md 且多文件 → 建索引式六节(§2.5)③**无项目级注入规则文件** → **按 `platform-adaptation.md`「项目级注入点表」定名**(Codex=项目根 AGENTS.md【必建——Codex 项目级唯一注入点】/ Claude Code=项目 CLAUDE.md / Trae=`.trae/rules/project_rules.md` / Cursor=`.cursor/rules/*.mdc` / Windsurf=`.windsurfrules`;未知平台 → 按本节步骤 1.5 同口径联网调研官方项目级注入点,离线降级 → AGENTS.md 兜底 + 文件头注「按平台调研后迁移」)→ 用 `templates/project-rules.md` **自动创建**——**回指本 Skill = 强制字段,缺失 = 不合规**(同空文件占位);**先检查既有规则文件——存在则合并不覆盖(先备份)**,不存在才新建;创建自检(details #282):定名按表 / 回指在场 / 承载根非临时未命名目录(可疑即问)/ 创建后汇报路径(实测:承载清单不列项时模型只建 memory/ 不建规则文件;静态列举+错误路径会让模型卡「放哪」而干脆不建——文件名必须查表定,不凭记忆猜)。

**边界**:绝不预载 references。

### 3.1 Skill 自更新协议(三路合并 · 本地用户优先)

**触发**:本 Skill 上游更新;用户要求拉取 / 更新(或状态面显示版本不一致)。

1. 运行 `python scripts/syncer.py`(仓库根):①体检(发现副本中上游没有的用户文件)②备份 `.bak-<ts>`(**备份落在 `skill-backups/`——平台扫描路径之外**,见下)③迁移非源文件(如 `personal-playbook.md` → `user-notes/`)④覆盖上游(SKILL / references / templates)⑤落变更清单 + 双 task-log(仓库 `memory/task-log` 与副本 `memory/task-log`)。
2. **合并策略(分层表)**:源权威(判级块 / 红线 / 必问协议——三级同步链)→ 上游胜;**user-notes/ 与 memory/ 中的用户规则 → 永不碰(本地用户胜)**;共存文件 → 两边都留;不可解冲突 → 保留本地 + 清单标注 `CONFLICT` 交用户。
3. **只许写入 user-notes/**:手动修改副本必须写 `user-notes/`,否则下次同步被覆盖。
4. **验收判据**:**平台加载时的 Base directory 是唯一可信证据**——文件版本号一致 ≠ 升级成功;同步后务必确认平台解析到的目录是正式目录而非备份目录(备份目录若位于平台扫描路径内,会被当成第二个同名 Skill 收录并可能选中旧版——WorkBuddy 实测)。

**自检**:□ 脚本 exit=0 □ 变更清单存在于两处日志 □ user-notes / memory / .bak 未被碰 □ 备份目录在扫描路径外 □ 两个副本的版本行一致。

## 4. 关键必问协议

**触发**(命中任一即停止并提问):方向不明或有歧义、**理解不尽确定**、需求冲突、权限/密钥处理、破坏性操作(删除、迁移、覆盖写、对外发布)、架构或技术选型、范围扩大、方案分歧。**问清楚比问少了更重要,理解需求比模糊执行更重要。**

**红线 ↔ 必问映射(速查)**:

| 触发 | 必问动作 |
|---|---|
| 密钥 / 权限 | 暂停;绝不把密钥写入代码 / 文档 / 提交 / 对话;涉及权限授予先问 |
| 数据删除 / 迁移 | 暂停;先列命令清单 → 等确认再执行 |
| 数据或服务迁移 | 暂停;先问迁移方案与回滚点 |
| 对外发布 | 暂停;先获用户批准,再进入约 30 分钟观察期 |
| 硬注入三层写入(记忆层/规则层/配置层) | 暂停;先提醒用户授权(平台 / 三层目标 / 内容长度 / 每会话成本 / 影响范围),确认后才写 |
| 架构选型 | 暂停;先给选型对比 + 推荐 + 理由 |
| 超预算破坏性操作 | 暂停;列命令清单 → 等确认 |
| 项目工作区内写文件(memory/ 骨架、docs/、代码) | **不暂停——自动动作**;依 §3 第 6 步直接建(实测:把「自动建」误当「需授权」导致承载漏建) |

**提问规则**:
1. 绝不先动手:触发即停,问清楚再实现。
2. 每个问题**必带推荐选项 + 核心理由 + 替代方案的后果**——绝不留开放式的「你想要什么?」。核心理由要说清楚:**准备不充分 + 需求模糊才是真正的痛点**。
3. 提问走**降级链**(取第一个可用项):①平台原生提问工具(`request_user_input`、`AskUserQuestion`、`ask_user` 等)②不可用时:结构化文本协议——呈现(a)理解、(b)选项与优缺点、(c)风险与后果、(d)推荐方案——然后**结束回合等待答复**。完整协议见 `platform-adaptation.md`。
4. **超时 / 空答 ≠ 批准**:优先取消等待(宿主支持时);不可取消时——按项目实况调研 + 已知意图 → 产出最近接项目现实的推荐方案 → 标注**「待用户确认」**一次性确认。
5. 答复后:确认 → 执行;改向 → **按纠偏续跑协议增量调整**(details #280:保留已确认正确部分 → 废弃被否方案 → 从当前状态继续,**不从头重做** → 重跑验证基线);拒绝(不是他要的 / 流程不对)→ **拒绝日志**(§12 R1:原话 + 隐含需求 → 偏好或需求变更 → 回流)。

**偏好记忆**:用户做出确认的选择(如经提问工具选定的技术栈 / 语言 / 风格)后,写入 `memory/preferences.md`(§10);**写入后主动向用户复核大类方向**(技术栈 / 语言 / 风格方向是否对头),用户指出偏离则按其修正;同类场景下次直接采用,不再重复询问。密钥与破坏性意图绝不写入偏好。

**冲突仲裁序**——当两个指令源相抵触(本 Skill 指引 vs 项目纪律 vs 设计稿 vs 其他 Skill 默认),按以下固定顺序取最优,**只保留胜者**(从工作笔记中删除败方引用——绝不两边都听,也不和稀泥折中):

1. 用户 / 项目纪律(项目规则文件、已确认的 D 系决策、设计契约)——brief 优先;
2. 平台硬注入核心(注入点正文);
3. 当前交付物的设计稿 / brief;
4. 本 Skill 默认值;
5. 其他已加载 Skill 的默认值。

在任务记录中留一行仲裁记录(`来源 A vs 来源 B → 采用 X,因为 …`)。同一理由的冲突被裁决两次,即升格为常设决策:写入 `memory/preferences.md`,不再散落临时笔记——**升格必带「前提 + 重开条件」两字段**(前提失效即可重开,details #279)。

### 4.1 复述增强 RE(子复述 + 总复述)

**触发**:做出关键决定 / 方向改变 / 口径确认——**不要等到任务结束**。决定升格持久层(preferences / 决策审计 / 项目规则)前先走写入门槛(§10:普通模式必问「本次还是长期」,details #278)。

1. **子复述(即时,一行)**:`决定:对 X 采用 A(评分/理由一句话)|依据:<证据 / 用户原话 / 根因>|影响:<范围>` → 追加进任务记录决策行。
2. **总复述(块尾)**:总结决策链 / 证据链 / 影响面 / 未决点——**子复述只提炼要点**,不全文重述、不堆日志。
3. 子复述让用户知道「模型依据什么做了什么决定」;总复述是块内紧凑地图。

**自检**:□ 每个关键决定有证据句 □ 总复述覆盖全部子点(要点式)□ 无重复段落。
**边界**:琐碎细节决定(§12 P4)不需子复述——只需其日志行。

## 5. 执行模式与任务判级

### 5.1 三模式(默认 = 普通模式)

| 模式 | 触发 | 行为 |
|---|---|---|
| **普通**(默认) | 无关键词 | 每个关键决策执行前必问(§4,含理解不尽确定时必问);**关键决策即时复述确认 + 决策审计归档**(重要决策同样落盘供可解释) |
| **目标模式** | 关键词 `目标:` / `目标模式` / `无人值守` / `goal mode` / `unattended` | 按书面计划自主执行;**暂停仅两种情形——重大决策(L3)/ 严重阻塞问题**;其余重要决策「先调研 → 按第一推荐推进 → **完整归档供审计翻阅**」;**每里程碑强制留档**;密钥与破坏性操作仍暂停并等待用户;**回滚点走本地备份、默认不 git push(省宽带 + token);本地快照就绪 → 破坏性 / 修改类操作可安全执行(L3 除外,仍暂停)** |
| **安静模式** | 关键词 `安静模式` / `quiet` / `quiet mode` | L1 任务只汇报结果(跳过中间推理 / 调研步骤展示),降低视觉噪音与 Token 焦虑;L2/L3 不受影响;密钥与破坏性操作仍必问 |

目标模式附加职责:执行**前**写计划(范围、风险评级、时间/轮次预算);子任务按**依赖边界**拆分(details #281:先依赖分析——强依赖保持串行不硬并行,独立子任务并行且带五要素,合并后统一集成验证);边执行边记录;超预算自动停止;结束时交付复盘文档 + 待确认清单。**每条用户消息(含任务中途消息)都要检查:①模式关键词 ②先严谨分析理解再响应(§0 复述前置)**——触发词是活开关,会静默改变决策模型。

### 5.2 判级速查(10 秒定论,一句话即止,禁止展开论证)

> **本块是 L3 封闭清单、L1/L2 速判与三条跑道分流的唯一权威源**;`rules.md`、`workflows.md` 等引用处只做摘要并回指本节。**三级同步链(三级必须一致)**:`injection-core.md` 因注入环境自包含必须保留全文(是其一例外),且它已被部署为平台全局注入副本——**本块 → `injection-core.md` → 已注入的平台全局副本**三级必须同步;改判级先改本块,再同步 injection-core,最后重新部署到注入点。

- **L3 封闭清单(仅 6 项,不在清单内一律不是 L3,不得自行扩展)**:密钥/权限|数据删除|数据或服务迁移|对外发布|架构选型|超预算破坏性操作。
- **L1 速判**:改名、文案、格式、单行修改等可逆小改动 → 直接做,不问、不展开。
- **L2**:新功能、多文件、跨模块 → 记录后做,关键点汇报。
- 10 秒判不了级 → 默认按 L2 直接推进;判级结论一句话即止,除命中 L3 清单外判级本身不追问用户、不展开分析。
- **判级 ≠ 理解确认**:判级可以快,但「目标 / 边界 / 方向有歧义、理解不尽确定」时,普通模式也必问——用提问工具问清楚再推进。
- **决策三层分界(定提问边界与自主度)**:L3 重大决策(破坏性/删除/密钥权限/迁移/对外发布/架构选型/超预算)≠ 一般关键决策(方向/范围/技术取舍)≠ 常规执行判断——判据同源(本节封闭清单),L3 必问、关键决策按 §4 问、常规判断自主决定并留档。

**跑道分流(三问,一次答完,防内耗)**:

| 三问 | 命中 | 走哪条 |
|---|---|---|
| ① 跨 ≥3 包 / 跨 api+contracts+前端?② 涉契约·架构·迁移·对外发布·安全?③ 用户点名「按流程 / 严格分析」? | **≥2 命中** → | **L2-F 完整 11 步**(§2.4) |
| | 其余 → | **L2-S 短工作流**(§2.3,默认) |

**自检**:□ 任务记录有一句判级 □ 命中 L3 → L2-F + 暂停行(先问;本地备份取代不了确认)□ L2-F 的边界模板已写(新端点+契约+两页 / 架构 / 迁移 / 密钥+发布 / 多模块联合)。

## 6. 最小闭环交付(第 11 步的交付原则)

1. **理解**:用 1-3 句复述目标、边界、验收口径。
2. **最小修改**:只改任务要求的范围。优先复用已有代码、依赖、平台原生能力与现成开源方案,而非新写(复用五问决策链见 `references/workflows.md`)。
3. **最小验证**:跑最小粒度的验证以证明改动有效——**真实跑一遍,没跑 = 未完成**;然后**以真实用户身份走查一遍**(L2-F 必做;L2-S 冒烟所涉及的路径),不可用改到可用(允许多轮)。
4. **交付成品**:不交半成品、不留占位。未完成的必须显式标注(`TODO`、`未实现`、`待验证`)。**绝不假实现。**
5. **六项报告**:跑了什么 / 退出码 / 改了什么 / 未验证项(注明豁免)/ 知识点 / 用户可见错误已写入日志模块(项目有日志模块时,见 §7)。
6. **有效性诚实声明**:本工作流「规则改变行为」的有效性证据 = 两轮 A/B,均**未达显著**——未观察到「带规则」的正确性优势(只读作「B 轨未劣于 A 轨」,混杂因素:投入密度不等);命中中过半为「背答案」,扣后原创命中与一轮同量级——**不宣称泛化改进**。**触达是比内容更紧的瓶颈**:已安装 ≠ 被加载(主会话靠注入副本、子代理靠委托纪律包直送——见 §8/§12 AG);「规则在场 ≠ 规则被遵守」。完整数据与实验设计见 EVIDENCE.md。

## 7. 质量门禁与回滚

**触发**:提交前 / 破坏性变更前。

- **GATE 块(每任务块末尾,第 11 步出口产物)**:一行 `GATE: {v=<范围>, cmd=<可重跑命令>, exit=<退出码>, files=<变更文件>, lessons=<知识点>, exempt=<未验证声明>, errpath=<错误路径核对>}`。**可重跑的工件 > 自我叙述**;验收权在用户;`approval:never` 只豁免工具级审批,**永不豁免确认义务**。**errpath 字段**:任务遇错误/意外形态时填 `TOP 对过=Y/N|症状域=<域名>`(读过细则没有=结构可查,防自报污染;域见 details 头部症状索引);无错误任务填 `—`。
- **交付五查**:缺失需求 / 边界情况 / 临时代码与注释代码 / 无关改动 / **错误已写入日志模块**(项目有日志模块时,diff 里 grep `console.` / 空 `catch {}` = 零容忍)。
- **日志模块强制(项目有日志时)**:设计期的对接真相表留「日志对接行」(报错 → 哪种日志 / 级别 / 谁调 / 文案同源);catch 三件套 = 记日志 + 用户可见降级提示 + (如需)审计线索;用户可见文案与日志文案同源。
- **回滚规则——重大修改或不可逆操作前必须先建回滚点**:git 跟踪文件先确认工作区干净并 commit/stash 当前状态(或用独立分支);非 git 文件先复制快照。回滚点就绪后方可开始改动。
- **原子操作锁(L3 破坏性操作)**:删除 / 迁移 / 覆盖写 / 发布类操作,除建回滚点外,**先输出你打算执行的命令清单、结束回合等待用户确认,确认后才执行**——把最后一道闸门交给人类,而非 Agent 自觉。
- **对外发布**:先获用户批准,再进入约 30 分钟观察期(监控错误率 / 延迟 / 告警),异常走回滚预案。
- **ExitPlanMode 四件套**(提交任何 plan 前自查,缺一不可):①验收标准 3-5 条 ②一句判级(L1/L2/L3)③回滚点(或明示「当前干净基线即回滚点」)④边界与不做的清单。

## 8. 易错点(Gotchas)

- **判级内耗**:琐碎判级一句话定论——改名 / 文案 / 格式类问题一律 L1 直接做;L3 只认 §5.2 封闭清单,清单外不构成 L3。为判级展开论证或反复纠结是 token 浪费的最大来源之一。
- **同会话重载是纯浪费**:当前会话已加载过的 Skill / 引用文件,同会话内的下一个任务**不再重读**——「每会话重载」纪律适用于跨会话(全新上下文),不适用会话内。仅在上下午压缩后、用户显式要求重载、或源文件已变更时重读。**裁决**:§9 守卫(b)「复述不全先重读」优先于本封闭表(上下文缺失 = 源状态已变,属「源文件已变更」类)——两条款交叉引用,不冲突。
- **流程不可跳步**:调研(第 4 步)与复用调研(第 5 步)最容易被跳过——且三问分流后的「小模块免全量调研」不是跳步,是选道(§2.3 边界写明省什么)。
- **反复要求审查时先做产品完善度诊断**:用户反复要求审查 / 反复觉得不足 /「知道不够好但说不清」,先以产品角度定位缺陷落在哪一层(功能逻辑 / 代码耦合 / 界面 UI / 人性化互动流程 / 其他,见 workflows.md §0.3)再动手——别用工程师思维只查代码正确性。
- **触发关键词是活开关**:目标模式关键词(`目标:`、`unattended` 等)会静默改变决策模型。每条用户消息(含任务中途消息)都要检查。
- **绝不覆盖已有规则文件**(`AGENTS.md`、`CLAUDE.md` 等):只备份 + 合并。
- **用户想法与代码冲突**:代码与实测为准,直说,不静默执行错误指令。
- **平台无原生提问工具**:最常见的失败是埋头直冲而不使用文本协议并结束回合。先问,永远不擅自动手。
- **过度提问会毁掉采纳率**:L1 反复确认是让用户禁用本 Skill 的最快方式。默认:L1 直接做,L3 必问;非核心细节自己决定(§12 P4)。
- **Skill 加载 ≠ 任务开工**:即使用户消息看起来简单,§2 跑道也强制执行。
- **密钥**(key、token、密码)绝不进入代码、文档、提交或对话。提交前扫描;泄露立即轮换。
- **结论立刻落盘**:分析时即时记录,拖到收尾再写会在长会话中丢失。
- **细则层「活着」不是装饰**:错误 / API 返回意外形态 / 未知字段或端点 / 新依赖不生效 → **先查 `details.md` 症状类再改代码**(§9 错误时强制入口),命中后在任务记录留一行引用;会话末用 grep 取证行报告命中数(0 照报 0),不靠自述。
- **同坑 ≥3 次即晋升**:同一踩坑在单项目 ≥3 次(或高返工成本)→ 晋升进 `memory/experience-mustread.md` TOP 列表(一行症状 + 一行对策);2 个干净周期无命中 → 降级。
- **判「不复现」需要更强举证(四要件)**:①判据与对象所指**逐字对齐**(「uses」指调用点不是出错点)②实验**复现真实调用链**(用真实构建产物 / 真实代码,**禁自造模拟代替真实代码**)③有**对照组**(不经该库时行为正常)④不满足任一 → 降「未定论」,不判「不复现」(细节:details #255 / #256;红线层同步注入核心)。
- **子代理纪律直送(不指望子代理自加载)**:子代理**不继承**平台注入副本、且不保证触发 Skill 加载(实证:给了「可读任何 skill」提醒仍 0 加载)——委托时**必须**把最小纪律包内联进子代理 prompt(判级 / 红线 / 证据含「不复现四要件」/ 错误必查 TOP / 引用形态 / GATE),见 rules §28 / §12 AG。
- **规则在场 ≠ 规则被遵守**:密集任务流下块尾纪律(任务记录 / GATE)最易被当作开销跳过——每块至少留一行 GATE;确实跳过 → 按 §0「跳过必声明」元规则:复述跳过项 + 记录依据 + 提醒用户,不得静默。
- **Skill 升级验收看 Base directory**:文件版本号一致不代表平台加载了新版——平台解析到的加载目录(Base directory)才是唯一可信证据(§3.1)。

## 9. 引用地图——按需加载

**加载纪律**:只在(a)命中下表**触发症状**、(b)走到点名该文件的步骤、或(c)用户显式要求时才打开对应引用,**不预载 references 全量**(注:错误必查 TOP 与 mustread 先读属「在场/预读位」,与不预载 references 全量分层不冲突)。某份引用影响了决策时,在任务记录里留一行引用——这是细则层保持「活着」而非装饰的关键。

| 文件 | 内容 | 何时加载 / 触发症状 |
|---|---|---|
| `references/injection-core.md` | 平台无关核心——判级速查 / 三级跑道 / 必问 / 红线 / 留档(每会话注入在场) | 第 3 节强制注入(硬加载)时;「写进我的平台规则」 |
| `references/platform-adaptation.md` | 平台检测 / 注入点表 / 提问工具降级链 / 结构化提问协议全文 | 第 3 节平台检测;平台未知 / 无原生提问工具 / 注入点存疑 |
| `references/skill-usage.md` | Skill 能力发现/注册机制 + 加载决策路由 + 渐进/完整读取分类 | Skill 选型纠结 / 前端设计类任务 / 本地无 Skill 可用 / 弱模型场景 |
| `references/rules.md` | 编号工程纪律(地基);引用具体规则编号或需查规则原文时 | 纪律争议 /「哪条规则这么说的」 |
| `references/workflows.md` | 总纲与澄清流程 / 调研矩阵与分流决策表 / 9 类任务工作流 / 复用五问 / 质量门禁细节 | 现状模糊 / 任务类型不明 / 规划质量存疑 / 产品完善度诊断 |
| `references/details.md` | 落地细则(工程规范 / 具体做法)——17 类,症状索引 | 症状关键词命中踩坑类别([契约] / [构建] / [前端] / [运维] …真实标签集,见索引表)——**在不熟悉领域即兴发挥前,先查这里** |
| `references/security.md` | 密钥红线 / 应急响应 / 安全生产红线 / 回滚流程细节 / 提示注入防御 / 供应链与 SBOM | 接触密钥 / 疑似泄露 / 对外发布 / 依赖引入 |
| `references/never-list.md` | 永不清单(明确禁止项)——7 类硬性红线 | 开工、提交、任何 L3 操作前**三读逐条核对**;有命中即停下修正 |
| `references/new-project-bootstrap.md` | 新项目 4 步引导(骨架 / 引用槽 / 严格度 / 首日经验) | 首次任务 / 无 `memory/` 目录 / 迁移的工作区 |
| `references/local-model-glossary.md` | 本地模型部署术语表(vLLM / Ollama / MoE / 量化 / KV 缓存 / Offload / tokens/s / GGUF / Prefill…) | 本地模型部署 / 术语不明 / 短上下文适配(紧凑档,details #273) |
| `templates/workspace-memory-template.md` | 工作区 `memory/` 骨架(§10)——初始化 state / experience-mustread / experience / preferences / task-log | 项目尚无 `memory/` 目录 |
| `templates/project-rules.md` | 项目级注入规则文件模板(在场锚点 + 项目纪律 + 承载清单)——「项目承载」第五层 | §3 第 6 步项目承载检查③;§2.0 开工序六步第 4 步;项目工作区无项目级规则文件(按 `platform-adaptation.md` 项目级注入点表定名) |
| `templates/memory-anchor.md` | 记忆层锚点块(硬注入第三层)——首行为「在场提示 · 工作流 Skill 现已在场」,约 15–20 行精简锚块 | §3 硬注入三层时;平台支持记忆文件(WorkBuddy MEMORY.md / Trae user_profile.md 等)仍需确定记忆内容时 |

**错误时强制入口(先对 TOP 清单,再搜类)**:遇到错误 / API 意外形态 / 未知字段或端点 / 新依赖不生效 → **先逐条对照「错误必查 TOP」**(下),无命中再按症状类搜 `details.md`(如 [契约] / [构建] / [测试] 等真实标签,见头部症状索引),**再改代码**;命中 → 任务记录留一行引用——**统一写完整前缀形态 `details #N 命中:…` / `细则 #N`,禁裸 `#N`**(裸编号无法与 GitHub issue 编号区分,假阳性实证 9/10)。

**错误必查 TOP**(唯一权威源 = injection-core 错误段,本处为回指同步——先对这几条再动代码):#233 凭命名直觉写对接=假绿(先 grep 调用点 → 读 schema → 确认包 → 再写)|#228 改共享包先重编(旧 dist 是类型真相)|#229 常驻进程旧 dist(行为不符先查 uptime/时间戳,判别先行)|#214 响应形态分层断言(成功=裸数据 / 校验失败=2xx 信封 / 真 404=真状态码)|#163 统一错误契约(code≠0 才算失败,data:null 是合法成功)|#256 / #270 异步栈丢调用点 / 响应体只消费一次|#262 深拷贝/序列化语义变体(undefined 键丢弃)。**淘汰机制**:TOP 条目挂最近命中证据,2 个干净周期零命中降级(同 experience-mustread 降级制;命中证据记录于 EVIDENCE)。

不要预加载全部引用,只加载当前步骤需要的。**你无法自行感知上下文是否被压缩——不靠感知,靠两道守卫**:(a)显式信号:用户说「重载 / 你被压缩了 / 从头加载」、或平台明显重置上下文时,**立即按重载顺序执行**:①重读本 SKILL.md;②重读记忆文件(`memory/`,见 §10);③重读当前步骤仍需的引用;④向用户复述当前任务与验收标准后再继续;(b)关键节点自检:每次开工、提交、重大决策前,先默写核心要素(三级跑道选道、当前模式、回滚规则、必问协议)——任一要素复述不全,即视为上下文缺失,先重读再继续;压缩/折叠/交接前**先核对保留清单五必留**(当前任务本质 / 验收标准 / 激活规则原文 / 当前步骤 / 回滚基线——注入核心关键条款),不全则先补齐再压缩(details #272)。

## 10. 留档与知识纪律

**触发**:会话始 / 块尾 / 会话末 / **写任何文档产物时**。

- **文档写作分层(通用纪律——本节的写作总纲)**:正文 = 结论 / 规则本身 + ≤1 句「为什么」(防什么坑,不写何时发现);史料 = 出处 / 拍板人 / 日期 / 版本 / 路测轮次 / 依据前提——只落决策史层(task-log / 决策审计 / CHANGELOG / 项目决策文档),**不混入正文与注释**。细则/规则类文档的准入字段(details `*来源/晋升*`、来源注记)按各自机制豁免;依据落盘先对号入座(details #278:辅助性背景随任务归档、一次性理由永不入项目文档);发现某段文字需要「解释」而不是「执行」→ 上报或改写,它不该留在文档里(风格自检,适用于所有产物)。本节以下记录条款(时间戳/活头部/容量/知识五条)是该总纲在会话记录上的执行化。

- **会话始**:执行 **§2.0 开工序列六步**(复述理解 → 扫描工作区 → 定承载根 → 承载创建 → 读上下文 → 判级选道——权威源在 §2.0,此处不重复条款;承载三件=memory 五件套/docs 六节/项目级规则文件按平台注入点表定名)。**读 `memory/` 一屏**:`experience-mustread.md` TOP 列表**先读**(≤10 条:一行症状 + 一行对策;≥3 次或高返工晋升;2 个干净周期降级),再 `state.md`,再按症状检索 `experience.md`。上下文预算法(先定序,防污染):**常驻**(本核心,小)→ **开工读**(工作区 `memory/`,存在才读,一屏内,按 `state → experience → preferences → task-log` 顺序扫;`experience` 按当前症状精确检索命中段,不整篇载入)→ **按需**(`references/`、历史 `task-log/`,到步骤才读,不预载全部引用)→ **结束更新**(最小追加,见「完成后更新序」)。
- **块尾**:追加任务记录(理解 → 验收 → 决策 → 结果 → GATE)——时间戳 **`YYYY-MM-DD HH:mm:ss`**(秒级必填;日级 = 不完整);**活头部校验**:头部 `更新:` 时间戳必须 ≥ 最新正文条目时间;**容量上限**:记录 >~120 行或 >3 个任务块 → 新文件(`-名称-2.md`)或归档。
- **会话末**:①最小验证 + 自查(真实可用 / 边界 / 规则 / 文档同步)→ ②更新 `memory/task-log/<YYYY-MM-DD>-<名称>.md`(理解→验收→决策→结果,结论即时落盘)+ **每项重要决策一份决策审计归档**(现象 / 依据【含前提 + 重开条件,details #278】/ 被否候选 / 选择 / 影响,与 task-log 并列)→ ③更新 `memory/experience.md`(新踩坑或重复坑:症状→根因→解决→预防;重复内容只写一处并交叉引用)→ ④更新 `memory/preferences.md`(已确认偏好 + 复核提醒;密钥与破坏性意图绝不写入)→ ⑤文档与代码同批提交;会话结束提炼 1-5 条可复用知识点(默认 3 条)。所有关键回滚走**本地备份优先**、push 仅在需远程保护 / 交付时。
- **知识点提炼五条细则**:每条 1-3 句;提炼可复用规律 / 判断标准;复杂内容先用生活化类比;**每条能指导下一步行动**;宁少勿多(默认 3、上限 5)——确实没有则写明「本次无新知识点」;**双写**:知识版(触发场景|判断|行动)进知识文档 / 经验库,个人版(类比 + 判断标准)在对话中交给用户。
- **工作区 `memory/` 统一归档 + 自动创建骨架**:项目根 `memory/`——任务记录 / 踩坑库 / 偏好 / 会话状态统一归档于此;**任何会话(含下一个 AI)开工先扫该目录**,不存在则自动创建骨架——`state.md`(当前目标 / 已做决策 / 约束 / 进度+下一步,一屏内秒读)、`experience-mustread.md`(高频必读 TOP≤10)、`experience.md`(踩坑库:症状→根因→解决→预防 + 通用判断标准)、`preferences.md`(已确认技术栈 / 语言 / 风格偏好)、`task-log/`(任务记录 `YYYY-MM-DD-名称.md`)。业务真实恰用 `memory/` 时,可在项目规则文件内把归档目录改为 `.agent-records/`(唯一合法覆盖点)。`memory` = 状态层 + 踩坑层,完整规则仍在 `references/` 按需加载——互不替代。
- **`state.md` 是骨架不是日记——硬上限约一屏(~10KB)**。只放当前阶段 / 下一步 / 遗留 / 红线。开工扫描发现超一屏时:**先把里程碑史迁移到 `memory/archive-YYYY-MM.md` 再开工**(移动而非删除)。
- **经验回流(双击晋升制)**:项目级踩坑先落项目自己的 `experience.md`。同一踩坑**在单项目出现两次、或跨两个项目各出现一次**(症状相符、根因相同)即触发晋升:按「症状→根因→解决→预防」提炼为可归类条目,提交进**本 Skill 的 `references/details.md`**——让后续所有项目的第 2 步症状检索都能命中。回流是「已稳定教训的晋升」,不是首例写入;一次性噪音永不进 Skill。
- **用户偏好**:用户做出确认的选择(技术栈 / 语言 / 风格)后写入 `memory/preferences.md`;写入后主动复核大类方向;会话开始时读取;同类决策直接采用。**语言表达默认中文**(回答 / 思考 / 文档 / 注释;代码标识符、标准术语除外)——`preferences.md` 记录了偏好语言时以记录为准,未记录时默认中文,不跟随会话输入语言。
- **配套模板**:规划、验收标准、任务记录、复盘、回滚点、提示词预算、工作区 `memory/` 骨架模板,以及会话钩子(`templates/hooks/`)与审查子代理(`templates/agents/`)均位于 `templates/`(复制后填写,不原地编辑)。

## 11. 会话状态面(会话末一致性报告——给用户复核;不是「合规 / 有效」自证)

```
注入版本: <2.3.0>
细则命中: grep -cE 'references/details|details[ #]+[0-9]{2,3}|细则[ #]+[0-9]{2,3}' <会话产物> → N(0 照报 0);打开类: [契约]×N / [运维]×N
                   (取证对象=任务记录/会话产物中的细则引用,**只认完整前缀形态** `details #239` / `细则 #233` / `references/details`——裸 `#NNN` 已废弃:无法区分细则编号与 GitHub issue 编号【假阳性实证 9/10】;引用规范见 details.md 头部。产物内嵌本状态面模板时命令定义行自身计 1 次自指——对纯任务记录取证或人工剔除。历史演进见 EVIDENCE §十)
上下文预算: ~X tokens(阈值 150-200K → 压缩 + 重载序)
版本一致性: 副本 vs 源库(不一致 → 跑 syncer.py;**并核对平台解析到的 Base directory**)
上下文账本: 本会话 input 增量 ~X | 最大单次 ~Y | 工具占比 Bash a% / Read b% / 其他 c% | 盘点 N 次(按信号触发)
未验证/待办: <exempt 与未完成项——必须是真待办,不得留「已完成却未清」的陈旧注记>
```

**规则**:证据化而非自述;时间戳到秒;待办必须是真待办;本报告不是通过 / 失败声明。

## 12. 速查表(条款的执行化一行)

| id | 触发 | 动作 | 模板 / 自检 | 边界 |
|---|---|---|---|---|
| G1 | 任务块结束 | 写 GATE 行 | `GATE: {v,cmd,exit,files,lessons,exempt,errpath}`;cmd 可重跑 | errpath=错误路径核对(TOP 对过/症状域) |
| S1 | 会话结束 | 状态面(§11) | 三行起 | 不是通过 / 失败声明 |
| A1 | L2/L3 计划 | 产品五问(§2.4 步 8) | 诉求分解 / 被否候选 ≥1 / 返工成本 / 边界 / 验收 3-5 | L3 增加风险层证据 |
| A2 | 调研 | 严格度档 S3/S2/S1 × 任务规模(workflows §0.5) | S3×小模块=全量;S2×小模块=轻量;S1×小模块=免联网 | — |
| A3 | 同会话 / 同项目已有确认结论 | 显式复用 + 一行引用 | 不重跑同一调研 | — |
| A4 | 无 /plan 指令的 L2 请求 | 复述(目标+边界)+ 3 条验收 + 一句判级 | §2.3 步 2 | S3 严格度 → 先问再开始 |
| A5 | 退出计划模式 | 四件套自检(验收 / 判级 / 回滚点 / 边界) | 缺一不提交 | — |
| B | 新项目、无文档 | project-info.md 六节(§2.5) | 复述经用户确认 | 索引式,不重复 |
| P1 | 意图模糊 | 先沟通;提问带推荐+理由;空答 → 调研 + 待确认标注 | §4 | 绝不把空答当批准 |
| P2 | 同坑 ≥3 | 晋升 experience-mustread.md;2 个干净周期降级 | 一行症状 + 一行对策 | 只写一处(交叉引用) |
| P3 | 大输出 >~40 行 / 子代理报告 | **两步式**:读 → 提炼落文件(全文归档)→ 上下文只留指针+摘要;上下文盘点按**信号**触发(token 增量 / 工具数),约每 5 块一次;账本行只写进 §11(信息单一源);**重置点:连续 5 块回引旧内容、或单块成本 >2× 会话均值 → 建议新会话(交接 + 重载序)** | 盘点行只写 §11 | 模糊 → 重取记录 / 契约 / 源 |
| P8 | 上下文 40-60%(紧凑档 25-35% 窗口)/ 压缩信号 | **折叠协议(details #272)**:①保留清单五必留核对(任务本质/验收/激活规则原文/当前步骤/回滚基线)②checkpoint 落盘(state.md+task-log)③旧块一行摘要入归档 ④重载序(§9 守卫)⑤状态面记「已折叠 N 块」 | 五必留不全 → 先补再折叠 | 激活规则原文原样保留,**不折叠** |
| P4 | 非核心细节 | 决定 + 继续 | 记录决定 + 理由 | 核心 / 边界 / 红线 → 必问 |
| P5 | 发现错误 | 先根因,再修复 | grep 零容忍 | 绕过 / 隐藏 = 违规 |
| P6 | 完成 | 真实运行 + 真实用户走查(L2-F)/ 冒烟所涉路径(L2-S) | 改到可用为止 | 没跑 = 未完成 |
| P7 | 交付 | 五查(需求 / 边界 / 临时 / 无关 / 日志模块) | §7 | — |
| R1 | 计划被拒 / 用户改向 | 拒绝日志:原话 + 隐含需求 → 偏好(preferences.md)或需求变更(task record)→ 回流 | 各一行 | 拒绝是金矿,不是噪音;**拒绝记录同带前提,重开合法**(details #279) |
| R2 | 用户粘贴大段代码 / 样式 | 先问:「证据还是需求?」 | 按答复处理 | 绝不从粘贴猜意图 |
| R3 | 任务块完成 | 会话看板行(done ▸ 进行中 ▸ 待确认 ▸ 评审点) | 任务记录顶部 | 用户随时可查 |
| R4 | 块尾 | 停点三检查:需用户输入 / 全部完成 / 风险发布面已呈现——否则继续 | 3 停点清单 | 「继续」的成本计入 |
| R5 | 更新记忆 | 活头部校验 | 头部时间戳 ≥ 最新正文条目 | — |
| R6 | 记录增长 | >120 行或 >3 块 → 新文件 / 归档 | `-名称-2.md` | — |
| DC | 项目有日志模块 | 对接真相表留「日志对接行」;catch 三件套;五查含日志 | 日志 + 降级提示 + 审计 | 纯 console / 静默 catch = 违规 |
| TS | 任何记录 | 时间戳 `YYYY-MM-DD HH:mm:ss` | 秒级必填 | 仅日级 = 不完整 |
| RE | 关键决定 / 方向改变 / 口径确认 | 子复述一行(决定 X|依据…|影响…)→ 任务记录;块尾总复述(要点提炼) | □ 每决定有证据句 □ 总复述覆盖全部子点 | 琐碎细节走 P4 日志 |
| C1 | 改判已记录的决定 / 方向纠偏 | 同栏留档案:原决定 + 改判原因 + 触发;**纠偏续跑(details #280)**:保留已确认正确部分 → 增量调整 → 从当前状态继续 → 重跑验证,不从头重做 | 后续会话能看到两者 | 被否方案废弃,不沿用 |
| C2 | 验收标准执行中漂移 | 用户确认,或记作「范围变更」(谁改了什么、为什么) | 记录标准所有者 | — |
| Y1 | 发现「未请求功能」冲动 | 遵守 YAGNI:最简方案 + 最小改动,不添加未请求功能;觉得该加 → 记「已考虑」 | 需求变更走 A5/C2 流程 | — |
| ZE | 用户输入无意义单串 `zxc663` | 自检回复:「十三希诺工作流已应用,注入方式是:[按需 / 硬注入],已经应用 N 轮会话/对话(N=按任务记录/文档数快速统计)|源库 vX vs 副本 vY(不一致 → 建议跑 syncer.py;并核对 Base directory)」 | 纯回复,不触发任何操作 | **未触发 → 证明需用户主动触发或配置触发器**(作者判据) |
| SK | 本 Skill 规则 / 步骤 / 纪律被跳过(含 L2-S 边界豁免、L1 整体标注) | **跳过必声明**:①复述跳过项 ②任务记录留依据 ③向用户一行提醒 | 「跳过 + 声明」合法 / 静默跳过违规 | §0 元规则 |
| AG | 委托子代理 | **必须把最小纪律包内联进子代理 prompt**(判级 / 红线 / 证据含不复现四要件 / 错误必查 TOP / 引用形态 / GATE / **承载**:子代理独立工作区先建规范 memory 五件套 + 项目级规则文件摘要——不指望子代理自加载 Skill) | rules §28 | 子代理不继承注入副本、触发不可靠(实证:提醒可读仍 0 加载) |

## 13. 模板索引

可复制即用的模板在 `templates/`:规划 / 验收标准 / 任务记录(含 GATE 字段)/ 复盘 / 回滚点 / 提示词预算 / 工作区 memory 骨架(experience-mustread 五件套)/ 会话钩子(hooks)/ 审查子代理(agents:critic / risk-reviewer / security-auditor)。复制后填写,绝不原地编辑。