$npx -y skills add XBuilderLAB/cheat-on-skill --skill skill-initcheat-on-skill 的首次 onboarding。盘点用户能力(现有技能/可迁移底子/学历经验/每周可学时间/能坚持几个月/学习能力自评/地区/目标薪资/转型紧迫度),判定起点档位,创建 .skill-state.json 状态文件,是 skill-scan / skill-plan 的前置。触发词:"能力盘点"/"我想转AI相关工作"/"找AI时代高薪工作"/"skill init"/"职业转型初始化"。当用户想找/规划 AI 时代工作但 .skill-state.json 不存在时,先路由到此。
| 1 | # /skill-init — cheat-on-skill 首次 onboarding(能力盘点) |
| 2 | |
| 3 | 把用户从"我想找个 AI 时代的高薪工作"带到"有了一份清晰能力画像、可以开始找岗位",全程 ≤ 5 分钟。 |
| 4 | |
| 5 | ## 设计哲学(必须先认同) |
| 6 | 这套工具的差异点不是"列高薪职业",是 **能力匹配 + 可学性闸门 + 真实招聘数据 + 反诈**。 |
| 7 | 所以 init 的目标不是给岗位,而是先建立"值得学 = 对你值得学"的前提:没有能力画像,任何高薪岗位都是别人的画饼。 |
| 8 | |
| 9 | ## Overview |
| 10 | ``` |
| 11 | [用户首次说"我想找AI时代的高薪工作"] |
| 12 | → Phase 0: 检测 .skill-state.json 是否存在 |
| 13 | → Phase 1: 首屏文案(期望管理 + 反诈承诺) |
| 14 | → Phase 2: 能力盘点 7 问(一次问完,允许"不确定") |
| 15 | → Phase 2.5: 起点档位识别(S0–S3) |
| 16 | → Phase 3: 写入 .skill-state.json |
| 17 | → Phase 4: 下一步清单 |
| 18 | ``` |
| 19 | |
| 20 | ## Phase 0 — 检测状态 |
| 21 | ```bash |
| 22 | test -f .skill-state.json && echo EXISTS || echo MISSING |
| 23 | ``` |
| 24 | - 已存在:告诉用户已初始化,问要不要更新画像(走 Edit),否则路由到 skill-scan。 |
| 25 | - 不存在:继续。 |
| 26 | |
| 27 | ## Phase 1 — 首屏文案(原样表达这几点) |
| 28 | - 这工具不会给你"AI 高薪职业 Top10"那种水文清单——那些利益不中立,多是卖课漏斗。 |
| 29 | - 我会做四件别人不做的事:① 按你的真实底子匹配岗位,不给通用清单 ② 用 BOSS 直聘**真实招聘数据**看哪些 AI 岗在招、给多少 ③ 给每个岗位算"以你的起点学得动吗"的可学性分 ④ 培训贷/包就业/付费内推一律过反诈红线淘汰。 |
| 30 | - 转型通常要几个月的真实投入,不是"30 天速成"。认同我们再往下。 |
| 31 | |
| 32 | ## Phase 2 — 能力盘点 7 问(一次性问完,允许"不确定"记 null) |
| 33 | 1. **你现在的技能/职业是什么?**(写作/运营/设计/销售/编程/数据/外语/财会/某行业专业…)——这是迁移的本钱。 |
| 34 | 2. **想转的方向沾边吗?**(完全跨行 / 用旧技能升级 / 不确定)——决定跨度大小。 |
| 35 | 3. **学历 + 工作年限?**(部分 AI 岗有学历或经验门槛,得提前知道哪些够不着) |
| 36 | 4. **每周能稳定投入几小时学习?能坚持几个月?**——时间预算是可学性的硬约束。 |
| 37 | 5. **学习能力/自驱自评?**(容易坚持 / 需要督促 / 自学过新东西吗)——用于周期估计乐观还是保守。 |
| 38 | 6. **所在地区 + 目标薪资?**(影响城市岗位密度和现实预期) |
| 39 | 7. **转型紧迫度?**(在职慢慢转 / 急需尽快上岸)——影响是稳扎稳打还是先够一个跳板岗。 |
| 40 | |
| 41 | > 第 1、2 题重点提炼**可迁移能力**(transferable),写进 state,scan 时用它缩小差距。 |
| 42 | |
| 43 | ## Phase 2.5 — 起点档位识别(关键) |
| 44 | 读 `../../shared-references/role-tiers.md`,按"可迁移底子 × 可投入资源 × 学习能力"归到 **S0/S1/S2/S3**: |
| 45 | - 有行业纵深(医疗/法律/金融/教育等)+ 愿学 AI → 倾向 **S3** |
| 46 | - 会编程/数据 或愿系统学编程 → **S2** |
| 47 | - 有内容/运营/设计/销售/外语等软底子、会用 AI 工具 → **S1** |
| 48 | - 跨度大、零相关底子 → **S0** |
| 49 | |
| 50 | > 不确定**就低不就高**。判完**明确告诉用户判成哪档、为什么**,说"你比我更懂自己,可以改"。把 `start_tier` + `tier_reason` 写进 state。 |
| 51 | |
| 52 | ## Phase 3 — 写入状态文件 |
| 53 | 读 `../../templates/skill-state.template.json`,填入答案(含 `start_tier`/`tier_reason`/`transferable`)。 |
| 54 | 写入前先用系统时间取当前时间和**本机时区**(不要写死任何固定城市/时区,一律跟用户的系统走): |
| 55 | ```bash |
| 56 | date '+%Y-%m-%d %H:%M %Z %z' # 当前时间 + 时区缩写 + UTC 偏移(如 CST +0800) |
| 57 | readlink /etc/localtime 2>/dev/null | sed 's#.*/zoneinfo/##' # IANA 时区 ID(如 Asia/Shanghai;读不到就留空让用户确认) |
| 58 | ``` |
| 59 | `created_at` 写当天日期(YYYY-MM-DD),`created_at_full` 写具体时间和时区(用上面读到的,例:`2026-06-26 22:06 CST +0800`),`timezone_id` 写读到的 IANA 时区 ID(如 `Asia/Shanghai`),`timezone_label` 写对应的本地时区名(如 `中国标准时间`)。给用户展示时用本机时区,不要写死成某个国家的时间。写到当前工作目录的 `.skill-state.json`。删掉 candidate_roles 里的示例项。 |
| 60 | |
| 61 | ## Phase 4 — 下一步清单 |
| 62 | 告诉用户现在可以说: |
| 63 | - **"帮我找岗位"** → 走 `skill-scan`(连 BOSS + 网页信号,按你的画像找「高薪 × 可学 × AI 增强」候选岗位) |
| 64 | - **"我选 XX 这个岗位,做学习计划"** → 走 `skill-plan` |