Build with an AI agent
Port60 templates are unusually good territory for AI coding agents: the whole job is a handful of Liquid files against a machine-readable contract, with a validator that returns structured errors the agent can iterate against, and hard walls (the dialect whitelist, escape-by-default, render budgets, human review) that make the worst an agent can produce a rejected upload, never a broken charity site.
The setup
Section titled “The setup”npx @port60/template-kit create riverside-warmcd riverside-warm && npm installThe scaffold ships AGENTS.md (and an identical CLAUDE.md), the briefing every serious
coding agent reads on entry: the file layout, the contract rules, and the iteration loop. You
don’t need to explain the platform to your agent; the scaffold already has.
The loop your agent should run
Section titled “The loop your agent should run”- Edit
sections/*.liquid,layout.liquid,assets/theme.css,manifest.json. npm run validate:json, machine-readable:{ok, errors[], warnings[], provenSupports}. The agent fixes every error and re-runs untilok: true. This is the platform’s exact upload check, so a clean local pass is a guaranteed clean upload.- You watch
npm run devathttp://localhost:4400, the same fixtures render reviewers see. Refresh after edits; validation re-runs in the terminal on every save. npm run package, the uploadable<name>-<version>.zip.
A kickoff prompt that works
Section titled “A kickoff prompt that works”Read AGENTS.md first. Build me a warm, editorial template for a food-bank charity: generous type, cream background, a photography-led hero. Support the hero, values, cta and whatsOn sections, a layout with the member menu island in the header, and ship two looks, “Warm” and “Evening”. After every change run
npm run validate:jsonand fix all errors. Tell me when it validates clean.
For the agent itself
Section titled “For the agent itself”Everything on this site is available as one plain-text file at
/llms-full.txt, the guides plus the generated contract reference (sections,
islands, context variables, dialect, tokens, manifest schema). Fetch it once into context and
build against it.
What the agent cannot do, by design
Section titled “What the agent cannot do, by design”Supports flags are proven, not claimed: declaring supports.worship without rendering the
worship fixture is a validation error, as is the reverse. Islands are placed, never implemented.
Uploads only exist for approved developers, and every version passes human review before it can
reach a charity’s site. The agent gets you to a validated artifact fast; the trust chain stays.

