Designer & builder

TLDR Research Ops

Newsletter triage as a gated agent pipeline

Project brief

Design study

Problem

Research gets expensive when every new question starts with the same source collection, triage, and citation work.

Outcome

A six-stage agent pipeline design that triages a daily tech newsletter, verifies claims against evidence, and produces separate learning and implementation plans behind two independent codegen approval gates. Ten architecture decisions and a working plan orchestrator exist; the core pipeline stages are specified but not yet implemented.

Evidence

  • Ten accepted architecture decisions fix the invariants before any pipeline code exists, every stage emits a versioned, schema-validated artifact so no state passes implicitly between stages; a learning plan stays structurally separate from an implementation plan so studying a topic never quietly turns into shipping code; and codegen sits behind two independent gates (a configuration flag defaulted off, plus an interactive approval) with the write-scoped credential withheld until both pass.
  • A 225-line orchestrator runs ten dependency-ordered plans in isolated agent contexts, and a roughly 1,776-line shell CI harness enforces branch, size, secret, and revertability checks on every change.

Key decisions

  • Design layer: Ten accepted architecture decisions and a requirements doc fix the invariants before any pipeline code is written.
  • Orchestration: A single script runs ten dependency-ordered plans, each in an isolated agent context.
  • Governance & CI: A guard hook blocks protected-branch and force-push operations; a separate CI harness gates changes with deterministic checks and LLM judges.
  • Specified runtime: The scheduled ingestion job and the core pipeline package are specified but not yet implemented.

Editor’s note

The design starts from a bet: the bottleneck in daily newsletter triage is not reading, it is deciding which items deserve deep study and turning the worthwhile ones into grounded, repo-specific plans, with enough audit trail that the whole thing could run unattended. I fixed the invariants in ten accepted architecture decisions before any pipeline code exists.

By the numbers

10Accepted ADRs
225Orchestrator, lines
≈ 1,776CI harness, lines
6Pipeline stages
2Codegen gates

Architecture — the stack

Two diagrams describe the system as designed: a layered architecture connecting design, orchestration, and governance to a not-yet-built runtime.

01
Design layerA requirements doc and ten accepted architecture decisions
02
OrchestrationDependency-ordered workstream plans run in isolated agent contexts
03
Governance & CIGateA branch guard plus deterministic checks and judges gate every run
04
Specified runtimeScheduled ingestion and the core pipeline package, not yet built

The design layer commits to its invariants before orchestration or runtime code exists, and a separate governance layer gates every run.

Architecture — the specified pipeline

The specified pipeline from ingestion through gated codegen.

01/06
IngestionNewsletter content parsed into candidate items
02/06
TriageWeighted scoring ranks a short list with a recommended study depth
03/06
EvidenceClaims checked against canonical sources; gaps recorded as unknowns

Margin note gates every stage downstream

04/06
Learning & implementationA study plan and a build plan are produced separately, never merged
05/06Gate
Codegen gateDefault-off config flag plus a manual approval step
06/06
Prototype PR (optional)Only reached if both gates pass; otherwise the run stays plan-onlyContingent

Each stage emits a versioned artifact, and codegen only fires if a default-off flag and an interactive approval both pass.

Every stage is meant to emit a versioned, schema-validated artifact so no state passes implicitly between stages. A learning plan stays structurally separate from an implementation plan. Codegen sits behind two independent gates (a flag defaulted off, plus interactive approval).

In brief

Design layer

Ten accepted architecture decisions and a requirements doc fix the invariants before any pipeline code is written.

Orchestration

A single script runs ten dependency-ordered plans, each in an isolated agent context.

Governance & CI

A guard hook blocks protected-branch and force-push operations; a separate CI harness gates changes with deterministic checks and LLM judges.

Specified runtime

The scheduled ingestion job and the core pipeline package are specified but not yet implemented.

Researching my way to an orchestration system is the habit behind it. Dual channels keeps research residue out of the next session's window.

Further reading

Where this fits

Portfolio graph

Hover nodes · click empty canvas to zoom/pan

Maps how the work here connects. Open the Portfolio graph →

  • Professional
  • Personal
  • Skill
  • Writing