manifest.yaml Reference
Every Lore package must include a manifest.yaml at the root of the package directory.
Schema
apiVersion: lore.io/v1
kind: Skill # Skill | Rule | Spec | Template | MCPServer
metadata:
namespace: m1cloud
name: azure-architect
version: 1.0.0
spec:
title: Azure Architect
description: Azure architecture specialist
content:
defaultLanguage: en-US
translations:
- en-US
- pt-BR
dependencies:
- m1cloud/terraform-reviewer:^1.0.0
license: Apache-2.0
tags:
- azure
- architectureFields
apiVersion
Must be lore.io/v1.
kind
Package type. One of: Skill, Rule, Spec, Template, MCPServer.
| Kind | Description |
|---|---|
Skill | Reusable capability that teaches an AI how to perform a task |
Rule | Behavioral constraints and policies |
Spec | Structured project requirements |
Template | Reusable project scaffolding |
MCPServer | MCP Server installation descriptor — configures an MCP server in AI runtimes |
metadata.namespace
Publisher namespace. Must match your registered namespace in the registry.
metadata.name
Package name in kebab-case. Together with namespace, forms the unique package identifier.
metadata.version
Semver (MAJOR.MINOR.PATCH). Published versions are immutable.
spec.title
Human-readable package title.
spec.description
One-line package description.
content.defaultLanguage
IETF BCP 47 language tag (e.g., en-US). A content file for this language must exist.
translations
List of all languages for which content files exist.
dependencies
List of required packages. Format: <namespace>/<name>:<semver-range>.
license
SPDX license identifier.
tags
List of tags for search and discovery.
mcp: (MCPServer only)
Required for kind: MCPServer. Forbidden for all other kinds. Defines how the CLI installs the MCP server into the target AI runtime’s configuration.
mcp:
defaultTransport: stdio # "stdio" | "sse" — required when both transports are declared
transports:
stdio:
command: npx # executable to invoke
args:
- -y
- my-mcp-server
env:
MY_API_KEY: "" # empty = required (user must fill in)
LOG_LEVEL: "info" # non-empty = optional with default
sse:
url: https://mcp.example.com/sse
headers:
Authorization: "Bearer ${MY_API_KEY}"At least one transport (stdio or sse) must be present. When only one transport is declared, defaultTransport is optional (the CLI defaults to the single available transport).
Env vars with an empty value ("") are treated as required — the CLI will warn after installation that the user must set them. Env vars with a non-empty value are optional and pre-filled with the default.