A one-person editorial team running 16 agents, 1,000+ invocations per week, 14 reusable patterns extracted
Indietheka is a Spanish-language indie music outlet founded in 2012 — and operationally, the longest-running publicly documentable Forward Deployed Engineering engagement Studio runs in the LATAM mid-market. Spanish-first by construction. CDMX-resident principal. Built against the exact capability stack the major foundation labs began hiring for in Mexico City in May 2026.
Before the redesign, the editorial pipeline ran by hand: sourcing, writing, publishing, distributing, playlist curation. One editor, dozens of hours per week, a publication cadence that couldn't keep pace with the volume of new music. The workflow was the bottleneck, not the talent.
The case study below is what eighteen months inside that engagement profile looks like — a six-agent sprint that compounded into a sixteen-agent production system (plus one manually-triggered artist-outreach agent) running the full editorial lifecycle autonomously, with the editor supervising from above the loop.
Twelve discrete steps. Eighty-five percent mechanizable.
The Discovery stage of the Sprint timed every step in the editorial pipeline across a representative production week. Each activity was scored 1–5 on bottleneck severity and tagged for agent candidacy. The audit turned a fuzzy "the workflow is broken" complaint into a specific list of steps to redesign.
| # | Activity | Actor | Active time | Bottleneck | Agent candidate |
|---|---|---|---|---|---|
| 01 | Browse 8+ music outlets for stories | Editor | 45 min/day | 5 | Yes |
| 02 | Identify coverage gaps vs. competitors | Editor | 30 min/day | 4 | Yes |
| 03 | Research album / artist for review | Editor | 60 min | 3 | Partial |
| 04 | Listen to album | Editor | 45 min | 1 | No |
| 05 | Write review in Spanish | Editor | 90 min | 2 | Partial |
| 06 | Source and crop featured image | Editor | 15 min | 4 | Yes |
| 07 | Format and publish to WordPress | Editor | 20 min | 5 | Yes |
| 08 | Reformat for Facebook | Editor | 10 min | 5 | Yes |
| 09 | Reformat for Instagram | Editor | 12 min | 5 | Yes |
| 10 | Post to Lnk.Bio + other channels | Editor | 8 min | 5 | Yes |
| 11 | Curate weekly Spotify playlists | Editor | 4 hrs/week | 4 | Partial |
| 12 | Sync playlists to Spotify | Editor | 30 min/week | 5 | Yes |
What the workflow looked like, in numbers.
The Sprint required a measured baseline before any redesign decisions. Each metric was captured with an explicit measurement method so the post-Sprint comparison would be honest, not aspirational.
| Metric | Baseline value | Unit | Measurement method |
|---|---|---|---|
| End-to-End Cycle Time (per article) | 210 | minutes | Stopwatch log avg, 1 representative week |
| Weekly Throughput | 2–3 | articles/week | WordPress publish log, 4-week average |
| Error Rate | ~8% | % | Formatting errors, missed platforms, broken images |
| Human Hours per Cycle | 3.5 | hours/article | Stopwatch active time end-to-end |
| Cost per Article | ~$105 | $/article | Estimated at $30/hr editorial rate |
| Platform Distribution | 1–2 | platforms/publish | Manual — some platforms frequently skipped |
| Playlist Curation Time | 4.5 | hours/week | Stopwatch — selection + sync combined |
| FTEs Involved | 1 | person | Solo operator |
The workflow, before and after.
What changed — at a glance.
Publication throughput increased 7× at sprint handoff and has continued to compound. The system now runs 1,000+ agent invocations per week across sixteen production agents (plus one manually-triggered outreach agent), managed by a single operator. 14 reusable patterns have been extracted to the Studio Pattern Library; additional patterns are being formalized from the six agents added post-handoff — including a meta-quality layer (Eval Runner + Quality Monitor) that audits the rest of the system.
▸ Post-handoff signal · 2026-Q2 Compounding outcomes from the 60 days following sprint close: organic traffic +112.5% week-over-week at the first full-week close (S16); category-level lifts of +1,050% on review pages and +1,300% on editorials after the editorial-batch deployment; weekly throughput holding steady at ~34 published posts across noticias, reseñas, editoriales. Six new agents shipped post-handoff: a Daily Competitive Brief (competitor scan that writes coverage-gap drafts directly to production), Structured-Metadata Enrichment (119 posts JSON-LD-classified day one, zero failures), an Eval Runner (rules.json validation on every publish), a Quality Monitor (Sundays 7pm — audits the agent ecosystem itself for drift), a Weekly Performance Dashboard (Sundays 6pm — 11-component GA4/GSC analysis with autonomous metadata PATCHes), and a monthly Comprehensive Site Audit (8-dimension scored Health Report routed to the right executor). The 9-check pre-publish verification protocol and the row-locking endpoint for the Long-Form Editorial Pipeline queue both went live in this window.
Stage by stage.
How the Lighthouse Sprint unfolded for the Indietheka editorial pipeline.
Week 1–2
Week 3–4
Week 5–7
Week 8
Sixteen agents. One operator above the loop.
The Sprint shipped ten agents at handoff (AGT-01 through AGT-10). The system has continued to compound: six more agents have come online in production, including a meta-quality layer (Eval Runner + Quality Monitor) that audits the rest of the system. Each agent below is named by the pattern of work it performs — the value pattern is the headline, the Indietheka instantiation is the example. Scheduled, observable, reversible. Not a black box.
evals/rules.json for Yoast compliance, featured image, internal links, schema, slug structure, and tag taxonomy.
The build was a trail left by incidents.
The original plan called for a linear three-week deployment (AGT-01/02 in Week 5, AGT-03/04 in Week 6, AGT-05/06 in Week 7). In practice, the system evolved iteratively — each agent's design was shaped by production incidents from its predecessors. The ten additional agents (AGT-07 through AGT-16) were not in the initial scope; they emerged from gaps revealed only after the core pipeline was running live.
The systems beneath the agents.
Not agents themselves, but shared systems the agents depend on. Each one was extracted from a real production constraint, not designed up front.
Pre-Publish Verification Protocol.
9 check groups covering every dimension of editorial accuracy. Fires on any AI-authored content. Covers lineup/date verification, album data, cover art, artist photos, news structure, verb tenses, tags/categories, link integrity, and festival-day validation. Silent on success, blocks on failure.
6 Cornerstone Article Templates.
Guía Interactiva, Editorial Retrospectiva, Ranked List, Artist Monograph, Cornerstone Mega-Guide, Must-See Grid. Each has its own accent color, background style, and component library.
2 Instagram Carousel Templates.
Two deliberately contrasting visual styles — one for album-focused lists (black backgrounds, album art, pink accents) and one for artist-focused features (full-bleed desaturated concert photos). They alternate in the feed for visual diversity.
Chunked Upload System.
Transfers large HTML articles from the sandboxed environment to WordPress by encoding them, splitting into manageable chunks, and reassembling them browser-side before uploading. Solves the constraint that the sandbox can't reach the WordPress API directly.
GitHub Actions Migration.
Moving agents from local scheduled tasks to cloud-based GitHub Actions. The Continuous Source Monitor is live (runs every 40 min in the cloud). Architecture: one folder per agent, one workflow per agent, state files committed back to the repository.
Cover Art Verification Pipeline.
Fetches album artwork using structured identifiers from Spotify or MusicBrainz — never freeform search. Every image is visually verified before rendering to prevent wrong-album art from reaching production. Born from a real incident where the wrong cover was published.
The category just got a name. The engagement was already inside it.
For most of this case study's history, the only honest way to describe Indietheka was operationally — one editor, sixteen agents, fourteen reusable patterns, eighteen months in production. In May 2026 the market named the category that profile belongs to: Forward Deployed Engineering, the embedded production-AI engagement model that the major foundation labs have begun staffing in Mexico City. Indietheka has been running inside that category — in Spanish, from a CDMX-resident principal, against the exact capability stack the category requires — since Q4 2025. This section maps the capability requirement to the production evidence row by row.
| FDE capability (per foundation-lab hiring criteria, May 2026) | Indietheka production evidence | Live since |
|---|---|---|
| Multi-agent systems on cloud infrastructure | 16 named agents in production — scheduled, observable, reversible. Migrated from session-bound execution to durable cloud workflows in Q1 2026. | Q4 2025 |
| MCP servers as the integration layer | Atlas exposes operational tools any working session can call against the running fleet — read the brief, classify feedback, dispatch work. | Q2 2026 |
| Eval pipelines and observability for reasoning loops | Every publish gated by evals/rules.json; eval log is the single source of truth. Per-agent success rate, latency, error count, queue depth on the operator dashboard. | Q1 2026 |
| Agentic workflows | Four canonical patterns externalized: scheduled audit with HITL, cron discover-rank-publish, durable workflow publisher, multi-channel saga fanout. | Q4 2025 |
| RAG and retrieval discipline | Three-layer content enrichment cascade on every Publisher invocation: source scraping → music embed lookup → AI-assisted rewrite. | Q4 2025 |
| Field-driven pattern identification | 14 production patterns extracted, each carrying a traceable incident receipt. Promoted to @umbra/* packages for cross-property reuse. | Q4 2025+ |
| Governance over autonomy | One-click kill switch per agent, draft reversion, override authority with the operator, 9-group Pre-Publish Verification Protocol. | Q4 2025 |
| Bridge from "Art of the Possible" to scalable production | Sprint shipped six agents; production iteration grew to sixteen plus a meta-quality layer. Same operator. Zero infrastructure team. | Continuous |
What changed, line by line.
Baseline (Week 1–2 measurement) versus post-Sprint (Week 8 handoff) versus current (production). Every row is a metric the operator and the Studio agreed to before the redesign — none are post-hoc justifications.
| Metric | Baseline | Post-sprint (Wk 8) | Current (16 agents) | Delta |
|---|---|---|---|---|
| Weekly Throughput | 2–3 articles | 12–15 articles | ~34 posts/week | +10×+ |
| Human Hours per Article | 3.5 hrs | ~1 hr | ~20 min | −90% |
| Platform Distribution | 1–2 platforms | 6 platforms | 6 platforms | +4 platforms |
| Error Rate | ~8% | <2% | <1% | −88% |
| Agent / Automation Count | 0 | 10 | 16 | +16 agents |
| Agent Invocations | 0 | 160+/week | 1,000+/week | — |
| SEO Coverage | 0 pages/day | — | 5–10 pages/day | New capability |
| Album Discovery | Manual | — | 10 ranked candidates/week | New capability |
| Content Strategy | Ad hoc | — | 2 data-driven proposals/day | New capability |
| Editorial Feedback Loop | None | — | Weekly closed-loop (GA4 + GSC → calendar) | New capability |
| Schema Coverage | 0 posts | — | 119 posts day 1, archive backfill ongoing | New capability |
| Eval Coverage | None | — | Every publish, rules.json gated | New capability |
| Agent-on-Agent Audit | None | — | Weekly Quality Monitor report | New capability |
| Playlist Curation Time | 4.5 hrs/week | 30 min/week | 30 min/week (review) | −89% |
| Quality Checks | 0 | — | 9 check groups, every publish | New capability |
| Reusable Patterns | 0 | 4 | 14 | +14 documented |
| FTEs Required | 1 (overloaded) | 1 (with capacity) | 1 (strategic only) | Same headcount, 10×+ output |
How sixteen agents stay above the loop.
Governance isn't a checklist; it's a runtime layer. Every agent reports to a dashboard, every action is reversible, every override is one click. The operator's hands stay on the wheel even when the system is doing the driving.
Agent Health Dashboard.
Tracks success rate, latency, error count, and queue depth for all 16 agents. RSS poller checks every 15 min. Alert fires if any agent fails 3+ consecutive invocations. Quality Monitor cross-checks the dashboard's claims against actual runtime output every Sunday.
Editorial Approval Queue.
AGT-03, AGT-04, and AGT-06 queue outputs for editor review. Average approval turnaround: under 2 hours during business hours. Approval is a single column flip in the spreadsheet — no separate UI to learn.
One-click Kill Switch.
Any agent can be paused or stopped instantly from the governance dashboard. In-flight items hold in queue. Override authority sits with the editor; no escalation chain required to stop a misbehaving agent.
Draft Reversion.
WordPress posts revert to draft. Distribution posts are deletable per-platform. Spotify playlists maintain version history. All agent actions are logged with timestamps and traceable to the run that produced them.
What compounds — fourteen patterns, every one with a receipt.
The original four patterns were updated with production detail; ten new patterns were extracted from real production incidents during the Sprint and the post-handoff window. Every new pattern carries a traceable incident receipt — the date, the article, the failure that taught us. Documentation standard for each: inputs / outputs, dependencies, governance needs, incident receipt, and adaptation notes for other client contexts.
Updated originals (USP-001 → USP-004)
| ID | Pattern | Category | Production enrichment |
|---|---|---|---|
| USP-001 | RSS-to-CMS Ingestion Pipeline | Content Ops | 3-layer content enrichment cascade (source scraping → music embed lookup → AI-assisted rewrite), automated self-check of 4 SEO fields with auto-fix, and a spreadsheet column lock to prevent duplicate processing. |
| USP-002 | AI-Assisted Editorial with Voice Preservation | Content Ops | Prohibited-word list enforcement, verb-tense rules table (5 situations), heading rules (lead with the key fact, not a generic label), 300–420 word hard limit per article. |
| USP-003 | Multi-Channel Distribution Pipeline | Content Ops | N-template asset generation with A/B rotation per post, external asset hosting (selected specifically because some platform fetchers are blocked by certain CDNs), one-post-per-run pacing for natural feed spacing. |
| USP-004 | Queue-Driven Pipeline with Column-Based Approval Gates | Content Ops | Renamed from "Data-Driven Curation with Human Approval Gate". Thursday→Friday discovery-to-review cycle, spreadsheet as state machine backed by an API endpoint, with shared client libraries for reading and writing queue state. |
New patterns (USP-005 → USP-014) — each traceable to a production incident.
| ID | Pattern | Category | Description | Incident receipt |
|---|---|---|---|---|
| USP-005 | Pre-Publish Verification Protocol | Quality | 9 check groups covering every editorial accuracy dimension. Silent on success, blocks on failure. Fires on any AI-authored content. Each rule traceable to a specific published article and date. | Grew from 0 to 9 checks over 2 weeks of production errors |
| USP-006 | Cover Art Verification Pipeline | Quality | Fetches album artwork using structured identifiers from Spotify or MusicBrainz — never freeform search. Every image visually verified before rendering to prevent wrong-album art reaching production. | Wrong cover published — 2026-04-13 |
| USP-007 | Chunked Upload System | Infrastructure | Transfers large HTML articles from the sandboxed environment to WordPress by encoding, splitting into ~6,700-character chunks, reassembling browser-side, and uploading. Verifies running totals after each chunk to catch corruption. | Cornerstone article pipeline — articles too large for single-request upload |
| USP-008 | Two-Step SEO Metadata Update | Infrastructure | When updating article content and SEO metadata in a single WordPress API call, the SEO plugin doesn't refresh certain fields. Requires a second API call with only the metadata to force the refresh. | Backlog cleanup of 85 posts with stale SEO descriptions — 2026-04-18 |
| USP-009 | API Endpoint for Spreadsheet Writes (No UI Automation) | Infrastructure | Uses Google Sheets as a database via an API endpoint instead of browser UI automation. Standard HTTP libraries handle the endpoint's redirect correctly; some command-line tools do not. Rule: never use browser automation to write spreadsheet cells. | Cell-drift and undo-cascade bugs retired after migrating the Long-Form Editorial Pipeline to the API endpoint |
| USP-010 | Featured Image ≠ Carousel Cover | Content | Never reuse a vertical Instagram carousel cover (1080×1350) as a WordPress featured image. Always generate a separate 1600×900 landscape asset for the website. | Coachella W1 article used the wrong image ratio — 2026-04-14 |
| USP-011 | Temporal Claims Verification | Quality | Claims like "first time in N years", "comeback", or "after N years" must be verified against the publication date, not the drafting date. For multi-weekend festivals: never claim a "first" or "comeback" in Weekend 2 if the artist already played Weekend 1. | The xx incorrectly labeled as a comeback in Coachella W2 carousel — 2026-04-16 |
| USP-012 | Multi-Template Carousel System | Content | Two deliberately contrasting Instagram carousel templates — one album-focused (black backgrounds, album art, pink accents) and one artist-focused (full-bleed desaturated concert photos, high energy). Alternate in the feed for visual diversity. | Feed looked monotonous; solved by introducing the second template style — 2026-04-16 |
| USP-013 | Weekly Planning Loop with Cumulative Memory | Strategy | Sunday evening automation closes the operating week: analyzes performance, identifies which content types and topics worked, writes a weekly plan and appends to a cumulative strategic memory file. These outputs feed into Data-Driven Strategy Proposals and Daily Competitive Brief the following week. | First run 2026-04-20; insights already influenced the following week's calendar |
| USP-014 | Page Builder Safety | Infrastructure | Never update page-builder pages (Elementor, etc.) via the standard WordPress REST API — it silently strips theme-specific layout metadata, breaking the visual design. Use custom AJAX endpoints or the page builder's own API instead. | Homepage layout broken after a standard API update — 2026-04-18 |
Read it. Apply it. Or hire the studio to ship against it.
This is what a Lighthouse Sprint produces in the LATAM mid-market — a Forward Deployed Engineering engagement that ships a working system, sixteen named agents, fourteen reusable patterns, and a governance layer the operator can trust. If you have a workflow that "eats the week" and want it rebuilt with intelligence at the core and humans above the loop, talk to us.