Both bootstraps run the script with pwsh -File, which passes "dotnet,java" as a
single string, so the documented example failed validation. Languages are now
split on commas and validated after splitting. Found by running the setup for
real on Windows 11.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
Both alter behavior in every repository on the machine, including ones that
are not KofTwentyTwo's (autocrlf=false would show CRLF working trees as modified
in repositories without .gitattributes). Line endings are governed per
repository by .gitattributes (K22-REPO-03).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
- setup/bootstrap.ps1 (Windows) and setup/bootstrap.sh (macOS/Linux) install
PowerShell 7 (and Homebrew) and run setup/Install-Workstation.ps1.
- Install-Workstation.ps1: installs the core tools and optional language
toolchains (winget/brew), configures git to sign commits and tags through
1Password's op-ssh-sign (Store and direct installs), points ssh at the
1Password agent, optionally registers the signing key on GitHub, and checks
the security baseline. Idempotent; supports -WhatIf and -CheckOnly.
- standards/workstation.md (K22-WS-*): tools, keys created and used only in
1Password, op run for secrets, machine baseline.
- Security program names 1Password as the password manager and SSH agent and
forbids private key files (K22-SEC-10, K22-SEC-14).
- README: machine setup is now the one-liners plus options.
Verified on Windows 11: -CheckOnly and -WhatIf runs; PSScriptAnalyzer (repo
settings) 0 findings and Invoke-Formatter no changes; ShellCheck --enable=all
and shfmt clean on bootstrap.sh.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>