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
This commit is contained in:
2025-09-05 23:06:12 +03:00
commit 11baabe545
53 changed files with 2890 additions and 0 deletions

View File

@@ -0,0 +1,141 @@
# Task Completion Checklist - Everforest Resources
## When a Development Task is Completed
### 1. Code Quality Checks
```bash
# Lint and format code first
npm run lint:fix # Auto-fix any linting issues
npm run format # Ensure consistent formatting
# Generate themes from updated templates/palettes
npm run generate
# Validate all outputs
npm run validate
# Check for any errors or warnings
# All validation must pass before proceeding
```
### 2. Testing Requirements
```bash
# Run Playwright snapshots (for web changes)
npm run snapshots
# Full CI pipeline (includes linting)
npm run ci
# Verify no errors in any step
```
### 3. File Verification
- **Never commit generated files without running generator**
- **Always commit palette + template + generated files together**
- Check that all 6 variants are generated (dark/light × hard/medium/soft)
- Ensure code passes Biome linting and formatting
### 4. Documentation Updates
- Update relevant README or docs if adding new tools
- Ensure all examples use indented code blocks (4 spaces)
- Never use triple backticks in documentation
- Run `npm run format` to ensure consistent formatting
### 5. Git Workflow
```bash
# Check status
git status
# Lint and format before committing
npm run lint:fix
npm run format
# Stage all changes (palette + template + generated)
git add -A
# Commit with conventional format
git commit -m "feat: add new CLI tool theme"
# or
git commit -m "fix: correct color mapping in starship"
# or
git commit -m "docs: update installation guide"
# Push changes
git push
```
### 6. CI/CD Requirements
All these checks must pass in CI before merge:
-**lint**: Biome linting and formatting checks
-**build**: Generator + validation
-**snapshots**: Playwright demo renders
-**commitlint**: Conventional Commits enforcement
-**cli-verify**: Install + verify generated configs
### 7. Critical Rules Verification
- [ ] Code passes Biome linting (no errors)
- [ ] Code is properly formatted with Biome
- [ ] No raw hex values in CLI configs (ANSI only)
- [ ] All generated files come from templates/palettes
- [ ] No manual edits to generated files
- [ ] Template placeholders used correctly
- [ ] All 6 theme variants present where applicable
### 8. Special Considerations
#### For New CLI Tools
- Create `template.txt` with proper placeholders
- Add to generator processing logic
- Update installer script
- Add to verifier container
- Document in appropriate README
- Ensure any new JS/MJS files follow Biome style
#### For Palette Changes
- Regenerate ALL theme files
- Verify no breaking changes in output formats
- Test web demo still renders correctly
- Check that ANSI mappings remain valid
#### For Template Updates
- Test with all 6 variants
- Verify placeholder replacement works
- Check output format matches tool expectations
#### For JavaScript/Code Changes
- Run `npm run lint:fix` to auto-fix issues
- Run `npm run format` for consistent formatting
- Ensure imports are organized correctly
- Follow established naming conventions
### 9. Before Pushing
```bash
# Final verification with full CI
npm run ci
# If all passes, ready to push
git push origin main
```
## Emergency Fixes
If CI fails after push:
1. Check error logs in GitHub Actions
2. For linting errors: `npm run lint:fix` locally
3. For generation errors: `rm -rf generated/ && npm run generate`
4. Fix locally with proper workflow above
5. Push fix immediately
## Biome-Specific Troubleshooting
```bash
# Check what Biome would fix
npm run lint
# Auto-fix all fixable issues
npm run lint:fix
# Format all files
npm run format
# Check specific file
biome check scripts/generate-themes.mjs
```