mirror of
https://github.com/ivuorinen/everforest-resources.git
synced 2026-01-26 03:04:02 +00:00
- install.sh now installs all variants when run without parameters - preserve single-variant mode when --variant is specified - add variant names to generated file headers for clarity - fix tool name extraction to preserve compound names like git-delta - fix CSS variable preservation during header generation
106 lines
4.1 KiB
Markdown
106 lines
4.1 KiB
Markdown
Implementation Checklist — Everforest Resources
|
||
|
||
Ordered steps to bring the repository from empty → working, following the Full Consolidated Spec. All steps MUST be executed in this order unless noted. LLM AGENTS SHALL NOT DEVIATE FROM THE THEME SPEC.
|
||
|
||
⸻
|
||
|
||
0) Initialize repository
|
||
|
||
git init
|
||
git remote add origin git@github.com:ivuorinen/everforest-resources.git
|
||
|
||
1) Scaffold files & structure
|
||
|
||
- Create file tree exactly as specified in “Everforest Resources — File Tree”.
|
||
- Add empty placeholder files where content will be generated (e.g., terminals/*, editors/*, cli/*, web/css/everforest.css).
|
||
- Create template.txt files in each CLI tool directory with color placeholders (e.g., {{bg}}, {{fg}}, {{red}}).
|
||
|
||
2) package.json & tooling
|
||
|
||
- Add npm scripts: generate, validate, ci, snapshots, prepare.
|
||
- Add devDependencies: husky, @commitlint/config-conventional, @playwright/test.
|
||
- Add commitlint.config.js.
|
||
- Run: npm i && npm run prepare (installs Husky).
|
||
|
||
3) GitHub setup
|
||
|
||
- Add .github/workflows: build.yml, snapshots.yml, commitlint.yml, cli-verify.yml.
|
||
- Add .github/CODEOWNERS with @ivuorinen.
|
||
- In repo settings: enable branch protection → require all four checks.
|
||
|
||
4) Generator core (scripts/generate-themes.mjs)
|
||
|
||
- Implement palette loader (JSON/YAML).
|
||
- Implement template system: read template.txt files and replace color placeholders with palette values.
|
||
- Implement writers for terminals: WezTerm, Alacritty, Kitty, Windows Terminal, Ghostty.
|
||
- Implement web CSS writer (media queries + forced themes + contrast attributes).
|
||
- Implement CLI template processors for: ls_colors, dircolors, eza/exa, ripgrep, fzf, delta, bat, htop, starship, zsh (pure/p10k), fish (colors + prompts), tmux, btop, bottom, glances, neofetch, ranger, lf, mc, lazygit, gitui, tig, fd, jq, less, zoxide, atuin.
|
||
- Implement editors: Neovim minimal with options, VS Code 6 variants + package.json, Zed, Sublime Text.
|
||
- Implement JetBrains .icls generator (save for last due to complexity).
|
||
- Ensure all writers are called in main() and produce all six variants where applicable.
|
||
|
||
5) No-raw-hex guard & pre-commit
|
||
|
||
- Add scripts/no-raw-hex.mjs (block hex outside palettes, terminals, web/css).
|
||
- Add .husky/pre-commit to run: no-raw-hex → generate → validate.
|
||
- Add .husky/commit-msg to run commitlint.
|
||
|
||
6) Web demo & snapshots
|
||
|
||
- Create web/demo with index.html (variant/contrast switcher), style.css, demo.js.
|
||
- Add Playwright test web/demo/snapshot.spec.js.
|
||
- Verify: npm run snapshots → artifacts.
|
||
|
||
7) Installer & verifier
|
||
|
||
- Add main install.sh (symlink/copy all configs; load dircolors; use `./install.sh cli` for CLI-only).
|
||
- Add verify/verify.sh (build Debian container; check tools; fish sourcing).
|
||
- Integrate cli-verify job in CI (temp HOME, installer, then verifier).
|
||
|
||
8) Documentation
|
||
|
||
- README.md: TL;DR, Required checks (merge gating), terminal/web/CLI/editor usage summaries.
|
||
- CONTRIBUTING.md: rules, workflow, PR checklist, Conventional Commits.
|
||
- docs/CLI.md: one‑pager; ensure all examples use **indented code blocks**.
|
||
- Enforce documentation rule: no triple backticks; only indented code blocks.
|
||
|
||
9) Palette population
|
||
|
||
- Add palettes/everforest.json (and/or .yaml) with canonical values.
|
||
- Validate: npm run generate produces deterministic outputs.
|
||
|
||
10) Local validation
|
||
|
||
- Run: npm run generate
|
||
- Run: npm run validate
|
||
- Run: make snapshots (or npm run snapshots)
|
||
- Run: ./install.sh cli then ENGINE=docker ./verify/verify.sh
|
||
|
||
11) First commit & PR
|
||
|
||
git add -A
|
||
git commit -m "feat: initial scaffold and generator"
|
||
git push -u origin main
|
||
- Open PR (if using a dev branch) → ensure all checks pass.
|
||
|
||
12) Post-merge tasks
|
||
|
||
- Tag v0.1.0
|
||
- (Optional) Build VS Code VSIX (vsce) and attach to release.
|
||
- Announce repository as the canonical Everforest resource hub.
|
||
|
||
|
||
⸻
|
||
|
||
Ongoing maintenance
|
||
|
||
- Palette-only changes → regenerate → validate → commit.
|
||
- Add new targets by extending the generator (never hand-edit outputs).
|
||
- Keep docs and CI in lockstep with generator capabilities.
|
||
|
||
Non-negotiable rules
|
||
|
||
- Indented code blocks only in docs (no triple backticks).
|
||
- No raw hex in CLI configs; GUI hex only from generator.
|
||
- LLM AGENTS SHALL NOT DEVIATE FROM THE THEME SPEC.
|