Release plan
Decisions and next steps live here.
",
"css": ".ds-document{max-width:43.75rem;padding:2rem;border-radius:var(--radius-xl);background:var(--color-page);box-shadow:var(--shadow-raised);color:var(--color-text-primary);font:var(--text-base)/1.6 var(--font-sans)}.ds-document h2{margin:0 0 1rem;font-size:var(--text-xl);line-height:var(--text-xl--line-height)}.ds-document p{margin:0}"
}
],
"narrative": {
"northStar": "A Working Document",
"overview": "Chopin feels calm, precise, and collaborative. The authored document is the visual center; navigation, conversation, and controls support the work without competing with it. The interface is compact enough for sustained use and gives long-form prose room to breathe.",
"keyCharacteristics": [
"A white document surface sits on a warm olive ground.",
"Petrol marks actions, links, focus, and presence; semantic colors identify outcomes.",
"Controls are quiet, legible, and purposeful. Depth gives layers subtle separation."
],
"rules": [
{
"name": "The Contrast Hierarchy Rule",
"body": "Prefer AA contrast for primary content and controls, but do not treat it as a universal requirement for every text role. Preserve the approved visual hierarchy: timestamps and secondary conversation metadata use their original quiet roles; supplementary audit-page labels (source paths, specimen state, usage notes, type-scale metadata, icon names and section summaries) keep their original quaternary role; queued messages and loading/tool status keep their original muted roles and opacity; code and diff previews retain the original pierre-light palette and selection treatment. These are deliberate visual exceptions, alongside the original destructive button red. Do not darken these roles automatically to satisfy a contrast audit. Record measured findings honestly and keep exceptions scoped to the approved roles and states; new exceptions require a deliberate design decision. Token use, the fluid type scale, keyboard access, focus, and layout checks remain enforced.",
"section": "colors"
},
{
"name": "The One Accent Rule",
"body": "New action and focus treatments use the established petrol roles. New raw color values require a change to the shared theme, not a local copy.",
"section": "colors"
},
{
"name": "The Fluid Type Rule",
"body": "Use a named text utility or `--text-*` token for every font size. The CI type-scale check rejects raw CSS font sizes, arbitrary Tailwind font sizes, and literal inline font sizes. Add a role in the shared theme and update its modular-scale test when the existing roles cannot serve the need. Inline code inherits the size of surrounding prose or a heading.",
"section": "typography"
}
],
"dos": [
"**Do** use shared color, type, radius, spacing, shadow, and motion tokens when extending the interface.",
"**Do** use the established semantic color pairs for status and feedback.",
"**Do** check new controls in the development design audit alongside their default, focus, disabled, and error states."
],
"donts": [
"**Don't** introduce a raw color, font size, or radius in a component when an established token serves that role.",
"**Don't** create a second local definition of a shared token or shadow treatment."
]
}
}