@sebastienrousseau/dotfiles 0.2.501 → 0.2.503

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 (420) hide show
  1. package/CHANGELOG.md +155 -4
  2. package/LICENSE +21 -1283
  3. package/README.md +40 -8
  4. package/docs/CONFIG_STRATEGY.md +124 -0
  5. package/docs/COPYRIGHT +1 -1
  6. package/docs/GOVERNANCE.md +98 -0
  7. package/docs/MAINTAINERS.md +41 -0
  8. package/docs/OPENCODE.md +127 -0
  9. package/docs/README.md +2 -0
  10. package/docs/STRUCTURE.md +102 -0
  11. package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
  12. package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
  13. package/docs/architecture/REPO_LAYOUT.md +8 -8
  14. package/docs/archive/MILESTONE_v0.2.493.md +1 -1
  15. package/docs/index.md +2 -2
  16. package/docs/interop/POWERSHELL.md +1 -1
  17. package/docs/manual/00-introduction.md +1 -1
  18. package/docs/manual/01-concepts/02-trust-model.md +1 -1
  19. package/docs/manual/03-reference/01-dot-cli.md +63 -45
  20. package/docs/manual/03-reference/02-config-files.md +2 -2
  21. package/docs/manual/03-reference/05-feature-flags.md +62 -3
  22. package/docs/manual/_toc.yml +1 -1
  23. package/docs/manual/command-index.md +72 -55
  24. package/docs/manual/index.md +66 -0
  25. package/docs/operations/CI_COMPOSITES.md +2 -2
  26. package/docs/operations/COMPLETIONS.md +2 -2
  27. package/docs/operations/COVERAGE.md +40 -6
  28. package/docs/operations/HARD_AUDIT_2026.md +631 -0
  29. package/docs/operations/MAINTENANCE.md +3 -3
  30. package/docs/operations/MANIFEST.md +127 -0
  31. package/docs/operations/REGISTRY.md +89 -0
  32. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  33. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  34. package/docs/operations/ROADMAP_2026.md +665 -0
  35. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  36. package/docs/operations/TESTING.md +17 -0
  37. package/docs/operations/TRACEABILITY.md +9 -3
  38. package/docs/operations/VERSION_SYNC.md +4 -4
  39. package/docs/reference/POWERSHELL_PARITY.md +81 -0
  40. package/docs/registry.json +6 -0
  41. package/docs/schema/dot-env-v1.json +110 -0
  42. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  43. package/docs/security/CI_PINNING.md +121 -0
  44. package/docs/security/COMMIT_SIGNING.md +138 -0
  45. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  46. package/docs/security/DISCLOSURE.md +130 -0
  47. package/docs/security/FUZZING.md +114 -0
  48. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  49. package/docs/security/KEY_ROTATION.md +81 -1
  50. package/docs/security/POLICY_RELEASES.md +2 -2
  51. package/docs/security/SCORECARD.md +130 -15
  52. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  53. package/docs/security/VERIFY_RELEASE.md +201 -0
  54. package/docs/security/security-pubkey.asc +15 -0
  55. package/install.sh +67 -38
  56. package/package.json +1 -1
  57. package/scripts/README.md +123 -0
  58. package/scripts/ci/check-copyright-headers.sh +4 -93
  59. package/scripts/ci/check-shell-preamble.sh +4 -103
  60. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  61. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  62. package/scripts/diagnostics/alias-governance.sh +1 -1
  63. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  64. package/scripts/diagnostics/benchmark.sh +4 -4
  65. package/scripts/diagnostics/conflicts.sh +2 -2
  66. package/scripts/diagnostics/doctor-unified.sh +2 -2
  67. package/scripts/diagnostics/doctor.sh +45 -15
  68. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  69. package/scripts/diagnostics/health.sh +4 -4
  70. package/scripts/diagnostics/history-analysis.sh +2 -2
  71. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  72. package/scripts/diagnostics/perf.sh +4 -4
  73. package/scripts/diagnostics/scorecard.sh +4 -4
  74. package/scripts/diagnostics/security-score.sh +2 -2
  75. package/scripts/diagnostics/smoke-test.sh +2 -2
  76. package/scripts/diagnostics/snapshot.sh +2 -2
  77. package/scripts/diagnostics/verify.sh +4 -4
  78. package/scripts/diagnostics/version-locks.sh +2 -2
  79. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  80. package/scripts/dot/commands/agent.sh +27 -22
  81. package/scripts/dot/commands/agents.sh +335 -0
  82. package/scripts/dot/commands/ai.sh +144 -25
  83. package/scripts/dot/commands/aliases.sh +10 -8
  84. package/scripts/dot/commands/appearance.sh +2 -2
  85. package/scripts/dot/commands/core.sh +12 -6
  86. package/scripts/dot/commands/diagnostics.sh +5 -5
  87. package/scripts/dot/commands/env-emit.sh +202 -0
  88. package/scripts/dot/commands/fleet.sh +290 -14
  89. package/scripts/dot/commands/init.sh +184 -0
  90. package/scripts/dot/commands/lint.sh +9 -4
  91. package/scripts/dot/commands/manual.sh +3 -3
  92. package/scripts/dot/commands/meta.sh +19 -10
  93. package/scripts/dot/commands/patterns.sh +2 -2
  94. package/scripts/dot/commands/registry.sh +263 -0
  95. package/scripts/dot/commands/restore.sh +4 -4
  96. package/scripts/dot/commands/secrets.sh +4 -3
  97. package/scripts/dot/commands/security.sh +2 -2
  98. package/scripts/dot/commands/tools.sh +62 -4
  99. package/scripts/dot/powershell/Dot.psm1 +199 -0
  100. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  101. package/scripts/git-hooks/pre-commit-audit.sh +2 -2
  102. package/scripts/git-hooks/pre-push +13 -0
  103. package/scripts/lib/secrets_provider.sh +32 -6
  104. package/scripts/ops/ai-setup.sh +1 -1
  105. package/scripts/ops/bundle.sh +2 -2
  106. package/scripts/ops/chaos.sh +2 -2
  107. package/scripts/ops/chezmoi-apply.sh +4 -4
  108. package/scripts/ops/heal.sh +4 -4
  109. package/scripts/ops/post-apply-repair.sh +2 -2
  110. package/scripts/ops/prewarm.sh +2 -2
  111. package/scripts/ops/release.sh +4 -4
  112. package/scripts/ops/rollback.sh +18 -4
  113. package/scripts/ops/setup.sh +2 -2
  114. package/scripts/qa/check-version-consistency.sh +123 -0
  115. package/scripts/qa/coverage-baseline.sh +1 -1
  116. package/scripts/qa/docs-coverage.sh +2 -2
  117. package/scripts/qa/powershell-contract.ps1 +1 -1
  118. package/scripts/qa/scorecard-snapshot.sh +127 -0
  119. package/scripts/security/backup.sh +2 -2
  120. package/scripts/security/check-disclosure-key-expiry.sh +110 -0
  121. package/scripts/security/dns-doh.sh +4 -4
  122. package/scripts/security/encryption-check.sh +4 -4
  123. package/scripts/security/enforce-policies.sh +2 -2
  124. package/scripts/security/firewall.sh +4 -4
  125. package/scripts/security/lock-configs.sh +11 -2
  126. package/scripts/security/lock-screen.sh +4 -4
  127. package/scripts/security/manage-secrets.sh +2 -2
  128. package/scripts/security/ssh-cert.sh +2 -2
  129. package/scripts/security/telemetry-kill.sh +4 -4
  130. package/scripts/security/usb-safety.sh +4 -4
  131. package/scripts/theme/extract-heic-frames.sh +114 -0
  132. package/scripts/theme/rebuild-themes.sh +8 -1
  133. package/scripts/theme/switch.sh +13 -6
  134. package/scripts/theme/wallpaper-sync.sh +297 -93
  135. package/scripts/tuning/linux.sh +2 -2
  136. package/scripts/tuning/macos.sh +2 -2
  137. package/scripts/version-sync.sh +58 -7
  138. package/dot_config/.module-manifest.json +0 -69
  139. package/dot_config/ai/identity.md +0 -23
  140. package/dot_config/ai/patterns/architect.md +0 -16
  141. package/dot_config/ai/patterns/hardener.md +0 -15
  142. package/dot_config/ai/patterns/refactor.md +0 -15
  143. package/dot_config/aider/aider.conf.yml +0 -32
  144. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  145. package/dot_config/ansible/ansible.cfg +0 -11
  146. package/dot_config/atuin/config.toml.tmpl +0 -47
  147. package/dot_config/bat/config +0 -23
  148. package/dot_config/brave-flags.conf.tmpl +0 -7
  149. package/dot_config/btop/btop.conf +0 -16
  150. package/dot_config/btop/themes/tokyonight.theme +0 -34
  151. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  152. package/dot_config/claude/mcp_servers.json +0 -20
  153. package/dot_config/containers/containers.conf +0 -14
  154. package/dot_config/curl/dot_curlrc +0 -18
  155. package/dot_config/dlv/config.yml +0 -39
  156. package/dot_config/docker/config.json +0 -15
  157. package/dot_config/dotfiles/agent-card.json +0 -29
  158. package/dot_config/dotfiles/agent-profiles.json +0 -92
  159. package/dot_config/dotfiles/boot/README.md +0 -13
  160. package/dot_config/dotfiles/grub/README.md +0 -13
  161. package/dot_config/dotfiles/lock/README.md +0 -13
  162. package/dot_config/dotfiles/mcp-lock.json +0 -33
  163. package/dot_config/dotfiles/mcp-policy.json +0 -52
  164. package/dot_config/dotfiles/mcp-registry.json +0 -47
  165. package/dot_config/dotfiles/model-registry.json +0 -20
  166. package/dot_config/dotfiles/policy-bundles.json +0 -38
  167. package/dot_config/dotfiles/prompt-registry.json +0 -16
  168. package/dot_config/dotfiles/versions.env +0 -18
  169. package/dot_config/duf/duf.conf +0 -6
  170. package/dot_config/duti/defaults.duti +0 -5
  171. package/dot_config/emoji/emoji.txt +0 -34
  172. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  173. package/dot_config/environment.d/90-wayland.conf +0 -19
  174. package/dot_config/fastfetch/config.jsonc +0 -28
  175. package/dot_config/firefox/user.js.tmpl +0 -58
  176. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  177. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  178. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  179. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  180. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  181. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  182. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  183. package/dot_config/fish/config.fish.tmpl +0 -44
  184. package/dot_config/fish/fish_plugins +0 -1
  185. package/dot_config/fish/functions/_.fish +0 -3
  186. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  187. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  188. package/dot_config/fish/functions/als.fish +0 -46
  189. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  190. package/dot_config/fish/functions/c.fish +0 -3
  191. package/dot_config/fish/functions/cat.fish +0 -9
  192. package/dot_config/fish/functions/d.fish +0 -7
  193. package/dot_config/fish/functions/dot.fish +0 -34
  194. package/dot_config/fish/functions/h.fish +0 -3
  195. package/dot_config/fish/functions/l.fish +0 -7
  196. package/dot_config/fish/functions/la.fish +0 -7
  197. package/dot_config/fish/functions/ll.fish +0 -7
  198. package/dot_config/fish/functions/log_error.fish +0 -13
  199. package/dot_config/fish/functions/log_info.fish +0 -13
  200. package/dot_config/fish/functions/lr.fish +0 -7
  201. package/dot_config/fish/functions/lra.fish +0 -7
  202. package/dot_config/fish/functions/ls.fish +0 -7
  203. package/dot_config/fish/functions/lt.fish +0 -7
  204. package/dot_config/fish/functions/lta.fish +0 -7
  205. package/dot_config/fish/functions/notify-run.fish +0 -11
  206. package/dot_config/fish/functions/q.fish +0 -3
  207. package/dot_config/fish/functions/silent-run.fish +0 -7
  208. package/dot_config/fish/functions/yy.fish +0 -8
  209. package/dot_config/flatpak/flatpak.list +0 -4
  210. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  211. package/dot_config/foot/foot.ini.tmpl +0 -33
  212. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  213. package/dot_config/fzf/fzf.zsh +0 -48
  214. package/dot_config/gem/gemrc +0 -9
  215. package/dot_config/gh/config.yml +0 -12
  216. package/dot_config/ghostty/config.tmpl +0 -165
  217. package/dot_config/git/allowed_signers.tmpl +0 -18
  218. package/dot_config/git/attributes +0 -12
  219. package/dot_config/git/commit-template +0 -10
  220. package/dot_config/git/hooks/executable_commit-msg +0 -146
  221. package/dot_config/git/ignore +0 -27
  222. package/dot_config/gnupg/gpg-agent.conf +0 -11
  223. package/dot_config/go/golangci.yml +0 -118
  224. package/dot_config/go/gopls.json +0 -30
  225. package/dot_config/goose/config.yaml +0 -29
  226. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  227. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  228. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  229. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  230. package/dot_config/htop/htoprc +0 -20
  231. package/dot_config/inputrc +0 -2
  232. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  233. package/dot_config/just/justfile +0 -122
  234. package/dot_config/k9s/config.yaml +0 -65
  235. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  236. package/dot_config/kanshi/config.tmpl +0 -22
  237. package/dot_config/karabiner/karabiner.json +0 -14
  238. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  239. package/dot_config/lazydocker/config.yml +0 -186
  240. package/dot_config/lazygit/config.yml +0 -35
  241. package/dot_config/mako/config +0 -47
  242. package/dot_config/mas/masapps.txt +0 -5
  243. package/dot_config/micro/settings.json +0 -3
  244. package/dot_config/mimeapps.list +0 -77
  245. package/dot_config/minikube/config.json +0 -13
  246. package/dot_config/mise/config.toml +0 -99
  247. package/dot_config/mongosh/mongoshrc.js +0 -68
  248. package/dot_config/mpv/input.conf +0 -47
  249. package/dot_config/mpv/mpv.conf +0 -47
  250. package/dot_config/mycli/myclirc +0 -67
  251. package/dot_config/nano/nanorc +0 -28
  252. package/dot_config/ncdu/config +0 -12
  253. package/dot_config/niri/config.kdl.tmpl +0 -327
  254. package/dot_config/nushell/aliases.nu +0 -18
  255. package/dot_config/nushell/cached_eval.nu +0 -80
  256. package/dot_config/nushell/completions.nu.tmpl +0 -52
  257. package/dot_config/nushell/config.nu.tmpl +0 -86
  258. package/dot_config/nushell/env.nu.tmpl +0 -102
  259. package/dot_config/nushell/functions.nu.tmpl +0 -17
  260. package/dot_config/nvim/init.lua +0 -18
  261. package/dot_config/nvim/lazy-lock.json +0 -58
  262. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  263. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  264. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  265. package/dot_config/nvim/lua/config/options.lua +0 -49
  266. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  267. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  268. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  269. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  270. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  271. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  272. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  273. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  274. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  275. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  276. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  277. package/dot_config/paru/paru.conf +0 -10
  278. package/dot_config/pip/pip.conf.tmpl +0 -32
  279. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  280. package/dot_config/pueue/pueue.yml +0 -34
  281. package/dot_config/pypoetry/config.toml +0 -6
  282. package/dot_config/pyrightconfig.json +0 -5
  283. package/dot_config/raycast/README.md +0 -13
  284. package/dot_config/redis/redisclirc +0 -41
  285. package/dot_config/ripgrep/ripgreprc +0 -21
  286. package/dot_config/shell/00-core-paths.sh.tmpl +0 -134
  287. package/dot_config/shell/05-core-safety.sh +0 -48
  288. package/dot_config/shell/10-secrets.sh +0 -41
  289. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  290. package/dot_config/shell/40-ls-colors.sh +0 -49
  291. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  292. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  293. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  294. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  295. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  296. package/dot_config/shell/Brewfile +0 -207
  297. package/dot_config/shell/Brewfile.cask +0 -92
  298. package/dot_config/shell/Brewfile.cli +0 -127
  299. package/dot_config/shell/README.md +0 -284
  300. package/dot_config/shell/als_data.txt.tmpl +0 -65
  301. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  302. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  303. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  304. package/dot_config/sops/dot_sops.yaml +0 -23
  305. package/dot_config/starship.toml.tmpl +0 -202
  306. package/dot_config/swaylock/config +0 -43
  307. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  308. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  309. package/dot_config/systemd/user/pueued.service +0 -12
  310. package/dot_config/systemd/user/ssh-agent.service +0 -12
  311. package/dot_config/task/Taskfile.yml +0 -86
  312. package/dot_config/tflint/tflint.hcl +0 -9
  313. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  314. package/dot_config/topgrade.toml.tmpl +0 -54
  315. package/dot_config/user-dirs.dirs +0 -10
  316. package/dot_config/vscode/extensions.txt +0 -11
  317. package/dot_config/vscode/settings.json.tmpl +0 -82
  318. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  319. package/dot_config/waybar/style.css.tmpl +0 -211
  320. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  321. package/dot_config/wget/wgetrc +0 -12
  322. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  323. package/dot_config/yarn/yarnrc.yml +0 -36
  324. package/dot_config/yazi/keymap.toml +0 -67
  325. package/dot_config/yazi/theme.toml +0 -102
  326. package/dot_config/yazi/yazi.toml +0 -40
  327. package/dot_config/zathura/zathurarc +0 -52
  328. package/dot_config/zellij/config.kdl.tmpl +0 -79
  329. package/dot_config/zsh/dot_zprofile +0 -7
  330. package/dot_config/zsh/dot_zshenv +0 -5
  331. package/dot_config/zsh/dot_zshrc.tmpl +0 -635
  332. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  333. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  334. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  335. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  336. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  337. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  338. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  339. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  340. package/dot_local/bin/executable_ai-update +0 -195
  341. package/dot_local/bin/executable_ai_core +0 -152
  342. package/dot_local/bin/executable_antigravity +0 -11
  343. package/dot_local/bin/executable_b64 +0 -84
  344. package/dot_local/bin/executable_bm +0 -79
  345. package/dot_local/bin/executable_cb +0 -39
  346. package/dot_local/bin/executable_dot +0 -596
  347. package/dot_local/bin/executable_dot-ai +0 -36
  348. package/dot_local/bin/executable_dot-bootstrap +0 -77
  349. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  350. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  351. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  352. package/dot_local/bin/executable_dot-theme-sync +0 -952
  353. package/dot_local/bin/executable_dot_completion +0 -57
  354. package/dot_local/bin/executable_dtags +0 -28
  355. package/dot_local/bin/executable_epoch +0 -67
  356. package/dot_local/bin/executable_extract +0 -41
  357. package/dot_local/bin/executable_gbd +0 -52
  358. package/dot_local/bin/executable_gd +0 -42
  359. package/dot_local/bin/executable_git-ai-commit +0 -175
  360. package/dot_local/bin/executable_git-ai-diff +0 -169
  361. package/dot_local/bin/executable_gl +0 -101
  362. package/dot_local/bin/executable_hash +0 -161
  363. package/dot_local/bin/executable_hashsum +0 -160
  364. package/dot_local/bin/executable_hex +0 -115
  365. package/dot_local/bin/executable_jsonv +0 -78
  366. package/dot_local/bin/executable_jwt +0 -94
  367. package/dot_local/bin/executable_kill-port +0 -75
  368. package/dot_local/bin/executable_lorem +0 -118
  369. package/dot_local/bin/executable_mkscript +0 -35
  370. package/dot_local/bin/executable_monitor +0 -56
  371. package/dot_local/bin/executable_myip +0 -51
  372. package/dot_local/bin/executable_notify +0 -24
  373. package/dot_local/bin/executable_open +0 -38
  374. package/dot_local/bin/executable_pw +0 -27
  375. package/dot_local/bin/executable_rec-start +0 -46
  376. package/dot_local/bin/executable_rec-stop +0 -35
  377. package/dot_local/bin/executable_regex +0 -132
  378. package/dot_local/bin/executable_start-niri +0 -8
  379. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  380. package/dot_local/bin/executable_tour +0 -177
  381. package/dot_local/bin/executable_up +0 -23
  382. package/dot_local/bin/executable_update +0 -142
  383. package/dot_local/bin/executable_uuid +0 -87
  384. package/dot_local/bin/executable_win +0 -32
  385. package/dot_local/bin/executable_yamlv +0 -57
  386. package/dot_local/share/bash-completion/completions/dot +0 -72
  387. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  388. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  389. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  390. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  391. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  392. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  393. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  394. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  395. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  396. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  397. package/dot_local/share/man/man1/dot.1 +0 -149
  398. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  399. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  400. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  401. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  402. package/dot_local/share/zsh/completions/.keep +0 -0
  403. package/dot_local/share/zsh/completions/_dot +0 -283
  404. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  405. package/scripts/ci/check-deps-dev.sh +0 -236
  406. package/scripts/ci/check-insecure-tls.sh +0 -61
  407. package/scripts/ci/check-regression-traceability.sh +0 -67
  408. package/scripts/ci/install-chezmoi-verified.sh +0 -64
  409. package/scripts/ci/run-coverage.sh +0 -362
  410. package/scripts/ci/validate-chezmoidata.sh +0 -25
  411. package/scripts/ci/validate-ci-config.sh +0 -224
  412. package/scripts/docs/build-manual.sh +0 -883
  413. package/scripts/docs/check-manual.sh +0 -213
  414. package/scripts/dot/lib/bento.sh +0 -50
  415. package/scripts/dot/lib/log.sh +0 -200
  416. package/scripts/dot/lib/platform.sh +0 -99
  417. package/scripts/dot/lib/ui.sh +0 -518
  418. package/scripts/dot/lib/utils.sh +0 -377
  419. package/scripts/maintenance/check-updates.sh +0 -131
  420. package/scripts/release/package-policy-bundles.sh +0 -125
@@ -0,0 +1,143 @@
1
+ ---
2
+ title: "AI Cost Optimization"
3
+ date: 2026-05-24
4
+ ---
5
+
6
+ # AI Cost Optimization
7
+
8
+ This dotfiles framework ships an opinionated AI-cost layer designed to
9
+ keep token spend predictable and low while still using the smartest
10
+ model for orchestration. Two ideas drive it:
11
+
12
+ 1. **Delegate the grunt work.** Have the expensive smart model
13
+ orchestrate, and a cheap fast model do the file reads, edits, and
14
+ verification. The smart model sees one tool call and the final
15
+ `git diff` instead of every intermediate read.
16
+ 2. **Account every call.** Every invocation through `dot ai <provider>`
17
+ appends a JSONL entry so you can see spend across all providers in
18
+ one report, not just per-tool dashboards.
19
+
20
+ ## Quick reference
21
+
22
+ ```sh
23
+ dot ai delegate "rename every UserService method that starts with get to fetch"
24
+ dot ai cost # all-time overview
25
+ dot ai cost --since 7 # last 7 days
26
+ dot ai cost --fails # only failures + breakdown by failure type
27
+ ```
28
+
29
+ Inside Claude Code: `/vibe`, `/vibe-report`, `/vibeon`, `/vibeoff`,
30
+ `/vibestatus`, `/vibe-model-pick`, `/vibe-model-clear`.
31
+
32
+ ## The delegator pattern
33
+
34
+ The pattern comes from [pcx-wave/vibe-skill][vibe-skill]. Mistral Vibe
35
+ is the default delegate but the same wrapper accepts any model Vibe
36
+ knows about (DeepSeek V4 Flash, Gemini Flash, etc.).
37
+
38
+ [vibe-skill]: https://github.com/pcx-wave/vibe-skill
39
+
40
+ Cost comparison (May 2026 list prices, blended 85 in / 15 out typical
41
+ of coding tasks):
42
+
43
+ | Task | Claude Sonnet 4.6 ($3 / $15) | Mistral Medium 3.5 ($1.50 / $7.50) | DeepSeek V4 Flash ($0.14 / $0.28) |
44
+ |---|---|---|---|
45
+ | 1-file tweak (800 tok) | ~$0.004 | ~$0.002 | ~$0.0001 |
46
+ | 6-read task (4,800 tok) | ~$0.023 | ~$0.012 | ~$0.0008 |
47
+ | Multi-file refactor (12,000 tok) | ~$0.058 | ~$0.029 | ~$0.002 |
48
+
49
+ Real-world stats from 254 vibe-skill runs over 10 days (May 2026):
50
+
51
+ | | Amount |
52
+ |---|---|
53
+ | Actually paid (Mistral Pro prorated + DeepSeek pay-as-you-go) | **$10.35** |
54
+ | Same workload pay-as-you-go via Mistral API | $46.61 |
55
+ | Same workload on Claude Sonnet 4.6 | $179.91 |
56
+ | Saved vs Claude | **$169.56 (17.4× cheaper)** |
57
+
58
+ Claude itself contributes ~500-1500 tokens per delegation as
59
+ orchestration overhead. Even with that overhead the savings dominate
60
+ for anything beyond a one-line edit.
61
+
62
+ ## Pieces deployed by this repo
63
+
64
+ | Component | Source path | Deployed to | Role |
65
+ |---|---|---|---|
66
+ | `vibe` skill | `defaults/dot_claude/skills/vibe/` | `~/.claude/skills/vibe/` | Claude Code slash commands (`/vibe`, `/vibe-report`, etc.) |
67
+ | Delegator binary | `defaults/dot_claude/skills/vibe/tools/executable_vibe-delegate` | `~/.claude/skills/vibe/tools/vibe-delegate` | Runs the cheap-model task in a pseudo-TTY, parses streaming JSON, syntax-checks changes, logs the run |
68
+ | Reporter | `defaults/dot_claude/skills/vibe/tools/executable_delegate-report` | `~/.claude/skills/vibe/tools/delegate-report` | Reads the JSONL log, prints overview / by-model / by-project / failure tables |
69
+ | CLI shim | `scripts/dot/commands/ai.sh` | `bin/dot ai delegate` / `bin/dot ai cost` | Same delegator + reporter, callable from the terminal without Claude Code |
70
+ | Unified log hook | `_ai_log_run` in `ai.sh` | runs inside `run_ai_with_context` | Appends one JSONL line per `dot ai <provider>` invocation |
71
+ | Log file | runtime-managed | `~/.local/share/delegate-runs.jsonl` | One line per run; `dot ai cost` reads it |
72
+
73
+ ## State files
74
+
75
+ | File | Owner | Purpose |
76
+ |---|---|---|
77
+ | `~/.local/share/delegate-runs.jsonl` | runtime | One JSONL entry per AI invocation (vibe + every other provider) |
78
+ | `~/.local/share/vibe-auto.flag` | `/vibeon` / `/vibeoff` | When present, Claude auto-delegates coding tasks to Vibe |
79
+ | `~/.local/share/vibe-model.flag` | `/vibe-model-pick` | Override the Vibe model for the next runs; cleared by `/vibe-model-clear` |
80
+ | `~/.vibe/config.toml` | user | Vibe's own provider / model configuration |
81
+
82
+ ## Reading the report
83
+
84
+ ```
85
+ DELEGATE REPORT 2026-05-17 → 2026-05-24
86
+ Runs : 27 (ok: 25, failed: 2, timeout: 0)
87
+ Success rate : 92%
88
+ Avg duration : 18.4s
89
+ Tokens total : 4,231,082
90
+ Delegate cost : $1.4711
91
+ Claude equiv : $14.8294
92
+ Saved : $13.3583 (90% cheaper than Claude)
93
+ ```
94
+
95
+ `Claude equiv` is what the same workload would have cost on Claude
96
+ Sonnet 4.6 ($3 / $15 per M tokens, blended at the same in/out ratio).
97
+ The savings line is the difference. Failure types are broken out per
98
+ model so you can see which delegate is most reliable for your repo.
99
+
100
+ ## Provider coverage
101
+
102
+ Every provider exposed via `dot ai <provider>` is logged best-effort.
103
+ For providers that don't surface token counts in their CLI output, the
104
+ report still tracks: timestamp, project, exit code, duration, prompt
105
+ word count. Token / cost fields stay zero for those providers — the
106
+ report tolerates the gap and aggregates by `model` regardless.
107
+
108
+ Providers tracked today:
109
+
110
+ | Provider | Binary | Logged | Tokens surfaced? |
111
+ |---|---|---|---|
112
+ | Claude Code | `claude` | yes | no (CLI doesn't expose) |
113
+ | Codex | `codex` | yes | no |
114
+ | Copilot CLI | `copilot` | yes | no |
115
+ | Gemini CLI | `gemini` | yes | no |
116
+ | Goose | `goose` | yes | no |
117
+ | Aider | `aider` | yes | no |
118
+ | OpenCode | `opencode` | yes | no |
119
+ | Autohand | `autohand` | yes | no |
120
+ | Mistral Vibe | `vibe` | yes | **yes** (via delegator) |
121
+ | Qwen | `qwen` | yes | no |
122
+ | ZAI | `zai` | yes | no |
123
+ | Shell-GPT | `sgpt` | yes | no |
124
+ | Ollama (local) | `ollama` | yes | n/a (no cost) |
125
+ | Kiro CLI | `kiro-cli` | yes | no |
126
+
127
+ ## Future work
128
+
129
+ Not implemented yet, ordered roughly by likely impact:
130
+
131
+ 1. **Provider-level budget guard.** `dot ai budget --set 50/month`
132
+ would warn at 80% and refuse new requests at 100% (overridable).
133
+ Needs per-provider cost estimation hooks beyond what each CLI
134
+ surfaces today.
135
+ 2. **Prompt response cache.** Many coding-helper queries are
136
+ deterministic ("syntax for X in Y"). A local cache keyed on prompt
137
+ hash + provider could short-circuit repeat queries.
138
+ 3. **Per-task-class model routing.** `dot ai delegate --class refactor`
139
+ would pick the cheapest model that meets the quality bar for the
140
+ task class. Today the user picks the model.
141
+ 4. **Rate-limit awareness.** Track API rate limits from response
142
+ headers, queue requests, surface a `dot ai cost --limits` view that
143
+ shows time-to-reset for every provider with an active limit.
@@ -14,7 +14,7 @@ For naming conventions (file prefixes, run-script numbering tiers), see
14
14
  [`../NAMING_CONVENTIONS.md`](../NAMING_CONVENTIONS.md). For the broader
15
15
  architectural rationale (philosophy, startup model, flake strategy), see
16
16
  [`ARCHITECTURE.md`](ARCHITECTURE.md). For the configuration-management
17
- strategy at a higher level, see [`../../CONFIG_STRATEGY.md`](../../CONFIG_STRATEGY.md).
17
+ strategy at a higher level, see [`../CONFIG_STRATEGY.md`](../CONFIG_STRATEGY.md).
18
18
 
19
19
  ---
20
20
 
@@ -85,7 +85,7 @@ exist on purpose and don't overlap:
85
85
  |-------------------------------|-----------------------|------------------------------------------------------------------|-------------------------------|
86
86
  | `dot_claude/CLAUDE.md` | `~/.claude/CLAUDE.md` | Claude Code, in **any** cwd on this machine | Personal, cross-project |
87
87
  | `CLAUDE.md` (repo root) | Not deployed | Claude Code, when cwd is **this** repo | Repo-scoped guidance |
88
- | `OPENCODE.md` (repo root) | Not deployed | OpenCode CLI, when cwd is **this** repo | Repo-scoped guidance (mirror) |
88
+ | `docs/OPENCODE.md` | Not deployed | OpenCode CLI, when cwd is **this** repo | Repo-scoped guidance (mirror) |
89
89
  | `.claude/settings.local.json` | Not deployed, **not tracked** | Claude Code | Per-machine permission allowlist |
90
90
 
91
91
  Each of the three tracked files carries a header comment explaining its
@@ -143,11 +143,11 @@ the repo itself.
143
143
 
144
144
  | Subdir | Purpose |
145
145
  |-------------------------------------------|-----------------------------------------------------------------|
146
- | `scripts/ci/` | CI helpers (`check-copyright-headers.sh`, `install-chezmoi-verified.sh`, `validate-ci-config.sh`) |
146
+ | `tools/ci/` | CI helpers (`check-copyright-headers.sh`, `install-chezmoi-verified.sh`, `validate-ci-config.sh`) |
147
147
  | `scripts/dot/commands/` | Subcommand implementations for the `dot` CLI |
148
- | `scripts/docs/` | Manual build pipeline (`build-manual.sh`, `check-manual.sh`) |
148
+ | `tools/docs/` | Manual build pipeline (`build-manual.sh`, `check-manual.sh`) |
149
149
  | `scripts/theme/` | K-Means CIELAB theme engine + HEIC merge/convert |
150
- | `scripts/ops/`, `scripts/maintenance/`, `scripts/release/` | Operator tooling |
150
+ | `scripts/ops/`, `tools/maintenance/`, `tools/release/` | Operator tooling |
151
151
  | `scripts/diagnostics/`, `scripts/qa/`, `scripts/security/`, `scripts/secrets/` | Domain-scoped scripts |
152
152
  | `scripts/fonts/`, `scripts/demo/`, `scripts/git-hooks/`, `scripts/tools/`, `scripts/tuning/`, `scripts/lib/` | Supporting scripts |
153
153
  | `scripts/uninstall.sh`, `scripts/version-sync.sh` | Top-level ops entrypoints |
@@ -199,7 +199,7 @@ braces.
199
199
  | `templates/chezmoi-data/`, `templates/projects/` | Starter scaffolding for new machines / new projects |
200
200
  | `examples/` | 14 standalone demo scripts used by the manual and tutorials |
201
201
  | `CHANGELOG.md`, `LICENSE`, `README.md` | Standard |
202
- | `CONFIG_STRATEGY.md` | High-level "how configuration management works here" overview |
202
+ | `docs/CONFIG_STRATEGY.md` | High-level "how configuration management works here" overview |
203
203
  | `.gitattributes`, `.gitignore`, `.gitleaksignore`, `.editorconfig`, `.secrets.baseline`, `.sops.yaml`, `.luacheckrc` | Repo-level tool configs |
204
204
  | `.pre-commit-config.yaml` → `config/pre-commit-config.yaml` | Symlink so `pre-commit` finds the canonical config |
205
205
 
@@ -213,7 +213,7 @@ version control. If one of them ever shows up in `git status`, check the
213
213
 
214
214
  | Path | Source |
215
215
  |--------------------------|------------------------------------------------------------------------------|
216
- | `_build/` | Output of `scripts/docs/build-manual.sh` |
216
+ | `_build/` | Output of `tools/docs/build-manual.sh` |
217
217
  | `.pnpm-store/` | pnpm's content-addressable store (should never appear here) |
218
218
  | `.claude/` | Claude Code per-machine state (`settings.local.json` permission allowlists) |
219
219
  | `node_modules/` | Node dependency trees from repo-local scripts |
@@ -229,7 +229,7 @@ A quick decision tree for common cases:
229
229
 
230
230
  - **New app config that lives under `~/.config/<app>/`** → `dot_config/<app>/` (see `docs/NAMING_CONVENTIONS.md` → "Adding New Modules").
231
231
  - **New user-facing CLI script** → `dot_local/bin/executable_<name>`.
232
- - **New `dot` subcommand** → implementation in `scripts/dot/commands/<name>.sh`, routing in `dot_local/bin/executable_dot`.
232
+ - **New `dot` subcommand** → implementation in `scripts/dot/commands/<name>.sh`, routing in `bin/dot`.
233
233
  - **New repo-only automation** (CI helper, maintenance task, release step) → `scripts/<domain>/<name>.sh`.
234
234
  - **New test** → `tests/unit/<domain>/test_<feature>.sh` (follow `test_{domain}_{feature}.sh` naming).
235
235
  - **New doc** → pick the narrowest of `docs/architecture/`, `docs/reference/`, `docs/guides/`, `docs/operations/`, `docs/security/`.
@@ -16,7 +16,7 @@ This milestone keeps scope intentionally small and operationally focused.
16
16
 
17
17
  - [x] Add `dot verify` command routing in diagnostics module.
18
18
  - `scripts/dot/commands/diagnostics.sh`
19
- - `dot_local/bin/executable_dot`
19
+ - `bin/dot`
20
20
  - [x] Add verification runner script.
21
21
  - `scripts/diagnostics/verify.sh`
22
22
  - Runs:
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.501-blue?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.501)
10
+ [![Version](https://img.shields.io/badge/Version-v0.2.503-blue?style=for-the-badge)](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.503)
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.501`](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.501)
41
+ - Current tagged release: [`v0.2.503`](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.503)
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)
@@ -13,7 +13,7 @@ and what specifically is verified. Closes the docs slice of
13
13
 
14
14
  | File | Role |
15
15
  |---|---|
16
- | [`dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl`](../../dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl) | The dotfiles PowerShell profile. Deployed to `$PROFILE` (resolves to `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on Linux/macOS; `Documents\PowerShell\Microsoft.PowerShell_profile.ps1` on Windows). |
16
+ | [`dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl`](../../defaults/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl) | The dotfiles PowerShell profile. Deployed to `$PROFILE` (resolves to `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on Linux/macOS; `Documents\PowerShell\Microsoft.PowerShell_profile.ps1` on Windows). |
17
17
  | [`scripts/qa/powershell-contract.ps1`](../../scripts/qa/powershell-contract.ps1) | The runtime contract. Renders the template, dot-sources it, asserts required function shims exist, runs PSScriptAnalyzer. |
18
18
  | [`tests/unit/install/test_powershell_profile_syntax.sh`](../../tests/unit/install/test_powershell_profile_syntax.sh) | Static-syntax test runnable on Linux/macOS via `pwsh` when present; falls back to brace-balance + textual invariants when not. |
19
19
 
@@ -4,7 +4,7 @@ render_with_liquid: false
4
4
 
5
5
  # Introduction
6
6
 
7
- This manual describes `.dotfiles` v0.2.501 — a trusted agent workstation baseline for macOS, Linux, and WSL.
7
+ This manual describes `.dotfiles` v0.2.503 — 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
 
@@ -32,7 +32,7 @@ The trust anchor is the signer's public key published in `~/.ssh/allowed_signers
32
32
 
33
33
  ### Verified Chezmoi Installer
34
34
 
35
- The `install.sh` script prefers `scripts/ci/install-chezmoi-verified.sh`, which:
35
+ The `install.sh` script prefers `tools/ci/install-chezmoi-verified.sh`, which:
36
36
 
37
37
  1. Downloads chezmoi from the upstream release URL
38
38
  2. Verifies the SHA256 checksum against a hardcoded, version-pinned value
@@ -151,19 +151,6 @@ dot attest [--output|-o <file>] [--sign|-s]
151
151
 
152
152
  Default output: `~/.local/state/dotfiles/attestation/YYYY-MM-DD-HHMMSS.json`. With `--sign`, the JSON is signed with the user's SSH ED25519 key.
153
153
 
154
- ### `dot verify`
155
-
156
- Verify integrity of the installation.
157
-
158
- ```
159
- dot verify [--security|-s] [--attestation <path>]
160
- ```
161
-
162
- | Flag | Effect |
163
- |:---|:---|
164
- | `--security`, `-s` | Run gitleaks + signature checks + policy hash |
165
- | `--attestation <path>` | Verify an external attestation file |
166
-
167
154
  ### `dot lint`
168
155
 
169
156
  Lint shell scripts (shellcheck, shfmt).
@@ -174,24 +161,6 @@ dot lint [--path <glob>] [--strict]
174
161
 
175
162
  ## Performance
176
163
 
177
- ### `dot benchmark`
178
-
179
- Measure shell startup time.
180
-
181
- ```
182
- dot benchmark [--detailed|-d] [--profile|-p] [--compare|-c] [--waterfall|-w] [--runs|-r <n>]
183
- ```
184
-
185
- | Flag | Effect |
186
- |:---|:---|
187
- | `--detailed`, `-d` | Per-module timing breakdown |
188
- | `--profile`, `-p` | Profile with `$SHELL -ixc ""` |
189
- | `--compare`, `-c` | Compare against baseline |
190
- | `--waterfall`, `-w` | Waterfall visualization |
191
- | `--runs`, `-r <n>` | Number of hyperfine runs (default 10) |
192
-
193
- Exit codes: 0 (<500ms target), 1 (regression).
194
-
195
164
  ### `dot perf`
196
165
 
197
166
  Quick performance snapshot.
@@ -200,17 +169,9 @@ Quick performance snapshot.
200
169
  dot perf [--json|-j] [--profile|-p] [--runs|-r <n>] [--target|-t <ms>]
201
170
  ```
202
171
 
203
- ### `dot prewarm`
204
-
205
- Regenerate shell init caches for fast startup.
206
-
207
172
  ### `dot cache-refresh`
208
173
 
209
- Rebuild generated shell state (cold-start alternative to prewarm).
210
-
211
- ### `dot clean-cache`
212
-
213
- Clear generated shell initialization caches. Next shell startup will be slow; use `dot prewarm` afterward.
174
+ Regenerate shell caches for ultra-fast startup.
214
175
 
215
176
  ### `dot score`
216
177
 
@@ -322,11 +283,72 @@ Multi-node status, drift, and namespace.
322
283
  dot fleet # show all known hosts
323
284
  dot fleet attest # collect signed attestations
324
285
  dot fleet diff # compare rendered config across hosts
325
- dot fleet sync # run `dot update` on every host
286
+ dot fleet sync # run `dot upgrade` on every host
287
+ dot fleet apply # SSH out to every host in fleet.toml and run 'dot sync'
326
288
  ```
327
289
 
328
290
  Fleet hosts are configured in `~/.config/dotfiles/fleet.toml`.
329
291
 
292
+ ### `dot fleet apply`
293
+
294
+ Push dotfiles state to every host registered in `~/.config/dotfiles/fleet.toml`.
295
+
296
+ ```
297
+ dot fleet apply [--host <name>] [--cmd <shell>] [--dry-run] [--jobs <n>]
298
+ ```
299
+
300
+ | Flag | Effect |
301
+ |:---|:---|
302
+ | `--host <name>` | Apply to a single host only (matches the `[hosts.<name>]` stanza key). |
303
+ | `--cmd <shell>` | Run a custom command on every host instead of the default `dot sync && dot doctor --quiet`. **Warning:** this is arbitrary shell on remote hosts; the value is your trust boundary. |
304
+ | `--dry-run`, `-n` | Print the resolved hosts + planned command without opening SSH. |
305
+ | `--jobs <n>` | Parallelism (default 4). |
306
+
307
+ Hostnames in `fleet.toml` are validated against `[A-Za-z0-9._@:+/-]+` before fan-out; entries containing other characters abort the apply. First-time SSH connections use `StrictHostKeyChecking=accept-new` (TOFU); pre-populate `~/.ssh/known_hosts` if your threat model requires no TOFU window.
308
+
309
+ Example `fleet.toml`:
310
+
311
+ ```toml
312
+ [hosts.laptop]
313
+ ssh = "user@laptop.local"
314
+ profile = "workstation"
315
+ ```
316
+
317
+ ## Agents
318
+
319
+ ### `dot agents`
320
+
321
+ Multi-harness AI agent configuration manager. `CLAUDE.md` is canonical; `dot agents render` keeps `AGENTS.md` (the cross-harness standard read by Codex / Copilot / Cursor / Windsurf / Amp / Devin) plus `.cursor/rules/dotfiles.mdc` and `.codex/config.toml` in sync.
322
+
323
+ ```
324
+ dot agents list # show which harnesses are recognised + their target paths
325
+ dot agents check # exit 0 if AGENTS.md tracks CLAUDE.md; 1 if drifted
326
+ dot agents render # regenerate AGENTS.md + 10 harness-specific files
327
+ ```
328
+
329
+ Harnesses covered: `AGENTS.md` (canonical cross-harness), Cursor (`.cursor/rules/dotfiles.mdc`), Codex (`.codex/config.toml`), Windsurf (`.windsurf/rules.md`), Zed (`.zed/agent-config.toml`), Roo (`.roo/rules.md`), Cline (`.clinerules`), Aider (`.aider.conf.yml`), Continue (`.continuerc.json`), Jules (`.jules/system.md`), Gemini (`.gemini/GEMINI.md`).
330
+
331
+ Edit `CLAUDE.md` first, then run `dot agents render`; do not hand-edit `AGENTS.md` or any of the per-harness files. The check subcommand is suitable for pre-commit hooks.
332
+
333
+ ## Registry
334
+
335
+ ### `dot registry`
336
+
337
+ JSON-indexed module registry. Discover and install reusable dotfile modules from a registry hosted via GitHub Pages (or any HTTPS URL via `set-url`).
338
+
339
+ ```
340
+ dot registry list # list modules in the configured registry
341
+ dot registry search <query> # filter modules by keyword
342
+ dot registry info <name> # full metadata for one module
343
+ dot registry install <name> # apply a module (scaffold today)
344
+ dot registry url # show the active registry URL
345
+ dot registry set-url <url> # override the registry URL (HTTPS-only)
346
+ ```
347
+
348
+ Default registry: `https://sebastienrousseau.github.io/dotfiles/registry.json`. Cache lives at `${XDG_CACHE_HOME:-~/.cache}/dotfiles/registry/index.json` with a 6h TTL. One-off override: `DOTFILES_REGISTRY_URL=<url> dot registry list`.
349
+
350
+ The JSON contract + module-contribution flow live in [`docs/operations/REGISTRY.md`](../../operations/REGISTRY.md).
351
+
330
352
  ## Reference
331
353
 
332
354
  ### `dot version`
@@ -361,10 +383,6 @@ dot add --encrypt ~/.somefile # encrypted with Age
361
383
  dot add --template ~/.somefile # templatize
362
384
  ```
363
385
 
364
- ### `dot remove <path>`
365
-
366
- Safely remove a managed file (removes from source and unmanages).
367
-
368
386
  ### `dot cd`
369
387
 
370
388
  Print the source directory path. Useful for `cd $(dot cd)`.
@@ -33,7 +33,7 @@ Every config file read or written by `.dotfiles`, with its schema and purpose.
33
33
 
34
34
  ```toml
35
35
  # Version — bumped by version-sync.sh at release time
36
- dotfiles_version = "0.2.501"
36
+ dotfiles_version = "0.2.503"
37
37
 
38
38
  # Machine preset — override in ~/.config/chezmoi/chezmoi.toml per host
39
39
  machine = ""
@@ -219,7 +219,7 @@ Agent Card (MCP A2A spec):
219
219
  ```json
220
220
  {
221
221
  "name": "dotfiles-agent",
222
- "version": "0.2.501",
222
+ "version": "0.2.503",
223
223
  "capabilities": ["chezmoi.apply", "theme.switch", "secrets.decrypt"],
224
224
  "policy_hash": "0x7f2a..."
225
225
  }
@@ -11,10 +11,19 @@ Feature flags toggle optional subsystems. Set in `.chezmoidata.toml`, override p
11
11
 
12
12
  ```toml
13
13
  [features]
14
- dms = false # Dank Material Shell (Niri desktop)
14
+ alias_wrapper = false # Wrap selected aliases with safer defaults
15
+ dms = true # Dank Material Shell (Niri desktop)
16
+ zellij = false # Zellij terminal multiplexer config
15
17
  linux_desktop = false # Linux-specific desktop configs
16
- niri = false # Niri window manager
17
- waybar = false # Waybar status bar
18
+ niri = false # Niri window manager
19
+ waybar = false # Waybar status bar
20
+ fuzzel = false # Fuzzel application launcher (Wayland)
21
+ mako = false # Mako notification daemon (Wayland)
22
+ foot = false # Foot terminal emulator (Wayland)
23
+ kanshi = false # Kanshi monitor profile manager (Wayland)
24
+ touch = false # Touchscreen-friendly tweaks (Surface, etc.)
25
+ t2 = false # Apple T2 hardware-specific tweaks
26
+ surface = false # Microsoft Surface hardware-specific tweaks
18
27
  ```
19
28
 
20
29
  ## Per-Preset Overrides (`.chezmoidata/hardware.toml`)
@@ -69,6 +78,56 @@ When `true`:
69
78
 
70
79
  Requires: Waybar installed.
71
80
 
81
+ ### `alias_wrapper` — Safer Alias Defaults
82
+
83
+ When `true`, opt-in wrappers replace selected aliases with confirmation-prompt
84
+ variants (e.g., `rm -i`, `mv -i`). Default `false` for power-user ergonomics.
85
+
86
+ ### `zellij` — Zellij Terminal Multiplexer
87
+
88
+ When `true`:
89
+
90
+ - Generates `~/.config/zellij/config.kdl` from the active theme
91
+ - Wires the `dot mux` alias to launch a profile-aware session
92
+
93
+ Requires: Zellij installed.
94
+
95
+ ### `fuzzel` — Fuzzel Application Launcher (Wayland)
96
+
97
+ When `true`, generates `~/.config/fuzzel/fuzzel.ini` using the active theme.
98
+ Requires: Fuzzel installed (Wayland-only). No effect on macOS.
99
+
100
+ ### `mako` — Mako Notification Daemon (Wayland)
101
+
102
+ When `true`, generates `~/.config/mako/config` with theme-derived colors.
103
+ Requires: Mako installed (Wayland-only). No effect on macOS.
104
+
105
+ ### `foot` — Foot Terminal Emulator (Wayland)
106
+
107
+ When `true`, generates `~/.config/foot/foot.ini` from `themes.toml`.
108
+ Requires: Foot installed (Wayland-only). No effect on macOS.
109
+
110
+ ### `kanshi` — Kanshi Monitor Profile Manager (Wayland)
111
+
112
+ When `true`, generates `~/.config/kanshi/config` with per-host monitor layouts.
113
+ Requires: Kanshi installed (Wayland-only). No effect on macOS.
114
+
115
+ ### `touch` — Touchscreen-Friendly Tweaks
116
+
117
+ When `true`, enables larger UI scaling and touch-friendly input mappings.
118
+ Typically combined with `surface` for Microsoft Surface devices.
119
+
120
+ ### `t2` — Apple T2 Hardware Tweaks
121
+
122
+ When `true`, enables `t2linux` kernel-module hints, audio routing fixes, and
123
+ Touch-Bar utilities for Intel Macs with the T2 chip on Linux. Set by the
124
+ `macbook-t2` hardware preset in `.chezmoidata/hardware.toml`.
125
+
126
+ ### `surface` — Microsoft Surface Hardware Tweaks
127
+
128
+ When `true`, enables `linux-surface` kernel parameters, touchpad gestures, and
129
+ pen-input mappings. Set by the `surface-pro` hardware preset.
130
+
72
131
  ## Using a Flag in a Template
73
132
 
74
133
  ```go
@@ -2,7 +2,7 @@
2
2
  # Determines concatenation order for single-page HTML/PDF/EPUB
3
3
  title: "The .dotfiles Manual"
4
4
  subtitle: "A Trusted Agent Workstation for macOS, Linux, and WSL"
5
- version: "0.2.501"
5
+ version: "0.2.503"
6
6
 
7
7
  sections:
8
8
  - file: 00-introduction.md
@@ -4,59 +4,76 @@ render_with_liquid: false
4
4
 
5
5
  # Command Index
6
6
 
7
- Alphabetical list of `dot` subcommands referenced in the manual.
7
+ Generated from `dot help all`. To refresh after adding or renaming
8
+ a subcommand, run `tools/docs/generate-command-index.sh`. The CI
9
+ job `lint/command-index` fails when this file is stale.
8
10
 
9
- - `dot agent`
10
- - `dot ai`
11
- - `dot apply --dry-run`
12
- - `dot apply`
13
- - `dot attest`
14
- - `dot benchmark --detailed`
15
- - `dot benchmark`
16
- - `dot bundle`
17
- - `dot cache-refresh`
18
- - `dot cd`
19
- - `dot chaos`
20
- - `dot clean-cache`
21
- - `dot commit`
22
- - `dot diff`
23
- - `dot doctor --json`
24
- - `dot doctor`
25
- - `dot drift`
26
- - `dot edit`
27
- - `dot env`
28
- - `dot fleet attest`
29
- - `dot fleet diff`
30
- - `dot fleet sync`
31
- - `dot fleet`
32
- - `dot heal`
33
- - `dot help`
34
- - `dot learn`
35
- - `dot lint`
36
- - `dot load-bench`
37
- - `dot manual text`
38
- - `dot manual`
39
- - `dot mcp --strict`
40
- - `dot mcp`
41
- - `dot metrics`
42
- - `dot mode`
43
- - `dot packages`
44
- - `dot perf`
45
- - `dot prewarm`
46
- - `dot profile`
47
- - `dot rollback`
48
- - `dot score`
49
- - `dot secrets rotate`
50
- - `dot secrets`
51
- - `dot status`
52
- - `dot sync`
53
- - `dot theme list`
54
- - `dot theme rebuild`
55
- - `dot theme toggle`
56
- - `dot theme`
57
- - `dot tune`
58
- - `dot update`
59
- - `dot upgrade`
60
- - `dot verify --security`
61
- - `dot verify`
62
- - `dot version`
11
+ | Command | Summary |
12
+ |---------|---------|
13
+ | `dot add` | Add a file to chezmoi source |
14
+ | `dot agent` | Profile-aware execution, agent card, a2a-card, session log, checkpoints, and conformance |
15
+ | `dot ai` | AI CLI status, delegate, and cost report |
16
+ | `dot ai-query` | Context-aware RAG query over your dotfiles |
17
+ | `dot ai-setup` | Interactive setup for all AI CLI tools |
18
+ | `dot aider` | Aider with context patterns |
19
+ | `dot attest` | Export workstation attestation evidence (--json |
20
+ | `dot backup` | Create a compressed backup of your home |
21
+ | `dot bundle` | Create offline archive of dotfiles environment |
22
+ | `dot cache-refresh` | Regenerate shell caches for ultra-fast startup |
23
+ | `dot cd` | Print source directory path (use: cd $(dot cd)) |
24
+ | `dot chaos` | Simulate config corruption to test self-healing |
25
+ | `dot cl` | Claude CLI with context patterns |
26
+ | `dot commit` | AI-powered conventional commit |
27
+ | `dot copilot` | GitHub Copilot CLI with context patterns |
28
+ | `dot diff` | Show chezmoi diff with exclusions |
29
+ | `dot dns-doh` | Enable DNS-over-HTTPS [macOS,Linux] |
30
+ | `dot docs` | Show repo README |
31
+ | `dot doctor` | Deep audit: tools, paths, portability, AI analysis (--ai |
32
+ | `dot edit` | Open chezmoi source in $EDITOR |
33
+ | `dot encrypt-check` | Check disk encryption status |
34
+ | `dot env` | Tool versions (mise) |
35
+ | `dot firewall` | Apply firewall hardening [macOS,Linux] |
36
+ | `dot fleet` | Show fleet node status, drift, and namespace (--json for machine output) |
37
+ | `dot fleet` | drift Check for configuration drift across managed files |
38
+ | `dot fleet` | events Show recent fleet events from local event log |
39
+ | `dot fleet` | namespace Show or set the active namespace for multi-tenant isolation |
40
+ | `dot fonts` | Install Nerd Fonts (JetBrainsMono by default) |
41
+ | `dot gemini` | Gemini CLI with context patterns |
42
+ | `dot help` | Show this help message |
43
+ | `dot history` | Shell history analysis |
44
+ | `dot keys` | Keybindings (sign-check: verify git signing) |
45
+ | `dot kiro` | Kiro CLI with context patterns |
46
+ | `dot learn` | Start the interactive tour of your new tools |
47
+ | `dot lint` | Lint shell scripts (--fix |
48
+ | `dot load-bench` | Measure time to heavy-layer readiness |
49
+ | `dot lock-screen` | Enforce lock screen idle settings [Linux] |
50
+ | `dot mcp` | Inspect MCP policy, supply chain, and registry |
51
+ | `dot metrics` | Show recent observability metrics (JSONL) |
52
+ | `dot mode` | Set or inspect agent operating profiles (ask/plan/apply/audit) |
53
+ | `dot new` | Create a new project from a template |
54
+ | `dot ollama` | Ollama with context patterns |
55
+ | `dot opencode` | OpenCode with context patterns |
56
+ | `dot packages` | List installed packages and package managers |
57
+ | `dot perf` | Show performance mode and quick timing |
58
+ | `dot profile` | Show/switch configuration profile |
59
+ | `dot rollback` | Rollback dotfiles to a previous state |
60
+ | `dot sandbox` | Launch a safe sandbox preview (Docker/Podman) |
61
+ | `dot score` | System health and security scorecard |
62
+ | `dot search` | Find commands by keyword |
63
+ | `dot secrets` | Edit encrypted secrets (age) |
64
+ | `dot secrets-create` | Create an encrypted secrets file |
65
+ | `dot secrets-init` | Initialize age key for secrets |
66
+ | `dot sgpt` | Shell-GPT with context patterns |
67
+ | `dot snapshot` | Capture baseline system snapshot |
68
+ | `dot ssh-cert` | Manage short-lived SSH certificates |
69
+ | `dot ssh-key` | Encrypt an SSH key locally with age |
70
+ | `dot status` | Show configuration drift (chezmoi status) |
71
+ | `dot sync` | Apply dotfiles (alias for apply; --pull to fetch, --check to preview) |
72
+ | `dot telemetry` | Disable OS telemetry [macOS,Linux] |
73
+ | `dot theme` | Switch terminal theme (dark/light) |
74
+ | `dot tools` | Show or install nix packages |
75
+ | `dot tune` | Apply OS tuning (opt-in) [macOS,Linux] |
76
+ | `dot upgrade` | Update system toolchains, plugins, and dotfiles |
77
+ | `dot usb-safety` | Disable automount for removable media [Linux] |
78
+ | `dot version` | Show version information. |
79
+ | `dot wallpaper` | Apply a wallpaper from your library [macOS,Linux] |