home / skills / gentleman-programming / gentleman.dots / skill-creator

This skill helps you create new AI agent skills by applying the Agent Skills spec, including templates, metadata, and usage guidance.

npx playbooks add skill gentleman-programming/gentleman.dots --skill skill-creator

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
4.2 KB
---
name: skill-creator
description: >
  Creates new AI agent skills following the Agent Skills spec.
  Trigger: When user asks to create a new skill, add agent instructions, or document patterns for AI.
license: Apache-2.0
metadata:
  author: gentleman-programming
  version: "1.0"
allowed-tools: Read, Edit, Write, Glob, Grep, Bash, WebFetch, WebSearch, Task
---

## When to Create a Skill

Create a skill when:
- A pattern is used repeatedly and AI needs guidance
- Project-specific conventions differ from generic best practices
- Complex workflows need step-by-step instructions
- Decision trees help AI choose the right approach

**Don't create a skill when:**
- Documentation already exists (create a reference instead)
- Pattern is trivial or self-explanatory
- It's a one-off task

---

## Skill Structure

```
skills/{skill-name}/
├── SKILL.md              # Required - main skill file
├── assets/               # Optional - templates, schemas, examples
│   ├── template.py
│   └── schema.json
└── references/           # Optional - links to local docs
    └── docs.md           # Points to docs/developer-guide/*.mdx
```

---

## SKILL.md Template

```markdown
---
name: {skill-name}
description: >
  {One-line description of what this skill does}.
  Trigger: {When the AI should load this skill}.
license: Apache-2.0
metadata:
  author: gentleman-programming
  version: "1.0"
---

## When to Use

{Bullet points of when to use this skill}

## Critical Patterns

{The most important rules - what AI MUST know}

## Code Examples

{Minimal, focused examples}

## Commands

```bash
{Common commands}
```

## Resources

- **Templates**: See [assets/](assets/) for {description}
- **Documentation**: See [references/](references/) for local docs
```

---

## Naming Conventions

| Type | Pattern | Examples |
|------|---------|----------|
| Generic skill | `{technology}` | `pytest`, `playwright`, `typescript` |
| Prowler-specific | `prowler-{component}` | `prowler-api`, `prowler-ui`, `prowler-sdk-check` |
| Testing skill | `prowler-test-{component}` | `prowler-test-sdk`, `prowler-test-api` |
| Workflow skill | `{action}-{target}` | `skill-creator`, `jira-task` |

---

## Decision: assets/ vs references/

```
Need code templates?        → assets/
Need JSON schemas?          → assets/
Need example configs?       → assets/
Link to existing docs?      → references/
Link to external guides?    → references/ (with local path)
```

**Key Rule**: `references/` should point to LOCAL files (`docs/developer-guide/*.mdx`), not web URLs.

---

## Decision: Prowler-Specific vs Generic

```
Patterns apply to ANY project?     → Generic skill (e.g., pytest, typescript)
Patterns are Prowler-specific?     → prowler-{name} skill
Generic skill needs Prowler info?  → Add references/ pointing to Prowler docs
```

---

## Frontmatter Fields

| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Skill identifier (lowercase, hyphens) |
| `description` | Yes | What + Trigger in one block |
| `license` | Yes | Always `Apache-2.0` for Prowler |
| `metadata.author` | Yes | `gentleman-programming` |
| `metadata.version` | Yes | Semantic version as string |

---

## Content Guidelines

### DO
- Start with the most critical patterns
- Use tables for decision trees
- Keep code examples minimal and focused
- Include Commands section with copy-paste commands

### DON'T
- Add Keywords section (agent searches frontmatter, not body)
- Duplicate content from existing docs (reference instead)
- Include lengthy explanations (link to docs)
- Add troubleshooting sections (keep focused)
- Use web URLs in references (use local paths)

---

## Registering the Skill

After creating the skill, add it to `AGENTS.md`:

```markdown
| `{skill-name}` | {Description} | [SKILL.md](skills/{skill-name}/SKILL.md) |
```

---

## Checklist Before Creating

- [ ] Skill doesn't already exist (check `skills/`)
- [ ] Pattern is reusable (not one-off)
- [ ] Name follows conventions
- [ ] Frontmatter is complete (description includes trigger keywords)
- [ ] Critical patterns are clear
- [ ] Code examples are minimal
- [ ] Commands section exists
- [ ] Added to AGENTS.md

## Resources

- **Templates**: See [assets/](assets/) for SKILL.md template

Overview

This skill helps create new AI agent skills following a clear project spec and naming conventions. It guides when to create a skill, how to structure files and assets, and what mandatory metadata to include. The outcome is consistent, discoverable skills that encode reusable patterns and project-specific rules.

How this skill works

It inspects recurring patterns, project conventions, and complex workflows to generate a new skill scaffold with required frontmatter and minimal examples. It advises whether to include code templates or local documentation links and provides a checklist to validate the new skill before registering it. The result is a concise, rule-driven skill file plus optional assets and local references.

When to use it

  • A pattern repeats and the AI needs explicit guidance or constraints
  • Project conventions differ from generic best practices
  • Workflows require step-by-step instructions or decision trees
  • You need to provide reusable code templates, schemas, or configs
  • You want to encode decision logic for choosing approaches

Best practices

  • Start with the most critical patterns the AI must follow
  • Keep examples minimal, focused, and copy-paste ready
  • Place code templates and JSON schemas in assets/ when needed
  • Point to local documentation in references/ rather than external URLs
  • Ensure frontmatter includes name, description with trigger, author, license, and version

Example use cases

  • Create a skill that standardizes test runner setup and common commands
  • Add a project-specific formatting and linting skill with config templates
  • Document a multi-step deployment workflow with decision tables
  • Provide JSON schemas and example configs for configuration-heavy components
  • Encode naming conventions and registration checklist for new skills

FAQ

When should I use assets vs references?

Put code templates, schemas, and example configs in assets/. Use references/ to link to local documentation files only.

What frontmatter fields are mandatory?

Include name (lowercase hyphenated), description with trigger, license (Apache-2.0), metadata.author, and metadata.version.