Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/xbuilderlab/cheat-on-skill/skill-initnpx skills add XBuilderLAB/cheat-on-skill --skill skill-initgit clone --depth 1 https://github.com/XBuilderLAB/cheat-on-skillWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00146 | $0.01560 |
| Opus 5 | $0.00073 | $0.00780 |
| Sonnet 5 | $0.00029 | $0.00312 |
| Haiku 4.5 | $0.00015 | $0.00156 |
Grade A, and why
skill-init scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/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 — 检测状态
test -f .skill-state.json && echo EXISTS || echo MISSING
- 已存在:告诉用户已初始化,问要不要更新画像(走 Edit),否则路由到 skill-scan。
- 不存在:继续。
Phase 1 — 首屏文案(原样表达这几点)
- 这工具不会给你"AI 高薪职业 Top10"那种水文清单——那些利益不中立,多是卖课漏斗。
- 我会做四件别人不做的事:① 按你的真实底子匹配岗位,不给通用清单 ② 用 BOSS 直聘真实招聘数据看哪些 AI 岗在招、给多少 ③ 给每个岗位算"以你的起点学得动吗"的可学性分 ④ 培训贷/包就业/付费内推一律过反诈红线淘汰。
- 转型通常要几个月的真实投入,不是"30 天速成"。认同我们再往下。
Phase 2 — 能力盘点 7 问(一次性问完,允许"不确定"记 null)
- 你现在的技能/职业是什么?(写作/运营/设计/销售/编程/数据/外语/财会/某行业专业…)——这是迁移的本钱。
- 想转的方向沾边吗?(完全跨行 / 用旧技能升级 / 不确定)——决定跨度大小。
- 学历 + 工作年限?(部分 AI 岗有学历或经验门槛,得提前知道哪些够不着)
- 每周能稳定投入几小时学习?能坚持几个月?——时间预算是可学性的硬约束。
- 学习能力/自驱自评?(容易坚持 / 需要督促 / 自学过新东西吗)——用于周期估计乐观还是保守。
- 所在地区 + 目标薪资?(影响城市岗位密度和现实预期)
- 转型紧迫度?(在职慢慢转 / 急需尽快上岸)——影响是稳扎稳打还是先够一个跳板岗。
第 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)。
写入前先用系统时间取当前时间和本机时区(不要写死任何固定城市/时区,一律跟用户的系统走):
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 里的示例项。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 72 lines · 146 tokens per session scan A fa75029a265f
skill-init is a skill published in the GitHub repository XBuilderLAB/cheat-on-skill (176 stars, last pushed 2mo ago), licensed MIT. It adds 146 tokens to every session and 1,560 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
llm-intern-skill
Use when polishing, diagnosing, tailoring, or exporting resumes for LLM, RAG, Agent, Agentic RL, post-training, pretraining, AIGC, search/ranking, multimodal, AI backend, or LLM algorithm internships from raw resume text, a materials folder, and/or a target job description. Audits evidence, maps JD fit, enforces truth…
swissdevjobs
Search nine job boards across eight countries — the salary-transparent devitjobs family, jobs.ch and jobup.ch (all Swiss industries), and MyCareersFuture (Singapore IT) — and help the user apply. Handles the native apply form, direct-email postings, and third-party ATS postings (driven with a browser MCP). Trigger…
autopilot-jobhunt
Run a job hunt in one agentic pass — scan configured company careers pages, score postings against the user's resume, draft a tailored resume + cover letter per chosen role (never applies), and export matches. Trigger when the user says /autopilot-jobhunt or asks to scan/find jobs or draft an application.
verify-companies
Use when auditing the curated ATS rosters for stale entries, pruning dead boards or tenants, promoting candidates from unverified/ into internal/provider//companies.yaml, or when searchjobsbycompany errors on a company that used to work.
pilot
One autonomous Pilot cycle - fetch the agenda, execute the top item, journal, exit. Injected by the terminal host - not for manual invocation loops.
auto-apply
Search a job board and autonomously apply to matching jobs one at a time, until paused, exhausted, or the max-applications cap is hit.