SDK

Workflows, agents, prompts, rules, and themes ship as extension packs: plain YAML and Markdown loaded by the app. These pages are the authoring guides. Engine contracts — Resolve algebra, prompt assembly, the host threat model — live in the product repository.

A pack is a directory in a git repo; a project override is a file committed under {repo}/.paintedwolf/.

What you can build

SurfaceYou writeGuide
Your first packA workflow, a rule, and an inject — end to end in ten minutesBuild your first pack
Extension packsA directory of units + extension.yaml, installable from a git URLExtension packs
Custom workflowsworkflow.yaml manifests — phases, gates, transitionsCustom workflows
Open Agent RulesPortable guardrail YAML — typed conditions, declared effectsOpen Agent Rules
AgentsPersona YAML with tool profiles as the capability ceilingAgents
PromptsTemplate overlays and lifecycle injectsPrompts
MCP & scannersTyped result bindings; scanner rows stay in SettingsMCP & scanners
ThemesColours for a closed token vocabulary, with a contrast floorThemes
ReferenceDirectory map, CLI, schemas, stabilityReference
Host APILocal REST + SSE for sessions, extensions, MCP, and scannersHost API

Put pw on your PATH before the tutorial — see Command-line tool.

The three layers

Everything resolves in the same order, and the higher layer wins:

LayerWhereScope
Bundledshipped inside the appThe stock packs — always current with the app
Device~/.config/paintedwolf/Installed packs and desired state for every project on this machine
Project{repo}/.paintedwolf/Committed with your code — the whole team gets the same behavior

A project’s pack can add shared and additive units, and can disable or own shared units freely — but it cannot strip device enforcement, and some kinds never leave the device at all. The property table is on Extension packs → Unit kind properties.

Vocabulary tables on these pages are generated from the v1 engine. Packs declare host compatibility with compatibility.extension_api. See Reference for schemas and the stability contract.