TL;DR A Prompt answers "how do I answer this time." A Skill answers "how do I handle this kind of task from now on." Write Agent Skills like reusable lesson plans: a Skill should answer four things — when to use it, where the steps start and stop, what quality bar counts as done, and how to bail out when it fails. Put constraints up front, lock quality with a minimal acceptance bar (local build passes, links work, frontmatter complete), and version it in the repo alongside your code.

You’re Not Writing a Prompt, You’re Writing a Lesson Plan

For students building AI projects, the most common waste isn’t compute — it’s re-explaining. Every new session means restating the project background, directory conventions, hard no-nos, acceptance criteria, and how to roll back when things fail. A Prompt answers “how do I answer this time.” A Skill answers “how do I handle this kind of task from now on.”

Think of an Agent Skill as a reusable lesson plan and you’ll immediately see it has to answer four things:

  1. When to use it: which tasks should trigger it.
  2. Step boundaries: what comes first, what comes next, where it must stop.
  3. Quality bar: what counts as done, what has to be redone.
  4. Failure exit: what’s the fallback when it gets stuck.

Distilling a Skill from a Real Assignment

I recently turned “write a technical note and publish it to the blog” into a Skill. The original version was one sentence:

Help me write an article about some tech, in the style of my previous blog posts.

It drifted every time: sometimes it read like an academic paper, sometimes like an ad, sometimes it just dropped the frontmatter. Only after rewriting it lesson-plan style did it stabilize.

Lesson Plan Skeleton
First read 1–2 existing articles to match the tone; then list 3 arguments, each with a concrete example; finally fill in the frontmatter, related articles, and publishing checks. No vague summaries. No inventing things you didn't actually do.

The key here isn’t piling on more adjectives — it’s putting constraints up front. The more freedom AI has, the more its output looks like the internet average. The earlier you set boundaries, the more it looks like your project.

Three Kinds of Skills Worth Building for Student Projects

Not every workflow deserves to be a Skill. For student dev work, prioritize these three:

  • Publishing: writing articles, updating READMEs, preparing release notes.
  • Engineering: scaffolding projects, adding CI, running builds, fixing common config errors.
  • Research: paper/competitor summaries, experiment logs, failure postmortems.

They all share one trait: repeatable steps, checkable results. If a task has a different goal every time, forcing it into a Skill just adds noise.

Hold Quality with a Minimal Acceptance Bar

The most overlooked part of a Skill is the definition of “done.” Without an acceptance bar, the agent will confidently hand you a half-finished job. My habit is to hard-code a few lines at the end:

  • Local npm run build passes.
  • Internal links work under the target deploy path.
  • Article frontmatter fields are complete.
  • No new dependencies that weren’t asked for.

It sounds plain, but it replaces “feels about done” with executable checks. Especially useful for student projects — you might not have a code review buddy, but you can have a checklist.

Next Step: Put the Skill in the Repo

A Skill shouldn’t sit in your chat history. Put it in the repo’s skills/ directory or docs folder, versioned alongside your code — that’s when reuse becomes real. You can also state the applicable models, directory conventions, and hard no-nos at the top, so future-you (or a teammate) doesn’t have to do archaeology.

Where Vibe Coding actually saves time isn’t having AI finish everything for you — it’s locking in the parts you’ve already figured out. A Skill is that locked-in form: like a lesson plan, teach once, use many times.

FAQ

What’s the real difference between a Skill and a Prompt?

The most common waste in student AI projects isn’t compute — it’s re-explaining: restating project background, directory conventions, and hard no-nos every new session. A Prompt answers “how do I answer this time.” A Skill answers “how do I handle this kind of task from now on.”

What does a Skill need to spell out at minimum?

Four things: which tasks trigger it (when to use); what comes first, next, and where it stops (step boundaries); what counts as done and what must be redone (quality bar); and the fallback when it gets stuck (failure exit).

Which workflows deserve to become Skills?

The ones with repeatable steps and checkable results. For student dev work, prioritize three kinds: publishing (articles, README updates, release notes), engineering (scaffolding, CI, fixing common config errors), and research (paper summaries, experiment logs, failure postmortems). Forcing a task with a different goal every time into a Skill just adds noise.

How do you stop the agent from handing in half-finished work?

Hard-code a minimal acceptance bar at the end of the Skill: local npm run build passes, internal links work under the target deploy path, article frontmatter is complete, no unrequested new dependencies. It replaces “feels about done” with executable checks.

Where should a Skill live?

Not in your chat history. Put it in the repo’s skills/ directory or docs folder, versioned alongside your code — that’s when reuse becomes real. State the applicable models, directory conventions, and hard no-nos at the top, so future-you doesn’t have to do archaeology.

一句话总结 Prompt 解决"这一次怎么答",Skill 解决"这类任务以后怎么做"。把 Agent Skill 当成可复用的教案来写:一份 Skill 要回答适用场景、步骤边界、质量标准、失败出口四件事,约束前置,用最小验收线卡住质量(比如本地 build 通过、链接可点、frontmatter 齐全),最后放进仓库和代码一起版本管理。

你不是在写 Prompt,你是在写教案

学生做 AI 项目时,最常见的浪费不是算力,而是重复解释。每次开新会话,都要重新交代:项目背景、目录约定、禁止事项、验收标准、失败后怎么回退。Prompt 解决的是“这一次怎么答”,Skill 解决的是“这类任务以后怎么做”。

把 Agent Skill 想成一份可复用教案,你会立刻发现它至少要回答四件事:

  1. 适用场景:什么任务该触发它。
  2. 步骤边界:先做什么、后做什么、哪里必须停。
  3. 质量标准:什么样算完成,什么样必须重做。
  4. 失败出口:卡住时降级方案是什么。

从一次真实作业里提炼 Skill

我最近把“写一篇技术笔记并发布到博客”抽成了 Skill。原始版本只有一句:

帮我写一篇关于某某技术的文章,风格像我之前的博客。

结果每次都在跑偏:有时像论文,有时像广告,有时直接漏掉 frontmatter。后来改成教案式描述,才稳定下来。

教案骨架
先读 1–2 篇既有文章,对齐语气;再列 3 个论点,每个论点配一个具体例子;最后补 frontmatter、相关文章和发布检查。禁止空泛总结,禁止编造没有做过的事。

这一步的关键不是堆更多形容词,而是把约束前置。AI 越自由,输出越像互联网平均值;你越早给出边界,它越像你的项目。

学生项目最该沉淀的三类 Skill

不是所有流程都值得做成 Skill。对学生开发来说,优先沉淀这三类:

  • 发布类:写文章、更新 README、整理 release note。
  • 工程类:初始化项目、加 CI、跑构建、修常见配置错误。
  • 研究类:文献/竞品摘要、实验记录、失败复盘。

它们的共同点是:步骤可重复,结果可检查。如果一个任务每次目标都不一样,硬做成 Skill 反而会添乱。

用最小验收线卡住质量

Skill 里最容易被忽略的,是“完成”的定义。没有验收线,Agent 会自信地交出半成品。我的习惯是在末尾写死几条:

  • 本地能 npm run build 通过。
  • 内部链接在目标部署路径下可点。
  • 文章 frontmatter 字段齐全。
  • 不引入未要求的新依赖。

这听起来很朴素,但它把“感觉差不多了”换成了可执行检查。对学生项目尤其有用——你可能没有 code review 同伴,但你可以有 checklist。

下一步:把 Skill 写进仓库

Skill 不该躺在聊天记录里。放到仓库的 skills/ 或文档目录,和代码一起版本管理,才谈得上复用。你也可以在 Skill 开头写清适用模型、目录约定和禁止事项,让后来的自己(或队友)不必考古。

Vibe Coding 真正省时间的地方,不是让 AI 替你写完,而是把你已经想清楚的部分固化下来。Skill 就是这种固化的载体:像教案一样,教一次,用很多次。

常见问题

Skill 和 Prompt 到底有什么区别?

学生做 AI 项目最常见的浪费不是算力,而是重复解释——每次开新会话都要重新交代项目背景、目录约定、禁止事项。Prompt 解决的是”这一次怎么答”,Skill 解决的是”这类任务以后怎么做”。

一份 Skill 至少要写清楚什么?

四件事:什么任务该触发它(适用场景);先做什么、后做什么、哪里必须停(步骤边界);什么样算完成、什么样必须重做(质量标准);卡住时的降级方案是什么(失败出口)。

什么流程值得做成 Skill?

步骤可重复、结果可检查的。对学生开发来说优先三类:发布类(写文章、更新 README、整理 release note)、工程类(初始化项目、加 CI、修常见配置错误)、研究类(文献摘要、实验记录、失败复盘)。每次目标都不一样的任务,硬做成 Skill 反而添乱。

怎么防止 Agent 交出半成品?

在 Skill 末尾写死最小验收线:本地能 npm run build 通过、内部链接在目标部署路径下可点、文章 frontmatter 字段齐全、不引入未要求的新依赖。它把”感觉差不多了”换成了可执行检查。

Skill 写完放哪里?

别躺在聊天记录里。放到仓库的 skills/ 或文档目录,和代码一起版本管理,才谈得上复用。开头写清适用模型、目录约定和禁止事项,让以后的自己不必考古。