How to Create a Custom Skill

I built the article-writing skill to turn CLI conversations into publishable markdown articles. V1 was mostly Codex-oriented, then I iterated: more generic extraction, cleaner deliverables, and 4 tones/voices.

Here is a reproducible method to create a custom skill.

Preconditions#

Having a CLI tool like claude code, copilot, codex or any other with a SKILL.md file to host your custom skill.

SKILLS/<skill-name>/SKILL.md

Example:

SKILLS/article-writing/SKILL.md

How-to#

1) Define the scope#

Define the skill behavior in one complete sentence:

  • what it takes as input,
  • what it does,
  • what it produces.

Example:

  • Input: a raw CLI conversation.
  • Action: extract useful messages, then structure them.
  • Output: a publishable markdown article.

2) Write minimal frontmatter#

---
name: article-writing
description: Converts an agent conversation into a publishable markdown article.
---

3) Build an executable workflow#

## Workflow
1. Identify input
2. Extract useful data
3. Validate intermediate result
4. Ask required parameters
5. Generate final deliverable

4) Iterate with small changes#

Simple loop:

  1. Change one point
  2. Test on a real case
  3. Check for regressions

Real example:

  • V1: initial flow
  • V2: more generic extraction
  • V3: deliverables + tones/voices

5) Invoke the skill#

You have two useful modes.

Explicit invocation (recommended at first):

@SKILLS/article-writing/SKILL.md

Here you force usage of that specific skill.

Intent-based invocation (once the skill is well described):

Write an article from our previous conversation.

In this case, the agent selects the skill if the SKILL.md description and triggers match.

Practical check: if the response does not follow the expected workflow, invoke the skill explicitly again via @SKILLS/.../SKILL.md.

Resources#

Skill article-writing available here: SKILL.md