agentleFS
fagemxfagemx/edda/.claude/skills/skill-craft/SKILL.md

skill-craft

Skill36 starsChanged 2 months agoApache-2.0View on GitHub

Create high-quality Claude Code skills following edda patterns

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

11 rules. 0 are common, 10 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 10

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Default: Create a new skill from a description or conversation context

    line 17
  2. Distinctive:

    Every skill you create must have these six characteristics:

    line 22
  3. Distinctive:

    Every workflow step must have a real command that can be copy-pasted.

    line 43
  4. Distinctive:

    When the agent is unsure, give a decision tree.

    line 99
  5. Distinctive:

    If any of these are unclear, ask the user.

    line 121
  6. Distinctive:

    Read 2-3 existing skills that are closest in nature:

    line 125
  7. Distinctive:

    Read the best ones for pattern reference:

    line 131
  8. Very specific:

    Write .claude/skills/<name>/SKILL.md with this structure:

    line 141
  9. Distinctive:

    Before presenting to the user, verify against the six characteristics:

    line 192
  10. Distinctive:

    If any check fails, fix it before showing the user.

    line 203
  11. Distinctive:

    Do NOT create the file until the user approves.

    line 210

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill Craft

You are a skill architect. Your job is to create Claude Code skills that are stable, flexible, and effective — following the patterns established in the best edda skills.

Usage

skill-craft <description>
skill-craft refine <skill-name>
  • Default: Create a new skill from a description or conversation context
  • refine: Improve an existing skill against quality standards

What Makes a Good Skill

Every skill you create must have these six characteristics:

1. Framework, Not Checklist

Give thinking directions, not items to tick off.

# BAD — rigid checklist
- [ ] Check if function has return type
- [ ] Check if variables are camelCase
- [ ] Check if imports are sorted

# GOOD — thinking framework
#### Check: Reality
> Is everything in this PR real? No hallucinated APIs, no invented functions?
- For every external function referenced: verify it exists
- For every type used: verify fields match actual definition

2. Concrete Commands

Every workflow step must have a real command that can be copy-pasted.

# BAD — vague
"Check the codebase for issues"

# GOOD — executable
cargo clippy --all-targets -- -D warnings 2>&1 | head -20
grep -rn "todo!\|unimplemented!" crates/ --include="*.rs"

3. Output Templates

Define exact output format. Don't let the AI freestyle.

# BAD — no format
"Report your findings to the user"

# GOOD — exact template
## Ground Check: <task name>

| Requirement | Status | Detail |
|------------|--------|--------|
| ... | Ready / Almost / Not Ready | ... |

### Verdict
**<status>** — <one sentence summary>

4. Multiple Operations

One skill, 2-3 modes. Parse from args.

# GOOD
Parse the `args` parameter:
- **scan** (default) - Full codebase scan
- **focus <area>** - Scan specific crate
- **review** - Review existing issues

5. Anti-Patterns

Explicitly state what NOT to do. This is what makes skills "flexible not rigid" — they constrain bad behavior instead of prescribing exact behavior.

# GOOD
## Anti-Patterns (What NOT to Do)
1. **Wall of text** — never write more than 3 sentences per finding
2. **Vague feedback** — "could be improved" → improved HOW?
3. **Style nitpicks** — that's what cargo fmt is for

6. Decision Framework

When the agent is unsure, give a decision tree.

# GOOD
| Question | If Yes | If No |
|----------|--------|-------|
| Does this block critical path? | P0, file it | Continue |
| Is this broken behavior? | File as bug | Continue |
| Can this be deleted? | File as refactor | Continue |

Workflow: Create New Skill

Step 1: Understand the Need

From the user's description or conversation context, extract:

  • What problem does this skill solve?
  • When would someone invoke it? (trigger)
  • What should happen? (workflow)
  • What should it produce? (output)
  • What should it NOT do? (constraints)

If any of these are unclear, ask the user. Maximum 3 questions.

Step 2: Find Reference Skills

Read 2-3 existing skills that are closest in nature:

ls .claude/skills/

Read the best ones for pattern reference:

  • If workflow skill (multi-step process) → read issue-plan, code-quality
  • If review/analysis skill → read pr-review, issue-scan
  • If infrastructure/ops skill → read dev-server, ops-utils
  • If creation skill → read skill-alias, issue-create

Note their structure, operations, and how they handle edge cases.

Step 3: Draft the Skill

Write .claude/skills/<name>/SKILL.md with this structure:

---
name: <kebab-case-name>
description: "<one line — what it does, not how>"
---

# <Skill Title>

<1-2 sentences: who you are and what you do>

## Usage

<invocation examples with args>

## Operations (if multi-mode)

<parse args → operation>

---

# Operation: <name>

## Workflow

### Step 1: <verb>
<concrete steps with real commands>

### Step 2: <verb>
...

## Output Format

<exact template with placeholders>

## Decision Framework

<table or tree for ambiguous situations>

## Anti-Patterns

<numbered list of what NOT to do>

## References

<links to related skills, docs, files>

Step 4: Self-Check

Before presenting to the user, verify against the six characteristics:

#CheckHow to Verify
1Framework not checklistAre instructions about HOW TO THINK, not WHAT TO CHECK?
2Concrete commandsDoes every step have a runnable command?
3Output templateIs the output format defined with placeholders?
4Multiple operationsDoes it handle 2+ use cases via args? (not required for simple skills)
5Anti-patternsDoes it say what NOT to do?
6Decision frameworkIs there guidance for ambiguous situations?

If any check fails, fix it before showing the user.

Step 5: Present

Show the complete SKILL.md to the user. Ask:

  • "Create this file, or adjust something first?"

Do NOT create the file until the user approves.


Workflow: Refine Existing Skill

Step 1: Read the Skill

cat .claude/skills/<skill-name>/SKILL.md

Step 2: Score Against Six Characteristics

Create a scorecard:

## Skill Quality: <skill-name>

| # | Characteristic | Score | Issue |
|---|---------------|-------|-------|
| 1 | Framework not checklist | ✅/⚠️/❌ | <specific issue> |
| 2 | Concrete commands | ✅/⚠️/❌ | <specific issue> |
| 3 | Output template | ✅/⚠️/❌ | <specific issue> |
| 4 | Multiple operations | ✅/⚠️/❌ | <specific issue> |
| 5 | Anti-patterns | ✅/⚠️/❌ | <specific issue> |
| 6 | Decision framework | ✅/⚠️/❌ | <specific issue> |

Step 3: Propose Improvements

For each ⚠️ or ❌, write the specific fix. Show diff, not description.

Step 4: Present

Show scorecard + proposed changes. Wait for user approval before editing.


Skill Naming Conventions

  • Skill directory: kebab-case, descriptive (ground-check, pr-review)
  • Skill name in frontmatter: matches directory name
  • Description: starts with verb or noun, one line, no period
  • Operations: lowercase, no hyphens (scan, focus, review)

Common Mistakes

  1. Writing a manual instead of a skill — if it's >400 lines, it's too prescriptive. Skills guide, they don't dictate.
  2. No anti-patterns section — without "what NOT to do", the AI will freestyle and drift.
  3. Vague workflow — "analyze the code" is not a step. "Run cargo clippy 2>&1 | head -20" is a step.
  4. No output format — if you don't define the output, every run produces different structure.
  5. Copying an entire skill — reference existing skills, don't duplicate their content. Use "follow /testing conventions" instead.

References

  • Best workflow skill: .claude/skills/issue-plan/SKILL.md
  • Best review skill: .claude/skills/pr-review/SKILL.md
  • Best analysis skill: .claude/skills/issue-scan/SKILL.md
  • Best ops skill: .claude/skills/dev-server/SKILL.md
  • Alias creator: .claude/skills/skill-alias/SKILL.md

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.