Skills / pick-agent-stack

/pick-agent-stack

pick-gtm-agent-pattern decides an agent's shape. This skill decides what runs it.

pick-agent-stack selects the agent's infrastructure per layer — execution, LLM routing, evals, observability, state, secrets, ingress — from the Headless GTM OS core stack, sized to the agent's tier, with the layers NOT provisioned listed so simple agents stay simple.

MIT Claude Code skill agent infrastructure tier-sized

The layer map it walks

#LayerComponent
0Secrets & configInfisical
1Code, review & CI quality gateGitHub + DeepEval
2Durable executionTrigger.dev
3Webhook ingress & ACK bufferSvix
4Schema validationZod / Drizzle
5PII / secret redactionCloakPipe
6LLM routing & fallbackVercel AI Gateway → OpenRouter
7LLM observability & costLangfuse
8State, storage & locksSupabase
9Human-in-the-loop interfaceSlack

How it works

  1. Start from the pattern verdict. If pick-gtm-agent-pattern hasn't run, run it first — the tier decides how much stack the agent earns. A report pipeline gets 3–4 layers; only client-facing decision loops get all ten.
  2. Fetch the dataset live tools.json, filtered to the Agent Infrastructure category. It evolves with the stack; memory is stale.
  3. Walk the layer map top to bottom — pick the component for every layer the agent needs; record every layer it doesn't in the layers NOT provisioned list. That list is what stops platform creep.
  4. Cross-check the hard constraints — long-running loops → Trigger.dev not serverless HTTP; Slack interactivity → sub-3-second ACK via Svix; payloads > 3MB → pointer pattern via Supabase Storage; concurrent writes → Postgres advisory locks; client PII → CloakPipe + per-client isolation.
  5. Output the verdict — per-layer stack table, layers NOT provisioned, and the $0-tier note (Infisical, Svix, and DeepEval are free at build scale).

The dataset it recalls

Red flags it kills

Install & use

# copy the skill into your Claude Code skills directory
cp -r skills/pick-agent-stack ~/.claude/skills/

Then invoke it directly, or just describe the task:

/pick-agent-stack

# or, in plain language —
# "what should run this lead-scoring agent?"
# "set up the stack for a Slack-interactive agent"
# "does this agent need Langfuse and DeepEval?"