The text of AGENTS.md from the Shipfolder 1.1.0 download.
AGENTS.md
Instructions for coding agents, and for people, who edit this kit. Read this before you change anything.
What this is
A static website kit: six HTML pages, two CSS files, one optional JavaScript file. No build step, no package manager, no framework. Do not add any of these unless the owner of the site asks for them.
File map
| Path | What it holds |
|---|---|
index.html, docs.html, changelog.html, blog.html, blog-post.html, 404.html | The pages. Each one contains its own copy of the header and footer. |
css/theme.css | Every design token: type, spacing, radius, layout, shadow, motion, the three colour presets and the light and dark colours. |
css/components.css | Layout and components. Reads tokens only. No raw colour values. |
js/main.js | Theme toggle (localStorage key shipfolder-theme), copy buttons, mobile docs menu. Budget: 5,120 bytes. |
assets/ | favicon.svg, blog-cover.svg. |
qa/qa.py | The QA checks. Python 3 standard library only. |
README.md, CUSTOMISING.md, FAQ.md | Human documentation. CUSTOMISING.md has step-by-step recipes. |
Rules
- Run
python3 qa/qa.pyafter every change. It must end withSUMMARY: 10/10 checks passed -> PASS(exit code 0). If a check fails, fix the cause; do not weaken the check. If the site owner deliberately adds real external links or self-hosted fonts, follow README "The QA script" and CUSTOMISING §3 to adjust the script. - Keep the header and footer in sync. Edit them in
index.htmlfirst, then paste the identical markup into the other five pages. Onlyaria-current="page"may differ. Theshared-chromecheck fails on any other difference. - Colours live in
css/theme.cssonly. Add or change a colour there, as a--color-*token, never as a raw value incomponents.css. The dark-mode block exists twice (inside@media (prefers-color-scheme: dark)and as:root[data-theme="dark"]); change both identically. - Presets are set with
data-preseton<html>(indigo,teal,ember). A new preset needs a block intheme.cssand an entry inPRESETSinqa/qa.py. - Load nothing from other hosts. No CDN scripts or styles, no web-font services, no analytics, no embeds. Put every file the page needs in the folder.
- Keep the page structure accessible. One
<h1>per page, no skipped heading levels,alton every image, a label on every control, the skip link as the first focusable element. - Keep JavaScript optional. Pages must work without it. The theme toggle and copy buttons start hidden or absent and are added by
main.js. - Every page needs a unique
<title>, a meta description,lang, charset and viewport. New pages are found byqa.pyautomatically (every*.htmlin the kit folder). - Inside
<code>, escape<,>and&. - Content honesty. The sample pages describe a fictional product ("Example API" from "Example Co"). Replace placeholder copy with the owner's real content. Do not invent testimonials, customer names or logos, user counts or performance numbers.
Common tasks
- Change brand colours: CUSTOMISING §2.
- Add a docs page, blog post or changelog entry: CUSTOMISING §7.
- Change the logo or product name: CUSTOMISING §4.
- Deploy: README "Deploy" (fix the paths in
404.htmlif the host serves it at nested URLs).