# GTM Harness — The Starting Point > [!important] The short answer > You already own most of the harness. The skills marketplace is the capability layer. The studio product framework is the hosted runtime. What's missing is the thin bit in the middle — a **master agent that compiles a request into a typed plan and a gate that verifies the result** — and that is a repo template, not a platform. > ==Build v0 with no infrastructure at all. Use it yourself for a month. Only then think about deployment.== ## What already exists, and what it means | You have | It is the | Don't rebuild it | |---|---|---| | [Utopia skills](https://the-utopia-studio.github.io/skills/#modules) — 83 GTM skills, Apache-2.0, `/plugin install utopia-gtm@skills` | **Capability layer** | The hard part of a skills marketplace is curation, and you've done it | | [Studio product framework](https://the-utopia-studio.github.io/studio-product-framework/) — Convex, Next/Clerk/Vercel, Effect money fence, Langfuse/PostHog/Sentry, sandboxed agent runtime | **Hosted runtime, for later** | It already has metered inference, isolation and observability. That *is* the v1 deployment | | Attio, and MCP servers for it | **System of record** | | The gap is small and specific: **a master agent, a plan representation, and a verification gate.** Everything else is assembly. ## The state of the art worth copying — Bridgewater PAT The PAT talk is the best public example of an agent system where correctness is architectural rather than a prompting outcome. Nine principles; six of them apply directly to GTM. > [!quote] The line to steal > The model proposes. The harness disposes. 1. **Compile, don't converse.** Turn the request into a typed plan — a DAG of tasks that each declare their output shape. A GTM example: `account-research → {company, icp_fit: 0-100, evidence: [], objections: []}`. Prose plans drift at execution time; typed plans cannot. 2. **One agent, one job.** Each node goes to its own subagent with a tiny brief and a declared output. Five run in parallel instead of one agent writing a 400-line script. This is exactly what a skill already is — ==your marketplace is a library of node types.== 3. **Never let one context grade its own work.** Generator, validator and debugger are separate agents. 4. **Determinism before accuracy.** If the same request produces different output each run, you cannot evaluate it, debug it, or let a founder act on it. Every improvement becomes unfalsifiable. PAT reports 95% output determinism on their test suite. 5. **Ask about methodology at plan time, closed-form, with a recommendation.** Not "what do you want?" but "these four accounts have very different deal sizes — should I normalise by ACV? *(recommended: yes)*". The human sits at the point of irreversible methodological choice and nowhere else. 6. **Capture learning as portable method text.** When output is wrong, the operator writes what the agent *should have learned about method* — and that text, scrubbed of data, becomes a skill edit. Reviewable, diffable, no retraining. > [!note] The strategic read > As base models converge, the moat moves to the harness — the plan representation, the verification loop, the data resolution layer, and the accumulated methodology. Bridgewater isn't betting on a better model. They're betting the compiler around the model is the durable asset. Same bet applies here. ## v0 — the whole thing is a repo No servers, no deploy step, no infrastructure. `git clone` is the installation. ``` gtm-harness/ ├── .claude/ │ ├── agents/ │ │ ├── gtm-master.md # thin: clarifies, compiles, routes. Does no work. │ │ ├── validator.md # checks output against the declared schema │ │ └── debugger.md # fixes what the validator rejects │ ├── hooks/hooks.json # blocks send/CRM-write without approval │ └── settings.json ├── .mcp.json # Attio, search, send — per-company credentials ├── plans/ # typed plan schemas (JSON Schema) │ ├── account-research.json │ └── outbound-sequence.json ├── vault/ # the context — plain markdown, reviewed by PR │ ├── icp.md │ ├── positioning.md │ ├── brand-tokens.json │ └── accounts/ └── methods/ # accumulated lessons → feed back into skills ``` > [!todo] The first week > - [ ] Create the repo. Install your own plugin: `/plugin install utopia-gtm@skills` > - [ ] Write `gtm-master.md` — its only job is: clarify → compile a typed plan → dispatch subagents → hand results to the validator > - [ ] Write **one** plan schema. Start with account research, because it's read-only and can't damage anything > - [ ] Fill the vault with Utopia's own ICP and positioning. Be the first customer > - [ ] Add a hook that blocks any CRM write or email send without explicit approval > - [ ] Run it on ten real accounts. Read every output. Fix the skill, not the prompt ## The open source worth adding — and only when you need it > [!warning] Add these one at a time, each in response to a specific pain > Adding all of them at once is how a simple harness becomes a platform nobody can operate. | Need | Add | When | |---|---|---| | Structured output that actually validates | **zod** (TS) or **Pydantic AI** (Py) — MIT | Immediately. This is what makes the plan *typed* rather than aspirational | | Traces, prompt versions, eval datasets | **Langfuse** — MIT, self-hostable | Once more than one person runs it. Already in your framework | | CI gate + prompt-injection red-teaming | **promptfoo** — MIT | Before anything gets email-send permission. Not optional | | Scheduled runs, retries, long sequences | **Trigger.dev** — Apache-2.0, or Temporal (MIT) if multi-week | When "run this every morning" appears | | Research and extraction | **Crawl4AI** — Apache-2.0 | When skills start needing the open web. Take it over Firecrawl: same job, permissive licence | | Deterministic send path | **LangGraph** — MIT, or a plain state machine | When you first send outbound. Research can be agentic; approve → personalise → send → log cannot | Everything above is permissively licensed and self-hostable. ==Nothing here needs a platform decision.== ## v1 — hosted, and only when v0 hurts Your framework already answers this, so don't design a second one: - **Convex** control plane · **Next + Clerk on Vercel** for the surface - **Effect** as the money fence — metered inference and credits per fellow - **Langfuse, PostHog, Sentry** — already wired - Sandboxed runtime per fellow with explicit web-tool role separation The trigger for v1 is not ambition. It's one of: a fellow needs it running without you, credits need metering, or you need an audit trail you can show a customer. ## What not to build > [!failure] Deliberately out of scope > - **A contact-data waterfall of your own.** Rent it. The moat is vendor contracts, not code. > - **Email sending infrastructure.** Gmail moved to permanent rejections in Nov 2025; warmup is a network effect you can't self-host. > - **A CRM.** Attio's MCP is good and the API is on the free tier. > - **A generic "powerful GTM agent."** That's a euphemism for unowned scope. Automate one real workflow end to end. > - **A second product framework.** You have one. ## Open question for you The architecture assumes the master agent is thin and the plan is the artefact. That's the right call for correctness — but it means the fellow's experience is "answer four questions, then watch a plan execute," not "chat with an agent." ==Worth deciding deliberately: is that the experience you want fellows to have?== PAT's answer was yes, because a portfolio manager will trade on the output. Your fellows might value the conversation more than the determinism. It changes what you build first. --- > [!warning] AI-generated > Drafted by Claude, August 2026, from the Bridgewater PAT summary, the Utopia skills marketplace and studio product framework pages, and the prior GTM harness research. The principles are Bridgewater's; the application to GTM and the v0 repo layout are proposals, not verified patterns. Related: [[GTM Harness Research]].