Agent skill
new-execution
Declare a one-off run as code in outputs/, previewed on the pull request and run exactly once by the merge.
From getcargohq/cargo-manifest · 5 skill entries · 12 · pushed 2026-11-01
What it does when it runs
Declare a one-off run as code in outputs/, previewed on the pull request and run exactly once by the merge. Use whenever something should happen once rather than keep running: enroll a list into a play, run a tool over some accounts, backfill a field. Writes the entry's .ts, its data, and a README with a pending outcome, then fills the outcome once the run finishes.
Automated analysis of the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- writes files
Ask about new-execution
Opens your assistant with this page's recorded context. Check the linked sources before relying on it.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/getcargohq/cargo-manifest.git /tmp/cargo-manifest git -C /tmp/cargo-manifest sparse-checkout set ".agents/skills/new-execution" mkdir -p ~/.claude/skills/new-execution cp -R "/tmp/cargo-manifest/.agents/skills/new-execution/." ~/.claude/skills/new-execution/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from getcargohq/cargo-manifest/blob/85826ba3037b4a4571f7f918596071b32de5ef1d/.agents/skills/new-execution/SKILL.md, which is licensed MIT (repository). 704 words, 4 headings.
A one-off run, declared in outputs/
A play keeps running. An execution happens once: the pull request shows
what it will do, the merge does it, and Cargo's ledger makes sure it never
happens twice. It lives in outputs/ because it is history from the moment
it merges.
Step 0: is it really one-off?
| The user wants | Use |
|---|---|
| Something that keeps happening (every new lead, every week) | The new-motion skill: a play, tool, or agent in infra/ |
| A run, once, over records or on one input | This skill |
Steps
-
Name it. The id is
YYYY-MM-DD-<slug>: today's absolute date and a kebab-case, verb-first slug (2026-10-14-enroll-expansion-pilot). The entry directory isoutputs/<id>/, and the id inside the code is the same string. The outputs linter fails the PR otherwise. -
Pick what runs. Import it from
infra/by handle, never by UUID. If it does not exist yet, add it in the same PR (new-motionfor a play): the merge deploys it before the execution starts.Workflow defineBatch(once per record)defineRun(once)A play Any data but a file; the model must be the play's own No A tool Any data Yes defineWorkflow(...)inline, for logic not worth deployingAny data Yes Enrolling into an outreach play is that motion's campaign. Its
context/motion/file must exist with its hypothesis, and the entry'sserves:names the outcome it moves. -
Pick the data (a batch only). Prefer data already in Cargo over a file.
Kind When { kind: "segment", segment }A list someone built in Cargo { kind: "filter", model, filter, limit }Records matching a condition. limitis required{ kind: "recordIds", model, ids }A handful of known records { kind: "form", records }A few rows written in the code, checked against the workflow's form { kind: "file", path, mappings }A CSV in the entry, at most 50 MB. pathis relative toinfra/("../outputs/<id>/accounts.csv"), andmappingsrenames its columns to the workflow's inputs -
Write
outputs/<id>/<slug>.ts.import { defineBatch } from "@cargo-ai/cdk"; import { contacts } from "../../infra/models"; import { expansion } from "../../infra/plays/expansion"; export const pilot = defineBatch("2026-10-14-enroll-expansion-pilot", { workflow: expansion, data: { kind: "filter", model: contacts, filter, limit: 50 }, });One execution per entry. Never put one in
_template/or any other_-prefixed directory: the CDK finds executions anywhere, and would run it. -
Write
outputs/<id>/README.mdfromoutputs/_template/README.md, withoutcome: pending. Fill "What ran" now (link the.tsand what it runs). "Headline result" waits for the run. -
Verify.
npm run typecheck, thennpm run lint, then open the PR. In the Cargo plan comment, the "Runs once" row should match the intent: the record count, what it sends, what it costs. If it needs approval, say so and stop. A human addscargo:approve-impact; never add it yourself. -
After the merge, fill the outcome. The deploy check names the batch or run it started. Once it finishes, read its result (the Cargo MCP's
get_batch/get_run) and replaceoutcome: pendingwith what it produced, in numbers, plus the headline. This is the one edit an entry gets after it merges; anything later is a dated addendum.If the check says the execution was held (its records grew past the preview, or nothing approved it), it did not run and is still pending. Tell the user why. The next pull request previews it again.
Rules
- Once merged, the code is history. Editing or deleting the
.tsafter the merge changes nothing: the ledger keyed on the id has it. To run something again, or differently, write a new entry with a new id. - Executions run only from Cargo's deploy, once the repository is connected to the workspace. Local deploys are denied here, as for everything else.
- Absolute dates, and no em dashes, as everywhere in this repo.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- playbook-new-in-role by growthenginenowoslawski · 797
- warm-transfer-execution by louisblythe · 195
- abm-campaign-execution by ZENABM · 27
- new-business-registration by zime-ai · 19
- new-client-onboarding by ekatasingh1107 · 2
- playbook-new-in-role by automatewithuday · 1
- new by sarahcallmesmadds · 0
- new by sarahcallmesmadds · 0
Need help setting it up?
This page tells you what new-execution does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.