@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,137 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # Interactive setup for dotfiles preferences
4
+ # Usage: dot setup
5
+
6
+ set -euo pipefail
7
+
8
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
+ # shellcheck source=../dot/lib/ui.sh
10
+ # shellcheck disable=SC1091
11
+ source "$SCRIPT_DIR/../dot/lib/ui.sh"
12
+
13
+ ui_init
14
+
15
+ CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/chezmoi"
16
+ CONFIG_FILE="$CONFIG_DIR/chezmoi.toml"
17
+ BACKUP_FILE="$CONFIG_DIR/chezmoi.toml.bak.$(date +%Y%m%d_%H%M%S)"
18
+ mkdir -p "$CONFIG_DIR"
19
+
20
+ choose() {
21
+ local prompt="$1"
22
+ shift
23
+ if command -v gum >/dev/null 2>&1; then
24
+ gum choose --cursor.foreground=212 --selected.foreground=212 --header "$prompt" "$@"
25
+ else
26
+ echo "$prompt"
27
+ select opt in "$@"; do
28
+ echo "$opt"
29
+ return
30
+ done
31
+ fi
32
+ }
33
+
34
+ confirm() {
35
+ local prompt="$1"
36
+ if command -v gum >/dev/null 2>&1; then
37
+ gum confirm "$prompt"
38
+ else
39
+ read -r -p "$prompt [y/N]: " ans
40
+ [[ "$ans" =~ ^[Yy]$ ]]
41
+ fi
42
+ }
43
+
44
+ ui_header "Dotfiles Setup"
45
+
46
+ profile=$(choose "Select profile" laptop desktop server minimal)
47
+
48
+ feature_zsh=true
49
+ feature_nvim=true
50
+ feature_tmux=true
51
+ feature_gui=true
52
+ feature_secrets=true
53
+
54
+ confirm "Enable Zsh config?" || feature_zsh=false
55
+ confirm "Enable Neovim config?" || feature_nvim=false
56
+ confirm "Enable tmux config?" || feature_tmux=false
57
+ confirm "Enable GUI extras (fonts/themes)?" || feature_gui=false
58
+ confirm "Enable secrets integration?" || feature_secrets=false
59
+
60
+ alias_profile=$(choose "Alias profile" standard minimal)
61
+ strict_mode=false
62
+ confirm "Enable strict alias governance?" && strict_mode=true
63
+
64
+ secrets_provider=$(choose "Secrets provider" auto sops onepassword bitwarden)
65
+
66
+ theme_choices=(
67
+ macos-ai-dark macos-ai-light
68
+ macos-bigsur-dark macos-bigsur-light
69
+ macos-blue-dark macos-blue-light
70
+ macos-blush-dark macos-blush-light
71
+ macos-citrus-dark macos-citrus-light
72
+ macos-green-dark macos-green-light
73
+ macos-gridgreen-dark macos-gridgreen-light
74
+ macos-heatmap-dark macos-heatmap-light
75
+ macos-indigo-dark macos-indigo-light
76
+ macos-miami-dark macos-miami-light
77
+ macos-mojave-dark macos-mojave-light
78
+ macos-monterey-dark macos-monterey-light
79
+ macos-nova-dark macos-nova-light
80
+ macos-orange-dark macos-orange-light
81
+ macos-pink-dark macos-pink-light
82
+ macos-purple-dark macos-purple-light
83
+ macos-sequoia-dark macos-sequoia-light
84
+ macos-silver-dark macos-silver-light
85
+ macos-sonoma-dark macos-sonoma-light
86
+ macos-tahoe-dark macos-tahoe-light
87
+ macos-valentine-dark macos-valentine-light
88
+ macos-ventura-dark macos-ventura-light
89
+ macos-wave-dark macos-wave-light
90
+ macos-yellow-dark macos-yellow-light
91
+ )
92
+ theme=$(choose "Theme" "${theme_choices[@]}")
93
+
94
+ if [[ -f "$CONFIG_FILE" ]]; then
95
+ cp "$CONFIG_FILE" "$BACKUP_FILE"
96
+ ui_info "Backup" "$BACKUP_FILE"
97
+ fi
98
+
99
+ cat >"$CONFIG_FILE" <<TOML
100
+ [data]
101
+ profile = "$profile"
102
+ theme = "$theme"
103
+
104
+ [data.features]
105
+ zsh = ${feature_zsh}
106
+ nvim = ${feature_nvim}
107
+ tmux = ${feature_tmux}
108
+ gui = ${feature_gui}
109
+ secrets = ${feature_secrets}
110
+
111
+ [data.aliases]
112
+ profile = "$alias_profile"
113
+
114
+ [data.aliases.policy]
115
+ strict_mode = ${strict_mode}
116
+
117
+ [data.aliases.buckets]
118
+ system = true
119
+ svn = true
120
+
121
+ [data.secrets]
122
+
123
+ [data.secrets.policy]
124
+ provider = "$secrets_provider"
125
+ auto_load = true
126
+ TOML
127
+
128
+ ui_ok "Config" "Updated $CONFIG_FILE"
129
+
130
+ if confirm "Apply dotfiles now?"; then
131
+ if command -v chezmoi >/dev/null 2>&1; then
132
+ chezmoi apply
133
+ ui_ok "Apply" "Complete"
134
+ else
135
+ ui_warn "chezmoi" "Not installed"
136
+ fi
137
+ fi
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ # Script: teleport.sh
4
+ # Description: Deploys dotfiles to a remote host ephemerally.
5
+ # Usage: ./teleport.sh user@hostname
6
+
7
+ set -euo pipefail
8
+
9
+ TARGET="$1"
10
+
11
+ if [[ -z "$TARGET" ]]; then
12
+ echo "Usage: $0 user@host"
13
+ exit 1
14
+ fi
15
+
16
+ # Validate SSH target: must be user@host format, no shell metacharacters
17
+ if [[ ! "$TARGET" =~ ^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+$ ]]; then
18
+ echo "Invalid SSH target: $TARGET" >&2
19
+ echo "Expected format: user@hostname (alphanumeric, dots, hyphens, underscores only)" >&2
20
+ exit 1
21
+ fi
22
+
23
+ echo " Teleporting dotfiles to ${TARGET}..."
24
+
25
+ # 1. Archive the current state
26
+ # 2. Pipe to SSH
27
+ # 3. Extract in remote home directory with safety flags
28
+ # --no-same-owner: don't try to preserve owner (non-root)
29
+ # --strip-components=0: don't strip path components
30
+ chezmoi archive | ssh "$TARGET" 'tar xz -C "$HOME" --no-same-owner'
31
+
32
+ echo " Teleport successful!"
33
+ echo " Note: Changes are applied to files, but shell may need restart or sourcing."
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
7
+
8
+ include_module_coverage=0
9
+
10
+ usage() {
11
+ cat <<'EOF'
12
+ Coverage Baseline
13
+
14
+ Usage:
15
+ coverage-baseline.sh [--with-module-coverage]
16
+
17
+ Options:
18
+ --with-module-coverage Run tests/framework/module_coverage.sh and include the result
19
+ -h, --help Show this help
20
+ EOF
21
+ }
22
+
23
+ while [ "$#" -gt 0 ]; do
24
+ case "$1" in
25
+ --with-module-coverage)
26
+ include_module_coverage=1
27
+ ;;
28
+ -h | --help)
29
+ usage
30
+ exit 0
31
+ ;;
32
+ *)
33
+ printf 'Unknown option: %s\n' "$1" >&2
34
+ usage >&2
35
+ exit 1
36
+ ;;
37
+ esac
38
+ shift
39
+ done
40
+
41
+ unit_tests="$(find "$REPO_ROOT/tests/unit" -name 'test_*.sh' | wc -l | tr -d ' ')"
42
+ integration_tests="$(find "$REPO_ROOT/tests/integration" -name 'test_*.sh' | wc -l | tr -d ' ')"
43
+ total_tests="$(find "$REPO_ROOT/tests" -path '*/framework/*' -prune -o -name 'test_*.sh' -print | wc -l | tr -d ' ')"
44
+ named_tests="$(rg -o '\btest_start\b' "$REPO_ROOT/tests/unit" "$REPO_ROOT/tests/integration" -g 'test_*.sh' | wc -l | tr -d ' ')"
45
+ docs_files="$(find "$REPO_ROOT/docs" -type f \( -name '*.md' -o -name '*.md.tmpl' \) | wc -l | tr -d ' ')"
46
+ shell_surfaces="$(find "$REPO_ROOT/scripts" "$REPO_ROOT/dot_local/bin" "$REPO_ROOT/.chezmoitemplates/functions" -type f \( -name '*.sh' -o -name 'executable_*' \) | wc -l | tr -d ' ')"
47
+
48
+ printf 'Coverage Baseline\n'
49
+ printf 'Repository: %s\n' "$REPO_ROOT"
50
+ printf 'Documentation files: %s\n' "$docs_files"
51
+ printf 'Executable shell surfaces: %s\n' "$shell_surfaces"
52
+ printf 'Unit test files: %s\n' "$unit_tests"
53
+ printf 'Integration test files: %s\n' "$integration_tests"
54
+ printf 'Total test files: %s\n' "$total_tests"
55
+ printf 'Named tests: %s\n' "$named_tests"
56
+
57
+ if [ "$include_module_coverage" -eq 1 ]; then
58
+ printf '\n'
59
+ (cd "$REPO_ROOT" && bash ./tests/framework/module_coverage.sh)
60
+ fi
@@ -0,0 +1,111 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
7
+
8
+ DOT_CLI="$REPO_ROOT/dot_local/bin/executable_dot"
9
+ UTILS_DOC="$REPO_ROOT/docs/reference/UTILS.md"
10
+ AI_DOC="$REPO_ROOT/docs/AI.md"
11
+ SCRIPTS_DOC="$REPO_ROOT/docs/reference/SCRIPTS.md"
12
+ ARCH_DOC="$REPO_ROOT/docs/architecture/ARCHITECTURE.md"
13
+ FUNCTION_GROUPS_JSON="$REPO_ROOT/.chezmoitemplates/functions/groups.json"
14
+ MIN_DOCS_COVERAGE="${MIN_DOCS_COVERAGE:-100}"
15
+
16
+ TOTAL_CHECKS=0
17
+ COVERED_CHECKS=0
18
+
19
+ record_doc_check() {
20
+ local label="$1"
21
+ local needle="$2"
22
+ local file="$3"
23
+
24
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
25
+ if grep -Fq "$needle" "$file"; then
26
+ COVERED_CHECKS=$((COVERED_CHECKS + 1))
27
+ else
28
+ printf 'Missing documentation: %s\n' "$label" >&2
29
+ fi
30
+ }
31
+
32
+ extract_public_commands() {
33
+ awk '
34
+ /_dot_help_specs\(\)/ { in_func=1; next }
35
+ in_func && /cat <<'\''EOF'\''/ { in_block=1; next }
36
+ in_block && /^EOF$/ { exit }
37
+ in_block && /\|/ {
38
+ split($0, parts, /\|/)
39
+ print parts[2]
40
+ }
41
+ ' "$DOT_CLI"
42
+ }
43
+
44
+ check_dot_command_docs() {
45
+ local command=""
46
+
47
+ while IFS= read -r command; do
48
+ [ -n "$command" ] || continue
49
+ record_doc_check "dot $command in UTILS.md" "\`dot $command" "$UTILS_DOC"
50
+ done < <(extract_public_commands)
51
+ }
52
+
53
+ check_ai_provider_docs() {
54
+ local provider=""
55
+
56
+ for provider in cl copilot gemini kiro sgpt ollama opencode aider; do
57
+ record_doc_check "dot $provider in AI.md" "\`dot $provider\`" "$AI_DOC"
58
+ done
59
+ }
60
+
61
+ check_utility_docs() {
62
+ local utility=""
63
+
64
+ for utility in \
65
+ ai-update ai_core antigravity b64 bm cb dot dot-ai dot-bootstrap dot-launch-or-focus \
66
+ dot-load-benchmark dot-load-benchmark-pty dot-theme-sync dtags epoch extract gbd gd \
67
+ git-ai-commit git-ai-diff gl hash hashsum hex jsonv jwt kill-port lorem monitor myip \
68
+ notify open pw rec-start rec-stop regex start-niri tmux-sessionizer tour up update uuid \
69
+ win yamlv; do
70
+ record_doc_check "$utility in SCRIPTS.md" "\`$utility\`" "$SCRIPTS_DOC"
71
+ done
72
+ }
73
+
74
+ check_function_group_docs() {
75
+ local group=""
76
+
77
+ for group in $(
78
+ FUNCTION_GROUPS_JSON="$FUNCTION_GROUPS_JSON" python3 - <<'PY'
79
+ import json
80
+ import os
81
+ from pathlib import Path
82
+ path = Path(os.environ["FUNCTION_GROUPS_JSON"])
83
+ for key in json.loads(path.read_text()).keys():
84
+ print(key)
85
+ PY
86
+ ); do
87
+ record_doc_check "function group $group in ARCHITECTURE.md" "\`$group\`" "$ARCH_DOC"
88
+ done
89
+ }
90
+
91
+ report_coverage() {
92
+ local pct
93
+ pct="$(awk -v c="$COVERED_CHECKS" -v t="$TOTAL_CHECKS" 'BEGIN{if(t==0){print "0.00"}else{printf "%.2f", (100*c/t)}}')"
94
+
95
+ printf 'Docs coverage: %s/%s (%s%%)\n' "$COVERED_CHECKS" "$TOTAL_CHECKS" "$pct"
96
+ printf 'Threshold: %s%%\n' "$MIN_DOCS_COVERAGE"
97
+
98
+ awk -v p="$pct" -v min="$MIN_DOCS_COVERAGE" 'BEGIN{exit !(p+0 >= min+0)}'
99
+ }
100
+
101
+ main() {
102
+ check_dot_command_docs
103
+ check_ai_provider_docs
104
+ check_utility_docs
105
+ check_function_group_docs
106
+ report_coverage
107
+
108
+ printf 'PASS: public dot commands, utility entrypoints, AI providers, and function groups are documented at or above the required threshold\n'
109
+ }
110
+
111
+ main "$@"
@@ -0,0 +1,138 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
7
+
8
+ mode="full"
9
+ run_integration=0
10
+ min_coverage="${MIN_COVERAGE:-100}"
11
+
12
+ platform_name() {
13
+ case "$(uname -s)" in
14
+ Darwin) echo "macOS" ;;
15
+ Linux)
16
+ if grep -qi microsoft /proc/version 2>/dev/null; then
17
+ echo "WSL"
18
+ else
19
+ echo "Linux"
20
+ fi
21
+ ;;
22
+ *) echo "Unknown" ;;
23
+ esac
24
+ }
25
+
26
+ usage() {
27
+ cat <<'EOF'
28
+ Reliability Audit
29
+
30
+ Usage:
31
+ reliability-audit.sh [--quick] [--unit-only] [--with-integration]
32
+
33
+ Options:
34
+ --quick Run syntax, unit, coverage, and examples
35
+ --unit-only Run syntax, unit, coverage, and examples
36
+ --with-integration Include integration tests
37
+ EOF
38
+ }
39
+
40
+ run_step() {
41
+ local label="$1"
42
+ shift
43
+ printf '\n[%s] %s\n' "$(date +%H:%M:%S)" "$label"
44
+ "$@"
45
+ }
46
+
47
+ shell_syntax() {
48
+ local failed=0
49
+ local file
50
+
51
+ while IFS= read -r -d '' file; do
52
+ if ! bash -n "$file"; then
53
+ failed=$((failed + 1))
54
+ fi
55
+ done < <(find "$REPO_ROOT" \
56
+ \( -path "$REPO_ROOT/.git" -o -path "$REPO_ROOT/.coverage" \) -prune \
57
+ -o -type f \( -name "*.sh" -o -name "*.bash" \) -print0)
58
+
59
+ if [ "$failed" -ne 0 ]; then
60
+ printf 'Syntax failures: %s\n' "$failed" >&2
61
+ return 1
62
+ fi
63
+ }
64
+
65
+ unit_tests() {
66
+ cd "$REPO_ROOT"
67
+ ./tests/framework/test_runner.sh
68
+ }
69
+
70
+ integration_tests() {
71
+ cd "$REPO_ROOT"
72
+ RUN_INTEGRATION=1 ./tests/framework/test_runner.sh -i
73
+ }
74
+
75
+ coverage_gate() {
76
+ cd "$REPO_ROOT"
77
+ MIN_COVERAGE="$min_coverage" ./tests/framework/module_coverage.sh
78
+ }
79
+
80
+ example_gate() {
81
+ cd "$REPO_ROOT"
82
+ bash ./scripts/qa/validate-examples.sh
83
+ }
84
+
85
+ docs_coverage_gate() {
86
+ cd "$REPO_ROOT"
87
+ bash ./scripts/qa/docs-coverage.sh
88
+ }
89
+
90
+ traceability_gate() {
91
+ cd "$REPO_ROOT"
92
+ bash ./scripts/qa/traceability-coverage.sh
93
+ }
94
+
95
+ while [ "$#" -gt 0 ]; do
96
+ case "$1" in
97
+ --quick)
98
+ mode="quick"
99
+ ;;
100
+ --unit-only)
101
+ mode="unit"
102
+ ;;
103
+ --with-integration)
104
+ run_integration=1
105
+ ;;
106
+ -h | --help)
107
+ usage
108
+ exit 0
109
+ ;;
110
+ *)
111
+ printf 'Unknown option: %s\n' "$1" >&2
112
+ usage >&2
113
+ exit 1
114
+ ;;
115
+ esac
116
+ shift
117
+ done
118
+
119
+ if [ "$mode" = "full" ]; then
120
+ run_integration=1
121
+ fi
122
+
123
+ printf 'Reliability Audit\n'
124
+ printf 'Platform: %s\n' "$(platform_name)"
125
+ printf 'Coverage floor: %s%%\n' "$min_coverage"
126
+
127
+ run_step "Shell syntax" shell_syntax
128
+ run_step "Unit suite" unit_tests
129
+ run_step "Module coverage" coverage_gate
130
+ run_step "Docs coverage" docs_coverage_gate
131
+ run_step "Traceability coverage" traceability_gate
132
+ run_step "Executable examples" example_gate
133
+
134
+ if [ "$run_integration" -eq 1 ]; then
135
+ run_step "Integration suite" integration_tests
136
+ fi
137
+
138
+ printf '\nReliability audit passed.\n'
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
7
+ TRACE_DOC="$REPO_ROOT/docs/operations/TRACEABILITY.md"
8
+ MIN_TRACEABILITY_COVERAGE="${MIN_TRACEABILITY_COVERAGE:-100}"
9
+
10
+ TOTAL_TRACE_CHECKS=0
11
+ COVERED_TRACE_CHECKS=0
12
+
13
+ extract_impl_paths() {
14
+ awk '
15
+ /^\| BT-/ {
16
+ cols = $0
17
+ sub(/^\|[[:space:]]*/, "", cols)
18
+ sub(/[[:space:]]*\|[[:space:]]*$/, "", cols)
19
+ n = split(cols, parts, /\|/)
20
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", parts[3])
21
+ split(parts[3], impls, /,/)
22
+ for (i in impls) {
23
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", impls[i])
24
+ gsub(/`/, "", impls[i])
25
+ print impls[i]
26
+ }
27
+ }
28
+ ' "$TRACE_DOC" | sort -u
29
+ }
30
+
31
+ trim() {
32
+ sed 's/^[[:space:]]*//; s/[[:space:]]*$//'
33
+ }
34
+
35
+ record_trace_check() {
36
+ local label="$1"
37
+ local target="$2"
38
+
39
+ TOTAL_TRACE_CHECKS=$((TOTAL_TRACE_CHECKS + 1))
40
+ if [ -e "$target" ]; then
41
+ COVERED_TRACE_CHECKS=$((COVERED_TRACE_CHECKS + 1))
42
+ else
43
+ printf 'Missing traceability target: %s (%s)\n' "$label" "$target" >&2
44
+ fi
45
+ }
46
+
47
+ check_path_list() {
48
+ local kind="$1"
49
+ local value="$2"
50
+ local behavior_id="$3"
51
+ local rel=""
52
+
53
+ while IFS= read -r rel; do
54
+ rel="$(printf '%s' "$rel" | trim)"
55
+ [ -n "$rel" ] || continue
56
+ rel="${rel#\`}"
57
+ rel="${rel%\`}"
58
+ record_trace_check "$behavior_id $kind" "$REPO_ROOT/$rel"
59
+ done < <(printf '%s\n' "$value" | tr ',' '\n')
60
+ }
61
+
62
+ report_traceability() {
63
+ local pct
64
+ pct="$(awk -v c="$COVERED_TRACE_CHECKS" -v t="$TOTAL_TRACE_CHECKS" 'BEGIN{if(t==0){print "0.00"}else{printf "%.2f", (100*c/t)}}')"
65
+
66
+ printf 'Traceability coverage: %s/%s (%s%%)\n' "$COVERED_TRACE_CHECKS" "$TOTAL_TRACE_CHECKS" "$pct"
67
+ printf 'Threshold: %s%%\n' "$MIN_TRACEABILITY_COVERAGE"
68
+
69
+ awk -v p="$pct" -v min="$MIN_TRACEABILITY_COVERAGE" 'BEGIN{exit !(p+0 >= min+0)}'
70
+ }
71
+
72
+ main() {
73
+ local line=""
74
+ local cols=""
75
+ local behavior_id=""
76
+ local impls=""
77
+ local tests=""
78
+ local docs=""
79
+
80
+ while IFS= read -r line; do
81
+ case "$line" in
82
+ \|\ BT-*)
83
+ cols="$(printf '%s\n' "$line" | sed 's/^|//; s/|$//')"
84
+ behavior_id="$(printf '%s\n' "$cols" | cut -d'|' -f1 | trim)"
85
+ impls="$(printf '%s\n' "$cols" | cut -d'|' -f3 | trim)"
86
+ tests="$(printf '%s\n' "$cols" | cut -d'|' -f4 | trim)"
87
+ docs="$(printf '%s\n' "$cols" | cut -d'|' -f5 | trim)"
88
+
89
+ check_path_list "implementation" "$impls" "$behavior_id"
90
+ check_path_list "test" "$tests" "$behavior_id"
91
+ check_path_list "doc" "$docs" "$behavior_id"
92
+ ;;
93
+ esac
94
+ done <"$TRACE_DOC"
95
+
96
+ while IFS= read -r required; do
97
+ [ -n "$required" ] || continue
98
+ TOTAL_TRACE_CHECKS=$((TOTAL_TRACE_CHECKS + 1))
99
+ if extract_impl_paths | grep -Fxq "$required"; then
100
+ COVERED_TRACE_CHECKS=$((COVERED_TRACE_CHECKS + 1))
101
+ else
102
+ printf 'Missing traceability row for implementation: %s\n' "$required" >&2
103
+ fi
104
+ done < <(
105
+ {
106
+ find "$REPO_ROOT/scripts/dot/commands" -maxdepth 1 -type f -name '*.sh' | sed "s#^$REPO_ROOT/##"
107
+ find "$REPO_ROOT/scripts/qa" -maxdepth 1 -type f -name '*.sh' | sed "s#^$REPO_ROOT/##"
108
+ } | sort -u
109
+ )
110
+
111
+ report_traceability
112
+
113
+ printf 'PASS: core internal behaviors have implementation, test, and documentation traceability at or above the required threshold\n'
114
+ }
115
+
116
+ main "$@"
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
7
+ EXAMPLES_DIR="$REPO_ROOT/examples"
8
+
9
+ if [ ! -d "$EXAMPLES_DIR" ]; then
10
+ echo "No examples directory found: $EXAMPLES_DIR" >&2
11
+ exit 1
12
+ fi
13
+
14
+ found=0
15
+ while IFS= read -r -d '' example; do
16
+ found=1
17
+ printf 'Running example: %s\n' "$(basename "$example")"
18
+ bash "$example"
19
+ done < <(find "$EXAMPLES_DIR" -maxdepth 1 -type f -name "*.sh" -print0 | sort -z)
20
+
21
+ if [ "$found" -eq 0 ]; then
22
+ echo "No executable examples found in $EXAMPLES_DIR" >&2
23
+ exit 1
24
+ fi
25
+
26
+ printf 'Examples passed.\n'
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env bash
2
+ # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
+ set -euo pipefail
4
+
5
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
7
+
8
+ cd "$REPO_ROOT"
9
+
10
+ bash tests/unit/install/test_os_detection_comprehensive.sh
11
+ bash tests/unit/functions/test_platform_detection_behavior.sh