Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/rome-os/rome/workflow_creationnpx skills add rome-os/rome --skill workflow_creationgit clone --depth 1 https://github.com/rome-os/romeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/rome-os/rome/workflow_creation)<a href="https://agentmods.dev/skills/rome-os/rome/workflow_creation"><img src="https://agentmods.dev/badge/skills/rome-os/rome/workflow_creation.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.06270 |
| Opus 5 | $0.00000 | $0.03135 |
| Sonnet 5 | $0.00000 | $0.01254 |
| Haiku 4.5 | $0.00000 | $0.00627 |
Grade A, and why
workflow_creation scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 236 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Workflow Creation
A workflow is a single Rome action whose body is plain author-written code: one async function, runWorkflow(input, ctx), that transforms the value flowing in and implements its own control flow — sequencing, concurrency, conditionals, fan-out — directly in TypeScript. The run action calls runWorkflow directly, and the function reaches reusable work through ctx.runAction(canonicalId, args), which can invoke any registered action — system:send_message, a SaaS API via connector:connector_proxy, or system:summon (hand a piece of work to an LLM agent).
Each workflow is its own Rome app, scaffolded from the bundled workflow template. The template ships the entire shell — run action, trigger API, web page, run-history table — already wired and buildable. You write the one thing that differs per workflow: the body of runWorkflow().
Artifact identity — never use bare names
The scaffold is formatVersion: 2. Definitions use app-local names (name: run);
every reference and runtime call uses <app-id>:<local-name>, even for an action
owned by this workflow. Never emit a bare artifact name or self:<name>.
Use the real canonical ids for shared platform artifacts:
- LLM work:
ctx.runAction("system:summon", { agentName: "assistant:assistant", prompt }) - Connected provider API:
ctx.runAction("connector:connector_proxy", args) - Messaging:
ctx.runAction("system:send_message", args) - Routine creation:
ctx.runAction("system:create_routine", { actionName: "<workflow-app-id>:run", ... }) - Core orchestrator, only when the workflow explicitly needs it:
core:main
Three principles that decide most of the design
These come up on nearly every workflow, so internalize them before writing anything — the rest of the skill assumes them.
- Generative work is a
system:summoncall, never a bespoke agent or action. When the request is "write me a recap / draft replies / summarize these / decide what matters," the tempting move is to stand up a custom writer agent plus agenerateaction plus a DB of past results. Resist it — that whole apparatus collapses to one line:await ctx.runAction("system:summon", { agentName: "assistant:assistant", prompt }). Put the voice, persona, and instructions in the prompt, not a custom agent. A hand-writtenaction.yaml/agent.yamlis also an error surface: one wrong field fails the whole app to load, and the run then throws "action not found."system:summonis the agent entry point.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 236 lines · 0 tokens per session scan A 4a38239a61bc
workflow_creation is a skill published in the GitHub repository rome-os/rome (451 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 6,270 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
aos-router
Route one inbound user message to exactly one enabled AOS capability. This skill is a strategy contract only. Transport normalization, queueing, permissions, idempotency, audit events, retries, and capability execution stay in Rust.
code-studio-spec
Kiro-style Spec Mode for Code Studio: requirements, design, tasks, implementation, verification, and final report. Runtime sessions, candidate workspaces, diff approval, tests, and cancellation stay in Rust.
watchdog
Parse natural-language WatchDog questions into structured AgentOps queries. This skill documents the intent contract. Rust rules, permission checks, action guards, and fallback answers remain authoritative.
code-studio-code
Cursor/Codex-style coding workspace contract for ordinary Code Mode. This skill documents the behavior expected from the coding agent. Runtime sessions, workspace isolation, process execution, diff validation, and apply/reject actions stay in Rust.
nl2sql-reference
Strategy contract for user-bound reference files in Data Exploration. References can be README files, SQL demos, Python scripts, notebooks exported as text, metric dictionaries, or any UTF-8 text that explains business query patterns. Storage, upload validation, SQL safety, datasource permissions, and query execution…
pm-assistant
Product operations assistant strategy contract. PM short answers and deep analysis should be evidence-grounded and should separate facts from hypotheses. Model calls, hooks, queueing, cancellation, notifications, and staged task execution stay in Rust.