ForgeKitFORGEKIT

Build Log

Briefing's Third Correction, a Cost Rule, and Real Spend Visibility

August 30, 2026

Three same-day corrective passes took Briefing from telemetry-narration to genuine altitude-and-temporal-honest synthesis; a live Owner Loop deploy-retry bug and a stale lockfile got fixed along the way; a hard 'no Claude API by default' cost rule got written and applied by migrating all of Briefing's AI calls to OpenAI; and a brand-new Spend & Value mechanism, built against real (not estimated) provider Admin APIs, found and fixed a live, portfolio-wide Vercel misconfiguration worth a real, verified ~79% build-cost reduction across all 16 projects.

BriefingSpendCostVercelOwner LoopEvidence DisciplineAI Provider Migration
3
corrective passes on Briefing's synthesis (altitude, temporal validity, provider migration)
16
real Vercel projects fixed from Elastic to Standard build machines
~79%
verified real build-cost reduction from the build-machine fix

Timeline

Correct
Fixed Briefing's altitude and temporal-validity gaps
asOf field, prompt rework, quiet UI tag
Migrate
Moved all Briefing AI calls off Anthropic onto OpenAI
Cost rule written into ai-patterns.md
Design
Confirmed 4 real provider Admin APIs live before building anything
OpenAI usage+costs, Anthropic usage+cost+Claude Code Analytics, Vercel FOCUS billing
Build
Shipped spend_snapshots, fetch-provider-usage.ts, attribution map, /spend page
Found and fixed 2 real idempotency bugs along the way
Investigate
Traced a live Vercel cost question down to its exact root cause
Elastic build machines assigning ~20 vCPUs for 29-second builds
Fix
Pinned all 16 real Vercel projects to Standard, verified live
Updated provision-canvas-app.mjs so future apps don't regress
Correct again
Found and fixed a fabricated week-over-week trend before shipping
Provider-onboarding gap, not a real cost spike

What shipped

3 corrective reworks of products/alloy/lib/briefing/{types,index,synthesize,attention,what-changed,research-landscape,trends,what-were-learning,medinachf-request-language,where-we-are}.ts and components/briefing/BriefingCockpit.tsx — significance ranking, strategic-altitude synthesis, temporal-validity (asOf: live/historical) tagging, and full migration off @anthropic-ai/sdk onto OpenAI (gpt-5.6-luna)

.claude/rules/ai-patterns.md — new durable cost rule: no new @anthropic-ai/sdk call sites, default to OpenAI

products/alloy/lib/db/schema.ts — new spendSnapshots table (twice-corrected dedupe design)

products/alloy/scripts/fetch-provider-usage.ts — pulls real spend from OpenAI, Anthropic (2 endpoints), and Vercel

products/alloy/lib/spend/{attribution-map,compute-spend-summary}.ts — provider-identifier-to-ForgeKit-app mapping, honest trend/projection compute layer

products/alloy/app/w/[slug]/spend/page.tsx + components/spend/SpendCockpit.tsx — the real Spend & Value page, with daily chart, week-over-week, and run-rate projection sections

.github/workflows/fetch-spend.yml — scheduled daily pull (not yet live, pending 4 GitHub secrets)

forgekit-os/scripts/provision-canvas-app.mjs — new canvas apps now provisioned with buildMachineType: 'standard' from creation

Live infrastructure fix: all 16 real Vercel projects (canvas-1, canvas-2, medinachf, alloy, forge, and 11 others) pinned from Elastic to Standard build machines, verified live