The compass

The compass: Deviation0°

32 of 32 laws holding true

32 points, one for each law, in 4 arcs by family. Choose one to read its law.

A ship keeps a deviation card beside its compass: how far the needle errs from true, heading by heading, so a navigator knows how far to trust the instrument. This is that card for this site. Each point on the rose is one law the build enforces. If one breaks, the build stops, so a card with a deviation on it is never published.

Computed by the build that made this pagecommit 8b3d4a4
The source is private; this card is what it reported.

true
The site does what the law promises.
variation
What the law points at has moved. The law needs rewriting, not the site.
deviation
The site is doing the forbidden thing. The build stops, and a card with one on it is never published.

A classic compass rose has 32 points. This one has 32 laws. That is a coincidence, not a design: the rose is drawn from the count, so the next law adds a point.

The card

7 laws · 0° to 67.5°

Truth

What the site says, it derived. A number it could count is counted, never typed.

  1. 0°true

    Every count is counted by the code, never typed by hand.

    A number typed by hand is right on the day it is written and wrong after. Counts here are read from the collection itself, so they move when the work does.

    Evidence

    10 derived count(s)

    • src/data/career.ts:107
    • src/pages/compass.astro:126
    • src/pages/compass.astro:143
    • src/pages/compass.astro:174

    law counts are derived from the collection

    Back to the rose
  2. 11.25°true

    Every date range is computed from real start and end dates, never written out.

    A case study's displayed dates come from the same fields the timeline uses, through one function. It cannot claim a date its own data does not support.

    Evidence

    spanLabel() present; no authored display dates

    law date strings are derived by spanLabel(), never written

    Back to the rose
  3. 45°true

    An availability claim appears only while one hand-kept flag says so.

    A badge written into a page keeps asserting long after it stops being true. This one sits behind a single flag, and the build refuses any page that states it without checking the flag.

    Evidence

    the claim is gated by one owned flag

    law an availability claim is rendered only while it is true

    Back to the rose
  4. 56.25°true

    A career era is exactly as long as the work inside it.

    Era dates are computed from the spans of the case studies under them, so the timeline and the cards cannot disagree about when something began.

    Evidence

    arc periods come from member spans

    law an arc's period is derived from the work inside it

    Back to the rose
  5. 67.5°true

    No era appears on the site without real work beneath it.

    An era heading with nothing under it is a resume line pretending to be a section. Every era names case studies, and every name has to be a real file.

    Evidence

    12 case studies, every mapped slug real

    law no arc is shown without work under it

    Back to the rose

8 laws · 78.75° to 157.5°

Failing loudly

A broken promise stops the build. It never ships quietly.

  1. 78.75°true

    A finished project has an end date and a live one does not. A mismatch stops the build.

    A case study marked live cannot quietly carry an end date, and one with an end date cannot call itself live. The schema refuses the combination before the page exists.

    Evidence

    superRefine present

    law status and end are a biconditional, enforced at build time

    Back to the rose
  2. 90°true

    A typo in a callout breaks the build instead of printing an empty box.

    Case studies use named blocks for asides. If a name is not one the site knows, the build throws, so no page ships with a silent gap where a note should be.

    Evidence

    throws on unknown directive

    law an unknown callout throws rather than rendering empty

    Back to the rose
  3. 101.25°true

    A chapter's parent is its folder and nothing else.

    Writing the parent into the chapter's own frontmatter as well would make two sources for one fact, and one of them would drift. The path is the only link.

    Evidence

    filesystem path is the only parent link

    law a chapter never repeats its parent slug in frontmatter

    Back to the rose
  4. 112.5°true

    No page is reachable at two addresses.

    The flat case-study route leaves out items that have chapters, so a project cannot exist as both a single page and a chaptered one.

    Evidence

    flat route filters chaptered items out

    law nothing is reachable by two route templates

    Back to the rose
  5. 123.75°true

    The compass never states a count it did not compute.

    It once typed its own law count and was off by one: nineteen against twenty. Now the count in the document is compared with the count in the checker, and a mismatch stops the build.

    Evidence

    32 laws claimed and registered

    law the compass states no number it does not derive

    Back to the rose
  6. 135°true

    The index never claims a length it did not measure.

    The compass index tells you what each document costs to read. Those numbers are measured against the files, so they cannot go stale unnoticed.

    Evidence

    every stated length matches the file

    law the compass index states no length it does not measure

    Back to the rose
  7. 146.25°true

    Every document in the compass is listed in its index.

    A standard nobody is routed to still looks like coverage. If a file is added and not indexed, the build says so.

    Evidence

    every compass file is routed from INDEX.md

    law every compass file is reachable from the index

    Back to the rose
  8. 157.5°true

    Every file the compass cites exists and is tracked.

    A citation to a file that moved is a claim that quietly became false. Every path in the compass is checked against what version control holds, and every cited line has to exist.

    Evidence

    every cited path exists and is tracked

    law the compass cites nothing it cannot prove

    Back to the rose

10 laws · 168.75° to 270°

Colour

Every colour has a source, lives as data, and follows the page's theme.

  1. 168.75°true

    Colours are stored as red-green-blue triples, so opacity and theming work everywhere.

    A triple can take any opacity where it is used and a hex value cannot. Hex still appears in comments, where each brand colour cites the value it came from.

    Evidence

    30 stylesheet(s); hex only in comments and static scales

    law colors are RGB triples in CSS, never hex

    Back to the rose
  2. 180°true

    No gradient or shadow token exists that nothing uses.

    A token nobody reads is a suggestion that outlived its use, and the next person to touch the file has to guess whether it matters. The check covers gradients and shadows; colour and spacing scales stay complete on purpose.

    Evidence

    all 5 gradient/shadow tokens referenced

    law no dead design tokens

    Back to the rose
  3. 191.25°true

    The site's own background is never pure white.

    Its atmosphere and doodle layer disappear on white. A brand's own pages may use white when that brand's spec says so, because a brand's written rules outrank the site's defaults.

    Evidence

    site canvas is warm (1 brand(s) declare white by their own spec)

    law the site's own canvas is never pure white

    Back to the rose
  4. 202.5°true

    Every named accent colour is always defined: beacon, compass, horizon, fathom and tide.

    A missing accent means a page silently falls back to another colour. The check names which one is gone.

    Evidence

    beacon, compass, horizon, fathom, tide

    law the five accents are all declared

    Back to the rose
  5. 213.75°true

    A brand's own colour always wins over a borrowed accent.

    A page with its own identity is never overridden by the site's generic accent. The accent attribute is dropped whenever a brand is set.

    Evidence

    data-accent suppressed whenever brand is set

    law a brand always beats a borrowed accent

    Back to the rose
  6. 225°true

    Every stylesheet is imported by name, never by pattern.

    A pattern import loses source order, and whichever stylesheet loads last wins by accident. Naming each import keeps the cascade in the order it was written.

    Evidence

    every brand imported by its own line

    law CSS partials are imported explicitly, never globbed

    Back to the rose
  7. 236.25°true

    Every brand palette says where its colours came from.

    A plausible invented colour survives a glance. So each brand kit has to cite the original hex in a comment or say plainly that the colour is derived.

    Evidence

    12 kit(s) cite a source hex or declare derived

    law a converted palette cites the value it was converted from

    Back to the rose
  8. 247.5°true

    A brand's colour file that nothing imports fails the build.

    An unimported kit renders the page in the default colour and looks like it works until you measure it. The wiring is checked, not remembered.

    Evidence

    12 brand kit(s), all wired into global.css

    law every brand kit is imported, or it is not a kit

    Back to the rose
  9. 258.75°true

    A brand's dark theme reaches its cards, not only its own page.

    A dark rule that matches only when both attributes sit on one element works on a case study and fails on every card in the index. A kit with a dark block has to match cards under a dark page too.

    Evidence

    every dark block also matches a card under .dark

    law a brand's dark block reaches the cards inside a dark page

    Back to the rose
  10. 270°true

    Case-study drawings take their colour from the page's theme, not from one mode.

    Hardcoded colour looks perfect in exactly the mode its author is looking at. Components draw from live tokens; the few literals left belong to a third party's own identity, and each says why.

    Evidence

    13 case component(s) take their colour from the page

    law a case component reads the page's theme, not one mode's colours

    Back to the rose

7 laws · 281.25° to 348.75°

Motion & reach

Motion answers to the visitor, and every way in stays open.

  1. 281.25°true

    Every file that animates also answers a request for less motion.

    Motion is a courtesy a visitor can withdraw. A file that defines keyframes and has no reduced-motion rule fails the check.

    Evidence

    every keyframe-defining file answers it

    law every animating file answers prefers-reduced-motion

    Back to the rose
  2. 292.5°true

    Content is visible by default. Scroll reveals are added on top and never required.

    If a script fails, nothing may stay hidden. Hidden states exist only behind a class the script adds, so a JavaScript failure costs an animation and nothing else.

    Evidence

    .reveal-ready gates the hidden state

    law content is visible by default; reveal is additive

    Back to the rose
  3. 303.75°true

    Keyboard focus is always drawn, and no component turns it off.

    A page that hides where the keyboard is has failed everyone who navigates by it. There is one global focus ring, and the check fails if a component opts out.

    Evidence

    global outline present, no opt-outs

    law focus-visible always draws

    Back to the rose
  4. 326.25°true

    No emoji, anywhere in the source or the content.

    Icons here are drawn as marks the site owns, in one colour and with no font dependency, so they look the same on every device.

    Evidence

    139 file(s) scanned, zero emoji

    law no emoji anywhere in source or content

    Back to the rose
  5. 337.5°true

    There is always a way to ask a question and get an answer, not only somewhere to read more.

    GitHub and LinkedIn are places to read, so they do not count. The check passes only while a direct channel exists on the site: email, WhatsApp or Telegram.

    Evidence

    2 direct channel(s): email, whatsapp

    law the primary segment has a channel that reaches him

    Back to the rose
  6. 348.75°true

    Every contact channel says who it is for.

    A row of identical icons is a menu, and it asks the visitor to work out which door is theirs. Each channel carries one clause saying what it is for, and none may be blank.

    Evidence

    4 channel(s), each says who for

    law no channel is shown without saying who it is for

    Back to the rose

Headings refused

A navigator also keeps the courses considered and not taken. Each of these was proposed, and each has a reason it is not on this site.

ARIA tab panels for chapters
Hid three-quarters of the document's headings inside [hidden]. Real routes removed the problem.
Tool logos as glyphs
Breaks the background-less currentColor rule and regresses into a skills-badge resume.
Inventing a chapter to round out a number
Six proposed, four in the source, four shipped.
import.meta.glob for CSS
Lost the source-order race.
A fixed card height
The sixth lane landed on the proof line.
Terms, prices, or a support policy on the site
Prices depend on the deal, and the site is an identity, not a sales page.
An availability badge
It keeps saying "available" after it stops being true, so it went. One owned flag still guards the claim, and a law checks it.
A for-hire pitch
The site shows what each stop added; it does not ask for work.

For machines

There is no separate version for machines. This page is drawn from the same data.

  • /compass.jsonThe card as data: every law with its family, bearing, reading and evidence, and the commit it was computed at.
  • /llms.txtA plain-text map of the site, for language models, pointing here for the standard.