DOCSSPM.YAML REFERENCE

spm.yaml Specification

The structural configuration manifest declaring package meta info, runtime systems, dependencies, and strict semantic input/output contracts.


The Manifest Manifest

Every skill package has an spm.yaml manifest at its root directory. This manifest serves two critical operations:

  • CLI Packing: Identifies the package name, version, entry target, and execution runtime rules for publishing.
  • LLM Tool-Calling binding: Declares the semantic description and parameters schema that LLM agents use to parse tool payloads.

Production YAML Example

Here is a production-grade spm.yaml specification for a skill package designed to query weather reports:

spm.yaml
# Skill Package Manager Configuration Manifest
spm: "1.0"
namespace: "weather"
name: "report-fetcher"
version: "1.2.0"
description: "Fetches live weather reports, temperatures, and wind speeds for a target city."
entry: "./dist/index.js"
runtime: "node"

# Parameter constraints used by LLMs to format inputs
input:
  type: "object"
  properties:
    city:
      type: "string"
      description: "The name of the target city (e.g., 'San Francisco', 'Tokyo')."
    units:
      type: "string"
      enum: ["celsius", "fahrenheit"]
      default: "celsius"
      description: "Temperature metrics system to return."
  required: ["city"]

# Output constraints guaranteeing runtime validation schemas
output:
  type: "object"
  properties:
    temp:
      type: "number"
    wind:
      type: "string"
    condition:
      type: "string"

Parameter Key Reference

spmstringRequired

Indicates the SPM package spec framework compiler version. Use "1.0".

namespacestringRequired

The publisher scope (e.g. organization name or username). Keeps your packages organized and prevents name conflicts.

namestringRequired

The specific kebab-case identifier of your skill (e.g., "report-fetcher"). Combine with the namespace to form the unique identifier (e.g., "@weather/report-fetcher").

descriptionstringRequired

A highly descriptive semantic sentence explaining precisely what capabilities this skill delivers. CRITICAL: This parameter is injected directly into LLM prompt tool lists so models understand when and why to invoke this package.

entrystringRequired

Relative path mapping the direct compiled executable script entry points (e.g. "./dist/index.js").

runtimestringRequired

The target execution layer required to sandbox this skill. Supported runtimes are: "node", "python", or "docker".

input / outputobject (JSON Schema)Required

Strict standard JSON Schema objects detailing parameter constraints, properties, typings, default properties, and requirements. Guarantees safety and tool precision.