Imported from verlyn13/system-setup-wsl (
AGENTS.md). Install upstream withnpx skills add verlyn13/system-setup-wsl. Copyright stays with the author.
Repository Guidelines
Project Structure & Module Organization
bootstrap/: Ordered Bash scripts (00_..→90_..) to provision Fedora WSL. Run all or any step directly.dotfiles/: Chezmoi templates for shell, git, editor configs.templates/: Starters forpython/(uv + pytest) andnode/(pnpm + Biome).manifests/: Package lists (e.g.,dnf.txt).editors/: Editor settings (e.g., VS Code).ai/: Global agent config and instructions.docs/: Setup and verification notes.
Build, Test, and Development Commands
- Run full bootstrap:
./bootstrap/all.sh - Run a single step:
bash bootstrap/30_lang.sh - Verify setup: follow
docs/SETUP.mdchecklist. - Python template tests:
uv run pytest -qinside a project scaffolded fromtemplates/python/. - Node template checks:
pnpm lint·pnpm fmt·pnpm checkinsidetemplates/node/projects.
Coding Style & Naming Conventions
- EditorConfig: LF endings, final newline; Python 4‑space; JS/TS/JSON/YAML/MD 2‑space. See
.editorconfig. - Bash scripts:
#!/usr/bin/env bashandset -euo pipefail; name filesNN_name.shto preserve order. - Shell style: prefer small functions,
localvariables, and explicitbashinvocation. - Node templates: use Biome for format/lint (
pnpm fmt,pnpm lint).
Testing Guidelines
- Scripts must be idempotent; safe to re‑run
./bootstrap/all.sh. - Validate on Fedora WSL per
docs/SETUP.md(tool versions, editor integration, aliases). - Python: place tests under
tests/withtest_*.py; run viauv run pytest. - Node: keep checks green with
pnpm check; add unit tests per app framework when scaffolding.
Commit & Pull Request Guidelines
- Commits: imperative subject, <=72 chars. Use scopes like
bootstrap:,dotfiles:,templates:,docs:,ai:,manifests:. - PRs: clear description, linked issues, affected areas, validation steps (commands/logs), and any screenshots for editor changes.
- Ensure bootstrap and template checks pass locally before requesting review.
Security & Configuration Tips
- Do not commit secrets. Use
gopassanddirenvfor local secrets/env. - Keep code inside WSL paths (e.g.,
~/Projects) for performance and consistent line endings. - Adjust
manifests/dnf.txtas needed; rerun the specific bootstrap step to apply.