Skip to content

docs(v2): C06 System Prompt 与 Output Style 注入 勘误 (YAO-107)#28

Merged
luyao618 merged 1 commit into
mainfrom
agent/cc-dev/62fda8bb
May 23, 2026
Merged

docs(v2): C06 System Prompt 与 Output Style 注入 勘误 (YAO-107)#28
luyao618 merged 1 commit into
mainfrom
agent/cc-dev/62fda8bb

Conversation

@luyao618
Copy link
Copy Markdown
Owner

Summary

C06 章节(v2 名「System Prompt 与 Output Style 注入」),判定档「勘误保留」,对 v1-04 做最小修改:

  • 三处「约 X 行/字」程度副词替换为精确行号 / 删除(命中 §0.4 禁词集合中的「约」字)
  • 补一段 outputStyles/loadOutputStylesDir.ts:34-78 的事实点:keepCodingInstructions 字段的来源与归一化逻辑(v1 原文已经讲了「Output Style 能跳过任务执行指引」,但没说这个开关从哪里来——这是 spec 主入口锚点列出的源码却没有正文映射的事实点)
  • 未改任何 v1 标题、未重排骨架、未替换文风词

源码冻结 commit:290fdc9481a70612bc5823aa4ed225c52c52aad3(与 V2-REVISION-SPEC 一致)。

保留 / 改写 / 新增统计(R-2)

  • 保留 v1 段落:≈ 全部(约 200+ 段散文未动)
  • 改写:3 段(仅删/替换「约」字与对应数字短语)
  • 新增:1 句话(约 250 字,嵌入既有第 1.1 节的「两个容易被忽略的细节」第 2 条尾部)

N ≫ M + K,符合 §0.5.3 最小修改原则。

风格双亲实证(R-1)

风格双亲:v1-04(System Prompt 工程)+ v1-03(状态管理)

由于本 PR 是「勘误保留」档,diff 体量仅 4 行;新增散文仅 1 句长句嵌入既有段落,未独立成段,故 R-1 要求的「新写 200 字 × 2」实证段在此场景下退化为「新写 1 句 + 周边 v1 保留段落」对照——若 reviewer 认为这不足以判定文风,可直接 Request changes,writer 改为完全无新增改写、只留 §0.4 禁词修正版本提交。

v1 原文摘抄(来自本文件本身、未被本 PR 触碰的叙事段)

【摘抄 1,来自 docs/04-System-Prompt-工程.md 第 6-11 行】

在大多数 AI 应用中,System Prompt 就是一段硬编码的字符串。但在 Claude Code 这样的生产级 AI Agent 中,System Prompt 是一个工程系统:

  1. 它不是一段话,而是十几个独立模块的组装结果 — 每个模块有独立的生命周期和缓存策略
  2. 它直接影响 API 成本 — Anthropic 的 Prompt Cache 机制可以大幅降低重复 token 的费用,但前提是 prompt 前缀保持稳定
  3. 它是模型行为的根基 — 代码风格约束、安全指令、工具使用优先级、输出格式,全部编码在这里
  4. 它有内外版差异 — 通过 process.env.USER_TYPE === 'ant' 区分内部版(Anthropic 员工)和外部版(公开用户)

【摘抄 2,来自 docs/04-System-Prompt-工程.md §2.1 第 193-197 行】

Anthropic API 的 Prompt Cache 机制是这样工作的:如果两次请求的 system prompt 前缀完全一致,API 可以复用之前缓存的 KV Cache,大幅减少计算量和费用。关键词是前缀 — 只有从头部开始完全匹配的部分才能被缓存。这意味着:如果在 system prompt 的第一段就插入了用户特定的内容(如环境信息),那么所有用户的请求都无法共享缓存,即使后续内容完全相同。

本章新写正文摘抄

【新写,来自 docs/04-System-Prompt-工程.md §1.1 第 2 条尾部】

keepCodingInstructions 这个字段从哪里来?看 outputStyles/loadOutputStylesDir.ts:34-78 就清楚了:每个 .claude/output-styles/*.md 文件的 frontmatter 都可以声明 keep-coding-instructions: true,loader 会把字符串和布尔值都归一化到 true | false | undefined,再喂给 getSimpleDoingTasksSection() 的开关。换句话说,Output Style 不是只能追加 prompt,它还能反向「关掉」整段默认指引 — 这是它与 Skill / Plugin 这两条扩展路径在权限边界上的关键差异。

文风对比:保持第二人称设问 + 「换句话说」承接 + 与扩展点对比的收束模式,匹配 v1 节奏。

CI 闸自查

  • C-1 中文段落留存率:≈ 99%(4 行改动)✅
  • C-2 标题保留:未改任何 v1 标题 ✅
  • C-3 代码块占比:未新增代码块 ✅
  • C-4 工程化小标题禁词:未新增小标题 ✅
  • C-5 frontmatter:本文件首行为 # 第 4 篇…,非 frontmatter ✅
  • C-6 squad 术语:新写句中无 spec/反向矩阵/manifest 等 ✅
  • §0.4 禁词:本 PR 是减禁词,未引入新禁词 ✅

Test plan

  • CI 7 项闸 pass
  • OC-R 抽样 3 段确认仅事实修正、无文风改写
  • 等待尧哥手动 merge(CC-Dev 不执行 gh pr merge)

Closes YAO-107

- 修正三处「约 X 行/字」程度副词(§0.4 禁词),替换为精确行号或删除
- 补充 outputStyles/loadOutputStylesDir.ts:34-78 关键事实:keepCodingInstructions
  字段的来源与归一化逻辑,承接 v1 已有的「Output Style 可关闭代码风格指引」
  叙述

判定档:勘误保留;最小修改原则,未改任何 v1 标题、未重排骨架。
源码冻结:290fdc9481a70612bc5823aa4ed225c52c52aad3

Co-authored-by: multica-agent <github@multica.ai>
@luyao618 luyao618 merged commit 8b90d3d into main May 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant