# Claude-Skills Output Formats: The Complete Enum Guide for Skill Metadata

> Explore Claude-Skills output formats. Discover the ten enum values like code, document, and analysis that dictate your skill's metadata. Understand the complete list and validation.

- Repository: [Jeffallan/claude-skills](https://github.com/jeffallan/claude-skills)
- Tags: api-reference
- Published: 2026-02-16

---

**Claude-skills supports exactly ten standardized output format values—`code`, `document`, `report`, `architecture`, `specification`, `schema`, `manifests`, `analysis`, `analysis-and-code`, and `code+analysis`—that must be declared in a skill's YAML front-matter and are strictly validated by the repository's tooling.**

The `Jeffallan/claude-skills` repository defines a strict contract for how AI skills declare their deliverables. Understanding the complete list of **claude-skills output formats** ensures your skill metadata passes validation and integrates correctly with the ecosystem's automation scripts.

## The Ten Canonical Claude-Skills Output Formats

According to the core specification in [`CLAUDE.md`](https://github.com/Jeffallan/claude-skills/blob/main/CLAUDE.md) (line 69), the `output-format` field accepts only the following enum values:

- **`code`** — Raw source code in any programming language, without markdown fences or conversational wrapper text.
- **`document`** — Structured documentation such as Markdown or HTML files intended for human reading.
- **`report`** — Human-readable analysis, summaries, or findings presented in narrative form.
- **`architecture`** — High-level system design descriptions, diagrams, or architectural decision records.
- **`specification`** — API contracts, interface definitions, or formal technical specifications.
- **`schema`** — Data model definitions including JSON Schema, GraphQL schemas, or database DDL.
- **`manifests`** — Deployment configurations such as Kubernetes YAML, Docker Compose files, or Terraform HCL.
- **`analysis`** — Pure analytical output without accompanying implementation code.
- **`analysis-and-code`** — Combined deliverable where analysis precedes the implementation.
- **`code+analysis`** — Code-first presentation followed by explanatory analysis.

These values represent the complete, closed set. The validation scripts reject any skill declaring an output format outside this enumeration.

## How to Declare Output Formats in Skill Metadata

Each skill defines its output format in the YAML front-matter of its [`SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/SKILL.md) file. The metadata parser reads this field to determine how the skill's deliverables should be handled.

Here is the standard front-matter structure:

```yaml
---
name: react-expert
description: Generates optimized React components and hooks
license: MIT
metadata:
  author: https://github.com/Jeffallan
  version: "1.0.0"
  domain: frontend
  triggers: react, component, hook
  role: specialist
  scope: implementation
  output-format: code          # ← must be one of the ten enum values

  related-skills: typescript-master, test-engineer
---

```

In this example from [`skills/react-expert/SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/skills/react-expert/SKILL.md) (line 12), the `output-format: code` declaration signals that this skill produces raw source code without markdown fences or conversational wrapper text.

## Validation and Enforcement Mechanisms

The repository maintains strict validation through automated scripts that parse every skill's front-matter and verify compliance with the output format enum.

### Validation Script

The [`scripts/validate-skills.py`](https://github.com/Jeffallan/claude-skills/blob/main/scripts/validate-skills.py) file enforces that every skill's `output-format` value appears in the canonical list defined in [`CLAUDE.md`](https://github.com/Jeffallan/claude-skills/blob/main/CLAUDE.md). If a skill declares an invalid format, the validation fails with an explicit error message identifying the offending skill and the unsupported value.

### Migration Helper

The [`scripts/migrate-frontmatter.py`](https://github.com/Jeffallan/claude-skills/blob/main/scripts/migrate-frontmatter.py) script (lines 218 and 279) handles bulk updates and migrations of the `output-format` field. When the enum evolves or when normalizing legacy skills, this script ensures that migrated values remain within the allowed set, preventing drift from the specification.

## Real-World Usage Examples

The repository demonstrates every output format through concrete skill implementations:

- **`code`**: [`skills/react-expert/SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/skills/react-expert/SKILL.md) (line 12) — Generates React components without markdown wrappers.
- **`report`**: [`skills/the-fool/SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/skills/the-fool/SKILL.md) (line 12) — Produces narrative analysis and summaries.
- **`architecture`**: [`skills/cloud-architect/SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/skills/cloud-architect/SKILL.md) (line 12) — Creates high-level system design documentation.
- **`document`**: Used by skills generating structured Markdown documentation for human consumption.
- **`specification`**: Employed by API design skills defining OpenAPI or GraphQL contracts.
- **`schema`**: Used for JSON Schema or database modeling skills.
- **`manifests`**: Infrastructure-as-code skills producing Kubernetes or Docker Compose files.
- **`analysis`**: Pure research skills delivering findings without implementation.
- **`analysis-and-code`**: Comprehensive skills that explain then implement.
- **`code+analysis`**: Implementation-first skills that follow up with explanation.

## Summary

- Claude-skills recognizes **ten standardized output formats** defined as a closed enum in [`CLAUDE.md`](https://github.com/Jeffallan/claude-skills/blob/main/CLAUDE.md) (line 69).
- Valid values are: `code`, `document`, `report`, `architecture`, `specification`, `schema`, `manifests`, `analysis`, `analysis-and-code`, and `code+analysis`.
- Skills declare their format in the `output-format` field of [`SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/SKILL.md) YAML front-matter.
- The [`scripts/validate-skills.py`](https://github.com/Jeffallan/claude-skills/blob/main/scripts/validate-skills.py) and [`scripts/migrate-frontmatter.py`](https://github.com/Jeffallan/claude-skills/blob/main/scripts/migrate-frontmatter.py) (lines 218, 279) enforce strict compliance with the enum.
- Real-world examples in [`skills/react-expert/SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/skills/react-expert/SKILL.md), [`skills/the-fool/SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/skills/the-fool/SKILL.md), and [`skills/cloud-architect/SKILL.md`](https://github.com/Jeffallan/claude-skills/blob/main/skills/cloud-architect/SKILL.md) demonstrate practical usage.

## Frequently Asked Questions

### What happens if I use an invalid output format in my skill?

The validation script [`scripts/validate-skills.py`](https://github.com/Jeffallan/claude-skills/blob/main/scripts/validate-skills.py) will reject your skill during the CI/CD pipeline or local validation run. It produces an explicit error message identifying your skill file and the unsupported `output-format` value, preventing invalid skills from entering the registry.

### Can a skill support multiple output formats simultaneously?

No, the `output-format` field accepts a single enum value per skill. If your use case requires both code and analysis, you should select the composite format `analysis-and-code` or `code+analysis` depending on which deliverable should appear first in the output.

### How do I migrate an existing skill to a new output format?

Use the [`scripts/migrate-frontmatter.py`](https://github.com/Jeffallan/claude-skills/blob/main/scripts/migrate-frontmatter.py) utility, which handles bulk updates of the `output-format` field at lines 218 and 279. This script ensures that migrated values remain within the allowed enum and can normalize legacy skills to match the current specification in [`CLAUDE.md`](https://github.com/Jeffallan/claude-skills/blob/main/CLAUDE.md).

### Where is the authoritative source for valid output format values?

The canonical enum definition resides in [`CLAUDE.md`](https://github.com/Jeffallan/claude-skills/blob/main/CLAUDE.md) at line 69. This file serves as the central specification for the entire repository, and all validation scripts reference this definition when checking skill compliance.