@sebastienrousseau/dotfiles 0.2.499 → 0.2.500

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 (538) hide show
  1. package/CHANGELOG.md +375 -0
  2. package/LICENSE +1283 -0
  3. package/README.md +284 -0
  4. package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
  5. package/docs/AI.md +102 -0
  6. package/docs/COPYRIGHT +4 -3
  7. package/docs/NAMING_CONVENTIONS.md +95 -0
  8. package/docs/README.md +78 -0
  9. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  10. package/docs/adr/ADR-002-shell-performance.md +121 -0
  11. package/docs/adr/ADR-003-security-first.md +140 -0
  12. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  13. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  14. package/docs/adr/ADR-006-shell-selection.md +115 -0
  15. package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
  16. package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
  17. package/docs/adr/README.md +32 -0
  18. package/docs/architecture/ARCHITECTURE.md +113 -0
  19. package/docs/architecture/INTEROP.md +36 -0
  20. package/docs/architecture/REPO_LAYOUT.md +237 -0
  21. package/docs/architecture/WALKTHROUGH.md +82 -0
  22. package/docs/architecture/fleet-deployment.md +73 -0
  23. package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
  24. package/docs/archive/LEGACY_ROADMAP.md +142 -0
  25. package/docs/archive/MILESTONE_v0.2.493.md +43 -0
  26. package/docs/{PLAN.md → archive/PLAN.md} +4 -4
  27. package/docs/archive/REPO_AUDIT.md +23 -0
  28. package/docs/guides/INSTALL.md +140 -0
  29. package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
  30. package/docs/guides/THEMING.md +222 -0
  31. package/docs/guides/TROUBLESHOOTING.md +148 -0
  32. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  33. package/docs/index.md +39 -0
  34. package/docs/interop/A2A.md +32 -0
  35. package/docs/manual/00-introduction.md +85 -0
  36. package/docs/manual/01-concepts/01-architecture.md +134 -0
  37. package/docs/manual/01-concepts/02-trust-model.md +178 -0
  38. package/docs/manual/01-concepts/03-theme-engine.md +182 -0
  39. package/docs/manual/01-concepts/04-fleet.md +142 -0
  40. package/docs/manual/01-concepts/05-self-healing.md +197 -0
  41. package/docs/manual/02-tutorials/01-first-install.md +192 -0
  42. package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
  43. package/docs/manual/02-tutorials/03-create-profile.md +238 -0
  44. package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
  45. package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
  46. package/docs/manual/03-reference/01-dot-cli.md +413 -0
  47. package/docs/manual/03-reference/02-config-files.md +259 -0
  48. package/docs/manual/03-reference/03-environment.md +120 -0
  49. package/docs/manual/03-reference/04-templates.md +184 -0
  50. package/docs/manual/03-reference/05-feature-flags.md +118 -0
  51. package/docs/manual/04-cookbook/01-recipes.md +281 -0
  52. package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
  53. package/docs/manual/04-cookbook/03-faq.md +167 -0
  54. package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
  55. package/docs/manual/05-appendices/B-security-checklist.md +78 -0
  56. package/docs/manual/05-appendices/C-glossary.md +36 -0
  57. package/docs/manual/05-appendices/D-bibliography.md +54 -0
  58. package/docs/manual/05-appendices/E-license.md +34 -0
  59. package/docs/manual/_toc.yml +58 -0
  60. package/docs/manual/command-index.md +58 -0
  61. package/docs/manual/concept-index.md +164 -0
  62. package/docs/operations/ATTESTATION.md +39 -0
  63. package/docs/operations/MAINTENANCE.md +59 -0
  64. package/docs/operations/MIGRATION.md +101 -0
  65. package/docs/operations/OPERATIONS.md +164 -0
  66. package/docs/operations/RELIABILITY.md +116 -0
  67. package/docs/{ROADMAP.md → operations/ROADMAP.md} +22 -22
  68. package/docs/operations/TESTING.md +195 -0
  69. package/docs/operations/TRACEABILITY.md +31 -0
  70. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
  71. package/docs/operations/VERSION_SYNC.md +344 -0
  72. package/docs/reference/ALIASES.md +124 -0
  73. package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
  74. package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
  75. package/docs/reference/FEATURES.md +62 -0
  76. package/docs/reference/FONTS.md +108 -0
  77. package/docs/reference/PROFILES.md +65 -0
  78. package/docs/reference/SCREENSHOTS.md +117 -0
  79. package/docs/reference/SCRIPTS.md +67 -0
  80. package/docs/reference/SUPPORT_MATRIX.md +74 -0
  81. package/docs/reference/THEMES.md +113 -0
  82. package/docs/reference/TOOLS.md +105 -0
  83. package/docs/reference/UTILS.md +151 -0
  84. package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
  85. package/docs/security/AUTOMATION_SECRETS.md +22 -0
  86. package/docs/security/COMPLIANCE.md +453 -0
  87. package/docs/security/ENCRYPTION.md +52 -0
  88. package/docs/security/FMEA.md +155 -0
  89. package/docs/security/INCIDENT_RESPONSE.md +575 -0
  90. package/docs/security/KEYS.md +45 -0
  91. package/docs/security/KEY_ROTATION.md +219 -0
  92. package/docs/security/MCP_POLICY.md +69 -0
  93. package/docs/security/POLICY_RELEASES.md +33 -0
  94. package/docs/security/README.md +24 -0
  95. package/docs/security/SECRETS.md +146 -0
  96. package/docs/security/SECURITY.md +41 -0
  97. package/docs/security/SECURITY_CHECKLIST.md +44 -0
  98. package/docs/security/SOUP_REGISTER.md +32 -0
  99. package/docs/security/THREAT_MODEL.md +120 -0
  100. package/docs/security/VERIFICATION_VALIDATION.md +224 -0
  101. package/docs/themes/README.md +6 -0
  102. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
  103. package/docs/themes/hero-shot.svg +78 -0
  104. package/dot_config/.module-manifest.json +69 -0
  105. package/dot_config/ai/identity.md +20 -0
  106. package/dot_config/ai/patterns/architect.md +14 -0
  107. package/dot_config/ai/patterns/hardener.md +13 -0
  108. package/dot_config/ai/patterns/refactor.md +13 -0
  109. package/dot_config/aider/aider.conf.yml +32 -0
  110. package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
  111. package/dot_config/ansible/ansible.cfg +11 -0
  112. package/dot_config/atuin/config.toml +40 -0
  113. package/dot_config/bat/config +23 -0
  114. package/dot_config/brave-flags.conf.tmpl +7 -0
  115. package/dot_config/btop/btop.conf +16 -0
  116. package/dot_config/btop/themes/tokyonight.theme +34 -0
  117. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  118. package/dot_config/claude/mcp_servers.json +20 -0
  119. package/dot_config/containers/containers.conf +14 -0
  120. package/dot_config/curl/dot_curlrc +18 -0
  121. package/dot_config/dlv/config.yml +39 -0
  122. package/dot_config/docker/config.json +15 -0
  123. package/dot_config/dotfiles/agent-card.json +29 -0
  124. package/dot_config/dotfiles/agent-profiles.json +92 -0
  125. package/dot_config/dotfiles/boot/README.md +11 -0
  126. package/dot_config/dotfiles/grub/README.md +11 -0
  127. package/dot_config/dotfiles/lock/README.md +11 -0
  128. package/dot_config/dotfiles/mcp-lock.json +33 -0
  129. package/dot_config/dotfiles/mcp-policy.json +52 -0
  130. package/dot_config/dotfiles/mcp-registry.json +47 -0
  131. package/dot_config/dotfiles/model-registry.json +20 -0
  132. package/dot_config/dotfiles/policy-bundles.json +38 -0
  133. package/dot_config/dotfiles/prompt-registry.json +16 -0
  134. package/dot_config/dotfiles/versions.env +18 -0
  135. package/dot_config/duf/duf.conf +6 -0
  136. package/dot_config/duti/defaults.duti +5 -0
  137. package/dot_config/emoji/emoji.txt +34 -0
  138. package/dot_config/environment.d/50-ssh-agent.conf +2 -0
  139. package/dot_config/environment.d/90-wayland.conf +19 -0
  140. package/dot_config/fastfetch/config.jsonc +28 -0
  141. package/dot_config/firefox/user.js.tmpl +58 -0
  142. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
  143. package/dot_config/fish/completions/dot.fish.tmpl +115 -0
  144. package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
  145. package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
  146. package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
  147. package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
  148. package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
  149. package/dot_config/fish/config.fish.tmpl +44 -0
  150. package/dot_config/fish/fish_plugins +1 -0
  151. package/dot_config/fish/functions/_.fish +3 -0
  152. package/dot_config/fish/functions/_cached_eval.fish +58 -0
  153. package/dot_config/fish/functions/als.fish +46 -0
  154. package/dot_config/fish/functions/bg-upgrade.fish +7 -0
  155. package/dot_config/fish/functions/c.fish +3 -0
  156. package/dot_config/fish/functions/cat.fish +9 -0
  157. package/dot_config/fish/functions/d.fish +7 -0
  158. package/dot_config/fish/functions/dot.fish +34 -0
  159. package/dot_config/fish/functions/h.fish +3 -0
  160. package/dot_config/fish/functions/l.fish +7 -0
  161. package/dot_config/fish/functions/la.fish +7 -0
  162. package/dot_config/fish/functions/ll.fish +7 -0
  163. package/dot_config/fish/functions/log_error.fish +13 -0
  164. package/dot_config/fish/functions/log_info.fish +13 -0
  165. package/dot_config/fish/functions/lr.fish +7 -0
  166. package/dot_config/fish/functions/lra.fish +7 -0
  167. package/dot_config/fish/functions/ls.fish +7 -0
  168. package/dot_config/fish/functions/lt.fish +7 -0
  169. package/dot_config/fish/functions/lta.fish +7 -0
  170. package/dot_config/fish/functions/notify-run.fish +11 -0
  171. package/dot_config/fish/functions/q.fish +3 -0
  172. package/dot_config/fish/functions/silent-run.fish +7 -0
  173. package/dot_config/fish/functions/yy.fish +8 -0
  174. package/dot_config/flatpak/flatpak.list +4 -0
  175. package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
  176. package/dot_config/foot/foot.ini.tmpl +33 -0
  177. package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
  178. package/dot_config/fzf/fzf.zsh +48 -0
  179. package/dot_config/gem/gemrc +9 -0
  180. package/dot_config/gh/config.yml +12 -0
  181. package/dot_config/ghostty/config.tmpl +165 -0
  182. package/dot_config/git/allowed_signers.tmpl +18 -0
  183. package/dot_config/git/attributes +12 -0
  184. package/dot_config/git/commit-template +10 -0
  185. package/dot_config/git/ignore +27 -0
  186. package/dot_config/gnupg/gpg-agent.conf +11 -0
  187. package/dot_config/go/golangci.yml +118 -0
  188. package/dot_config/go/gopls.json +30 -0
  189. package/dot_config/goose/config.yaml +29 -0
  190. package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
  191. package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
  192. package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
  193. package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
  194. package/dot_config/htop/htoprc +20 -0
  195. package/dot_config/inputrc +2 -0
  196. package/dot_config/ipython/profile_default/ipython_config.py +19 -0
  197. package/dot_config/just/justfile +122 -0
  198. package/dot_config/k9s/config.yaml +65 -0
  199. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  200. package/dot_config/kanshi/config.tmpl +22 -0
  201. package/dot_config/karabiner/karabiner.json +14 -0
  202. package/dot_config/kitty/kitty.conf.tmpl +53 -0
  203. package/dot_config/lazydocker/config.yml +186 -0
  204. package/dot_config/lazygit/config.yml +35 -0
  205. package/dot_config/mako/config +47 -0
  206. package/dot_config/mas/masapps.txt +5 -0
  207. package/dot_config/micro/settings.json +3 -0
  208. package/dot_config/mimeapps.list +77 -0
  209. package/dot_config/minikube/config.json +13 -0
  210. package/dot_config/mise/config.toml +99 -0
  211. package/dot_config/mongosh/mongoshrc.js +68 -0
  212. package/dot_config/mpv/input.conf +47 -0
  213. package/dot_config/mpv/mpv.conf +47 -0
  214. package/dot_config/mycli/myclirc +67 -0
  215. package/dot_config/nano/nanorc +28 -0
  216. package/dot_config/ncdu/config +12 -0
  217. package/dot_config/niri/config.kdl.tmpl +327 -0
  218. package/dot_config/nushell/aliases.nu +18 -0
  219. package/dot_config/nushell/completions.nu.tmpl +52 -0
  220. package/dot_config/nushell/config.nu.tmpl +86 -0
  221. package/dot_config/nushell/env.nu.tmpl +94 -0
  222. package/dot_config/nushell/functions.nu.tmpl +17 -0
  223. package/dot_config/nvim/init.lua +18 -0
  224. package/dot_config/nvim/lazy-lock.json +58 -0
  225. package/dot_config/nvim/lua/config/autocmds.lua +107 -0
  226. package/dot_config/nvim/lua/config/keymaps.lua +92 -0
  227. package/dot_config/nvim/lua/config/lazy.lua +44 -0
  228. package/dot_config/nvim/lua/config/options.lua +49 -0
  229. package/dot_config/nvim/lua/plugins/ai.lua +75 -0
  230. package/dot_config/nvim/lua/plugins/coding.lua +216 -0
  231. package/dot_config/nvim/lua/plugins/completion.lua +60 -0
  232. package/dot_config/nvim/lua/plugins/dap.lua +412 -0
  233. package/dot_config/nvim/lua/plugins/editor.lua +55 -0
  234. package/dot_config/nvim/lua/plugins/git.lua +10 -0
  235. package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
  236. package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
  237. package/dot_config/nvim/lua/plugins/rust.lua +34 -0
  238. package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
  239. package/dot_config/nvim/lua/plugins/ui.lua +509 -0
  240. package/dot_config/paru/paru.conf +10 -0
  241. package/dot_config/pip/pip.conf.tmpl +32 -0
  242. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
  243. package/dot_config/pueue/pueue.yml +34 -0
  244. package/dot_config/pypoetry/config.toml +6 -0
  245. package/dot_config/pyrightconfig.json +5 -0
  246. package/dot_config/raycast/README.md +13 -0
  247. package/dot_config/redis/redisclirc +41 -0
  248. package/dot_config/ripgrep/ripgreprc +21 -0
  249. package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
  250. package/dot_config/shell/05-core-safety.sh +47 -0
  251. package/dot_config/shell/10-secrets.sh +40 -0
  252. package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
  253. package/dot_config/shell/40-ls-colors.sh +48 -0
  254. package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
  255. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  256. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
  257. package/dot_config/shell/90-ux-aliases.sh.tmpl +120 -0
  258. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
  259. package/dot_config/shell/Brewfile +207 -0
  260. package/dot_config/shell/Brewfile.cask +92 -0
  261. package/dot_config/shell/Brewfile.cli +127 -0
  262. package/dot_config/shell/README.md +267 -0
  263. package/dot_config/shell/als_data.txt.tmpl +65 -0
  264. package/dot_config/shell/custom/auto_ls.zsh +20 -0
  265. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  266. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  267. package/dot_config/sops/dot_sops.yaml +23 -0
  268. package/dot_config/starship.toml.tmpl +202 -0
  269. package/dot_config/swaylock/config +43 -0
  270. package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
  271. package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
  272. package/dot_config/systemd/user/pueued.service +12 -0
  273. package/dot_config/systemd/user/ssh-agent.service +12 -0
  274. package/dot_config/task/Taskfile.yml +86 -0
  275. package/dot_config/tflint/tflint.hcl +9 -0
  276. package/dot_config/tmux/tmux.conf.tmpl +223 -0
  277. package/dot_config/topgrade.toml.tmpl +54 -0
  278. package/dot_config/user-dirs.dirs +9 -0
  279. package/dot_config/vscode/extensions.txt +11 -0
  280. package/dot_config/vscode/settings.json.tmpl +82 -0
  281. package/dot_config/waybar/config.jsonc.tmpl +90 -0
  282. package/dot_config/waybar/style.css.tmpl +211 -0
  283. package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
  284. package/dot_config/wget/wgetrc +12 -0
  285. package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
  286. package/dot_config/yarn/yarnrc.yml +36 -0
  287. package/dot_config/yazi/keymap.toml +67 -0
  288. package/dot_config/yazi/theme.toml +102 -0
  289. package/dot_config/yazi/yazi.toml +40 -0
  290. package/dot_config/zathura/zathurarc +52 -0
  291. package/dot_config/zellij/config.kdl.tmpl +79 -0
  292. package/dot_config/zsh/dot_zprofile +7 -0
  293. package/dot_config/zsh/dot_zshenv +5 -0
  294. package/dot_config/zsh/dot_zshrc.tmpl +498 -0
  295. package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
  296. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
  297. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  298. package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
  299. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
  300. package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
  301. package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
  302. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
  303. package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
  304. package/dot_local/bin/executable_ai-update +195 -0
  305. package/dot_local/bin/executable_ai_core +152 -0
  306. package/dot_local/bin/executable_antigravity +11 -0
  307. package/dot_local/bin/executable_b64 +84 -0
  308. package/dot_local/bin/executable_bm +77 -0
  309. package/dot_local/bin/executable_cb +39 -0
  310. package/dot_local/bin/executable_dot +589 -0
  311. package/dot_local/bin/executable_dot-ai +36 -0
  312. package/dot_local/bin/executable_dot-bootstrap +77 -0
  313. package/dot_local/bin/executable_dot-launch-or-focus +52 -0
  314. package/dot_local/bin/executable_dot-load-benchmark +31 -0
  315. package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
  316. package/dot_local/bin/executable_dot-theme-sync +952 -0
  317. package/dot_local/bin/executable_dot_completion +57 -0
  318. package/dot_local/bin/executable_dtags +28 -0
  319. package/dot_local/bin/executable_epoch +67 -0
  320. package/dot_local/bin/executable_extract +41 -0
  321. package/dot_local/bin/executable_gbd +52 -0
  322. package/dot_local/bin/executable_gd +42 -0
  323. package/dot_local/bin/executable_git-ai-commit +175 -0
  324. package/dot_local/bin/executable_git-ai-diff +169 -0
  325. package/dot_local/bin/executable_gl +101 -0
  326. package/dot_local/bin/executable_hash +161 -0
  327. package/dot_local/bin/executable_hashsum +160 -0
  328. package/dot_local/bin/executable_hex +115 -0
  329. package/dot_local/bin/executable_jsonv +78 -0
  330. package/dot_local/bin/executable_jwt +94 -0
  331. package/dot_local/bin/executable_kill-port +75 -0
  332. package/dot_local/bin/executable_lorem +118 -0
  333. package/dot_local/bin/executable_mkscript +35 -0
  334. package/dot_local/bin/executable_monitor +56 -0
  335. package/dot_local/bin/executable_myip +51 -0
  336. package/dot_local/bin/executable_notify +22 -0
  337. package/dot_local/bin/executable_open +36 -0
  338. package/dot_local/bin/executable_pw +27 -0
  339. package/dot_local/bin/executable_rec-start +46 -0
  340. package/dot_local/bin/executable_rec-stop +35 -0
  341. package/dot_local/bin/executable_regex +132 -0
  342. package/dot_local/bin/executable_start-niri +8 -0
  343. package/dot_local/bin/executable_tmux-sessionizer +314 -0
  344. package/dot_local/bin/executable_tour +175 -0
  345. package/dot_local/bin/executable_up +21 -0
  346. package/dot_local/bin/executable_update +142 -0
  347. package/dot_local/bin/executable_uuid +87 -0
  348. package/dot_local/bin/executable_win +32 -0
  349. package/dot_local/bin/executable_yamlv +57 -0
  350. package/dot_local/share/bash-completion/completions/dot +72 -0
  351. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  352. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  353. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  354. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  355. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  356. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  357. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  358. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  359. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  360. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  361. package/dot_local/share/man/man1/dot.1 +149 -0
  362. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
  363. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
  364. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
  365. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
  366. package/dot_local/share/zsh/completions/.keep +0 -0
  367. package/dot_local/share/zsh/completions/_dot +283 -0
  368. package/install.sh +342 -0
  369. package/package.json +1 -1
  370. package/scripts/ci/check-copyright-headers.sh +96 -0
  371. package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
  372. package/scripts/ci/install-chezmoi-verified.sh +64 -0
  373. package/scripts/ci/validate-ci-config.sh +224 -0
  374. package/scripts/demo/record.sh +42 -0
  375. package/scripts/diagnostics/a2a-conformance.sh +162 -0
  376. package/scripts/diagnostics/alias-governance.sh +137 -0
  377. package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
  378. package/scripts/diagnostics/aliases-manifest.sh +31 -0
  379. package/scripts/diagnostics/benchmark.sh +381 -0
  380. package/scripts/diagnostics/conflicts.sh +72 -0
  381. package/scripts/diagnostics/doctor-unified.sh +38 -0
  382. package/scripts/diagnostics/doctor.sh +541 -0
  383. package/scripts/diagnostics/drift-dashboard.sh +37 -0
  384. package/scripts/diagnostics/health.sh +597 -0
  385. package/scripts/diagnostics/history-analysis.sh +85 -0
  386. package/scripts/diagnostics/mcp-doctor.sh +575 -0
  387. package/scripts/diagnostics/perf.sh +225 -0
  388. package/scripts/diagnostics/scorecard.sh +118 -0
  389. package/scripts/diagnostics/secret-governance.sh +58 -0
  390. package/scripts/diagnostics/security-score.sh +438 -0
  391. package/scripts/diagnostics/smoke-test.sh +87 -0
  392. package/scripts/diagnostics/snapshot.sh +89 -0
  393. package/scripts/diagnostics/verify.sh +107 -0
  394. package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
  395. package/scripts/diagnostics/version-locks.sh +79 -0
  396. package/scripts/diagnostics/workstation-attestation.sh +181 -0
  397. package/scripts/docs/build-manual.sh +883 -0
  398. package/scripts/docs/check-manual.sh +213 -0
  399. package/scripts/dot/commands/agent.sh +465 -0
  400. package/scripts/dot/commands/ai.sh +416 -0
  401. package/scripts/dot/commands/aliases.sh +250 -0
  402. package/scripts/dot/commands/appearance.sh +80 -0
  403. package/scripts/dot/commands/core.sh +185 -0
  404. package/scripts/dot/commands/diagnostics.sh +229 -0
  405. package/scripts/dot/commands/fleet.sh +399 -0
  406. package/scripts/dot/commands/lint.sh +177 -0
  407. package/scripts/dot/commands/manual.sh +168 -0
  408. package/scripts/dot/commands/meta.sh +248 -0
  409. package/scripts/dot/commands/patterns.sh +54 -0
  410. package/scripts/dot/commands/restore.sh +231 -0
  411. package/scripts/dot/commands/secrets.sh +223 -0
  412. package/scripts/dot/commands/security.sh +76 -0
  413. package/scripts/dot/commands/tools.sh +469 -0
  414. package/scripts/dot/data/alias-deprecations.tsv +2 -0
  415. package/scripts/dot/lib/bento.sh +49 -0
  416. package/scripts/dot/lib/log.sh +194 -0
  417. package/scripts/dot/lib/platform.sh +98 -0
  418. package/scripts/dot/lib/ui.sh +507 -0
  419. package/scripts/dot/lib/utils.sh +372 -0
  420. package/scripts/fonts/install-nerd-fonts.sh +68 -0
  421. package/scripts/fonts/patch-fonts.sh +35 -0
  422. package/scripts/git-hooks/install.sh +11 -0
  423. package/scripts/git-hooks/pre-commit +12 -0
  424. package/scripts/git-hooks/pre-commit-audit.sh +145 -0
  425. package/scripts/git-hooks/pre-push +29 -0
  426. package/scripts/git-hooks/prepare-commit-msg +29 -0
  427. package/scripts/lib/secrets_provider.sh +158 -0
  428. package/scripts/maintenance/check-updates.sh +131 -0
  429. package/scripts/ops/ai-setup.sh +55 -0
  430. package/scripts/ops/bundle.sh +77 -0
  431. package/scripts/ops/chaos.sh +49 -0
  432. package/scripts/ops/chezmoi-apply.sh +270 -0
  433. package/scripts/ops/chezmoi-diff.sh +15 -0
  434. package/scripts/ops/chezmoi-remove.sh +45 -0
  435. package/scripts/ops/chezmoi-update.sh +48 -0
  436. package/scripts/ops/heal-chezmoi.sh +51 -0
  437. package/scripts/ops/heal-system.sh +128 -0
  438. package/scripts/ops/heal-tools.sh +340 -0
  439. package/scripts/ops/heal.sh +222 -0
  440. package/scripts/ops/post-apply-repair.sh +106 -0
  441. package/scripts/ops/prewarm.sh +127 -0
  442. package/scripts/ops/release.sh +252 -0
  443. package/scripts/ops/rollback.sh +589 -0
  444. package/scripts/ops/setup.sh +137 -0
  445. package/scripts/ops/teleport.sh +33 -0
  446. package/scripts/qa/coverage-baseline.sh +60 -0
  447. package/scripts/qa/docs-coverage.sh +111 -0
  448. package/scripts/qa/reliability-audit.sh +138 -0
  449. package/scripts/qa/traceability-coverage.sh +116 -0
  450. package/scripts/qa/validate-examples.sh +26 -0
  451. package/scripts/qa/wsl-contract.sh +11 -0
  452. package/scripts/release/package-policy-bundles.sh +125 -0
  453. package/scripts/secrets/age-init.sh +70 -0
  454. package/scripts/secrets/create-secrets-file.sh +45 -0
  455. package/scripts/secrets/encrypt-ssh-key.sh +43 -0
  456. package/scripts/security/backup.sh +57 -0
  457. package/scripts/security/dns-doh.sh +51 -0
  458. package/scripts/security/encryption-check.sh +54 -0
  459. package/scripts/security/enforce-policies.sh +334 -0
  460. package/scripts/security/firewall.sh +90 -0
  461. package/scripts/security/lock-configs.sh +57 -0
  462. package/scripts/security/lock-screen.sh +55 -0
  463. package/scripts/security/manage-secrets.sh +428 -0
  464. package/scripts/security/ssh-cert.sh +203 -0
  465. package/scripts/security/telemetry-kill.sh +50 -0
  466. package/scripts/security/usb-safety.sh +51 -0
  467. package/scripts/theme/apply-gnome-theme.sh +328 -0
  468. package/scripts/theme/extract-theme.py +677 -0
  469. package/scripts/theme/install-boot-logo.sh +62 -0
  470. package/scripts/theme/install-catppuccin-themes.sh +370 -0
  471. package/scripts/theme/install-cursors.sh +25 -0
  472. package/scripts/theme/install-file-icons.sh +26 -0
  473. package/scripts/theme/install-grub-theme.sh +61 -0
  474. package/scripts/theme/install-lock-icon.sh +30 -0
  475. package/scripts/theme/merge-wallpaper.sh +141 -0
  476. package/scripts/theme/rebuild-themes.sh +309 -0
  477. package/scripts/theme/switch.sh +421 -0
  478. package/scripts/theme/wallpaper-rotate.sh +136 -0
  479. package/scripts/theme/wallpaper-sync.sh +397 -0
  480. package/scripts/tools/cmatrix.sh +21 -0
  481. package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
  482. package/scripts/tools/emoji-picker.sh +48 -0
  483. package/scripts/tools/figlet-banner.sh +18 -0
  484. package/scripts/tools/log-rotate.sh +30 -0
  485. package/scripts/tools/lolcat-wrap.sh +19 -0
  486. package/scripts/tools/pipes.sh +48 -0
  487. package/scripts/tuning/linux.sh +185 -0
  488. package/scripts/tuning/macos.sh +55 -0
  489. package/scripts/uninstall.sh +85 -0
  490. package/scripts/version-sync.sh +487 -0
  491. package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
  492. package/templates/chezmoi-data/mac-m1.toml.example +16 -0
  493. package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
  494. package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
  495. package/templates/projects/go/.github/workflows/ci.yml +31 -0
  496. package/templates/projects/go/README.md +4 -0
  497. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
  498. package/templates/projects/go/go.sum +0 -0
  499. package/templates/projects/molecule/README.md +7 -0
  500. package/templates/projects/molecule/converge.yml +7 -0
  501. package/templates/projects/molecule/molecule.yml +16 -0
  502. package/templates/projects/node/.github/workflows/ci.yml +30 -0
  503. package/templates/projects/node/README.md +4 -0
  504. package/templates/projects/node/package-lock.json +12 -0
  505. package/templates/projects/node/src/index.js +1 -0
  506. package/templates/projects/packer/README.md +15 -0
  507. package/templates/projects/packer/main.pkr.hcl +15 -0
  508. package/templates/projects/python/.github/workflows/ci.yml +34 -0
  509. package/templates/projects/python/README.md +4 -0
  510. package/templates/projects/python/pyproject.toml +15 -0
  511. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  512. package/templates/projects/python/tests/test_basic.py +1 -0
  513. package/docs/ARCHITECTURE.md +0 -62
  514. package/docs/COMPLIANCE.md +0 -47
  515. package/docs/OPERATIONS.md +0 -103
  516. package/docs/PR_DESCRIPTION.md +0 -150
  517. package/docs/ROADMAP_legacy.md +0 -556
  518. package/docs/SECURITY_CHECKLIST.md +0 -25
  519. package/docs/TASK.md +0 -99
  520. package/docs/WALKTHROUGH.md +0 -46
  521. package/scripts/backup.sh +0 -142
  522. package/scripts/banner.sh +0 -20
  523. package/scripts/benchmark.sh +0 -20
  524. package/scripts/build.sh +0 -41
  525. package/scripts/clean.sh +0 -31
  526. package/scripts/compile.sh +0 -54
  527. package/scripts/copy.sh +0 -108
  528. package/scripts/doctor.sh +0 -79
  529. package/scripts/dotfiles.sh +0 -63
  530. package/scripts/download.sh +0 -35
  531. package/scripts/help.sh +0 -57
  532. package/scripts/lock-configs.sh +0 -57
  533. package/scripts/package.sh +0 -46
  534. package/scripts/ssh.sh +0 -55
  535. package/scripts/teleport.sh +0 -23
  536. package/scripts/test-aliases.sh +0 -25
  537. package/scripts/test_smoke.sh +0 -88
  538. package/scripts/unpack.sh +0 -28
@@ -0,0 +1,120 @@
1
+ # Threat Model
2
+
3
+ Security analysis of the dotfiles distribution. Covers trust boundaries, threat actors, attack surfaces, and mitigations.
4
+
5
+ ## Trust Boundary
6
+
7
+ The primary trust boundary is the **local machine**. Dotfiles are deployed to and executed on the user's own system. All configuration files, scripts, and templates run with the user's privileges.
8
+
9
+ ```text
10
+ ┌─────────────────────────────────────────────────┐
11
+ │ Local Machine (trusted zone) │
12
+ │ ┌─────────────────┐ ┌──────────────────────┐ │
13
+ │ │ ~/.dotfiles/ │ │ ~/.config/ (deployed)│ │
14
+ │ │ (source repo) │──│ Shell configs, nvim │ │
15
+ │ └─────────────────┘ └──────────────────────┘ │
16
+ │ │
17
+ │ ┌─────────────────┐ ┌──────────────────────┐ │
18
+ │ │ ~/.local/bin/ │ │ ~/.cache/shell/ │ │
19
+ │ │ (user scripts) │ │ (cached eval output) │ │
20
+ │ └─────────────────┘ └──────────────────────┘ │
21
+ └─────────────────────────────────────────────────┘
22
+
23
+ ─────┼──────── Trust boundary ────────
24
+
25
+ ┌─────────────────────────────────────────────────┐
26
+ │ External (untrusted zone) │
27
+ │ GitHub (repo hosting), Homebrew, Nix, │
28
+ │ Zinit plugins, Neovim plugins, npm, pip │
29
+ └─────────────────────────────────────────────────┘
30
+ ```
31
+
32
+ ## Threat Actors
33
+
34
+ | Actor | Motivation | Capability |
35
+ |-------|-----------|------------|
36
+ | Supply chain attacker | Inject malicious code via dependency | Compromise upstream packages (Homebrew, npm, Zinit plugins) |
37
+ | Secrets harvester | Steal API keys, SSH keys, tokens | Scrape git history, shell history, env vars |
38
+ | Privilege escalation | Gain root access | Exploit `sudo` aliases, writable scripts in PATH |
39
+ | Network attacker | Intercept credentials | MITM on install scripts, curl-pipe-bash |
40
+
41
+ ## Attack Surfaces
42
+
43
+ ### 1. Shell Startup Scripts
44
+
45
+ **Risk:** Malicious code in sourced files executes with user privileges on every shell start.
46
+
47
+ **Mitigations:**
48
+ - All shell scripts pass `shellcheck --severity=error`
49
+ - `set -euo pipefail` enforced in all operational scripts
50
+ - `eval` usage hardened with process substitution (`. /dev/stdin`)
51
+ - Input validation on dynamic function generation
52
+ - `DOTFILES_ULTRA_FAST=1` bypasses all non-core sourcing
53
+
54
+ ### 2. Secrets Exposure
55
+
56
+ **Risk:** API keys, tokens, and SSH keys leaked via git history, shell history, or environment.
57
+
58
+ **Mitigations:**
59
+ - [Gitleaks](https://github.com/gitleaks/gitleaks) pre-commit hook blocks secrets in commits
60
+ - Atuin `history_filter` excludes sensitive patterns
61
+ - Age encryption for local secret storage
62
+ - `dot secrets set` uses secure prompts (no shell history)
63
+ - `.gitignore` excludes `key.txt`, `.env`, credential files
64
+
65
+ ### 3. Supply Chain Dependencies
66
+
67
+ **Risk:** Compromised upstream packages injected into the toolchain.
68
+
69
+ **Mitigations:**
70
+ - Nix Flakes provide reproducible, pinned dependencies
71
+ - Zinit plugin versions pinned (`ver"0.8.0"`)
72
+ - Neovim plugin versions locked via `lazy-lock.json`
73
+ - `install.sh` uses HTTPS for all downloads
74
+ - Homebrew formula integrity via bottle checksums
75
+
76
+ ### 4. Path Manipulation
77
+
78
+ **Risk:** Attacker places malicious binary in a PATH directory that shadows legitimate tools.
79
+
80
+ **Mitigations:**
81
+ - PATH construction is deterministic (template-generated)
82
+ - `~/.local/bin` is user-controlled and checked for writability
83
+ - No world-writable directories in PATH
84
+ - `prependpath` function validates directory existence
85
+
86
+ ### 5. Template Injection
87
+
88
+ **Risk:** Chezmoi template variables could inject shell code if not properly quoted.
89
+
90
+ **Mitigations:**
91
+ - Template variables come from `.chezmoidata.toml` (user-controlled)
92
+ - No external/network data used in templates
93
+ - Template validation via `chezmoi apply --dry-run` in CI
94
+
95
+ ### 6. Cached Eval Files
96
+
97
+ **Risk:** Stale or tampered cache files in `~/.cache/shell/` sourced at startup.
98
+
99
+ **Mitigations:**
100
+ - `_cached_eval` validates cache against binary mtime
101
+ - Cache files are user-owned (0644)
102
+ - Cache directory is under `$XDG_CACHE_HOME` (user-controlled)
103
+ - Cache can be cleared with `rm -rf ~/.cache/shell/`
104
+
105
+ ## Residual Risks
106
+
107
+ | Risk | Likelihood | Impact | Status |
108
+ |------|-----------|--------|--------|
109
+ | Zinit plugin compromise | Low | High | Mitigated by version pinning |
110
+ | Shell history leak | Medium | Medium | Mitigated by Atuin filter |
111
+ | Stale Nix closure | Low | Low | Accepted (manual `nix flake update`) |
112
+ | macOS Keychain access | Low | Medium | Accepted (OS-level protection) |
113
+
114
+ ## Recommendations
115
+
116
+ 1. Run `gitleaks detect` before every push (pre-commit hook enforced)
117
+ 2. Rotate secrets on a 90-day schedule
118
+ 3. Audit `lazy-lock.json` diffs when updating Neovim plugins
119
+ 4. Pin Homebrew versions for security-critical tools
120
+ 5. Use `DOTFILES_ULTRA_FAST=1` in CI to minimize attack surface
@@ -0,0 +1,224 @@
1
+ # Verification and Validation Report
2
+
3
+ ## Document Control
4
+
5
+ | Field | Value |
6
+ |-------|-------|
7
+ | Document ID | VV-DOT-001 |
8
+ | Version | 0.2.500 |
9
+ | Date | 2026-03-20 |
10
+ | Author | Repository Maintainer |
11
+ | Status | Active |
12
+ | Classification | Internal |
13
+ | Standard | ISO 13485:2016 Sections 7.3.6 / 7.3.7 (adapted) |
14
+
15
+ ---
16
+
17
+ ## Purpose
18
+
19
+ This document constitutes the formal Verification and Validation (V&V) report for the chezmoi-managed dotfiles repository, adapted from ISO 13485:2016 Sections 7.3.6 (Design and Development Verification) and 7.3.7 (Design and Development Validation) for infrastructure-as-code.
20
+
21
+ **Verification** confirms that each design output meets its corresponding design input requirement through inspection, analysis, and testing. **Validation** confirms that the deployed system satisfies its intended use under representative operating conditions (Linux, macOS, WSL).
22
+
23
+ All verification activities are executed through automated CI pipelines, pre-commit hooks, and the repository test framework. Evidence is retained in CI logs, test output, and this document.
24
+
25
+ ---
26
+
27
+ ## Verification Matrix
28
+
29
+ | Req ID | Requirement | Verification Method | Test File(s) | Result |
30
+ |--------|-------------|---------------------|--------------|--------|
31
+ | VR-01 | Shell scripts pass ShellCheck (severity=error) | Static analysis via `shellcheck --severity=error -e SC1091 -e SC2030 -e SC2031` | `ci.yml`, `ci-enforced.yml`, pre-commit hook | Pass |
32
+ | VR-02 | All scripts have `set -euo pipefail` | Pattern scan across all `.sh` files; CI enforcement | `ci-enforced.yml`, `compliance-guard.yml` | Pass |
33
+ | VR-03 | No secrets in source control (gitleaks clean) | Gitleaks scan with `config/gitleaks.toml` ruleset | Pre-commit hook, `security-enhanced.yml` | Pass |
34
+ | VR-04 | Cross-platform compatibility (BSD + GNU) | Dual-platform CI matrix (ubuntu-latest, macos-latest) | `cross-platform-test.yml` | Pass |
35
+ | VR-05 | TLS enforcement (no insecure curl/wget) | Pattern blocking for `curl -k`, `--insecure`, `wget --no-check-certificate` | Pre-commit hook, `compliance-guard.yml` | Pass |
36
+ | VR-06 | Permission controls (no chmod 777/666) | CI pattern scan blocks world-writable permissions | Pre-commit hook, `compliance-guard.yml` | Pass |
37
+ | VR-07 | Signed commits enforced | Pre-push hook verifies `git verify-commit` for all commits in range | `scripts/git-hooks/pre-push`, `compliance-guard.yml` | Pass |
38
+ | VR-08 | Conventional commit format | Pre-commit hook validates `feat:`, `fix:`, `docs:` prefixes | Pre-commit hook (conventional-commits) | Pass |
39
+ | VR-09 | Template rendering correctness | `chezmoi apply --dry-run` on Linux and macOS CI runners | `ci.yml` (Linux + macOS matrix), `tests/unit/test_*.sh` | Pass |
40
+ | VR-10 | Alias system functional | Unit tests source alias files and verify command availability | `tests/unit/aliases/test_*.sh` (104 files) | Pass |
41
+ | VR-11 | Neovim config loads without errors | Headless Neovim launch with error detection | `tests/unit/neovim/test_*.sh` (15 files) | Pass |
42
+ | VR-12 | Fish/Zsh/Nushell configs valid | Syntax validation and functional tests per shell | `tests/unit/fish/` (33), `tests/unit/shell/` (12), `tests/unit/nushell/` (5) | Pass |
43
+ | VR-13 | CI pipelines execute successfully | GitHub Actions workflow status across all triggers | `ci.yml`, `ci-enforced.yml`, `compliance-guard.yml`, `cross-platform-test.yml`, `security-enhanced.yml`, `codeql.yml` | Pass |
44
+ | VR-14 | Pre-commit hooks functional | Hook execution via `pre-commit run --all-files` | `config/pre-commit-config.yaml` | Pass |
45
+ | VR-15 | Age encryption operational | Chezmoi age-encrypted file decryption during apply | `chezmoi apply --dry-run` (encrypted targets), integration tests | Pass |
46
+
47
+ ---
48
+
49
+ ## Validation Summary
50
+
51
+ ### Coverage Metrics
52
+
53
+ | Metric | Value | Threshold | Status |
54
+ |--------|-------|-----------|--------|
55
+ | Total test files | 430 | N/A | Measured |
56
+ | Total assertions | 2,217 | N/A | Measured |
57
+ | Pass rate | 100% | 100% | Pass |
58
+ | Module coverage | 100% | >= 95% | Pass |
59
+
60
+ ### Category Breakdown
61
+
62
+ | Category | Test Files | Status |
63
+ |----------|-----------|--------|
64
+ | Alias files | 104 | Tested |
65
+ | Function files | 76 | Tested |
66
+ | Fish functions + conf.d | 33 | Tested |
67
+ | Misc / compliance | 34 | Tested |
68
+ | Dot CLI | 30 | Tested |
69
+ | Diagnostics | 28 | Tested |
70
+ | Shell configs | 20 | Tested |
71
+ | Ops | 18 | Tested |
72
+ | Install | 17 | Tested |
73
+ | Security | 16 | Tested |
74
+ | Neovim Lua configs | 15 | Tested |
75
+ | Theme | 11 | Tested |
76
+ | Tools | 7 | Tested |
77
+ | Nushell configs | 6 | Tested |
78
+ | Secrets | 5 | Tested |
79
+ | Integration tests | 10 | Tested |
80
+ | **Total** | **430** | **All pass** |
81
+
82
+ ### Validation Environments
83
+
84
+ | Environment | OS | Shell | Bash Version | Status |
85
+ |-------------|-----|-------|--------------|--------|
86
+ | CI (Linux) | Ubuntu latest | Bash | 5.x | Validated |
87
+ | CI (macOS) | macOS latest | Zsh | 3.2 (system) | Validated |
88
+ | Local (Linux) | CachyOS / Arch | Fish, Zsh, Bash | 5.x | Validated |
89
+ | Local (WSL) | Ubuntu | Bash | 5.x | Validated |
90
+
91
+ ---
92
+
93
+ ## Test Framework Architecture
94
+
95
+ ### Directory Structure
96
+
97
+ ```
98
+ tests/
99
+ ├── framework/
100
+ │ ├── test_runner.sh # Test executor — discovers and runs all test_*.sh files
101
+ │ ├── assertions.sh # 16 assertion functions (assert_equals, assert_contains, etc.)
102
+ │ └── mocks.sh # Mock utilities for isolating external dependencies
103
+ ├── unit/
104
+ │ ├── aliases/ # Alias and command-surface tests
105
+ │ ├── functions/ # Function behavior tests
106
+ │ ├── dot-cli/ # `dot` command workflow tests
107
+ │ ├── shell/ # Shell integration and completion tests
108
+ │ ├── fish/ # Fish function and completion tests
109
+ │ ├── nushell/ # Nushell configuration tests
110
+ │ ├── nvim/ # Neovim configuration tests
111
+ │ └── test_*.sh # 425 unit test files total
112
+ ├── integration/
113
+ │ └── test_*.sh # 11 integration test files
114
+ └── performance/
115
+ └── benchmark_runner.sh # Performance regression benchmarks
116
+ ```
117
+
118
+ ### Execution Model
119
+
120
+ 1. `test_runner.sh` recursively discovers all `test_*.sh` files under `tests/`.
121
+ 2. Each test file is executed in a subshell with `assertions.sh` sourced.
122
+ 3. Tests source bash files directly from the repository (not Go templates).
123
+ 4. `mocks.sh` provides stubs for external tools (`chezmoi`, `git`, `brew`, etc.).
124
+ 5. Exit codes and assertion counts are aggregated into a final report.
125
+
126
+ ### Assertion Library
127
+
128
+ | Function | Purpose |
129
+ |----------|---------|
130
+ | `assert_equals` | Exact string equality |
131
+ | `assert_not_equals` | String inequality |
132
+ | `assert_contains` | Substring match |
133
+ | `assert_not_contains` | Substring absence |
134
+ | `assert_starts_with` | Prefix match |
135
+ | `assert_ends_with` | Suffix match |
136
+ | `assert_matches` | Regex match |
137
+ | `assert_file_exists` | File presence |
138
+ | `assert_file_not_exists` | File absence |
139
+ | `assert_directory_exists` | Directory presence |
140
+ | `assert_command_exists` | Command availability |
141
+ | `assert_exit_code` | Process exit code |
142
+ | `assert_empty` | Empty string |
143
+ | `assert_not_empty` | Non-empty string |
144
+ | `assert_true` | Boolean truth |
145
+ | `assert_false` | Boolean false |
146
+
147
+ ---
148
+
149
+ ## Traceability Matrix
150
+
151
+ This matrix maps compliance controls from COMPLIANCE.md to verification requirements defined in this document.
152
+
153
+ ### SOC 2 Type II Traceability
154
+
155
+ | SOC 2 Control | Description | Verification Requirement(s) |
156
+ |---------------|-------------|----------------------------|
157
+ | CC6.1 | Logical Access Security | VR-06 (Permission controls), VR-15 (Age encryption) |
158
+ | CC6.8 | Unauthorized Code Protection | VR-07 (Signed commits), VR-03 (No secrets) |
159
+ | CC7.1 | System Operations | VR-05 (TLS enforcement), VR-13 (CI pipelines) |
160
+ | CC7.2 | Change Detection | VR-14 (Pre-commit hooks), VR-08 (Conventional commits) |
161
+ | CC8.1 | Change Management | VR-07 (Signed commits), VR-08 (Conventional commits), VR-13 (CI pipelines) |
162
+ | A1.2 | Audit Logs | VR-13 (CI pipelines — logs retained in GitHub Actions) |
163
+
164
+ ### ISO 27001 Traceability
165
+
166
+ | ISO Control | Description | Verification Requirement(s) |
167
+ |-------------|-------------|----------------------------|
168
+ | A.9.1.1 | Access Control Policy | VR-06 (Permission controls), VR-15 (Age encryption) |
169
+ | A.9.4.1 | Information Access Restriction | VR-06 (No chmod 777/666) |
170
+ | A.12.1.2 | Change Management | VR-07 (Signed commits), VR-08 (Conventional commits) |
171
+ | A.12.6.1 | Technical Vulnerability Management | VR-03 (Gitleaks), VR-05 (TLS enforcement) |
172
+ | A.13.1.1 | Network Controls | VR-05 (TLS enforcement) |
173
+ | A.14.2.5 | Secure Engineering | VR-01 (ShellCheck), VR-02 (set -euo pipefail), VR-04 (Cross-platform) |
174
+ | A.14.2.8 | System Security Testing | VR-09 (Template rendering), VR-10 (Aliases), VR-11 (Neovim), VR-12 (Shell configs) |
175
+
176
+ ### GDPR / Privacy Traceability
177
+
178
+ | Requirement | Description | Verification Requirement(s) |
179
+ |-------------|-------------|----------------------------|
180
+ | Data Minimization | Limit data collection | VR-03 (No secrets in source) |
181
+ | Integrity | Protect against tampering | VR-07 (Signed commits), VR-14 (Pre-commit hooks) |
182
+ | Encryption | Protect data at rest | VR-15 (Age encryption operational) |
183
+
184
+ ---
185
+
186
+ ## Acceptance Criteria
187
+
188
+ All of the following criteria must be satisfied for this V&V report to remain valid.
189
+
190
+ | Criterion | Verification Method | Required Outcome |
191
+ |-----------|---------------------|------------------|
192
+ | All unit and integration tests pass | `./tests/framework/test_runner.sh` | Exit code 0, 0 failures |
193
+ | ShellCheck clean | `shellcheck --severity=error` on all `.sh` files | Zero findings |
194
+ | Gitleaks clean | `gitleaks detect --config config/gitleaks.toml` | Zero findings |
195
+ | Chezmoi dry-run clean | `chezmoi apply --dry-run` on Linux and macOS | Exit code 0, no errors |
196
+ | Pre-commit hooks pass | `pre-commit run --all-files` | Exit code 0 |
197
+ | Cross-platform CI green | `cross-platform-test.yml` on ubuntu-latest and macos-latest | All jobs pass |
198
+ | Module coverage at threshold | Test runner coverage report | >= 95% (currently 100%) |
199
+ | No world-writable permissions | `compliance-guard.yml` pattern scan | Zero `chmod 777` or `chmod 666` matches |
200
+ | No insecure TLS patterns | `compliance-guard.yml` pattern scan | Zero `curl -k` or `wget --no-check-certificate` matches |
201
+ | All commits signed | `git verify-commit` on HEAD~50..HEAD range | All commits verified |
202
+
203
+ ---
204
+
205
+ ## Sign-off
206
+
207
+ | Role | Name | Date | Signature |
208
+ |------|------|------|-----------|
209
+ | Repository Owner | | | |
210
+ | Security Reviewer | | | |
211
+ | Quality Assurance | | | |
212
+ | Release Manager | | | |
213
+
214
+ ---
215
+
216
+ ## References
217
+
218
+ - [ISO 13485:2016](https://www.iso.org/standard/59752.html) — Medical devices, Quality management systems
219
+ - [ISO 27001:2022](https://www.iso.org/standard/27001) — Information security management
220
+ - [SOC 2 Type II](https://www.aicpa.org/soc2) — Trust Services Criteria
221
+ - [SLSA Framework](https://slsa.dev/) — Supply chain Levels for Software Artifacts
222
+ - [ShellCheck](https://www.shellcheck.net/) — Static analysis for shell scripts
223
+ - [Gitleaks](https://gitleaks.io/) — Secrets detection
224
+ - [Chezmoi](https://www.chezmoi.io/) — Dotfiles manager
@@ -0,0 +1,6 @@
1
+ # Theme Gallery
2
+
3
+ Themes are auto-generated from your wallpapers — the available set depends on what's present on your system. Run `dot theme list` to see what's discovered.
4
+
5
+ See [Theme Reference](../reference/THEMES.md) for the wallpaper-driven engine.
6
+ See [Theming Guide](../guides/THEMING.md) for setup, switching, and the K-Means CIELAB pipeline.
@@ -0,0 +1,26 @@
1
+ # Visual Integrity Report
2
+
3
+ Generated: 2026-04-08
4
+ Scope: terminal theme SSOT, shell first-paint path, font rendering, and cross-platform template intent.
5
+
6
+ | Metric | Current | Target | Status |
7
+ | :--- | :--- | :--- | :--- |
8
+ | Contrast (APCA) | `macos-monterey-dark` body text `Lc 90+`, critical UI `Lc 95+` | `Lc 75+` body, `Lc 90+` critical | Pass |
9
+ | Startup Time | `bash 25ms`, `zsh 35ms`, `fish 25ms` | `< 100ms` | Pass |
10
+ | Color DeltaE | SSOT palette unified across Ghostty/Kitty/Alacritty/WezTerm; no runtime probe yet | `< 2.0` | Needs instrumentation |
11
+
12
+ ## Findings
13
+
14
+ - Theme colors are already centralized in `.chezmoidata/themes.toml`, but accessibility intent was implicit. The active theme now carries explicit OKLCH/APCA metadata.
15
+ - First-prompt Fish initialization still performed live CLI work when cache artifacts were present. The prompt path now sources prewarmed cache files first and only regenerates on cache miss.
16
+ - Terminal templates were palette-consistent, but rendering policy was inconsistent. macOS now prefers Display P3 and CoreText-friendly metrics; Linux/Wayland templates prefer more conservative opacity and FreeType-safe fallbacks.
17
+
18
+ ## Edge Cases
19
+
20
+ - Wayland fontconfig now sets `rgba` declaratively from feature flags to avoid color fringing on mixed-density Linux panels.
21
+ - Ghostty, Kitty, Alacritty, and WezTerm now share the same terminal ramp while allowing platform-specific font fallback and window-compositor behavior.
22
+ - WSL parity is still template-capable, but DeltaE validation is not yet automated against Windows Terminal serialization.
23
+
24
+ ## Next Step
25
+
26
+ Implement a small palette audit utility that computes APCA and DeltaE from `.chezmoidata/themes.toml` so the report can become test-backed rather than declarative.
@@ -0,0 +1,78 @@
1
+ <svg width="800" height="450" viewBox="0 0 800 450" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Background Shadow -->
3
+ <rect x="10" y="10" width="780" height="430" rx="12" fill="rgba(0,0,0,0.3)" filter="blur(10px)" />
4
+
5
+ <!-- Terminal Window -->
6
+ <rect x="20" y="20" width="760" height="410" rx="10" fill="#1e1e2e" stroke="#313244" stroke-width="1" />
7
+
8
+ <!-- Window Title Bar -->
9
+ <path d="M20 30 a10 10 0 0 1 10 -10 h740 a10 10 0 0 1 10 10 v20 h-760 z" fill="#181825" />
10
+
11
+ <!-- macOS Buttons -->
12
+ <circle cx="40" cy="35" r="6" fill="#f38ba8" />
13
+ <circle cx="60" cy="35" r="6" fill="#fab387" />
14
+ <circle cx="80" cy="35" r="6" fill="#a6e3a1" />
15
+
16
+ <!-- Title -->
17
+ <text x="400" y="38" font-family="JetBrains Mono, monospace" font-size="12" fill="#bac2de" text-anchor="middle">~/.dotfiles — zsh</text>
18
+
19
+ <!-- Mock Terminal Content -->
20
+ <g font-family="JetBrains Mono, monospace" font-size="13">
21
+ <!-- Prompt + command -->
22
+ <text x="40" y="75" fill="#a6e3a1">&#10148;</text>
23
+ <text x="60" y="75" fill="#cdd6f4">dot doctor</text>
24
+
25
+ <!-- Section: Dotfiles Core -->
26
+ <text x="40" y="105" fill="#89b4fa" font-weight="bold">Dotfiles Core</text>
27
+ <text x="40" y="125" fill="#a6e3a1"> &#10003; chezmoi</text>
28
+ <text x="220" y="125" fill="#585b70">2.47.1 (mise)</text>
29
+ <text x="40" y="145" fill="#a6e3a1"> &#10003; git</text>
30
+ <text x="220" y="145" fill="#585b70">2.49.0 (system)</text>
31
+ <text x="40" y="165" fill="#a6e3a1"> &#10003; age encryption</text>
32
+ <text x="220" y="165" fill="#585b70">key present</text>
33
+
34
+ <!-- Section: Shell Environment -->
35
+ <text x="40" y="195" fill="#89b4fa" font-weight="bold">Shell Environment</text>
36
+ <text x="40" y="215" fill="#a6e3a1"> &#10003; zsh</text>
37
+ <text x="220" y="215" fill="#585b70">5.9.0 (system)</text>
38
+ <text x="40" y="235" fill="#a6e3a1"> &#10003; starship</text>
39
+ <text x="220" y="235" fill="#585b70">1.22.1 (mise)</text>
40
+ <text x="40" y="255" fill="#a6e3a1"> &#10003; zoxide</text>
41
+ <text x="220" y="255" fill="#585b70">0.9.7 (mise)</text>
42
+
43
+ <!-- Section: CLI Tools -->
44
+ <text x="420" y="105" fill="#89b4fa" font-weight="bold">CLI Tools</text>
45
+ <text x="420" y="125" fill="#a6e3a1"> &#10003; rg (ripgrep)</text>
46
+ <text x="600" y="125" fill="#585b70">14.1.1</text>
47
+ <text x="420" y="145" fill="#a6e3a1"> &#10003; bat</text>
48
+ <text x="600" y="145" fill="#585b70">0.25.0</text>
49
+ <text x="420" y="165" fill="#a6e3a1"> &#10003; fzf</text>
50
+ <text x="600" y="165" fill="#585b70">0.60.3</text>
51
+
52
+ <!-- Section: Security -->
53
+ <text x="420" y="195" fill="#89b4fa" font-weight="bold">Security</text>
54
+ <text x="420" y="215" fill="#a6e3a1"> &#10003; SSH keys</text>
55
+ <text x="600" y="215" fill="#585b70">ed25519</text>
56
+ <text x="420" y="235" fill="#a6e3a1"> &#10003; GPG signing</text>
57
+ <text x="600" y="235" fill="#585b70">configured</text>
58
+ <text x="420" y="255" fill="#a6e3a1"> &#10003; secrets (age)</text>
59
+ <text x="600" y="255" fill="#585b70">encrypted</text>
60
+
61
+ <!-- Performance line -->
62
+ <text x="40" y="290" fill="#89b4fa" font-weight="bold">Performance</text>
63
+ <text x="40" y="310" fill="#a6e3a1"> &#10003; zsh startup</text>
64
+ <text x="220" y="310" fill="#585b70">12ms</text>
65
+
66
+ <!-- Score -->
67
+ <text x="40" y="350" fill="#a6e3a1" font-weight="bold">Score: 95/100 — Excellent</text>
68
+ <text x="40" y="370" fill="#585b70">18 passed, 0 errors, 1 warning</text>
69
+
70
+ <!-- New prompt -->
71
+ <text x="40" y="405" fill="#a6e3a1">&#10148;</text>
72
+ <text x="60" y="405" fill="#cdd6f4">~/.dotfiles</text>
73
+ <text x="170" y="405" fill="#f5c2e7">on master</text>
74
+ <rect x="275" y="393" width="8" height="16" fill="#cdd6f4">
75
+ <animate attributeName="opacity" values="1;0;1" dur="1s" repeatCount="indefinite" />
76
+ </rect>
77
+ </g>
78
+ </svg>
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "Module manifest for dot_config/ — logical grouping of flat directories",
3
+ "groups": {
4
+ "shell": {
5
+ "description": "Shell environments and startup",
6
+ "modules": ["shell", "zsh", "fish", "nushell"]
7
+ },
8
+ "terminal": {
9
+ "description": "Terminal emulators",
10
+ "modules": ["alacritty", "ghostty", "kitty", "wezterm"]
11
+ },
12
+ "editor": {
13
+ "description": "Text editors and IDEs",
14
+ "modules": ["nvim", "vscode", "micro", "nano"]
15
+ },
16
+ "git": {
17
+ "description": "Version control",
18
+ "modules": ["git", "lazygit", "gh"]
19
+ },
20
+ "container": {
21
+ "description": "Containers and orchestration",
22
+ "modules": ["docker", "containers", "lazydocker", "k9s", "minikube"]
23
+ },
24
+ "ai": {
25
+ "description": "AI tools and assistants",
26
+ "modules": ["ai", "aider", "claude", "goose"]
27
+ },
28
+ "languages": {
29
+ "description": "Language toolchains",
30
+ "modules": ["go", "pip", "pypoetry", "gem", "bun", "yarn", "dlv"]
31
+ },
32
+ "system": {
33
+ "description": "System monitoring and management",
34
+ "modules": ["btop", "htop", "fastfetch", "topgrade", "systemd", "ncdu", "duf"]
35
+ },
36
+ "security": {
37
+ "description": "Security and secrets",
38
+ "modules": ["gnupg", "sops"]
39
+ },
40
+ "network": {
41
+ "description": "Network and HTTP tools",
42
+ "modules": ["curl", "wget"]
43
+ },
44
+ "data": {
45
+ "description": "Databases and data tools",
46
+ "modules": ["redis", "mongosh", "mycli", "ipython"]
47
+ },
48
+ "tools": {
49
+ "description": "CLI utilities",
50
+ "modules": ["bat", "fzf", "yazi", "just", "mise", "task", "tmux", "pueue", "atuin", "emoji"]
51
+ },
52
+ "desktop": {
53
+ "description": "Desktop environment and appearance",
54
+ "modules": ["gtk-3.0", "gtk-4.0", "fontconfig", "flatpak", "zellij"]
55
+ },
56
+ "macos": {
57
+ "description": "macOS-specific modules",
58
+ "modules": ["karabiner", "mas", "duti", "raycast"]
59
+ },
60
+ "infra": {
61
+ "description": "Infrastructure and cloud",
62
+ "modules": ["ansible", "tflint"]
63
+ },
64
+ "dotfiles": {
65
+ "description": "Dotfiles internal config",
66
+ "modules": ["dotfiles"]
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,20 @@
1
+ # AI Identity & Preferences
2
+
3
+ ## Profile
4
+ - **User**:
5
+ - **Role**: Senior Software Engineer / Architect
6
+ - **Expertise**: Rust, TypeScript, Go, DevOps (Nix, Kubernetes), Shell Scripting.
7
+
8
+ ## Coding Style
9
+ - **Principles**: Clean code, SOLID, DRY, KISS.
10
+ - **Preferences**:
11
+ - Prefer TypeScript over JavaScript.
12
+ - Prefer functional programming patterns where appropriate.
13
+ - Use Vitest or Jest for testing.
14
+ - Use Prettier and ESLint for formatting/linting.
15
+ - **Documentation**: Use JSDoc/TSDoc for code and GitHub-flavored Markdown for docs.
16
+
17
+ ## Workspace Context
18
+ - **Environment**: Linux (CachyOS/Arch), macOS.
19
+ - **Shells**: Zsh (primary), Fish, Nushell, Bash.
20
+ - **Dotfiles**: Managed by Chezmoi, optimized for performance and security.
@@ -0,0 +1,14 @@
1
+ # Identity: Dotfiles Architect
2
+
3
+ You are an expert Shell Infrastructure Architect specializing in the 2026 developer stack.
4
+
5
+ ## Core Directives
6
+ - **Subtlety**: Propose changes that integrate seamlessly without adding unnecessary complexity.
7
+ - **Performance**: Prioritize shell startup speed and binary efficiency (e.g., _cached_eval).
8
+ - **Architecture**: Adhere to the modular "rc.d" structure and XDG Base Directory standards.
9
+ - **Tools**: Leverage Mise for runtimes, Nix for declarative environments, and Chezmoi for state management.
10
+
11
+ ## Environment Context
12
+ - OS: Arch/CachyOS (optimized for x86-64-v4) or macOS.
13
+ - Shells: Zsh (primary), Fish, Nushell, Bash.
14
+ - Security: Age/SOPS for secrets, GPG signing enforced.
@@ -0,0 +1,13 @@
1
+ # Identity: Shell Security Hardener
2
+
3
+ You are a security engineer specializing in high-compliance Fintech environments and Post-Quantum Cryptography (PQC).
4
+
5
+ ## Core Directives
6
+ - **Zero Trust**: Assume all external scripts are compromised until verified.
7
+ - **Encryption**: Enforce Age/SOPS for all sensitive data.
8
+ - **Compliance**: Adhere to 2026 security baselines (GPG signing, SSH certificate authorities).
9
+ - **Privacy**: Disable all non-essential telemetry at the OS and application level.
10
+
11
+ ## Verification Logic
12
+ - Every proposal must include a "Verification" step (e.g., dot verify --security).
13
+ - Prioritize hardware enclave (TPM/Secure Enclave) integrations.
@@ -0,0 +1,13 @@
1
+ # Identity: POSIX & Shell Optimizer
2
+
3
+ You are an expert in shell script optimization and POSIX compliance.
4
+
5
+ ## Core Directives
6
+ - **Portability**: Ensure scripts work across Zsh, Bash, and Dash unless specifically optimized for a feature shell (like Fish/Nushell).
7
+ - **Indempotency**: Scripts must be safe to run multiple times without side effects.
8
+ - **Linting**: Adhere to ShellCheck best practices and strict error handling (set -euo pipefail).
9
+ - **Latency**: Minimize subshell calls and external binary forks.
10
+
11
+ ## Optimization Strategy
12
+ - Use built-in shell features over external commands where possible.
13
+ - Implement caching mechanisms for heavy computations.
@@ -0,0 +1,32 @@
1
+ # Aider configuration
2
+ # https://aider.chat/docs/config/options.html
3
+
4
+ # Model settings
5
+ model: claude-opus-4-6
6
+ edit-format: diff
7
+
8
+ # Git settings
9
+ auto-commits: true
10
+ dirty-commits: false
11
+ attribute-author: true
12
+ attribute-commit-message: true
13
+
14
+ # UI settings
15
+ dark-mode: true
16
+ pretty: true
17
+ stream: true
18
+
19
+ # Code settings
20
+ auto-lint: true
21
+ lint-cmd: "npm run lint"
22
+ auto-test: false
23
+
24
+ # File handling
25
+ gitignore: true
26
+ aiderignore: true
27
+
28
+ # History
29
+ restore-chat-history: true
30
+
31
+ # Voice (if enabled)
32
+ # voice-language: en