
cargo-project
Declare a whole Cargo workspace in a project, GTM as Code — connectors, models, plays, tools, agents, MCP servers, segments, context, folders, files, workers, and apps in TypeScript, reconciled with cargo-ai project (init → types → plan → deploy), the way you would run Pulumi or Terraform. Triggers: "as code", "in git", "version-controlled", "reproducible", "Terraform for Cargo", "set up a whole workspace", "staging and production", "deploy the workspace from CI", "review this in a PR", "cargo.json", "cargo.state.json", "scaffold from a template", "is there a cookbook for this", "start from a cookbook". Skills with a worked project example (TAM building, account scoring, call capture, inbound qualification, CRM enrichment, standup) live in gtm-skills; menu in references/cookbooks.md. Skip when: it is a one-off operation, a read, or an ad-hoc query — use the matching capability skill.
- Installs
- 3.2K
- Last 24h
- +121
- Trending rank
- #1769
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/getcargohq/cargo-skills --skill cargo-project- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads cargo-project automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Cargo project — a Cargo workspace, declared in a repo
Use this skill to define a Cargo workspace in TypeScript (define* builders from
@cargo-ai/cdk) and reconcile it to live infrastructure with cargo-ai project deploy.
It is the declarative counterpart to the imperative capability skills: instead
of running one CLI command per resource, you write the whole graph once and deploy
it repeatably, with a deploy state — held in your workspace, pointed at by a
committed cargo.state.json — linking your code to what Cargo created. A project
is the folder holding cargo.json ({ "resources": "infra" }): every
cargo-ai project command finds the nearest one above where it runs, and stops
without one.
"Project" and "workspace" are two different things — keep them apart. A workspace is the Cargo tenant you sign into: it holds the models, connectors, agents, mailboxes and credits, and it is what
login --workspace-nameselects and whatwhoamireports. A project is the folder holdingcargo.jsonthat declares resources and deploys them into a workspace: it is whatproject initscaffolds, wherecargo.state.jsonsits, and what every command finds by walking up to the nearestcargo.json. A repo can hold several, onecargo.jsoneach. One project deploys into one workspace at a time — the workspace guard refuses a deploy when the state's workspace isn't the selected one — and the same project reaches a dev and a prod workspace through a different deploy state each. Say "project" for it, and don't name a project directorymy-workspace.
Bootstrap
Already signed in (cargo-ai whoami returns a workspace)? Skip to the next section.
npm install -g @cargo-ai/cli # no global install? prefix every command with `npx @cargo-ai/cli`
cargo-ai login --email you@company.com # emailed code, no browser; creates the account on first use
# alternatives: --oauth (browser) · --token <api-token> (CI)
cargo-ai whoami # confirm the active workspace before any write
cargo-ai project --help # `unknown command` = CLI too old; reinstall @cargo-ai/cli@latest
Two project-specific extras: the project needs @cargo-ai/cdk as a dependency for the define* builders you import (cargo-ai project init scaffolds a package.json with it — then npm install), and the cargo-ai project domain ships with the CLI itself.
Every command prints JSON to stdout; failures exit non-zero with {"errorMessage": "..."}. Anything that creates a run or a batch is async — pass --wait-until-finished or poll the matching get. When the full skill bundle is installed, ../cargo/references/prerequisites.md adds the CLI version pin, token scopes, and the admin-only surface.
1) What this skill governs
- Authoring every Cargo resource with a
define*builder that returns a handle; wiring resources by passing handles to each other (the dependency graph is your variable graph). - Deploying the graph:
plan(offline diff) →deploy(create/update, write state) →destroy(tear down). Plus drift (refresh), adoption (import), and recovery (rollback). - Typing the config against your workspace's real integration schemas
(
cargo-ai project types).
A project spans every resource kind — so it overlaps every imperative capability
skill (cargo-connection, cargo-storage, cargo-ai, cargo-orchestration,
cargo-content, cargo-hosting, …). Which to reach for is the first decision:
2) A project or the CLI? — the routing decision
Declarative (this skill) vs imperative (a capability skill).
Use a project when the user is managing resources as an artifact:
- "Set up / stand up / bootstrap a whole workspace (as code / from a template)."
- "Make this reproducible / version-controlled / in git / repeatable across environments (dev → prod)."
- "Deploy these connectors + models + agents together" (a multi-resource graph wired by dependency).
- Anything that should be re-runnable and diffable, where losing the definition would be a problem.
Use the matching capability skill (imperative cargo-ai <domain>) when the
user is doing a one-off operation or exploring:
- "Create one connector", "add a column to this model", "list connectors", "run this workflow", "query storage", "read this agent's memory."
- Any read, ad-hoc query, or single mutation that doesn't need to live in code.
When unsure, ask whether the result should be committed and re-deployable. If yes
→ a project. If it's a quick action or a read → the capability skill (see the
cargo router to pick the right domain).
Before writing anything: restate it, then ask only what you cannot read
A project request is usually one sentence ("score our accounts every week"), and the
gap between that sentence and a deployed graph is where a wrong build comes from. Close
it before the first define* file, not after the plan.
- Read first.
cargo-ai whoami,connection connector list,storage model list, the project's existinginfra/, andreferences/cookbooks.md. Never ask what one of those answers (which CRM is connected, whether a Companies model exists, whether a cookbook already does this). - Restate the build in four lines: what keeps arriving and where it lands; what triggers it (schedule, webhook, record change); what it reads and what it writes; what it spends on each run (the paid nodes, how many records, how often).
- Ask at most three questions, only for what lives in the user's head: which records count (the segment), where the result goes (a channel, a CRM field), the volume or credit ceiling. Give each a proposed default, so "yes" answers all of them.
- Wait for that yes before authoring. If the user already said to just build it, or the request names every piece, write the restatement as stated assumptions and carry on; the plan review is then where they correct it.
A cookbook's What you will be asked table is this step already worked out for that
outcome: use it instead of improvising one.
3) The lifecycle
cargo-ai project init <dir> scaffold the Cargo template: cargo.json + cargo.state.json, resources in infra/
│
cargo-ai project types generate per-workspace types for typed config (optional)
│
(author define* files) importing a .ts file IS registration — no list to keep
│
cargo-ai project plan compile the graph, diff against the deploy state (creates nothing)
│
cargo-ai project deploy create/update resources in dependency order, write state
│
cargo-ai project destroy tear down resources recorded in state
project plansays what resources change; it doesn't show what a play does. For adefinePlay/defineToolgraph past three nodes, present a Mermaid flowchart of the node graph alongside the plan — routing, fallbacks, and which nodes bill on every scheduled run are what the reviewer is approving. Generate it from the deployed release after the first deploy, or from the node array while authoring:../cargo-orchestration/references/node-diagram.md.
Side branches: cargo-ai project check (validate the tree, no state, no API calls —
the CI/editor subset of plan) · cargo-ai project info (what is here: every declared
resource, the file that declared it, whether it is deployed) · cargo-ai project refresh
(read-only drift report) · deploy --refresh (re-apply code over out-of-band edits) ·
deploy --prune (delete resources removed from code) · cargo-ai project import <id> <uuid>
(bind an existing live resource into state) · cargo-ai project pull (generate define*
source from a live workspace and adopt it) · cargo-ai project rollback (restore the
pre-deploy state snapshot) · cargo-ai project state (inspect and repoint the deploy state;
state connect to deploy from GitHub) · cargo-ai project graph (Mermaid of the live
workspace's resources, or --project [--plan] for the local code) · deploy --dry-run /
--draft (preview / stage without going live).
plan and info answer different questions. plan answers what will deploy do —
its unit is the change, and it exits non-zero so CI can gate on it. info answers what
is here — its unit is the resource, and it never fails. check is plan minus the diff:
it needs no state, so it is what an editor or a pre-commit hook runs. Running cargo-ai project with no subcommand prints its help.
4) Documentation hierarchy
- Level 1 —
SKILL.md(this file): the decision model, lifecycle, critical rules, and routing. - Level 2 — Guides:
guides/authoring-resources.md,guides/deploy-and-state.md,guides/executions.md,guides/typed-config.md. - Level 2.5 — Recipes:
recipes/*.md— step-by-step playbooks to follow as your execution plan. - References —
references/resources.md(the full builder catalog),references/commands.md(everycargo-ai projectsubcommand + flags),references/troubleshooting.md, andreferences/examples/full-workspace.md.
5) Read behavior — match the task to a doc and READ IT
| When the task involves… | Read this first | What it gives you |
|---|---|---|
Writing define* files, wiring resources, secret()/env(), defineWorkflow bodies (tool/play logic) | guides/authoring-resources.md | The builder catalog, the handle/ref model, secrets, and how workflow bodies compile. |
plan / deploy / destroy, the state file, drift, adopting existing resources, CI | guides/deploy-and-state.md | The deploy lifecycle, cargo.state.json semantics, drift/import/rollback, async builds. |
Running a play, tool or workflow once from code (defineBatch / defineRun, outputs/, the ledger) | guides/executions.md | Builders, data kinds, where executions live, what plan prints, the exactly-once ledger and its statuses. |
Typed config, cargo-ai project types, tsconfig wiring, uses.<key>.<action> connector calls in workflow bodies | guides/typed-config.md | What project types generates and how to wire it into your project. |
| A field/spec/output for a specific builder | references/resources.md | Every builder → spec fields → which ref each takes → outputs. |
| Exact command flags | references/commands.md | Every cargo-ai project subcommand and its flags. |
| A deploy error / footgun | references/troubleshooting.md | The known failure modes and fixes. |
| A known GTM outcome, before authoring one; or what to suggest after one is set up | references/cookbooks.md | The cookbook menu, in stage order: gtm-skills that carry a worked project example, the adaptations each supports, and which to suggest next. |
Cookbooks — check the menu before authoring a known outcome from scratch
getcargohq/gtm-skills holds, beside its
one-off skills, cookbooks: skills that carry worked project resources, the same job as a deployed
pipeline that keeps producing the result (TAM building, account scoring, call capture,
inbound qualification, CRM enrichment, stalled-deal nudges, …). Every folder is self-contained: its
own models, connectors and folders, no shared foundation, no requires graph.
The menu is local: references/cookbooks.md. Read it
before authoring a common GTM outcome from scratch, and again once a cookbook is set up:
it lists them in stage order, and that order is what to suggest next — the earliest
cookbooks not set up yet. It is generated from gtm-skills' catalog.json, so it cannot
drift.
A cookbook is a worked example, not a template to fill in. Each one declares in its SKILL.md what may be reshaped, what must hold or it stops
working, and what has to be answered either way, and it carries its own procedure.
project add is the copy step in that procedure:
cargo-ai project add cookbook/tam-building # inside a project
cargo-ai project init my-project --cookbook tam-building # no project yet: both at once
That writes the resources to infra/tam-building/ and the procedure to
.claude/skills/tam-building/, skipping any file it would overwrite. Then start the
skill at its Adapt section — its opening steps are written for someone who found the
folder on GitHub and still has to place it, so following them from the top scaffolds a
second project and copies the folder in again.
What is left after the copy is the part only you can do: reconcile it with what is
already declared, adapt the copied files in place to the project's real shape (do not
regenerate them from the skill's prose — the safety lives in the TypeScript), plan and
stop, deploy on a yes, walk its Done when.
If you are mid-task and the skill is not in this session, npx skills add getcargohq/gtm-skills/<slug> fetches the procedure alone and you can read
.agents/skills/<slug>/SKILL.md directly; no reload needed. To read one without
installing, npx skills use getcargohq/gtm-skills@<slug> prints it. Neither brings the
project resources — for those you still want project add.
Routing rule: one-off versus standing. A user who wants the list today wants
cargo-gtm (or gtm-skills' one-off build-tam-list); a user who wants a pipeline
that keeps producing it wants tam-building. The same words describe both ("build
our TAM"), so listen for whether the result is meant to keep arriving. A cookbook
matches → install it and follow it. No match → author from the recipes below.
Never cargo-ai project init --force into a directory that is not empty. It replaces
the project's package.json and reverts adapted code, while cargo.state.json
survives, so the next plan diffs a live workspace against code nobody wrote. Copy the
skill folder in as a sibling instead.
Each cookbook's state is in the menu's State column. approved means it was deployed
and run on a live workspace and its results checked; to-be-approved means it
typechecks and plans but has not been deploy-verified yet, so say so when you suggest
it. Either way, treat the skill's Done when as the acceptance test and review
cargo-ai project plan before deploying.
Recipes — follow step-by-step when one matches
| Recipe | Use when… |
|---|---|
recipes/scaffold-a-project.md | Standing up a new project from scratch (init → types → plan → deploy). |
recipes/add-connector-and-model.md | Adding a data source + a model sourced from it, wired by handle. |
recipes/build-an-agent.md | Composing a model + tool + agent (wired through uses) and deploying. |
recipes/migrate-existing-workspace.md | Bringing an already-live workspace under a project via project import. |
recipes/deploy-from-ci.md | Plan every PR and deploy every merge: connect the GitHub repo (project state connect), or your own CI with a token as the fallback. |
6) Critical rules
-
Commit
cargo.state.json— it is a pointer now, not the state. The deploy state lives in your workspace; the repo commits only{"stateUuid": "8f2c…"}.project initcreates the state and writes that pointer, so it lands in the scaffold commit. Commit it: without the uuid a fresh checkout can't find its state, and a deploy will not quietly create a replacement (that would orphan everything the old one tracks). The state records only uuids, hashes and outputs — never secret values. It is still the only handle on a deployed play, agent, or alert (they have no slug); recover a lost link withproject state bind <uuid>, or per-resource withcargo-ai project import. Git-ignore the working files (project initscaffolds this):.cargo-ai/ cargo.state.lock cargo.state.bak.json cargo.state.cache.json cargo.state.audit.jsonlOne state per project, and at most 10 live states per workspace:
cargo-ai project state list # every state here, and which one this project is on cargo-ai project state create # create one for this project, write the pointer cargo-ai project state bind <uuid> # repoint at an existing oneA project scaffolded before states moved to the workspace has the resource map inline in
cargo.state.json, and keeps deploying against that file for as long as you leave it there — nothing migrates behind your back.state createis what moves it: the map goes onto a new state, the file becomes a pointer, and you commit it. Don't migrate without telling the team, since a teammate who deploys before pulling the new pointer is deploying from a state that no longer exists. (Deleting a state:cargo-ai project state remove <uuid>drops the state without touching the live resources it tracked;--forceifcargo.state.jsonpoints at it.) -
Three ways to get a value in, and they are not interchangeable.
secret("ENV_VAR")— read from your environment at deploy time, excluded from the content hash and from state. Export the env var before deploying; a missing one fails the deploy with an unresolved${ENV_VAR}placeholder.env("ENV_VAR")— read from your environment at load time, and its value enters the spec and therefore the content hash, so changing it shows as drift. Use it for non-secret config you want tracked.workspaceEnv("NAME")— a pointer at a workspace env-var catalog entry. Nothing is read locally and nothing can fail; the value stays server-side and is re-read on every use, so rotating it in the workspace reaches the resource with no redeploy. Manage the catalog withcargo-ai workspaceManagement envVar(see../cargo-workspace-management/SKILL.md).
secret()andworkspaceEnv()are accepted at secret-typed schema positions only —cargo-ai project typesprints the union at exactly those positions. A resource's ownenvblock takesenv()orsecret()and rejects a pointer, because a worker, app, agent or script already inherits the whole workspace catalog; a pointer there could only restate a variable it can read anyway. -
A rotated
secret()needs more than a plain deploy to land. Keeping the value out of the content hash is what stops rotation reading as drift — and it is also whydeploywon't push the new value: nothing in the hash changed, so the resource isn't re-applied. Roll it withdeploy --refresh, or any other edit to that resource.workspaceEnv()has no such step; that is most of its appeal. -
Wire by handle, never by
.uuid. Pass adefine*handle directly (connector: hubspot,uses: [enrich]), orxxRef("uuid")for a resource you didn't define in code (connectorRef,modelRef,folderRef,toolRef,agentRef, …). Where a reference needs per-call options, wrap it as{ ref, …options }(e.g.uses: [{ ref: contacts, readOnly: true }]). -
Run
cargo-ai project typesafter workspace integrations change — it regenerates.cargo-ai/sodefineConnector/defineModelconfig (and connector actions called throughusesin workflow bodies) type-check against the real schemas. Typing is a bonus, never a gate: deploy works without it. -
A project is the folder holding
cargo.json(@cargo-ai/cdk≥ 1.0.112). The file names the folder whose.tsfiles are loaded,{ "resources": "infra" }, and optionally where executions live,"executions": ["outputs"](defaultoutputs/besidecargo.json, read at any depth; a*segment globs folders, e.g.["outputs/*/executions"]— seeguides/executions.md). Every command walks up from where it runs, as far as the repo root, to the nearestcargo.json, so any subdirectory works; a repo with several projects has onecargo.jsoneach, and the nearest wins. Without one, the command stops — it no longer guesses from aninfra/folder or apackage.json— and prints the line that adds it, at the project's root:echo '{ "resources": "infra" }' > cargo.jsoncargo.state.jsonlives besidecargo.json, never insideinfra/. A leftoverinfra/cargo.state.jsonstops every command with themvto run (two state files stop it too; keep the one that points at this project's state).--dir <path>still exists: it says where the lookup starts. Resources live ininfra/and not at the root because the loader imports every.tsunder the folderresourcesnames, and a repo root also holdsscripts/— whose files run on import. -
--yesin CI.deployanddestroyprompt for confirmation; non-interactive runs must pass--yes. -
A connected GitHub repo deploys on merge — and on connect.
cargo-ai project state connectplans every PR in a comment and runsdeploy --yeson every push to the production branch, starting with the branch head the moment you connect (--no-auto-deployto plan only). A merge whose plays and executions would exceed 100 emails, 100 LinkedIn actions, 100 chat messages, 5,000 audience adds or 2,500 credits — or can't be counted — failsNeeds approval: large impactuntil someone labels the PRcargo:approve-impact. That label is the user's cost approval: add it only on their explicit yes.secret()does not resolve there (useworkspaceEnv()), and while auto-deploy is on every other deploy of the state is refused (409stateAutoDeployed) — remove a GitHub Actions deploy rather than running both. Seerecipes/deploy-from-ci.md. -
A
definePlay/defineToolgraph with paid nodes gets a sample run before it goes wide. Deploying is not running, but the first thing that runs a deployed play is usually a batch over the whole segment — and a scheduled play re-bills every node on every run. Before enrolling everything (or enabling a schedule), run the deployed workflow on 10–20 records —cargo-ai orchestration batch create --workflow-uuid <uuid> --data '{"kind":"filter","modelUuid":"…","filter":…,"limit":15}', orbatch create --file ./plays/x.ts --data '…'to test-run the module without deploying — then ask the user to approve the full enrollment with the record count and credit estimate. Read the provider's playbook (../cargo-gtm/provider-playbooks/<slug>.md, esp. its Recurring use section) and the gate in../cargo-gtm/references/cost-discipline.md. -
An execution runs exactly once, on the next deploy, with no undo and no retry.
defineBatch/defineRunfiles underoutputs/(or thecargo.jsonexecutionsfolders) start a real batch or run after the resources apply; a play batch can send email and LinkedIn actions and spends credits, and reverting the code takes nothing back. Afilter/segmentexecution over the whole audience is a full batch: pilot it first and get approval on the record count and credit estimate per../cargo-gtm/references/cost-discipline.mdbefore it reaches adeploy(or a merge on a connected repo). The ledger lives in the workspace-held state, so a refused or finished execution never re-runs — give it a new id; executions need workspace-held state and never run under--draft. Seeguides/executions.md. -
A
defineAlertwhose actions call paid nodes re-bills on every breach. An alert'sactionsfire as real runs, so a badly-sizedthresholdon a tightschedulecan breach — and bill — every tick. Size the threshold withcargo-ai observability alert previewbefore deploying, prefer cheap notification actions (an agent that posts, a connector notification) over anything that fans out, and apply the same cost gate above when an action calls a credits-based provider. Scope/threshold and firing semantics:../cargo-observability/SKILL.md. -
defineMailboxbills monthly, anddefineDomainowns the records it publishes. A mailbox is 100–125 credits per month (shared/private 100, google 125) for as long as it exists (cargo-ai mailboxManagement pricing getfor live figures), so a+ create mailbox:…line in the plan is a recurring charge the user approves, not a one-off. Itsdomain,usernameandtypeare create-only — changing any of them is destroy + recreate, i.e. a brand-new inbox back at the bottom of a 45-day warm-up ramp. Before creating a mailbox the deploy polls the domain'srefreshStatusfor up to 5 minutes waiting for the domain to beactive; it does not wait for the new mailbox, which stayspendinguntil the provider issues credentials. OndefineDomain,dnsRecordsis the set of records the deploy manages, merged into the live zone: the records the registrar wrote at purchase and anything added outside the deploy stay put (bar one that can't share a name with a declared CNAME). The deploy owns what it published, so dropping a record from the list deletes it on the next deploy, and[]deletes every record earlier deploys published. OmitdnsRecordsto leave the zone untouched; an entry may be an app'sdomainRecords. Edit a managed record in code, not the registrar UI: an outside edit stops the deploy (dns record … was edited outside the deploy).redirectUrl,dmarcEmailanddmarcPolicyleft undeclared keep the live value. Useadopt: truefor a domain or mailbox bought in the UI (an adopted domain owns no records until a deploy publishes some). Ramp, suppression and sending:../cargo-mailbox-management/SKILL.md. -
Route project-managed resources into a clearly-labelled folder. Set
folder:on each builder so everything the project owns lands in a dedicated folder whose name signals "owned by code — don't hand-edit" to anyone in the UI (manual UI edits read back as drift on the nextplan). Folders are per-kind, so give each kind its own but share one short, recognizable prefix — recommended:🔒 Project(e.g.🔒 Project Models,🔒 Project Agents). Keep names short (long labels truncate in the folder tree); the lock emoji is the "don't touch" cue. Seeguides/authoring-resources.md.
Help
cargo-ai project --helpandcargo-ai project <subcommand> --helpfor the live flag surface.- When a documented command/flag/response doesn't match what you observe, file a
report:
cargo-ai workspaceManagement report create(see../cargo-workspace-management/SKILL.md).
FAQ
What does the cargo-project skill do?
Declare a whole Cargo workspace in a project, GTM as Code — connectors, models, plays, tools, agents, MCP servers, segments, context, folders, files, workers, and apps in TypeScript, reconciled with cargo-ai project (init → types → plan → deploy), the way you would run Pulumi or Terraform. Triggers: "as code", "in git", "version-controlled", "reproducible", "Terraform for Cargo", "set up a whole workspace", "staging and production", "deploy the workspace from CI", "review this in a PR", "cargo.json", "cargo.state.json", "scaffold from a template", "is there a cookbook for this", "start from a cookbook". Skills with a worked project example (TAM building, account scoring, call capture, inbound qualification, CRM enrichment, standup) live in gtm-skills; menu in references/cookbooks.md. Skip when: it is a one-off operation, a read, or an ad-hoc query — use the matching capability skill.
How do I install cargo-project?
Run npx skills add https://github.com/getcargohq/cargo-skills --skill cargo-project in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cargo-project/ (personal) or .claude/skills/cargo-project/ (project).
Which AI agents can use cargo-project?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is cargo-project safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains cargo-project?
It is published by getcargohq in getcargohq/cargo-skills. It has 3,188 recorded installs.
More from getcargohq/cargo-skills
cargo-connection
getcargohq/cargo-skills
Connect Cargo to an external system and find out what it can do — authenticate connectors, browse the integration catalog, and resolve the connectorUuid and actionSlug a workflow node needs. Triggers: "connect my HubSpot", "is Salesforce connected", "what integrations do you support", "can Cargo talk to ", "what actions does have", "I need the connector UUID", "set up the API key for", "it is asking for credentials again", "why is this connector failing auth", "list my connectors". Integrations: amplemarket, amplitude, attio, bigQuery, calendly, cargoSignals, closecom, contrast, csv, customerio, dbt, emailBison, expandi, googleAds, googleCalendar, googleSheets, heyReach, http, hubspot, hubspotMcp, instantly, instantlyV2, intercom, jira, kitt, lemlist, lgm, linkedinAds, linkedinMatchedAudience, livestorm, manus, marketo, metaAds, metabase, microsoftTeams, mixpanel, monaco, netsuite, netsuiteSoap, nooks, notionMcp, octave, onesignal, outreach, pipedrive, postgresql,
cargo-gtm
getcargohq/cargo-skills
Do business-to-business go-to-market work on Cargo — research accounts and buying committees, enrich and verify B2B contact records from licensed data providers, score and qualify leads, draft permission-based outreach for the user's own sequencer, sync to CRM, and monitor buying signals. Consent basis, suppression lists, and volume limits gate every step that touches a person (references/acceptable-use.md); bulk unsolicited messaging, purchased or scraped lists, and consumer targeting are refused. Triggers: "build me a list of", "find 50 at ", "who works at", "find work emails for these accounts", "enrich this CSV", "verify these emails", "build a TAM", "who fits our ICP", "who actually buys from us", "what data points should we collect on accounts", "our outbound is reaching the wrong people", "score these leads", "write a first-touch email", "push these to my CRM", "who changed jobs", "who just raised funding", "companies using ", "who is hiring ", "fi
cargo-ai
getcargohq/cargo-skills
Build and configure AI agents inside Cargo — create an agent, choose its model and temperature, write its prompt, attach knowledge for retrieval (RAG), connect MCP tool servers, manage memories, and deploy releases. Triggers: "create an agent", "make an agent that", "give the agent our docs", "attach this knowledge base", "attach this library to the agent", "add resources to the agent release", "connect an MCP server", "expose our tools as an MCP server", "use Cargo from Claude Desktop or ChatGPT", "change the agent model", "what does the agent remember", "deploy the agent", "the agent is answering wrong". Skip when: uploading the knowledge files themselves — use cargo-content; sending the agent a message or running it over records — use cargo-orchestration.
cargo-workspace-management
getcargohq/cargo-skills
Administer a Cargo workspace and talk back to the Cargo team — invite and manage members, mint and rotate API tokens, organize plays, tools, and agents into folders, inspect roles, upload batch input files, and file reports. Triggers: "invite my teammate", "create an API token for CI", "who has access", "organize these into folders", "rotate that token", "upload this CSV for a batch" — and for feedback: "report this bug to Cargo", "send feedback to the Cargo team", "this CLI command is broken", "share this session with Cargo", "request a feature". Most commands need a token with admin access. Skip when: the question is about credits, plans, or invoices — use cargo-billing.
cargo-orchestration
getcargohq/cargo-skills
Make Cargo actually run something, or show what it would run — execute one connector action, run a multi-step workflow, trigger a batch across a whole segment or model, message an AI agent, build or edit a node graph, draw a workflow, tool or play as a diagram, and query the runtime tables (runs, batches, spans, records) with SQL. Triggers: "run this on all my contacts", "execute the action", "kick off a batch", "build a workflow", "schedule a play", "make it run every morning", "ask the agent", "show me the workflow", "what does this tool do", "visualize this play", "draw the graph", "explain this workflow", "how many runs failed today", "what is the output schema for this action", "add a step that". Skip when: explaining why a run misbehaved — use cargo-diagnostics; downloading result files — use cargo-analytics; committing the workflow as code — use cargo-project.
cargo-billing
getcargohq/cargo-skills
Understand what Cargo is costing — remaining credits, usage broken down by workflow, connector, or agent, subscription state, and invoice history. Triggers: "how many credits do I have left", "what did that cost", "why is my bill so high", "am I about to run out", "will this fit in our budget", "show me my invoices", "how much have I spent this month", "what plan am I on", "what do I get for free", "how many free credits", "can I afford this run", "add a card", "update my payment method", "why was my card declined". Needs a token with admin access. Skip when: attributing spend to specific nodes or cutting a play cost — use cargo-diagnostics.
Popular devops & cloud skills
microsoft-foundry
microsoft/azure-skills
Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure
azure-diagnostics
microsoft/azure-skills
Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.
azure-prepare
microsoft/azure-skills
Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.
azure-ai
microsoft/azure-skills
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.
azure-deploy
microsoft/azure-skills
Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.
azure-validate
microsoft/azure-skills
Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.