Agent skill

Skill Authoring

by HezaoHezao in HezaoHezao/poirot

Author SKILL.md: frontmatter, structure, writing principles.

MITAuto-check passedAgent Workflows

Install Skill Authoring

skills CLI
$ npx skills add HezaoHezao/poirot --skill skill-authoring -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install HezaoHezao/poirot skill-authoring --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/HezaoHezao/poirot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/poirot/backend/agents/skill/builtin_skills/core/skill-authoring .claude/skills/skill-authoring && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
skill-authoring
GitHub stars
249
Token cost
~2.3k tokens
SKILL.md length
925 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Author SKILL.md: frontmatter, structure, writing principles.

  • Works in 2 steps: Builtin (in-repo):… → User-local: skills//SKILL.md — personal,…
  • Tasks that involve Skill authoring
  • SKILL.md covers Overview, When to Use, Required Frontmatter and Description Standard, plus 10 more sections
  • Calls git

What it does

Skill Authoring is an agent skill from HezaoHezao/poirot. Author SKILL.md: frontmatter, structure, writing principles.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Skill authoring. The repository describes itself as: Poirot is a deep research agent kernel built for those who care about how agents are architected. The licence is MIT.

When your agent uses it

  • Tasks that involve Skill authoring

Example prompts

  • “/skill-authoring”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): write_file, str_replace, read_file, list_dir

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Builtin (in-repo): poirot/backend/agents/skill/builtin_skills///SKILL.md
  2. User-local: skills//SKILL.md — personal, gitignored. Created via

What it can do on your machine

Read from SKILL.md and the folder at commit 86bf279. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • write_file
    • str_replace
    • read_file
    • list_dir

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Skill Authoring loads about 2.3k tokens when it runs. Until then it costs about 19 tokens; SKILL.md has 925 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~19
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from HezaoHezao/poirot at commit 86bf279, republished under its MIT licence (© HezaoHezao). 925 words, ~2,309 tokens.

Download SKILL.mdSave it as .claude/skills/skill-authoring/SKILL.md (or your agent's skills folder).
name
skill-authoring
description
Author SKILL.md: frontmatter, structure, writing principles.
allowed-tools
write_file, str_replace, read_file, list_dir
enabled
true
related-skills
skill-creator, plan
license
MIT
author
Adapted from hermes-agent (Nous Research, MIT)

Authoring Poirot Skills

Overview

A SKILL.md can live in two places:

  1. Builtin (in-repo): poirot/backend/agents/skill/builtin_skills/<category>/<name>/SKILL.md — committed, shipped with the package. Use write_file + git add.
  2. User-local: skills/<name>/SKILL.md — personal, gitignored. Created via /skill install <path> or by writing directly.

This skill covers authoring for both, with emphasis on builtin skills.

When to Use

  • User asks you to add a skill "in this repo / commit"
  • You're committing a reusable workflow that should ship with Poirot
  • You're editing an existing skill under builtin_skills/

Required Frontmatter

Source of truth: poirot/backend/agents/skill/parser.py::parse_skill_file. Hard requirements:

  • Starts with --- as the first bytes (no leading blank line).
  • Closes with \n---\n before the body.
  • Parses as a YAML mapping.
  • name field present (lowercase, hyphens).
  • description field present.

Peer-matched shape:

yaml
---
name: my-skill-name               # lowercase, hyphens
description: Use when <trigger>. <one-line behavior>.
allowed-tools:                    # Poirot tools this skill may invoke
  - bash
  - read_file
  - write_file
  - list_dir
  - str_replace
  - web_search
  - browse_page
  - present_files
  - read_snapshot
enabled: true
related-skills: [other-skill]     # optional cross-references
license: MIT                      # recommended for contributed skills
author: <human contributor or source attribution>
---

allowed-tools / enabled / related-skills / license / author are NOT enforced by the parser (it reads name/description/allowed-tools/enabled), but every peer has them — omit and your skill sticks out.

Description Standard

description ≤ 60 characters, one sentence, ends with a period. State the capability, not the implementation. No marketing words ("powerful", "comprehensive", "seamless"). Don't repeat the skill name.

Verify:

python
import re, pathlib
m = re.search(r'^description: (.*)$',
              pathlib.Path('builtin_skills/<cat>/<name>/SKILL.md').read_text(),
              re.MULTILINE)
assert len(m.group(1)) <= 60, len(m.group(1))

Size Limits

  • Peer skills sit at 8-14k chars. Aim for that range.
  • If pushing past 20k, split into references/*.md and reference them from SKILL.md.

Writing Quality Principles

A skill exists to make the agent's process more predictable. Predictability does not mean identical output every run; it means the agent reliably follows the same useful discipline.

  1. Optimize for process predictability. Ask: what behavior should change when this skill loads? If a line does not change behavior, cut it.
  2. Choose the right context load. A model-invoked skill pays for its description every turn. Keep descriptions focused on trigger classes and the skill's distinctive behavior. Put details in the body or linked references.
  3. Use an information hierarchy. Put always-needed steps in SKILL.md; put branch-specific or bulky reference material in references/, templates/, or scripts/ and point to it only when needed.
  4. End steps with completion criteria. Each ordered step should say how the agent knows it is done. Good criteria are checkable: "every modified file accounted for" beats "summarize changes."
  5. Co-locate rules with the concept they govern. Avoid scattering one idea across the file.
  6. Use strong leading words. Prefer compact concepts the model already knows — "tight loop," "tracer bullet," "root cause," "regression test" — over long repeated explanations.
  7. Prune duplication and no-ops. Keep each meaning in one source of truth. If a sentence doesn't change agent behavior vs the default, delete it.
  8. Watch for premature completion. If agents tend to rush a step, sharpen that step's completion criterion.

Common quality failures:

  • Premature completion — skill lets the agent move on before work is done
  • Duplication — same rule in multiple places, drifts
  • Sediment — stale lines remain because adding felt safer than deleting
  • Sprawl — too much always-visible material; push branch-specific behind pointers
  • No-op prose — generic advice the agent would follow without the skill

Tool Reference Rules

Tools referenced in SKILL.md prose must be native Poirot tools (listed in allowed-tools) or MCP servers the skill explicitly expects. Do NOT name shell utilities the agent already has wrapped:

  • grep → bash (run grep via bash)
  • cat/head/tail → read_file
  • sed/awk → str_replace
  • find/ls → list_dir

Peer-Matched Structure

# <Title>

## Overview
One or two paragraphs: what and why.

## When to Use
- Bulleted triggers
- "Don't use for:" counter-triggers

## <Topic sections specific to the skill>
- Quick-reference tables are common
- Code blocks with exact commands

## Common Pitfalls
Numbered list of mistakes and their fixes.

## Verification Checklist
- [ ] Checkbox list of post-action verifications

Not every section is mandatory, but Overview + When to Use + actionable body + pitfalls are the minimum.

Directory Placement

builtin_skills/<category>/<skill-name>/SKILL.md     # builtin
skills/<skill-name>/SKILL.md                         # user-local

Builtin categories: core, research, software-development, creative, productivity. Pick the closest existing category. Don't invent new top-level categories casually.

Show full SKILL.md (392 more words)Show less

Workflow

  1. Survey peers in the target category:
    list_dir("poirot/backend/agents/skill/builtin_skills/<category>/")
    Read 2-3 peer SKILL.md files to match tone and structure.
  2. Draft with write_file to builtin_skills/<category>/<name>/SKILL.md.
  3. Validate locally:
    python
    import yaml, re, pathlib
    content = pathlib.Path("builtin_skills/<category>/<name>/SKILL.md").read_text()
    assert content.startswith("---")
    m = re.search(r'\n---\s*\n', content[3:])
    fm = yaml.safe_load(content[3:m.start()+3])
    assert "name" in fm and "description" in fm
    assert len(fm["description"]) <= 60
  4. Git add + commit on the active branch.
  5. Note: the current session's skill loader is cached — /skill list will not see the new skill until restart. This is expected.

Cross-Referencing Other Skills

related-skills is documentation-only (parser ignores it). You can reference any skill, but prefer referencing only builtin skills from builtin skills — user-local skills won't resolve for other users.

Editing Existing Skills

  • Small fix (typo, added pitfall): str_replace on the SKILL.md.
  • Major rewrite: write_file the whole SKILL.md.
  • Adding supporting files: write_file to builtin_skills/<category>/<name>/references/<file>.md, templates/<file>, or scripts/<file>.
  • Always commit the edit — builtin skills are source, not runtime state.

Common Pitfalls

  1. Leading whitespace before ---. Parser requires content.startswith("---"); any leading blank line or BOM fails.

  2. Description too generic. Peer descriptions start with the trigger class, not the one task. "Use when debugging X" > "Debug X".

  3. Description too long. >60 chars bloats skill listings and dilutes model attention. Trim ruthlessly.

  4. Naming shell utilities. grep/cat/sed/find → use Poirot tool names (bash/read_file/str_replace/list_dir). Otherwise the model hallucinates calls to non-existent tools.

  5. Writing a skill that duplicates a peer. Before creating, list_dir the category and open 2-3 peers. Prefer extending an existing skill to creating a narrow sibling.

  6. Expecting the current session to see the new skill. It won't. The skill loader initializes at startup. Verify in a fresh session.

  7. Letting skills accumulate sediment. A skill should get shorter or sharper over time. When adding a rule, remove the old wording it replaces.

  8. Writing no-op prose. "Be careful," "be thorough," "use best practices" rarely change model behavior. Replace with a checkable completion criterion.

Verification Checklist

  • File is at builtin_skills/<category>/<name>/SKILL.md (or skills/<name>/)
  • Frontmatter starts at byte 0 with ---, closes with \n---\n
  • name, description, allowed-tools, enabled present
  • license, author present (attribution)
  • Name is lowercase + hyphens
  • Description ≤ 60 chars and describes the trigger class
  • Structure: # Title → ## Overview → ## When to Use → body → ## Pitfalls → ## Verification
  • Each ordered step has a checkable completion criterion
  • No shell utility names in prose (use Poirot tool names)
  • No-op prose and duplicated rules removed
  • git add && git commit completed

© HezaoHezao, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in poirot/backend/agents/skill/builtin_skills/core/skill-authoring of HezaoHezao/poirot.

Open the folder on GitHubat commit 86bf279

Compare with similar skills

Skill Authoring next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Skill Authoring compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Skill Authoring this skillHezaoHezao/poirot249—~2.3kAutomated safety check: PassMIT
Skill CreatorAzure/azqr79689 repos~8.2kAutomated safety check: PassApache-2.0
Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase10k11 repos~3.5kAutomated safety check: PassMIT
Darwin Skill Optimizeralchaincyf/darwin-skill6.2k1 repos~4.7kAutomated safety check: PassMIT
Claude Code Command Developmentanthropics/claude-plugins-official38k10 repos~4.8kAutomated safety check: PassApache-2.0
Claude Code Plugin Structureanthropics/claude-plugins-official38k10 repos~3.4kAutomated safety check: PassApache-2.0

Similar skills

  • Skill Creator

    Azure/azqr

    Official

    Create new skills, modify and improve existing skills, and measure skill performance.

    796 GitHub starsUsed in 89 repos~8.2k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Skill Developer Guide

    diet103/claude-code-infrastructure-showcase

    A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.

    10k GitHub starsUsed in 11 repos~3.5k tokens
    Agent WorkflowsAuto-check passed
  • Darwin Skill Optimizer

    alchaincyf/darwin-skill

    Scores SKILL.md files on a nine-dimension rubric, then improves them in a keep-or-revert loop with independent judge agents, test prompts, git history and human checkpoints.

    6.2k GitHub starsUsed in 1 repo~4.7k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Command Development

    anthropics/claude-plugins-official

    Official

    Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.

    38k GitHub starsUsed in 10 repos~4.8k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Plugin Structure

    anthropics/claude-plugins-official

    Official

    Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.

    38k GitHub starsUsed in 10 repos~3.4k tokens
    Agent WorkflowsAuto-check passed
  • Skill Release Gate

    rohitg00/ai-engineering-from-scratch

    Evaluates an Agent Skill bundle before release for structure, trigger quality, artifact improvement, script correctness, safety, installed-tree integrity and host portability.

    66k GitHub stars~1k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from HezaoHezao/poirot

All 23 skills in this repo
  • Requesting Code Review

    HezaoHezao/poirot

    Pre-commit review: security scan, quality gates, auto-fix. An agent skill from HezaoHezao/poirot.

    249 GitHub starsUsed in 5 repos~1.6k tokens
    Auto-check passed
  • Academic Paper Review

    HezaoHezao/poirot

    Structured peer-review of academic papers. An agent skill from HezaoHezao/poirot.

    249 GitHub stars~1.8k tokensUpdated 2 mo ago
    Auto-check passed
  • Blogwatcher

    HezaoHezao/poirot

    Monitor blogs and RSS/Atom feeds via blogwatcher-cli. An agent skill from HezaoHezao/poirot.

    249 GitHub stars~854 tokensUpdated 2 mo ago
    Auto-check passed
  • Bootstrap

    HezaoHezao/poirot

    Onboarding conversation to generate a user profile. An agent skill from HezaoHezao/poirot.

    249 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Chart Visualization

    HezaoHezao/poirot

    Generate charts: select type, extract data, render image. An agent skill from HezaoHezao/poirot.

    249 GitHub stars~1k tokensUpdated 2 mo ago
    Auto-check passed
  • Code Documentation

    HezaoHezao/poirot

    Generate docs: README, API reference, architecture, guides. An agent skill from HezaoHezao/poirot.

    249 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed

Categories

Questions about Skill Authoring

What does Skill Authoring do?

Author SKILL.md: frontmatter, structure, writing principles. Skill Authoring is an agent skill from HezaoHezao/poirot.md: frontmatter, structure, writing principles.

When should I use Skill Authoring?

Skill Authoring fits situations like: tasks that involve Skill authoring.

How do I install Skill Authoring in Claude Code?

Run `npx skills add HezaoHezao/poirot --skill skill-authoring -a claude-code`. Or copy the skill folder (poirot/backend/agents/skill/builtin_skills/core/skill-authoring in HezaoHezao/poirot) into .claude/skills/skill-authoring in your project. Claude Code loads it when a task matches its description.

How do I install Skill Authoring in Codex?

Run `npx skills add HezaoHezao/poirot --skill skill-authoring -a codex`. Or copy the skill folder (poirot/backend/agents/skill/builtin_skills/core/skill-authoring in HezaoHezao/poirot) into .agents/skills/skill-authoring in your project. Codex loads it when a task matches its description.

Can I use Skill Authoring in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HezaoHezao/poirot --skill skill-authoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skill-authoring, .gemini/skills/skill-authoring, .github/skills/skill-authoring and .opencode/skills/skill-authoring in your project.

What does Skill Authoring need to run?

Going by SKILL.md and its folder, Skill Authoring needs the command-line tools its instructions call (git). Our summary lists: Python 3. Its frontmatter pre-approves these tools: write_file, str_replace, read_file, list_dir.

Does Skill Authoring access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Skill Authoring safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Skill Authoring use?

Skill Authoring is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Skill Authoring use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Skill Authoring?

Skills that share tags, products or a category with Skill Authoring: Skill Creator (Azure/azqr, 796 stars), Claude Code Skill Developer Guide (diet103/claude-code-infrastructure-showcase, 10k stars), Darwin Skill Optimizer (alchaincyf/darwin-skill, 6.2k stars) and Claude Code Command Development (anthropics/claude-plugins-official, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Skill Authoring?

HezaoHezao (a GitHub user) maintains it in HezaoHezao/poirot, which has 249 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on July 28, 2026.

Source: HezaoHezao/poirot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.