home / skills / prowler-cloud / prowler / skill-creator

skill-creator skill

/skills/skill-creator

This skill guides users to create new AI agent skills following the Agent Skills spec, adding instructions and patterns.

npx playbooks add skill prowler-cloud/prowler --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: prowler-cloud
  version: "1.0"
  scope: [root]
  auto_invoke: "Creating new skills"
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: prowler-cloud
  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 | `prowler-cloud` |
| `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 creates new AI agent skills that follow the Agent Skills specification and Prowler conventions. It triggers when a user asks to create a new skill, add agent instructions, or document recurring patterns for AI. The skill enforces naming, frontmatter, and content rules so skills are consistent and discoverable.

How this skill works

It inspects the requested pattern and guides the author through required fields, critical patterns, and minimal code examples. It recommends whether to include assets (templates, schemas) or references (local docs), enforces frontmatter fields, and produces a ready-to-add skill package structure. It also runs a checklist to ensure the skill is reusable, correctly named, and documented with commands and examples.

When to use it

  • A pattern is used repeatedly and AI needs explicit guidance
  • Project-specific conventions differ from generic best practices
  • You must document a complex workflow or decision tree for agent behavior
  • When adding agent instructions or standard templates for reuse
  • Do not use for one-off tasks, trivial patterns, or when authoritative docs already exist

Best practices

  • Start with the most critical patterns the agent must follow
  • Keep code examples minimal, focused, and copy-paste ready
  • Include a Commands section with common copy-paste commands
  • Choose assets/ for templates and schemas; choose references/ for local docs only
  • Follow required frontmatter: name, description (with trigger), license, metadata.author, metadata.version
  • Run the pre-creation checklist to avoid duplicates and ensure reusability

Example use cases

  • Create a prowler-iam skill describing IAM hardening patterns and enforcement steps
  • Author a generic pytest or typescript skill with minimal examples and commands
  • Add agent instructions that define decision trees for remediation versus alerting
  • Provide reusable templates and JSON schemas in assets/ for automated checks
  • Document project-specific naming and frontmatter rules for new contributors

FAQ

How should I choose a skill name?

Use lowercase hyphenated names. For Prowler-specific patterns prefix with prowler-. Keep names short and descriptive (e.g., prowler-iam, pytest).

When do I put files in assets/ versus references/?

Put code templates, schemas, and example configs in assets/. Use references/ to point to local project documentation files only — never external web URLs.