iii-architecture-patte…
Use when composing iii primitives into backend architectures: durable workflows, reactive backends, agentic pipelines, event-driven CQRS, effect pipelines, and…
Configure a managed iii engine through worker-compose.yaml or a directly supervised engine through config.yaml. Use for engine ports, RBAC listeners, streams, sandboxes, and configuration storage.
$ npx -y skills add iii-hq/iii --skill iii-engine-config --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/iii-engine-configContext preview
The summary Claude sees to decide when to auto-load this skill.
Configure a managed iii engine through worker-compose.yaml or a directly supervised engine through config.yaml. Use for engine ports, RBAC listeners, streams, sandboxes, and configuration storage.
name: iii-engine-config description: >- Configure a managed iii engine through worker-compose.yaml or a directly supervised engine through config.yaml. Use for engine ports, RBAC listeners, streams, sandboxes, and configuration storage.
iii has two engine configuration modes. Do not mix them.
The presence of `engine:` means that Compose owns the engine process. Engine worker values are direct mappings; there is no nested `config:` field.
namespace: orders
engine:
url: ws://127.0.0.1:49134
registration_namespace_grace_ms: 5000
workers:
configuration:
adapter:
name: fs
config:
directory: ./config
iii-worker-manager:
host: 127.0.0.1
port: 49134
"iii-worker-manager#rbac":
host: 0.0.0.0
port: 49135
middleware_function_id: auth::middleware
iii-http-functions: {}
iii-stream:
host: 127.0.0.1
port: 3112
iii-sandbox:
auto_install: true
containers: {}Start it with:
iii compose --namespace orders-daemon --up --file worker-compose.yaml
`engine.url` defaults to `ws://127.0.0.1:49134` and uses Compose's `${VAR:-default}` expansion. `engine.workers` stays opaque until the engine reads the generated YAML, so its values use `${VAR:default}` and retain numeric types. Compose materializes an owner-only config under `<project-dir>/.iii/compose/<daemon-namespace>/` and removes it after clean shutdown. With `III_COMPOSE_STATE_DIR`, it uses `<state-root>/<project-slug>/<daemon-namespace>/`. Changing `engine:` requires restarting Compose. Do not combine a managed file with explicit `--engine`.
Allowed engine worker base names are:
Use `#instance` for another instance of an allowed worker. `iii-engine-functions`, `iii-telemetry`, and `iii-observability` are injected automatically and must not be declared.
HTTP, cron, queue, state, pubsub, bridge, application, and custom workers belong under `containers:`. Add registry packages with:
iii trigger -n orders-daemon compose::add worker=state
Keep list-shaped `config.yaml` only when systemd, Kubernetes, or another supervisor owns the engine:
workers:
- name: configuration
config:
adapter:
name: fs
config:
directory: ./config
- name: iii-worker-manager
config:
host: 127.0.0.1
port: 49134Start the engine and external Compose daemon separately:
iii --config config.yaml iii compose --namespace orders-daemon --engine ws://127.0.0.1:49134 --up --file worker-compose.yaml
The external Compose file must omit `engine:`. `III_URL` may replace `--engine`. Direct config expansion uses `${VAR:default}` and accepts only the same five engine-owned worker types. Any project worker stops startup/reload with `UNSUPPORTED_CONFIG_WORKERS`.
adapters, RBAC listeners, or engine lifecycle selection.
What is iii? · Quick Start · Add Workers · SDKs · Agent Skills · Console · Resources
Repo: iii-hq/iii
Use when composing iii primitives into backend architectures: durable workflows, reactive backends, agentic pipelines, event-driven CQRS, effect pipelines, and…
Use when registering iii functions, binding triggers, selecting sync/void/enqueue invocation, creating workers, inspecting the live worker registry, installing…
Handle iii engine and SDK errors across Node, Python, Rust, and browser workers. Use when interpreting error codes, retryability, RBAC denial, timeouts,…
Install the iii engine, set up your first worker, and get a working backend running. Use when a user wants to start a new iii project, install the SDK, or…
Use when working with iii SDK APIs across Node.js, browser, Python, or Rust: package installation, worker initialization, function/trigger registration,…
Turn a tech-spec directory into an interactive, marketing-grade web presentation — built so engineers understand the design, the reader is convinced of the…