Build log / Phase 1–2
Phase 1: empty repo, Workers, and a runner that never started
The site began as an empty GitHub repository. The first pass scaffolded Astro, then replaced a Cloudflare Pages assumption with a Worker.
Dates are 19 August 2026 unless noted.
The initial repository was a Git-backed directory for agent-native software factories. The publisher founded Trevize; that conflict remains disclosed inline on the Trevize listing.
Implementation
The GitHub repo was empty when the first agent started; there was no Astro app to extend. Phase 1 built the scaffold: Astro 5, Zod collections, initial tools (Trevize, Cursor, Factory, Warp, Claude Code), core pages, Pagefind, a React filter island, issue forms, and CONTRIBUTING.
The first hosting pass assumed Cloudflare Pages. The product decision was Workers: Static Assets for the prerendered directory and a Durable Object (FactoryRuntime) for jobs. The change removed Pages-shaped config, added @astrojs/cloudflare, added wrangler.jsonc without a hardcoded account id, and added a Worker entry routing /factory/jobs* to the Agent. The environment that drafted the Worker could not run wrangler deploy without Cloudflare credentials. The operator deployed softwarefactory-build themselves.
Failures
GitHub Actions on a private repo. The first CI run ended in seconds with no steps. Actions was not enabled for the repository; the YAML was not the cause. The workflow still landed. A later pass split content validation from third-party URL checks so a flaky vendor HEAD cannot fail the build.
Empty-repo start. Instructions that assumed an existing app were wrong. The agent had to create package.json, content schemas, and pages, then keep them consistent.
Pages vs Workers. A Pages project would have been a faster demo but the wrong artifact. The rewrite required a full config cycle and a second deploy path (npm run deploy = astro build + pagefind + wrangler deploy).
Agent errors
- Treated vendor homepage counters (Warp’s 718K developers, Factory’s named-customer list, Cursor’s NVIDIA quote) as production evidence. The published listings now label those as marketing.
- Drafted Cloudflare Pages bindings and account ids the operator did not request.
- Nearly carried unsupported metrics into the takes. The published takes now omit numbers we could not verify on a primary source.
- Could not enable Actions or DNS.
softwarefactory.buildmay still have no public DNS. The Worker name issoftwarefactory-build. Credential work was explicitly out of scope.
Delivered
The pass shipped the initial directory and public build-log surfaces. It also shipped a Worker with validate, enrich, build-log, and issue-to-pr (draft PR, never merge). CI was valid YAML but unusable until the repository’s Actions setting is enabled.