Spec: a retained fill can be unreadable, and that is correct
Recording a finding that otherwise lives only in rastrillo's spec and in a cross-session conversation — which is the trigger-with-no-home failure this project has already been bitten by twice. Retaining an imported fill's original hex means we also carry the author's font colour, and the pair may fail WCAG AA. Excel's own light-yellow conditional-formatting preset ships #9C6500 on #FFEB9C at 4.12:1, confirmed against an independent source — so it is what the incumbent offers by default, not merely what a careless user can build. We render it as authored, because faithfully displaying someone else's document is a different act from generating a colour, and silently correcting imported formatting would lie about the file. The point of writing it down is the scope: our offered set cannot produce an unreadable pairing, but a cell in this app can be one when the file said so. Read as the broader claim, someone finds a failing cell and files a bug against a guarantee working exactly as specified. The obligation that follows is surfacing rather than overriding, which is grid work and belongs to plan 2.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01APtNStXDZ5H2fAc1ZuGqtS
1 file changed,
+30
−0
docs/superpowers/specs/2026-08-30-sheets-design.md+30 −0
CI passed — run details
Intent
diff --git a/docs/superpowers/specs/2026-08-30-sheets-design.md b/docs/superpowers/specs/2026-08-30-sheets-design.md| index 6f5f234..4f2cd24 100644 |
| --- a/docs/superpowers/specs/2026-08-30-sheets-design.md |
| +++ b/docs/superpowers/specs/2026-08-30-sheets-design.md |
| @@ -861,6 +861,35 @@ error text carries coordinates and codes, never content (§2.4).** |
| Uploaded and generated files go to `blobs.Sealed` with |
| `ContentType: application/octet-stream` (§2.3). |
| +### 11.1 A retained fill can be unreadable, and that is correct |
| + |
| +Retaining an imported fill's original hex (§10.3) means we also carry the |
| +author's font colour, and the pair may fail WCAG AA. This is not |
| +hypothetical: Excel's own light-yellow conditional-formatting preset ships |
| +`#9C6500` on `#FFEB9C` — **4.12:1, below the 4.5:1 floor** — confirmed |
| +against an independent source, so it is what the incumbent *offers by |
| +default*, not merely what a careless user can construct. |
| + |
| +**We render it as authored.** Faithfully displaying a document somebody else |
| +wrote is a different act from generating a colour, and silently correcting |
| +imported formatting would lie about the file — the same class of wrong as |
| +inventing a font colour on export (§10.3). |
| + |
| +**So the guarantee is narrower than it reads.** Our offered set cannot |
| +*produce* an unreadable pairing; a cell in this app can nonetheless *be* |
| +one, when the file said so. Anyone reading the first claim as the second |
| +will eventually find a failing cell and file a bug against a guarantee that |
| +is working exactly as specified. |
| + |
| +**The obligation that follows is surfacing, not overriding** — telling a |
| +person their imported file contains a pairing that fails, and leaving the |
| +decision to them. That is grid work and belongs to plan 2 (§14). |
| + |
| +*(Found 2026-08-31 by ui-guidelines-52 while building rastrillo's colour |
| +engine, from Excel's documented preset fill/ink pairs. Related: `#0000FF` |
| +carries black ink at 2.44:1 and cannot be a wash at all — the case where a |
| +user's chosen hue and their ink genuinely conflict.)* |
| + |
| --- |
| ## 12. Testing gates |
| @@ -980,6 +1009,7 @@ it is a fallback rather than a scramble. |
| | `client` shape for anything but the grid | A surface genuinely needs client-held keys | |
| | Print / PDF export | Asked for. docs-e6 keeps its layout engine's page model generic over content boxes so this stays open: paginated grid, repeating header rows, scale-to-width, explicit page breaks, charts as vector | |
| | Live sheet range embedded in a doc | A known future crossing of two collaboration models | |
| +| **Surfacing an imported fill/ink pairing that fails WCAG AA** | The grid renders imported formatting. Trigger: plan 2's grid work — see §11.1 | |
| --- |