llms.txt · diff

git:20261018.0a9dc00 to git:20261020.a18cda0

69 added, 27 removed. Audit A to A.

# sprezzature
> Nine Claude / OpenCode skills for vanilla JavaScript + Tailwind CSS + Roboto frontends. Released under the BSD-3-Clause license (same as scikit-learn). For solo developers and small teams shipping internal tools without a designer.
This repository is a **bundle of nine [Anthropic skills](https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf)**. Use them from **Claude Code** (`cp -r sprezzature-* ~/.claude/skills/`) or from **OpenCode** (`cp -r sprezzature-* ~/.opencode/skills/`). Each skill auto-triggers on its frontmatter description.
## Skill entry points
- [sprezzature-ui/SKILL.md](sprezzature-ui/SKILL.md): UI generation core — components, pages, dataviz, design system, dark mode. Always install.
- [sprezzature-cli-gui/SKILL.md](sprezzature-cli-gui/SKILL.md): Wrap an existing CLI in a single-page vanilla-JS + Tailwind GUI. Flagship.
- [sprezzature-publish/SKILL.md](sprezzature-publish/SKILL.md): Markdown → website, meta tags, favicons, site indexes, plain language.
- [sprezzature-accessibility/SKILL.md](sprezzature-accessibility/SKILL.md): a11y lint, contrast audit, CVD simulation, alt text, captions.
+ - [sprezzature-colors/SKILL.md](sprezzature-colors/SKILL.md): WCAG contrast audit with OKLCH fix suggestions, colour-vision-deficiency simulation, the curated palette and its Tailwind emitter.
+ - [sprezzature-audio/SKILL.md](sprezzature-audio/SKILL.md): Local-AI speech both ways — captions and diarisation out of recorded speech, narration out of written text.
- [sprezzature-ux-laws/SKILL.md](sprezzature-ux-laws/SKILL.md): Apply the canonical Laws of UX (Jon YABLONSKI, lawsofux.com) — 30-law reference for make-time decisions plus a stdlib-only static auditor (Hick, Miller, Fitts, Jakob, Tesler, Aesthetic-Usability, Selective Attention, Doherty, Choice Overload).
+ - [sprezzature-figures/SKILL.md](sprezzature-figures/SKILL.md): 167 hand-authored SVG chart kinds, explainability and causal DAGs, and the Ralph Eyeball Loop that reads a rendered visual back.
+ - [sprezzature-maps/SKILL.md](sprezzature-maps/SKILL.md): Real geography on a true projection — choropleth, situation plate, accumulation map. Data attached to places, not to categories.
- [TRIGGERS.md](TRIGGERS.md): Generated reference — every guaranteed trigger phrase mapped to the skill it activates and that skill's status. Source of truth is each SKILL.md description; regenerated by `scripts/build_triggers.py`. A pre-commit drift hook (`sprezzature-triggers-sync`) refuses any commit where the projection has drifted.
## Repo philosophy — make / audit duality
Every shipped skill carries a "Two modes — make and audit" section in its SKILL.md. The repo's README.md and LISEZMOI.md hold a full per-skill matrix; the tests in `tests/test_two_modes_discipline.py` enforce it on every commit.
## sprezzature-ui core references
- [color-psychology.md](sprezzature-ui/references/color-psychology.md): Curated palettes (Choice / Emotion / Concept / Psychology) and the semantic-color mapping.
- [stack-vanilla-js.md](sprezzature-ui/references/stack-vanilla-js.md): Vanilla JS patterns — ES modules, native `<dialog>`, events, state, i18n.
- - [stack-tailwind.md](sprezzature-ui/references/stack-tailwind.md): Tailwind config, base CSS, plugins, dark-mode strategy, Inter swap.
+ - [stack-tailwind.md](sprezzature-ui/references/stack-tailwind.md): Tailwind config, base CSS, plugins, dark-mode strategy, and the three-Roboto rule.
- [checklist.md](sprezzature-ui/references/checklist.md): Pre-ship quality gate.
## sprezzature-ui charts and dataviz
- [dataviz-chart-selection.md](sprezzature-ui/references/dataviz-chart-selection.md): Decision tree for picking the right chart shape.
- [dataviz-color-palettes.md](sprezzature-ui/references/dataviz-color-palettes.md): Sequential / divergent / categorical palettes.
- [dataviz-maps.md](sprezzature-ui/references/dataviz-maps.md): Map-specific ergonomics.
- [dashboard-ergonomics.md](sprezzature-ui/references/dashboard-ergonomics.md): Tile-by-tile dashboard layout.
## sprezzature-ui design system
- [ui-guidelines/INDEX.md](sprezzature-ui/references/ui-guidelines/INDEX.md): Full map (foundations, patterns, components, inputs, platforms). Apple HIG-derived.
- [material-design.md](sprezzature-ui/references/material-design.md): Material 3 distilled with Material → skill-token mapping.
- [anti-patterns.md](sprezzature-ui/references/anti-patterns.md): Visual and copy tells to refuse.
- [ux-psychology.md](sprezzature-ui/references/ux-psychology.md): Applied cognitive principles.
- [ergonomics-criteria.md](sprezzature-ui/references/ergonomics-criteria.md): Eight ergonomic criteria for UX audit.
## sprezzature-publish — HTML, meta, i18n, indexes
- [meta-tags.md](sprezzature-publish/references/meta-tags.md): `<meta>` tags — W3C / WHATWG + Open Graph + Twitter Cards + Schema.org JSON-LD.
- [site-indexes.md](sprezzature-publish/references/site-indexes.md): robots.txt + sitemap.xml + llms.txt + Atom/RSS + humans.txt.
- [plain-language.md](sprezzature-publish/references/plain-language.md): Copy rewriting at a target grade.
- [i18n.md](sprezzature-publish/references/i18n.md): Multilingual frontend — URL strategy, `Intl.*`, plurals, RTL. Language pair configurable.
## sprezzature-accessibility — accessibility audits and content
- - [lint-a11y.md](sprezzature-accessibility/references/lint-a11y.md): 14-rule static a11y lint. Honest framing — pre-commit gate, not a replacement for axe-core.
- - [contrast-audit.md](sprezzature-accessibility/references/contrast-audit.md): WCAG ratio audit + OKLCH-neighbour fix hint.
- - [cvd-simulation.md](sprezzature-accessibility/references/cvd-simulation.md): Protanopia / deuteranopia / tritanopia rendering.
- - [alt-text-ai.md](sprezzature-accessibility/references/alt-text-ai.md): W3C-compliant alt text via local Ollama + Gemma vision.
- - [captions-ai.md](sprezzature-accessibility/references/captions-ai.md): WebVTT / SRT captions via local pywhispercpp.
+ - [lint-a11y.md](sprezzature-accessibility/references/lint-a11y.md): Twenty-rule static a11y lint. Honest framing — pre-commit gate, not a replacement for axe-core.
+ - [contrast-audit.md](sprezzature-colors/references/contrast-audit.md): WCAG ratio audit + OKLCH-neighbour fix hint. Contrast is colour, so it sits with the palette.
+ - [cvd-simulation.md](sprezzature-colors/references/cvd-simulation.md): Protanopia / deuteranopia / tritanopia rendering.
+ - [accessibility-levels.md](sprezzature-colors/references/accessibility-levels.md): The six levels, and what each one refuses.
+ - [captions-ai.md](sprezzature-audio/references/captions-ai.md): WebVTT / SRT captions via a local whisper.cpp build.
+ - [diarization.md](sprezzature-audio/references/diarization.md): Who spoke when (NeMo Sortformer), and who is who (TitaNet).
+ - [audio-narration.md](sprezzature-publish/references/audio-narration.md): Narration of a page, engine by engine. Alt text has no reference file in the bundle; its contract is the SKILL.md, and the long form lives in the `sprezzature-accessibility` repository.
## sprezzature-ux-laws — Laws of UX (make + audit)
- [laws-of-ux.md](sprezzature-ux-laws/references/laws-of-ux.md): The canonical Yablonski set (30 laws) restated as trigger → action → Tailwind hook. Make-time playbook + audit-time refusal list. Sources verified by recursive crawl of lawsofux.com plus NN/g (Aesthetic-Usability) and the Wikipedia Robustness Principle critique (Postel's Law).
- ## Scripts (Python, cross-platform)
+ ## Commands
- - [scripts/validate_content.py](scripts/validate_content.py): Pre-ship quality gate. Stdlib only.
- - [sprezzature-publish/scripts/favicons.py](sprezzature-publish/scripts/favicons.py): Favicon / PWA / Apple-touch / maskable icon set + manifest + head snippet.
- - [sprezzature-publish/scripts/meta_from_ollama.py](sprezzature-publish/scripts/meta_from_ollama.py): Drafts page meta tags from a goal or HTML page.
- - [sprezzature-publish/scripts/site_indexes.py](sprezzature-publish/scripts/site_indexes.py): robots, sitemap, llms.txt, feed, humans.
- - [sprezzature-publish/scripts/plain_language.py](sprezzature-publish/scripts/plain_language.py): Rewrites UI copy at a target reading grade.
- - [sprezzature-accessibility/scripts/lint_a11y.py](sprezzature-accessibility/scripts/lint_a11y.py): 14-rule static a11y lint.
- - [sprezzature-colors/scripts/audit_contrast.py](sprezzature-colors/scripts/audit_contrast.py): WCAG contrast audit + OKLCH fix suggester.
- - [sprezzature-colors/scripts/simulate_cvd.py](sprezzature-colors/scripts/simulate_cvd.py): CVD image transforms.
- - [sprezzature-colors/scripts/_colors.py](sprezzature-colors/scripts/_colors.py): Shared color primitives (sRGB, WCAG, OKLab/OKLCH, CVD matrices, palette accessors, perceptual lighten/darken).
- - [sprezzature-colors/references/palette.csv](sprezzature-colors/references/palette.csv): Curated palette — one row per color, semantic projections (Base / Emotion / Concepts / Psychology±) as columns.
- - [sprezzature-accessibility/scripts/alt_from_ollama.py](sprezzature-accessibility/scripts/alt_from_ollama.py): W3C alt text via local Ollama vision (`qwen3-vl:8b`).
- - [sprezzature-accessibility/scripts/install_alt_ai.py](sprezzature-accessibility/scripts/install_alt_ai.py): Installs Ollama + pulls the vision model.
- - [sprezzature-audio/scripts/captions_from_whisper.py](sprezzature-audio/scripts/captions_from_whisper.py): WebVTT / SRT captions via pywhispercpp.
- - [sprezzature-audio/scripts/install_captions.py](sprezzature-audio/scripts/install_captions.py): Installs pywhispercpp + model.
- - [sprezzature-ux-laws/scripts/audit_laws_of_ux.py](sprezzature-ux-laws/scripts/audit_laws_of_ux.py): Static auditor for the canonical Laws of UX. Stdlib only; HTML-aware findings via JSON or stdout; exit codes for pre-commit / CI; `--only` / `--ignore` / `--strict`.
- - [sprezzature-colors/scripts/palette_to_tailwind.py](sprezzature-colors/scripts/palette_to_tailwind.py): Make-side emitter — renders `sprezzature-colors/references/palette.csv` as a Tailwind `theme.extend.colors` block (default) or a full `tailwind.config.js` (`--emit config`). Optional `--with-dark` derives OKLCH-L-bumped dark variants. Single source of truth: the CSV.
+ Each brick is a pip package, and these are the commands it installs. The
+ section used to list file paths inside each skill folder, which is where this
+ code lived before every brick moved to its own repository and its own release
+ line — nineteen of the links in this file pointed at files the bundle
+ no longer contains. A command is the part that stays put.
+ - `sprezzature` — the driver. One `--help` over the six wired skills; every
+ sub-command shells out to one of the commands below.
+ - `python scripts/validate_content.py` — pre-ship quality gate, stdlib only.
+ Checked out, not installed: it validates a skill folder *in this
+ repository*, so there is nothing to ship.
+ - `sprezzature-publish-icons` — favicon / PWA / Apple-touch / maskable icon
+ set + manifest + head snippet.
+ - `sprezzature-publish-meta` — drafts page meta tags from a goal or an HTML
+ page.
+ - `sprezzature-publish-indexes` — robots, sitemap, llms.txt, feed, humans.
+ - `sprezzature-publish-plain` — rewrites UI copy at a target reading grade.
+ - `sprezzature-publish-lint` / `-html` — Markdown lint, and Markdown → HTML
+ with local Mermaid and KaTeX.
+ - `sprezzature-publish-narrate` / `-readalong` — MP3 narration of a page, and
+ the WebVTT that highlights it as it plays.
+ - `sprezzature-accessibility-lint` — twenty-rule static a11y lint.
+ - `make-alt` / `sprezzature-accessibility-alt` — W3C alt text via local Ollama
+ vision (`qwen3-vl:8b`), argparse and Click front doors on one table.
+ - `sprezzature-accessibility-install-alt` — installs Ollama, pulls the model.
+ - `sprezzature-colors-contrast` — WCAG contrast audit + OKLCH fix suggester.
+ - `sprezzature-colors-cvd` — CVD image transforms.
+ - `sprezzature-colors-levels` — the six accessibility levels every figure
+ generator in the suite accepts.
+ - `sprezzature-colors-palette-to-tailwind` — renders the curated palette CSV
+ as a Tailwind `theme.extend.colors` block (default) or a full
+ `tailwind.config.js` (`--emit config`). `--with-dark` derives OKLCH-L-bumped
+ dark variants. Single source of truth: the CSV.
+ - `sprezzature-audio-captions` / `-install` — WebVTT / SRT captions via a
+ local whisper.cpp build, and the installer for it.
+ - `sprezzature-audio-narrate-kokoro` / `-voice` — narration, and the voice
+ comparison that picks one.
+ - `sprezzature-ux-laws-audit` — static auditor for the canonical Laws of UX.
+ Stdlib only; HTML-aware findings via JSON or stdout; exit codes for
+ pre-commit and CI; `--only` / `--ignore` / `--strict`.
+ - `make-figure <kind>` / `sprezzature-figures` — any of the 167 chart kinds.
+ - `make-map <kind>` / `sprezzature-maps` — choropleth, situation plate,
+ accumulation map.
+ - `sprezzature-cli-gui` — wrap a CLI in a single-page GUI.
+ - `sprezzature-ui-i18n-audit` / `-i18n-make` — i18n audit, and the
+ `locales/i18n.yaml` scaffold with its JS loader.
+ - `python -m sprezzature_figures_scripts.ralph_eyeball_loop` — the Ralph
+ Eyeball Loop. Repo-internal by design, so it has no registered command.
+
+ Every brick also installs a `*-mcp` server and an HTTP API; see each
+ SKILL.md.
+
## Assets
- - [sprezzature-ui/assets/starter-page.html](sprezzature-ui/assets/starter-page.html): Single-file page bootstrap (Montserrat + Tailwind + tokens).
+ - [sprezzature-ui/assets/starter-page.html](sprezzature-ui/assets/starter-page.html): Single-file page bootstrap (three Roboto + Tailwind + tokens).
- [sprezzature-ui/assets/components/](sprezzature-ui/assets/components/): Copy-paste HTML snippets + hand-authored SVG charts.
- - [sprezzature-ui/assets/fonts/montserrat/](sprezzature-ui/assets/fonts/montserrat/): Montserrat WOFF2 + `OFL.txt` + `fonts.css`.
+ - [sprezzature-ui/assets/snippets/](sprezzature-ui/assets/snippets/): Law-keyed snippet catalogue — one file per mechanically-implementable Law of UX.
+ - [sprezzature-ui/assets/fonts/](sprezzature-ui/assets/fonts/): The three Roboto — `roboto`, `roboto-serif`, `roboto-mono` — WOFF2 + `OFL.txt` + `fonts.css`. Montserrat stood here until the three-Roboto rule replaced it.
- [sprezzature-cli-gui/assets/examples/cli-gui-demo/](sprezzature-cli-gui/assets/examples/cli-gui-demo/): Runnable CLI → GUI worked example.
## Optional
- [README.md](README.md): Human-facing English README with the "Inputs → outputs" table and the audience definition.
- - [LISEZMOI.md](LISEZMOI.md): Human-facing French README (legacy — pending 0.2.0 parity update).
+ - [LISEZMOI.md](LISEZMOI.md): Human-facing French README, kept at parity with README.md.
- [LANDSCAPE.md](LANDSCAPE.md): Comparison matrices vs alternatives.
- - [CHANGELOG.md](CHANGELOG.md): Release notes (0.2.0 = the four-skill split).
+ - [CHANGELOG.md](CHANGELOG.md): Release notes, back to the four-skill split at 0.2.0.
- [CONTRIBUTING.md](CONTRIBUTING.md): How to propose changes.
- [LICENSE.md](LICENSE.md): BSD-3-Clause + Roboto OFL carve-out.