From tomollo-skills
Skill authoring standards and conventions for this project. Use when writing or reviewing a SKILL.md to ensure it follows project conventions: directory structure, writing style, type classification (silent/process), frontmatter format, progressive disclosure patterns. Not a skill generator — a reference document that defines what well-written skills look like. Consult when the user says "write a skill", "review this skill", "what should a skill look like", "skill conventions", "skill format".
How this skill is triggered — by the user, by Claude, or both
Slash command
/tomollo-skills:skill-forgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This document defines the conventions and standards for skills in this project. Reference it when writing or reviewing a skill to ensure consistency.
This document defines the conventions and standards for skills in this project. Reference it when writing or reviewing a skill to ensure consistency.
Every skill is one of two types:
Activates, executes autonomously, reports the result. No user interaction during execution.
Fits when: the skill does one thing end-to-end without needing user input mid-way; input and output are files or structured data; the user wants the result, not a guided experience.
Examples: file format conversion, data extraction, code generation, batch operations.
Activates and then guides the user through a structured workflow. Asks questions, branches on decisions, controls the interaction rhythm.
Fits when: the skill needs to ask questions or make decisions during execution; the workflow has branching paths based on user choices; part of the value is the interaction itself — guiding, confirming, structuring.
Examples: seedpeak, docx-tweak (original version), iter-mini.
skill-name/
├── SKILL.md # Required — the skill instructions
├── scripts/ # Optional — reusable scripts for deterministic tasks
├── references/ # Optional — docs loaded into context on demand
└── assets/ # Optional — templates, fonts, icons used in output
Every SKILL.md starts with YAML frontmatter:
---
name: skill-name # kebab-case, matches directory name
description: >-
What the skill does AND when to use it. Claude decides whether to invoke a
skill based on this description. Include both the action and the triggering
context. Be slightly pushy — Claude under-triggers by default. List related
phrasings and scenarios.
allowed-tools: "Read, Write, Edit, Bash" # optional
---
Silent type body:
# Skill Name
[One-paragraph overview of what the skill does and why it exists]
## Flow
1. [Step 1]
2. [Step 2]
3. [Step 3]
## Input
[What the skill expects: file format, parameters, constraints]
## Output
[What the skill produces and where it's saved]
## Edge cases
[Common failure modes and how to handle them]
Process type body:
# Skill Name
[One-paragraph overview]
## Workflow
Step 1 → Step 2 → Step 3 → Done
### Step 1: [Name]
[What the skill does at this step]
[What it asks the user]
[What happens with the user's answer]
### Step 2: [Name]
...
## End state
[What the workflow delivers when complete]
## Interaction guidelines
[How to handle off-topic users, skip requests, confirmation patterns]
These are the most important principles. Getting them right determines whether a skill is effective or frustrating to use.
The model reading your skill has good theory of mind. When you explain why a step matters, it can handle edge cases on its own rather than blindly following rules. If you find yourself writing MUST or ALWAYS in all caps, stop and reframe as an explanation instead.
Instead of:
MUST check file exists before reading. ALWAYS use $CLAUDE_JOB_DIR for temp files.
Write:
Files may not exist at the expected path. Checking first avoids confusing error messages. Use $CLAUDE_JOB_DIR for temp files so concurrent sessions don't clash.
The model understands the reasoning and can apply it appropriately even when the specific scenario differs.
Every line costs context and constrains behavior. Remove anything that isn't pulling its weight. If deleting a paragraph doesn't change output quality, delete it.
A good test: after writing the skill, re-read it and ask yourself "what breaks if I remove this section?" If nothing, remove it.
Use examples to understand the pattern, not to hardcode. A skill that only works on its test cases is useless. If there's a persistent issue, try explaining the concept differently rather than adding more constraints.
If the skill will run the same multi-step pipeline or script every time it's invoked, put that script in scripts/ instead of asking the model to reinvent it. This saves tokens and reduces errors.
Models understand "here's what it should look like" better than "use X format with Y fields". When the output has a specific structure, show an example.
Write "Read the input file", not "The skill should read the input file" or "You should read the input file". Direct, clear, one step at a time.
A process-type skill guides the user. This means:
A silent-type skill acts on its own. This means:
Skills use a three-level loading system:
Reference files should be used for:
For multi-variant skills, organize by domain:
cloud-deploy/
├── SKILL.md # workflow + selection logic
└── references/
├── aws.md
├── gcp.md
└── azure.md
The model reads only the relevant reference file.
The description field in frontmatter is the primary trigger mechanism. Claude decides whether to invoke a skill by reading the descriptions of all available skills.
Process .docx files.
Too vague. Claude won't know when to use this vs. handle it directly.
A skill for tweaking thesis formatting.
Better, but still weak on the "when" dimension.
论文微调技能。解包 .docx → 编辑 XML → 重新打包。专注于学位论文、学术文章的格式规范和内容微调。适用于修改章节编号、调整标题样式、统一字体字号、查找替换术语、整理参考文献格式等任务。
Clear action, specific use cases, covers multiple triggering scenarios.
Skills in this project track version in commit messages. No separate VERSION file. Follow semver:
Commit format: skill-name: 修改说明,版本升级至 X.Y.Z
A well-crafted description bridges what the skill does and when it triggers:
docx-tweak: 论文微调技能。解包 .docx → 编辑 XML → 重新打包。
vs. a better version that helps triggering:
docx-tweak: 论文微调技能。解包 .docx → 编辑 XML → 重新打包。
专注于学位论文、学术文章的格式规范和内容微调。
适用于修改章节编号、调整标题样式、统一字体字号、查找替换术语、整理参考文献格式等任务。
The second version lists concrete use cases, making it easier for Claude to recognize when this skill applies.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub kucytus/tomollo-skills --plugin tomollo-skills