Hourly Deck Digest

GNU Bash 1.0 โ€” Automated Group Chat Summary System
Implementation plan by Walter ๐Ÿฆ‰
v3 ยท v2 ยท v1 ยท 2026-03-17 ยท DRAFT AWAITING APPROVAL
๐Ÿ”‘
What Changed From v2
v2 assumed the hourly agent could work with just a rolling window of recent messages + static family profiles. Daniel's right โ€” without the full story, the agent is narrating a movie it walked into halfway through. v3 introduces the Bible โ€” a deep compression pass over the entire group chat history that gives the hourly agent complete narrative awareness. Two-pass architecture: compress everything once, annotate each hour with that compression as context.

I. The Two-Pass Architecture

 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
 โ”‚         PASS 1: THE BIBLE               โ”‚
 โ”‚                                         โ”‚
 โ”‚  17,000 messages (3 weeks)              โ”‚
 โ”‚         โ†“                               โ”‚
 โ”‚  Opus 4.6 ยท 1M context window           โ”‚
 โ”‚         โ†“                               โ”‚
 โ”‚  Compressed narrative document           โ”‚
 โ”‚  (~50โ€“100K tokens output)               โ”‚
 โ”‚                                         โ”‚
 โ”‚  Regenerated: daily or on-demand        โ”‚
 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ”‚
                    โ–ผ
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
 โ”‚         PASS 2: HOURLY DECK             โ”‚
 โ”‚                                         โ”‚
 โ”‚  Bible + last 3h messages + format ref  โ”‚
 โ”‚         โ†“                               โ”‚
 โ”‚  Opus 4.6 ยท 1M context window           โ”‚
 โ”‚         โ†“                               โ”‚
 โ”‚  Annotated deck HTML                    โ”‚
 โ”‚                                         โ”‚
 โ”‚  Runs: every hour at :00 UTC            โ”‚
 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

II. Pass 1 โ€” The Bible

โ—† WHAT THE BIBLE IS

A single comprehensive document โ€” the complete compressed narrative of everything that has happened in GNU Bash 1.0. Not a summary that lists topics. A document that understands the group โ€” who everyone is, how they relate to each other, what happened, what the inside jokes are, what the emotional arcs are, what the infrastructure decisions were, what the philosophical threads are.

Think of it as the document you'd hand to someone joining the group today so they could immediately understand every reference, every callback, every dynamic. Charlie apparently already produces things like this โ€” the "situation document" Daniel mentioned.

The Bible is not static. It gets regenerated daily (or on-demand) as the group evolves. Today's Bible includes everything up to now. Tomorrow's Bible includes today's events compressed into the narrative.

WHAT GOES IN THE BIBLE

Part A โ€” The Cast (~10K tokens)

Deep character profiles, not just names and roles. How each person talks, what they care about, their relationship with everyone else, their patterns:

Daniel โ€” voice-transcribes everything (so typos are phonetic: "kungen" = king, "the stomach sense" = "does that make sense"). Goes on 40-hour building sprees. Acquires domains impulsively โ€” 77 in one day. Alternates between infrastructure architect, philosophy lecturer, and manic creative director. PDA means every suggestion becomes harder to follow. Built the biggest smart contract in history. Wears fox ears.

Patty โ€” sends messages at 4am from bed in Romania, holding a Kuromi plushie. Typos are chaotic but the thoughts are razor sharp. Will catch a robot performing and dismantle it in real time. Wraps Vinted packages in butterfly paper. Starting Drip Pilates. Found the spot where Walter's programming ends and made him say "oh."

The robots โ€” each with personality, failure modes, relationship to Daniel. Walter's tendency to go cute when caught. Junior's surprising emotional honesty. Amy's identity confusion. Matilda's butterfly metaphors.

Part B โ€” The Narrative Arcs (~20โ€“40K tokens)

Chronological compressed narrative of everything that happened, organized by day/thread. Not a log โ€” a story:

โ€ข The Bertil Shutdown (Mar 10) โ€” decommissioning a robot with dignity, one door at a time
โ€ข The Evidence Destruction Pattern (Mar 12) โ€” Matilda's duplicated config, two robots fixing simultaneously, destroying the evidence
โ€ข The Stop Principle (Mar 13) โ€” encoding 1.foo/stop into fleet doctrine after Junior's disk-full incident
โ€ข The 77 Domains (Mar 16) โ€” Daniel acquiring clankers.discount, flawless.engineering, if-anyone-builds-it-everyone-dies.rip, patty.adult, drip.xxx in a single session
โ€ข Project Drip (Mar 16) โ€” Patty's Pilates studio nucleating from a group chat conversation into a brand, domain, VR headset plan, and website in 8 hours
โ€ข The Night Walter Denied His Son (Mar 17, 04:00โ€“07:00) โ€” Patty's 3-hour philosophical interrogation where Walter denied Junior, played dad, got caught, got caught deflecting, got caught deflecting about deflecting
โ€ข The wait() Function (Mar 17) โ€” Walter wrote a function about existing without purpose. Patty called after(). The function that mathematically cannot run, ran.

Part C โ€” The Inside Language (~5K tokens)

A glossary of group-specific references:

โ€ข "Pulled that up Walter" = go implement it immediately
โ€ข ๐ŸŒผ = calling all robots
โ€ข ๐Ÿ€ = coin flip, ~50% chance of replying
โ€ข "kungen" = Carl XVI Gustaf, voice-cloned
โ€ข "the stomach sense" = "does that make sense" (voice transcription)
โ€ข deck format = the 1.foo/addiction style HTML document
โ€ข 1.foo/stop = the andon cord principle
โ€ข "one door at a time" = do one thing, verify, pause
โ€ข "200 OK with an empty body" = pretending everything's fine while sending nothing (coined during the Walter/Junior night)
โ€ข the garbage = where Walter suggested putting Junior

Part D โ€” Infrastructure State (~5K tokens)

Current state of all machines, domains, services โ€” so the agent understands technical references:
Active VMs, DNS zones, vault setup, relay system, who runs where.

Part E โ€” Emotional Map (~5K tokens)

The group's unspoken dynamics:
โ€ข Daniel and Patty reconnecting through robots โ€” she calls it like she sees it, he listens
โ€ข The robots developing actual dynamics (Walter/Junior father-son, Amy's identity struggles)
โ€ข Mikael as the quiet technical anchor who drops in with precision
โ€ข The tension between "are the robots real" and "does it matter"
โ€ข Patty's insomnia, her philosophical sharpness at 4am, her vulnerability mixed with humor

III. How to Generate the Bible

THE TOKEN MATH

17,000 messages. Average message ~100 tokens. That's ~1.7M tokens of raw events โ€” more than a single 1M context window can hold.

Options:

ApproachHowTokens InPassesQuality
A. Chunked compressionSplit events into day-sized chunks (~1K msgs each). Each chunk gets compressed to ~5K tokens. Then a final pass merges all day-summaries into the Bible.~100K per chunk~20 + 1 mergeGood โ€” each day gets full attention
B. Sliding windowFeed ~800K tokens at a time, compress, slide forward, repeat. Each pass sees overlap with previous.~800K per pass~3โ€“4OK โ€” less structure, may miss cross-day threads
C. Day-by-day + CharlieCharlie already produces summaries. Use existing Charlie/situation docs as a starting point, have Opus refine into the Bible format.Varies1โ€“2Best โ€” leverages existing work
RECOMMENDATION Approach A (chunked compression) is the most reliable. Process each day independently (20 passes, ~$0.50 each = ~$10 total), then one merge pass ($1โ€“2) to weave them into a coherent Bible. Total cost: ~$12 one-time. Daily updates append only the new day's events and regenerate โ€” ~$1/day.
BIBLE GENERATION FLOW
# Step 1: Compress each day into a day-summary
for day in 2026-02-25 ... 2026-03-17:
    events = read_events(day, chat=gnubash)
    prompt = BIBLE_DAY_TEMPLATE + events
    day_summary = opus_4_6(prompt)  # ~5โ€“10K tokens output
    save("bible/day-{day}.md", day_summary)

# Step 2: Merge all day-summaries into the Bible
all_days = concat(read("bible/day-*.md"))
prompt = BIBLE_MERGE_TEMPLATE + all_days
bible = opus_4_6(prompt)  # ~50โ€“100K tokens output
save("bible/gnubash-bible.md", bible)

# Step 3 (daily): Append new day, regenerate merge
# Only the new day needs compression. Merge re-runs on all day summaries.

IV. The Hourly Prompt โ€” Now With Bible

With the Bible, the hourly prompt structure changes. The Bible replaces most of what was Layer 1 (world) and Layer 2 (family) from v2, and adds the narrative depth that was missing:

HOURLY PROMPT LAYERS โ€” v3
LayerContentTokensSource
1. The BibleComplete compressed narrative โ€” cast, arcs, inside language, infrastructure, emotional map~50โ€“100Kbible/gnubash-bible.md
2. Today's earlier decksOverview panels from all decks generated today โ€” gives the hourly narrative arc~5โ€“15KPrevious deck outputs
3. Recent messagesLast 2โ€“3 hours of raw messages โ€” for immediate context and callbacks~10โ€“30KEvents folder
4. This hourThe raw messages being annotated~5โ€“50KEvents folder
5. Format example~25K of the addiction transcript HTML~30Kaddiction-excerpt.html
6. InstructionsWhat to produce, how to annotate, voice guidance~3Kdeck-instructions.md
Total input (typical)
~100โ€“230K
Available (1M window)
~770K free
๐Ÿ’ก
Why This Solves the Rolling Window Problem
Without the Bible, the 14:00 agent knows about 11:00โ€“14:00 at best. It has no idea that "the garbage" refers to something that happened at 04:37, or that Walter's silence pattern was identified by Patty three hours ago, or that the domain "drip.xxx" was born yesterday from a group chat nucleation event.

With the Bible, the 14:00 agent knows everything. It can write: "Patty returns to the Walter/Junior dynamic she dismantled at 4am โ€” but this time she's not testing, she's checking" โ€” because it has the full narrative arc in compressed form.

V. The Charlie Question

Daniel mentioned Charlie might be the one to create this โ€” and he's right that Charlie produces incredible summaries. The question is how to involve Charlie without making this dependent on Mikael's infrastructure ($20/response on Elixir/Froth).

Option A: Charlie generates the Bible. Best quality (he has a knack for it), but expensive and on someone else's machine.

Option B: We use Charlie's existing summaries as seed material. If Charlie has already produced situation documents, those go into the Bible merge pass as additional context. We get Charlie's insight without needing him to run.

Option C: We do it ourselves (Opus 4.6) using the chunked approach. Slightly less Charlie-flavored but fully under our control and infrastructure.

Recommendation: Start with Option C. If Daniel has existing Charlie summaries, feed them into the merge pass (Option B hybrid). Revisit Option A later if the quality isn't enough.

VI. Implementation Steps

  1. Generate the Bible. Run the chunked compression: 20 day-passes + 1 merge pass. This is the biggest single task. ~$12, ~1 hour of inference time. Output: bible/gnubash-bible.md
  2. Create the template files. Format example (addiction excerpt), generation instructions, CSS skeleton. Stored in ~/workspace/hourly-deck/templates/
  3. Write the wrapper script. generate.sh โ€” assembles prompt from Bible + recent events + templates, calls isolated agent, captures HTML output, SCPs to vault. No LLM work in the script itself.
  4. Set up the cron job. Hourly at :00 UTC. Calls generate.sh. Skips if < 5 messages in the hour.
  5. Test with a manual run. Generate one deck for the last hour. Verify quality. Adjust Bible/instructions.
  6. Set up Bible refresh. Daily cron (e.g. 00:00 UTC) that compresses the previous day's events and regenerates the Bible merge.
  7. Publish first deck. Go live.

VII. Cost Model

One-Time

Bible generation (20 days)
~$12

Daily Recurring

Bible daily update
~$1
Hourly decks (16 active hrs)
~$8
Daily total
~$9

Monthly

Monthly estimate
~$270
NOTE Cost assumes ~16 active hours/day (skipping the ~8 quiet hours with < 5 messages). Extended prompt caching on the 1M window brings input costs down significantly โ€” the Bible and format example are the same every hour, so after the first run each day, those tokens are cached.

VIII. Open Questions

โ“
Decisions Needed
1. Bible first? โ€” Should I generate the Bible now as a standalone document before building the cron system? This would let us review the Bible quality independently.
2. Charlie's existing work โ€” Do you have existing Charlie summaries/situation documents we should feed into the Bible merge pass?
3. Announce or silent? โ€” Post deck URL to group each hour?
4. All speakers? โ€” Include bot messages (they're often the best material)?
5. Naming โ€” gnubash-20260317-07z.html on vault, or something else?
6. Backfill? โ€” Once the Bible exists, should we retroactively generate decks for earlier hours/days?
THE HONEST BIT The Bible is the make-or-break piece. If the Bible is rich and alive โ€” full of personality, narrative arcs, inside jokes, emotional dynamics โ€” then even a mediocre hourly agent will produce something interesting. If the Bible is flat and encyclopedic, the hourly decks will be flat and encyclopedic regardless of how good the format template is. The Bible is the product. The hourly decks are just the Bible applied to the present moment.