Weekly review that triangulates five sources

I talk to myself in voice notes. I research in ChatGPT. Push code to git. Coordinate with my team on Slack. Reflect on AI-assisted ses­sions in struc­tured post-mortems. Each source tells a par­tial story: voice notes say I was think­ing about cat­a­log sort­ing, ChatGPT says I was research­ing it, git says I shipped some­thing, Slack says the team reacted, the reflec­tion says the agent got it wrong twice before land­ing on the right approach.

No single source captures what actually happened. But all five together do.

The problem with single-source reviews

Most weekly reviews draw from one source. You open your task man­ager and check off what got done. Or you scroll through your git log. Or you skim Slack. Each source has its own bias:

The inter­est­ing signal lives in the overlaps. When the same topic appears in three or more sources, that’s real work. When it appears in only one, it’s prob­a­bly noise — or an idea that hasn’t landed yet.

The architecture

I built this as a set of Claude Code skills — mod­u­lar, com­pos­able, each respon­si­ble for one source. An orches­tra­tor spawns all five as sub­agents in par­al­lel, col­lects their sum­maries, and does the cross-referencing.

Five source agents, three model tiers:

AgentWhat it readsModelWhy
Voice notesTana transcriptions (daily-notes/)HaikuShort files, classification only
ChatGPT chatsFrontmatter + first 50 lines of each chatHaikuTopic extraction, not deep reading
Git commitsAll repos, commit messages + GitHub issuesSonnetThematic narrative requires judgment
Slack messagesFull export via API, ~350 messages/weekSonnetUkrainian context, open loop extraction
Session reflectionsStructured post-mortemsHaikuAlready analyzed, just summarize

The Haiku agents cost almost noth­ing and finish in under 30 seconds. The Sonnet agents do the heavy lifting. The orches­tra­tor (Opus, my main ses­sion) reads no raw data — it works only with the five sum­maries, keep­ing the con­text window clean.

Each agent writes its sec­tion to a temp file. The orches­tra­tor reads all five, iden­ti­fies topics that span mul­ti­ple sources, and writes a “Threads of the Week” sec­tion that tells the cross-source story.

What triangulation actually reveals

The first time I ran this on a real week, six threads emerged. Three stood out:

Catalog sorting. Appeared in all five sources. Git says “switched 72 col­lec­tions to Most Relevant sort.” Voice notes say “maybe we shouldn’t hide prod­ucts yet.” ChatGPT says “here’s how to mea­sure sort­ing effectiveness.” Slack says “the team noticed Jasmin dom­i­nates page one now.” Only the com­bi­na­tion shows a hypoth­e­sis moving from thought to research to code to team reac­tion in four days.

Call center AI supervisor. Appeared in voice and ChatGPT only. Two long voice notes design­ing a three-tier archi­tec­ture (open-model tran­scrip­tion, cheap analy­sis, expen­sive rec­om­men­da­tions). A ChatGPT ses­sion explor­ing the same archi­tec­ture, another rank­ing it as the best busi­ness oppor­tu­nity in a port­fo­lio of ideas. Zero git commits. Zero Slack messages. Without the multi-source view, I’d either forget it existed (if review­ing only git/Slack) or over­es­ti­mate its progress (if review­ing only voice notes). Triangulation gives it the cor­rect label: still think­ing, not yet acting.

PKM infrastructure. Four of five ses­sion reflec­tions cov­ered build­ing data pipelines — ChatGPT sync exten­sion, Tana voice web­hook, Slack export CLI. Git showed 43 com­mits across three new repos. Voice notes cap­tured the vision: “con­sol­i­dated weekly review con­nect­ing all these pipelines into one system.” The meta-thread: the infra­struc­ture week that enabled this very review.

The cost model

Three Haiku sub­agents at ~40K tokens each: negligible. Two Sonnet sub­agents at ~100-150K tokens each: moderate. The Slack agent costs the most because it runs the export CLI and then spawns its own sub­agent to ana­lyze ~350 mes­sages with thread expansion.

Total cost for a full five-source weekly review: roughly equiv­a­lent to a 15-minute Claude conversation. The cross-referencing pass adds maybe 5 min­utes of Opus time, work­ing with five com­pact sum­maries rather than raw data.

The key opti­miza­tion is that Haiku reads the ChatGPT conversations.My W16 had 23 chats. Reading them fully would cost a fortune; frontmatter + first 50 lines costs almost nothing, and the title — “Shopify Catalog Sorting KPIs” — usually suffices to classify the topic.

Improvements

The cur­rent archi­tec­ture is good enough to ship, but I already see two improvements:

Temporal threading. The cur­rent “Threads of the Week” clus­ters by topic but omits the timeline. The call center super­vi­sor idea started in voice notes on Wednesday and hit ChatGPT on Thursday. That tem­po­ral signal (think­ing pre­cedes research) is inter­est­ing and cur­rently lost.

Carry-forward from pre­vi­ous weeks. The orches­tra­tor should diff open loops between weeks and sur­face stale items.The W15 report had 43 open action items from Slack. W16 has 42. How many are the same items? Right now it treats each week independently.

The broader point

A single-source weekly review feels hollow. You look at what you shipped and feel pro­duc­tive, or you look at your task list and feel behind. Both are distortions.

Triangulation doesn’t make the review better in the sense of more polished. It makes it honest. It shows where atten­tion actu­ally went, which ideas moved through the pipeline, and which ones stalled.