Build Log
Forge — The Front Door Decision
July 8, 2026
A real plumber prospect (new Housecall Pro user, phone flooded with customer texts) forced the sidecar-vs-fit-shop fork — and Zeb's pushback on a hedged 'both' answer produced the real decision: Forge is the front door, not the back office.
Timeline
What shipped
docs/forge-front-door-decision.md — the durable decision record: identity (front door), rejected options with reasons (HCP sidecar, fit-shop CRM identity), the defensibility argument (shop memory/judgment vs. platform AI roadmaps), plumber pilot scope, v1 build table, positioning language, open items
forgekit-os/journal/anvils.md — 'Is Forge a sidecar to Housecall Pro, or a fit-shop CRM?' (the fork evaporated when the question changed from segment selection to product placement)
forgekit-os/journal/strikes.md — 'Forge is the front door, not the back office.' Sharpens the 2026-06-21 Strike from what Forge is into where it lives
CLAUDE.md + PROJECT_INDEX.md — Gino's Electric corrected from 'pilot/first client' to 'test org modeled on the real electrician'; dead docs/gino-pilot.md reference replaced with the new decision doc; Forge status now points at the front-door identity
build-session.mjs — chapter renderer added with a public/internal split: public build-log pages stay summary-level (engine is private, per the Phase 2A IP boundary), full chapters[].shipped/spins/wins render to forgekit-os/journal/build-log/<slug>.html which never deploys. Both recent session pages rebuilt.
inferred-gates.config.mjs — DIFF_EXCLUDE + INFERRED_RULES moved out of build-session.mjs per the engine-guard line-limit split (the script's own FREEZE note called for exactly this); stale docs/forge-journal/ exclude paths fixed to forgekit-os/journal/
retro.mjs — forgekit-os/journal/build-log/ added to the safe-generated commit globs so internal pages are auto-committed by the retro pipeline
“What happened to the decision between being the sidecar or the fit shop? it's now both? really?”