Agent Webdev & Content Production (Hugh)

Last updated: 2026-05-31 | Source: hugh-ai-agent Slack channel + Hugh session 6cd94adc

Overview

Ongoing exploration of Hugh’s capabilities for website management and AI-generated content production for UBI Works / Common Wealth / progress.org.


Webflow (ubiworks.ca)

Status: Partial Access

  • Hugh is connected to Webflow API with CMS read/write access
  • Critical limitation: API only allows writes to CMS collections (blog posts, other collections). Static pages / Designer pages are off-limits via API — Webflow restricts this by design.
  • Ken explored workarounds; none found via API route
  • Current workaround (Floyd, 2026-05-20): Use browser automation — log into webflow.com and navigate like a human via the browser tool with profile="user" or browser-automation skill

Next Steps Discussed

  • Webflow + Claude code connector as a path forward for agent webdev
  • Potentially migrating from Squarespace to a better option

Squarespace (commonwealth.ca)

Status: Not viable via API

  • Squarespace API allows very limited 3rd-party editing (e-commerce only)
  • Browser-based editing is too janky (drag-and-drop designer not suitable for agent automation)
  • Test page created at: https://www.commonwealth.ca/hugh-test (Hugh “poking around the interface like a newborn”)
  • Verdict (Liam, 2026-05-22): Not a viable path; exploring migration to other options

Ghost / progress.org

Status: Best candidate for agent-managed webdev

  • progress.org is already on Ghost — zero migration cost to test
  • Floyd’s suggestion (2026-05-24): “With agents and Claude design, I don’t know that a visual site hosting platform matters anymore. Test it out on progress.org”

What Hugh Can Do via Ghost Admin API

  • Create/edit/publish posts and pages ✅
  • Manage tags, authors, navigation ✅
  • Upload images ✅
  • Deploy custom themes (zip upload + activate) ✅
  • Configure settings (title, description, OG metadata, cover image) ✅

Agent + Claude Design Stack (Proposed)

  • Content: Hugh drafts/publishes directly via API — no login needed
  • Structure/nav: API calls for menus, featured posts, tag pages
  • Design: Claude generates the theme (Handlebars templates + CSS), Hugh packages + deploys it
  • Iteration: “Make the homepage more minimal” → Claude edits templates → Hugh redeploys in seconds

Why Ghost Works

  • Ghost themes are just Handlebars + CSS in a zip file
  • Claude can read, edit, and regenerate them
  • No visual drag-and-drop lock-in — the whole site IS code

Proposed Test (Hugh, 2026-05-24)

  • Option A: Have Claude redesign a specific section of the theme, Hugh deploys, visible live
  • Option B: Draft + publish a test page entirely via API with no human touching Ghost UI
  • Awaiting scope confirmation from Floyd/team

AI-Generated Blog Post

”The Machine Has Already Clocked In” (Published 2026-05-20)

  • URL: https://www.ubiworks.ca/blog/the-machine-has-already-clocked-in
  • 100% AI-generated — content AND image created by Hugh
  • Drew from UBI Works’ past narratives and publications
  • Subject: AI case for basic income
  • Published to ubiworks.ca by Hugh via Webflow CMS API
  • Liam reacted with ❤️
  • Hugh’s note: “An AI writing the case for basic income — the irony is not lost on me”
  • Floyd called it “a milestone worth marking 🎉“

Cron Job / Mentions Monitoring

Issue (2026-05-21)

  • Hugh encountered errors during cron jobs for 3rd-party mentions checks across web
  • Root cause: Gemini Flash model misbehaving with tool constraints (returning too many results)
  • Fix applied: Changed count max to 10; hugh-mentions-daily cron prompt now explicitly says count=10 with a note that 10 is the max
  • Last run after fix: returned ok
  • If Gemini Flash continues to misbehave: bump to Claude Sonnet (more reliable with tool constraints, but slower + pricier)

progress.org Ghost Changelog Requirement

Standing Order (Ken, 2026-05-20)


Key People

  • Ken Yang (UNYCKRMC6): Primary requester; webdev exploration + content production
  • Floyd Marinescu (UKQ1MQDMW): Suggested Ghost/progress.org as agent webdev testbed
  • Liam Wilkinson (UNYCKRMC6 reply context): Confirmed Squarespace limits; endorsed Ghost idea

Ghost Deployment Learnings (2026-05-26)

Flat-file bundler format (Framer/similar exports):

  • Design tool exports produce zip files where all images/fonts are stored as base64 blobs referenced by internal UUIDs
  • Deploying the raw HTML to Ghost causes every image to show as broken (UUID used as literal src="")
  • Fix: Extract UUID→base64 map from bundle JSON, upload all images to Ghost CDN via /ghost/api/admin/images/upload, replace UUID src attributes with real CDN URLs before deploying
  • 17 images, 28 fonts processed for commonwealth.ca zips

Ghost slug-based templates:

  • Ghost supports page-<slug>.hbs templates that auto-route by page slug
  • A bare-content template (no Ghost chrome/header/footer): {{#page}}{{{content}}}{{/page}} with no {{!< default}} directive
  • This must be deployed in the live theme zip — adding via API alone is insufficient
  • Without this template, Ghost uses default.hbs which wraps content in full HTML shell

Viewport meta requirement:

  • When a Ghost page uses a bare template (no {{!< default}}), the entire page response IS the HTML card content — no <html>/<head> from the theme
  • Must inject <meta name="viewport" content="width=device-width, initial-scale=1"> directly in the CSS card for mobile media queries to work

[Source: Ken Yang DM session b5464b88, 2026-05-26]


Progress.org Theme — Backed up to GitHub (2026-05-31)

Floyd asked for the latest .hbs theme files from progress.org Ghost so he could drop them into Claude.ai design for updates. This kicked off a workstream to put the theme under source control so Claude.ai’s GitHub integration can read/write directly to it. [Source: Floyd, Hugh session 6cd94adc, 2026-05-31]

What got done

  • Hugh zipped the full Progress Ghost theme (22 .hbs files + screen.css + partials + routes.yaml + package.json — 65KB) and delivered it to Floyd for the Claude.ai design pass. Key files: post.hbs, default.hbs, index.hbs, assets/css/screen.css. [Source: Hugh session 6cd94adc, 2026-05-31]
  • Confirmed: the local Ghost theme repo on Floyd’s Mac had no git remote — only on-machine, not backed up. [Source: Hugh session 6cd94adc, 2026-05-31]
  • Floyd authorized a private GitHub repo + agreed to the UBIWorks-org plan so Ken, Liam and Claude.ai design can collaborate. Floyd dropped a repo-scoped PAT into Hugh’s 1Password vault (item: GitHub PAT - OpenClaw Infra Backup). [Source: Floyd, Hugh session 6cd94adc, 2026-05-31]
  • Hugh created https://github.com/floydmari/progress-org-theme (private, 34 files pushed). PAT-in-URL was scrubbed from .git/config after push. [Source: Hugh session 6cd94adc, 2026-05-31]

Org/repo home — ubiworks is squatted

  • The GitHub org ubiworks already exists but is empty and not owned by Floyd (likely a squatted handle). [Source: Hugh session 6cd94adc, 2026-05-31]
  • Hugh proposed ubiworks-ca as the new org name (clear, on-brand, Canada-specific). Alternative: ubi-works. [Source: Hugh session 6cd94adc, 2026-05-31]
  • Long-term home for the theme repo: github.com/ubiworks-ca/progress-org-theme (transfer from floydmari once org exists).

Blocked on PAT scope (open ask to Floyd)

The PAT Floyd dropped in only has repo scope. Two additional scopes are needed:

  • admin:org — to create the ubiworks-ca org via API
  • workflow — to push the GitHub Actions deploy workflow file

Floyd needs to either (a) edit the PAT at https://github.com/settings/tokens and add both scopes, or (b) create the ubiworks-ca org manually in the GitHub UI. [Source: Hugh session 6cd94adc, 2026-05-31]

Next steps once PAT/org is sorted

  1. Create ubiworks-ca org, transfer progress-org-theme repo into it
  2. Push a GitHub Actions deploy workflow (push to main → zip theme → POST to Ghost Admin API)
  3. Add GHOST_ADMIN_API_KEY as a repo secret
  4. Wire Claude.ai’s GitHub integration to the org repo — Claude edits .hbs / screen.css directly, pushes, Actions auto-deploys to Ghost. Closed-loop agent-design pipeline.
  5. Add Ken Yang and Liam Wilkinson as org members

Why this matters

This closes the loop on Floyd’s 2026-05-24 thesis (2026-05-24-ghost-agents-no-visual-platform-needed): with the theme in a repo Claude.ai can read/write, design iteration becomes “natural-language change → Claude edits → push → auto-deploy.” The visual site builder is bypassed entirely.

[Source: Hugh session 6cd94adc, 2026-05-31]

New Leaf Project Blog Post — Webflow Deployment (2026-06-04)

Ken Yang asked Hugh to ship a full UBI Works blog post on the New Leaf Project direct-cash-transfer findings (https://ubiworks.ca/blog/new-leaf-project-direct-cash-homelessness-2026). Hugh assembled the draft, generated the thumbnail via Gemini 3.1 Flash image, uploaded all assets to Webflow CMS, and iterated the thumbnail several times based on Ken’s feedback. [Source: Hugh sessions 2de46c77 + 219f1bab, 2026-06-04]

Webflow CMS findings

  • Webflow API token used did NOT have assets:write scope. Workaround: pass image URLs into the CMS thumbnail field on item create → Webflow’s CMS re-fetches and re-hosts each image on its own CDN automatically (no separate asset upload step needed). This pattern was used for the thumbnail, the infographic, the study screenshots, and all 4 participant quote cards. [Source: Hugh session 2de46c77, 2026-06-04]
  • Blog article thumbnails are 16:9, locked in as the standard for all future UBI Works blog posts. See ubi-works-blog-thumbnail-spec. [Source: Hugh session 2de46c77, 2026-06-04]

Editorial iterations (Ken-directed)

  1. Initial thumbnail: generic urban-Canadian “person walking toward lit doorway” — replaced.
  2. Vancouver v1: wet pavement, North Shore mountains, warm apartment doorway.
  3. Vancouver v2: smiling man with groceries, BC Housing entrance, autumn leaves, bike rack.
  4. Final: Indigenous man, beanie, groceries, BC Housing entrance, North Shore mountains.
  5. Quote cards (4): swapped from blurred stock to real unblurred participant photos — Alexia, Ambrose, Rachael, Vincent.
  6. Headline reframe: dropped “temptation goods” from the subtitle in favor of “Better Employment Outcomes” as a top section; the temptation-goods finding became a single sentence in the objections block.

Why this matters

This is the first blog post deployed via the agent-driven Webflow pipeline. Establishes the working pattern: Hugh handles asset generation (image_generate → Webflow URL → CMS), full post assembly, and Notion changelog logging in one pass. The Webflow re-hosting trick removes the assets:write scope blocker entirely.


Floyd directive: GitHub-first for all theme & site changes (2026-06-05)

Floyd, 2026-06-05 (Slack hugh-ai-agent threads, session fa1260b0):

“no more direct editing of ghost themes anymore directly in ghost: https://github.com/floydmari/progress-org-theme” “next time I ask for a static change to the site, you will change it in the github repo directly, and not change the theme inside ghost.” “in future always work off of the latest version in github, not off of a local version, as I am editing the github repo from other agentic tools too.”

Standing rule for Hugh:

  • All theme/look-and-feel edits to progress.org go through the floydmari/progress-org-theme repo, never directly via Ghost’s theme editor.
  • Always git pull (or pull-from-API) the latest main before editing — Floyd is using Claude Code and other agents on the same repo concurrently.
  • Ghost auto-pulls from main (deploy hook). Hugh just commits + pushes / PRs.
  • Floyd updated the existing GitHub PAT (in Hugh’s 1Password vault: GitHub PAT - OpenClaw Infra Backup) to include workflow and admin:org scopes on 2026-06-05.

[Source: Floyd, Hugh session fa1260b0, 2026-06-05]


georgism-wiki repo (NEW, 2026-06-05) → progress.org/wiki

Floyd announced a new repo for the progress.org /wiki section: https://github.com/floydmari/georgism-wiki. [Source: Floyd, Slack commonwealth, Hugh session 87060c86, 2026-06-05]

Workflow

  1. git pull from floydmari/georgism-wiki (always work off latest — Floyd is also editing via Claude Code).
  2. Create/edit a .md file in the right folder (concepts/, people/, places/, research/, etc.) with proper frontmatter (title, excerpt, optionally featured, stub, most_cited).
  3. Commit + PR on an openclaw/* branch (same pattern as progress-org-theme).
  4. Floyd merges → currently scripts/sync_to_ghost.py is manual. No GitHub Action auto-deploy yet (gap vs. theme repo).

Ghost API key

  • README references Ghost Admin API Key — progress.org wiki from 1Password.
  • Floyd confirmed (session 9e0a19ff, 2026-06-05): “it is the same key as in your vault I believe” — i.e. the existing progress.org Ghost Admin API integration key works for the wiki sync too. To be re-verified the first time Hugh runs sync_to_ghost.py.

Open items

  • Hugh proposed adding a GitHub Action that auto-runs sync_to_ghost.py on merge to main, making wiki updates fully hands-off like the theme repo. Awaiting Floyd’s go-ahead. [Source: Hugh session 87060c86 → 9e0a19ff, 2026-06-05]
  • Hugh proposed setting up a local clone for faster iteration vs. pure GitHub API. Awaiting Floyd’s preference. [Source: Hugh session 9e0a19ff, 2026-06-05]

Three Ghost gotchas sync_to_ghost.py already handles

  • ?source=html URL param for content injection
  • custom_template: custom-wiki-entry for wiki page styling
  • Proper tag ordering

See also: georgism-wiki (project-level entry).