Systems Lab

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.

activeSelf-containedActs undeclared704 words

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-tools in 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.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
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.

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 wantsUse
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 inputThis skill

Steps

  1. 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 is outputs/<id>/, and the id inside the code is the same string. The outputs linter fails the PR otherwise.

  2. 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-motion for a play): the merge deploys it before the execution starts.

    WorkflowdefineBatch (once per record)defineRun (once)
    A playAny data but a file; the model must be the play's ownNo
    A toolAny dataYes
    defineWorkflow(...) inline, for logic not worth deployingAny dataYes

    Enrolling into an outreach play is that motion's campaign. Its context/motion/ file must exist with its hypothesis, and the entry's serves: names the outcome it moves.

  3. Pick the data (a batch only). Prefer data already in Cargo over a file.

    KindWhen
    { kind: "segment", segment }A list someone built in Cargo
    { kind: "filter", model, filter, limit }Records matching a condition. limit is 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. path is relative to infra/ ("../outputs/<id>/accounts.csv"), and mappings renames its columns to the workflow's inputs
  4. 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.

  5. Write outputs/<id>/README.md from outputs/_template/README.md, with outcome: pending. Fill "What ran" now (link the .ts and what it runs). "Headline result" waits for the run.

  6. Verify. npm run typecheck, then npm 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 adds cargo:approve-impact; never add it yourself.

  7. 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 replace outcome: pending with 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 .ts after 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.

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.

Build my GTM engine

Tell us what you want to improve. Fedor reviews the workflow and replies by email when there is a useful fit.

Fedor reviews every request personally. If there is a useful fit, he will reply by email.