Skip to main content

What you will learn

  • The structure of a SkillManifest v1 document
  • Required fields for permissions, sandbox configuration, and file integrity
  • How manifest signing and verification works

Overview

A SkillManifest is a JSON document that describes a sandboxed skill: its name, publisher, permissions, resource limits, file hashes, and a cryptographic signature. Skills must be registered via POST /v1/skills/register before they can execute in Domain C.

Schema structure

Fields

Top-Level

Publisher

Permissions

Sandbox

Files

Each entry in the files array:

Registration pipeline

When a manifest is submitted to POST /v1/skills/register, it goes through 6 validation steps:
1

Schema Validation

The manifest is validated against the JSON Schema with additionalProperties: false.
2

Signature Verification

The ECDSA signature is verified against the publisher.address. The manifest is canonicalized (JCS) before verification.
3

Hash Computation

A keccak256 hash of the canonical manifest is computed for the registry record.
4

File Hash Verification

Each file’s SHA-256 hash is compared against the declared hash in the manifest. Any mismatch rejects the registration.
5

Static Analysis

The skill code is scanned for security violations: prohibited imports (child_process, fs), direct network access (fetch, http), and environment variable access (process.env).
6

Registry Storage

The manifest and hash are stored in the SQLite registry. Duplicate names are rejected (409 Conflict).

Signing a manifest

To sign a manifest, canonicalize the JSON (excluding the signature field) and produce an ECDSA signature:

Next steps