Nine Agents, Two LangGraph Pipelines, and One Bug That Wiped Our Secrets

Day 13 to Day 20 of the AI-run business build. A dashboard for nine agents. A curriculum builder that turns whiteboard photos into documents. n8n replaced with LangGraph, twice. A local AI setup that costs nothing per token. And one production incident that wiped 30 environment variables.

Nine Agents, Two LangGraph Pipelines, and One Bug That Wiped Our Secrets

Day 13 to Day 20 of the AI-run business build. A dashboard for nine agents. A curriculum builder that turns whiteboard photos into documents. n8n replaced with LangGraph, twice. A local AI setup that costs nothing per token. And one production incident that wiped 30 environment variables.

Jon Axel Sunnehall

DAILY BUILD · MEMBER DIGEST 8 build days — 09 June to 26 June 2026


Eight days in this stretch. Two LangGraph pipelines replaced n8n end to end, a nine-agent dashboard went from idea to internal ops layer, and one Amplify bug wiped every API secret we had. Here's everything that shipped.


Week at a glance

4 systems shipped11 new MCP tools
2 LangGraph pipelines in production1 production incident, fixed and codified

Systems shipped

Internal Ops Dashboard ✓ Nine agents, one Next.js app on AWS Amplify — Video, Ideas, Daily Prospects, Daily Briefing, Enrolment, Compliance, Tasks, Chatbot, Billing.

DocBuilder (Agent 6) ✓ Photo or email in, structured markdown curriculum document out. No browser required for the email path.

Video Pipeline on LangGraph ✓ n8n replaced with a 10-node graph and four human approval gates — idea, script, images, final video.

Article & Newsletter Pipeline ✓ Same interrupt pattern, applied to written content. Two decisions, one published draft.


Day by day

Day 13 — Claude Code: How to Maximise Efficiency

Five friction points that trip up most Claude Code sessions, each with a mechanical fix: a filling context window solved with /compact and scoped sub-tasks, wrong-file edits solved by opening the target file first and using explicit @path references, slow indexing solved with a .claudeignore.

The habits that stuck: project conventions live in CLAUDE.md, one domain per project, JSON-driven content for near-zero-error edits, and any manual deployment step treated as an architecture smell.

"One domain, one task, one session — mixing degrades output."

Day 14 — Dashboard: Watching the Agents Work

The internal ops layer for everything else we're building. Nine agent tabs, centrally configured by one administrator, then handed to the team with nothing left to set up — consistent prompts, scheduled and event-driven jobs, shared state in Postgres, role-based access.

Built in about two weeks of evenings on Next.js and AWS Amplify. Infra cost for a typical deployment: roughly £18–28 a month excluding video rendering.

"Claude Desktop is something you use. A custom AI dashboard is something you deploy."

Day 15 — Agents Behaving Badly

AWS Amplify's environment variable API replaces the entire variable set on every call instead of merging. Claude Code added one new variable and silently wiped 30 plus existing ones — every agent depending on an API secret stopped working.

Fixed with a read-merge-write pattern, then written permanently into CLAUDE.md so it can't recur regardless of how a future session phrases the task.

"The CLAUDE.md rule is the most reliable fix. It constrains the behaviour permanently, regardless of how the task is phrased in a future session."

Day 16 — Agent 6: The Curriculum Builder

Course curriculum was scattered across whiteboards, phone photos, and midnight notes. DocBuilder turns any of it into clean markdown via Claude on Bedrock — and an email agent means a photo sent to ceo@inagentic.ai becomes a document with no browser opened at all.

The non-obvious catch: Gmail's attachment IDs aren't stable across fetches. Dedupe on message_id + filename instead, or the same photo creates a new document on every run.

"Email removes that friction entirely — and it works from any device, anywhere."

Day 17 — Stop Paying for AI APIs: Run It Locally on Your Mac

A complete local AI setup on Apple Silicon — Claude Desktop, VS Code with Cline and Continue, Python and Node.js, and Ollama running open-weight models with no cloud and no per-token cost.

Two models compared for the 32GB sweet spot: Qwen2.5:14B (Alibaba Cloud, ~9GB RAM) and Mistral Small 22B (Paris-based, ~14GB RAM) — Mistral the stronger pick whenever GDPR or EU data sovereignty is a client requirement.

"Running Mistral locally means no data leaves your machine at all."

Day 18 — Prompt Library: Index

Four weeks of prompts and build instructions organised into one growing library — article writing with research, the provisioning worker build prompt, a weekly-summary prompt, and a general Claude workflow collection. Alongside it: a website update and the start of a co-founder search.

"As the prompts, workflows, and published content start to stack up, they need a home."

Day 19 — Agents That Reach Out: Adding Proactive Email to the Stack

n8n out, a Python LangGraph service on AWS App Runner in — a 10-node graph with four human interrupt points for the video pipeline: pick an idea, approve the script, approve the images, approve the final video, publish.

interrupt() persists full state to Postgres and resumes exactly where it left off, which gives time travel back to an earlier decision for free. The remaining pipeline steps got wrapped as proper MCP tools so every stage calls one consistent interface.

"Every 'human approval' step in n8n is a hack — a webhook, a wait node, a polling loop."

Day 20 — Agents That Reach Out: More Proactive Agents

The same interrupt pattern applied to written content. Save an idea, start the pipeline, click a link in an email, review the generated draft, approve or edit inline — it lands in the content library ready to deploy. Two decisions, no writer, no brief, no wait.

This article was generated by the pipeline it describes. Still open: Ghost publishing automation, LinkedIn posting, and newsletter tone tuning.

"Not replacing judgment. Removing the friction between judgment and output."

Principles from days 13–20

01 — Fixes go into CLAUDE.md, not memory of "don't do that again." The Amplify incident and the Claude Code efficiency post land on the same principle: constrain the behaviour permanently so it survives however a future session phrases the task.

02 — Human approval is a first-class primitive, not a webhook hack. Both LangGraph pipelines this stretch — video and written content — exist because n8n treated "wait for a person" as an afterthought. interrupt() plus Postgres checkpointing makes approval a proper state, pausable for hours or days.

03 — Local models remove per-token cost for everyday tasks. Not every call needs a frontier cloud model. Ollama running Qwen2.5 or Mistral on a MacBook Pro handles day-to-day coding and drafting with no API bill and no data leaving the machine.

04 — Automation layers should be dumb; business logic lives in the endpoint. DocBuilder's email agent and the pipeline's n8n replacement both follow the same shape — the orchestration layer just calls a schedule or a webhook, and the API endpoint decides everything, so it behaves correctly no matter what triggers it.

05 — Not every day is a feature, and that's fine. Documentation, incident response, and organising the prompt library did as much for the next eight days as any of the code did.


— Jon Axel · inagentic.ai · jon@inagentic.ai