CodeNomad/dev-docs/PALETTE_SOURCES.md
Pascal André 7a1fc90310
docs(agents): keep AGENTS.md to universal rules and agent docs to the current state (#1082)
AGENTS.md loaded about 33,000 tokens into every agent session, subagent and reviewer, mostly per-feature contracts, and the agent documentation around it had accumulated duplicates, dated logs and history of removed designs. This PR makes AGENTS.md a short set of rules that apply everywhere plus an index of area documents, and leaves AGENTS.md, dev-docs and the repository skills describing only the current state.

Three commits, reviewable separately:

1. **Move (lossless).** Every per-area rule moved verbatim from AGENTS.md into its area document (existing ones, or six new ones: UI_CONVENTIONS, UI_SHELL, COMPOSER, TRANSCRIPT, SETTINGS, PROJECTS). A script split the old file into 208 units, required one destination for each and checked all 199 content units verbatim at their destination. AGENTS.md went from 134,000 to 16,000 characters.
2. **Trim.** A per-area ponytail review removed rules stated two or three times (keeping the more precise copy), dated validation logs, per-version qualification sections below the current minimum, abandoned designs and self-references; seven documents whose surviving rules live elsewhere were deleted. It also fixed statements the code contradicts (locale registration, the Mission play/recovery condition, plugin package updates, cleanup progress UI, timeline index persistence, automation restart/targets, stale pins and minimums).
3. **Current state only.** The new AGENTS.md rule: no history (removed features and their names, former behavior, provenance, dated logs) and no denials; correct a contradicted statement at its source. DEVELOPER_MODE.md is merged into BROWSER_AUTOMATION.md and every Developer Mode mention is gone (including the README and the browser help page in ten locales). Names that only made sense against older designs are renamed with every reference updated, MISSIONS_ENVIRONMENT_ADMISSION is folded into SESSION_ENVIRONMENT, and INDEX lists every document. The server npm README now states the real OpenCode minimum (2.1.2).

AGENTS.md is now about 14,000 characters (roughly 3,500 tokens); AGENTS.md, dev-docs and the vendor README went from about 11,200 lines to under 4,700.

Validation: every relative Markdown link and every cited dev-docs path resolves; no reference to a renamed or deleted document remains; `npm run test:help` passes for all ten locales.

Review: three independent GPT-6.1 Sol (high) reviews by area found binding rules lost in the trim and current-state passes; 25 were restored as present-tense facts or prohibitions and four contradicting statements corrected, each checked against code. A Fable 5.1 gatekeeper review of the whole PR passed; its follow-up routes session recovery from the index, points to dev-docs/INDEX.md and documents the family identity read.
2026-10-21 16:59:43 +02:00

4.4 KiB

Soft palette sources and adaptation

CodeNomad's soft collection adapts the referenced editor themes' surface relationships under its own localized names and semantic roles; it ships only CodeNomad color values in soft-color-schemes.ts. The picker is flat and filters by fixed mode; Auto exposes both slots for editing.

CodeNomad family Light ID Dark ID Visual reference
Mist / Brume porcelain mist Zed One Light / One Dark
Slate / Ardoise dawn slate Zed Ayu Light / Ayu Mirage
Clay / Argile parchment clay Zed Gruvbox, soft earth-gray surfaces
Linen / Lin linen — Solarized's paper/gray-green relationship
Iris iris — Catppuccin Latte's lavender-gray structure
Sage / Sauge sage-light sage Everforest Soft's gray-green structure

The first three light IDs stay stable so saved selections and overrides remain addressable. Classic (with its canvas/panel/tool relationship), Basalt, Fjord, Lichen, Velvet and Ember keep their declared surface colors. Custom colors are never silently recolored.

The soft light canvases are darker than the original editor whites. Dark canvases use mid-dark grays instead of near-black. Text is adjusted for at least 4.5:1 on base, panel, tool and user-message surfaces; participant colors are checked at full opacity for at least 3:1. These thresholds apply at full opacity; decorative resting icons keep their partial opacity.

Reference revisions

  • Zed One, Ayu and Gruvbox: zed-industries/zed commit 6f73c7d0a4aae8e32afb5d01b0fcb89e5e3642ff, under assets/themes/.
  • Catppuccin for Zed.
  • Everforest for Zed.
  • Original Solarized, MIT licensed. The GPL Zed Solarized extension was inspected as a visual reference only; none of its code, JSON or color values is included in Linen's definition.

Theme attribution and MIT notices

The following MIT-licensed references informed the adaptation. Copyright notices are retained here; the common permission and warranty text below applies to each reference independently.

  • One: Copyright (c) 2014 GitHub Inc.
  • Ayu: Copyright (c) 2016 Ike Ku
  • Catppuccin: Copyright (c) 2021 Catppuccin
  • Everforest Zed port: Copyright (c) 2025 Albert Skonieczny
  • Solarized: Copyright (c) 2011 Ethan Schoonover
  • Zed's Gruvbox LICENSE contains the literal placeholder notice: Copyright (c) <YEAR> <COPYRIGHT HOLDER>.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Agent conventions

  • Soft palette families live in packages/ui/src/lib/soft-color-schemes.ts. Participant identity colors are shared within each appearance; selection uses a neutral surface tint, never a participant color; transcript/composer surfaces stay distinct. Run palette-quality.test.ts and inspect real rendered captures when changing palette colors or their token mapping.
  • Palette settings follow the resolved appearance in Auto mode. Keep the picker, square swatches and trailing actions on one line while they fit at their natural width, measured by settings/palette-strip-fit.ts rather than a breakpoint because the actions change with edits; otherwise the swatch strip moves below the picker and its actions (data-stacked) and wraps onto further lines instead of scrolling. Swatch names use tooltips and accessible input labels. Swatch styles live in styles/components/theme-scheme-swatches.css.