To give the whole team one place to ask about go-to-market, deploy Cargo’s ask-cargo cookbook: one Claude Code agent people @mention in Slack, which answers from your go-to-market repo and the live workspace with a source for every answer, turns change requests into pull requests, and runs anything that spends only after someone in the thread replies with a go. It never deploys, merges or deletes.
What the cookbook deploys, from its code in getcargohq/gtm-skills on 2026-10-16: one agent with a Slack trigger on every channel the bot is in, three connectors, a folder and a viewer service user. It runs on no schedule, and a batch over 25 records runs a sample of 5 first.
The problem, and the answer #
Questions about the go-to-market stack (“what is our ICP”, “did the scoring play run”, “add this competitor”) end up with whoever wrote the code, and the answers live in three places: the repository, the workspace’s run history and someone’s head. The answer is an agent with a checkout of the repository and read access to the workspace, sitting where the team already asks.
How it works, end to end #
- Someone @mentions the bot in a channel it has been invited to. The trigger opens one conversation per Slack thread and marks the thread as working.
- The agent clones your repository, resolved from your checkout’s git origin at deploy, and reads before it answers:
context/(ICP, personas, competitors, objections),cadence/(daily logs, weekly plans),initiatives/,infra/for what is actually declared, andgit log. - It reads the workspace with Cargo’s CLI, signed in as the
ask_cargoservice user with the workspace’s viewer role:cargo-ai orchestration run list,batch list,cargo-ai billing usage get-metrics,cargo-ai ai agent list,cargo-ai storage model list, a sampledstorage query execute, andcargo-ai project checkorproject planfor what a change would do. - It replies in the thread, citing the file path, command or pull request behind the answer. The platform streams the reply; the agent posts nothing itself.
- A follow-up @mention in the same thread lands in the same conversation, so the agent sees its own earlier reply and any go together.
What it does besides answering #
- Changes become pull requests. “Add this competitor” becomes an edit on a branch named
ask-cargo/<request>and a pull request linked in the reply. One thread is one pull request; a follow-up adds a commit. - Anything that spends waits for a go. Executing an action, creating a batch, running a play, messaging another agent or writing to a CRM gets a proposal first: what will run, over how many records, and the total in credits from the live catalog. It runs only after a later message in the thread approves that proposal, and a go never covers more records or more cost than proposed. Over 25 records, it runs 5, replies with the result, and asks for a second go.
- Work goes to the agent that owns it. When a deployed agent already owns the job (a standup, a weekly planner, an account scorer), it proposes the handoff and, on a go, sends it with
cargo-ai ai message createinstead of redoing the work. - A thread worth keeping is captured. “@Cargo capture this” writes the thread verbatim to
cadence/log/raw/slack/, an entry with objections, competitors, signals, product asks and actions tocadence/log/slack/, and acontext/update only when a claim now has two independent occurrences across calls and threads. It reads only that thread, and refuses shared channels and direct messages.
What it needs and what it costs #
- A go-to-market repository, the shape
cargo-ai project initscaffolds. - GitHub, Slack and Anthropic connectors. The Slack connector is the trigger and the reply path.
- Where the bot is. The trigger answers in every channel the bot has been invited to, so keep it out of customer shared channels, or list channels explicitly instead.
@cargo-ai/cdk1.0.104 or later, which brings the service user the CLI runs as.
Every turn is an agent run: a sandbox, a clone of the repository and language model tokens billed through your Anthropic connector. A turn that only answers costs tokens and nothing else, because the read-only cargo-ai calls are API reads that bill nothing. What spends is only what someone approves with a go, priced in the proposal before it runs.
What it will not do #
- Deploy, merge, destroy or remove anything, with or without a go. Its service user holds the viewer role, which cannot deploy or change a resource even if the prompt were ignored.
- Mint or rotate tokens, change workspace members, or touch billing.
- Post anywhere but the thread it was asked in, or answer direct messages.
- Run anything that spends without a go in the thread, or send to people the workspace has no consent basis for.
- Know who wrote a message. Anyone in the thread can steer or approve, so pull requests quote the request and name no one.
Only @mentions wake it, follow-ups included, and a mention sent while it is still working is dropped, which is why every reply that needs a confirmation says exactly what to type. If the team only needs answers from context and models, the workspace’s built-in Master Agent with a Slack trigger covers that without a checkout.
Deploy it #
npm install -g @cargo-ai/cli
cargo-ai login --email you@company.com
cargo-ai project add cookbook/ask-cargo
cargo-ai project plan
cargo-ai project deploy
Signing up from the CLI needs no browser and no card, and comes with 100 free credits. Fill references/roster.md with the agents your workspace runs (cargo-ai ai agent list) so handoffs go to the right one. The ask-cargo cookbook page lists every resource and placeholder.
It hands off to the daily go-to-market standup and weekly plan when those are deployed, and its captures land beside every sales call in your go-to-market repo.
Frequently asked questions #
Anything the repository or the workspace can answer: the ICP, competitors
and objections in context/, what happened in the cadence log, what is
declared in infra/, and what ran, failed or spent, read live with the
Cargo CLI. Each answer cites its source.
It edits the repository on a branch and replies with the pull request. It never merges or deploys; a human does.
Anything that spends gets a priced proposal first and runs only after a go in the thread. Over 25 records, it runs a sample of 5 and asks again.
It answers only when @mentioned, in channels the bot has been invited to. A capture reads only the thread it was mentioned in, and refuses shared channels and direct messages.