feat(setup): one-command workstation setup with keys in 1Password #2

Merged
KofTwentyTwo merged 3 commits from feat/workstation-setup into main 2026-10-09 19:35:33 +00:00
3 Commits
Author SHA1 Message Date
james.maesandClaude Opus 5.5 b90a83fae5 fix(setup): accept comma-separated -Languages from pwsh -File
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>
2026-10-09 14:33:48 -05:00
james.maesandClaude Opus 5.5 8dc117a85e fix(setup): never change global autocrlf or pull.rebase
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>
2026-10-09 14:33:47 -05:00
james.maesandClaude Opus 5.5 176f181074 feat(setup): one-command workstation setup with keys in 1Password
- 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>
2026-10-09 14:33:47 -05:00