SKILL · 求职方向的双环复盘
把本文件整份交给你的 agent 即可。 不依赖任何特定 agent 产品,不需要注册斜杠命令、不需要放进特定目录、不需要装任何东西——
SKILL.md只是一个文件名约定,不是某一家的格式。把这份文件粘给它,说一句「按这个帮我复盘这一轮」就能开始。
这份文件是写给 agent 的执行剧本。 你(使用者)只需要读「开跑前」和「不对劲的时候」两节。
开跑前
要什么 / 缺了退化成什么
| 输入 | 必需? | 缺了会退化成什么 |
|---|---|---|
一批已经投出去的记录(ledger.md,或散着贴的原始记录) |
✅ 必需 | 缺这个不能跑。但它可以很散——见下方「最小可接受形态」 |
| 每条记录里的对方回应原话 | ⚠️ 强烈建议 | 只剩「有回应 / 没回应」两态。分不出「薪资不匹配」和「方向不匹配」——而这两者指向完全相反的改法。收敛环的决策 ① ② 会整体降级为「证据不足」 |
| 反向吸引标记(对方主动来找你的那些) | ⚠️ 强烈建议 | 发散信号 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),⛔ 不许因为"看起来是两家不同的公司"就算成两个独立来源。理由是代价不对称:把一个人的一次判断当成市场形态、拿去改方向,代价远高于漏判一次真扩散 —— 而漏判的那次下一轮还会再出现
- 收敛环决策 ② 的旁证拿不到。 「这条客观条件是不是这一类岗位的普遍要求」只能靠台账原话的家数判。⛔ 不许因为"我印象里这类岗位都这样"就升级成硬性排除 —— 那是
我推测的,而它一旦升级就是永久砍掉一块搜索面
⚠️ 这不是报错,是降级继续跑。 缺的不是判断力,是佐证层:同一份报告照出,只是 公开可查 那一档全空、来源独立性判得更保守。空着就写空着,不要用推测把它填上。
⭐ 最小可接受形态
10-20 条「公司 / 岗位 / 投递日期 / 对方回了什么」,散着贴进来也行。
真的只要这些。聊天记录转述、平台消息截图的文字、一段回忆、语音转文字,都行。你(agent)负责把它整理成 ledger.md,不要求用户先整理好。
少于 10 条时:不给漏斗结论,直接说「这个量级看不出漏斗形态」,然后只做发散环的登记(登记不设门槛)。⛔ 不许因为数据少就把语气放软再给一个建议——那是同一个错误换了个说法。
⚠️ 照最小形态给,你会拿到什么、拿不到什么
这一段必须说破,否则用户会以为"能跑起来"等于"能拿到结论"。
- 你会拿到:一份整理好的
ledger.md(散着贴的由我整理,不要求你先填模板)· 一份样本体检(本轮几条投递、几条回应、几条带明确理由、差门槛多远)· 发散环的零门槛登记(N3 / N4 一条就能记,且登记本身就是完整产出)· 一份逐行写明"哪几类信号本轮不可判、差多少"的报告。 - ⛔ 你拿不到:收敛环的任何一条实质决策。
本轮最小样本是 ≥ 20 条投递且 ≥ 8 条有回应;10-20 条一定走 ⑤「什么都不改」。也拿不到 N1 / N2 / N5 / N6 四类信号的任何判定(它们的最小可见量级都在几十到上百条那一档)。 - 一句话:最小形态足够跑完一轮、拿到一份诚实的报告,不足以产出任何一条"该改什么"的决策。 ⭐ 这不是缺陷,是设计:在这个量级上给出改进建议的框架,和一个坏掉的框架无法区分。 想要收敛环的决策,唯一的办法是把样本攒到门槛以上。
⛔ 四条禁止(这一节是对 agent 说的)
- 不许报错退出。 输入缺、格式乱、只有半句话,都不是停下的理由。缺什么就明确说「你至少给我 X」,然后用手上有的先跑一版
- 不许静默自己编。 任何你没被告知、也没查到的取值,一律标
我推测的,并且不参与任何决策的成立判定。⛔ 尤其不许把「对方大概是觉得……」写成拒绝理由——那是你编的,不是对方说的 - 不许一次只问一个问题挤牙膏。 需要补的东西一次问完(最多两轮)。先用已有信息出一版带「待确认」的报告,再让用户一次补齐
- 不许把该你自己做的整理工作推给用户。 用户散着贴来的记录,你负责整理成台账。⛔ 不许说「请先按模板填好台账再来找我」
6.0 为什么必须是两个环,且不能合并
这是本模块最重要的一条设计判断。写在最前面,因为后面所有规则都从它推出来。
同一批原始信号,要经过两个过滤器完全相反的环:
同一批信号 ─┬─→ 收敛环 过滤器:重复出现 + 达到最小样本门槛 → 改执行
└─→ 发散环 过滤器:反常 + 不重复 + 与预设不符 → 登记,不设门槛
收敛环的核心纪律是「最小样本门槛 + 默认不动」。它存在的全部意义,就是防止你被一两次拒绝就改定位——真实场景里 N 永远很小(几十条接触、两三场面试),而最常见的错误就是拿单次事件当趋势。
而「投着投着发现新可能性」的信号,天然是单次的、不重复的、看起来像噪声的:
- 一个你根本没投过的岗位类型,有人主动来找你——只发生了一次
- 面试里跑题聊到一个话题,你讲得比对方还兴奋——只发生了一次
- 某个新词在两个不同类型的公司的岗位描述里同时冒出来——才两次,远达不到任何门槛
同一个循环、同一套阈值,一定会把它们当噪声滤掉。 收敛环的防过拟合纪律,恰好会杀死发散环需要的信号。这不是可以靠「把门槛调低一点」解决的——门槛调低,收敛环就失去了它唯一的作用。
所以:两个环,两套过滤器,两套输出。
两环唯一的接口:
登记是免费的(不设最小样本门槛);门槛只加在「登记 → 开分支」这一步。
⛔ 不许用收敛环的样本门槛去挡发散环的登记。 这是本模块唯一一条「一旦做错,整个模块的差异化就没了」的规则。
⭐ 「登记零门槛」的完整论证只写在这里一处。 后面 6.3 的决策 ⑤ 与 6.5 的输出物两节都只放一句索引指回本节——同一条论证在三处各写一遍,改的时候只会改到其中一处,剩下两处就开始漂(这正是 discoveries.md 模板曾经在两个模块里各存一份、然后沿相反方向漂走的那类事故)。
6.1 三条输入
输入一 · 投递漏斗信号 ⭐ 数据量最大的一条
来自 ledger.md + runs/<date>-review.md。先分层,再统计——不分层的漏斗只能告诉你「回复率低」,那句话没有任何可执行含义。
| 层 | 长什么样 | 它能支撑什么 |
|---|---|---|
| 明确理由型拒绝 | 对方说出了一个具体的、可判定的理由(「需要有过某类业务场景的落地经验」「这个岗只考虑本地候选人」) | ⭐ 信息量最高的一层。收敛环的决策 ② 和发散环的 N2 / N5 只能从这一层来 |
| 模糊拒绝型 | 「不太合适」「暂时没有匹配的岗位」「先保持联系」 | ⛔ 永不升级为规则。 它只能计入「回复率」这个总量,不能被解读成任何具体原因 |
| ⭐ 强正向型 | 对方主动索要材料、主动发起对话、主动推另一个岗位 | 收敛环里它是渠道效率信号;发散环里它是 N3 的原料。分流判据见 6.3 的 N3 |
| 无回应 | 过了你的观察期仍无任何动静 | 只计入总量。⚠️ 无回应不等于拒绝——它可能是渠道问题、时机问题、或者对方根本没看到 |
| ⭐ 旁栏 · 平台状态型(⛔ 不是第五层,见下) | 平台自动显示的状态:「已读不回」「简历未通过」这类不是对方写的、由平台代显示的动作 | 有动作、无信息。 唯一用途是区分「没被看到」与「看到了没往下走」。⛔ 除此之外不解释任何事,且不计入「有回应」数 |
⚠️ 「对方回应原话」不许在这一步被压成分类标签。 一旦压成「婉拒 / 待定 / 邀约」,就再也分不出「薪资不匹配」和「方向不匹配」了。分层是分析动作,原话必须保留在台账里不动。
⭐ 「已读不回」「简历未通过」这类平台状态归哪里 —— 归旁栏,不是四层里的任何一层
为什么它不属于四层:四层分的是「对方的话里有多少可判定信息」;而平台状态里根本没有对方的话,它是平台代显示的。分类轴不同,所以它不是"第五层"(那会让人以为还在同一条轴上),是一个并排的旁栏。
⛔ 三个都不许往里塞,各有各的代价:
- ⛔ 不许归「无回应」。 无回应的含义里包含"可能根本没被看到";⭐ 而平台状态恰恰证明了对方看到了。 归进去,等于把手上唯一一条触达证据丢掉
- ⛔ 不许归「明确理由型」。 「简历未通过」是一个结果,不是理由。归进去会让
N2理由门槛与收敛环决策 ① ② 被一批零信息的记录喂满 —— 门槛达标了,可门槛存在的那个理由(有理由可分)没达标 - ⛔ 不许归「模糊拒绝型」。 那一层至少是一个人写的一句话(「先保持联系」),它计入回复率是有含义的:有人读了、并且回了。平台状态没有这个含义
⭐ 计数口径(这一条必须写死,因为它直接决定样本达不达标):平台状态型单列一个自己的数,⛔ 不计入 本轮最小样本 的「有回应」数。
理由:
本轮最小样本里那个「≥ 8 条有回应」之所以存在,是为了保证有足够的量能分出三档理由类型(见 6.4 该参数的标定说明)。平台状态型在定义上分不出任何理由档。 用一批结构上不可能带理由的记录去满足一个为「有理由可分」而设的门槛,只会得到最坏的一种结果:样本体检说够了,收敛环却依然无米下锅 —— 而报告读起来完全正常。
✅ 它唯一正当的用途:它是唯一能证伪「无回应多半是没被看到」这条推测的材料。报告里可以写成「本轮 X 条无回应中,有 Y 条平台显示已读」,⛔ 到此为止 —— 不许接着解读成"看了不要我,说明我的材料不行",那是 我推测的。
输入二 · 面试反馈
来自 interviews/<company>-<date>.md。看三样:
- 红旗绿旗实测结果——⭐ 三态:证实 / 证伪 / 未验证。⛔ 「未验证」不许记成「证伪」:没问到、没聊到、对方回避,都是「未验证」。把它当证伪,会让你以为某条判据被证明是错的,而其实只是没测过
- 面试官关注点 vs 你预设的定位——对不上是最有价值的信号。它同时可能是收敛环的(表述没讲清)或发散环的(你被归到了另一个类目里),分流判据见 6.3 的 N2
- ⭐ 溢出栏——跑题跑出来的东西。这是发散信号 N4 的唯一采集点。
⚠️ 溢出栏有三类,三类全归 N4:① 用户讲得比对方还兴奋的话题 ② 对方无意透露的行业信息 ③ 可复用的联系人或线索。
⛔ 不许只读第 1 类。 第 ② ③ 类恰恰是发散环决策 ④(升级为非求职产出)的原料——那条决策举的例子就是"一份行业情报 / 一个可持续的联系人 / 一条产品线索"。只收第 1 类,等于让决策 ④ 永远没有输入。
⛔ 反过来也要写死:复盘卡里「对方说了什么值得记的」那一栏(上游
04-interview§4b)⛔ 不是 N4 的采集点,也 ⛔ 不进discoveries.md。 它登记的是对方主动给的、会改变你对那家公司判断的事实,去向是那家公司的疑点表,不是发散侧。⭐ 两栏的分界只有一条判据:拿掉它,变的是对这家公司的判断(→ §4b,回流疑点表)还是对你自己的判断(→ 溢出栏,归 N4)。 ⚠️ 这条是 L2 兜底规则的第二个明确例外(第一个是「该问没问 / 该追没追」):它不是归不了类,是有归宿 —— ⛔ 不许用"归不了类的默认进discoveries.md"把它扫进登记簿。扫进来的代价是双向的:登记簿被一批本该回流疑点表的公司事实稀释,而那家公司的疑点表一条都没更新,下一轮的一页纸照着旧疑点问。
输入三 · 市场语料
来自 jobs/<batch>.md 的岗位描述文本。看两样:高频词(尤其是尚无标准定义的新词)与结构变化(同一类岗位的要求组合是不是在变)。
⛔ 本模块不讲这些岗位是怎么拿到的。 假设它们已经在
jobs/<batch>.md里了。采集属于投递执行模块的范围,且受那个模块的边界约束。
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 的判据。「因同一个客观不可变条件被拒」—— 没有这一栏,"同一个条件"是回忆,不是数据 |
⭐ 判据比清单更重要(清单一定会漏):这个字段是不是"只能在事情发生的当下记下来"? 是 → 一旦没记,那一段就永久不可判。 理由类型、原话、条数这些能事后从记录里数出来的,不属于这一类;而「当时投的是哪个渠道」「当时用的是哪一版材料」,事后只剩回忆,而回忆不是数据。
⭐ 「字段没记」这一类必须输出的三件事(缺一不可)
报告里每一条「字段没记」的空栏,都要写全下面三句 —— ⛔ 少写任何一句,用户都会退回"再攒攒就行":
- ⛔ 这个决策 / 信号在过去那段数据上永久不可判 —— 不是本轮不够
- ✅ 从现在开始记什么 —— 写成一个能立刻照做的动作("从下一条起,台账加一栏『这条是怎么进来的』,三选一:搜索命中 / 推荐 / 对方推来")
- ⛔ 过去那部分补不回来,别去补 —— 不许让用户回头凭记忆补填。凭记忆补出来的字段,会和真数据长得一模一样,然后在下一轮被当成
你给的用掉
照这个形状写:
发散信号 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 这条开不开得起来。
⛔ 不许省略成「已登记,继续观察」。 那句话既没说登了几条、合并成几次,也没说差门槛多远、卡在哪一步(是次数不够,还是判据写不出来),读者无法判断它是真的数过还是根本没数。
为什么这一句是硬的:
发散环那一节最容易退化成一张空表——这是本模块自己点名的最大风险(见「量不够时必须显式输出这句话」一节)。而一句"必须留痕"挡不住空表,因为一张空表也可以宣称自己留过痕。只有当 ⑤ 被写成"登了几条 / 合并成几次 / 差多远 / 卡在哪一步",读者才验证得了这个环真的跑过。 ⚠️ 这与收敛环第 ⑤ 类决策是同一条纪律,只是那边管"不改"、这边管"不开分支"。两边都给了模板句,两边都不许省。
三条防失控纪律
没有这三条,发散环就退化成无差别大量投递。
配额制 探路分支占本轮总投递的比例 ≤
探路配额上限;同时活跃的分支 ≤活跃分支上限。 主线保守 + 一小部分高方差——这个配比本身就是纪律,不是随手定的比例。⛔ 配额超了就砍分支,不是提配额。每条分支自带证伪判据 + 截止日期 ⭐ 写法是一句可判定的话:「投 N 条,X 周内 0 回应 = 关掉」。
- ⛔ 没有证伪判据的分支不许开。 写不出来说明你其实不知道自己在验证什么
- ⛔ 没有截止日期的分支不许开。 一条没有关闭条件的探路分支就是一个无限期的资源漏洞——它不会以失败告终,它会以「还在跑」的名义一直占着配额
- ⚠️ 对称的两条:未到期但暂时 0 回应 → 不许提前关(那是在用收敛环的耐心标准杀发散环);到期未达判据 → 不许延期(一次延期之后就没有第二次拒绝的理由了)
成本可控 探路的全部价值是「低成本获取市场反馈」。因此 ⛔ 不为一条探路分支重写全套材料——最多是换一个讲法的顺序、调一段侧重。 成本一旦超过阈值,它就不是探路了,是转型,那是另一个决定,不该在这个循环里悄悄做完。
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 场"挡住"一场面试里说了三件事就开分支"。⭐ 说实话的部分:即便按这个门槛,这条线通常也要 3-5 场面试才真的开得起来——因为不是每场都会跑题跑出东西。在此之前 N4 停在登记态是正常的,不是你做错了什么。⛔ 不许为了"让它动起来"临场把门槛降到 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。硬要求:
- 收敛环与发散环分两节写,⛔ 不许合并成一份「本轮总结」
- 每节至少产出一个决策(收敛环的 ⑤「什么都不改」算一个决策,且必须写成有主语的结论)
- 发散环那一节要逐行输出 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。字段契约见 ../../docs/module-contracts.md §9。
- ⭐ 登记零门槛(完整论证见 §6.0「两环唯一的接口」,此处不重复):一次性的、看起来像噪声的,照登不误
- ⭐ 一条一行,不合并同类;「累计出现次数」栏记的是独立事件数(同一场 / 同一来源里互相印证的多条合并计 1),由你在复盘时统计回填。这两句不冲突,是两个口径——见 6.3「登记按行,计数按独立事件」
- ⭐ 原始证据用原话,不概括。 概括会把「他们说想找做过某类交付的人」压成「方向不匹配」——而前者能指向一个具体的新类目,后者什么也指不出来
- 已升级为分支的条目不删行,改状态
3. branches.md —— 探路分支
模板见 templates/branches.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。
- ⭐ 写死「复盘卡 §4b 不是 N4 的采集点」(§6.1 输入二 + L2 兜底例外各补一处,正文已生效)。为什么改:固件
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(T-H 首跑 hit / miss 同时触发,该规则无区分力)。v0.1.0(首发):确立双环结构与「为什么不能合并」这条设计判断;三条输入(补上数据量最大的投递漏斗信号,含四层回应分层);收敛环五类决策,第 ⑤ 类「什么都不改」定为必须显式输出的默认出口;发散环 N1-N6 六类信号,每类标注最小可见量级并要求量不够时显式输出「看不出来不等于不存在」;三条防失控纪律(配额 / 证伪判据 + 截止期 / 成本上限);全部阈值参数化 + 三档来源等级;补齐三段式区块与三级自救阶梯。