Site Factory

repo: ~/Projects/site-factory · 16 commits · 0 in last 24h, 0 in last 7d ·

Search the build

16 commits indexed

  1. f1b409f 2026-07-03 chore: macstudio3 migration — reconcile from mac2 + repoint paths (stevestudio2→macstudio3, node/npm/npx→/opt/homebrew)
  2. 5bd4ae3 2026-06-21 auto-save: 2026-06-21T18:53:00 (12 files) — logs/cncp-panel.out logs/hawk.log logs/sf-admin.err.log logs/sf-admin.out.log logs/sf-critic.err.log
  3. 04da464 2026-05-19 site-factory: real stage 2/3/4 runners + stage 8 idempotency
  4. 417327d 2026-05-19 bubbesblock + claimmyaddress: ship live GA4 (backfill from stage-8 pipeline pass)
  5. fa82160 2026-05-19 wholivedthere.com: ship live GA4 + fix audit-trail postJSON
  6. e27fd4f 2026-05-19 sf-cncp-panel: launchd → pm2 cron_restart (gui/$UID domain unreachable)
  7. 5a1cbc4 2026-05-19 sf-viewer: add missing BASIC_AUTH env (same fix as sf-orchestrator)
  8. 1b587d3 2026-05-19 sf-orchestrator: unwedge from May-7 schema-missing freeze
  9. 5af85e2 2026-05-19 snapshot — gitify backup 2026-05-19
  10. a0c5fbe 2026-05-13 snapshot: backup live runtime state (1 files)
  11. 46c59ff 2026-05-13 snapshot: backup uncommitted work (7 files)
  12. e6f32b5 2026-05-13 snapshot: 27 file(s) changed, +2 new, ~25 modified
  13. f693138 2026-05-11 security: untrack .env (still present on disk, just not in git)
  14. 9523023 2026-05-07 untrack node_modules per standing rule (was tracking 804 files; files preserved on disk)
  15. 8e367ce 2026-05-07 tighten .gitignore: add missing standing-rule patterns (tmp/ build/)
  16. 5b2b1e1 2026-05-04 [overnight] pre-debate baseline

Authors

Agents used

  • none detected

Skills used

  • /app5
  • /runners4
  • /brand3
  • /gtag3
  • /sf-admin2
  • /styles2
  • /brand-tokens2
  • /sites2
  • /npm1
  • /npx1
  • /homebrew1
  • /cncp-panel1
  • /hawk1
  • /sf-critic1
  • /brand-spec1
  • /sitemap1
  • /bubbesblock1
  • /claimmyaddress1
  • /wholivedthere1
  • /analytics1
  • /actions1
  • /findings1
  • /cncp-panel-data1
  • /schema1
  • /stages1
  • /seed-palettes1
  • /health1
  • /palettes1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

04da464 · 2026-05-19 · site-factory: real stage 2/3/4 runners + stage 8 idempotency
* stages/runners.js — replace stub bodies for brand/UX/UI with real
  local-only runners that produce committable artifacts:
    stage 2 (brand) → sites/<d>/brand/brand-spec.md
    stage 3 (UX)    → sites/<d>/brand/sitemap.md
    stage 4 (UI)    → sites/<d>/app/styles/brand-tokens.css

* stages/runners.js stage 8 idempotency — check site_factory.stages for
  an existing ga4_property_id BEFORE calling create_property.py. Previous
  pipeline re-runs created 4 duplicate GA4 properties (538344557 +
  538360131 + 538390749 + 538356405) that had to be soft-deleted
  manually. Subtle bug — initial fix filtered status='done' but runStage
  flips status to 'running' before invoking the runner, so the row never
  matched. Now filters on the presence of ga4_* fields in output_json,
  which only get written by a real successful run.

* sites/{wholivedthere,bubbesblock,claimmyaddress}.com/brand/{brand-spec,sitemap}.md
  and sites/.../app/styles/brand-tokens.css — the first 9 real artifacts
  produced by the now-real pipeline. Each one is keyed to the site's
  rotating palette (Chanel / Hermès / Gucci).

Smoke: re-ran stage 8 on all 3 sites after the fix — all returned
reused=true with the original property IDs, no new properties created
in GA admin.
417327d · 2026-05-19 · bubbesblock + claimmyaddress: ship live GA4 (backfill from stage-8 pipeline pass)
* sites/bubbesblock.com/app/lib/gtag.js   — G-CBE5QSCLXW (property 537957623)
* sites/claimmyaddress.com/app/lib/gtag.js — G-WVSFP6J11J (property 538392114)

Generated by the now-fixed stages/runners.js audit-trail flow — both
runs landed 11 rows each in site_factory.actions_log, confirming the
postJSON BASIC_AUTH fix from commit fa82160. Pipeline state for all 3
sites is now current_stage=11 (all stages done, status=intake at the
overall-lifecycle level).
fa82160 · 2026-05-19 · wholivedthere.com: ship live GA4 + fix audit-trail postJSON
* sites/wholivedthere.com/app/lib/gtag.js — measurement id G-VV80JM88WB
  (GA4 property 538258118, created via stage 8 `/analytics` skill)

* stages/runners.js — postJSON to /actions and /findings now forwards
  the orchestrator's BASIC_AUTH credential. Was silently 401'ing every
  audit-trail write (req.on('error') swallowed it), so site 1's first
  full pipeline pass landed 0 rows in actions_log. Smoke-tested by
  re-running stage 0: actions_log went 0 → 1 with the expected row.
e27fd4f · 2026-05-19 · sf-cncp-panel: launchd → pm2 cron_restart (gui/$UID domain unreachable)
The com.steve.sf-cncp-panel launchd plist still exists at
~/Library/LaunchAgents/ but can't be loaded from non-Aqua shells
(launchctl bootstrap gui/$UID returns error 125 'Domain does not
support specified action'). The launchd job was throttled to oblivion
after the May-7 freeze and never came back.

Same script (scripts/cncp-panel-data.js), now run by pm2 with
cron_restart='*/1 * * * *' + autorestart:false. Verified: cron fires
~30s past every minute boundary, JSON file mtime advances, runs exit 0.

Legacy plist left in place but inert — safe to delete once Steve
confirms nothing else references it.
1b587d3 · 2026-05-19 · sf-orchestrator: unwedge from May-7 schema-missing freeze
- apply db/schema.sql (palettes/sites/stages/manager_findings/actions_log/analytics_events all missing)
- seed 20 fashion-house palettes via scripts/seed-palettes.js
- add global error middleware + express-async-errors so async pg throws no longer leave responses hanging
- wire BASIC_AUTH into ecosystem.config.js env (was unset → process.exit(1) on every restart → max-restart kill → silent absence)
- smoke: GET /health 200, GET /sites {sites:[]}, GET /palettes count=20
f693138 · 2026-05-11 · security: untrack .env (still present on disk, just not in git)
.env was committed before .gitignore exclusion was in place. File remains
on disk and functional; this stops future commits and prevents the next
git push (if any remote is ever added) from leaking secrets.
No remote currently configured, so no public exposure occurred.

File tree

2348 files tracked. Click any to browse the source at HEAD.

Other build journals

← Sister Parish Onboarding  ·  all 4 projects  ·  Sku Check Skill →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 0ms