Back to Skills

iii-core-primitives

Use when registering iii functions, binding triggers, selecting sync/void/enqueue invocation, creating workers, inspecting the live worker registry, installing registry workers, authoring custom triggers, moving channel data, or adapting external HTTP functions across TypeScript, Python, and Rust.

18,593stars1,244forksUpdated 8/17/2026

Security Assessment

Safe(92/100)
Security Score92/100

About iii-core-primitives

This skill documents the core primitives of the iii backend platform — Function (a named unit of work), Trigger (an event source bound to a function), and Worker (a process that connects to the engine and executes functions) — and how to use them across TypeScript, Python, and Rust. It solves the problem of getting started with iii's building blocks: registering local or HTTP-invoked functions, binding triggers, selecting invocation modes, creating and installing workers, and inspecting the live engine registry.

It covers function registration for both local handlers and existing HTTP services, trigger binding, and the `trigger()` call for invoking any function by ID. Worker guidance spans writing your own worker with registerWorker/registerFunction/registerTrigger and installing capability workers from the public registry at workers.iii.dev via `iii worker add`, including version pinning, OCI images, local paths, and lockfile replay with `iii worker sync`. A worker manifest example shows how iii starts a local worker project. Built-in discovery functions read the live registry of workers, functions, triggers, and trigger types. It tabulates built-in trigger shapes (http, cron, durable subscriber, subscribe, state, stream, log) with their config and handler payloads, and the sync, void, and enqueue invocation modes. The guidance explicitly warns not to put secrets in metadata. Worked examples appear in all three languages.

The target users are backend developers building on iii who need the exact syntax for registering functions, binding triggers, choosing invocation modes, creating workers, or installing registry capabilities. It is the reference-level companion to the higher-level architecture-patterns skill.

FAQ

What are the three core iii primitives?

Function (a named unit of work like orders::validate), Trigger (an event source bound to a function), and Worker (a process that connects to the engine and executes functions).

What invocation modes are available?

Sync when the caller needs the result, Void for optional side effects with no result, and Enqueue for reliable async work that must complete with retries and a queue policy.

How do I add an existing capability worker?

Browse the public registry at workers.iii.dev and run `iii worker add <name>`, optionally pinning a version, using an OCI image reference, or a local path; commit iii.lock and run `iii worker sync` to replay installed workers.

What built-in trigger types does it document?

http, cron, durable subscriber, subscribe, state, stream, and log — each with its registration config and the payload shape the handler receives.

Does it give any security guidance?

Yes — it explicitly warns that functions and triggers can carry metadata for ownership and discovery but that secrets must not be placed in metadata.

Install iii-core-primitives

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill

Repository

iii-hq/iii