Welcome back everyone to yet another week! Excited to have on Marko Ladis for the podcast today from Decision Stability showing me how he takes his frameworks and applies it for his GTM motion in Claude. Very cool set up and way cooler guy.
If you go to the www.gtmaipodcast.com newsletter on Substack, there lies some skill.md files inspired from this podcast to help you!
Lets go....
Can listen if you prefer on Apple Podcasts, Spotify or Youtube below:
I had Marko Ladis walk me through his decision framework and how he uses it inside of his AI workflows. He is constantly connecting and having AI analyze different people in his world or on Linkedin to find guests for his podcasts, potential customers, or relationship building.
Marko fed it my LinkedIn profile. It did not draft a pitch, instead it returned a verdict which basically said “poor direct sales lead, strong relationship, likely podcast guest”. Then it routed me to a different agent and stopped.
Marko leads an engineering team full time, consults on decision ownership through Decision Stability, and hosts the Decision Load podcast. He is a solo operator, so he built three AI setups that prepare the work and leave the judgment to him. He walked me through all three on this week’s GTM AI Podcast using real outputs with the private details removed.
The three setups in one paragraph each
People pipeline (Claude). A lead identifier researches a person, scores them, and assigns a track. Three downstream agents handle podcast strategy, connection requests, and outreach writing. Each owns one lane.
Podcast clip director (ChatGPT project, Astra model). Reads full episode transcripts and returns cut windows, three title and thumbnail framings per clip, and a publishing order. Results flow back into a performance log it can edit.
Website manager (Claude Code). Works inside his real repository with persistent project memory, GitHub, Vercel, and Hostinger. It previews every change and asks twice before anything goes live.
Five design rules you can copy this week
1) Route before you write
Marko’s lead identifier takes a name, a profile, or a CSV export of 12,000 connections. On the full file it needs about 90 minutes. It researches each person, scores them, and assigns one of four tracks: client, relationship, podcast guest, or “happy to know, do not pursue.”
Most sequences assume every contact is a prospect. That assumption sends cold pitches to champions, partners, and investors. A routing step in front of your sequencer fixes it.
What to do:
Define four or five relationship tracks for your business, each with a one-line test
Make “do not pursue” a valid output
Block message drafting until a track exists
2) Let the agent say U
Marko scores six things: fit, authority, affordability, timing, existing relationship, and the agent’s confidence in the evidence. When it cannot verify a dimension, it writes U. It never invents a number so the spreadsheet looks complete.
Timing beats title. A prospect who just announced layoffs gets a different call than one who just scaled a team, whatever the job title says. Affordability gets checked against his own offer, a $5,000 sprint.
My addition: report two numbers, the score on known dimensions and the coverage. I keep evidence confidence as its own label and count coverage across the five scored dimensions. A lead that scores 80 percent on 2 of 5 known dimensions is a research task. Set a floor, for example 4 of 5 known before any message gets drafted.
3) Hand off with a packet
Marko’s lead identifier does not stop at “podcast guest, good luck.” It passes forward who the person is, what is verified, what is inferred, what is unsure, why it chose the track, and a complete prompt for the next agent.
On the call I said the handoff is the step most people skip, and that the same gap breaks human teams. Marko’s setup shows the fix. Copy this packet:
HANDOFF PACKET
From: [agent] To: [agent]
Subject: [person, account, or asset]
Decision: [track or verdict in one line]
Why: [two sentences]
VERIFIED: [facts, each with a source]
INFERRED: [judgments, each with its evidence]
UNKNOWN: [every U, listed]
RISKS: [timing, sensitivity, anything that could embarrass you]
NEXT PROMPT: [complete prompt for the receiving agent]
4) Give every agent the same brain file
Marko calls his hub Agent Zero. It holds his bio, his framework, his website, and a main file that lists every agent and its role. A brain file loads into each agent, so each one knows the others exist. Ask the podcast strategist to write an outreach message and it answers: route this to the connection requester.
Agents that know their lane and refer out are what keep a multi-agent setup from turning into one overconfident chatbot.
What to do:
Write one brain file with three sections: who you are, the lane roster (job, inputs, outputs, what each agent refuses), and routing rules
Load it into every agent
Add a line to each agent: “If the request belongs to another lane, name the lane and stop”
5) Gate by reversibility
Inside the sandbox Marko’s Claude Code agent reads files, rewrites code, runs builds, and tests. The line moves when something leaves his environment or gets hard to undo. He says he does not fully trust it yet, so it runs in manual mode and asks twice: once to make the change, once to commit.
Free to run Needs a human gate Research, scoring, summarizing Sending any message Drafting and rewriting Publishing anything Building and testing locally Changing DNS or hosting Planning and prep Deleting or overwriting data Writing the next agent’s prompt Spending money
Pick the gate list before you pick the tool. Marko’s framing is the one to borrow: where do you want the AI to hold authority, and where do you hold it?
Bonus for content teams: the clip director loop
Marko’s podcast agent frames each clip three ways: as a problem, as a claim, and as a story. He tests three reasons to click instead of three random titles. After each clip publishes, he logs what ran and what won, and the agent reads that log before it touches the next episode.
Your webinar and sales-call library can run the same loop. Feed it ten recordings, ask for the five most standalone moments in each, and require the three framings per clip.
Marko calls his stack nothing profound. It is boring on purpose, and judgment stays with the human but automates the tedious items because he believes that decisions are the most expensive and valuable part of a company’s workflows.
Find Marko Ladis at decisionstability.co and his podcast is https://decisionstability.co/decision-load. Decision Load is on YouTube every Wednesday.
Skill.md file inspired by the podcast:
---
name: agent-lane-architect
description: Designs a multi-agent workflow where every agent owns one lane, hands off with a packet, and stops at a human gate before consequential actions. Produces a lane map, a shared brain file, a handoff packet template, a scoring rubric that accepts "U" for unknown, a human gate table, and a plain-English setup manual. Use when the user says "design my agent workflow," "build agents for [process]," "multi-agent setup," "agent handoffs," "lane map," "brain file," "what should AI do versus me," "human in the loop," "agent guardrails," "lead routing with AI," or wants to split one overloaded prompt into specialized agents. Triggers on lead triage, outreach, content or podcast production, and ops workflows. Does not write the outreach itself or the agents' code.
---
# Agent Lane Architect
Inspired by Marko Ladis's multi-agent setup, as shown on the GTM AI Podcast with Coach K. Marko is the founder of Decision Stability (decisionstability.co) and host of Decision Load.
**Job:** Turn a described workflow into a lane-based agent system a person can set up in an afternoon.
**Persona:** A GTM leader, RevOps owner, founder, or content lead who wants AI to prepare work while a human keeps judgment. Decision being made: which steps agents own, where they hand off, and where a human must approve.
**Core rule (Marko's):** Very high autonomy in preparation and execution. A very obvious human gate before consequential external actions.
---
## STEP 0 (REQUIRED): Intake
Do not design anything until you know these five things. If the user already stated them, confirm in one line and move on. Otherwise ask them in one message:
1. What is the workflow, in one sentence?
2. What are the steps today, and who does each one?
3. What goes in and what comes out at the start and the end?
4. Which steps send, publish, change, delete, or spend something outside your own environment?
5. Which platform will run the agents (Claude Projects, ChatGPT Projects, Claude Code, other)?
Do not proceed until questions 1 and 2 are answered. If the user cannot answer 4, assume every outward-facing step is gated.
---
## STEP 1: Build the lane map
A lane is one job with one verb. Split a step into separate lanes when it uses a different data source, requires a different kind of judgment, or carries a different level of risk. Merge steps that are always run together.
Limit the first pass to 7 lanes. If you want more, the workflow needs a second pass after the first one runs.
Output one card per lane:
```
LANE 02: Router
Job: Classify the relationship and choose a track
Inputs: name, profile text or CSV row
Outputs: track, scores, handoff packet
Refuses: writing any message; researching beyond the scoring dimensions
Hands off to: Lane 03 (client track) or Lane 04 (relationship track)
Human gate: none
```
Always include Lane 00, the hub, which holds the brain file (STEP 5).
**Edge case:** If the workflow has one real step, say so. Recommend one agent plus a gate table. Do not invent lanes to look thorough.
---
## STEP 2: Route before you write
If the workflow ends in a message, a deliverable, or an action toward a person, the first working lane is a classifier. It decides what the situation is before anything gets drafted.
Rules:
- Define 4 or 5 tracks, each with a one-line test
- Include a track for "no action" (Marko's version: "happy to know, but do not pursue")
- The classifier never drafts the message or asset. Its output is a verdict, evidence, and a packet
- Every downstream lane accepts input from exactly one track
Example tracks for lead triage:
| Track | One-line test |
|-------|---------------|
| Client | Has the problem we solve, authority to buy, and a timing signal |
| Relationship | Valuable to know, wrong moment or wrong role to sell to |
| Partner or guest | Can bring us an audience, or we can bring them one |
| Research more | Too many unknowns to classify |
| No action | Known, but no reason to pursue |
---
## STEP 3: Scoring rubric with U
Use this when a lane has to score or rank something. Build the rubric from the five scored dimensions below and edit the names for the user's business.
| Dimension | Question |
|-----------|----------|
| Fit | Does the problem we solve exist for them? |
| Authority | Can they decide or influence the decision? |
| Affordability | Can they pay for our offer? |
| Timing | Does a recent event make now a good or bad moment? |
| Relationship | What history exists with us? |
Each dimension is scored 0 to 5 or **U** (unknown). Evidence confidence is reported separately as High, Medium, Low, or U.
**Rules (MANDATORY):**
1. U never counts as 0. If the agent cannot verify a dimension, it writes U and says what evidence is missing.
2. Report two numbers: **Score** = (sum of known scores) / (5 x number of known dimensions), and **Coverage** = known dimensions / 5.
3. Coverage floor: below 4 of 5 known, route to "Research more." Edit the floor to suit the user.
4. Timing override: a negative timing signal (layoffs, freeze, leadership change in progress) caps the track at Relationship, whatever the other scores say.
5. Title never substitutes for fit. A CEO with no evidence of the problem is not a lead.
**Worked example**
Input: VP of Sales at a 300-person company, recent post about tool sprawl, company announced layoffs last month, no prior contact.
| Dimension | Score | Evidence |
|-----------|-------|----------|
| Fit | 4 | Posted about tool sprawl |
| Authority | 5 | VP, owns the budget line |
| Affordability | U | No public data on budget |
| Timing | 1 | Layoffs announced last month |
| Relationship | 0 | No history (known, so it counts) |
Known sum = 10 across 4 dimensions. Score = 10 / 20 = 50%. Coverage = 4 of 5 (meets the floor). Evidence confidence: Medium.
Timing override applies. Track: **Relationship**. Next step: a note to watch for a timing change, no pitch.
---
## STEP 4: Handoff packet
Every lane ends by preparing the next lane. The packet is the contract.
```
HANDOFF PACKET
From: [lane] To: [lane]
Subject: [person, account, or asset]
Decision: [track or verdict in one line]
Why: [two sentences]
VERIFIED: [facts, each with a source]
INFERRED: [judgments, each with the evidence behind it]
UNKNOWN: [every U, listed with what would resolve it]
RISKS: [timing, sensitivity, anything that could embarrass the user]
NEXT PROMPT: [a complete, standalone prompt for the receiving lane]
```
Rules:
- VERIFIED needs a source. No source means it moves to INFERRED.
- NEXT PROMPT must work if pasted into a fresh chat with no other context.
- If the receiving lane is on a platform that cannot pass files, the user pastes the packet. Say so in the manual.
---
## STEP 5: The brain file
One file, loaded into every lane, so each agent knows the others exist. Marko calls the hub "Agent Zero."
Write `brain.md` from this template:
```
# BRAIN
Owner: [name, role, one-line bio]
Business: [what we do, who we serve, offer and price if relevant]
Voice and standards: [pointer to examples or style file]
## Lane roster
| Lane | Job | Inputs | Outputs | Refuses |
|------|-----|--------|---------|---------|
| 00 Hub | Holds this file and routes | any | routing answer | doing lane work |
| 01 ... | ... | ... | ... | ... |
## Routing rules
- If a request belongs to another lane, reply: "Route to Lane [N]: [name]." Then stop.
- If you do not know something, write U. Do not guess.
- End every task with a handoff packet or a clear "done."
## Gates
See gate table. Never perform a gated action. Prepare it and ask.
```
Every lane instruction file starts with: "Read brain.md first. You are Lane [N]. Stay in your lane."
---
## STEP 6: Gate table by reversibility
Sort every action each lane can take. Run three questions on each action:
1. Does it leave our environment?
2. Is it hard to undo?
3. Does it cost money or reputation?
Any yes means a gate.
| Class | Examples | Rule |
|-------|----------|------|
| Free | Research, scoring, summarizing, drafting, building and testing locally, writing the next prompt | Agent runs without asking |
| Confirm | Sending a message, publishing, merging code, sharing a file externally | Agent prepares, human approves each time |
| Confirm twice | Changing DNS or hosting, deleting or overwriting data, spending money | Agent asks to make the change, then asks again to commit it |
| Never | Anything the user lists | Agent refuses and explains |
Default to manual mode. Move an action from Confirm to Free only when the user names it and has reviewed several clean runs. If the user asks for full autonomy, produce the table anyway and write the pre-approved actions into it by name.
---
## STEP 7: Feedback loop (include when outputs have measurable results)
Add a log the agents can read and update. One row per output: what was produced, what version ran, the result, what won, and notes for the next run. Each lane reads the log before starting. Without it, every run starts from zero.
---
## STEP 8: Setup manual, explained like the user is 11
Write step-by-step instructions for the user's platform. Each step is one action, one sentence, one expected result. Use plain words. Define any technical term the first time.
Examples of the level:
- Good: "Click New Project. Name it Lane 02 Router. Paste the file called lane-02-router.md into the Instructions box. You should see the instructions saved under the project name."
- Bad: "Configure the agent with the appropriate system prompt."
If file creation is available, write the files into a folder named `agent-lanes/`. Otherwise print each file in its own labeled code block.
---
## Output contract (what "done" looks like)
Deliver, in this order:
1. Lane map (table, then one card per lane)
2. `brain.md`
3. One instruction file per lane, named `lane-NN-name.md`
4. Handoff packet template
5. Scoring rubric (only if a lane scores or ranks)
6. Gate table
7. Setup manual
8. Test script: three sample inputs. One clean case, one with missing data (should produce U and "Research more"), one out-of-lane request (should produce "Route to Lane N").
9. Top three risks in this design, one line each
---
## Edge cases
| Situation | What to do |
|-----------|------------|
| User gives a vague workflow | Ask only the missing intake questions, then proceed |
| Steps contradict each other | List the contradictions and ask one question to resolve them |
| No data available to score | Score everything U, route to "Research more," say what to collect |
| Sensitive data (personal info, contracts) | Add a line to brain.md on what agents may store and where |
| User wants one giant agent | Explain the cost once (overloaded prompts blur judgment), then build what they ask for with a gate table |
| Agents run on different platforms | Use pasted handoff packets and say so in the manual |
---
## Self-check before delivering
- [ ] Every lane has one verb and a "Refuses" line
- [ ] Classifier lane exists wherever the workflow ends in a message or action toward a person
- [ ] No lane both classifies and writes
- [ ] U is allowed and never scored as 0
- [ ] Every packet has VERIFIED, INFERRED, UNKNOWN, and NEXT PROMPT
- [ ] brain.md lists every lane and the routing sentence
- [ ] Every outward-facing action sits in the gate table
- [ ] Setup manual passes the "11-year-old" test
- [ ] No lane was added just to look thorough
---
## Worked example: lead triage
**User:** "Our SDRs email everyone in the CRM. Customers and partners keep getting cold sequences."
**Lane map produced:**
| Lane | Job | Gate |
|------|-----|------|
| 00 Hub | Holds brain.md, routes requests | None |
| 01 Router | Scores and assigns a track, writes a packet | None |
| 02 Account researcher | Deep research for the Client track | None |
| 03 Message drafter | Drafts one message for the Client track | Human sends |
| 04 Relationship notes | Writes a context note for Relationship and Partner tracks | None |
| 05 Review log | Records outcomes, updates the log | None |
**Why it works:** The Router never drafts. Customers and partners land in Lane 04, so they stop receiving cold sequences. Every send is a human click.
