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
browsertool withprofile="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-dailycron prompt now explicitly sayscount=10with 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)
- Every Ghost change to progress.org — regardless of requester (Ken, Floyd, Liam, anyone) — must be logged to:
- Log entry must include: date/time, who requested it, what changed, brief description
- Hugh confirmed this order and will apply it after each change
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 UUIDsrcattributes with real CDN URLs before deploying - 17 images, 28 fonts processed for commonwealth.ca zips
Ghost slug-based templates:
- Ghost supports
page-<slug>.hbstemplates 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.hbswhich 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
.hbsfiles +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/configafter push. [Source: Hugh session 6cd94adc, 2026-05-31]
Org/repo home — ubiworks is squatted
- The GitHub org
ubiworksalready exists but is empty and not owned by Floyd (likely a squatted handle). [Source: Hugh session 6cd94adc, 2026-05-31] - Hugh proposed
ubiworks-caas 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 fromfloydmarionce 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 theubiworks-caorg via APIworkflow— 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
- Create
ubiworks-caorg, transferprogress-org-themerepo into it - Push a GitHub Actions deploy workflow (push to
main→ zip theme → POST to Ghost Admin API) - Add
GHOST_ADMIN_API_KEYas a repo secret - Wire Claude.ai’s GitHub integration to the org repo — Claude edits
.hbs/screen.cssdirectly, pushes, Actions auto-deploys to Ghost. Closed-loop agent-design pipeline. - 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:writescope. 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)
- Initial thumbnail: generic urban-Canadian “person walking toward lit doorway” — replaced.
- Vancouver v1: wet pavement, North Shore mountains, warm apartment doorway.
- Vancouver v2: smiling man with groceries, BC Housing entrance, autumn leaves, bike rack.
- Final: Indigenous man, beanie, groceries, BC Housing entrance, North Shore mountains.
- Quote cards (4): swapped from blurred stock to real unblurred participant photos — Alexia, Ambrose, Rachael, Vincent.
- 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-themerepo, never directly via Ghost’s theme editor. - Always
git pull(or pull-from-API) the latestmainbefore 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 includeworkflowandadmin:orgscopes 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
git pullfromfloydmari/georgism-wiki(always work off latest — Floyd is also editing via Claude Code).- Create/edit a
.mdfile in the right folder (concepts/,people/,places/,research/, etc.) with proper frontmatter (title,excerpt, optionallyfeatured,stub,most_cited). - Commit + PR on an
openclaw/*branch (same pattern asprogress-org-theme). - Floyd merges → currently
scripts/sync_to_ghost.pyis manual. No GitHub Action auto-deploy yet (gap vs. theme repo).
Ghost API key
- README references
Ghost Admin API Key — progress.org wikifrom 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 APIintegration key works for the wiki sync too. To be re-verified the first time Hugh runssync_to_ghost.py.
Open items
- Hugh proposed adding a GitHub Action that auto-runs
sync_to_ghost.pyon merge tomain, 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=htmlURL param for content injectioncustom_template: custom-wiki-entryfor wiki page styling- Proper tag ordering
See also: georgism-wiki (project-level entry).