CYCLOPS LABSSTANDARDS / CRAFT CHECKLISTFILE Nº Q1

Thirty points,
every release.

The list every change is reviewed against before it reaches the site. Where a script can check a point, CI runs it; the rest are read by a person.

CHECKLIST

Words

PointStandardChecked by
C01Copy follows the voice guide: plain words, short sentences, the reader’s next step first.Review against docs/voice.md
C02No word calls a token safe, rug-free, guaranteed or risk-free; a token is "scanned".scripts/ci/wording-lint.mjs
C03Statements about creators restate a measured fact (an amount, a share, a count), never intent or character.scripts/ci/creator-phrasing.mjs
C04Buttons and links say what happens ("Scan a token", "Download CSV"), never "Click here" or "Submit".Review
C05Errors say what failed, whether anything was lost, and what to do next.Review
CHECKLIST

Evidence

PointStandardChecked by
C06Every number on a page comes from the API or the chain at render time; nothing is sample, dummy or fictional on production routes.Review; golden scans
C07Observed, inferred and unavailable are kept apart, and an unavailable check is never shown as passed or as zero.Review; depth-panel tests
C08Every flag names its observation and links the transactions or wallets it rests on.API tests
C09Every scan shows when it was read and the score version it used.Review
C10Trading-fee and rewards copy matches the rule: fees fund operating costs only; rewards come only from the disclosed Rewards wallet.Review
CHECKLIST

States

PointStandardChecked by
C11Each data view has a designed loading, empty, offline and error state that says which one it is.Review; offline a11y run
C12A feature switched off for a missing key says so in plain words and names no secret.GET /v1/flags; review
C13Forms keep what the person typed after an error and never ask twice for the same thing.Review
CHECKLIST

Layout and type

PointStandardChecked by
C14Pages sit on the 12-column editorial grid and round vertical space to the 8px baseline.Review with <html data-grid>
C15No raw colour, easing, shadow or z-index outside design/tokens.json.npm run tokens:check; review
C16Numbers use tabular figures; long addresses are shortened with the full value one click away.Review
C17The page reads at 320px wide without horizontal scrolling, and at 200% zoom without lost content.Review at 320px and 200%
CHECKLIST

Motion

PointStandardChecked by
C18Every animation uses the motion tokens and lib/choreo.ts, and shows its end state under reduced motion.Review with data-motion=still
C19Nothing flashes more than three times a second; nothing moves for more than five seconds without a way to pause it.Review
CHECKLIST

Access

PointStandardChecked by
C20Every interactive element is reachable and operable by keyboard, in reading order, with a visible focus ring that is not hidden behind sticky chrome.Keyboard pass
C21One h1 per page, headings in order, landmarks for header, nav, main and footer.e2e/a11y.spec.ts (axe)
C22Text meets 4.5:1 contrast (3:1 for large text and for focus rings and chart marks) in dark, light and high contrast.axe; token contrast table in the a11y audit
C23Every chart and graph has a text or table equivalent with the same numbers.Review
C24Targets are at least 24 by 24 CSS pixels, or have that much space around them.Review
C25Hover and focus content can be dismissed with Escape, hovered without vanishing, and stays until dismissed.Review
CHECKLIST

Speed

PointStandardChecked by
C26Routes stay within their bundle budgets.scripts/ci/bundle-budget.mjs
C27Images and posters have explicit dimensions so nothing shifts while loading.Lighthouse in post-deploy
CHECKLIST

Release

PointStandardChecked by
C28Typecheck, unit tests, API tests and web tests pass.npm run typecheck; npm test; node --test apps/web/tests
C29Anything that needs a key, account or decision is switched off by default and listed in USER-TODO.md.Review; feature-flags.ts
C30User-visible changes are in the changelog, and scoring changes bump the score version with a changelog entry.Review; /docs/score-changelog
HOW IT IS USED

A point that fails
blocks the release.

Before a release the list is copied into the release notes and each point is ticked, or the notes say why it does not apply. A failing point ships only if the notes say what ships anyway and when it is fixed. The words follow the methodology; access follows the accessibility statement.