Skip to main content
The palyra-skills crate defines the standard for packaging, verifying, and establishing trust for skill artifacts. A skill is a portable unit of capability containing WASM modules, static assets, a manifest, and cryptographic signatures. The system uses an Ed25519-based signing model combined with Trust-on-First-Use (TOFU) or explicit allowlisting to ensure that only authorized code executes within the daemon.

Skill Artifact Format (.palyra-skill)

A .palyra-skill file is a ZIP-compressed archive with a strict internal structure. It bundles execution logic (WASM), configuration (Manifest), and supply-chain metadata (SBOM/Provenance).

Archive Structure

PathDescription
skill.tomlThe primary manifest defining metadata and capabilities.
signature.jsonEd25519 signature of the artifact payload.
sbom.cdx.jsonCycloneDX Software Bill of Materials.
provenance.jsonSLSA-style build provenance metadata.
modules/*.wasmCompiled WebAssembly modules.
assets/**/*Static assets (templates, icons, data files).
Sources: crates/palyra-skills/src/lib.rs#13-17, crates/palyra-skills/src/constants.rs#1-10

Packaging Data Flow

The build_signed_skill_artifact function orchestrates the creation of an artifact by collecting files, validating the manifest, and signing the resulting payload. Sources: crates/palyra-cli/src/commands/skills.rs#59-67, crates/palyra-skills/src/lib.rs#11-12

Manifest Schema and Validation

The skill.toml manifest is the source of truth for a skill’s identity and required permissions. It is parsed into a SkillManifest struct crates/palyra-skills/src/models.rs#1-20.

Key Manifest Sections

Sources: crates/palyra-skills/src/manifest.rs#51-150, crates/palyra-skills/src/tests.rs#11-57

Trust and Verification

Palyra employs a cryptographic trust model to prevent the execution of tampered or unauthorized skills.

Ed25519 Signing

Artifacts are signed using 32-byte Ed25519 private keys. The signature covers the SHA-256 hash of the payload (everything except the signature itself). The verify_skill_artifact function validates this signature before checking the trust store crates/palyra-skills/src/verify.rs#1-30.

Trust Store and TOFU

The SkillTrustStore manages known publishers and their public keys.
  1. Allowlisted: The publisher and key are explicitly trusted in the configuration.
  2. TOFU (Trust-on-First-Use): If allow_tofu is enabled, the first time a publisher’s key is encountered, it is “pinned” to the trust store. Subsequent versions of skills from that publisher must use the same key crates/palyra-cli/src/commands/skills.rs#124-140.

Verification Lifecycle

Sources: crates/palyra-skills/src/verify.rs#25-50, crates/palyra-cli/src/commands/skills.rs#112-127

Security Auditing and Quarantine

Before a skill is promoted from installation to active execution, it undergoes a security audit and may be placed in a quarantine lifecycle.

Static Analysis (Audit)

The audit_skill_artifact_security function performs static checks on the artifact crates/palyra-skills/src/audit.rs#1-15:

Quarantine Lifecycle

Skills can be moved through different states managed by the SkillsCommand crates/palyra-cli/src/args/skills.rs#4-182:
  1. Quarantined: The skill is installed but disabled due to failed audit, missing trust, or manual operator action.
  2. Enabled: The operator has explicitly reviewed and authorized the skill for execution.
  3. Removed: The skill artifact and associated metadata are purged from the skills_dir.
Sources: crates/palyra-cli/src/commands/skills.rs#150-200, crates/palyra-cli/src/output/skills.rs#101-119, crates/palyra-cli/tests/skills_lifecycle.rs#178-210