iii-exec
Run a sequential pipeline of shell commands at engine startup, keeping the final command alive for the engine's lifetime, with optional file-watch restarts. Configure it entirely in `iii-config.yaml`.
What this skill does
# iii-exec
The `iii-exec` worker runs a sequential pipeline of shell commands as part of engine startup. Each entry in the configured `exec:` array launches as a separate child process and must exit `0` before the next entry starts; the final entry is kept running as a long-lived process for the engine's lifetime. An optional `watch:` glob list restarts the whole pipeline whenever a matching file changes.
The worker exposes no callable functions and no trigger types — its surface is entirely declarative. There is nothing for an agent to call at runtime; configure `exec:` (and optionally `watch:`) on the worker and the engine manages the lifecycle, supervising and shutting the process down alongside itself.
## When to Use
- The engine should manage the lifecycle of a separate long-running app or daemon (boot, supervise, shut down together).
- You need prep steps that must succeed in order before a long-lived server starts (for example, install then build then serve).
- During development, the pipeline should restart automatically when source files change (via `watch:`).
## Boundaries
- Not a runtime command executor — the pipeline runs at engine startup only; there is no function to "run this command now."
- Not a scheduler — use the `iii-cron` trigger for recurring jobs; `iii-exec` is one-shot startup plus a single long-lived process.
- Entries run sequentially, not in parallel, and do not share working directory or environment; chain dependent steps with `&&` inside one entry.
- A non-zero exit on any intermediate command stops the pipeline and the long-lived command never starts.
## Configuration
- `exec: string[]` (required) — sequential pipeline of shell commands. Intermediate entries must exit `0`; the final entry is held open as the long-lived process.
- `watch: string[]` (optional) — glob patterns that restart the whole pipeline on file change. Caveat: the watcher matches by root directory plus file extension only — the filename portion is ignored, so `src/**/*.test.ts` matches every `.ts` file under `src/`, not just test files. Files without an extension are never matched. Use `**` for recursive depth (`config/*.json` watches only the top level; `config/**/*.json` watches at any depth).
```yaml
- name: iii-exec
config:
watch:
- steps/**/*.{ts,js}
exec:
- cd frontend && npm install
- cd frontend && npm run build
- bun run --enable-source-maps index-production.js
```
The first two commands run in order and must exit `0`; the third stays running for the worker's lifetime. If a prep step fails, the pipeline stops and the engine surfaces the failure.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.