Skip to main content
ClaudeWave
Skill177 repo starsupdated 2mo ago

skill-init

cheat-on-skill 的首次 onboarding。盘点用户能力(现有技能/可迁移底子/学历经验/每周可学时间/能坚持几个月/学习能力自评/地区/目标薪资/转型紧迫度),判定起点档位,创建 .skill-state.json 状态文件,是 skill-scan / skill-plan 的前置。触发词:"能力盘点"/"我想转AI相关工作"/"找AI时代高薪工作"/"skill init"/"职业转型初始化"。**当用户想找/规划 AI 时代工作但 .skill-state.json 不存在时,先路由到此。**

Install in Claude Code
Copy
git clone --depth 1 https://github.com/XBuilderLAB/cheat-on-skill /tmp/skill-init && cp -r /tmp/skill-init/skills/skill-init ~/.claude/skills/skill-init
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# /skill-init — cheat-on-skill 首次 onboarding(能力盘点)

把用户从"我想找个 AI 时代的高薪工作"带到"有了一份清晰能力画像、可以开始找岗位",全程 ≤ 5 分钟。

## 设计哲学(必须先认同)
这套工具的差异点不是"列高薪职业",是 **能力匹配 + 可学性闸门 + 真实招聘数据 + 反诈**。
所以 init 的目标不是给岗位,而是先建立"值得学 = 对你值得学"的前提:没有能力画像,任何高薪岗位都是别人的画饼。

## Overview
```
[用户首次说"我想找AI时代的高薪工作"]
  → Phase 0: 检测 .skill-state.json 是否存在
  → Phase 1: 首屏文案(期望管理 + 反诈承诺)
  → Phase 2: 能力盘点 7 问(一次问完,允许"不确定")
  → Phase 2.5: 起点档位识别(S0–S3)
  → Phase 3: 写入 .skill-state.json
  → Phase 4: 下一步清单
```

## Phase 0 — 检测状态
```bash
test -f .skill-state.json && echo EXISTS || echo MISSING
```
- 已存在:告诉用户已初始化,问要不要更新画像(走 Edit),否则路由到 skill-scan。
- 不存在:继续。

## Phase 1 — 首屏文案(原样表达这几点)
- 这工具不会给你"AI 高薪职业 Top10"那种水文清单——那些利益不中立,多是卖课漏斗。
- 我会做四件别人不做的事:① 按你的真实底子匹配岗位,不给通用清单 ② 用 BOSS 直聘**真实招聘数据**看哪些 AI 岗在招、给多少 ③ 给每个岗位算"以你的起点学得动吗"的可学性分 ④ 培训贷/包就业/付费内推一律过反诈红线淘汰。
- 转型通常要几个月的真实投入,不是"30 天速成"。认同我们再往下。

## Phase 2 — 能力盘点 7 问(一次性问完,允许"不确定"记 null)
1. **你现在的技能/职业是什么?**(写作/运营/设计/销售/编程/数据/外语/财会/某行业专业…)——这是迁移的本钱。
2. **想转的方向沾边吗?**(完全跨行 / 用旧技能升级 / 不确定)——决定跨度大小。
3. **学历 + 工作年限?**(部分 AI 岗有学历或经验门槛,得提前知道哪些够不着)
4. **每周能稳定投入几小时学习?能坚持几个月?**——时间预算是可学性的硬约束。
5. **学习能力/自驱自评?**(容易坚持 / 需要督促 / 自学过新东西吗)——用于周期估计乐观还是保守。
6. **所在地区 + 目标薪资?**(影响城市岗位密度和现实预期)
7. **转型紧迫度?**(在职慢慢转 / 急需尽快上岸)——影响是稳扎稳打还是先够一个跳板岗。

> 第 1、2 题重点提炼**可迁移能力**(transferable),写进 state,scan 时用它缩小差距。

## Phase 2.5 — 起点档位识别(关键)
读 `../../shared-references/role-tiers.md`,按"可迁移底子 × 可投入资源 × 学习能力"归到 **S0/S1/S2/S3**:
- 有行业纵深(医疗/法律/金融/教育等)+ 愿学 AI → 倾向 **S3**
- 会编程/数据 或愿系统学编程 → **S2**
- 有内容/运营/设计/销售/外语等软底子、会用 AI 工具 → **S1**
- 跨度大、零相关底子 → **S0**

> 不确定**就低不就高**。判完**明确告诉用户判成哪档、为什么**,说"你比我更懂自己,可以改"。把 `start_tier` + `tier_reason` 写进 state。

## Phase 3 — 写入状态文件
读 `../../templates/skill-state.template.json`,填入答案(含 `start_tier`/`tier_reason`/`transferable`)。
写入前先用系统时间取当前时间和**本机时区**(不要写死任何固定城市/时区,一律跟用户的系统走):
```bash
date '+%Y-%m-%d %H:%M %Z %z'                        # 当前时间 + 时区缩写 + UTC 偏移(如 CST +0800)
readlink /etc/localtime 2>/dev/null | sed 's#.*/zoneinfo/##'   # IANA 时区 ID(如 Asia/Shanghai;读不到就留空让用户确认)
```
`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 里的示例项。

## Phase 4 — 下一步清单
告诉用户现在可以说:
- **"帮我找岗位"** → 走 `skill-scan`(连 BOSS + 网页信号,按你的画像找「高薪 × 可学 × AI 增强」候选岗位)
- **"我选 XX 这个岗位,做学习计划"** → 走 `skill-plan`