Files
Zakaria a46764fb1b
ci / Validate workspace (push) Has been cancelled
landing-page-ci / Validate landing page (push) Has been cancelled
landing-page-deploy / Deploy landing page (push) Has been cancelled
github-metrics / Generate repository metrics SVG (push) Has been cancelled
refresh-contributors-wall / Refresh contributors wall cache bust (push) Waiting to run
first-commit
2026-05-04 14:58:14 -04:00

113 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Self-check · replit-deck
Run this list silently before emitting `<artifact>`. Anything failing at **P0** is a regression — fix it, don't ship. P1 means the deck is emittable but will feel AI-generated to a designer; fix if you have two passes left. P2 is polish.
Score yourself 15 on each block. Anything ≤ 3 means re-do that dimension.
---
## P0 — hard gates (non-negotiable)
### Theme lock-in
- [ ] `<body data-theme="…">` is set to ONE value from the enum.
- [ ] No `style="--bg: …"` or `style="--accent: …"` on individual slides (grep confirms).
- [ ] No `<style>` block inside a `<section>`.
- [ ] No imported font from Google/Adobe. All fonts resolve via the theme's `--font-*` stacks.
```bash
grep -nE 'style="--(bg|fg|accent|surface|border|muted)' index.html && echo FAIL
grep -nE '<style' index.html | wc -l # expect 1
grep -nE '@import|<link.*font' index.html && echo FAIL
```
### Structural
- [ ] Every `<section>` has `class="slide"` (plus optional `center`).
- [ ] Every `<section>` has a unique `data-screen-label="NN Name"`.
- [ ] Deck chrome is present exactly once: `.deck-progress`, `.deck-counter`, `.deck-hint`.
- [ ] The nav `<script>` is unchanged from the seed.
### Honesty
- [ ] No invented metrics. Any number displayed is from the user's brief, or labeled as illustrative.
- [ ] Unfilled content uses `—` or a muted rectangle, not lorem or AI-made stats like "10× faster".
- [ ] No stock SaaS emoji (🚀 📊 ✨).
---
## P1 — taste gates
### Typography
- [ ] Display face matches the theme:
- `helix` / `world-*` / `bluehouse` → sans display, weight 600700.
- `holm` / `vance` / `atlas` → serif display.
- `bevel` → Y2K italic display (Antonio / Bebas / Impact fallback).
- [ ] Exactly ONE display family per slide. No swapping mid-slide.
- [ ] `.lead` paragraph uses the body sans, not the display face.
- [ ] Mono is reserved for meta-bar, eyebrow small-caps, and `.num-delta`. Not body copy.
### Accent restraint
- [ ] Accent color appears **12 times per slide maximum**.
- [ ] Accent is NEVER used for:
- body paragraph text,
- a filled box bigger than 120×40px (bluehouse gradient cards excepted),
- multiple adjacent elements ("accent chain").
- [ ] In `holm` / `atlas`, accent shows up on: the final period of a title, the em-dash-prefixed eyebrow, and the progress segment. Nowhere else unless deliberate.
### Layout rhythm
- [ ] For 6+ slide decks: at least one slide is `center` and one isn't.
- [ ] No three slides in a row look visually identical (same layout, same density).
- [ ] For 8+ slides: include at least one "breath" slide — a giant-title divider or a one-stat hero.
### Theme-specific musts
- [ ] **helix**: every metric slide uses the `.num` primitive, not custom type.
- [ ] **holm**: the serif appears on the headline only; meta, eyebrow, body are sans + mono.
- [ ] **vance**: every slide has both top and bottom black bands (`.vance-top` 2×), OR is a full-bleed image slide with meta overlaid.
- [ ] **bevel**: the Y2K display face is used for the wordmark and section titles only; body remains Inter.
- [ ] **world-dark / world-mint**: yellow marker appears at least once, never as a body text color.
- [ ] **atlas**: vermilion appears on ① the meta dot ② a title's final period ③ the progress segment. All three? Fine. More? Cut.
- [ ] **bluehouse**: exactly one gradient direction per slide (135° coral→peach XOR 180° lavender→blue on one card, not both).
---
## P2 — polish
- [ ] `.num` values are within 3 characters of each other in width when in a `grid-6` row (so the row reads as a set).
- [ ] `text-wrap: balance` effect is visible on 2-line headlines (verify by eye).
- [ ] Page counter in meta-bar matches `.deck-counter` (both read "NN / NN").
- [ ] On `holm` / `vance` / `atlas`, the body cream/ivory feels warm, not fluorescent. If it looks cold, you accidentally overrode `--bg`.
- [ ] No CSS box-shadow except on `.bh-card` (bluehouse). Shadows elsewhere = SaaS regression.
- [ ] `border-radius` is either 0 (helix/holm/vance/bevel/world-*/atlas) or 1624px (bluehouse only).
---
## Five-dimension critique (silent, before emit)
Before writing `<artifact>`, score this deck 15 in each dimension. If any is **≤ 3**, fix and re-score.
1. **Philosophy**: Does it look like replit.com/slides's gallery, not a generic shadcn dashboard?
2. **Hierarchy**: Is there exactly one dominant element per slide? Can you read the deck by looking at the biggest thing on each slide only?
3. **Execution**: Is the theme rendered cleanly — type weights, spacing, accent usage all theme-consistent?
4. **Specificity**: Does the copy belong to this project (names, numbers, dates), or could it live on any deck?
5. **Restraint**: Are you using fewer colors / weights / icons than you could? (If yes, good. If "I used everything available," bad.)
Two passes is normal. Three is fine. Four means you picked the wrong theme — go back to Step 1.
---
## Emission contract
Stop after `</artifact>`. Do not add post-mortem commentary.
```
<artifact identifier="deck-<slug>" type="text/html" title="<deck title>">
<!doctype html>
<html>…</html>
</artifact>
```