---
title: "I built a weekly review that triangulates five sources"
author: "Stan Voo"
url: https://www.99rabbits.com/blog/weekly-review-triangulation
published: 2026-04-20
updated: 2026-10-15
summary: "No single source captures what actually happened in your week. But voice notes, ChatGPT, git, Slack, and session reflections together do."
---

# 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 sessions in structured post-mortems. Each source tells a partial story: voice notes say I was *thinking* about catalog sorting, ChatGPT says I was *researching* it, git says I *shipped* something, Slack says the team *reacted*, the reflection says the agent got it wrong twice before landing 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 manager and check off what got done. Or you scroll through your git log. Or you skim Slack. Each source has its own bias:

- **Git** shows what shipped, but not why. "Switch 72 collections to Most Relevant sort" tells you nothing about the three voice notes, two ChatGPT sessions, and one heated Slack thread that preceded it.
- **Slack** shows what was discussed, but not what was decided privately or built silently. Half my significant work never touches Slack.
- **Voice notes** show what I was thinking, but not whether I acted on it.
- **ChatGPT conversations** show what I was researching, but not whether the research informed a real decision or led down a rabbit hole.
- **Session reflections** show how the AI-assisted work went, but not the human work around it.

The interesting 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 probably noise — or an idea that hasn't landed yet.

## The architecture

I built this as a set of Claude Code skills — modular, composable, each responsible for one source. An orchestrator spawns all five as subagents in parallel, collects their summaries, and does the cross-referencing.

![Architecture diagram titled 'Weekly Review That Triangulates Five Sources.' Five source agents — Voice Notes, ChatGPT Chats, Git Commits, Slack Messages, Session Reflections — labelled with model tiers (Haiku or Sonnet) feed an Orchestrator (Opus) that reads the five summaries, cross-references topics, and builds the cross-source narrative. The orchestrator outputs a Weekly Review Report with five source summaries, Threads of the Week, and a cross-referenced story of what actually happened. Below, three example threads: Catalog sorting (5/5 sources), Call center AI supervisor (2/5), PKM infrastructure (4/5).](https://www.99rabbits.com/blog/weekly-review-triangulation-hero.webp)

**Five source agents, three model tiers:**

| Agent | What it reads | Model | Why |
| - | - | - | - |
| Voice notes | Tana transcriptions (daily-notes/) | Haiku | Short files, classification only |
| ChatGPT chats | Frontmatter + first 50 lines of each chat | Haiku | Topic extraction, not deep reading |
| Git commits | All repos, commit messages + GitHub issues | Sonnet | Thematic narrative requires judgment |
| Slack messages | Full export via API, \~350 messages/week | Sonnet | Ukrainian context, open loop extraction |
| Session reflections | Structured post-mortems | Haiku | Already analyzed, just summarize |

The Haiku agents cost almost nothing and finish in under 30 seconds. The Sonnet agents do the heavy lifting. The orchestrator (Opus, my main session) reads no raw data — it works only with the five summaries, keeping the context window clean.

Each agent writes its section to a temp file. The orchestrator reads all five, identifies topics that span multiple sources, and writes a "Threads of the Week" section 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 collections to Most Relevant sort." Voice notes say "maybe we shouldn't hide products yet." ChatGPT says "here's how to measure sorting effectiveness." Slack says "the team noticed Jasmin dominates page one now." Only the combination shows a hypothesis moving from thought to research to code to team reaction in four days.

**Call center AI supervisor.** Appeared in voice and ChatGPT only. Two long voice notes designing a three-tier architecture (open-model transcription, cheap analysis, expensive recommendations). A ChatGPT session exploring the same architecture, another ranking it as the best business opportunity in a portfolio of ideas. Zero git commits. Zero Slack messages. Without the multi-source view, I'd either forget it existed (if reviewing only git/Slack) or overestimate its progress (if reviewing only voice notes). Triangulation gives it the correct label: *still thinking, not yet acting*.

**PKM infrastructure.** Four of five session reflections covered building data pipelines — ChatGPT sync extension, Tana voice webhook, Slack export CLI. Git showed 43 commits across three new repos. Voice notes captured the vision: "consolidated weekly review connecting all these pipelines into one system." The meta-thread: the infrastructure week that enabled this very review.

## The cost model

Three Haiku subagents at \~40K tokens each: negligible. Two Sonnet subagents at \~100-150K tokens each: moderate. The Slack agent costs the most because it runs the export CLI and then spawns its own subagent to analyze \~350 messages with thread expansion.

Total cost for a full five-source weekly review: roughly equivalent to a 15-minute Claude conversation. The cross-referencing pass adds maybe 5 minutes of Opus time, working with five compact summaries rather than raw data.

The key optimization 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 current architecture is good enough to ship, but I already see two improvements:

**Temporal threading.** The current "Threads of the Week" clusters by topic but omits the timeline. The call center supervisor idea started in voice notes on Wednesday and hit ChatGPT on Thursday. That temporal signal (thinking precedes research) is interesting and currently lost.

**Carry-forward from previous weeks.** The orchestrator should diff open loops between weeks and surface 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 productive, 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 attention actually went, which ideas moved through the pipeline, and which ones stalled.
