Quirks Curator
This skill helps you scaffold, edit, and curate agent skills (quirks) that conform to the agentskills.io specification and the Quirks repository conventions.
When to Use
- Creating a new skill from scratch in this repository.
- Updating or editing an existing skill's
SKILL.md, associated scripts, references, or assets.
- Managing semantic versions (
metadata.version in frontmatter) during updates—prompting the user with suggestions or automations for version bumping.
- Generating or modifying a
SKILL.md file with proper YAML frontmatter and section templates.
- Setting up or updating the skill directory structure with optional scripts, assets, or references folders.
- Ensuring compliance with agentskills.io specifications and local quirks (like the
jq portability rule).
When Not to Use
- Creating standalone helper tools that aren't wrapped as skills.
Inputs
| Input |
Required |
Description |
| Skill name |
Yes |
Lowercase, alphanumeric, hyphens only (e.g., crush-config, keep-a-changelog). |
| Update type |
Yes |
Whether this is a new skill creation, a major update, a minor update, or a patch. |
| Description |
Optional |
What the skill does and when agents should use it (1-1024 chars). |
| Purpose |
Optional |
One paragraph describing the outcome of using the skill. |
| Workflow steps |
Optional |
Numbered steps the agent should follow. |
Workflow
Step 1: Detect Mode (Create vs. Edit)
Check if the folder skills/<skill-name>/ and the file skills/<skill-name>/SKILL.md already exist:
- If they do not exist: Proceed with Mode: Create (Steps 2, 3, 4, 5, 6, 8).
- If they exist: Proceed with Mode: Edit/Update (Steps 4, 5, 7, 8).
Step 2: Validate the skill name (Create Mode Only)
Ensure the proposed skill name:
- Contains only lowercase letters, numbers, and hyphens (
a-z, 0-9, -).
- Does not start or end with a hyphen.
- Does not contain consecutive hyphens.
- Is between 1-64 characters.
Step 3: Create the skill directory (Create Mode Only)
Create the directories required under skills/:
skills/<skill-name>/
Step 4: Extract the "Why" (Cognitive-First Principle)
Before writing or updating the body content, understand the underlying rationale behind every step, constraint, or modification:
- Do not accept assumptions as facts: Ask the skill creator/user to explain why a particular instruction, sequence, tool, file update, or folder structure is used.
- Leverage Interactive Tools: If your platform provides interactive questioning tools, use them to present structured yes/no, single-choice, or free-text questions to the creator to gather precise requirements. Examples of platform-specific tools include:
- Explain the "Why" in the text: When writing or updating the workflow steps in
SKILL.md, always explain the reasoning behind the constraints (e.g., instead of "You MUST use X," write "Use X because it avoids Y under Z conditions"). This helps future agents understand the theory of mind and adapt better when facing edge cases.
Step 5: Add or Update body content sections
Include or update the following sections in SKILL.md:
- Purpose / Title: High-level overview of the skill.
- When to Use: Bullet list of appropriate scenarios.
- When Not to Use: Boundaries and exclusions.
- Inputs: Table of required and optional inputs.
- Workflow: Numbered steps with clear instructions and code fences where relevant.
- Validation: Checklist of success criteria.
- Common Pitfalls: Table/list of potential issues and solutions.
Step 6: Generate initial SKILL.md with frontmatter (Create Mode Only)
Create skills/<skill-name>/SKILL.md with the required YAML frontmatter, utilizing the repository-wide license and author details:
---
name: <skill-name>
description: <description of what the skill does and when to use it>
license: Apache-2.0
metadata:
author: Ivan De Marino (http://github.com/detro)
version: 1.0.0
---
Step 7: Manage Semantic Versioning (Edit Mode Only)
When updating an existing skill, you must manage its version number (metadata.version in the YAML frontmatter) appropriately:
- Read the current version from the frontmatter of
skills/<skill-name>/SKILL.md (e.g. 1.1.0).
- Analyze the nature of the change:
- Major: Backwards-incompatible workflow changes, removing key parameters/inputs, or structural redesigns.
- Minor: Adding new capabilities, steps, optional inputs, or sub-scripts while keeping the previous features intact.
- Patch: Fixing typos, improving wording, updating descriptions, or minor bug fixes in associated scripts.
- Prompt the User: Present the suggested bump (e.g.,
1.1.1 for a patch, 1.2.0 for minor, 2.0.0 for major) to the user.
- If interactive tools are available (like Crush's
question tool), present a structured single_choice or free_text query asking them to confirm the suggested version or provide a custom override.
- Update the
metadata.version field in the frontmatter with the approved version.
Step 8: Add optional directories or scripts (if needed)
If the skill requires companion assets or executable scripts:
skills/<skill-name>/
├── SKILL.md
├── scripts/ # Executable code/helper scripts (e.g., catwalk.sh)
├── references/ # Additional documentation loaded on demand
└── assets/ # Templates, mock files, images, or data files
Note: Any scripts added should adhere to the rules outlined in AGENTS.md (e.g., no external network calls inside scripts, and strict set -euo pipefail bash configurations).
Step 9: Validate the skill
- Confirm frontmatter fields are valid.
- Ensure
SKILL.md body is under 500 lines (move verbose references to the references/ subdirectory if needed).
- Verify that file references use relative paths.
- Check that the skill name matches the directory name exactly.
SKILL.md Template
Use this template when creating a new skill:
---
name: <skill-name>
description: <1-1024 char description of what the skill does and when to use it>
license: Apache-2.0
metadata:
author: Ivan De Marino (http://github.com/detro)
version: 1.0.0
---
# <Skill Title>
<One paragraph describing the skill's purpose and outcome.>
## When to Use
- <Scenario 1>
- <Scenario 2>
## When Not to Use
- <Exclusion 1>
- <Exclusion 2>
## Inputs
| Input | Required | Description |
|-------|----------|-------------|
| <input-name> | Yes/No | <description> |
## Workflow
### Step 1: <Action>
<Instructions for this step>
### Step 2: <Action>
<Instructions for this step>
## Validation
- [ ] <Verification step 1>
- [ ] <Verification step 2>
## Common Pitfalls
| Pitfall | Solution |
|---------|----------|
| <Problem> | <How to avoid or fix> |
Validation Checklist
After creating or updating a skill, verify:
Common Pitfalls
| Pitfall |
Solution |
| Name contains uppercase letters |
Use only lowercase: my-skill not My-Skill. |
| Description is vague |
Include what it does AND when to use it. |
| Workflow is composed of purely rigid "MUST/SHOULD" imperatives without context |
Explain the reasoning behind instructions. Give future agents the cognitive framework to adapt to edge cases. |
| Making assumptions about complex or ambiguous requirements |
Stop and ask the user. Use the question tool to gather structured inputs on design/workflow/versioning trade-offs. |
| Forgetting to bump the version when updating an existing skill |
Detect if the skill exists, assess change magnitude, suggest the SemVer bump, and update frontmatter accordingly. |
| Hardcoded network calls in scripts |
Move networking to agent's native tools (e.g., fetch / download). scripts must only do computation/local transforms. |
Non-portable jq commands |
Avoid --slurpfile in scripts and instructions. Use --argjson with subshell input. |
References
1---2name: quirks-curator3description: Scaffolds, edits, and curates agent skills (quirks) for the Quirks repository conforming to the agentskills.io specification. Use when creating a new skill, updating an existing skill, generating or modifying SKILL.md files, managing semantic versions, or setting up skill directory structures. Handles frontmatter generation, version bumping, section templates, and validation.4license: Apache-2.05---67# Quirks Curator89This skill helps you scaffold, edit, and curate agent skills (quirks) that conform to the [agentskills.io](https://agentskills.io/) specification and the **Quirks** repository conventions.1011## When to Use1213- Creating a new skill from scratch in this repository.14- Updating or editing an existing skill's `SKILL.md`, associated scripts, references, or assets.15- Managing semantic versions (`metadata.version` in frontmatter) during updates—prompting the user with suggestions or automations for version bumping.16- Generating or modifying a `SKILL.md` file with proper YAML frontmatter and section templates.17- Setting up or updating the skill directory structure with optional scripts, assets, or references folders.18- Ensuring compliance with agentskills.io specifications and local quirks (like the `jq` portability rule).1920## When Not to Use2122- Creating standalone helper tools that aren't wrapped as skills.2324## Inputs2526| Input | Required | Description |27|----------------|-------------|-----------------------------------------------------------------------------------|28| Skill name | Yes | Lowercase, alphanumeric, hyphens only (e.g., `crush-config`, `keep-a-changelog`). |29| Update type | Yes | Whether this is a new skill creation, a major update, a minor update, or a patch. |30| Description | Optional | What the skill does and when agents should use it (1-1024 chars). |31| Purpose | Optional | One paragraph describing the outcome of using the skill. |32| Workflow steps | Optional | Numbered steps the agent should follow. |3334## Workflow3536### Step 1: Detect Mode (Create vs. Edit)3738Check if the folder `skills/<skill-name>/` and the file `skills/<skill-name>/SKILL.md` already exist:39- **If they do not exist**: Proceed with **Mode: Create** (Steps 2, 3, 4, 5, 6, 8).40- **If they exist**: Proceed with **Mode: Edit/Update** (Steps 4, 5, 7, 8).4142### Step 2: Validate the skill name (Create Mode Only)4344Ensure the proposed skill name:45- Contains only lowercase letters, numbers, and hyphens (`a-z`, `0-9`, `-`).46- Does not start or end with a hyphen.47- Does not contain consecutive hyphens.48- Is between 1-64 characters.4950### Step 3: Create the skill directory (Create Mode Only)5152Create the directories required under `skills/`:5354```55skills/<skill-name>/56```5758### Step 4: Extract the "Why" (Cognitive-First Principle)5960Before writing or updating the body content, understand the underlying rationale behind every step, constraint, or modification:61- **Do not accept assumptions as facts**: Ask the skill creator/user to explain *why* a particular instruction, sequence, tool, file update, or folder structure is used.62- **Leverage Interactive Tools**: If your platform provides interactive questioning tools, use them to present structured yes/no, single-choice, or free-text questions to the creator to gather precise requirements. Examples of platform-specific tools include:63 - **`question`** (in **Crush**)64 - **`AskUserQuestion`** (in **Claude Code** — see [Claude Code Tools Reference](https://code.claude.com/docs/en/tools-reference))65 - **`Ask User Tool`** (in **Gemini CLI** — see [Gemini CLI Tools](https://geminicli.com/docs/tools/ask-user/))66 - **`Question`** (in **Open Code** — see [Open Code Tools Reference](https://opencode.ai/docs/tools/#question))67- **Explain the "Why" in the text**: When writing or updating the workflow steps in `SKILL.md`, always explain the reasoning behind the constraints (e.g., instead of "You MUST use X," write "Use X because it avoids Y under Z conditions"). This helps future agents understand the theory of mind and adapt better when facing edge cases.6869### Step 5: Add or Update body content sections7071Include or update the following sections in `SKILL.md`:72731. **Purpose / Title**: High-level overview of the skill.742. **When to Use**: Bullet list of appropriate scenarios.753. **When Not to Use**: Boundaries and exclusions.764. **Inputs**: Table of required and optional inputs.775. **Workflow**: Numbered steps with clear instructions and code fences where relevant.786. **Validation**: Checklist of success criteria.797. **Common Pitfalls**: Table/list of potential issues and solutions.8081### Step 6: Generate initial `SKILL.md` with frontmatter (Create Mode Only)8283Create `skills/<skill-name>/SKILL.md` with the required YAML frontmatter, utilizing the repository-wide license and author details:8485```yaml86---87name: <skill-name>88description: <description of what the skill does and when to use it>89license: Apache-2.090metadata:91 author: Ivan De Marino (http://github.com/detro)92 version: 1.0.093---94```9596### Step 7: Manage Semantic Versioning (Edit Mode Only)9798When updating an existing skill, you must manage its version number (`metadata.version` in the YAML frontmatter) appropriately:991. Read the current version from the frontmatter of `skills/<skill-name>/SKILL.md` (e.g. `1.1.0`).1002. Analyze the nature of the change:101 - **Major**: Backwards-incompatible workflow changes, removing key parameters/inputs, or structural redesigns.102 - **Minor**: Adding new capabilities, steps, optional inputs, or sub-scripts while keeping the previous features intact.103 - **Patch**: Fixing typos, improving wording, updating descriptions, or minor bug fixes in associated scripts.1043. **Prompt the User**: Present the suggested bump (e.g., `1.1.1` for a patch, `1.2.0` for minor, `2.0.0` for major) to the user.105 - If interactive tools are available (like Crush's `question` tool), present a structured `single_choice` or `free_text` query asking them to confirm the suggested version or provide a custom override.106 - Update the `metadata.version` field in the frontmatter with the approved version.107108### Step 8: Add optional directories or scripts (if needed)109110If the skill requires companion assets or executable scripts:111112```113skills/<skill-name>/114├── SKILL.md115├── scripts/ # Executable code/helper scripts (e.g., catwalk.sh)116├── references/ # Additional documentation loaded on demand117└── assets/ # Templates, mock files, images, or data files118```119120*Note: Any scripts added should adhere to the rules outlined in AGENTS.md (e.g., no external network calls inside scripts, and strict `set -euo pipefail` bash configurations).*121122### Step 9: Validate the skill123124- Confirm frontmatter fields are valid.125- Ensure `SKILL.md` body is under 500 lines (move verbose references to the `references/` subdirectory if needed).126- Verify that file references use relative paths.127- Check that the skill name matches the directory name exactly.128129## `SKILL.md` Template130131Use this template when creating a new skill:132133```markdown134---135name: <skill-name>136description: <1-1024 char description of what the skill does and when to use it>137license: Apache-2.0138metadata:139 author: Ivan De Marino (http://github.com/detro)140 version: 1.0.0141---142143# <Skill Title>144145<One paragraph describing the skill's purpose and outcome.>146147## When to Use148149- <Scenario 1>150- <Scenario 2>151152## When Not to Use153154- <Exclusion 1>155- <Exclusion 2>156157## Inputs158159| Input | Required | Description |160|-------|----------|-------------|161| <input-name> | Yes/No | <description> |162163## Workflow164165### Step 1: <Action>166167<Instructions for this step>168169### Step 2: <Action>170171<Instructions for this step>172173## Validation174175- [ ] <Verification step 1>176- [ ] <Verification step 2>177178## Common Pitfalls179180| Pitfall | Solution |181|---------|----------|182| <Problem> | <How to avoid or fix> |183```184185## Validation Checklist186187After creating or updating a skill, verify:188189- [ ] Skill name matches directory name exactly.190- [ ] Skill name is lowercase with hyphens only.191- [ ] Description is non-empty and under 1024 characters.192- [ ] `SKILL.md` body is under 500 lines.193- [ ] Frontmatter contains the correct license (`Apache-2.0`) and author name.194- [ ] Instructions are specific and actionable.195- [ ] Workflow has numbered steps with clear checkpoints.196- [ ] Every non-trivial step or constraint explains *why* it is necessary, rather than just stating it.197- [ ] The agent's interactive tools (like `question`) were leveraged during scaffolding or updating to interview the creator.198- [ ] Semantic version was correctly bumped in YAML frontmatter for existing skills based on changes (Major, Minor, or Patch).199- [ ] No hardcoded tokens, secrets, or external URLs (unless generic/public API endpoints).200201## Common Pitfalls202203| Pitfall | Solution |204|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|205| Name contains uppercase letters | Use only lowercase: `my-skill` not `My-Skill`. |206| Description is vague | Include what it does AND when to use it. |207| Workflow is composed of purely rigid "MUST/SHOULD" imperatives without context | Explain the reasoning behind instructions. Give future agents the cognitive framework to adapt to edge cases. |208| Making assumptions about complex or ambiguous requirements | Stop and ask the user. Use the `question` tool to gather structured inputs on design/workflow/versioning trade-offs. |209| Forgetting to bump the version when updating an existing skill | Detect if the skill exists, assess change magnitude, suggest the SemVer bump, and update frontmatter accordingly. |210| Hardcoded network calls in scripts | Move networking to agent's native tools (e.g., `fetch` / `download`). scripts must only do computation/local transforms. |211| Non-portable `jq` commands | Avoid `--slurpfile` in scripts and instructions. Use `--argjson` with subshell input. |212213## References214215- [Agent Skills Specification](https://agentskills.io/specification)216- [AGENTS.md](../../AGENTS.md)