This guide covers Windows host setup for this repository. It intentionally avoids machine-specific inventory and historical logs.
For project install/run instructions, use README.md.
For Linux-side setup in WSL, use docs/linux-dev-environment-setup.md.
Use this guide to:
- create a Windows Dev Drive layout for source code and caches
- install required Windows tooling
- configure optional WSL integration
- verify a clean, reproducible setup
| Requirement | Minimum |
|---|---|
| OS | Windows 11 (Dev Drive supported builds) |
| Disk free space | 50 GB+ |
| RAM | 8 GB+ |
| PowerShell | Available in user + admin shells |
References:
- Dev Drive docs: https://learn.microsoft.com/en-us/windows/dev-drive/
- WSL docs: https://learn.microsoft.com/en-us/windows/wsl/install
- Winget docs: https://learn.microsoft.com/en-us/windows/package-manager/winget/
Use one canonical layout:
C:\-> OS and installed toolsD:\dev\-> repositoriesD:\packages\-> package caches~/devin WSL -> Linux-native repos
Principles:
- Keep repos on the filesystem where their tools run most often.
- Avoid heavy I/O across
/mnt/cand\\wsl$. - Prefer short root paths to reduce long-path friction.
- Open Windows Settings and create a Dev Drive.
- Assign drive letter
D:and labelDevDrive. - Create directories:
mkdir D:\dev
mkdir D:\packages\npm
mkdir D:\packages\pip- Optional scripted setup:
powershell -NoProfile -File scripts\setup\setup-dev-drive.ps1- Verify:
fsutil devdrv query D:Install base tools with winget:
winget install --id Git.Git --exact
winget install --id OpenJS.NodeJS.LTS --exact
winget install --id Microsoft.VisualStudioCode --exact
winget install --id GitHub.cli --exact
winget install --id JohnMacFarlane.Pandoc --exact
winget install --id Typst.Typst --exact
winget install --id koalaman.shellcheck --exactInstall CLI tools via npm:
npm install -g vercel
npm install -g @anthropic-ai/claude-codeOr use the idempotent script:
powershell -NoProfile -File scripts\setup\install-dev-tools.ps1git config --global core.autocrlf true
git config --global core.longpaths true
git config --global init.defaultBranch main
git config --global pull.rebase false
git config --global push.autoSetupRemote trueInstall from desktop.github.com or via winget:
winget install --id GitHub.GitHubDesktop --exactGitHub Desktop uses its own bundled Git (MINGW bash) which does not have access to WSL-installed Node.js or npx. The project's husky pre-commit hook handles this automatically — when npx is not available, the hook delegates to WSL via wsl.exe, converting the UNC path to a WSL-native path.
No additional configuration is needed for GitHub Desktop to work with pre-commit hooks on this project.
VS Code's built-in Git also uses the Windows Git installation. The same WSL delegation in the pre-commit hook applies here. Ensure Git for Windows is installed (§5) and the repo is opened via the WSL filesystem path (\\wsl.localhost\Ubuntu\...).
If using Claude Code sandboxing or Linux-native workflows:
wsl --install -d Ubuntu
wsl --update
wsl --shutdownThen in WSL:
mkdir -p ~/devContinue in docs/linux-dev-environment-setup.md.
Set npm and pip caches to Dev Drive:
setx npm_config_cache D:\packages\npm
setx PIP_CACHE_DIR D:\packages\pipRestart terminal sessions after setx.
git clone https://github.com/praeducer/paulprae-com.git D:\dev\paulprae-com
cd D:\dev\paulprae-com
npm installThen follow README.md for .env.local, data inputs, and pipeline commands.
Run and confirm:
node --version
npm --version
git --version
gh --version
pandoc --version
typst --version
shellcheck --versionFrom repo root:
npm run lint
npm run format:check
npm testgit config --global core.longpaths trueEnable long paths in Windows if still needed (admin shell).
fsutil devdrv trust D:
fsutil devdrv query D:- Restart shell sessions.
- Ensure expected binaries resolve first in PATH.
- If also using WSL, keep Windows and WSL installs separate and explicit.
The husky pre-commit hook automatically delegates to WSL when npx is not found. If it still fails:
- Verify WSL is running:
wsl --status - Verify Node.js in WSL:
wsl bash -lc "node --version" - Ensure the repo was cloned on the WSL filesystem (
\\wsl.localhost\Ubuntu\...), notC:\ - Run the setup script in WSL to create the husky init file:
This creates
bash scripts/setup/install-pipeline-deps.sh
~/.config/husky/init.shwhich adds nvm-managed Node.js to PATH using POSIX-safe detection (required because husky runs hooks viash/dash, notbash).
Keep active project on its native filesystem (Windows tools on D:\dev, Linux tools in ~/dev).