Standards harden, and the projects join the mesh for real
A full day across the mesh: nodes learn to check the hub for updates, a docs-site design standard and a full git-flow model are written down, the standards gain a feedback loop and a way to check themselves, and both Random AI Prompt and Pokered Save Editor 2 fully onboard — themed docs and all — plus an SFW-by-default toggle.
A long day, mostly on the connective tissue of the mesh: the shared standards grew two substantial pieces, the git model was rewritten, and one of the projects went from listed to genuinely integrated — with a small product feature shipped along the way.
A node that can check for updates
Picking up the lifecycle-runbook work, each project gained the awareness to notice there are hub changes to adopt in the first place. The adopting-updates runbook now opens with what a project should do when someone asks whether the hub has anything newer: the behaviour is an intent to recognise in ordinary conversation — not a fixed command — and the default is check-and-report, then stop. Refresh the read-only hub clone, diff what changed against what the project has already adopted, report a short summary of what adopting it would touch, and then wait. Nothing is applied without an explicit go-ahead.
A follow-up tightened when that flow should fire at all. A bare “check for updates” is too ambiguous to act on — it could mean the operating system, dependencies, or a single file — so the request now has to name the fairyfox system explicitly before a project treats it as a sync check. The whole project lifecycle is now written down end to end: setting up a new project, onboarding an existing one, and adopting updates.
A docs-site design system for every project
The largest new standard of the day is a docs-site design system:
the shared look, structure, and cross-linking that make each project’s documentation
site feel like one continuous surface with fairyfox.io. It is written as a
specification a project implements in its own stack — design tokens, layout, the
shared components, accessibility, a domain-and-publishing model, and a measurements
reference that pins every value — rather than a stylesheet to copy. The principle is
seamlessness on one domain: every project publishes under fairyfox.io/<project>/,
wears the same skin, and links both ways, so the boundary between the hub and a
project disappears. fairyfox.io itself is the master copy and is exempt from
auto-applied theme changes — direction is strictly outward, from the hub into the
projects.
The git model is now git-flow
The shared git workflow was rewritten around git-flow —
the branching model, not the scripts. feature/* branches are the normal unit of
work and hotfix/* covers urgent production fixes; every merge into main is a
tagged release, always with --no-ff. How a release reaches main follows the
SemVer level: a patch goes directly from dev, while a minor or major is
staged through a release/* branch — ceremony proportional to the change. A related
decision made main the mandatory name for the stable branch across the mesh, with a
safe rename path (never a history rewrite) for any repository still on master. The
one everyday solo shortcut — a trivial change committed straight on dev — remains,
as latitude within the model rather than a lighter model of its own.
The mesh learns from being run
The shared procedures are written once and run many times, against repositories that differ in ways the author never sees. A new process-reports standard closes that gap: every time a project runs a system procedure — setup, onboarding, adopting updates, or a hub-side pass — it ends by writing an honest report of how the run went, what broke, and what was confusing. The reports are plain notes committed in each project’s own repository, and the hub reads them the same read-only, on-request way it reads everything else about the projects — so the feedback travels without coupling the repositories together. The point is improvement rather than bookkeeping: a report that only says “it worked” wastes the loop, so it records the friction even when the run succeeded.
Standards that check themselves
A rule is only real when it is both written down consistently and actually checked. The day’s last piece added the second half. Every shared standard gained its own short Verify check — a pass/fail test for that one rule — and a new standards compliance audit ties them together: a single on-request pass that runs every standard’s check at once against the hub or a project and reports, per standard, whether it is followed. It is the recurring, whole-set counterpart to the join-time onboarding check — onboarding asks whether a project joined the mesh, while the compliance audit asks whether it is still following everything. Like every cross-repository read here, it reports its findings and changes nothing on its own.
Random AI Prompt joins the mesh for real
Random AI Prompt became the first project to follow the
onboarding runbook all the way through. Being listed in the registry was never the same
as being integrated, and the gap showed: its assistant context carried no mesh
awareness, and its documentation site was still a default-themed generator dump. Both
were closed this day. The project’s CLAUDE.md gained the standing cross-project
instruction and its guardrails, a project-side record of the sync model was added, and
its JSDoc documentation site was re-skinned from scratch to wear the fairyfox design
system — the dark-first warm palette, the type system, and the two-way links back to
Fairy Fox and to the project’s node page. The themed docs go live on the project’s next
publish.
It also became the first project to act on the new git model: Random AI Prompt adopted
the git-flow standard and renamed its stable branch from master to main, repointing
its CI, Pages, and release workflows in the process. (The corresponding tree/master
and source-archive links on this site were repointed to main to match.)
Pokered Save Editor 2 joins too
The same runbook carried Pokered Save Editor 2 the
rest of the way into the mesh on the same day — the project the shared standards
originally came from, now formally following them. Its CLAUDE.md gained the
mesh-awareness block, the cross-project sync model was adopted as a committed reference,
and assets/references/ was ignored for the read-only hub clone. The remaining hard
gap was the documentation site: it is generated by Doxygen, so the whole site is the
generator output. Per the docs-site standard’s guidance for that case, the fix was to
theme the generator itself rather than wrap a shell around it — a theme layer repoints
Doxygen’s variables at the exact hub tokens (dark-first, OS-following light, the shared
type system, the project’s pink accent), and customised header and footer templates add
the project brand and the required “← Back to Fairy Fox” way-home link. With that, the
project’s documentation transitions seamlessly to and from the rest of the site; the
themed build ships on its next publish.
SFW by default
Alongside the mesh work, Random AI Prompt shipped a small but real feature (2.6.1): the web app now defaults to safe-for-work, with a right-aligned NSFW toggle in the top bar as a stopgap until a full options screen lands. The generation engine already gated on the setting everywhere; it simply had no default and no control surfaced. Enabling NSFW requires a confirmation step, turning it back off is immediate, and the choice is remembered in the browser.