<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/docs/theme-studio-palette-ramps-spec.org, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-06-10T04:43:44+00:00</updated>
<entry>
<title>docs(theme-studio): record the palette-ramps spec Ready verification</title>
<updated>2026-06-10T04:43:44+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-10T04:43:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=4211f625534d87a263d2d6b3dbe5ff5bc4093720'/>
<id>urn:sha1:4211f625534d87a263d2d6b3dbe5ff5bc4093720</id>
<content type='text'>
Codex re-reviewed the updated palette-ramps spec and confirmed it implementation-ready; the history gets a Ready-verification entry and the metadata table is realigned. The spec was already built and shipped, so this just closes its review trail.
</content>
</entry>
<entry>
<title>docs(theme-studio): fold Codex review into palette-ramps spec</title>
<updated>2026-06-09T22:55:44+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-09T22:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=d6e0fc2a7e499c81e56f4fff0455033567cd966a'/>
<id>urn:sha1:d6e0fc2a7e499c81e56f4fff0455033567cd966a</id>
<content type='text'>
Resolved both open decisions. The contrast target is WCAG AA by default, with AAA selectable and APCA shown as a diagnostic only. The v1 foreground set is the distinct syntax-assignment hexes plus the default foreground, with locked background-only roles excluded.

Pinned what the review flagged as underspecified: a closed five-face covered set (region, hl-line, highlight, lazy-highlight, isearch), ramp defaults and palette-insertion rules (n/stepL/chromaEase, naming, collisions, clamp display), and explicit-state structured-error contracts for ramp, fgSetFor, floor, and lMax. Package and non-overlay UI cells stay single-pair in v1.

Closed the v1 face set rather than keeping the review's open-ended "any face the buffer renders text over" clause, since an open set reintroduces the gap the foreground-set decision exists to close. Kept throwing for genuine programmer error while returning structured results for bad user input, matching colormath.js.

The spec is implementation-ready. The six implementation tasks get created once Craig confirms the go. Review file consumed and deleted.
</content>
</entry>
<entry>
<title>docs(theme-studio): spec palette ramp generation + background-contrast safety</title>
<updated>2026-06-09T22:22:35+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-09T22:22:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=e6029906a1e38776d9a25900437944f8a2b1b60c'/>
<id>urn:sha1:e6029906a1e38776d9a25900437944f8a2b1b60c</id>
<content type='text'>
Design doc (spec-create workflow) for two coupled v1 features: generating a harmonized tonal ramp from a base color, and a worst-case-contrast readout that caps a background tint at the lightness where every foreground on it stays readable. Cross-linked from the color-harmony task; harmonic fill deferred to vNext.
</content>
</entry>
</feed>
