cheat-on-skill 的核心。为用户选定的某个候选岗位生成个性化学习策略:差距分析 → 分阶段学习路径(资源+里程碑)→ 作品集清单 → 求职时间线 → 止损线。强调 AI 加速学习、诚实周期、可验证里程碑。触发词:"我选XX做学习计划"/"这个岗位怎么学"/"给我学习路径"/"skill plan"/"制定转型策略"。前置:该岗位最好已在 skill-scan 的 candidate_roles 里、判定为可学。
npx skills add https://github.com/XBuilderLAB/cheat-on-skill --skill skill-plan
把一个目标岗位变成"以你的起点 + 每周时间,几个月内能学到能投简历"的可执行学习计划。
.skill-state.json 找该岗位。若不在 candidate_roles 或可学性判定为 ❌ 劝退/⛔ 吃力,先提醒用户回 skill-scan 重选或确认,别硬做注定挫败的计划。../../shared-references/anti-scam-rubric.md;命中红线先劝退。../../shared-references/learnability-rubric.md(差距维度对齐)和 role-tiers.md(起步动作按档位)。> 需要时用 WebSearch 查该岗位当下的真实学习路径/主流工具栈/招聘要求(加年份),别给过时方案。
写入前先用系统时间取当前时间:
date '+%Y-%m-%d %H:%M %Z %z'
所有报告和状态记录必须带具体时间与时区,跟用户系统时区走。内部记录可用 2026-06-26 22:06 CST +0800;用户报告展示为 2026-06-26 22:06(本机时区 + UTC 偏移,如 中国标准时间 CST,UTC+8)。不要写死成某个固定国家的时间。
把策略写入 .skill-state.json 的 active(chosen_id / started_at=今天 / learning_plan),该岗位 status 改为 learning。
同时写 active.prediction:预计每周投入小时、预计几个月到能投简历、作品集清单、止损线(recorded_at=今天日期,recorded_at_full=具体时间和时区)。
这份预期写完别改——日后复盘拿"实际"和它对账,才能看清计划准不准、要不要调。
学习计划生成后,不要直接结束。先问用户:
> "如果这版方向和计划没问题,我可以帮你存档,并生成一份完整报告。推荐形式是 Markdown 源文件 + 可选 Word 版:Markdown 方便后续迭代,Word 方便发送/打印。你要现在生成吗?"
默认不要把 Markdown/HTML 作为用户交付物。对普通用户来说,看到代码或标记语法会困惑。
若用户同意,生成两类内容:
.skill-state.json;必要时生成 reports/internal/<YYYY-MM-DD>-<target-slug>.md 作为 agent 可维护的结构化存档,但不要把它作为主交付给用户。reports/<YYYY-MM-DD>-<中文标题>-用户版.txt,用自然语言写成外行人也能读懂的完整报告。不要包含 HTML/CSS/Markdown 语法,不要要求用户用浏览器打开。报告正文必须写 生成时间:YYYY-MM-DD HH:mm(本机时区名 缩写,UTC 偏移),跟用户系统时区走,不要只写日期、也不要写死某国时间。示例:生成时间:2026-06-26 22:06(中国标准时间 CST,UTC+8)。
导出与交付规则:
reports/<YYYY-MM-DD>-<中文标题>-用户版.docx。.docx 导出成功,只告知 Word 文件保存路径,并打开文档所在文件夹让用户自己双击 Word 文件;不要再额外生成或展示 .rtf / .txt 作为主交付。可以补一句:“如需纯文本或 RTF,我也可以再导出。”.docx 导出失败,再导出 .txt 和 .rtf,告知两个文件路径,并同样打开所在文件夹。报告已保存到 <abs-path>/reports/,我已打开这个文件夹,你可以直接双击 Word 文档查看。.docx 成功导出后的最终用户话术应包含:报告已经生成好了。保存目录:<abs-path>/reports/Word 报告文件:<abs-path>/reports/<报告名>.docx我已经帮你打开了报告所在文件夹,你可以直接双击这个 Word 文档查看。这份报告里面包括: 后列出推荐方向、招聘信息结论、推荐岗位排序、暂不建议主攻的岗位、需要补的能力、学习计划、作品集建议、反诈和止损线、下一步行动。如果你想要 txt 版或 RTF 版,我也可以再导出。💡 后面你执行计划时,如果进度比预期快、慢,或者投递反馈和我们预判的不一样,我会根据实际情况帮你调整计划,不会让你死磕一版固定路线。报告交付后不要停在"文件已生成"。必须自然进入陪跑模式,对用户说:
> "从现在起,你可以跟着我一起学。我会按这份计划一步一步带你做,不需要你自己判断下一步该学什么。我们先从第 1 周第 1 天开始:选定主工具,并跑通第一个最简单的 AI 问答/资料整理小工具。"
然后立即开始第 1 个训练任务,除非用户明确说暂停:
扣子/Coze 和 Dify 中选一个主工具;若用户不确定,默认建议先选 扣子/Coze,因为新手更容易跑通智能体和工作流。报告结构建议:
10. 下一次复盘问题。
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take xbuilderlab/skill-plan from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.