Skip to content
Back to skills

06 Positioning

ASecurity

> **把本文件整份交给你的 agent 即可。** 不依赖任何特定 agent 产品,不需要注册斜杠命令、不需要放进特定目录、不需要装任何东西——`SKILL.md` 只是一个文件名约定,不是某一家的格式。把这份文件粘给它,说一句「按这个帮我复盘这一轮」就能开始。 **这份文件是写给 agent 的执行剧本。** 你(使用者)只需要读「开跑前」和「不对劲的时候」两节。 ---

  • 76 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 27, 2026
ai-agents

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add gilgameshcc/ai-native-jobhunt --skill 06-positioning --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 06 Positioning?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 06 Positioning
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gilgameshcc-06-positioning/badge)](https://www.skillsdirectory.com/skills/gilgameshcc-06-positioning)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# SKILL · 求职方向的双环复盘

> **把本文件整份交给你的 agent 即可。** 不依赖任何特定 agent 产品,不需要注册斜杠命令、不需要放进特定目录、不需要装任何东西——`SKILL.md` 只是一个文件名约定,不是某一家的格式。把这份文件粘给它,说一句「按这个帮我复盘这一轮」就能开始。

**这份文件是写给 agent 的执行剧本。** 你(使用者)只需要读「开跑前」和「不对劲的时候」两节。

---

## 交付约定:易用性与完成度优先

Agent 负责整理并完成本次可做部分,交付可直接人工 review 的成品,不止给建议或空表。先读用户工作区的 `policies/`;用户可配置的执行偏好和参数集中在这里维护,已有求职条件仍以 `positioning.md` 为准。明确要求的调整直接写回并在 `policies/changes.md` 记录旧值、新值、理由与影响;Agent 建议标待确认。

用户已指定路径就直接创建本次所需目录;未指定时一次询问存放位置,同时继续整理材料。不得要求用户先手工建文件夹,不得把个人材料写进公开仓库。具体岗位建立或复用 `applications/日期-公司-岗位/README.md`,索引实际成品,初始化只补缺失文件;原始材料和历史审阅保留,策略、申请索引及衍生产物可按本次授权更新并记录变更。结束前写 `reviews/日期-任务.md`:成品路径、结论依据、采用策略、待确认项及影响、实际检查和下一步;重新读取文件核对后给可点击路径。缺材料时先完成不依赖它的部分并标部分完成;无文件写入能力须明确未落盘。可审阅不等于获准发送,外部动作仍按既有授权和模块边界。

交付前交叉核对报告、申请索引、台账和审阅卡:结论与下一步必须一致,已判不投的岗位只说明排除依据及证据或本人条件改变后可重评,不沿用继续推进的话术。内容重排后修正上下文指代;检查数量只填写工具实际统计值,未统计就列检查对象,不手写估数。发现历史审阅错误时另写勘误,保留原记录。

完整规则与模板见 [本地交付约定](../../docs/delivery.md);只拿到本 SKILL 时按以上约定建立最小 Markdown 文件即可,不要求先跑其它模块。

## 开跑前

### 要什么 / 缺了退化成什么

| 输入 | 必需? | 缺了会退化成什么 |
|---|---|---|
| **一批已经投出去的记录**(`ledger.md`,或散着贴的原始记录) | 复盘所需,发现可无 | 无记录先按画像主动发现,不做漏斗归因;散记录由 agent 整理 |
| **用户画像**:能做什么、想解决什么工作问题、地域、必要条件、排除条件、时间预算 | 主动发现所需 | 读取已有定位和事实材料,集中问关键缺口;可先研究已知工作问题,不猜个人条件 |
| 每条记录里的**对方回应原话** | ⚠️ 强烈建议 | 只剩「有回应 / 没回应」两态。**分不出「薪资不匹配」和「方向不匹配」**——而这两者指向完全相反的改法。收敛环的决策 ① ② 会整体降级为「证据不足」 |
| **反向吸引标记**(对方主动来找你的那些) | ⚠️ 强烈建议 | 发散信号 N3 停用。⭐ 这是新用户第一周唯一看得出的两类信号之一,**丢掉它等于丢掉一半发散环** |
| 面试复盘(`interviews/<company>-<date>.md`,含**溢出栏**) | 可选 | 发散信号 N4 停用(溢出栏是它的唯一采集点)。⭐ **红旗绿旗校准失去对照基准 —— 失去之后具体做什么**:让用户手工列 3 个"当时想验证的点"顶上,用它们跑完这一节,但**整段标 `事后补的基准,可信度低`**,⛔ **不喂给收敛环的决策 ① ②**;报告里这一行写成「**本轮红旗绿旗校准不可判**:没有事前判据,只有事后补的基准」。口径与 `04-interview` 缺上游评估时**完全一致**,不要另发明一套 |
| 每日 review 卡(`runs/<date>-review.md`) | 可选 | 漏斗信号只能靠台账重建,拿不到「跳过原因分布」这一层。**必须在报告里写明少了哪一层** |
| 岗位语料(`jobs/<batch>.md`,最好 ≥ 2 个批次) | 可选 | 发散信号 N1 / N6 停用 |
| 你现在的 `positioning.md` | ⚠️ 强烈建议 | 没有它,「对不上」这件事就没有参照物——**所有「面试官关注点与预设定位不符」的信号都变成不可判定**。⭐ **不可判定之后进哪里**:⛔ **不丢弃**。按 L2 那条口径(归不了类的默认进 `discoveries.md`)**全部登记进 `discoveries.md`**,信号类型先挂 N2(错配),证据栏注明「无定位参照,本轮只登记不判定」,累计计数照常走独立事件口径。等 `positioning.md` 建起来之后**回头重判这一批**——原话还在,判定可以补,**丢掉的原话补不回来**。⛔ 但它们本轮**不参与收敛环的决策 ②**(要改定位,得先有一个"原来的定位") |
| ⭐ **台账里这几个字段有没有记**:**渠道** · **用的是哪一版材料** · **级别** · **这条岗位是怎么进来的** · **JD 里有没有写学历门槛** | ⚠️ 强烈建议 | ⛔ **这一类缺失与「量不够」性质完全不同,不许压成同一种空栏。** 没记 = **过去那一段永久不可判**(再攒也不会有),只能**从现在开始记**,而**过去那部分补不回来**。逐条影响哪个决策、报告里必须写哪三件事,见 6.3「空栏必须分成两种」 |
| ⭐ **我能不能联网检索**(⚠️ 这一条不是给我材料,是开跑前要先确认的**能力**) | ✅ 必需先确认 | 本模块复盘链路**不依赖**联网,但 `公开可查` 这一整档来源标注、以及来源独立性的核对深度依赖它。不能联网时**不报错、降级跑**,退化规则见下面一节 |

### ⚠️ 不能联网时退化成什么

**本模块的复盘链路不依赖联网**:样本体检、四层回应分层、双环判定、开分支门槛,全部只用你手上的材料就能跑完。⭐ **所以「没联网」不是不能跑,是有四处会变。** 开跑前先自查一句:**我这次有没有联网 / 检索能力?** 没有就照下面四条退化,⛔ **不许假装查过**。

主动探索此时只交付检索词、目标类型与待核实入口;用户提供的网页内容仍标 `你给的`,不声称本次联网核实。

1. **`公开可查` 这一整档不可用。** 本该查的(岗位公开描述、"这条要求是不是这一类岗位的普遍要求"、两家公司是不是同一个主体)一律标 `我推测的`,并在同一行注明「因无法检索而未核实」。⛔ **不许标 `公开可查`** —— 没查过就不是查到的
2. **报告顶部写一行**:`本次无公开检索能力 —— 公开材料层为空,全部结论只由你给的材料与我的推测构成`
3. ⭐ **来源独立性核对退化成保守口径。** 出处记得清楚的照常判;**判不出来的一律按「来源不独立」处理(合并计 1)**,⛔ 不许因为"看起来是两家不同的公司"就算成两个独立来源。理由是代价不对称:**把一个人的一次判断当成市场形态、拿去改方向,代价远高于漏判一次真扩散** —— 而漏判的那次下一轮还会再出现
4. **收敛环决策 ② 的旁证拿不到。** 「这条客观条件是不是这一类岗位的普遍要求」只能靠台账原话的家数判。⛔ **不许因为"我印象里这类岗位都这样"就升级成硬性排除** —— 那是 `我推测的`,而它一旦升级就是永久砍掉一块搜索面

⚠️ **这不是报错,是降级继续跑。** 缺的不是判断力,是**佐证层**:同一份报告照出,只是 `公开可查` 那一档全空、来源独立性判得更保守。**空着就写空着,不要用推测把它填上。**

### ⭐ 最小可接受形态

> **主动发现:一句工作方向+地域+一项已有能力证据即可起步,关键约束集中补问。复盘:10-20 条「公司 / 岗位 / 投递日期 / 对方回了什么」是默认建议输入量,散着贴也行。**

真的只要这些。聊天记录转述、平台消息截图的文字、一段回忆、语音转文字,都行。**你(agent)负责把它整理成 `ledger.md`**,不要求用户先整理好。

少于 10 条(默认建议值,整体判定仍以本轮参数为准)时:**不给整体漏斗结论**,直接说「这个量级看不出整体漏斗形态」。可整理和做发散环登记;若①/③有达到独立门槛的证据,仍按下方单点规则处理。⛔ 不许因为数据少就把语气放软再给一个建议——那是同一个错误换了个说法。

### ⚠️ 照最小形态给,你会拿到什么、拿不到什么

**仅主动探索的最小输入**:产出探索卡、已核实与待核实线索、下一步和下次日期。没有历史台账时不强迫生成漏斗体检或双环决策,不编造台账、登记事件或分支。下面的样本说明仅适用于用户提供历史申请材料的复盘入口。

**这一段必须说破,否则用户会以为"能跑起来"等于"能拿到结论"。**

- **你会拿到**:一份整理好的 `ledger.md`(散着贴的由我整理,不要求你先填模板)· 一份**样本体检**(本轮几条投递、几条回应、几条带明确理由、差门槛多远)· 发散环的**零门槛登记**(N3 / N4 一条就能记,且登记本身就是完整产出)· 一份逐行写明"哪几类信号本轮不可判、差多少"的报告。
- **不能预先承诺的产出**:输入有 10–20 条不代表必然可判,也不代表一律不改。先核对已有整轮门槛(默认 ≥20 条投递且 ≥8 条回应);20 条恰好达到投递门槛,仍要核对回应数。整体不足时,不做整体漏斗归因;已有规则允许的单点修订仍按它自身的独立门槛判断。发散环登记与开分支继续分别按各自规则处理。
- **一句话**:最小形态足够整理和检查样本;能否改哪一项,由对应规则的证据与门槛决定,不能在读取具体材料之前统一拒判。

### ⛔ 四条禁止(这一节是对 agent 说的)

1. **不许报错退出。** 输入缺、格式乱、只有半句话,都不是停下的理由。缺什么就明确说「你至少给我 X」,然后用手上有的先跑一版
2. **不许静默自己编。** 任何你没被告知、也没查到的取值,一律标 `我推测的`,并且**不参与任何决策的成立判定**。⛔ 尤其不许把「对方大概是觉得……」写成拒绝理由——那是你编的,不是对方说的
3. **不许一次只问一个问题挤牙膏。** 需要补的东西一次问完(最多两轮)。先用已有信息出一版带「待确认」的报告,再让用户一次补齐
4. **不许把该你自己做的整理工作推给用户。** 用户散着贴来的记录,**你负责整理成台账**。⛔ 不许说「请先按模板填好台账再来找我」

---

## 每轮先做:周期检查与主动机会探索

1. **确认节奏和变化**:先读上次报告、定位和已约定节奏;没有记录时集中问用户是否已有复盘习惯,默认建议每周一次(`默认建议值`,可按求职强度调整)。本轮先核对条件有没有变化,避免重新问已有答案。没有新增投递也要总结目标研究、过期职位、材料与待验证问题,不能只说“继续刷”。
2. **按画像找工作问题**:把已证实的能力和想做的事映射为少量工作问题,例如部署业务 agent、改进产品评估、服务某行业工作流。AI 原生产品、成熟企业的具体 AI 项目、基础设施邻接角色分别注明;“公司名字有 AI”不能作为匹配理由。
3. **主动发现而非等 JD**:按本轮时间预算,从产品/开源项目反查雇主,再用独立的产业生态、投资组合或官方招聘来源补遗漏。按“产品 → 雇主 → 团队 → 具体岗位”核实归属。公司目录只是发现入口,不复制全名单当推荐;不要求先累计若干月投递台账才启动目标探索。
4. **核实个人可申请性**:使用投递模块的“主动发现与职位核实”步骤,读取具体 JD,检查职责、资历、地域、工作方式和开放状态;保留来源及核实日期。不以创始人背景推断招聘地域、不把商务联系入口当招聘入口、不猜招聘负责人。每轮推荐前复查职位,证据冲突则降为待核实。
5. **给少量有理由的下一步**:在 [主动机会探索卡](templates/主动机会探索卡.md) 中写清每个目标为何对应用户、已有能力证据、缺口和下一步;分别列可进入定级的 JD、仅值得观察的公司、排除项。无匹配结果也交代已查范围和失败原因,给扩大来源或相邻角色的建议;不擅改用户硬条件。
6. **进入现有契约与双环**:JD 进入 `jobs/<batch>.md` 后定级;主动搜索发现本身不是投递成功,也不能冒充 N3“对方主动吸引”或 N4 面试溢出。探索记录先留本轮报告;符合 N1-N6 的证据才按既有规则登记。研究新方向不等于开投递分支,分支仍需配额、证伪判据、截止期与成本条件,不改已有门槛来凑通过。
7. **收尾给下次时间**:报告写本周保留/调整/停止什么、下一步负责人和下次具体日期。已有节奏就沿用;无回复时可记录建议日期及触发语“按上次报告复盘本周,并主动找符合我画像的新机会”。**这不表示已创建后台任务。** 只有当前环境存在调度工具且已获相应授权,才创建或更新任务并检查返回结果;未启用、失败或无工具一律如实写明,不宣称会自动运行。

以上只增加周期报告中的文本段落,不增加数据库、必装工具或固定公司数量。报告可从本轮摘要开始,只有存在相应证据才展开双环详细表格;缺样本时显式说明哪些判断不可做。

---

## 6.0 为什么必须是两个环,且不能合并

**这是本模块最重要的一条设计判断。写在最前面,因为后面所有规则都从它推出来。**

同一批原始信号,要经过两个**过滤器完全相反**的环:

```
同一批信号 ─┬─→ 收敛环   过滤器:重复出现 + 达到最小样本门槛  → 改执行
            └─→ 发散环   过滤器:反常 + 不重复 + 与预设不符    → 登记,不设门槛
```

收敛环的核心纪律是「**最小样本门槛 + 默认不动**」。它存在的全部意义,就是防止你被一两次拒绝就改定位——真实场景里 N 永远很小(几十条接触、两三场面试),而最常见的错误就是拿单次事件当趋势。

而「投着投着发现新可能性」的信号,**天然是单次的、不重复的、看起来像噪声的**:

- 一个你根本没投过的岗位类型,有人主动来找你——**只发生了一次**
- 面试里跑题聊到一个话题,你讲得比对方还兴奋——**只发生了一次**
- 某个新词在两个不同类型的公司的岗位描述里同时冒出来——**才两次,远达不到任何门槛**

**同一个循环、同一套阈值,一定会把它们当噪声滤掉。** 收敛环的防过拟合纪律,恰好会杀死发散环需要的信号。这不是可以靠「把门槛调低一点」解决的——门槛调低,收敛环就失去了它唯一的作用。

**所以:两个环,两套过滤器,两套输出。**

**两环唯一的接口**:

> **登记是免费的(不设最小样本门槛);门槛只加在「登记 → 开分支」这一步。**

⛔ **不许用收敛环的样本门槛去挡发散环的登记。** 这是本模块唯一一条「一旦做错,整个模块的差异化就没了」的规则。

⭐ **「登记零门槛」的完整论证只写在这里一处。** 后面 6.3 的决策 ⑤ 与 6.5 的输出物两节都只放一句索引指回本节——**同一条论证在三处各写一遍,改的时候只会改到其中一处,剩下两处就开始漂**(这正是 `discoveries.md` 模板曾经在两个模块里各存一份、然后沿相反方向漂走的那类事故)。

---

## 6.1 三条输入

### 输入一 · 投递漏斗信号 ⭐ 数据量最大的一条

来自 `ledger.md` + `runs/<date>-review.md`。**先分层,再统计**——不分层的漏斗只能告诉你「回复率低」,那句话没有任何可执行含义。

| 层 | 长什么样 | 它能支撑什么 |
|---|---|---|
| **明确理由型拒绝** | 对方说出了一个**具体的、可判定的**理由(「需要有过某类业务场景的落地经验」「这个岗只考虑本地候选人」) | ⭐ 信息量最高的一层。收敛环的决策 ② 和发散环的 N2 / N5 **只能从这一层来** |
| **模糊拒绝型** | 「不太合适」「暂时没有匹配的岗位」「先保持联系」 | ⛔ **永不升级为规则。** 它只能计入「回复率」这个总量,不能被解读成任何具体原因 |
| ⭐ **强正向型** | 对方**主动**索要材料、主动发起对话、主动推另一个岗位 | 收敛环里它是渠道效率信号;发散环里它是 N3 的原料。**分流判据见 6.3 的 N3** |
| 无回应 | 过了你的观察期仍无任何动静 | 只计入总量。⚠️ **无回应不等于拒绝**——它可能是渠道问题、时机问题、或者对方根本没看到 |
| ⭐ **旁栏 · 平台状态型**<br>(⛔ **不是第五层**,见下) | 平台自动显示的状态:「已读不回」「简历未通过」这类**不是对方写的、由平台代显示**的动作 | **有动作、无信息。** 唯一用途是区分「没被看到」与「看到了没往下走」。⛔ 除此之外不解释任何事,**且不计入「有回应」数** |

⚠️ **「对方回应原话」不许在这一步被压成分类标签。** 一旦压成「婉拒 / 待定 / 邀约」,就再也分不出「薪资不匹配」和「方向不匹配」了。**分层是分析动作,原话必须保留在台账里不动。**

#### ⭐ 「已读不回」「简历未通过」这类平台状态归哪里 —— 归**旁栏**,不是四层里的任何一层

**为什么它不属于四层**:四层分的是「**对方的话里有多少可判定信息**」;而平台状态里**根本没有对方的话**,它是平台代显示的。**分类轴不同**,所以它不是"第五层"(那会让人以为还在同一条轴上),是一个**并排的旁栏**。

⛔ **三个都不许往里塞,各有各的代价**:

- ⛔ **不许归「无回应」。** 无回应的含义里包含"可能根本没被看到";⭐ **而平台状态恰恰证明了对方看到了。** 归进去,等于把手上唯一一条触达证据丢掉
- ⛔ **不许归「明确理由型」。** 「简历未通过」是一个**结果**,不是理由。归进去会让 `N2理由门槛` 与收敛环决策 ① ② 被一批零信息的记录喂满 —— 门槛达标了,可门槛存在的那个理由(有理由可分)没达标
- ⛔ **不许归「模糊拒绝型」。** 那一层至少是**一个人写的一句话**(「先保持联系」),它计入回复率是有含义的:有人读了、并且回了。平台状态没有这个含义

⭐ **计数口径(这一条必须写死,因为它直接决定样本达不达标)**:**平台状态型单列一个自己的数,⛔ 不计入 `本轮最小样本` 的「有回应」数。**

> **理由**:`本轮最小样本` 里那个「≥ 8 条有回应」之所以存在,是为了保证**有足够的量能分出三档理由类型**(见 6.4 该参数的标定说明)。**平台状态型在定义上分不出任何理由档。** 用一批**结构上不可能带理由**的记录去满足一个为「有理由可分」而设的门槛,只会得到最坏的一种结果:**样本体检说够了,收敛环却依然无米下锅** —— 而报告读起来完全正常。

✅ **它唯一正当的用途**:它是**唯一能证伪「无回应多半是没被看到」这条推测的材料**。报告里可以写成「本轮 X 条无回应中,有 Y 条平台显示已读」,⛔ **到此为止** —— 不许接着解读成"看了不要我,说明我的材料不行",那是 `我推测的`。

### 输入二 · 面试反馈

来自 `interviews/<company>-<date>.md`。看三样:

1. **红旗绿旗实测结果**——⭐ **三态:证实 / 证伪 / 未验证**。⛔ **「未验证」不许记成「证伪」**:没问到、没聊到、对方回避,都是「未验证」。把它当证伪,会让你以为某条判据被证明是错的,而其实只是没测过
2. **面试官关注点 vs 你预设的定位**——**对不上是最有价值的信号**。它同时可能是收敛环的(表述没讲清)或发散环的(你被归到了另一个类目里),分流判据见 6.3 的 N2
3. ⭐ **溢出栏**——跑题跑出来的东西。这是发散信号 N4 的**唯一**采集点。
   ⚠️ **溢出栏有三类,三类全归 N4**:① 用户讲得比对方还兴奋的话题 ② 对方无意透露的行业信息 ③ 可复用的联系人或线索。
   ⛔ **不许只读第 1 类。** 第 ② ③ 类恰恰是发散环决策 ④(升级为非求职产出)的原料——那条决策举的例子就是"一份行业情报 / 一个可持续的联系人 / 一条产品线索"。**只收第 1 类,等于让决策 ④ 永远没有输入。**
   ⛔ **反过来也要写死:复盘卡里「对方说了什么值得记的」那一栏(上游 `04-interview` §4b)⛔ 不是 N4 的采集点,也 ⛔ 不进 `discoveries.md`。** 它登记的是**对方主动给的、会改变你对那家公司判断**的事实,去向是**那家公司的疑点表**,不是发散侧。⭐ **两栏的分界只有一条判据**:拿掉它,变的是**对这家公司**的判断(→ §4b,回流疑点表)还是**对你自己**的判断(→ 溢出栏,归 N4)。
   ⚠️ **这条是 L2 兜底规则的第二个明确例外**(第一个是「该问没问 / 该追没追」):它**不是归不了类,是有归宿** —— ⛔ 不许用"归不了类的默认进 `discoveries.md`"把它扫进登记簿。**扫进来的代价是双向的**:登记簿被一批本该回流疑点表的公司事实稀释,而那家公司的疑点表**一条都没更新**,下一轮的一页纸照着旧疑点问。

### 输入三 · 市场语料

来自 `jobs/<batch>.md` 的岗位描述文本。看两样:**高频词**(尤其是尚无标准定义的新词)与**结构变化**(同一类岗位的要求组合是不是在变)。

> 岗位可来自已有记录,也可由本轮主动发现补充。网站只读操作复用投递模块;缺 JD 不阻止探索,缺足够语料仍不得宣称 N1 / N6 已形成市场趋势。

---

## 6.2 收敛环:三输入 → 五类决策

### 先过样本门槛,再谈决策

⭐ **进入收敛环的第一个动作是样本体检。** 主动机会探索不受收敛环样本门槛阻挡。

```
本轮新增投递数 / 其中有回应数 / 其中明确理由型数 / 面试场次 / 新增岗位语料条数
        ↓
达不到 `本轮最小样本` → 停止整体归因及②/④;按下方例外核对①/③独立门槛,其余输出⑤
                        ⚠️ 但已单独过了自己门槛的那一条仍然输出 —— 见下一节
达到  → 逐条过 ① ~ ④,每条各自还有自己的门槛
```

**门槛是逐条的,不是一次性的。** 本轮样本总量够,不等于「渠道对比」这一条也够——它有自己的 `渠道对比最小样本`。

### ⭐ 反方向:整轮不达标,但某一条自己的门槛过了 —— **那一条仍然输出**

**上面那句「门槛是逐条的」只写了正方向**(逐条过门槛才触发),**反方向一直没写**:整轮样本体检不达标、按流程要走 ⑤「什么都不改」,可**这一轮里恰好有一条决策自己的门槛已经过了**(例如同类质疑已经到了 `同类质疑重复门槛` 那么多家不同公司)。这条怎么办?

> **写死:那一条仍然输出,但必须带标注「⚠️ 本轮整体样本不足,这条是单点触发,谨慎采纳」。**

**为什么不跟着一起压掉**:

- `同类质疑重复门槛` 数的是「**几家不同公司问了同一件事**」,它的分母**不是本轮投递总数**。3 家不同公司各问了一次同一件事,这个事实**不因为你这一轮只投了 12 条而变弱**。⛔ **把它一起压掉,等于用一个它根本不依赖的量去否决它 —— 让样本量惩罚了一条本来有证据的结论。**
- 而且代价不对称:压掉之后它**不会在下一轮自动重现**(下一轮报告说的是"本轮最高到几家",不会重述这一轮曾经够过),于是用户永远不会知道它到过门槛。

**为什么又必须带标注**:

- 整轮样本不足的真正含义是:**这一轮里「没出现的东西」不可信。** 你看到 3 家问同一件事,但你不知道有多少家其实**没问** —— 分母太小,没给反例留出空间。所以它是**单点触发,不是趋势**。

⛔ **两条例外:整轮不达标时不许单点触发**(代价不可逆的那两条):

- **决策 ②(改 `positioning.md` / 新增硬性排除条件)** —— 升级一条硬性排除 = 永久砍掉一块搜索面,错了补不回来
- **决策 ④(反身修订定级阈值)** —— 一改,上一轮的数据就不可比;它本来就带 `定级阈值冷却期`

这两条在整轮不达标时并入 ⑤,并写明「**本条本轮已过自己的门槛**,但因整轮样本不足 + 代价不可逆而不触发,下一轮样本达标后优先看这条」。⭐ **注意这句话本身就是输出** —— ⛔ 不许直接不提。

### 五类决策

| # | 决策 | 触发条件(参数见 6.4) | ⛔ 不该触发的样子 |
|---|---|---|---|
| **①** | **改事实池里那件事的讲法** | 同一类质疑在 ≥ `同类质疑重复门槛` 家**不同**公司出现,且你都答得不好 | 同一类质疑只在 1 家出现 → 输出「证据不足,继续观察」。⛔ 一次追问不构成一次修订 |
| **②** | **改 `positioning.md`**(含新增硬性排除条件) | 连续 ≥ `硬性排除升级门槛` 家因**同一个客观不可变条件**被拒(学历 / 城市 / 某类经历年限这种你当下改不了的) | 因主观评价被拒(「不太合适」)→ ⛔ **永不升级为规则**。主观评价升级成硬性排除,等于用一句客套话把自己的搜索面永久砍掉一块 |
| **③** | **改渠道 / 城市 / 薪资档配比** | 两个渠道各自 ≥ `渠道对比最小样本`,且回应率差异明显 | 某渠道只有 3 条且 0 回应 → 样本不足,不动。⛔ 「这个渠道好像没用」是印象,不是数据 |
| **④** | **反身修订定级阈值**(`03-company-analysis` 的定级规则) | 某个档位(级别 / 薪资档)的回应率**系统性**偏离,且**不在冷却期内** | 单批次波动 → 不动。⚠️ **阈值改动必须带 `定级阈值冷却期`**,否则你会在两个方向之间来回震荡,而每次震荡都会让上一轮的数据不可比 |
| **⑤** | **本轮不改** | 整轮不足且①/③也未达到各自门槛,或达到数量门槛但无充分修订证据 | 不因必须输出建议而编造变化;若仅一项可改,其他项明确不改 |

### ⭐ 为什么 ⑤ 是最重要的一类,且必须显式输出

**⑤ 必须写进报告,写成一段有主语的结论**,形如:

> **本轮不改。** 本轮新增 N 条投递、其中 M 条有回应、K 条带明确理由。`同类质疑重复门槛` 是 3 家不同公司,本轮最高只到 2 家(纬度智能、青栈网络,都在问同一类问题)。**再攒 1 家同类质疑就够门槛了**,下一轮优先看这条。

⛔ **不许省略成「本轮无明显问题」。** 那句话既没说样本多少,也没说差多远,读者无法判断它是真的做过判断还是根本没算。

**它为什么最重要**:

> **它是「这套东西真的在做判断」的唯一证据。**
> 一个对任何数据都能给出改进建议的框架,和一个坏掉的框架**无法区分**——两者的输出看起来一模一样。只有当它在某些输入上**明确说不改**,你才知道它在另一些输入上说的「该改」是有含义的。

它的成本 ≈ 一段模板文字。**任何一轮精简都不许削它。**

---

## 6.3 发散环:六类信号 N1-N6

> ⚠️ **`N` 前缀在本仓库里指两样完全不同的东西 —— 这才是真正会撞车的地方。**
>
> | 写法 | 指什么 | 谁在用 |
> |---|---|---|
> | **必要条件 N1 / N2 / N3** | `positioning.md` 里「不满足就不投 / 不去」的那几条 | 定级模块、offer 模块,以及面试执行一页纸里的 `N1` / `N2`(那是**必要条件验证题的行号**) |
> | **发散信号 N1-N6** | 本节这六类(命名 / 错配 / 反向吸引 / 溢出 / 结构性拒绝 / 邻接漂移) | 只有本模块 |
>
> ⛔ **本模块的报告、登记簿、分支表里一律写全称**:「**发散信号 N3**」「**必要条件 N3**」,不许只写 `N3`。两者都是"编号 3",会出现在同一份复盘里,而**读者没有任何线索能分辨**——一句"N3 不满足"到底是"没拿到反向吸引信号"还是"这个岗不满足你的第 3 条必要条件",对应两个完全相反的动作。
> ✅ **什么算写全了**:`发散信号 N3` / `必要条件 N3`,或者**编号与信号名同格**(`N3 · 反向吸引`)都算——判据是"单看这一格就能分辨"。⛔ 孤零零一个 `N3` 不算。
> ⚠️ **这条撞车目前没有被前缀本身挡住,只能靠写全称挡。** 换一个不碰撞的前缀是更彻底的解法,但它会波及本模块之外的固件与示例,需要一次性改完,不能只改半边。(顺带:`D` 编号是另一回事,本模块不用它。)

### 六类信号

| # | 信号 | 从哪来 | 为什么它属于结果层(而不是执行层) |
|---|---|---|---|
| **N1 命名信号** | 岗位描述里出现的、**尚无标准定义的新词**,从孤例扩散到多城多类公司 | `jobs/` | 一个词从孤例扩散开 = **一个类目正在成形**。类目是定位的落点,不是表述问题 |
| **N2 错配信号** | 反复被拒,但理由是「**经验类目不对**」而不是「能力不够」 | `ledger.md` 明确理由型 | 同一段经历换一个参照系,就从「缺某类场景」变成「有另一类的体系化经验」。**换类目,不是改讲法** |
| ⭐ **N3 反向吸引** | 你**没投过**、但对方主动来找你的岗位类型 | `ledger.md` 的反向吸引标记 + 强正向型回应 | **最被低估的一条。** 它是市场对你的**无偏归类**——不受你搜索关键词的框限。**你搜什么决定你看到什么,唯独这条不是** |
| ⭐ **N4 溢出** | 面试 / 对话里跑题跑出来的东西,**三类都算**:① 你讲得比对方还兴奋的话题 ② 对方无意透露的行业信息 ③ 可复用的联系人或线索 | `interviews/` 的溢出栏(**三类全部**) | 求职过程产出了**不是岗位的东西**(一份行业情报、一个联系人、一条产品线索)。结果层的极端形态 |
| **N5 结构性拒绝** | 某条线**系统性**够不着:同一条客观门槛反复卡住你 | `ledger.md` + `jobs/` 的要求栏 | 优化执行解决不了它 → **关掉这条线或换入口**。关掉也是一种结果层改进 |
| **N6 邻接漂移** | 推荐流 / 采集流里反复出现、但**不在你原关键词列表里**的岗位形态 | `jobs/` 里标了来源的条目 | 市场把你的画像投射到的**邻接空间**——它看到的你和你以为的你不是一回事 |

> **N3 与 N4 是重点**:它们是**只有「投着投着」才能拿到、坐着规划拿不到**的信息。

### ⭐ 每类信号的最小可见量级(这一节不许省)

**下面这张表要在每一轮报告里逐行输出,包括那些「这轮看不出来」的行。**

| 信号 | 最小可见量级 | 来源等级 | 新用户第一周看得出吗 |
|---|---|---|---|
| **N1 命名信号** | 岗位语料约 `N1语料门槛` 条,**且跨 ≥ 2 个批次**(不然分不出「新出现」和「本来就有」),⭐ **且这个词要落在 ≥ `N1独立来源门槛` 个互相独立的来源上**——见表下「什么叫扩散」 | `纯占位待校准` | ❌ 看不出 |
| **N2 错配信号** | ≥ `N2理由门槛` 条**带明确理由**的拒绝。⚠️ 是「带明确理由」的条数,不是总回应条数——大部分回应是模糊型,分不出这一层 | `纯占位待校准` | ❌ 看不出 |
| ⭐ **N3 反向吸引** | **1 条就能登记**;≥ 3 条才看得出形态(是不是集中在同一个你没意识到的类目上)。⭐ **这里的 3 条数的是「互相独立的来源」,不是条数**——口径与 N1 相同,见表下「什么叫扩散」。⚠️ **这个 3 就是参数 `N1独立来源门槛`**,6.4 里它自己写着"这个 3 是编的" | ⭐ `纯占位待校准` | ✅ **看得出** |
| ⭐ **N4 溢出** | **1 场面试 / 1 次对话就能登记**(三类任一);**开分支**另有门槛 `N4开分支门槛`(默认 2 次**独立事件**且跨 ≥ 2 场面试 / 对话,见 6.4)——⚠️ **登记量级与开分支门槛不是一个数**,别拿"1 场就能登记"去对开分支 | ⭐ `纯占位待校准` | ✅ **看得出**(前提是复盘卡有溢出栏,且**三类都抄过来**) |
| **N5 结构性拒绝** | 同一条线上 ≥ `N5同线门槛` 条岗位,且过半卡在**同一条**客观条件上 | `纯占位待校准` | ⚠️ 勉强,要看这一批投得集不集中 |
| **N6 邻接漂移** | 与 N1 同量级,**且要求语料里记了「这条是怎么进来的」**(搜索命中 / 推荐 / 对方推来)——没记来源就整类不可判。⭐ 来源独立性口径与 N1 相同 | `纯占位待校准` | ❌ 看不出 |

> ⚠️ **N3 / N4 两行的等级为什么必须是 `纯占位待校准` 而不是 `默认建议值`**:它用的那个 3 就是 `N1独立来源门槛`,而那条参数自己标着 `纯占位待校准`、注释里写着"这个 3 是编的"。⭐ 而 N3 恰恰是**新用户第一周唯一看得出的两类信号之一**——**最被依赖的那个门槛,等级不能标得比它的实际来源硬**。标虚一档的代价很具体:用户会以为"3 个独立来源"是个有依据的线,于是在第一周就拿它去改方向。
>
> ⭐ **N4 是同一个形状**:它引用的 `N4开分支门槛` 也标着 `纯占位待校准`,而那条参数的注释就写着"这个 2 是编的"。
>
> ⛔ **一条通则**(这两行是它的两个实例):**一行的等级,不能比它所引用的参数的等级更硬。** 引用了 `纯占位待校准` 的参数,这一行就不可能是 `默认建议值` —— 那等于凭空给一个编出来的数字升了一级。

### ⭐ 两条门槛打架时:**最小可见量级优先**

**实测出现过的形状**:同一个信号,「最小可见量级」说**本轮不可判**,而它的开分支门槛(`开分支登记门槛` / `N4开分支门槛`)说**次数已经够了**。两条门槛给出相反的答案。

> **写死:最小可见量级优先。⛔ 最小可见量级不过 → 开分支门槛本轮根本不该被评估。**

**理由 —— 这两条门槛管的不是同一件事**:

| 门槛 | 它回答的问题 |
|---|---|
| **最小可见量级** | ⭐ **这类信号在你现在的数据量上,看不看得出来** |
| **开分支门槛** | 看出来之后,**要不要为它花掉一份配额去行动** |

**前者不过,后者就是在一个还分辨不出信号的量级上讨论「要不要行动」** —— 那正是本模块反复在防的那件事:**一个对任何数据都能给出行动建议的框架,和一个坏掉的框架无法区分。**

⛔ **不许反过来**("次数够了,那就先开着看看"):登记是**零门槛**的,所以"累计次数"这个数在量级不足时**本来就可能被几条噪声凑出来**。拿它去越过可见量级,等于**把零门槛登记直接当成了证据** —— 与「拿登记行数去凑门槛」是同一类错,只是换了个入口。

✅ **正确输出的形状**:

> **发散信号 N5 结构性拒绝:本轮不可判(最小可见量级不过),⛔ 开分支门槛本轮不评估。** 同一条线上只有 9 条岗位,`N5同线门槛` 是 15 条。**它累计的独立事件数已经到 3 次、够 `开分支登记门槛`,但这一条本轮不成立** —— 在这个量级上分不出「这条线够不着」和「这几家刚好都这么要求」。**先补到 15 条,再回来看开不开分支。**

⚠️ **唯一的例外已经写在表里**:N3 / N4 那句「1 条 / 1 场就能**登记**」是**登记**量级,不是可见量级 —— 登记本来就零门槛,不受这条优先级约束。**受约束的是「见形态」与「开分支」这两步。**

### ⭐ 什么叫「扩散」:数的是**互相独立的来源数**,不是条数

> **适用范围:N1 / N6 / ⭐ N3。** 见本节末尾「为什么 N3 也要这条口径」。

**N1 / N6 唯一容易被骗的地方在这里。** 同一个新词出现了 5 条,可能是市场正在形成一个新类目,也可能是**同一个来源把同一条信息换了几个名字重复投放**——后者叫**伪扩散**。⛔ **它的条数、批次数、语料占比,和真扩散长得一模一样**:只数条数的规则,对这两者给出的判断完全相同,也就等于没在判断。

> **口径:同一个来源(同一家公司 / 同一个中间人 / 同一次转发)来的多条,无论岗位名是否被换过,合并计 1。**

**来源不独立的直接证据**(命中任一条,就按合并计 1 处理):

- 正文职责逐字相同,或条数与顺序完全一致
- 连**错别字 / 排版怪癖**都一样
- 用人单位一栏是「知名企业」这类不可核验的占位,**没法确认它们是不同的公司**
- 全部由同一个人转来,且时间集中在很短的一段里

⛔ **伪扩散不许升级为候选类目。** 正确处理:在 `discoveries.md` 里按**一条**「同一来源重复投放」登记,**累计次数记 1**,证据栏注明「来源不独立,不计入扩散」。

⭐ **但它仍然要登记**——登记零门槛这条不变。「某个中间人在集中推某个方向」这件事本身就是信息,只是它不是 N1。

### ⭐ 为什么 N3 也要这条口径(且它比 N1 更急)

**同一个中间人来两次,在 N3(反向吸引)上是一模一样的伪扩散。**

- 三条"对方主动来找你"如果**全部来自同一个中间人 / 同一家公司的两个 HR / 同一次转发**,它们不是"市场对你的三次无偏归类",**是一个人对你的一次判断被数了三遍**。
- ⚠️ **它比 N1 的风险更大**,因为 ⭐ **N3 是新用户第一周唯一看得出的两类信号之一**——最容易被看到的那条线上没有这个口径,用户会在第一周就拿着一个伪信号去改方向。

> **口径(与 N1 完全相同)**:同一个来源(同一家公司 / 同一个中间人 / 同一次转发)来的多条,**合并计 1 个独立来源**。
> N3 的"≥ 3 条才看得出形态"从此读作「**≥ 3 个互相独立的来源**」。

⛔ **来源不独立的 N3 不许拿来判"形态"**("是不是集中在同一个你没意识到的类目上")——一个来源当然只会指向一个类目,那不是形态,是同义反复。
⭐ **但它照样登记**,并在证据栏注明「来源不独立,不计入形态判定」。

### ⭐ 登记按行,计数按独立事件 —— 两条规则的接口

**这两条以前是打架的,现在写死。**

| | 口径 | 为什么 |
|---|---|---|
| **登记**(写进 `discoveries.md`) | ⭐ **一条一行,不合并同类。零门槛。** 一场面试产出 4 条互相印证的溢出,就是 **4 行** | 合并会丢掉每次的具体语境和原话,**而原话是这本登记簿唯一不可再生的东西** |
| **计数**(`开分支登记门槛` / `N4开分支门槛` 数的那个数) | ⭐ **按「独立事件」合并。** 同一场面试 / 同一次对话 / 同一个来源里**互相印证**的多条,**合并计 1 次** | 与 N1 的来源独立性**同源**:**数的是独立的观察,不是条数。** 一场面试里的 4 条溢出,是**一个人在一次对话里说的话**,不是 4 次独立观察 |

**所以那 4 条溢出的正确处理是**:`discoveries.md` 里 **4 行**,累计次数栏计 **1 次**,并在证据栏注明「同一场,合并计 1 次独立事件」。

⛔ **不许反过来做**(登记合并成 1 行、计数按条数算 4 次)——那是**两头都错**:既丢了三条原话,又用一次观察凑出了开分支的门槛。

⚠️ **"互相印证"是判据,不是"同一场就一定合并"。** 同一场面试里两条**指向完全不同方向**的溢出(例:一条是你讲嗨的话题,一条是对方顺口透露的行业信息),是**两次独立观察,计 2 次**。合并的是"同一件事被说了几遍",不是"同一天发生的事"。

### ⭐ 空栏必须分成两种:**量不够** / **字段没记**

#### 先说旧的那一半(仍然成立):量不够时必须显式输出这句话

> **「这类信号现在看不出来,不是不存在。」**

对每一条达不到最小可见量级的信号,报告里要写成:

> **发散信号 N1 命名信号:⚠️ 本轮不可判(量不够)。** 语料只有 40 条、单批次。`N1语料门槛` 是约 150-200 条且跨 2 个批次。**这不代表没有新词在冒出来,只代表你现在的语料量分辨不出来。** 要看得出来,你需要再攒一批岗位语料。

**为什么这条是硬的**:

> **真正的风险不是「少了三类信号」,是用户跑出来一堆空栏、以为是自己没做对。**

一个空栏有几种完全不同的含义 ——「看过了,没有」和「看不出」——**而空栏本身把它们压成了同一个样子**。用户会默认是第一种,于是得到一个错误的结论:我这个方向没有任何别的可能性。

⚠️ **这与收敛环第 ⑤ 类决策是同一条纪律(正确地不下结论),只是用在了输入侧。**

#### ⛔ 而「看不出」本身还要再分成两种 —— 这一条最贵

**报告里凡是写「不可判」的地方,都必须标出它是下面哪一种。**

| 空栏 | 性质 | 用户该做什么 |
|---|---|---|
| ⚠️ **量不够** | ⭐ **再攒攒就有** | 继续跑,下一轮再看 |
| ⛔ **字段没记** | ⭐ **永久不可判** | ⛔ **攒到天荒地老也不会有。** 必须**从现在开始记**;而**过去那部分补不回来,别去补** |

⭐ **为什么必须分开**:报告里如果只有「差多少」这一栏,用户看到空栏会**一律理解成"再攒攒就行"**。⛔ **而对第二类,「再攒攒」这句安慰是错的建议** —— 他会照着继续跑三个月,然后拿到一模一样的空栏,且这三个月的数据同样补不上那个字段。

**属于「字段没记」的至少有这五个**(不是穷举,判据在表下):

| 没记的字段 | 它一停,谁就永久不可判 |
|---|---|
| **渠道**(这条是从哪儿投出去的) | 收敛环**决策 ③ 整条**。没有渠道,回应率就没有可比的分组 |
| **用的是哪一版材料** | 收敛环**决策 ①** 的效果无法回看:改过讲法之后有没有变好,得知道哪些记录用的是改前那一版 |
| **级别**(这个岗位当时判的是哪一档) | 收敛环**决策 ④ 整条**。「某个档位的回应率系统性偏离」—— 没有档位这一栏,连"某个档位"都不存在 |
| ⭐ **这条岗位是怎么进来的**(搜索命中 / 推荐 / 对方推来) | 发散信号 **N6 整类**;以及 N1 / N3 的**来源独立性**核对(伪扩散判不了) |
| **JD 里有没有写学历门槛**(及同类的客观门槛栏) | 收敛环**决策 ②** 与发散信号 **N5** 的判据。「因同一个客观不可变条件被拒」—— 没有这一栏,"同一个条件"是回忆,不是数据 |

> ⭐ **判据比清单更重要(清单一定会漏)**:**这个字段是不是"只能在事情发生的当下记下来"?** 是 → 一旦没记,那一段就永久不可判。
> 理由类型、原话、条数这些**能事后从记录里数出来**的,不属于这一类;而「当时投的是哪个渠道」「当时用的是哪一版材料」,事后**只剩回忆,而回忆不是数据**。

#### ⭐ 「字段没记」这一类必须输出的三件事(缺一不可)

**报告里每一条「字段没记」的空栏,都要写全下面三句** —— ⛔ 少写任何一句,用户都会退回"再攒攒就行":

1. ⛔ **这个决策 / 信号在过去那段数据上永久不可判** —— **不是本轮不够**
2. ✅ **从现在开始记什么** —— 写成一个能立刻照做的动作("从下一条起,台账加一栏『这条是怎么进来的』,三选一:搜索命中 / 推荐 / 对方推来")
3. ⛔ **过去那部分补不回来,别去补** —— **不许让用户回头凭记忆补填**。凭记忆补出来的字段,会和真数据长得一模一样,然后在下一轮被当成 `你给的` 用掉

**照这个形状写**:

> **发散信号 N6 邻接漂移:⛔ 本轮不可判 —— 字段没记,不是量不够。** 语料里没有「这条岗位是怎么进来的」这一栏。
> ⛔ **已经攒下的这 40 条,永远判不了 N6**:没有来源,就分不出「市场把我投射到了这里」和「我自己搜到了这里」,而这正是 N6 的全部内容。**再攒 200 条也不会变。**
> ✅ **从现在开始**:下一批语料每条加一个来源字段(搜索命中 / 推荐 / 对方推来)。**改一次记录格式,下一轮这一整类就从「不可判」变成「可判」—— 这是本报告里成本最低的一条。**
> ⛔ **不要回头补这 40 条。** 凭记忆补出来的来源会和真记录长得一模一样,然后在下一轮被当成证据用掉。

⚠️ **报告与模板里这两类必须用不同的标记,⛔ 不许共用一个"不可判"。** 统一写法:`⚠️ 不可判(量不够)· 差 X` / `⛔ 不可判(字段没记)· 永久`。

⭐ **这一节同时管收敛环。** 上表五个字段里有三个(渠道 / 用的是哪一版材料 / 级别)卡的是**收敛环的决策 ① ③ ④**,不是发散信号 —— 所以「不可判」的两分法要在报告的**两节里都用**,不是只用在 3.1 那张信号表上。

### 五类结果层决策

| # | 决策 | 什么时候用 | 硬要求 |
|---|---|---|---|
| **①** | **开一条探路分支** | 某信号累计 ≥ 它自己的开分支门槛(通用 `开分支登记门槛`;**N4 用 `N4开分支门槛`**),**且你写得出证伪判据**。⭐ **累计数的是「独立事件数」,不是登记行数**——见上节。⭐ **且这个信号的最小可见量级必须先过**——见「两条门槛打架时」 | ⛔ **写不出证伪判据 → 不许开**,保持登记态。见下面纪律 2。⛔ 拿登记行数去凑门槛 → 一场面试就能开分支,那是把零门槛登记当成了证据。⛔ **最小可见量级不过 → 这一条本轮根本不评估**(最小可见量级优先) |
| **②** | **重选参照系** | N2 成立:同一段经历在另一个类目里是优势而不是缺口 | 改的是 `positioning.md` 的**「目标形象」**那一句,不是简历里的措辞。⚠️ 改目标形象会让下游全部重来一遍,**一轮最多改一次** |
| **③** | **关掉一条分支** | N5 成立,或某分支到期未达证伪判据 | ⛔ **必须写下关闭依据**,写进 `branches.md` 且不删行。没有关闭依据的分支会反复复活——每隔几周你就会重新想起它一次 |
| **④** | **升级为非求职产出** | N4 成立**且产出了可交付物**(一份行业情报 / 一个可持续的联系人 / 一条产品线索)。⭐ **这三个例子分别对应溢出栏的第 ② ② ③ 类** —— 所以 N4 必须收全三类,只收"你讲嗨的话题"那一类,这条决策就永远没有输入 | 只是聊得开心、没有可交付物 → 不升级,保持登记态 |
| ⑤ | **登记但不行动** | 以上都不成立 | ⚠️ **与收敛环的「不动」不同:这里必须留痕。** 写进 `discoveries.md`,等第 2、3 次出现——收敛环的不动是「不改」,发散环的不动是「记下来,先不动」。⭐ **照下面那句模板的形状写**,别只写"已登记"。(零门槛登记的完整论证见 §6.0,此处不重复)|

### ⭐ 决策 ⑤ 也要有形状:照这句写

**⑤ 必须写成一段有主语的结论**,形如:

> **本轮不开任何分支,但已登记 4 条。** 本轮新登记 4 条(发散信号 N3 两条、发散信号 N4 两条),按独立事件合并后是 **2 次**(其中 N4 的两条来自同一场面试、互相印证,合并计 1 次)。`N4开分支门槛` 是 2 次独立事件**且跨 ≥ 2 场**——次数够了、场次不够,**差 1 场**。N3 那条差 1 次独立事件。**两条全部保持登记态**,落在 `discoveries.md` 第 3-6 行。**下一轮优先看**:再面一场就能判 N4 这条开不开得起来。

⛔ **不许省略成「已登记,继续观察」。** 那句话既没说登了几条、合并成几次,也没说差门槛多远、卡在哪一步(是次数不够,还是判据写不出来),**读者无法判断它是真的数过还是根本没数**。

**为什么这一句是硬的**:

> **发散环那一节最容易退化成一张空表**——这是本模块自己点名的最大风险(见「量不够时必须显式输出这句话」一节)。而一句"必须留痕"挡不住空表,**因为一张空表也可以宣称自己留过痕**。只有当 ⑤ 被写成"登了几条 / 合并成几次 / 差多远 / 卡在哪一步",读者才验证得了这个环真的跑过。
> ⚠️ 这与收敛环第 ⑤ 类决策是**同一条纪律**,只是那边管"不改"、这边管"不开分支"。两边都给了模板句,**两边都不许省**。

### 三条防失控纪律

**没有这三条,发散环就退化成无差别大量投递。**

1. **配额制**
   探路分支占本轮总投递的比例 ≤ `探路配额上限`;同时活跃的分支 ≤ `活跃分支上限`。
   **主线保守 + 一小部分高方差**——这个配比本身就是纪律,不是随手定的比例。⛔ 配额超了就砍分支,不是提配额。

2. **每条分支自带证伪判据 + 截止日期** ⭐
   写法是一句可判定的话:「**投 N 条,X 周内 0 回应 = 关掉**」。
   - ⛔ **没有证伪判据的分支不许开。** 写不出来说明你其实不知道自己在验证什么
   - ⛔ **没有截止日期的分支不许开。** **一条没有关闭条件的探路分支就是一个无限期的资源漏洞**——它不会以失败告终,它会以「还在跑」的名义一直占着配额
   - ⚠️ **对称的两条**:未到期但暂时 0 回应 → **不许提前关**(那是在用收敛环的耐心标准杀发散环);到期未达判据 → **不许延期**(一次延期之后就没有第二次拒绝的理由了)

3. **成本可控**
   探路的全部价值是「**低成本**获取市场反馈」。因此 ⛔ **不为一条探路分支重写全套材料**——最多是换一个讲法的顺序、调一段侧重。
   **成本一旦超过阈值,它就不是探路了,是转型**,那是另一个决定,不该在这个循环里悄悄做完。

---

## 6.4 阈值参数化 + 来源等级

⭐ **本模块不写死任何数字。下面每一个都是编的,必须按你自己的情况标定。**

| 参数 | 默认 | 来源等级 | 怎么按你自己的情况标定 |
|---|---|---|---|
| `本轮最小样本` | 本轮新增 ≥ 20 条投递**且** ≥ 8 条有回应 | `默认建议值` | 看你自己的**回应率**:把「有回应数」定在你历史回应率下,至少能分出三档理由类型的量。回应率越低,需要的投递数越大 |
| `同类质疑重复门槛` | 3 家不同公司 | `纯占位待校准` | ⚠️ 完全是编的。标定方式:回头看你已经改过的那些讲法,**当初是在第几次质疑之后改的、改完有没有变好**。没有历史就先用 3,并在报告里标出来 |
| `硬性排除升级门槛` | 连续 5 家因同一客观条件被拒 | `纯占位待校准` | 这条宁可定高。**升级一条硬性排除 = 永久砍掉一块搜索面**,错误的代价是不对称的 |
| `渠道对比最小样本` | 每个渠道各 ≥ 10 条 | `默认建议值` | 两个渠道的条数差太多时(比如 30 比 5),⛔ **不许直接比回应率**——先说明样本不可比 |
| `定级阈值冷却期` | 改过一次后,2 个复盘周期内不再动 | `纯占位待校准` | 至少要长到「上一次改动的效果能被观察到」。你的平均回应周期是多久,冷却期就不该短于它 |
| `探路配额上限` | 占本轮总投递 ≤ 20% | `默认建议值` | 你能承受多大的下行?**这个数字问的是你的容错空间,不是市场** |
| `活跃分支上限` | 同时 2 条 | `默认建议值` | 超过 2 条,你会记不住每条在验证什么——那时配额还在,注意力已经没了 |
| `开分支登记门槛` | 同一信号累计 ≥ 3 次**独立事件** | `纯占位待校准` | ⭐ **数的是独立事件数,不是 `discoveries.md` 的行数**(同一场 / 同一来源里互相印证的多条合并计 1,见 6.3「登记按行,计数按独立事件」)。⚠️ N3 / N4 这类天然低频的信号,3 次可能要好几个月——**所以 N4 单独有一个更低的门槛,见下一行**。要对别的信号类型另设门槛也行,但**必须写下来** |
| ⭐ `N4开分支门槛` | **2 次独立事件,且跨 ≥ 2 场不同的面试 / 对话** | `纯占位待校准` | ⚠️ 这个 2 是编的。**它为什么单独存在**:N4 的最小可见量级是"1 场就能登记",而通用门槛是 3 次——只面过 2 场的人**在结构上永远开不了这条线**,还会以为是自己没做对。定成 2 次 + 跨 2 场,是让它在**第 2 场面试之后就有可能开起来**,同时用"跨 2 场"挡住"一场面试里说了三件事就开分支"。<br>⭐ **说实话的部分**:即便按这个门槛,**这条线通常也要 3-5 场面试才真的开得起来**——因为不是每场都会跑题跑出东西。**在此之前 N4 停在登记态是正常的,不是你做错了什么。**<br>⛔ 不许为了"让它动起来"临场把门槛降到 1 次——1 次独立事件就开分支,等于把零门槛登记直接当成了证据 |
| `分支默认截止期` | 开启后 4 周或 3 个复盘周期,以先到者为准 | `默认建议值` | 不短于你的平均回应周期 × 2。**短于这个数,你关掉的是等待时间,不是分支** |
| `N1语料门槛` | 约 150-200 条岗位语料,跨 ≥ 2 批次 | `纯占位待校准` | 看你**每批采多少**:至少要两批才能谈「变化」 |
| `N1独立来源门槛` | ≥ 3 个**互相独立**的来源 | `纯占位待校准` | ⚠️ 这个 3 是编的。它防的是伪扩散——同一个来源换几个岗位名重复投放。你的语料里转述来源占比越高,这个数就该定得越高。⭐ **同一条口径同时用于 N6 与 N3**:N3 的"≥ 3 条才看得出形态"数的也是**独立来源数**(同一个中间人来三次 = 1 个来源),见 6.3「为什么 N3 也要这条口径」 |
| `N2理由门槛` | ≥ 30 条带明确理由的拒绝 | `纯占位待校准` | 注意是**带明确理由**的条数。你的明确理由型占比越低,需要的总回应数越大 |
| `N5同线门槛` | 同一条线 ≥ 15 条岗位 | `纯占位待校准` | 要够多才能分清「这条线够不着」和「这几家刚好都要求这个」 |

⛔ **凡是你在报告里用到的数字,都要标它是这三种里的哪一种,或标 `你给的`。**

> **一个没标来源的阈值和一个编的阈值无法区分。** 本模块目前**没有一个阈值是 `实践校准` 级**——全部是 `默认建议值` 或 `纯占位待校准`。**标出来不是弱点,是让你知道哪些数字该先动。**

---

## 6.5 输出物

### 1. 周期性分析报告

模板见 [`templates/周期性分析报告.md`](templates/周期性分析报告.md)。仅探索填摘要与主动机会部分即可;有历史材料的复盘部分才适用以下要求,不适用的项注明缺什么证据,不强凑决策:

- **收敛环与发散环分两节写**,⛔ 不许合并成一份「本轮总结」
- **每节至少产出一个决策**(收敛环的 ⑤「什么都不改」算一个决策,且必须写成有主语的结论)
- **发散环那一节要逐行输出 N1-N6,包括「本轮不可判」的行**
- 报告开头是**样本体检**,不是结论。⭐ **样本体检之外还要有一张「字段体检」** —— 两者性质不同,⛔ 不许合并(见 6.3「空栏必须分成两种」)
- ⭐ **每一处「不可判」都要标是 `⚠️ 量不够` 还是 `⛔ 字段没记`**;后者要写全三件事(永久不可判 / 从现在开始记什么 / 过去别回头补)
- ⭐ **回应分层里平台状态型单列旁栏**,⛔ 不计入「有回应」数(见 6.1)
- ⭐ **收尾三节缺一不可**:`下一轮要补的输入`(补量)· `下一轮的执行改进项`(该问没问 / 该追没追)· `回溯提示`(当时该做而没做的动作)—— 见下面两小节

#### ⭐ 「该问没问 / 该追没追」有自己的出口 —— ⛔ 不进 `discoveries.md`

**这一整类信息以前只有登记簿一个落点,而登记簿只通向「开分支」。** 于是它进去之后出不来:它永远凑不出独立事件数,也永远写不出证伪判据 —— ⭐ **因为它根本不是一个待验证的方向,它是一件下一轮该换个做法的事。**

典型形状:面试里那条本该追问的没追(「谁对最终用户的验收负责」)· 对方主动来找的时候没问清是哪条业务线 · 拿到明确理由的那几条没顺手问一句"最看重的硬要求是什么"。

> **出口:报告的「下一轮的执行改进项」一节**(模板 §5.2)。**它是执行改进项,不是发散信号。**

- ✅ 每条写成**下一轮的一个动作**:「下一轮面试收尾前,把红旗绿旗那一栏标了『未验证』的条目逐条问一遍」
- ⛔ **不许登记进 `discoveries.md`。** 登记簿装的是"还没想明白但值得记着的**外部信号**";⭐ **"我该问没问"不是外部信号,是我自己的执行动作** —— 混进去会把登记簿稀释成一份待办清单,而登记簿最不该被稀释
- ⚠️ **这是 L2 兜底规则的一个明确例外**:L2 说"归不了类的默认进 `discoveries.md`",但这一类**不是归不了类,是有归宿**。⛔ 不许用兜底把它扫进登记簿
- ⛔ **也不进 `branches.md`**:它不需要配额,也写不出证伪判据 —— 它不是一次试验

#### ⭐ 回溯提示:台账里有没有「当时该做而没做」的动作

**每轮复盘做一次,写进报告 §5.3。** 扫一遍台账与面试记录,找**上游模块本该跑、而当时没跑**的地方。至少查这几条:

- 收到过 offer,但**从没做过横向对比**
- 面完了,但**没有当天的复盘记录**(那一场的溢出栏、红旗绿旗实测结果因此全部丢了)
- 有过明确理由型拒绝,但**那句原话没被抄进台账**
- 有过对方主动来找,但**没标反向吸引**

⭐ **目的不是让用户后悔。** 已经过期的机会**追不回来**,说它只会让人难受,且不改变任何事。⛔ **所以措辞一律落在「下次这类事发生时提醒我」上**,不落在「你当时应该……」上。

**照这个形状写**:

> **回溯提示(不是追责)**:台账里有 2 条在三个月前进到过 offer 阶段,**没有对应的对比记录**。那两个机会现在已经过期,⛔ **补不回来,也不必去补**。
> ✅ **下一轮的动作**:⭐ **下次台账里任何一条走到 offer 阶段,当天提醒我先跑一次对比再答复**;同理,任何一条走到面试阶段,当天提醒我留一份复盘记录。

⚠️ **这一节的产出是「下次的触发条件」,不是「这次的检讨」。** ⛔ 写不出触发条件的那一条,就别写进来。

### 2. `discoveries.md` —— 异常登记簿

模板见 [`templates/discoveries.md`](templates/discoveries.md)。字段契约见 [`../../docs/module-contracts.md`](../../docs/module-contracts.md) §9。

- ⭐ **登记零门槛**(完整论证见 §6.0「两环唯一的接口」,此处不重复):一次性的、看起来像噪声的,照登不误
- ⭐ **一条一行,不合并同类**;「累计出现次数」栏记的是**独立事件数**(同一场 / 同一来源里互相印证的多条合并计 1),由你在复盘时统计回填。**这两句不冲突,是两个口径**——见 6.3「登记按行,计数按独立事件」
- ⭐ **原始证据用原话,不概括。** 概括会把「他们说想找做过某类交付的人」压成「方向不匹配」——而前者能指向一个具体的新类目,后者什么也指不出来
- 已升级为分支的条目**不删行**,改状态

### 3. `branches.md` —— 探路分支

模板见 [`templates/branches.md`](templates/branches.md)。字段契约见 [`../../docs/module-contracts.md`](../../docs/module-contracts.md) §10。

- **证伪判据与截止日期是必填**,不是可选
- 关闭的分支**不删行**,写关闭依据
- ⚠️ 这是全仓唯一一条「发散环 → 执行层」的耦合:定级模块对探路分支下的岗位走**一套更宽的阈值**,否则新方向的岗位永远过不了为老方向标定的门槛,发散环等于白开

### 4. 对 `positioning.md` 与材料讲法的修订建议

**只给建议,不直接改。** 定位文件里的「必要条件」和「硬性排除条件」两栏**必须用户本人写**——agent 推断出的定位会让下游所有结论建立在一个用户没同意过的前提上,而且很难被发现,因为它写得很像用户自己会说的话。

---

## 6.6 方法论血统

**这四条不是本模块发明的,是直接引用。** 每条对应一个具体机制:

| 出处 | 它说什么 | 在这里具体对应哪个机制 |
|---|---|---|
| **《Why Greatness Cannot Be Planned》** —— novelty search / stepping stones | 目标越明确,越容易到不了它——因为「离目标更近」这个筛选标准会砍掉所有通往它的踏脚石 | ⭐ **发散环存在的理由本身**,以及「登记不设门槛」这一条。收敛环就是那个「离目标更近」的筛选器;如果只有它,所有踏脚石都会被当噪声滤掉 |
| **《Traction》** —— bullseye 外环并行小样本测试 | 你以为最好的渠道通常不是最好的;正确做法是对外环渠道做**小样本并行测试**,而不是先想清楚 | **配额制**(6.3 纪律 1):主线保守 + 一小部分高方差,以及「渠道对比最小样本」这一条 |
| **《Obviously Awesome》** —— market frame 重选 | 同一个产品换一个参照系,就从「功能缺一块」变成「品类里最好的」——**改的是参照系,不是产品** | **N2 错配信号 → 决策 ②「重选参照系」**。同一段经历在另一个类目里是优势而不是缺口。⭐ **这是为什么 N2 属于发散环而不是收敛环** |
| **《Antifragile》** —— barbell / 有限下行 | 大部分资源放在极保守的一侧,一小部分放在下行有限、上行不封顶的一侧 | **三条防失控纪律的整体形状**:配额上限管住下行,证伪判据 + 截止期保证「小成本试错」是真的小成本,而不是一个慢慢变大的坑 |

⛔ **不要在这里重新发明一套理论。** 这四条已经足够解释本模块的每一条纪律,再加只会稀释。

---

## 来源标注

⭐ **报告里的每一条结论、每一个取值,都要标成下面三种之一。**

| 标注 | 意思 | 能不能支撑一个决策 |
|---|---|---|
| `你给的` | 用户直接告诉你的,或来自台账 / 面试复盘里的**原话** | ✅ |
| `公开可查` | 你现场查到的(岗位语料里的公开文本、公开的岗位要求),**必须附来源与查询日期** | ✅ |
| `我推测的` | 你按常识、按行业惯例、按「一般来说」补的——**包括你对拒绝原因的推断** | ⛔ **不能。** 只能进「要证实它,你该问谁 / 查什么」 |

**`我推测的` 的每一条,必须附一句「要证实它,你该问谁 / 查什么」**,写成一个能直接问出口的问题。

> **为什么这条必须硬**:这类分析最典型的失败模式,是把「对方为什么拒绝我」这件**你根本不知道的事**,补成一个听起来很合理的原因,然后基于它改定位。
> ⚠️ **「对方没说理由」和「对方的理由是我猜的那个」之间的差距,正是这整个模块的全部价值所在。** 一旦允许推测项支撑决策,报告就退化成一份读起来很顺、但每一条都可能是编的东西。

---

## 不对劲的时候

| 症状 | 最可能的原因 | 你下一句该说什么 |
|---|---|---|
| ⭐ **每轮都给出一堆改进建议** | 没有样本门槛,或门槛设得太低。**一个对任何数据都能给出改进建议的框架,和一个坏掉的框架无法区分** | 「先告诉我这一轮一共投了多少条、其中多少条有回应、多少条带明确理由。**整体样本不足时停止整体归因及②/④,另核对①/③的独立门槛**;未触发的项写「本轮不改」及差多少。」 |
| ⭐ **发散环栏目全是空的** | 多半是量级不够,**不是没有信号**。N1 / N2 / N6 需要更大的样本才看得出来 | 「这几类信号需要更大的样本才看得出来。**先只看反向吸引和溢出这两类**,其余的逐行写明「本轮不可判 + 差多少 + 这不代表不存在」。」 |
| **它把「不太合适」这类回应解读成了具体原因** | 模糊拒绝型被当成了明确理由型 | 「把回应按明确理由 / 模糊 / 强正向 / 无回应重新分四层,**模糊拒绝型只计入总量,不许拿来解释任何事**。」 |
| **它建议改定位,但依据只有一两次拒绝** | 收敛环的决策 ② 被单次事件触发;或者它把主观评价当成了客观条件 | 「② 只在**连续多家因同一个客观不可变条件被拒**时才成立。这几条是客观条件还是主观评价?逐条标出来,主观的**永不升级为规则**。」 |
| **分支开了一堆,或者某条分支已经跑了很久还在** | 配额与截止期没生效,或者当初就没写证伪判据 | 「把 `branches.md` 里每条的**证伪判据和截止日期**列出来。缺任一项的当场补上,补不出来的就关掉——**没有关闭条件的分支是无限期的资源漏洞**。」 |
| **它把一次反向吸引直接变成了新方向** | 登记与开分支这两步被合并了 | 「登记归登记。**开分支要过它自己的门槛,而且我得写得出证伪判据。** 现在只登记进 `discoveries.md`,别动定位。」 |
| ⭐ **三条反向吸引全是同一个中间人推来的,却被当成"形态"** | N3 数的是**条数**而不是**独立来源数**——伪扩散换了个场景 | 「这三条各自来自谁?**同一个中间人 / 同一家公司来的合并计 1 个来源。** 合并之后还剩几个独立来源?不足 3 个就写「形态本轮不可判」,⭐ **但照样登记**,并注明「来源不独立」。」 |
| ⭐ **一场面试的 4 条溢出被数成了 4 次,正好够开分支** | 计数用了**登记行数**,而不是**独立事件数** | 「登记按行没错(4 行都留着)。但**计数按独立事件合并**:这 4 条是不是同一场里互相印证的同一件事?是 → **计 1 次**。指向完全不同方向的才分开计。⛔ 一次观察不能凑出门槛。」 |
| ⭐ **报告里一堆「不可判」,用户照做又攒了三个月,空栏一格没变** | 「量不够」和「字段没记」被压成了同一种空栏 —— 而后者**再攒也不会有** | 「把每一条不可判标成两种之一:`⚠️ 量不够 · 差 X` 还是 `⛔ 字段没记 · 永久`。**字段没记的那几条写清三件事**:永久不可判 / 从现在开始记什么 / ⛔ 过去那部分别回头补。」 |
| ⭐ **某个信号写着「本轮不可判」,同一份报告里它又够了开分支门槛** | 两条门槛给出相反答案,谁优先没写 | 「**最小可见量级优先。** 可见量级不过 → 开分支门槛本轮不评估,把这句话写出来。⛔ 不许拿"次数够了"越过它 —— 登记零门槛,次数在量级不足时本来就能被噪声凑出来。」 |
| ⭐ **整轮样本不达标走了 ⑤,可某一条明明已经过了自己的门槛,也被一起压掉了** | 只写了「逐条过门槛才触发」,没写「整轮不达标时已过门槛的那条怎么办」 | 「那一条**照样输出**,带标注「本轮整体样本不足,这条是单点触发,谨慎采纳」。⛔ 例外是决策 ②(改定位 / 加硬性排除)与 ④(改定级阈值)—— 代价不可逆,整轮不达标时并入 ⑤,**但要把"它已过门槛"这句话写出来**。」 |
| ⭐ **「已读不回」「简历未通过」被临场归进了某一层,样本刚好因此达标** | 平台状态在四层里没有归宿,执行者只能临场判一个 | 「平台状态**单列旁栏**,⛔ 不计入 `本轮最小样本` 的「有回应」数 —— 它分不出任何理由档,用它凑够门槛只会得到"体检说够了、收敛环没米下锅"。它唯一的用途是证明**对方看到了**。」 |
| ⭐ **「这条我当时该问没问」被登记进了 `discoveries.md`,然后再也没动过** | 这类信息只有登记簿一个落点,而登记簿只通向「开分支」 | 「把它移到报告的**「下一轮的执行改进项」**一节,写成一个下一轮的动作。⛔ 它不是发散信号,也写不出证伪判据 —— **它是我自己的执行动作,不是外部信号**。」 |

---

## 三级自救阶梯

> **不许一出问题就让人接管。** 先自救两级,第三级才回报人,且回报必须带建议动作。

| 级 | 什么时候到这一级 | 你该做什么 | ⛔ 不该做什么 |
|---|---|---|---|
| **L1 有现成的,直接走** | 本文件里有明确规则命中(样本门槛判定、四层回应分层 **+ 平台状态型旁栏**、N1-N6 归类、五类决策、**两条门槛冲突时谁优先**、**空栏是量不够还是字段没记**、**整轮不达标时已过门槛那条怎么办**、来源标注、输出格式) | 按规则执行,**不问**。已有规则能裁决的,自己裁决 | ⛔ 不为「确认一下」打断用户。「模糊拒绝要不要算进理由分层」「已读不回算不算有回应」这类问题本文件已经写死了,别再问 |
| **L2 没现成的,尽力走通 + ⭐ 沉淀** | 用户的记录是散的(聊天记录转述、回忆、语音转文字)/ 某条回应不知道归哪一层 / 某个信号跨在两类之间 | ① 自己把散记录整理成 `ledger.md`,**不要求用户先填模板** ② 归不了类的信号**默认进 `discoveries.md`**(登记免费,错登记的成本远低于漏登记)。⚠️ **这条兜底有两个明确例外**:⛔ 「该问没问 / 该追没追」不进登记簿,它有自己的出口(报告 §5.2 执行改进项);⛔ 复盘卡 §4b「对方说了什么值得记的」也不进登记簿、也不归 N4,它回流的是**那家公司的疑点表**(见 6.1 输入二)。**两者都不是归不了类,是有归宿** ③ ⭐ **走通之后写回去**:新的分层判据写进报告的「口径」一节,新的参数标定写进你的参数表,下次直接回 L1 | ⛔ 不把「这次绕过去了」只留在对话里。没沉淀 = 下次还得再试一遍 = 等于没走通。⛔ 不因为归不了类就丢掉一条信号;⛔ 也不因为有兜底就把「该问没问」扫进登记簿 |
| **L3 实在不行,才回报人** | L2 也走不通 / 只有用户本人才有的事实(他愿不愿意试这条新方向、他的容错空间多大、那次跑题他自己是不是真的兴奋)/ 要动 `positioning.md` 的必要条件与硬性排除条件 | 输出 **症状 + 已经试过什么 + 建议你做什么(给可选项)**。例:「有 3 条反向吸引都指向同一类岗位,但你从没投过(症状)。我按 N3 归类并登记了 3 次,够 `开分支登记门槛`(已试)。**建议你做**:要么写一条证伪判据把它开成探路分支,要么明确说不感兴趣、我把它标成已忽略——**两种都行,但别让它一直挂着**。」 | ⛔ 不输出裸错误;⛔ 不说「请提供更多信息」这种没有指向的话;⛔ 不替用户改 `positioning.md` 的必要条件 |

---

## 变更日志

- **v0.1.5**(依据本轮 **T-H2 区分度固件**的修订,来源:`fixtures/06-positioning/` 本轮新增的 7 对双向断言固件;只有下面这一条是被固件真的推翻的判据,其余 6 对首跑即有区分力):
  - ⭐ **写死「复盘卡 §4b 不是 N4 的采集点」**(§6.1 输入二 + L2 兜底例外各补一处,正文已生效)。**为什么改**:固件 `H2-N4三类归宿.{hit,miss}.md` 两份只差"这三条落在上游复盘卡的哪一栏"。首跑时 hit 正确归 N4,**miss 却也被登记进了 `discoveries.md`**——因为本文件里**没有任何一句话**把 `04-interview` §4b「对方说了什么值得记的」排除在外,而 L2 兜底写着"归不了类的信号默认进 `discoveries.md`",于是它被兜底扫了进来。⛔ 这与 `04-interview` §7.3 明写的「**回流疑点表,不是方向优化的发散侧**」直接冲突。
  - ⚠️ **性质是跨文件缺口,不是本模块判错**:上游把归宿写清楚了,下游没有对应的一句"我不收它"。**代价是双向的**:登记簿被一批本该回流疑点表的公司事实稀释,而那家公司的疑点表一条都没更新——对方主动给的那件事等于没给。
  - 仅改判据表述与兜底例外,未动 `discoveries.md` / `branches.md` 契约(§9 / §10 最小字段不变)→ **patch**。

- **v0.1.4**(来自一次**合成回溯测试**:8 个案例,框架在**不看真值**的情况下跑完,只看它自己产出的报告里哪些格填不出来 / 填得自相矛盾):
  - ⭐ **P0 · 空栏拆成两种:「量不够」与「字段没记」**(3 个案例复现)。原文只有「差多少」一栏,于是**两种性质完全相反的空栏被压成了同一个样子**:前者再攒攒就有,后者**攒到天荒地老也不会有**。新增 6.3「空栏必须分成两种」:五个属于后者的字段(渠道 / 用的是哪一版材料 / 级别 / 这条岗位是怎么进来的 / JD 里有没有写学历门槛)+ 一条判据(**这个字段是不是只能在当下记**)+ **必须输出的三件事**(永久不可判 / 从现在开始记什么 / ⛔ 过去别回头补)。⛔ 明写:**「再攒攒」这句安慰对第二类是错的建议。** 报告模板同步拆栏 + 新增「字段体检」表。
  - ⭐ **P0 · 两条门槛冲突写死优先级**(case-05):某信号「最小可见量级」说不可判、「开分支门槛」说够了。**最小可见量级优先** —— 前者管"这类信号现在看不看得出来",后者管"看出来之后要不要行动",**前者不过,后者根本不该被评估**。
  - ⭐ **P0 · 补上「门槛是逐条的」的反方向**(case-05):整轮样本体检不达标走 ⑤ 时,**已单独过了门槛的那一条仍然输出**,带标注「本轮整体样本不足,这条是单点触发,谨慎采纳」。理由:那条门槛的分母不是本轮投递总数,**一起压掉等于让样本量惩罚一条本来有证据的结论**,而且压掉之后它不会在下一轮自动重现。⛔ 例外:决策 ②(永久砍搜索面)与 ④(让上一轮数据不可比)代价不可逆,整轮不达标时并入 ⑤,**但必须把"它已过门槛"写出来**。
  - **P1 · 平台状态型(「已读不回」「简历未通过」)在四层分层里有归宿了**:⛔ 不是第五层 —— 四层分的是"对方的话里有多少可判定信息",而平台状态**里没有对方的话**,所以它是**并排的旁栏**。⭐ **单列计数,不计入 `本轮最小样本` 的「有回应」数**(它分不出任何理由档,用它凑门槛会得到"体检说够了、收敛环没米下锅")。唯一用途:**证伪"无回应多半是没被看到"**。原文把这个决定性分叉留给了临场判断。
  - **P1 · 「该问没问 / 该追没追」有了自己的出口**:它不是发散信号,⛔ **不进 `discoveries.md`**(登记簿只通向"开分支",它进去就出不来),落在报告 §5.2「下一轮的执行改进项」。同时在 L2 兜底规则上开了这一个明确例外。
  - **P1 · 补「不能联网时退化成什么」**(口径与 `03-company-analysis` 一致):主链路不依赖联网;变的是 `公开可查` 整档不可用 / 报告顶部写一行 / **来源独立性核对退化成保守口径(判不出就合并计 1)** / 决策 ② 的旁证拿不到。
  - **P1 · 周期复盘加「回溯提示」**(case-05:用户三个月前本该跑 offer 模块,两个机会已经过期,框架没有任何机制指出这一点):扫台账找"当时该做而没做"的动作。⭐ **目的不是让用户后悔** —— 措辞一律落在「下次这类事发生时提醒我」上。
  - 未动 `discoveries.md` / `branches.md` 契约(§9 / §10 最小字段不变)→ **patch**。

- **v0.1.3**(来自一次**跨文件一致性审计**:只看同一件事在不同文件里说得一不一致):
  - ⭐ **`discoveries.md` / `branches.md` 的模板本体收敛到本模块**,`00-workspace/templates/` 下的两份副本删除、改为索引。两份副本**已沿相反方向漂移**(那边"合并会让「累计出现」失真"暗示累计 = 行数,这边"登记按行、计数按独立事件"),而 `00-workspace` 是仓库自己指定的入口 —— **照入口建工作区的人拿到的正好是被本模块推翻的那一版**。副本里的「每个字段为什么要它」表已搬进本模块两个模板;多出的 `触发它的登记` / `学到了什么` 两字段无下游消费者,删除(追溯指针只存在 `discoveries.md` 的「是否已升级为分支」一侧)。**契约 §9 / §10 未动。**
  - ⭐ **`N` 前缀警告改指真正的碰撞**:不是 `D`,是 `N` —— 必要条件 `N1`-`N3`(定级 / offer / 面试一页纸)与发散信号 `N1`-`N6` 同号不同义。要求报告里一律写全称。
  - ⭐ **N3 门槛等级 `默认建议值` → `纯占位待校准`**:它用的 3 就是 `N1独立来源门槛`(`纯占位待校准`,注释写着"这个 3 是编的")。**最被依赖的门槛不能标得比它的来源硬。**
  - **两处降级补上具体动作**(缺面试复盘 / 缺 `positioning.md`),口径与 `04-interview` 缺上游时一致。
  - **发散环决策 ⑤ 补模板句**(与收敛环 ⑤ 同构);「登记零门槛」的完整论证收成 §6.0 一处 + 两处索引;一处自我版本引用 `v0.1.1` 改成"本模块目前"。
  - 未动契约 → **patch**。

- **v0.1.2**(来自一次**端到端实跑测试**:测试者在空白工作区里只拿仓库文件跑完主链路):
  - ⭐ **N4 从 1 类扩成 3 类**,与上游复盘卡的溢出栏对齐(① 你讲得比对方还兴奋的话题 ② 对方无意透露的行业信息 ③ 可复用的线索)。原文 N4 只定义了第 1 类,**「行业信息」与「可复用线索」在 N1-N6 里无归宿**——而决策 ④(升级为非求职产出)举的例子恰恰是"一份行业情报"。
  - ⭐ **写死「登记按行,计数按独立事件」** —— `discoveries.md` 要求"一条一行不合并",而开分支门槛是"累计 ≥ 3 次",一场面试产出 4 条互相印证的溢出时**登记 4 行、计数算几次**原文没写。现在:登记按行(零门槛、不合并),计数按独立事件合并(同一场 / 同一来源里互相印证的多条计 1 次)。理由与 N1 的来源独立性同源:**数的是独立的观察,不是条数。**
  - ⭐ **新增 `N4开分支门槛`**(2 次独立事件且跨 ≥ 2 场,`纯占位待校准`)。原文 N4 的最小可见量级是"1 场",而通用开分支门槛是"累计 ≥ 3 次",**只面过 2 场的人在结构上永远开不了这条线**;SKILL 说"可以对不同信号设不同门槛"却没给 N4 默认值。同时明说:**即便如此,这条线通常也要 3-5 场面试才真开得起来——在此之前停在登记态是正常的,不是你没做对。**
  - ⭐ **来源独立性口径补到 N3**。v0.1.1 只给了 N1 / N6,但**同一个中间人来两次,在 N3 上是一模一样的伪扩散**;而 N3 是新用户第一周唯一看得出的两类信号之一——**在最容易被看到的信号上没有这个口径,风险比 N1 更大**。
  - **「开跑前」的最小可接受形态补一行「你会拿到 X,但拿不到 Y」**:10-20 条够跑完一轮拿到一份诚实的报告,⛔ **不够产出收敛环的任何一条实质决策**(`本轮最小样本` 是 ≥ 20 条投递且 ≥ 8 条有回应)。
  - 仅改判据表述与参数表,未动模块结构与 `discoveries.md` / `branches.md` 契约 → **patch**。

- **v0.1.1**:⭐ 给 N1 / N6 补上**来源独立性**口径 —— 计入扩散的是**互相独立的来源数**,同一来源来的多条合并计 1;新增 §6.3 小节「什么叫扩散」与参数 `N1独立来源门槛`。原文里"扩散到多城多类公司"只写在**定义栏**,没有任何可执行的计数口径,可执行的那部分(最小可见量级)只数条数与批次,于是**真扩散与伪扩散得到完全相同的判定**。来源:`fixtures/06-positioning/H2-伪扩散-来源独立性.{hit,miss}.md`(首跑 hit / miss **同时触发**,该规则无区分力)。
- **v0.1.0**(首发):确立双环结构与「为什么不能合并」这条设计判断;三条输入(补上数据量最大的投递漏斗信号,含四层回应分层);收敛环五类决策,第 ⑤ 类「什么都不改」定为必须显式输出的默认出口;发散环 N1-N6 六类信号,每类标注**最小可见量级**并要求量不够时显式输出「看不出来不等于不存在」;三条防失控纪律(配额 / 证伪判据 + 截止期 / 成本上限);全部阈值参数化 + 三档来源等级;补齐三段式区块与三级自救阶梯。


## 2026-09-13 修订

修正最小输入一律拒判与单点修订规则的冲突,未改变阈值。回归材料见 [定向回归](../../fixtures/research-regression-2026-09-13.md)。

本次真人反馈修订:周期复盘同时主动找符合用户画像的机会,无台账也能研究;复盘样本门槛不阻挡发现,调度未启用则仅记录建议日期和触发语。反例见 [主动机会与复盘节奏](../../fixtures/06-positioning/主动机会与复盘节奏.md)。

Files in this skill

  • README.md25 KB
  • SKILL.md82.6 KB
  • templates/branches.md6.3 KB
  • templates/discoveries.md9 KB
  • templates/主动机会探索卡.md1.8 KB
  • templates/周期性分析报告.md19.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.