Files
everforest-resources/meta/implementation-steps.md
Ismo Vuorinen 11baabe545 feat: initial scaffold and generator
- Complete project structure with directories for all target platforms
- Template system for CLI tools with color placeholder replacement
- Working generator that processes templates for 6 theme variants
- GitHub workflows for build, snapshots, commitlint, and cli-verify
- Installer and verifier scripts for CLI tool deployment
- Comprehensive documentation and specifications
- Biome 2.x linting and formatting setup
- Husky git hooks for pre-commit validation
2025-09-05 23:06:12 +03:00

106 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 cli/install.sh (symlink/copy all configs; load dircolors).
- 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: onepager; 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: ./cli/install.sh 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.