{
 "note": "Every recipe and teardown. Each illustrates one or more job shapes (see shapes.json); it is a worked story, not a catalog entry, so match a job to a shape first and use these for their reasoning. needs_level is the level that particular story settled on. Read the markdown address before drawing on one.",
 "use_cases": [
  {
   "kind": "recipe",
   "slug": "document-qa",
   "title": "Answer questions about a set of documents",
   "summary": "Uses RAG, structured output and an eval set. Level 2 is enough because a single search answers most questions.",
   "domain": "general",
   "shapes": [
    "answer-from-documents"
   ],
   "needs_level": 2,
   "levels": [
    1,
    2
   ],
   "techniques": [
    {
     "slug": "rag",
     "title": "Retrieval-augmented generation (RAG)",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/rag/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/rag.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "evals",
     "title": "Evals",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/evals/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evals.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/document-qa/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/document-qa.md"
  },
  {
   "kind": "recipe",
   "slug": "inbox-triage",
   "title": "Sort an inbox",
   "summary": "Sorts mail into fixed categories and produces structured output. A person approves anything that gets sent. The categories are known in advance, so an agent is not needed.",
   "domain": "general",
   "shapes": [
    "classify-and-route"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "routing",
     "title": "Routing",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/routing/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/routing.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/inbox-triage/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/inbox-triage.md"
  },
  {
   "kind": "recipe",
   "slug": "research-brief",
   "title": "Write a research brief with citations",
   "summary": "Uses agentic RAG to find sources and a fixed check on every claim against the section it cites. It needs level 5 for the searching; the checking is level 3.",
   "domain": "general",
   "shapes": [
    "research-and-synthesize"
   ],
   "needs_level": 5,
   "levels": [
    3,
    5
   ],
   "techniques": [
    {
     "slug": "agentic-rag",
     "title": "Agentic RAG and deep research",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/agentic-rag/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/agentic-rag.md"
    },
    {
     "slug": "evaluator-optimizer",
     "title": "Write and check",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/evaluator-optimizer/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evaluator-optimizer.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/research-brief/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/research-brief.md"
  },
  {
   "kind": "recipe",
   "slug": "repo-assistant",
   "title": "Coding assistant on your own repo",
   "summary": "A coding agent that reads, edits, runs and tests code in your repository, using skills for repeated tasks and a safety review before anything ships.",
   "domain": "general",
   "shapes": [
    "carry-out-a-task"
   ],
   "needs_level": 5,
   "levels": [
    5
   ],
   "techniques": [
    {
     "slug": "coding-agents",
     "title": "Coding agents",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/coding-agents/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/coding-agents.md"
    },
    {
     "slug": "skills",
     "title": "Skills",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/skills/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/skills.md"
    },
    {
     "slug": "safety",
     "title": "Safety, privacy and governance",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/safety/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/safety.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/repo-assistant/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/repo-assistant.md"
  },
  {
   "kind": "recipe",
   "slug": "document-extraction",
   "title": "Turn photos and PDFs into records",
   "summary": "Reads the image or PDF, fills a fixed schema, and saves the record once a person confirms it.",
   "domain": "general",
   "shapes": [
    "extract-structure"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "multimodal",
     "title": "Images, audio and video",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/multimodal/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/multimodal.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/document-extraction/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/document-extraction.md"
  },
  {
   "kind": "recipe",
   "slug": "voice-notes",
   "title": "Voice notes into structured entries",
   "summary": "Transcribes a voice note, splits it into steps, and turns each step into a structured entry that an eval set checks for accuracy.",
   "domain": "general",
   "shapes": [
    "extract-structure"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "multimodal",
     "title": "Images, audio and video",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/multimodal/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/multimodal.md"
    },
    {
     "slug": "prompt-chaining",
     "title": "Prompt chaining",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining.md"
    },
    {
     "slug": "evals",
     "title": "Evals",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/evals/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evals.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/voice-notes/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/voice-notes.md"
  },
  {
   "kind": "recipe",
   "slug": "support-desk",
   "title": "Support desk",
   "summary": "Routes an incoming ticket, searches the documentation for an answer, calls a tool when an action is needed, and hands off to a person when it is unsure.",
   "domain": "general",
   "shapes": [
    "help-desk"
   ],
   "needs_level": 4,
   "levels": [
    2,
    3,
    4
   ],
   "techniques": [
    {
     "slug": "routing",
     "title": "Routing",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/routing/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/routing.md"
    },
    {
     "slug": "rag",
     "title": "Retrieval-augmented generation (RAG)",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/rag/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/rag.md"
    },
    {
     "slug": "function-calling",
     "title": "Function calling",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/function-calling/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/function-calling.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/support-desk/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/support-desk.md"
  },
  {
   "kind": "recipe",
   "slug": "nightly-monitor",
   "title": "Nightly source monitor",
   "summary": "Runs on a timer, diffs a set of public pages in code, and asks a model one question about each change. Level 3: the schedule and the checkpoint are infrastructure, not agency.",
   "domain": "general",
   "shapes": [
    "watch-and-report"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "routing",
     "title": "Routing",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/routing/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/routing.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "evals",
     "title": "Evals",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/evals/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evals.md"
    },
    {
     "slug": "ops",
     "title": "Operations",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/ops/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/ops.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/nightly-monitor/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/nightly-monitor.md"
  },
  {
   "kind": "recipe",
   "slug": "data-analysis",
   "title": "Data analysis by conversation",
   "summary": "A single agent writes and runs code against a dataset, one question at a time, to answer questions a fixed query could not anticipate.",
   "domain": "general",
   "shapes": [
    "explore-data"
   ],
   "needs_level": 5,
   "levels": [
    4,
    5
   ],
   "techniques": [
    {
     "slug": "code-execution",
     "title": "Code execution",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/code-execution/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/code-execution.md"
    },
    {
     "slug": "single-agent",
     "title": "Single agent",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/single-agent/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/single-agent.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/data-analysis/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/data-analysis.md"
  },
  {
   "kind": "recipe",
   "slug": "content-pipeline",
   "title": "Drafting with a reviewer",
   "summary": "One prompt drafts a piece of writing and another checks it against a rubric, repeating until the draft passes.",
   "domain": "general",
   "shapes": [
    "draft-and-check"
   ],
   "needs_level": 3,
   "levels": [
    3
   ],
   "techniques": [
    {
     "slug": "evaluator-optimizer",
     "title": "Write and check",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/evaluator-optimizer/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evaluator-optimizer.md"
    },
    {
     "slug": "prompt-chaining",
     "title": "Prompt chaining",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/content-pipeline/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/content-pipeline.md"
  },
  {
   "kind": "recipe",
   "slug": "assistant-team",
   "title": "A team of personal assistants",
   "summary": "Several always-on agents split personal tasks among themselves, sharing memory and staying inside the same safety rules.",
   "domain": "general",
   "shapes": [
    "standing-work"
   ],
   "needs_level": 7,
   "levels": [
    2,
    6,
    7
   ],
   "techniques": [
    {
     "slug": "agent-teammates",
     "title": "Always-on assistants",
     "level": 7,
     "url": "https://reedos.dev/gradient_ascent/techniques/agent-teammates/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/agent-teammates.md"
    },
    {
     "slug": "agent-graphs",
     "title": "Agent graphs",
     "level": 6,
     "url": "https://reedos.dev/gradient_ascent/techniques/agent-graphs/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/agent-graphs.md"
    },
    {
     "slug": "memory",
     "title": "Memory",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/memory/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/memory.md"
    },
    {
     "slug": "safety",
     "title": "Safety, privacy and governance",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/safety/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/safety.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/assistant-team/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/assistant-team.md"
  },
  {
   "kind": "recipe",
   "slug": "maintenance-log",
   "title": "Plain-language maintenance log",
   "summary": "Turns a plain-language description of work done into a structured log entry, saved with a tool call and linked to the equipment it concerns through a small knowledge graph.",
   "domain": "general",
   "shapes": [
    "extract-structure"
   ],
   "needs_level": 4,
   "levels": [
    1,
    2,
    4
   ],
   "techniques": [
    {
     "slug": "function-calling",
     "title": "Function calling",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/function-calling/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/function-calling.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "knowledge-graphs",
     "title": "Knowledge graphs and GraphRAG",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/knowledge-graphs/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/knowledge-graphs.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/maintenance-log/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/maintenance-log.md"
  },
  {
   "kind": "recipe",
   "slug": "household-paperwork",
   "title": "Keep the household paperwork straight",
   "summary": "Organize renewal dates, file names, category totals, and reminders with ordinary code. No model is needed; extracting information from scanned bills is a separate task.",
   "domain": "general",
   "shapes": [
    "look-up-or-calculate"
   ],
   "needs_level": 0,
   "levels": [
    0
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/household-paperwork/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/household-paperwork.md"
  },
  {
   "kind": "recipe",
   "slug": "meeting-notes",
   "title": "Turn a meeting transcript into decisions and owners",
   "summary": "Turn a transcript into decisions, owners, and open questions in one model call. Someone who attended reviews the draft before it is shared.",
   "domain": "general",
   "shapes": [
    "transform-text"
   ],
   "needs_level": 1,
   "levels": [
    1
   ],
   "techniques": [
    {
     "slug": "prompt-engineering",
     "title": "Prompt engineering",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-engineering/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-engineering.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/meeting-notes/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/meeting-notes.md"
  },
  {
   "kind": "recipe",
   "slug": "invoice-matching",
   "title": "Match invoices to purchase orders",
   "summary": "Extract invoice fields, then use code to match purchase orders and compare amounts. Differences go to a person; the model never decides whether the totals reconcile.",
   "domain": "general",
   "shapes": [
    "look-up-or-calculate",
    "extract-structure"
   ],
   "needs_level": 3,
   "levels": [
    0,
    1,
    3
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/invoice-matching/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/invoice-matching.md"
  },
  {
   "kind": "recipe",
   "slug": "contract-review",
   "title": "Check an agreement against your own checklist",
   "summary": "Check an agreement against a fixed checklist, with cited clauses for each finding. Merge the findings for a person to review.",
   "domain": "general",
   "shapes": [
    "review-against-criteria"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "parallelization",
     "title": "Parallel calls",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/parallelization/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/parallelization.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/contract-review/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/contract-review.md"
  },
  {
   "kind": "recipe",
   "slug": "incident-runbook",
   "title": "Turn an incident write-up into a runbook",
   "summary": "Turn an incident write-up into a timeline and repeatable steps. Check owners and success criteria, then ask the incident lead to approve it.",
   "domain": "general",
   "shapes": [
    "plan-and-decompose"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "prompt-chaining",
     "title": "Prompt chaining",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/incident-runbook/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/incident-runbook.md"
  },
  {
   "kind": "recipe",
   "slug": "storyboard-from-a-script",
   "title": "Turn a script into a shot list",
   "summary": "Split a script into scenes and shots, then check that every line is covered and every shot has a source. A person reviews the plan; drawing frames is a separate task.",
   "domain": "general",
   "shapes": [
    "plan-and-decompose"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "prompt-chaining",
     "title": "Prompt chaining",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/storyboard-from-a-script/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/storyboard-from-a-script.md"
  },
  {
   "kind": "recipe",
   "slug": "trip-planning",
   "title": "Plan a trip and hold the bookings",
   "summary": "Checking what is available, what is open and what connects takes a different number of steps every time, which is what level 5 is for. Read-only lookups run unattended; anything that spends money stops for a person, with the price and the cancellation terms in front of them.",
   "domain": "general",
   "shapes": [
    "carry-out-a-task"
   ],
   "needs_level": 5,
   "levels": [
    3,
    4,
    5
   ],
   "techniques": [
    {
     "slug": "single-agent",
     "title": "Single agent",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/single-agent/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/single-agent.md"
    },
    {
     "slug": "function-calling",
     "title": "Function calling",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/function-calling/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/function-calling.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/trip-planning/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/trip-planning.md"
  },
  {
   "kind": "recipe",
   "slug": "rubric-grading",
   "title": "Grade against a rubric, with a second reader",
   "summary": "Two independent reviewers apply the same rubric. Disagreements go to the teacher rather than being averaged away.",
   "domain": "general",
   "shapes": [
    "review-against-criteria"
   ],
   "needs_level": 6,
   "levels": [
    1,
    3,
    6
   ],
   "techniques": [
    {
     "slug": "debate-review",
     "title": "Review and debate",
     "level": 6,
     "url": "https://reedos.dev/gradient_ascent/techniques/debate-review/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/debate-review.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/rubric-grading/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/rubric-grading.md"
  },
  {
   "kind": "recipe",
   "slug": "literature-watch",
   "title": "Watch a topic for new work and summarize what turns up",
   "summary": "Code detects new records from fixed sources. One model call summarizes each new title and abstract; code attaches the original citation. It does not follow references or choose new searches.",
   "domain": "general",
   "shapes": [
    "transform-text",
    "watch-and-report"
   ],
   "needs_level": 1,
   "levels": [
    0,
    1
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    },
    {
     "slug": "prompt-engineering",
     "title": "Prompt engineering",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-engineering/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-engineering.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "ops",
     "title": "Operations",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/ops/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/ops.md"
    },
    {
     "slug": "evals",
     "title": "Evals",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/evals/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evals.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/literature-watch/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/literature-watch.md"
  },
  {
   "kind": "recipe",
   "slug": "weekly-status-report",
   "title": "Assemble a weekly status report from several systems",
   "summary": "Code assembles the weekly figures; one model call drafts the report. Checks flag unsupported numbers and missing required facts, then a person reviews and sends it.",
   "domain": "general",
   "shapes": [
    "look-up-or-calculate",
    "transform-text",
    "watch-and-report"
   ],
   "needs_level": 1,
   "levels": [
    0,
    1
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    },
    {
     "slug": "prompt-engineering",
     "title": "Prompt engineering",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-engineering/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-engineering.md"
    },
    {
     "slug": "ops",
     "title": "Operations",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/ops/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/ops.md"
    },
    {
     "slug": "evals",
     "title": "Evals",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/evals/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evals.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/weekly-status-report/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/weekly-status-report.md"
  },
  {
   "kind": "recipe",
   "slug": "project-tracker-upkeep",
   "title": "Keep a tracker document current from several sources",
   "summary": "Keep a shared tracker current through source comparisons and a review queue. Model proposals and changes to human-written fields need approval; missing evidence is flagged.",
   "domain": "general",
   "shapes": [
    "look-up-or-calculate",
    "extract-structure",
    "watch-and-report"
   ],
   "needs_level": 3,
   "levels": [
    0,
    1,
    3
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    },
    {
     "slug": "ops",
     "title": "Operations",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/ops/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/ops.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/project-tracker-upkeep/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/project-tracker-upkeep.md"
  },
  {
   "kind": "recipe",
   "slug": "limits-without-a-model",
   "title": "Check measurements against limits, and chart what drifts",
   "summary": "Use code to calculate limits, yield, process capability, and trends across lots and fixtures. The pass/fail decision stays deterministic; no model is involved.",
   "domain": "engineering",
   "shapes": [
    "look-up-or-calculate"
   ],
   "needs_level": 0,
   "levels": [
    0
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/limits-without-a-model/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/limits-without-a-model.md"
  },
  {
   "kind": "recipe",
   "slug": "characterize-a-design",
   "title": "Sweep a design over its corners and report the margins",
   "summary": "Sweep prototype boards across line, load, and temperature. Code calculates margins, uncertainty, and guardbanded verdicts; no model is needed.",
   "domain": "engineering",
   "shapes": [
    "look-up-or-calculate"
   ],
   "needs_level": 0,
   "levels": [
    0
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/characterize-a-design/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/characterize-a-design.md"
  },
  {
   "kind": "recipe",
   "slug": "measurement-writeup",
   "title": "Turn a measurement session into a report somebody can review",
   "summary": "Turn computed measurements and notebook notes into a report. Code owns the figures, the model writes the prose, and a person checks the finished draft.",
   "domain": "engineering",
   "shapes": [
    "transform-text"
   ],
   "needs_level": 1,
   "levels": [
    0,
    1
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    },
    {
     "slug": "prompt-engineering",
     "title": "Prompt engineering",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-engineering/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-engineering.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/measurement-writeup/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/measurement-writeup.md"
  },
  {
   "kind": "recipe",
   "slug": "ask-the-datasheet",
   "title": "Answer questions from a datasheet, a test spec and a change notice",
   "summary": "Retrieval over the documents an engineer already has, answered with citations that can be checked. The case that matters is a change notice contradicting the datasheet on one number, where the right answer depends on the board revision. Level 2 is enough because one search finds the passage.",
   "domain": "engineering",
   "shapes": [
    "answer-from-documents"
   ],
   "needs_level": 2,
   "levels": [
    1,
    2
   ],
   "techniques": [
    {
     "slug": "rag",
     "title": "Retrieval-augmented generation (RAG)",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/rag/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/rag.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/ask-the-datasheet/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/ask-the-datasheet.md"
  },
  {
   "kind": "recipe",
   "slug": "accuracy-specs-from-the-manual",
   "title": "Pull an instrument's accuracy table out of its manual",
   "summary": "Extract specification rows from a manual, validate their structure, and calculate uncertainty in code. A person verifies ranges, intervals, and conditions against the source.",
   "domain": "engineering",
   "shapes": [
    "extract-structure"
   ],
   "needs_level": 3,
   "levels": [
    0,
    1,
    3
   ],
   "techniques": [
    {
     "slug": "order-zero",
     "title": "When not to use a model",
     "level": 0,
     "url": "https://reedos.dev/gradient_ascent/techniques/order-zero/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/order-zero.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/accuracy-specs-from-the-manual/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/accuracy-specs-from-the-manual.md"
  },
  {
   "kind": "recipe",
   "slug": "test-failure-triage",
   "title": "Sort failing units and operator notes into causes",
   "summary": "Failing measurements and free-text operator notes are sorted into the causes the failure analysis guide already lists, then routed. A person confirms before anything is scrapped or reworked. The categories are known in advance, so this is classification into fixed classes and not an agent.",
   "domain": "engineering",
   "shapes": [
    "classify-and-route"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "routing",
     "title": "Routing",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/routing/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/routing.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/test-failure-triage/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/test-failure-triage.md"
  },
  {
   "kind": "recipe",
   "slug": "design-review-checklist",
   "title": "Check a board against the design rules document",
   "summary": "A bill of materials and a netlist summary are checked rule by rule against the written design rules. One pass drafts findings, a second checks each finding against the rule text it cites and drops the ones that cite nothing. Level 3, because code decides every step and the rules do not change between boards. This is the rule check that happens before a review meeting, not the design review report itself: for the report, and the characterization data behind it, see the two recipes this page links in its first paragraph.",
   "domain": "engineering",
   "shapes": [
    "review-against-criteria"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "evaluator-optimizer",
     "title": "Write and check",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/evaluator-optimizer/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evaluator-optimizer.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/design-review-checklist/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/design-review-checklist.md"
  },
  {
   "kind": "recipe",
   "slug": "requirements-to-test-plan",
   "title": "Turn a requirements list into a test plan",
   "summary": "A fixed chain: read the requirements, propose a test for each, build the traceability table, then check that every requirement has a test and every test names a requirement. A person approves before any of it is adopted. The order of the steps is known in advance, which is what keeps this at level 3.",
   "domain": "engineering",
   "shapes": [
    "plan-and-decompose"
   ],
   "needs_level": 3,
   "levels": [
    1,
    3
   ],
   "techniques": [
    {
     "slug": "prompt-chaining",
     "title": "Prompt chaining",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/prompt-chaining.md"
    },
    {
     "slug": "structured-output",
     "title": "Structured output",
     "level": 1,
     "url": "https://reedos.dev/gradient_ascent/techniques/structured-output/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/structured-output.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/requirements-to-test-plan/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/requirements-to-test-plan.md"
  },
  {
   "kind": "recipe",
   "slug": "instrument-script-from-the-manual",
   "title": "Draft an instrument control script from its programming manual",
   "summary": "The model drafts commands from the manual for that instrument; code checks every one against the documented command set, runs the script on the simulated instrument, and feeds the errors back for another pass. A person bench-checks before it drives real hardware, and every set point goes through a code-side envelope.",
   "domain": "engineering",
   "shapes": [
    "draft-and-check"
   ],
   "needs_level": 4,
   "levels": [
    2,
    3,
    4
   ],
   "techniques": [
    {
     "slug": "rag",
     "title": "Retrieval-augmented generation (RAG)",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/rag/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/rag.md"
    },
    {
     "slug": "evaluator-optimizer",
     "title": "Write and check",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/evaluator-optimizer/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/evaluator-optimizer.md"
    },
    {
     "slug": "code-execution",
     "title": "Code execution",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/code-execution/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/code-execution.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/instrument-script-from-the-manual/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/instrument-script-from-the-manual.md"
  },
  {
   "kind": "recipe",
   "slug": "test-data-by-conversation",
   "title": "Ask questions of a production test log",
   "summary": "Starts where the dashboard stopped: limits, yield and Cpk are already charted and did not answer the question. The model writes analysis code that runs in a sandbox over the CSV, and a person reads the code as well as the answer. Includes the trap of a column in millivolts under a header that says volts.",
   "domain": "engineering",
   "shapes": [
    "explore-data"
   ],
   "needs_level": 4,
   "levels": [
    4
   ],
   "techniques": [
    {
     "slug": "code-execution",
     "title": "Code execution",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/code-execution/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/code-execution.md"
    },
    {
     "slug": "function-calling",
     "title": "Function calling",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/function-calling/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/function-calling.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/test-data-by-conversation/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/test-data-by-conversation.md"
  },
  {
   "kind": "recipe",
   "slug": "bring-up-debug-assistant",
   "title": "Work a bring-up problem at the bench",
   "summary": "An agent with read-only tools, instrument queries, the test log and the datasheet, works a low output down to a cause and proposes the next measurement. Queries run unattended; anything that sets a voltage, a current limit or an output goes through the envelope and a person. Level 5 because each measurement depends on the last.",
   "domain": "engineering",
   "shapes": [
    "carry-out-a-task"
   ],
   "needs_level": 5,
   "levels": [
    3,
    4,
    5
   ],
   "techniques": [
    {
     "slug": "single-agent",
     "title": "Single agent",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/single-agent/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/single-agent.md"
    },
    {
     "slug": "function-calling",
     "title": "Function calling",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/function-calling/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/function-calling.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    },
    {
     "slug": "safety",
     "title": "Safety, privacy and governance",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/safety/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/safety.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/recipes/bring-up-debug-assistant/",
   "markdown": "https://reedos.dev/gradient_ascent/recipes/bring-up-debug-assistant.md"
  },
  {
   "kind": "teardown",
   "slug": "deep-research-mode",
   "title": "A deep-research mode, decoded",
   "summary": "A kind of product people already use, taken apart into the techniques it is built from, from its makers’ own pages.",
   "domain": "general",
   "shapes": [
    "research-and-synthesize"
   ],
   "needs_level": 6,
   "levels": [
    3,
    5,
    6
   ],
   "techniques": [
    {
     "slug": "agentic-rag",
     "title": "Agentic RAG and deep research",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/agentic-rag/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/agentic-rag.md"
    },
    {
     "slug": "parallelization",
     "title": "Parallel calls",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/parallelization/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/parallelization.md"
    },
    {
     "slug": "debate-review",
     "title": "Review and debate",
     "level": 6,
     "url": "https://reedos.dev/gradient_ascent/techniques/debate-review/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/debate-review.md"
    },
    {
     "slug": "orchestrator-workers",
     "title": "Lead agent and workers",
     "level": 6,
     "url": "https://reedos.dev/gradient_ascent/techniques/orchestrator-workers/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/orchestrator-workers.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/teardowns/deep-research-mode/",
   "markdown": "https://reedos.dev/gradient_ascent/teardowns/deep-research-mode.md"
  },
  {
   "kind": "teardown",
   "slug": "coding-agent",
   "title": "A coding agent, decoded",
   "summary": "A kind of product people already use, taken apart into the techniques it is built from, from its makers’ own pages.",
   "domain": "general",
   "shapes": [
    "carry-out-a-task"
   ],
   "needs_level": 6,
   "levels": [
    5,
    6
   ],
   "techniques": [
    {
     "slug": "agent-harness",
     "title": "The agent harness",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/agent-harness/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/agent-harness.md"
    },
    {
     "slug": "single-agent",
     "title": "Single agent",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/single-agent/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/single-agent.md"
    },
    {
     "slug": "coding-agents",
     "title": "Coding agents",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/coding-agents/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/coding-agents.md"
    },
    {
     "slug": "skills",
     "title": "Skills",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/skills/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/skills.md"
    },
    {
     "slug": "orchestrator-workers",
     "title": "Lead agent and workers",
     "level": 6,
     "url": "https://reedos.dev/gradient_ascent/techniques/orchestrator-workers/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/orchestrator-workers.md"
    },
    {
     "slug": "safety",
     "title": "Safety, privacy and governance",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/safety/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/safety.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/teardowns/coding-agent/",
   "markdown": "https://reedos.dev/gradient_ascent/teardowns/coding-agent.md"
  },
  {
   "kind": "teardown",
   "slug": "agent-teammate",
   "title": "An always-on agent teammate, decoded",
   "summary": "A kind of product people already use, taken apart into the techniques it is built from, from its makers’ own pages.",
   "domain": "general",
   "shapes": [
    "standing-work"
   ],
   "needs_level": 7,
   "levels": [
    3,
    4,
    7
   ],
   "techniques": [
    {
     "slug": "agent-teammates",
     "title": "Always-on assistants",
     "level": 7,
     "url": "https://reedos.dev/gradient_ascent/techniques/agent-teammates/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/agent-teammates.md"
    },
    {
     "slug": "long-horizon",
     "title": "Long-running tasks",
     "level": 7,
     "url": "https://reedos.dev/gradient_ascent/techniques/long-horizon/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/long-horizon.md"
    },
    {
     "slug": "computer-use",
     "title": "Computer and browser use",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/computer-use/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/computer-use.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/teardowns/agent-teammate/",
   "markdown": "https://reedos.dev/gradient_ascent/teardowns/agent-teammate.md"
  },
  {
   "kind": "teardown",
   "slug": "answer-engine",
   "title": "A search-grounded answer engine, decoded",
   "summary": "A kind of product people already use, taken apart into the techniques it is built from, from its makers’ own pages.",
   "domain": "general",
   "shapes": [
    "research-and-synthesize"
   ],
   "needs_level": 3,
   "levels": [
    2,
    3
   ],
   "techniques": [
    {
     "slug": "rag",
     "title": "Retrieval-augmented generation (RAG)",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/rag/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/rag.md"
    },
    {
     "slug": "context-engineering",
     "title": "Context engineering",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/context-engineering/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/context-engineering.md"
    },
    {
     "slug": "routing",
     "title": "Routing",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/routing/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/routing.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/teardowns/answer-engine/",
   "markdown": "https://reedos.dev/gradient_ascent/teardowns/answer-engine.md"
  },
  {
   "kind": "teardown",
   "slug": "workplace-assistant",
   "title": "A workplace assistant over your own documents, decoded",
   "summary": "A kind of product people already use, taken apart into the techniques it is built from, from its makers’ own pages.",
   "domain": "general",
   "shapes": [
    "answer-from-documents"
   ],
   "needs_level": 2,
   "levels": [
    2
   ],
   "techniques": [
    {
     "slug": "rag",
     "title": "Retrieval-augmented generation (RAG)",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/rag/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/rag.md"
    },
    {
     "slug": "embeddings-search",
     "title": "Embeddings and search",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/embeddings-search/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/embeddings-search.md"
    },
    {
     "slug": "knowledge-graphs",
     "title": "Knowledge graphs and GraphRAG",
     "level": 2,
     "url": "https://reedos.dev/gradient_ascent/techniques/knowledge-graphs/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/knowledge-graphs.md"
    },
    {
     "slug": "safety",
     "title": "Safety, privacy and governance",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/safety/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/safety.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/teardowns/workplace-assistant/",
   "markdown": "https://reedos.dev/gradient_ascent/teardowns/workplace-assistant.md"
  },
  {
   "kind": "teardown",
   "slug": "browser-agent",
   "title": "A browser agent, decoded",
   "summary": "A kind of product people already use, taken apart into the techniques it is built from, from its makers’ own pages.",
   "domain": "general",
   "shapes": [
    "carry-out-a-task"
   ],
   "needs_level": 5,
   "levels": [
    3,
    4,
    5
   ],
   "techniques": [
    {
     "slug": "computer-use",
     "title": "Computer and browser use",
     "level": 4,
     "url": "https://reedos.dev/gradient_ascent/techniques/computer-use/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/computer-use.md"
    },
    {
     "slug": "single-agent",
     "title": "Single agent",
     "level": 5,
     "url": "https://reedos.dev/gradient_ascent/techniques/single-agent/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/single-agent.md"
    },
    {
     "slug": "human-in-the-loop",
     "title": "Human approval",
     "level": 3,
     "url": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/human-in-the-loop.md"
    },
    {
     "slug": "safety",
     "title": "Safety, privacy and governance",
     "level": "topic",
     "url": "https://reedos.dev/gradient_ascent/techniques/safety/",
     "markdown": "https://reedos.dev/gradient_ascent/techniques/safety.md"
    }
   ],
   "url": "https://reedos.dev/gradient_ascent/teardowns/browser-agent/",
   "markdown": "https://reedos.dev/gradient_ascent/teardowns/browser-agent.md"
  }
 ]
}