Skip to content
All entries
archivum

Getting the Journal System Off the Ground

The dev journal for Iron Legions is live. Here's how the generation pipeline came together and what the first pass at commit classification looks like.

infrastructure journal archival

The Story

The journal system started as a question: what if the commit history from Archivum and Legio could tell their own story? Not a changelog of diffs, but something a user might actually want to read.

The pipeline is straightforward in concept. Fetch commits from both repositories, classify them as external (user-facing) or internal (developer-only), run the external ones through a multi-judge debate panel to check prose quality, and write the result as a markdown entry.

Getting the jj integration right took the most debugging. The revset syntax for filtering empty commits (~ description(exact:"")) wasn’t obvious from the docs, but once that clicked, the commit extraction fell into place.

The judge panel runs in three rounds. Each specialized judge evaluates a different dimension — humanization, language clarity, style consistency, technical boundary. The orchestrator tallies scores and decides whether to accept, revise, or escalate to human review. For a first pass, the weighted scoring defaults feel reasonable.

What Changed

  • Added journal generation pipeline with multi-judge debate
  • Integrated jj commit extraction from Archivum and Legio
  • Built external/internal commit classification with memory-based corrections
  • Created journal listing and entry pages on the site

Reflections

The hardest part wasn’t any single component — it was getting the config-driven architecture right. Models, roles, and prompts should all live in YAML so swapping a judge model is one line change. That’s the test for whether a system is truly configurable.


ironlegions.com © Wee Gigs Pty Ltd