House rules
House rules
This is a knowledge base repo: plain markdown, published by Flowershow cloud.
There is no application code. Do not add a framework, a build step, or a
component library. scripts/ is tooling and is excluded from the published site.
The done condition
scripts/verify.sh
Exit 0 means the tree is structurally sound. scripts/init.sh brings a cold
checkout to that point in one command.
verify.sh gates only what is machine-decidable: frontmatter parses, wikilinks
and embeds resolve, referenced files exist, config.json is valid, no Git LFS
pointers. Judgement calls β does this read well, does the site look right, did a
note split preserve its meaning β go to docs/review-queue.md. Never to a
boolean.
The ledger
docs/features.yaml. One entry per unit of work with an explicit
passes: true/false. It is the durable record; context gets compacted, a file
does not.
Guard rails
- Never weaken, skip, or delete a check to make it pass. If something cannot
meet the gate, mark it
passes: falsein the ledger and record why. - Never edit
docs/features.yamlto self-certify. The ledger records what the checker found, not what you would like it to have found. - Never rewrite or force-push
main. - Fixes go in the generator, never in its output.
extract.pyproduces the Without Hot Air chapter markdown β fix the script and re-run; never hand-patch a generated chapter. - Stop and report after 3 identical consecutive failures. Do not keep retrying the same approach.
- Outward-facing steps need a human: creating a public GitHub repo, deleting a remote branch, DNS changes, connecting a Flowershow site.
Conventions
- Content is flat, one level, at the repo root.
assets/is the only exception. - Internal links are wikilinks (
[[slug]]); external links stay markdown links. - Frontmatter is light:
titlealways,createdwhere known,descriptionandtagsonly when they earn their place. - No Git LFS.
- A page using a React component (
<LineChart>,<List>) needssyntaxMode: mdxin its own frontmatter. The site default isauto, which parses.mdas plain Markdown and renders the component as nothing. Do not set it site-wide β MDX is stricter and will break pages containing bare{or<. Escape those as\{/\<on pages that do need MDX. - Commit messages:
[scope/N][size]: subjectβ e.g.[content/2][m]: ..., where N is a rough 1-3 priority and size isxs/s/m/l.
Current work
Migration from a bespoke Next.js site to Flowershow, and splitting out Without Hot Air. See:
docs/superpowers/specs/2026-08-07-climate-kb-design.mdβ the designdocs/plans/2026-08-07-climate-kb-migration.mdβ the task-by-task plan