Build Log
Alloy — First Real Product Screen, Built Honest
July 18, 2026
Built the first real Alloy product (products/alloy/) — a working Next.js + Clerk app rendering the Orient screen from real ForgeKit OS session data, with every unwired panel showing an honest 'not connected' state instead of the mockup's invented metrics.
Timeline
What shipped
products/alloy/ — new Next.js 16 + Clerk product, real sign-in/sign-up, honest dark UI matching the reference mockups' visual language
lib/forgekit-os.ts — reads forgekit-os/sessions/*.json and arc-interpretations/*.json directly off disk, no database, no synthetic data
18 real components: TopRail, Sidebar, ForgeArcRail, GoodMorningPanel, WorkpieceIntake, RecentForgeArcs, BlueprintSummaryPanel (renamed from session_contract fields, not invented Objectives/Constraints), WhatChangedPanel (real built[] with a working 'View Change Log' link to the real forgekits.build/build-log/<slug>.html page), OpenObligationsPanel (real nextItems[]), CommandLedgerPanel (honest placeholder), GateEffectivenessPanel (real gate_checks[], rendered as a bordered table with a colored footer row), WorkpieceStatusPanel, EvidenceTrayPanel (real stats[]), ColdFlamePanel + ScaleHeatLossPanel (honest placeholders), CruciblePanel/AnvilPanel/MechanismRackPanel (honest placeholders)
lib/asset-version.ts — cache-busting for public/ assets keyed to real file mtime, fixing repeated stale-image caching during logo/background-art iteration
Strike + Anvil entries in anvils.md/strikes.md: Alloy placement decision (product-with-deferred-commitments, not product-vs-tool)
“What is the right thing to do? Regardless of cost, effort, time... what is the right thing to do?”