@sebastienrousseau/dotfiles 0.2.504 → 0.2.505

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +4 -4
  3. package/docs/COPYRIGHT +1 -1
  4. package/docs/index.md +2 -2
  5. package/docs/interop/A2A.md +2 -2
  6. package/docs/manual/00-introduction.md +1 -1
  7. package/docs/manual/02-tutorials/01-first-install.md +1 -1
  8. package/docs/operations/RELEASE_PIPELINE.md +3 -3
  9. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +6 -6
  10. package/docs/security/AUTOMATION_SECRETS.md +1 -1
  11. package/docs/security/MCP_POLICY.md +4 -4
  12. package/docs/security/SECURITY_CHECKLIST.md +1 -1
  13. package/docs/security/SOUP_REGISTER.md +4 -4
  14. package/install.sh +7 -6
  15. package/package.json +1 -1
  16. package/scripts/ci/check-copyright-headers.sh +2 -1
  17. package/scripts/ci/check-shell-preamble.sh +2 -1
  18. package/scripts/ci/guard-gitleaks-checkout.sh +2 -1
  19. package/scripts/demo/record.sh +2 -1
  20. package/scripts/diagnostics/a2a-conformance.sh +2 -1
  21. package/scripts/diagnostics/alias-governance.sh +2 -1
  22. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -1
  23. package/scripts/diagnostics/aliases-manifest.sh +2 -1
  24. package/scripts/diagnostics/benchmark.sh +2 -1
  25. package/scripts/diagnostics/conflicts.sh +2 -1
  26. package/scripts/diagnostics/doctor-unified.sh +2 -1
  27. package/scripts/diagnostics/doctor.sh +2 -1
  28. package/scripts/diagnostics/drift-dashboard.sh +2 -1
  29. package/scripts/diagnostics/health.sh +2 -1
  30. package/scripts/diagnostics/history-analysis.sh +2 -1
  31. package/scripts/diagnostics/mcp-doctor.sh +2 -1
  32. package/scripts/diagnostics/perf.sh +2 -1
  33. package/scripts/diagnostics/scorecard.sh +2 -1
  34. package/scripts/diagnostics/secret-governance.sh +2 -1
  35. package/scripts/diagnostics/security-score.sh +2 -1
  36. package/scripts/diagnostics/smoke-test.sh +2 -1
  37. package/scripts/diagnostics/snapshot.sh +2 -1
  38. package/scripts/diagnostics/verify.sh +2 -1
  39. package/scripts/diagnostics/verify_state.sh +2 -1
  40. package/scripts/diagnostics/version-locks.sh +2 -1
  41. package/scripts/diagnostics/workstation-attestation.sh +2 -1
  42. package/scripts/dot/commands/agent.sh +2 -1
  43. package/scripts/dot/commands/agents.sh +2 -1
  44. package/scripts/dot/commands/ai.sh +8 -22
  45. package/scripts/dot/commands/aliases.sh +2 -1
  46. package/scripts/dot/commands/appearance.sh +2 -1
  47. package/scripts/dot/commands/core.sh +2 -1
  48. package/scripts/dot/commands/diagnostics.sh +2 -1
  49. package/scripts/dot/commands/env-emit.sh +2 -1
  50. package/scripts/dot/commands/fleet.sh +2 -1
  51. package/scripts/dot/commands/init.sh +2 -1
  52. package/scripts/dot/commands/lint.sh +2 -1
  53. package/scripts/dot/commands/manual.sh +2 -1
  54. package/scripts/dot/commands/meta.sh +2 -1
  55. package/scripts/dot/commands/patterns.sh +2 -1
  56. package/scripts/dot/commands/registry.sh +2 -1
  57. package/scripts/dot/commands/restore.sh +2 -1
  58. package/scripts/dot/commands/secrets.sh +2 -1
  59. package/scripts/dot/commands/security.sh +2 -1
  60. package/scripts/dot/commands/tools.sh +2 -1
  61. package/scripts/fonts/install-nerd-fonts.sh +2 -1
  62. package/scripts/fonts/patch-fonts.sh +2 -1
  63. package/scripts/git-hooks/install.sh +2 -1
  64. package/scripts/git-hooks/pre-commit-audit.sh +3 -2
  65. package/scripts/lib/secrets_provider.sh +2 -1
  66. package/scripts/ops/ai-setup.sh +2 -1
  67. package/scripts/ops/bundle.sh +2 -1
  68. package/scripts/ops/chaos.sh +2 -1
  69. package/scripts/ops/chezmoi-apply.sh +11 -3
  70. package/scripts/ops/chezmoi-diff.sh +2 -1
  71. package/scripts/ops/chezmoi-remove.sh +2 -1
  72. package/scripts/ops/chezmoi-update.sh +2 -1
  73. package/scripts/ops/heal-chezmoi.sh +2 -1
  74. package/scripts/ops/heal-system.sh +2 -1
  75. package/scripts/ops/heal-tools.sh +2 -1
  76. package/scripts/ops/heal.sh +2 -1
  77. package/scripts/ops/post-apply-repair.sh +2 -1
  78. package/scripts/ops/prewarm.sh +2 -1
  79. package/scripts/ops/release.sh +2 -1
  80. package/scripts/ops/rollback.sh +2 -1
  81. package/scripts/ops/setup.sh +2 -1
  82. package/scripts/ops/teleport.sh +2 -1
  83. package/scripts/qa/check-version-consistency.sh +2 -1
  84. package/scripts/qa/coverage-baseline.sh +2 -1
  85. package/scripts/qa/docs-coverage.sh +2 -1
  86. package/scripts/qa/reliability-audit.sh +2 -1
  87. package/scripts/qa/scorecard-snapshot.sh +2 -1
  88. package/scripts/qa/traceability-coverage.sh +2 -1
  89. package/scripts/qa/validate-examples.sh +2 -1
  90. package/scripts/qa/wsl-contract.sh +2 -1
  91. package/scripts/secrets/age-init.sh +2 -1
  92. package/scripts/secrets/create-secrets-file.sh +2 -1
  93. package/scripts/secrets/encrypt-ssh-key.sh +2 -1
  94. package/scripts/security/backup.sh +2 -1
  95. package/scripts/security/check-disclosure-key-expiry.sh +2 -1
  96. package/scripts/security/dns-doh.sh +2 -1
  97. package/scripts/security/encryption-check.sh +2 -1
  98. package/scripts/security/enforce-policies.sh +2 -1
  99. package/scripts/security/firewall.sh +2 -1
  100. package/scripts/security/lock-configs.sh +2 -1
  101. package/scripts/security/lock-screen.sh +2 -1
  102. package/scripts/security/manage-secrets.sh +2 -1
  103. package/scripts/security/ssh-cert.sh +2 -1
  104. package/scripts/security/telemetry-kill.sh +2 -1
  105. package/scripts/security/usb-safety.sh +2 -1
  106. package/scripts/theme/apply-gnome-theme.sh +2 -1
  107. package/scripts/theme/extract-heic-frames.sh +2 -1
  108. package/scripts/theme/extract-theme.py +2 -1
  109. package/scripts/theme/install-boot-logo.sh +2 -1
  110. package/scripts/theme/install-catppuccin-themes.sh +2 -1
  111. package/scripts/theme/install-cursors.sh +2 -1
  112. package/scripts/theme/install-file-icons.sh +2 -1
  113. package/scripts/theme/install-grub-theme.sh +2 -1
  114. package/scripts/theme/install-lock-icon.sh +2 -1
  115. package/scripts/theme/merge-wallpaper.sh +2 -1
  116. package/scripts/theme/rebuild-themes.sh +2 -1
  117. package/scripts/theme/switch.sh +2 -1
  118. package/scripts/theme/wallpaper-rotate.sh +2 -1
  119. package/scripts/theme/wallpaper-sync.sh +2 -1
  120. package/scripts/tools/cmatrix.sh +2 -1
  121. package/scripts/tools/detect-collisions.py +2 -1
  122. package/scripts/tools/emoji-picker.sh +2 -1
  123. package/scripts/tools/figlet-banner.sh +2 -1
  124. package/scripts/tools/log-rotate.sh +2 -1
  125. package/scripts/tools/lolcat-wrap.sh +2 -1
  126. package/scripts/tools/pipes.sh +2 -1
  127. package/scripts/tuning/linux.sh +2 -1
  128. package/scripts/tuning/macos.sh +2 -1
  129. package/scripts/uninstall.sh +2 -1
  130. package/scripts/version-sync.sh +2 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,65 @@
2
2
 
3
3
  This file documents all notable changes to this project.
4
4
 
5
+ ## v0.2.505 — 2026-06-04
6
+
7
+ Claude Code is no longer installed through mise/npm. npm 11 silently drops
8
+ the platform-native `optionalDependency` on global installs, leaving a stub
9
+ binary that errors with "claude native binary not installed". The fix moves
10
+ Claude Code to Anthropic's native installer and audits the other AI tools for
11
+ the same class of bug. This release also repairs Linux install breaks, hardens
12
+ cross-platform shell parity (bash, fish, nushell), and adds SPDX license
13
+ headers across the source tree.
14
+
15
+ ### Fixed
16
+
17
+ - **Claude Code install** — switched off the mise `npm:@anthropic-ai/claude-code`
18
+ pin onto Anthropic's native installer (`~/.local/bin/claude`, self-updating),
19
+ which fetches the platform binary directly and sidesteps the npm 11
20
+ optional-dependency bug. Bootstrap (`run_onchange_15-ai-cli-tools`), `dot ai`,
21
+ and `dot apply`'s "install missing providers" flow all install Claude Code
22
+ natively now instead of reinstalling the broken package.
23
+ - **Linux install breaks (every distro):** Neovim fetched `nvim-linux64.tar.gz`,
24
+ an asset Neovim renamed after v0.10.3, so the pinned v0.11.6 download 404'd and
25
+ aborted the whole provision run — now arch-aware (`nvim-linux-{x86_64,arm64}`)
26
+ with ARM support; AIChat defaulted to a `latest` tag baked into the asset
27
+ filename (also a guaranteed 404) — now pinned via `AICHAT_TAG`.
28
+ - **Clipboard (`cb`):** crashed under `set -u` on non-Wayland Linux
29
+ (`$WAYLAND_DISPLAY` was referenced unguarded); added `command -v` guards, an
30
+ `xsel` fallback, and clear per-backend (Wayland/X11/WSL) error messages.
31
+ - **Bash parity:** `dot_bashrc` shipped ~14 hardcoded aliases and none of the
32
+ library functions — it never sourced the shared `~/.config/shell/*` hub. It
33
+ now loads the same layers zsh does (867 aliases + 185 functions), matching its
34
+ documented Tier-1 "Full" status.
35
+ - **fish/nushell `goto`/`cdls`:** these change directory but were run through a
36
+ `bash -c` subshell, so the `cd` was discarded — they silently no-op'd.
37
+ Reimplemented natively (fish functions; nushell `def --env`, the only form
38
+ whose `cd` propagates to the caller).
39
+ - **Docs:** fixed 18 hardcoded absolute markdown links (`/home/seb/.dotfiles/…`,
40
+ broken on GitHub and on any other machine) to file-relative paths.
41
+
42
+ ### Changed
43
+
44
+ - **Removed two redundant mise pins** uncovered while auditing the other AI
45
+ tools: `npm:codex-cli` (a legacy package — codex.js — that collided on the
46
+ `codex` bin name; Codex is already provided by the native `codex` pin) and
47
+ `npm:opencode-ai` (a broken-wrapper duplicate of the native `opencode` pin).
48
+ Both shims already resolved to the native builds, so runtime behaviour is
49
+ unchanged. copilot/gemini/qwen/zai were checked and are unaffected.
50
+ - **Extracted** the shared Claude native-installer helper and the AI
51
+ provider→mise-package map into `lib/dot/ai-install.sh`, removing duplication
52
+ across `dot ai` and `dot apply`.
53
+ - **Cross-distro robustness:** Debian/Ubuntu now symlink `~/.local/bin/{bat,fd}`
54
+ to `batcat`/`fdfind`; a missing apt/dnf/pacman warns loudly instead of silently
55
+ installing nothing; WSL gets a best-effort `wslu` install for `wslview`. fish
56
+ and nushell now export `EDITOR`/`VISUAL`/`PAGER` to match the zsh/bash profile.
57
+ - **Licensing:** added `SPDX-License-Identifier: MIT` headers (SPDX-first / REUSE
58
+ form) and normalized the copyright line to `Sebastien Rousseau` across 831
59
+ repo-only source files; dropped the contradictory `All rights reserved.`.
60
+ - **README** — fixed the OpenSSF Best Practices badge (was linking to the
61
+ new-project form with a static label; now the live `cii/percentage/12840`
62
+ endpoint linked to the real project).
63
+
5
64
  ## v0.2.504 — 2026-06-03
6
65
 
7
66
  First-class **stock-macOS** support: the installer and the entire `dot` CLI
package/README.md CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
  <p align="center">
12
12
  <a href="https://github.com/sebastienrousseau/dotfiles/actions"><img src="https://img.shields.io/github/actions/workflow/status/sebastienrousseau/dotfiles/ci.yml?style=for-the-badge&logo=github" alt="Build" /></a>
13
- <a href="https://github.com/sebastienrousseau/dotfiles/releases/latest"><img src="https://img.shields.io/badge/Version-v0.2.504-blue?style=for-the-badge" alt="Version" /></a>
13
+ <a href="https://github.com/sebastienrousseau/dotfiles/releases/latest"><img src="https://img.shields.io/badge/Version-v0.2.505-blue?style=for-the-badge" alt="Version" /></a>
14
14
  <a href="https://github.com/sebastienrousseau/dotfiles/releases"><img src="https://img.shields.io/github/downloads/sebastienrousseau/dotfiles/total?style=for-the-badge" alt="Downloads" /></a>
15
15
  <a href="https://codespaces.new/sebastienrousseau/dotfiles"><img src="https://img.shields.io/badge/Open%20in-Codespaces-blue?style=for-the-badge&logo=github" alt="Open in GitHub Codespaces" /></a>
16
16
  <a href="https://scorecard.dev/viewer/?uri=github.com/sebastienrousseau/dotfiles"><img src="https://img.shields.io/ossf-scorecard/github.com/sebastienrousseau/dotfiles?style=for-the-badge&label=OpenSSF%20Scorecard" alt="OpenSSF Scorecard" /></a>
17
- <a href="https://www.bestpractices.dev/projects/new"><img src="https://img.shields.io/badge/OpenSSF%20Best%20Practices-in%20progress-yellow?style=for-the-badge" alt="OpenSSF Best Practices" /></a>
17
+ <a href="https://www.bestpractices.dev/projects/12840"><img src="https://img.shields.io/cii/percentage/12840?style=for-the-badge&label=OpenSSF%20Best%20Practices" alt="OpenSSF Best Practices" /></a>
18
18
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License: MIT" /></a>
19
19
  </p>
20
20
 
@@ -52,7 +52,7 @@
52
52
 
53
53
  ```bash
54
54
  curl -fsSL -o /tmp/dotfiles-install.sh \
55
- https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.504/install.sh
55
+ https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.505/install.sh
56
56
  echo "d5a04c5e2813a93a63c8ecce9655cf3d107f6068862c6eba84a92cf22f801c7e /tmp/dotfiles-install.sh" \
57
57
  | shasum -a 256 -c
58
58
  bash /tmp/dotfiles-install.sh
@@ -300,7 +300,7 @@ See the [Migration Guide](docs/operations/MIGRATION.md) for version upgrades.
300
300
  - **Pattern library** (`dot patterns`) — architect, hardener, and refactor patterns bundled in `dot_config/ai/patterns/`
301
301
  - **MCP policy enforcement** (`dot mcp`) — validate the Model Context Protocol registry against policy
302
302
  - **AI commit messages** (`dot commit`) — conventional commits generated from the staged diff
303
- - **AI tools** (`dot ai`) — Claude Code, Codex, GitHub Copilot, Gemini CLI, and friends managed via Mise
303
+ - **AI tools** (`dot ai`) — Codex, GitHub Copilot, Gemini CLI, and friends managed via Mise; Claude Code via Anthropic's native installer
304
304
  - **Attestation logs** — every agent session is logged with a policy hash and an outcome
305
305
 
306
306
  </details>
package/docs/COPYRIGHT CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.504) - <https://github.com/sebastienrousseau/dotfiles>
2
+ * 🅳🅾🆃🅵🅸🅻🅴🆂 (v0.2.505) - <https://github.com/sebastienrousseau/dotfiles>
3
3
  * Made With ❤️ in London, United Kingdom
4
4
  * Designed by
5
5
  * Copyright (c) 2015-2026. All rights reserved.
package/docs/index.md CHANGED
@@ -7,7 +7,7 @@ render_with_liquid: false
7
7
  Cross-platform, signed, local-first dotfiles for macOS, Linux, and WSL.
8
8
 
9
9
  [![Build](https://img.shields.io/github/actions/workflow/status/sebastienrousseau/dotfiles/ci.yml?style=for-the-badge&logo=github)](https://github.com/sebastienrousseau/dotfiles/actions)
10
- [![Version](https://img.shields.io/badge/Version-v0.2.504-blue?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.504)
10
+ [![Version](https://img.shields.io/badge/Version-v0.2.505-blue?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.505)
11
11
  [![Downloads](https://img.shields.io/github/downloads/sebastienrousseau/dotfiles/total?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases)
12
12
 
13
13
  This site is published from the `docs/` directory on `master` and tracks the current workstation baseline, operational guidance, and security material for the repository.
@@ -38,6 +38,6 @@ This site is published from the `docs/` directory on `master` and tracks the cur
38
38
 
39
39
  ## Current Release
40
40
 
41
- - Current tagged release: [`v0.2.504`](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.504)
41
+ - Current tagged release: [`v0.2.505`](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.505)
42
42
  - Latest release feed: [GitHub releases](https://github.com/sebastienrousseau/dotfiles/releases/latest)
43
43
  - Source repository: [sebastienrousseau/dotfiles](https://github.com/sebastienrousseau/dotfiles)
@@ -8,8 +8,8 @@ The repository now ships an agent card and an A2A-ready discovery document.
8
8
 
9
9
  Artifacts:
10
10
 
11
- - [agent-card.json](/home/seb/.dotfiles/dot_config/dotfiles/agent-card.json)
12
- - [agent.json](/home/seb/.dotfiles/.well-known/agent.json)
11
+ - [agent-card.json](../../defaults/dot_config/dotfiles/agent-card.json)
12
+ - [agent.json](../../.well-known/agent.json)
13
13
 
14
14
  Core properties:
15
15
 
@@ -4,7 +4,7 @@ render_with_liquid: false
4
4
 
5
5
  # Introduction
6
6
 
7
- This manual describes `.dotfiles` v0.2.504 — a trusted agent workstation baseline for macOS, Linux, and WSL.
7
+ This manual describes `.dotfiles` v0.2.505 — a trusted agent workstation baseline for macOS, Linux, and WSL.
8
8
 
9
9
  The repository is more than a personal dotfiles collection. It ships as workstation infrastructure: signed, attested, multi-platform, AI-aware, and self-healing. Chezmoi handles templating and platform differences. The `dot` CLI sits on top and coordinates lifecycle operations.
10
10
 
@@ -184,7 +184,7 @@ After `dot doctor` reports a healthy score, you have:
184
184
  | **Editor** | Neovim with lazy.nvim + LSP + theme-synced colorscheme |
185
185
  | **Terminal** | Ghostty/Alacritty/Kitty/WezTerm configs (pick whichever is installed) |
186
186
  | **Git** | Signed commits, delta diff, conventional commit template |
187
- | **AI tooling** | Claude Code, Codex, Copilot CLI, Gemini CLI via mise |
187
+ | **AI tooling** | Codex, Copilot CLI, Gemini CLI via mise; Claude Code via Anthropic's native installer |
188
188
  | **Secret store** | Age key, SOPS config, `dot secrets` command ready |
189
189
  | **Security** | Gitleaks, detect-secrets baseline, signed attestation log |
190
190
  | **Theme engine** | K-Means wallpaper extractor, system + custom wallpaper discovery |
@@ -59,7 +59,7 @@ where dependencies allow.
59
59
  | `security-release.yml` (manifest job) | `release.published`, dispatch | Build `ALL_SHA256SUMS` over every release asset, Cosign-sign it. | `ALL_SHA256SUMS` + `.sig` + `.pem`. |
60
60
  | `release-distribute-homebrew.yml` | `release.published`, dispatch | Hash `dot-VERSION.tar.gz`, regenerate `install/homebrew/dot.rb`, push branch + PR to `sebastienrousseau/homebrew-tap`. | One PR on the tap repo. |
61
61
  | `release-distribute-scoop.yml` | `release.published`, dispatch | Hash `dot-VERSION.zip`, rewrite `install/scoop/dot.json` via jq (both 64bit + arm64 point at same zip), PR to `sebastienrousseau/scoop-bucket`. | One PR on the bucket repo. |
62
- | `release-distribute-aur.yml` | `release.published`, dispatch | Hash `dot-VERSION.tar.gz`, rewrite `pkgver` + `sha256sums` in `install/aur/PKGBUILD`, regenerate `.SRCINFO` via dockerised `makepkg`, push to `ssh://aur@aur.archlinux.org/dotfiles-git.git`. | One commit on AUR. |
62
+ | `release-distribute-aur.yml` | `release.published`, dispatch | Hash `dot-VERSION.tar.gz`, rewrite `pkgver` + `sha256sums` in `install/aur/PKGBUILD`, regenerate `.SRCINFO` via dockerised `makepkg`, push to `ssh://aur@aur.archlinux.org/dot-cli-git.git`. | One commit on AUR. |
63
63
  | `release-attestation-check.yml` | weekly cron + dispatch | Verify the latest release carries the full attestation bundle (SBOM + sig + cert + intoto + manifest + sig + cert). | Opens or comments on a tracking issue. |
64
64
 
65
65
  ## Why `created` vs `published`
@@ -93,7 +93,7 @@ manifest job after late asset uploads picks up the new state and the
93
93
  |---|---|---|
94
94
  | Homebrew | `sebastienrousseau/homebrew-tap` | Tap repo exists (currently bare README + LICENSE). Workflow creates the `Formula/dot.rb` path on first publish. |
95
95
  | Scoop | `sebastienrousseau/scoop-bucket` | Bucket repo exists (currently bare). Workflow creates `bucket/dot.json` on first publish. |
96
- | AUR | `ssh://aur@aur.archlinux.org/dotfiles-git.git` | **Manual one-time step**: the maintainer must create the package entry via the AUR web UI before the workflow's `git clone` can succeed. The workflow exits with a clear error message on the first run if the repo doesn't exist. |
96
+ | AUR | `ssh://aur@aur.archlinux.org/dot-cli-git.git` | **Manual one-time step**: the maintainer must create the package entry via the AUR web UI before the workflow's `git clone` can succeed. The workflow exits with a clear error message on the first run if the repo doesn't exist. |
97
97
 
98
98
  ## Verifying a release
99
99
 
@@ -105,7 +105,7 @@ independently.
105
105
 
106
106
  ## Known caveats
107
107
 
108
- - **AUR `pkgname=dotfiles-git`**: AUR's `-git` convention means
108
+ - **AUR `pkgname=dot-cli-git`**: AUR's `-git` convention means
109
109
  "tracks git HEAD", but the workflow publishes tagged stable
110
110
  releases. Either rename to plain `dotfiles` in
111
111
  `install/aur/PKGBUILD` and register that package, or accept the
@@ -20,12 +20,12 @@ It defines a signed, local-first workstation baseline for agentic development on
20
20
 
21
21
  The source of truth lives in tracked JSON artifacts:
22
22
 
23
- - [policy-bundles.json](/home/seb/.dotfiles/dot_config/dotfiles/policy-bundles.json)
24
- - [agent-profiles.json](/home/seb/.dotfiles/dot_config/dotfiles/agent-profiles.json)
25
- - [mcp-policy.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-policy.json)
26
- - [mcp-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-registry.json)
27
- - [model-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/model-registry.json)
28
- - [prompt-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/prompt-registry.json)
23
+ - [policy-bundles.json](../../defaults/dot_config/dotfiles/policy-bundles.json)
24
+ - [agent-profiles.json](../../defaults/dot_config/dotfiles/agent-profiles.json)
25
+ - [mcp-policy.json](../../defaults/dot_config/dotfiles/mcp-policy.json)
26
+ - [mcp-registry.json](../../defaults/dot_config/dotfiles/mcp-registry.json)
27
+ - [model-registry.json](../../defaults/dot_config/dotfiles/model-registry.json)
28
+ - [prompt-registry.json](../../defaults/dot_config/dotfiles/prompt-registry.json)
29
29
 
30
30
  ## Enterprise path
31
31
 
@@ -21,6 +21,6 @@ render_with_liquid: false
21
21
  ## Provisioning notes
22
22
 
23
23
  1. Store the SSH signing private key in GitHub Actions as `ACTIONS_BOT_SIGNING_KEY`.
24
- 2. Store the matching public key in [allowed_signers](/home/seb/.dotfiles/dot_config/git/allowed_signers).
24
+ 2. Store the matching public key in [allowed_signers](../../defaults/dot_config/git/allowed_signers.tmpl).
25
25
  3. Rotate the key on personnel or workstation change.
26
26
  4. Fail closed when secrets are absent.
@@ -21,9 +21,9 @@ Properties:
21
21
 
22
22
  ## Policy artifact
23
23
 
24
- The source of truth lives in [mcp-policy.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-policy.json).
25
- Approved package pins live in [mcp-lock.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-lock.json).
26
- Tracked server registry entries live in [mcp-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-registry.json).
24
+ The source of truth lives in [mcp-policy.json](../../defaults/dot_config/dotfiles/mcp-policy.json).
25
+ Approved package pins live in [mcp-lock.json](../../defaults/dot_config/dotfiles/mcp-lock.json).
26
+ Tracked server registry entries live in [mcp-registry.json](../../defaults/dot_config/dotfiles/mcp-registry.json).
27
27
 
28
28
  Current defaults:
29
29
 
@@ -75,4 +75,4 @@ Current approved refs:
75
75
  - active servers match the tracked registry entries
76
76
  - remote HTTP transports are HTTPS and OAuth-backed
77
77
 
78
- Policy bundle baselines live in [policy-bundles.json](/home/seb/.dotfiles/dot_config/dotfiles/policy-bundles.json).
78
+ Policy bundle baselines live in [policy-bundles.json](../../defaults/dot_config/dotfiles/policy-bundles.json).
@@ -11,7 +11,7 @@ Use this checklist before cutting any new release (e.g., `v0.x.x`) to ensure sup
11
11
  - [ ] **Pinned Version**: Update `install.sh` `VERSION` variable to match the release tag.
12
12
  - [ ] **Docs Sync**: Ensure `README.md` and `.github/PULL_REQUEST_TEMPLATE.md` installer URLs point to the new tag (not `main`).
13
13
  - [ ] **Clean Build**: Verify `install.sh` does not curl random scripts from third parties without pinning.
14
- - [ ] **SOUP Register**: Review [SOUP_REGISTER.md](/home/seb/.dotfiles/docs/security/SOUP_REGISTER.md) and confirm all active external components have an owner and validation path.
14
+ - [ ] **SOUP Register**: Review [SOUP_REGISTER.md](SOUP_REGISTER.md) and confirm all active external components have an owner and validation path.
15
15
 
16
16
  ## 2. Secrets & Leak Prevention
17
17
 
@@ -12,13 +12,13 @@ Controlled inventory for software of unknown pedigree used by the dotfiles platf
12
12
 
13
13
  | Component | Source | Version control | Verification path | Owner | Status |
14
14
  | :--- | :--- | :--- | :--- | :--- | :--- |
15
- | Homebrew installer | `raw.githubusercontent.com/Homebrew/install` | Moving upstream script, gated by `HOMEBREW_INSTALLER_SHA256` | SHA-256 in [package_managers.sh](/home/seb/.dotfiles/install/lib/package_managers.sh) | Repo maintainer | Conditional |
15
+ | Homebrew installer | `raw.githubusercontent.com/Homebrew/install` | Moving upstream script, gated by `HOMEBREW_INSTALLER_SHA256` | SHA-256 in [package_managers.sh](../../install/lib/package_managers.sh) | Repo maintainer | Conditional |
16
16
  | Chezmoi installer | `get.chezmoi.io` | Pinned by `CHEZMOI_INSTALLER_SHA256` when used | SHA-256 in `install/lib/chezmoi.sh` | Repo maintainer | Controlled |
17
17
  | GitHub Actions marketplace actions | GitHub Marketplace | Full commit SHA pinning | Workflow `uses:` pins | Repo maintainer | Controlled |
18
- | Grype container | `anchore/grype` | Pinned tag in workflow | Container tag in [security-enhanced.yml](/home/seb/.dotfiles/.github/workflows/security-enhanced.yml) | Repo maintainer | Controlled |
19
- | Trivy container | `aquasec/trivy` | Pinned tag in workflow | Container tag in [security-enhanced.yml](/home/seb/.dotfiles/.github/workflows/security-enhanced.yml) | Repo maintainer | Controlled |
18
+ | Grype container | `anchore/grype` | Pinned tag in workflow | Container tag in [security-enhanced.yml](../../.github/workflows/security-enhanced.yml) | Repo maintainer | Controlled |
19
+ | Trivy container | `aquasec/trivy` | Pinned tag in workflow | Container tag in [security-enhanced.yml](../../.github/workflows/security-enhanced.yml) | Repo maintainer | Controlled |
20
20
  | Checkov action | GitHub Marketplace | Full commit SHA pinning | Workflow `uses:` pin | Repo maintainer | Controlled |
21
- | Nix inputs | GitHub flakes | Locked in [flake.lock](/home/seb/.dotfiles/flake.lock) | `narHash` and revision lock | Repo maintainer | Controlled |
21
+ | Nix inputs | GitHub flakes | Locked in [flake.lock](../../flake.lock) | `narHash` and revision lock | Repo maintainer | Controlled |
22
22
  | GitHub release metadata queries | GitHub API | Discovery only, not release validation | `update-deps.yml` query path | Repo maintainer | Monitored |
23
23
 
24
24
  ## Validation record
package/install.sh CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Universal Dotfiles Installer (Zero-Dependency)
4
5
  # Usage: bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh)"
5
6
  # (or ./install.sh locally)
@@ -59,7 +60,7 @@ show_help() {
59
60
  Usage: install.sh [version] [options]
60
61
 
61
62
  Arguments:
62
- version The version (tag or branch) to install (default: v0.2.504)
63
+ version The version (tag or branch) to install (default: v0.2.505)
63
64
 
64
65
  Options:
65
66
  --help Show this help message
@@ -75,7 +76,7 @@ EOF
75
76
  }
76
77
 
77
78
  main() {
78
- local version="v0.2.504"
79
+ local version="v0.2.505"
79
80
  local version_set=0
80
81
  local minimal=0
81
82
  local provision="${DOTFILES_PROVISION:-0}"
@@ -105,7 +106,7 @@ main() {
105
106
  # like `foobar` doesn't trigger a 30s+ network download attempt.
106
107
  # Caught by the install.sh fuzz harness (#881).
107
108
  if [[ ! "$arg" =~ ^v?[0-9]+\.[0-9]+\.[0-9]+([-+][a-zA-Z0-9.-]+)?$ ]]; then
108
- error "Unrecognized positional argument '$arg' — expected a semver version (e.g. v0.2.504)."
109
+ error "Unrecognized positional argument '$arg' — expected a semver version (e.g. v0.2.505)."
109
110
  fi
110
111
  version="$arg"
111
112
  version_set=1
@@ -350,7 +351,7 @@ main() {
350
351
  # 6. Initialize & Apply
351
352
  step "Applying Configuration..."
352
353
 
353
- # ── Auto-migration for v0.2.504 reorg ─────────────────────────────────
354
+ # ── Auto-migration for v0.2.505 reorg ─────────────────────────────────
354
355
  # If the user is upgrading from a pre-0.2.503 install, run the
355
356
  # migration script BEFORE `chezmoi apply` so the reorg's source-
356
357
  # path moves don't cause chezmoi to delete deployed files.
@@ -359,7 +360,7 @@ main() {
359
360
  for migrate_src in "$SOURCE_DIR" "$LEGACY_SOURCE_DIR"; do
360
361
  migrate_script="$migrate_src/install/migrate/migrate-v0_2-to-v0_2_503.sh"
361
362
  if [[ -x "$migrate_script" ]]; then
362
- echo " Running v0.2.504 migration (idempotent; safe on fresh installs)..."
363
+ echo " Running v0.2.505 migration (idempotent; safe on fresh installs)..."
363
364
  "$migrate_script" || echo " migration exited non-zero — continuing apply"
364
365
  break
365
366
  fi
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sebastienrousseau/dotfiles",
3
- "version": "0.2.504",
3
+ "version": "0.2.505",
4
4
  "description": "The Trusted Shell Platform — Universal dotfiles managed by Chezmoi. Features Bash & Zsh for macOS, Linux & WSL. Rust modern tooling & enterprise-grade security.",
5
5
  "main": "install.sh",
6
6
  "bin": {
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Compat shim: the canonical script moved to tools/ci/ during the repo reorg.
4
5
  # Pinned reusable workflows on master still reference the old path;
5
6
  # this delegates so they keep working until the next pin bump.
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Compat shim: the canonical script moved to tools/ci/ during the repo reorg.
4
5
  # Pinned reusable workflows on master still reference the old path;
5
6
  # this delegates so they keep working until the next pin bump.
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Compat shim: the canonical script moved to tools/ci/ during the repo reorg.
4
5
  # Pinned reusable workflows on master still reference the old path;
5
6
  # this delegates so they keep working until the next pin bump.
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  set -euo pipefail
4
5
 
5
6
  OUT="${1:-$HOME/.dotfiles/docs/demo/demo.gif}"
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  ## A2A v0.3 and agent card conformance validation.
4
5
 
5
6
  set -euo pipefail
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Alias governance checks:
4
5
  # - duplicate alias names
5
6
  # - risky overrides must be gated
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  set -euo pipefail
4
5
 
5
6
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Emit alias manifest as TSV:
4
5
  # name<TAB>value<TAB>file<TAB>line
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  ## Shell Performance Benchmark.
4
5
  ##
5
6
  ## Measures shell startup time with per-component profiling. Uses hyperfine
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Alias/Command Conflicts Report
4
5
  # Usage: dot conflicts
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Unified doctor orchestrator — parses flags and dispatches to existing scripts.
4
5
  set -euo pipefail
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  ## Dotfiles Doctor.
4
5
  ##
5
6
  ## Diagnoses dotfiles environment health by checking dependencies, paths,
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # =============================================================================
4
5
  # drift-dashboard.sh — Consolidated drift report.
5
6
  #
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Dotfiles Health Check Dashboard
4
5
  # Usage: dot health [--verbose|-v] [--json|-j] [--fix|-f] [--force|-F]
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  set -euo pipefail
4
5
 
5
6
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  ## MCP configuration diagnostics and hardening checks.
4
5
  ##
5
6
  ## Validates MCP (Model Context Protocol) server configurations for security
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Shell Performance Profiling
4
5
  # Usage: dot perf [--json|-j] [--profile|-p] [--runs|-r N] [--target|-t MS]
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Dotfiles Scorecard
4
5
  # Usage: dot scorecard [--json|-j]
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  set -euo pipefail
4
5
 
5
6
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  ## Security Score Assessment.
4
5
  ##
5
6
  ## Evaluates system security posture across encryption, SSH, Git, system
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Smoke tests to quickly verify toolchain health after installation/updates.
4
5
 
5
6
  set -euo pipefail
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Snapshot current system/tooling state
4
5
  # Usage: dot snapshot [--baseline|-b] [--force|-f]
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Dotfiles post-merge verification checks
4
5
  # Runs doctor + status + diff checks and exits non-zero on issues.
5
6
 
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
  # MIT License
3
- # Copyright (c) 2026
3
+ # SPDX-License-Identifier: MIT
4
+ # Copyright (c) 2015-2026 Sebastien Rousseau
4
5
  # See LICENSE file for details.
5
6
 
6
7
  # Script: verify_state.sh
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Version Locks Summary
4
5
  # Usage: dot locks
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  ## Workstation attestation export.
4
5
  ##
5
6
  ## Produces a machine-readable evidence record for the current dotfiles
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # Dotfiles CLI - Agent Mode Commands (extracted from meta.sh)
4
5
  # mode list|current|show|set|run|doctor|card|log|checkpoint|conformance
5
6
 
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
2
+ # SPDX-License-Identifier: MIT
3
+ # Copyright (c) 2015-2026 Sebastien Rousseau
3
4
  # shellcheck shell=bash
4
5
  #
5
6
  # scripts/dot/commands/agents.sh