vault.yaml Specification
vault.yaml is the product manifest for every MyClaude product — 7 required fields plus optional metadata, pricing, and agent integration.
vault.yaml is the product manifest for every MyClaude product. It has 7 required fields and 9 optional fields.
Every product published to MyClaude requires a vault.yaml file in its root directory. It is the authoritative source of truth for your product's identity, category, and configuration. Think of it as package.json — but for Claude Code products.
What is vault.yaml?
When you run myclaude publish, the CLI reads vault.yaml first. Every field is validated against the JSON Schema at /specs/vault-yaml.schema.json before anything is uploaded. Invalid files are rejected with a descriptive error before any upload happens.
vault.yaml serves three roles simultaneously:
- Marketplace listing — name, description, category, and tags power the search index and product page
- Install configuration — tells the CLI where to place files in the buyer's environment
- Commerce contract — price and license define the terms of every transaction
Minimal example
A valid vault.yaml needs only 7 fields. Price defaults to 0 (free). Everything else is optional.
name: my-review-skill
version: "1.0.0"
category: skills
description: "Performs systematic code review with security, performance, and style analysis."
author: your-username
license: MIT
entry: SKILL.mdThat is a valid, publishable free product. Add optional fields only when they add real value.
Complete field reference
Required fields (7)
| Field | Type | Description |
|---|---|---|
name | string | URL-safe product identifier. Lowercase letters, digits, and hyphens only. 2-64 characters. Pattern: ^[a-z0-9-]+$ |
version | string | SemVer string (e.g., "1.0.0"). Always quote to prevent YAML from stripping trailing zeros. |
category | enum | One of: skills, squads, agents, workflows, design-systems, claude-md, bundle, applications, systems |
description | string | One-sentence product description. Shown in search results and cards. Max 200 characters. |
author | string | Your MyClaude username. Must match your authenticated account. |
license | string | SPDX license identifier (MIT, Apache-2.0, GPL-3.0) or proprietary. Default: MIT. |
entry | string | Main file path relative to product root (e.g., SKILL.md, AGENT.md, BUNDLE.md). |
Optional fields (9)
| Field | Type | Description | Default |
|---|---|---|---|
price | number | Sale price in USD. 0 for free. Minimum paid: $1.00. | 0 |
tags | string[] | Up to 10 searchable tags. Lowercase strings only. | [] |
display_name | string | Human-readable product name shown in the marketplace UI. Max 100 characters. | — |
long_description | string | Extended description in Markdown. Shown on the product detail page. Max 5000 characters. | — |
language | string | Primary language of product content (ISO 639-1). | en |
manifest_version | integer | vault.yaml format version. Current: 2. | 2 |
install_path | string | Target directory in buyer's environment. Overrides category defaults. | Category default |
min_cli_version | string | Minimum CLI version required to install. SemVer. | — |
config | object | Arbitrary key-value pairs for product-specific configuration. | {} |
Agent integration fields (optional, nested under their parent)
| Field | Type | Description |
|---|---|---|
agent_summary | string | One-line machine-readable summary for agent discovery. Max 100 characters. |
agent_spec | object | Structured metadata with inputs, outputs, side_effects, and context_budget for agent consumption. |
Field constraints
name — Must match ^[a-z0-9-]+$, 2-64 characters. The full product handle on the marketplace is @author/name.
version — Must be a valid SemVer string. Always quote in YAML. The CLI enforces monotonically increasing versions — you cannot re-publish a lower version.
category — Must be one of the 9 enum values (plural form, except claude-md). The category determines default install path and controls which validations run.
price — The CLI rejects values between 0.01 and 0.99 — the minimum paid price is $1.00. Values above 0 require Stripe Connect on your account.
license — proprietary signals no open source redistribution rights. All other values must be valid SPDX identifiers.
tags — Maximum 10 tags. Each should be a single concept: security, code-review, typescript.
Category defaults
Each category has a default entry file and install path. You can override these with the entry and install_path fields.
| Category | Default Entry | Install Path |
|---|---|---|
skills | SKILL.md | .claude/skills/{slug}/ |
squads | SQUAD.md | .claude/skills/{slug}/ |
agents | AGENT.md | .claude/skills/{slug}/ |
workflows | WORKFLOW.md | .claude/skills/{slug}/ |
design-systems | DESIGN-SYSTEM.md | ./myclaude-products/{slug}/ |
bundle | BUNDLE.md | .claude/skills/{slug}/ |
claude-md | CLAUDE.md | .claude/rules/{slug}.md |
applications | APPLICATION.md | ./myclaude-products/{slug}/ |
systems | — | .claude/skills/{slug}/ |
Examples by category
Skill
name: aegis-security-audit
version: "2.1.0"
category: skills
description: "Performs comprehensive security audits covering OWASP Top 10, auth flows, and dependency vulnerabilities."
author: kairo
license: MIT
entry: SKILL.md
price: 19.00
tags: [security, audit, owasp, vulnerability]Squad
name: copy-squad
version: "1.0.0"
category: squads
description: "15-agent content team: strategist, copywriters, editor, SEO specialist, and brand voice guardian."
author: content-labs
license: proprietary
entry: SQUAD.md
price: 49.00
tags: [content, copywriting, seo, team]
config:
max_agents: 15
coordination: sequentialAgent
name: typescript-reviewer
version: "1.3.0"
category: agents
description: "Single-purpose TypeScript code reviewer with strict mode analysis and type safety enforcement."
author: devtools
license: MIT
entry: AGENT.md
price: 9.00
tags: [typescript, code-review, static-analysis]Workflow
name: ci-deploy-pipeline
version: "1.0.0"
category: workflows
description: "Automated CI/CD workflow: test, build, security scan, deploy, and notify — wired for GitHub Actions."
author: platform-team
license: Apache-2.0
entry: WORKFLOW.md
tags: [ci-cd, deployment, automation, github-actions]Design System
name: terminal-dark-ds
version: "3.0.0"
category: design-systems
description: "Dark terminal design system: warm terracotta palette, Minor Third type scale, 5-level surface hierarchy."
author: vault-design
license: MIT
entry: DESIGN-SYSTEM.md
price: 29.00
tags: [design-system, dark-mode, tailwind, tokens]Bundle
name: security-audit-suite
version: "1.0.0"
category: bundle
description: "Complete security toolkit: audit skill, vulnerability agent, and remediation workflow in one package."
author: security-ops
license: MIT
entry: BUNDLE.md
price: 39.00
tags: [security, audit, bundle, toolkit]CLAUDE.md
name: enterprise-compliance-config
version: "2.0.0"
category: claude-md
description: "Enterprise Claude Code configuration: data privacy rules, output formatting, and compliance guardrails."
author: enterprise-tools
license: proprietary
entry: CLAUDE.md
tags: [enterprise, compliance, configuration]Application
name: api-scaffolder
version: "1.1.0"
category: applications
description: "Generates a complete REST API scaffold with auth, rate limiting, and OpenAPI spec from a data model."
author: scaffold-labs
license: MIT
entry: APPLICATION.md
price: 39.00
tags: [api, scaffold, rest, openapi]With agent integration
name: deep-research
version: "1.0.0"
category: skills
description: "Multi-source research with synthesis, validation, and structured output."
author: research-lab
license: MIT
entry: SKILL.md
tags: [research, synthesis, analysis]
agent_summary: "Deep research: multi-source, validated, structured output."
agent_spec:
inputs: ["query", "depth (shallow|medium|deep)", "max_sources"]
outputs: ["structured report", "source list", "confidence scores"]
side_effects: ["web searches", "file writes"]
context_budget: "~800 tokens"Validation
Run myclaude validate to check your vault.yaml without publishing:
myclaude validateThe same validation runs automatically during myclaude publish. Errors include the field name and the constraint that failed:
Error: vault.yaml validation failed
- price: value 0.50 is below minimum paid price of 1.00
- tags: maximum 10 tags, found 12
- description: 218 characters exceeds maximum of 200The full JSON Schema is at /specs/vault-yaml.schema.json. Use it for editor autocomplete or CI validation.
Common mistakes
| Mistake | Symptom | Fix |
|---|---|---|
| Unquoted version | version: 1.0 parsed as 1 | Always quote: version: "1.0.0" |
| Price below minimum | Rejected at publish | Use 0 for free or >= 1.00 for paid |
| Singular category name | Validation error | Use plural: skills not skill, agents not agent (exception: claude-md) |
| Author mismatch | Auth error at publish | author must match your logged-in username |
| Description too long | Validation error | Keep under 200 characters |
| Missing entry field | Validation error | Required: specify your main file (e.g., SKILL.md) |
| Tabs instead of spaces | YAML parse error | YAML requires spaces for indentation |
Related pages
- Publishing Your First Product — step-by-step publish tutorial
- Product Categories — category-specific file structures and requirements
- Quickstart — the fastest path to a live product