@sebastienrousseau/dotfiles 0.2.502 → 0.2.503

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/CHANGELOG.md +83 -9
  2. package/LICENSE +21 -1283
  3. package/README.md +5 -3
  4. package/docs/CONFIG_STRATEGY.md +124 -0
  5. package/docs/COPYRIGHT +1 -1
  6. package/docs/GOVERNANCE.md +98 -0
  7. package/docs/MAINTAINERS.md +41 -0
  8. package/docs/OPENCODE.md +127 -0
  9. package/docs/README.md +2 -0
  10. package/docs/STRUCTURE.md +102 -0
  11. package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
  12. package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
  13. package/docs/architecture/REPO_LAYOUT.md +8 -8
  14. package/docs/archive/MILESTONE_v0.2.493.md +1 -1
  15. package/docs/index.md +2 -2
  16. package/docs/interop/POWERSHELL.md +1 -1
  17. package/docs/manual/00-introduction.md +1 -1
  18. package/docs/manual/01-concepts/02-trust-model.md +1 -1
  19. package/docs/manual/03-reference/02-config-files.md +2 -2
  20. package/docs/manual/_toc.yml +1 -1
  21. package/docs/manual/command-index.md +72 -59
  22. package/docs/operations/CI_COMPOSITES.md +2 -2
  23. package/docs/operations/COMPLETIONS.md +2 -2
  24. package/docs/operations/COVERAGE.md +5 -5
  25. package/docs/operations/HARD_AUDIT_2026.md +11 -11
  26. package/docs/operations/MAINTENANCE.md +3 -3
  27. package/docs/operations/MANIFEST.md +127 -0
  28. package/docs/operations/RELEASE_PIPELINE.md +130 -0
  29. package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
  30. package/docs/operations/ROADMAP_2026.md +6 -6
  31. package/docs/operations/ROADMAP_V0_2_503.md +134 -0
  32. package/docs/operations/TESTING.md +17 -0
  33. package/docs/operations/TRACEABILITY.md +6 -3
  34. package/docs/operations/VERSION_SYNC.md +4 -4
  35. package/docs/reference/POWERSHELL_PARITY.md +8 -7
  36. package/docs/schema/dot-env-v1.json +110 -0
  37. package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
  38. package/docs/security/CI_PINNING.md +17 -9
  39. package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
  40. package/docs/security/FUZZING.md +114 -0
  41. package/docs/security/INSTALL_VERIFICATION.md +2 -2
  42. package/docs/security/POLICY_RELEASES.md +2 -2
  43. package/docs/security/SCORECARD.md +58 -3
  44. package/docs/security/SHELL_EXEMPTIONS.md +4 -4
  45. package/docs/security/VERIFY_RELEASE.md +201 -0
  46. package/install.sh +27 -5
  47. package/package.json +1 -1
  48. package/scripts/README.md +123 -0
  49. package/scripts/ci/check-copyright-headers.sh +4 -93
  50. package/scripts/ci/check-shell-preamble.sh +4 -103
  51. package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
  52. package/scripts/diagnostics/a2a-conformance.sh +4 -4
  53. package/scripts/diagnostics/alias-governance.sh +1 -1
  54. package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
  55. package/scripts/diagnostics/benchmark.sh +4 -4
  56. package/scripts/diagnostics/conflicts.sh +2 -2
  57. package/scripts/diagnostics/doctor-unified.sh +2 -2
  58. package/scripts/diagnostics/doctor.sh +10 -10
  59. package/scripts/diagnostics/drift-dashboard.sh +2 -2
  60. package/scripts/diagnostics/health.sh +4 -4
  61. package/scripts/diagnostics/history-analysis.sh +2 -2
  62. package/scripts/diagnostics/mcp-doctor.sh +10 -7
  63. package/scripts/diagnostics/perf.sh +4 -4
  64. package/scripts/diagnostics/scorecard.sh +4 -4
  65. package/scripts/diagnostics/security-score.sh +2 -2
  66. package/scripts/diagnostics/smoke-test.sh +2 -2
  67. package/scripts/diagnostics/snapshot.sh +2 -2
  68. package/scripts/diagnostics/verify.sh +4 -4
  69. package/scripts/diagnostics/version-locks.sh +2 -2
  70. package/scripts/diagnostics/workstation-attestation.sh +14 -14
  71. package/scripts/dot/commands/agent.sh +8 -0
  72. package/scripts/dot/commands/agents.sh +14 -4
  73. package/scripts/dot/commands/ai.sh +144 -25
  74. package/scripts/dot/commands/appearance.sh +2 -2
  75. package/scripts/dot/commands/core.sh +2 -2
  76. package/scripts/dot/commands/diagnostics.sh +5 -5
  77. package/scripts/dot/commands/env-emit.sh +202 -0
  78. package/scripts/dot/commands/fleet.sh +12 -11
  79. package/scripts/dot/commands/init.sh +4 -4
  80. package/scripts/dot/commands/lint.sh +9 -4
  81. package/scripts/dot/commands/manual.sh +3 -3
  82. package/scripts/dot/commands/meta.sh +12 -6
  83. package/scripts/dot/commands/patterns.sh +2 -2
  84. package/scripts/dot/commands/registry.sh +4 -4
  85. package/scripts/dot/commands/restore.sh +4 -4
  86. package/scripts/dot/commands/secrets.sh +4 -3
  87. package/scripts/dot/commands/security.sh +2 -2
  88. package/scripts/dot/commands/tools.sh +13 -3
  89. package/scripts/dot/powershell/Dot.psm1 +199 -0
  90. package/scripts/fonts/install-nerd-fonts.sh +2 -2
  91. package/scripts/git-hooks/pre-commit-audit.sh +2 -2
  92. package/scripts/git-hooks/pre-push +13 -0
  93. package/scripts/ops/ai-setup.sh +1 -1
  94. package/scripts/ops/bundle.sh +2 -2
  95. package/scripts/ops/chaos.sh +2 -2
  96. package/scripts/ops/chezmoi-apply.sh +4 -4
  97. package/scripts/ops/heal.sh +4 -4
  98. package/scripts/ops/post-apply-repair.sh +2 -2
  99. package/scripts/ops/prewarm.sh +2 -2
  100. package/scripts/ops/release.sh +4 -4
  101. package/scripts/ops/rollback.sh +4 -4
  102. package/scripts/ops/setup.sh +2 -2
  103. package/scripts/qa/check-version-consistency.sh +123 -0
  104. package/scripts/qa/coverage-baseline.sh +1 -1
  105. package/scripts/qa/docs-coverage.sh +2 -2
  106. package/scripts/qa/powershell-contract.ps1 +1 -1
  107. package/scripts/qa/scorecard-snapshot.sh +127 -0
  108. package/scripts/security/backup.sh +2 -2
  109. package/scripts/security/dns-doh.sh +4 -4
  110. package/scripts/security/encryption-check.sh +4 -4
  111. package/scripts/security/enforce-policies.sh +2 -2
  112. package/scripts/security/firewall.sh +4 -4
  113. package/scripts/security/lock-screen.sh +4 -4
  114. package/scripts/security/manage-secrets.sh +2 -2
  115. package/scripts/security/ssh-cert.sh +2 -2
  116. package/scripts/security/telemetry-kill.sh +4 -4
  117. package/scripts/security/usb-safety.sh +4 -4
  118. package/scripts/theme/extract-heic-frames.sh +114 -0
  119. package/scripts/theme/rebuild-themes.sh +8 -1
  120. package/scripts/theme/switch.sh +13 -6
  121. package/scripts/theme/wallpaper-sync.sh +297 -93
  122. package/scripts/tuning/linux.sh +2 -2
  123. package/scripts/tuning/macos.sh +2 -2
  124. package/scripts/version-sync.sh +55 -7
  125. package/dot_config/.module-manifest.json +0 -69
  126. package/dot_config/ai/identity.md +0 -23
  127. package/dot_config/ai/patterns/architect.md +0 -16
  128. package/dot_config/ai/patterns/hardener.md +0 -15
  129. package/dot_config/ai/patterns/refactor.md +0 -15
  130. package/dot_config/aider/aider.conf.yml +0 -32
  131. package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
  132. package/dot_config/ansible/ansible.cfg +0 -11
  133. package/dot_config/atuin/config.toml.tmpl +0 -47
  134. package/dot_config/bat/config +0 -23
  135. package/dot_config/brave-flags.conf.tmpl +0 -7
  136. package/dot_config/btop/btop.conf +0 -16
  137. package/dot_config/btop/themes/tokyonight.theme +0 -34
  138. package/dot_config/bun/bunfig.toml.tmpl +0 -33
  139. package/dot_config/claude/mcp_servers.json +0 -20
  140. package/dot_config/containers/containers.conf +0 -14
  141. package/dot_config/curl/dot_curlrc +0 -18
  142. package/dot_config/dlv/config.yml +0 -39
  143. package/dot_config/docker/config.json +0 -15
  144. package/dot_config/dotfiles/agent-card.json +0 -29
  145. package/dot_config/dotfiles/agent-profiles.json +0 -92
  146. package/dot_config/dotfiles/boot/README.md +0 -13
  147. package/dot_config/dotfiles/grub/README.md +0 -13
  148. package/dot_config/dotfiles/lock/README.md +0 -13
  149. package/dot_config/dotfiles/mcp-lock.json +0 -33
  150. package/dot_config/dotfiles/mcp-policy.json +0 -52
  151. package/dot_config/dotfiles/mcp-registry.json +0 -47
  152. package/dot_config/dotfiles/model-registry.json +0 -20
  153. package/dot_config/dotfiles/policy-bundles.json +0 -38
  154. package/dot_config/dotfiles/prompt-registry.json +0 -16
  155. package/dot_config/dotfiles/versions.env +0 -18
  156. package/dot_config/duf/duf.conf +0 -6
  157. package/dot_config/duti/defaults.duti +0 -5
  158. package/dot_config/emoji/emoji.txt +0 -34
  159. package/dot_config/environment.d/50-ssh-agent.conf +0 -2
  160. package/dot_config/environment.d/90-wayland.conf +0 -19
  161. package/dot_config/fastfetch/config.jsonc +0 -28
  162. package/dot_config/firefox/user.js.tmpl +0 -58
  163. package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
  164. package/dot_config/fish/completions/dot.fish.tmpl +0 -115
  165. package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
  166. package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
  167. package/dot_config/fish/conf.d/direnv.fish +0 -4
  168. package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
  169. package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
  170. package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
  171. package/dot_config/fish/conf.d/mise-activate.fish +0 -5
  172. package/dot_config/fish/config.fish.tmpl +0 -44
  173. package/dot_config/fish/fish_plugins +0 -1
  174. package/dot_config/fish/functions/_.fish +0 -3
  175. package/dot_config/fish/functions/_cached_eval.fish +0 -131
  176. package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
  177. package/dot_config/fish/functions/als.fish +0 -46
  178. package/dot_config/fish/functions/bg-upgrade.fish +0 -7
  179. package/dot_config/fish/functions/c.fish +0 -3
  180. package/dot_config/fish/functions/cat.fish +0 -9
  181. package/dot_config/fish/functions/d.fish +0 -7
  182. package/dot_config/fish/functions/dot.fish +0 -34
  183. package/dot_config/fish/functions/h.fish +0 -3
  184. package/dot_config/fish/functions/l.fish +0 -7
  185. package/dot_config/fish/functions/la.fish +0 -7
  186. package/dot_config/fish/functions/ll.fish +0 -7
  187. package/dot_config/fish/functions/log_error.fish +0 -13
  188. package/dot_config/fish/functions/log_info.fish +0 -13
  189. package/dot_config/fish/functions/lr.fish +0 -7
  190. package/dot_config/fish/functions/lra.fish +0 -7
  191. package/dot_config/fish/functions/ls.fish +0 -7
  192. package/dot_config/fish/functions/lt.fish +0 -7
  193. package/dot_config/fish/functions/lta.fish +0 -7
  194. package/dot_config/fish/functions/notify-run.fish +0 -11
  195. package/dot_config/fish/functions/q.fish +0 -3
  196. package/dot_config/fish/functions/silent-run.fish +0 -7
  197. package/dot_config/fish/functions/yy.fish +0 -8
  198. package/dot_config/flatpak/flatpak.list +0 -4
  199. package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
  200. package/dot_config/foot/foot.ini.tmpl +0 -33
  201. package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
  202. package/dot_config/fzf/fzf.zsh +0 -48
  203. package/dot_config/gem/gemrc +0 -9
  204. package/dot_config/gh/config.yml +0 -12
  205. package/dot_config/ghostty/config.tmpl +0 -165
  206. package/dot_config/git/allowed_signers.tmpl +0 -18
  207. package/dot_config/git/attributes +0 -12
  208. package/dot_config/git/commit-template +0 -10
  209. package/dot_config/git/hooks/executable_commit-msg +0 -146
  210. package/dot_config/git/ignore +0 -27
  211. package/dot_config/gnupg/gpg-agent.conf +0 -11
  212. package/dot_config/go/golangci.yml +0 -118
  213. package/dot_config/go/gopls.json +0 -30
  214. package/dot_config/goose/config.yaml +0 -29
  215. package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
  216. package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
  217. package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
  218. package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
  219. package/dot_config/htop/htoprc +0 -20
  220. package/dot_config/inputrc +0 -2
  221. package/dot_config/ipython/profile_default/ipython_config.py +0 -19
  222. package/dot_config/just/justfile +0 -122
  223. package/dot_config/k9s/config.yaml +0 -65
  224. package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
  225. package/dot_config/kanshi/config.tmpl +0 -22
  226. package/dot_config/karabiner/karabiner.json +0 -14
  227. package/dot_config/kitty/kitty.conf.tmpl +0 -53
  228. package/dot_config/lazydocker/config.yml +0 -186
  229. package/dot_config/lazygit/config.yml +0 -35
  230. package/dot_config/mako/config +0 -47
  231. package/dot_config/mas/masapps.txt +0 -5
  232. package/dot_config/micro/settings.json +0 -3
  233. package/dot_config/mimeapps.list +0 -77
  234. package/dot_config/minikube/config.json +0 -13
  235. package/dot_config/mise/config.toml +0 -99
  236. package/dot_config/mongosh/mongoshrc.js +0 -68
  237. package/dot_config/mpv/input.conf +0 -47
  238. package/dot_config/mpv/mpv.conf +0 -47
  239. package/dot_config/mycli/myclirc +0 -67
  240. package/dot_config/nano/nanorc +0 -28
  241. package/dot_config/ncdu/config +0 -12
  242. package/dot_config/niri/config.kdl.tmpl +0 -327
  243. package/dot_config/nushell/aliases.nu +0 -18
  244. package/dot_config/nushell/cached_eval.nu +0 -80
  245. package/dot_config/nushell/completions.nu.tmpl +0 -52
  246. package/dot_config/nushell/config.nu.tmpl +0 -86
  247. package/dot_config/nushell/env.nu.tmpl +0 -102
  248. package/dot_config/nushell/functions.nu.tmpl +0 -17
  249. package/dot_config/nvim/init.lua +0 -18
  250. package/dot_config/nvim/lazy-lock.json +0 -58
  251. package/dot_config/nvim/lua/config/autocmds.lua +0 -107
  252. package/dot_config/nvim/lua/config/keymaps.lua +0 -92
  253. package/dot_config/nvim/lua/config/lazy.lua +0 -44
  254. package/dot_config/nvim/lua/config/options.lua +0 -49
  255. package/dot_config/nvim/lua/plugins/ai.lua +0 -75
  256. package/dot_config/nvim/lua/plugins/coding.lua +0 -216
  257. package/dot_config/nvim/lua/plugins/completion.lua +0 -60
  258. package/dot_config/nvim/lua/plugins/dap.lua +0 -412
  259. package/dot_config/nvim/lua/plugins/editor.lua +0 -55
  260. package/dot_config/nvim/lua/plugins/git.lua +0 -10
  261. package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
  262. package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
  263. package/dot_config/nvim/lua/plugins/rust.lua +0 -34
  264. package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
  265. package/dot_config/nvim/lua/plugins/ui.lua +0 -509
  266. package/dot_config/paru/paru.conf +0 -10
  267. package/dot_config/pip/pip.conf.tmpl +0 -32
  268. package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
  269. package/dot_config/pueue/pueue.yml +0 -34
  270. package/dot_config/pypoetry/config.toml +0 -6
  271. package/dot_config/pyrightconfig.json +0 -5
  272. package/dot_config/raycast/README.md +0 -13
  273. package/dot_config/redis/redisclirc +0 -41
  274. package/dot_config/ripgrep/ripgreprc +0 -21
  275. package/dot_config/shell/00-core-paths.sh.tmpl +0 -141
  276. package/dot_config/shell/05-core-safety.sh +0 -48
  277. package/dot_config/shell/10-secrets.sh +0 -41
  278. package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
  279. package/dot_config/shell/40-ls-colors.sh +0 -49
  280. package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
  281. package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
  282. package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
  283. package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
  284. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
  285. package/dot_config/shell/Brewfile +0 -207
  286. package/dot_config/shell/Brewfile.cask +0 -92
  287. package/dot_config/shell/Brewfile.cli +0 -127
  288. package/dot_config/shell/README.md +0 -284
  289. package/dot_config/shell/als_data.txt.tmpl +0 -65
  290. package/dot_config/shell/custom/auto_ls.zsh +0 -20
  291. package/dot_config/shell/custom/context_suggest.zsh +0 -68
  292. package/dot_config/shell/custom/error_analysis.zsh +0 -45
  293. package/dot_config/sops/dot_sops.yaml +0 -23
  294. package/dot_config/starship.toml.tmpl +0 -202
  295. package/dot_config/swaylock/config +0 -43
  296. package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
  297. package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
  298. package/dot_config/systemd/user/pueued.service +0 -12
  299. package/dot_config/systemd/user/ssh-agent.service +0 -12
  300. package/dot_config/task/Taskfile.yml +0 -86
  301. package/dot_config/tflint/tflint.hcl +0 -9
  302. package/dot_config/tmux/tmux.conf.tmpl +0 -223
  303. package/dot_config/topgrade.toml.tmpl +0 -54
  304. package/dot_config/user-dirs.dirs +0 -10
  305. package/dot_config/vscode/extensions.txt +0 -11
  306. package/dot_config/vscode/settings.json.tmpl +0 -82
  307. package/dot_config/waybar/config.jsonc.tmpl +0 -90
  308. package/dot_config/waybar/style.css.tmpl +0 -211
  309. package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
  310. package/dot_config/wget/wgetrc +0 -12
  311. package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
  312. package/dot_config/yarn/yarnrc.yml +0 -36
  313. package/dot_config/yazi/keymap.toml +0 -67
  314. package/dot_config/yazi/theme.toml +0 -102
  315. package/dot_config/yazi/yazi.toml +0 -40
  316. package/dot_config/zathura/zathurarc +0 -52
  317. package/dot_config/zellij/config.kdl.tmpl +0 -79
  318. package/dot_config/zsh/dot_zprofile +0 -7
  319. package/dot_config/zsh/dot_zshenv +0 -5
  320. package/dot_config/zsh/dot_zshrc.tmpl +0 -688
  321. package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
  322. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
  323. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
  324. package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
  325. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
  326. package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
  327. package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
  328. package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
  329. package/dot_local/bin/executable_ai-update +0 -195
  330. package/dot_local/bin/executable_ai_core +0 -152
  331. package/dot_local/bin/executable_antigravity +0 -11
  332. package/dot_local/bin/executable_b64 +0 -84
  333. package/dot_local/bin/executable_bm +0 -79
  334. package/dot_local/bin/executable_cb +0 -39
  335. package/dot_local/bin/executable_dot +0 -636
  336. package/dot_local/bin/executable_dot-ai +0 -36
  337. package/dot_local/bin/executable_dot-bootstrap +0 -76
  338. package/dot_local/bin/executable_dot-launch-or-focus +0 -52
  339. package/dot_local/bin/executable_dot-load-benchmark +0 -31
  340. package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
  341. package/dot_local/bin/executable_dot-theme-sync +0 -952
  342. package/dot_local/bin/executable_dot_completion +0 -57
  343. package/dot_local/bin/executable_dtags +0 -28
  344. package/dot_local/bin/executable_epoch +0 -67
  345. package/dot_local/bin/executable_extract +0 -41
  346. package/dot_local/bin/executable_gbd +0 -52
  347. package/dot_local/bin/executable_gd +0 -42
  348. package/dot_local/bin/executable_git-ai-commit +0 -175
  349. package/dot_local/bin/executable_git-ai-diff +0 -169
  350. package/dot_local/bin/executable_gl +0 -101
  351. package/dot_local/bin/executable_hash +0 -161
  352. package/dot_local/bin/executable_hashsum +0 -160
  353. package/dot_local/bin/executable_hex +0 -115
  354. package/dot_local/bin/executable_jsonv +0 -78
  355. package/dot_local/bin/executable_jwt +0 -94
  356. package/dot_local/bin/executable_kill-port +0 -75
  357. package/dot_local/bin/executable_lorem +0 -118
  358. package/dot_local/bin/executable_mkscript +0 -35
  359. package/dot_local/bin/executable_monitor +0 -56
  360. package/dot_local/bin/executable_myip +0 -51
  361. package/dot_local/bin/executable_notify +0 -24
  362. package/dot_local/bin/executable_open +0 -38
  363. package/dot_local/bin/executable_pw +0 -27
  364. package/dot_local/bin/executable_rec-start +0 -46
  365. package/dot_local/bin/executable_rec-stop +0 -35
  366. package/dot_local/bin/executable_regex +0 -132
  367. package/dot_local/bin/executable_start-niri +0 -8
  368. package/dot_local/bin/executable_tmux-sessionizer +0 -314
  369. package/dot_local/bin/executable_tour +0 -177
  370. package/dot_local/bin/executable_up +0 -23
  371. package/dot_local/bin/executable_update +0 -142
  372. package/dot_local/bin/executable_uuid +0 -87
  373. package/dot_local/bin/executable_win +0 -32
  374. package/dot_local/bin/executable_yamlv +0 -57
  375. package/dot_local/share/bash-completion/completions/dot +0 -72
  376. package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
  377. package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
  378. package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
  379. package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
  380. package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
  381. package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
  382. package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
  383. package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
  384. package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
  385. package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
  386. package/dot_local/share/man/man1/dot.1 +0 -149
  387. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
  388. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
  389. package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
  390. package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
  391. package/dot_local/share/zsh/completions/.keep +0 -0
  392. package/dot_local/share/zsh/completions/_dot +0 -287
  393. package/scripts/ci/check-dangerous-chmod.sh +0 -19
  394. package/scripts/ci/check-deps-dev.sh +0 -236
  395. package/scripts/ci/check-insecure-tls.sh +0 -61
  396. package/scripts/ci/check-regression-traceability.sh +0 -67
  397. package/scripts/ci/dot-cli-startup-bench.sh +0 -126
  398. package/scripts/ci/install-chezmoi-verified.sh +0 -67
  399. package/scripts/ci/lint-reusable-pins.sh +0 -78
  400. package/scripts/ci/run-coverage.sh +0 -451
  401. package/scripts/ci/validate-chezmoidata.sh +0 -25
  402. package/scripts/ci/validate-ci-config.sh +0 -224
  403. package/scripts/ci/windows-smoke-test.ps1 +0 -136
  404. package/scripts/docs/build-manual.sh +0 -883
  405. package/scripts/docs/check-manual.sh +0 -213
  406. package/scripts/dot/lib/bento.sh +0 -50
  407. package/scripts/dot/lib/log.sh +0 -200
  408. package/scripts/dot/lib/platform.sh +0 -112
  409. package/scripts/dot/lib/ui.sh +0 -650
  410. package/scripts/dot/lib/utils.sh +0 -377
  411. package/scripts/maintenance/check-updates.sh +0 -131
  412. package/scripts/release/package-policy-bundles.sh +0 -125
@@ -1,106 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
  # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
- # =============================================================================
4
- # check-shell-preamble.sh Enforce `set -euo pipefail` (bash) / `set -eu` (sh)
5
- # on every executable shell script in the repo.
6
- #
7
- # Skip-rules:
8
- # * Sourced libraries that declare themselves as such via a "Sourced by ..."
9
- # header comment in the first 15 lines.
10
- # * Explicit opt-out via `# preamble:skip` marker in the first 15 lines
11
- # (used by completion files, init fragments, and other library code that
12
- # is loaded into the caller's shell context).
13
- # * Files under tests/ (the test runner sets shell options for its children).
14
- #
15
- # Invocation:
16
- # * pre-commit local hook (files passed as args)
17
- # * standalone: ./scripts/ci/check-shell-preamble.sh # full repo
18
- # ./scripts/ci/check-shell-preamble.sh file.sh # explicit
19
- # =============================================================================
20
-
3
+ # Compat shim: the canonical script moved to tools/ci/ in v0.2.503.
4
+ # Pinned reusable workflows on master still reference the old path;
5
+ # this delegates so they keep working until the next pin bump.
21
6
  set -euo pipefail
22
-
23
- check_one() {
24
- local f="$1"
25
-
26
- [[ -f "$f" ]] || return 0
27
-
28
- local shebang
29
- shebang="$(head -1 "$f" 2>/dev/null || true)"
30
-
31
- # Only check files with a bash or sh shebang.
32
- case "$shebang" in
33
- *bash*) ;;
34
- *sh) ;;
35
- *) return 0 ;;
36
- esac
37
-
38
- # Skip files declaring themselves as sourced libraries or opting out.
39
- if head -15 "$f" | grep -Eq '^# *(Sourced by |preamble:skip|shellcheck source-only)'; then
40
- return 0
41
- fi
42
-
43
- # Skip the test suite — tests are sourced by tests/framework/test_runner.sh
44
- # which manages shell options for its children.
45
- case "$f" in
46
- tests/*) return 0 ;;
47
- # Bulk-sourced fragments. These directories contain hundreds of
48
- # alias / function / PATH snippets that are sourced into the
49
- # caller's shell context — adding `set -e` locally would corrupt
50
- # the caller. Path-skipped en masse rather than annotated per-file
51
- # (would be 300+ marker comments).
52
- .chezmoitemplates/aliases/*) return 0 ;;
53
- .chezmoitemplates/functions/*) return 0 ;;
54
- .chezmoitemplates/paths/*) return 0 ;;
55
- # dot_config/shell/* and scripts/dot/lib/* are also sourced but
56
- # have explicit `# Sourced by` headers as of #854 (defense in
57
- # depth — the lint also accepts them on header alone).
58
- dot_local/bin/executable_dot_completion) return 0 ;; # zsh completion, sourced into shell
59
- esac
60
-
61
- # Required preamble lives within the first 50 lines (after optional docstring).
62
- local preamble_re
63
- case "$shebang" in
64
- *bash*)
65
- preamble_re='^[[:space:]]*set[[:space:]]+-([eu]+o[[:space:]]+pipefail|euo[[:space:]]+pipefail|eu[[:space:]]*$)'
66
- ;;
67
- *sh)
68
- preamble_re='^[[:space:]]*set[[:space:]]+-eu[o]?'
69
- ;;
70
- esac
71
-
72
- if ! head -50 "$f" | grep -Eq "$preamble_re"; then
73
- echo "MISSING preamble: $f"
74
- return 1
75
- fi
76
- }
77
-
78
- fail=0
79
- if [[ $# -gt 0 ]]; then
80
- for f in "$@"; do
81
- check_one "$f" || fail=1
82
- done
83
- else
84
- # Full-repo scan
85
- while IFS= read -r f; do
86
- check_one "$f" || fail=1
87
- done < <(git ls-files | grep -E '\.sh$|^dot_local/bin/executable_|^scripts/.+\.sh$')
88
- fi
89
-
90
- if [[ $fail -ne 0 ]]; then
91
- cat >&2 <<'MSG'
92
-
93
- Some shell scripts are missing the safety preamble.
94
- * bash → `set -euo pipefail`
95
- * sh → `set -eu`
96
-
97
- If the file is a sourced library, add this header to its first 15 lines:
98
- # Sourced by <parent>.sh; inherits set -euo pipefail
99
-
100
- If the file is a shell init fragment / completion that must NOT enforce its own
101
- options on the caller, add this marker instead:
102
- # preamble:skip
103
-
104
- MSG
105
- exit 1
106
- fi
7
+ exec bash "$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)/tools/ci/check-shell-preamble.sh" "$@"
@@ -1,57 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
  # Copyright (c) 2015-2026 Dotfiles. All rights reserved.
3
- # Guard against full-history gitleaks scans on manual runs.
4
- # This ensures workflow checkout remains shallow near gitleaks steps.
5
-
3
+ # Compat shim: the canonical script moved to tools/ci/ in v0.2.503.
4
+ # Pinned reusable workflows on master still reference the old path;
5
+ # this delegates so they keep working until the next pin bump.
6
6
  set -euo pipefail
7
-
8
- check_workflow() {
9
- local workflow="$1"
10
- local failed=0
11
- local line_no
12
-
13
- while IFS=: read -r line_no _; do
14
- local start end context
15
- start=$((line_no - 16))
16
- end=$((line_no + 2))
17
- if [[ "$start" -lt 1 ]]; then
18
- start=1
19
- fi
20
-
21
- context="$(sed -n "${start},${end}p" "$workflow")"
22
-
23
- if [[ "$context" != *"actions/checkout"* ]]; then
24
- echo "ERROR: $workflow:$line_no missing nearby checkout for gitleaks step."
25
- failed=1
26
- continue
27
- fi
28
-
29
- if [[ "$context" != *"fetch-depth: 1"* ]]; then
30
- echo "ERROR: $workflow:$line_no gitleaks step must use checkout fetch-depth: 1."
31
- failed=1
32
- fi
33
-
34
- if [[ "$context" == *"fetch-depth: 0"* ]]; then
35
- echo "ERROR: $workflow:$line_no gitleaks step contains forbidden fetch-depth: 0."
36
- failed=1
37
- fi
38
- done < <(grep -n "gitleaks/gitleaks-action" "$workflow" || true)
39
-
40
- return "$failed"
41
- }
42
-
43
- main() {
44
- local failed=0
45
-
46
- check_workflow ".github/workflows/ci.yml" || failed=1
47
- check_workflow ".github/workflows/security-enhanced.yml" || failed=1
48
-
49
- if [[ "$failed" -ne 0 ]]; then
50
- echo "Gitleaks checkout guard failed."
51
- exit 1
52
- fi
53
-
54
- echo "Gitleaks checkout guard passed."
55
- }
56
-
57
- main "$@"
7
+ exec bash "$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)/tools/ci/guard-gitleaks-checkout.sh" "$@"
@@ -7,8 +7,8 @@ set -euo pipefail
7
7
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
8
  REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
9
9
 
10
- # shellcheck source=../dot/lib/ui.sh
11
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
10
+ # shellcheck source=../../lib/dot/ui.sh
11
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
12
12
 
13
13
  JSON_MODE=0
14
14
  STRICT_MODE=0
@@ -35,8 +35,8 @@ command -v jq >/dev/null 2>&1 || {
35
35
 
36
36
  a2a_card="$REPO_ROOT/.well-known/agent-card.json"
37
37
  legacy_doc="$REPO_ROOT/.well-known/agent.json"
38
- internal_card="$REPO_ROOT/dot_config/dotfiles/agent-card.json"
39
- agent_profiles="$REPO_ROOT/dot_config/dotfiles/agent-profiles.json"
38
+ internal_card="$REPO_ROOT/defaults/dot_config/dotfiles/agent-card.json"
39
+ agent_profiles="$REPO_ROOT/defaults/dot_config/dotfiles/agent-profiles.json"
40
40
  status="healthy"
41
41
  issues=()
42
42
 
@@ -110,7 +110,7 @@ if [[ -f "$deprecations_file" ]]; then
110
110
  alias_found=1
111
111
  fi
112
112
  function_found=0
113
- if rg -q --glob '*.sh' --glob '*.aliases.sh' --glob '*.tmpl' "^[[:space:]]*(function[[:space:]]+)?${alias_name}[[:space:]]*\\(\\)" "$SCRIPT_DIR/../../.chezmoitemplates/aliases" "$SCRIPT_DIR/../../scripts/dot"; then
113
+ if rg -q --glob '*.sh' --glob '*.aliases.sh' --glob '*.tmpl' "^[[:space:]]*(function[[:space:]]+)?${alias_name}[[:space:]]*\\(\\)" "$SCRIPT_DIR/../../defaults/.chezmoitemplates/aliases" "$SCRIPT_DIR/../../scripts/dot"; then
114
114
  function_found=1
115
115
  fi
116
116
  if [[ $alias_found -eq 1 || $function_found -eq 1 ]]; then
@@ -3,9 +3,9 @@
3
3
  set -euo pipefail
4
4
 
5
5
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
- # shellcheck source=../dot/lib/utils.sh
6
+ # shellcheck source=../../lib/dot/utils.sh
7
7
  # shellcheck disable=SC1091
8
- source "$SCRIPT_DIR/../dot/lib/utils.sh"
8
+ source "$SCRIPT_DIR/../../lib/dot/utils.sh"
9
9
 
10
10
  src_dir="$(require_source_dir)"
11
11
  manifest="$src_dir/scripts/diagnostics/aliases-manifest.sh"
@@ -44,12 +44,12 @@ _cleanup_files=()
44
44
  trap 'rm -f "${_cleanup_files[@]}"' EXIT
45
45
 
46
46
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
47
- # shellcheck source=../dot/lib/ui.sh
47
+ # shellcheck source=../../lib/dot/ui.sh
48
48
  # shellcheck disable=SC1091
49
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
50
- # shellcheck source=../dot/lib/log.sh
49
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
50
+ # shellcheck source=../../lib/dot/log.sh
51
51
  # shellcheck disable=SC1091
52
- source "$SCRIPT_DIR/../dot/lib/log.sh"
52
+ source "$SCRIPT_DIR/../../lib/dot/log.sh"
53
53
  export DOT_COMMAND="benchmark"
54
54
 
55
55
  BENCHMARK_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/dotfiles/benchmarks"
@@ -6,9 +6,9 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../dot/lib/ui.sh
9
+ # shellcheck source=../../lib/dot/ui.sh
10
10
  # shellcheck disable=SC1091
11
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
11
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
12
12
 
13
13
  ui_init
14
14
 
@@ -8,9 +8,9 @@ trap 'rm -f "${_cleanup_files[@]}"' EXIT
8
8
 
9
9
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
10
10
  REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
11
- # shellcheck source=../dot/lib/ui.sh
11
+ # shellcheck source=../../lib/dot/ui.sh
12
12
  # shellcheck disable=SC1091
13
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
13
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
14
14
  ui_init
15
15
 
16
16
  passthrough=()
@@ -19,15 +19,15 @@
19
19
  set -euo pipefail
20
20
 
21
21
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
22
- # shellcheck source=../dot/lib/ui.sh
22
+ # shellcheck source=../../lib/dot/ui.sh
23
23
  # shellcheck disable=SC1091
24
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
25
- # shellcheck source=../dot/lib/platform.sh
24
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
25
+ # shellcheck source=../../lib/dot/platform.sh
26
26
  # shellcheck disable=SC1091
27
- source "$SCRIPT_DIR/../dot/lib/platform.sh"
28
- # shellcheck source=../dot/lib/log.sh
27
+ source "$SCRIPT_DIR/../../lib/dot/platform.sh"
28
+ # shellcheck source=../../lib/dot/log.sh
29
29
  # shellcheck disable=SC1091
30
- source "$SCRIPT_DIR/../dot/lib/log.sh"
30
+ source "$SCRIPT_DIR/../../lib/dot/log.sh"
31
31
  export DOT_COMMAND="doctor"
32
32
 
33
33
  ui_init
@@ -607,11 +607,11 @@ if command -v zsh >/dev/null 2>&1; then
607
607
  fi
608
608
 
609
609
  # 4. PATH length. Each entry is searched on every command resolution.
610
- # A mise-managed dev machine routinely adds 50+ entries (one per tool
611
- # install path), so the warn/fail thresholds are set higher than a
612
- # lean baseline (40) would suggest.
610
+ # A mise-managed 2026 dev machine routinely adds 60-90 entries (one per
611
+ # installed tool version + per-shim path), so the warn/fail thresholds
612
+ # reflect that baseline rather than a lean default (~40).
613
613
  path_count=$(printf '%s' "${PATH:-}" | tr ':' '\n' | grep -c . || true)
614
- if [[ "$path_count" -le 60 ]]; then
614
+ if [[ "$path_count" -le 75 ]]; then
615
615
  _ok "PATH length" "$path_count entries"
616
616
  elif [[ "$path_count" -le 120 ]]; then
617
617
  _warn "PATH length" "$path_count entries — consider pruning"
@@ -30,9 +30,9 @@
30
30
  set -euo pipefail
31
31
 
32
32
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
33
- # shellcheck source=../dot/lib/ui.sh
33
+ # shellcheck source=../../lib/dot/ui.sh
34
34
  # shellcheck disable=SC1091
35
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
35
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
36
36
 
37
37
  JSON_MODE=0
38
38
  SHOW_DIFF="${DOTFILES_DRIFT_SHOW_DIFF:-0}"
@@ -6,12 +6,12 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../dot/lib/ui.sh
9
+ # shellcheck source=../../lib/dot/ui.sh
10
10
  # shellcheck disable=SC1091
11
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
12
- # shellcheck source=../dot/lib/log.sh
11
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
12
+ # shellcheck source=../../lib/dot/log.sh
13
13
  # shellcheck disable=SC1091
14
- source "$SCRIPT_DIR/../dot/lib/log.sh"
14
+ source "$SCRIPT_DIR/../../lib/dot/log.sh"
15
15
 
16
16
  # Portable has_command (self-contained; no dependency on utils.sh)
17
17
  has_command() { command -v "$1" >/dev/null 2>&1; }
@@ -3,9 +3,9 @@
3
3
  set -euo pipefail
4
4
 
5
5
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
- # shellcheck source=../dot/lib/ui.sh
6
+ # shellcheck source=../../lib/dot/ui.sh
7
7
  # shellcheck disable=SC1091
8
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
8
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
9
9
 
10
10
  histfile="${HISTFILE:-$HOME/.zsh_history}"
11
11
  db="${DOTFILES_HISTORY_DB:-$HOME/.local/share/dotfiles/history.sqlite}"
@@ -31,9 +31,9 @@
31
31
  set -euo pipefail
32
32
 
33
33
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
34
- # shellcheck source=../dot/lib/ui.sh
34
+ # shellcheck source=../../lib/dot/ui.sh
35
35
  # shellcheck disable=SC1091
36
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
36
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
37
37
 
38
38
  # Parse arguments
39
39
  STRICT_MODE=0
@@ -93,14 +93,17 @@ log_warn() {
93
93
  }
94
94
 
95
95
  MCP_CONFIG="${MCP_CONFIG:-$HOME/.config/claude/mcp_servers.json}"
96
- if [[ ! -f "$MCP_CONFIG" && -f "$HOME/.dotfiles/dot_config/claude/mcp_servers.json" ]]; then
97
- MCP_CONFIG="$HOME/.dotfiles/dot_config/claude/mcp_servers.json"
96
+ if [[ ! -f "$MCP_CONFIG" ]]; then
97
+ for cand in "$HOME/.dotfiles/defaults/dot_config/claude/mcp_servers.json" \
98
+ "$HOME/.dotfiles/dot_config/claude/mcp_servers.json"; do
99
+ [[ -f "$cand" ]] && MCP_CONFIG="$cand" && break
100
+ done
98
101
  fi
99
102
 
100
103
  REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
101
- MCP_POLICY_CONFIG="${MCP_POLICY_CONFIG:-$REPO_ROOT/dot_config/dotfiles/mcp-policy.json}"
102
- MCP_LOCK_CONFIG="${MCP_LOCK_CONFIG:-$REPO_ROOT/dot_config/dotfiles/mcp-lock.json}"
103
- MCP_REGISTRY_CONFIG="${MCP_REGISTRY_CONFIG:-$REPO_ROOT/dot_config/dotfiles/mcp-registry.json}"
104
+ MCP_POLICY_CONFIG="${MCP_POLICY_CONFIG:-$REPO_ROOT/defaults/dot_config/dotfiles/mcp-policy.json}"
105
+ MCP_LOCK_CONFIG="${MCP_LOCK_CONFIG:-$REPO_ROOT/defaults/dot_config/dotfiles/mcp-lock.json}"
106
+ MCP_REGISTRY_CONFIG="${MCP_REGISTRY_CONFIG:-$REPO_ROOT/defaults/dot_config/dotfiles/mcp-registry.json}"
104
107
 
105
108
  if [[ "$JSON_MODE" -ne 1 ]]; then
106
109
  ui_init
@@ -9,12 +9,12 @@ _cleanup_files=()
9
9
  trap 'rm -f "${_cleanup_files[@]}"' EXIT
10
10
 
11
11
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12
- # shellcheck source=../dot/lib/ui.sh
12
+ # shellcheck source=../../lib/dot/ui.sh
13
13
  # shellcheck disable=SC1091
14
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
15
- # shellcheck source=../dot/lib/log.sh
14
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
15
+ # shellcheck source=../../lib/dot/log.sh
16
16
  # shellcheck disable=SC1091
17
- source "$SCRIPT_DIR/../dot/lib/log.sh"
17
+ source "$SCRIPT_DIR/../../lib/dot/log.sh"
18
18
  export DOT_COMMAND="perf"
19
19
 
20
20
  ui_init
@@ -6,12 +6,12 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../dot/lib/ui.sh
9
+ # shellcheck source=../../lib/dot/ui.sh
10
10
  # shellcheck disable=SC1091
11
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
12
- # shellcheck source=../dot/lib/log.sh
11
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
12
+ # shellcheck source=../../lib/dot/log.sh
13
13
  # shellcheck disable=SC1091
14
- source "$SCRIPT_DIR/../dot/lib/log.sh"
14
+ source "$SCRIPT_DIR/../../lib/dot/log.sh"
15
15
  export DOT_COMMAND="scorecard"
16
16
 
17
17
  ui_init
@@ -30,9 +30,9 @@ set -euo pipefail
30
30
  set +o xtrace 2>/dev/null || true
31
31
 
32
32
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
33
- # shellcheck source=../dot/lib/ui.sh
33
+ # shellcheck source=../../lib/dot/ui.sh
34
34
  # shellcheck disable=SC1091
35
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
35
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
36
36
 
37
37
  # Parse arguments
38
38
  VERBOSE=true
@@ -5,9 +5,9 @@
5
5
  set -euo pipefail
6
6
 
7
7
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
- # shellcheck source=../dot/lib/ui.sh
8
+ # shellcheck source=../../lib/dot/ui.sh
9
9
  # shellcheck disable=SC1091
10
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
10
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
11
11
  ui_init
12
12
 
13
13
  ui_header "Dotfiles Smoke Tests"
@@ -6,9 +6,9 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../dot/lib/ui.sh
9
+ # shellcheck source=../../lib/dot/ui.sh
10
10
  # shellcheck disable=SC1091
11
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
11
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
12
12
 
13
13
  ui_init
14
14
 
@@ -6,9 +6,9 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../dot/lib/ui.sh
9
+ # shellcheck source=../../lib/dot/ui.sh
10
10
  # shellcheck disable=SC1091
11
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
11
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
12
12
 
13
13
  ui_init
14
14
  ui_dot_banner "Diagnostics"
@@ -43,8 +43,8 @@ resolve_dot_bin() {
43
43
  elif [[ -d "$HOME/.local/share/chezmoi" ]]; then
44
44
  src_dir="$HOME/.local/share/chezmoi"
45
45
  fi
46
- if [[ -n "$src_dir" && -x "$src_dir/dot_local/bin/executable_dot" ]]; then
47
- printf "%s\n" "$src_dir/dot_local/bin/executable_dot"
46
+ if [[ -n "$src_dir" && -x "$src_dir/bin/dot" ]]; then
47
+ printf "%s\n" "$src_dir/bin/dot"
48
48
  return
49
49
  fi
50
50
  return 1
@@ -6,9 +6,9 @@
6
6
  set -euo pipefail
7
7
 
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- # shellcheck source=../dot/lib/ui.sh
9
+ # shellcheck source=../../lib/dot/ui.sh
10
10
  # shellcheck disable=SC1091
11
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
11
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
12
12
 
13
13
  ui_init
14
14
 
@@ -13,12 +13,12 @@ REPO_ROOT="${REPO_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
13
13
  # without the env-prefix dance that confuses shellcheck (SC2097/SC2098).
14
14
  export REPO_ROOT
15
15
 
16
- # shellcheck source=../dot/lib/ui.sh
17
- source "$SCRIPT_DIR/../dot/lib/ui.sh"
18
- # shellcheck source=../dot/lib/platform.sh
19
- source "$SCRIPT_DIR/../dot/lib/platform.sh"
20
- # shellcheck source=../dot/lib/utils.sh
21
- source "$SCRIPT_DIR/../dot/lib/utils.sh"
16
+ # shellcheck source=../../lib/dot/ui.sh
17
+ source "$SCRIPT_DIR/../../lib/dot/ui.sh"
18
+ # shellcheck source=../../lib/dot/platform.sh
19
+ source "$SCRIPT_DIR/../../lib/dot/platform.sh"
20
+ # shellcheck source=../../lib/dot/utils.sh
21
+ source "$SCRIPT_DIR/../../lib/dot/utils.sh"
22
22
 
23
23
  JSON_MODE=0
24
24
  WRITE_PATH=""
@@ -72,14 +72,14 @@ platform_id="$(dot_platform_id)"
72
72
  host_os="$(dot_host_os)"
73
73
  arch="$(uname -m)"
74
74
  hostname_value="$(hostname 2>/dev/null || true)"
75
- agent_profile_file="$REPO_ROOT/dot_config/dotfiles/agent-profiles.json"
76
- agent_card_file="$REPO_ROOT/dot_config/dotfiles/agent-card.json"
75
+ agent_profile_file="$REPO_ROOT/defaults/dot_config/dotfiles/agent-profiles.json"
76
+ agent_card_file="$REPO_ROOT/defaults/dot_config/dotfiles/agent-card.json"
77
77
  agent_state_file="${AGENT_STATE_FILE:-$HOME/.config/dotfiles/agent-mode.env}"
78
- policy_bundles_file="$REPO_ROOT/dot_config/dotfiles/policy-bundles.json"
79
- model_registry_file="$REPO_ROOT/dot_config/dotfiles/model-registry.json"
80
- prompt_registry_file="$REPO_ROOT/dot_config/dotfiles/prompt-registry.json"
81
- mcp_policy_file="$REPO_ROOT/dot_config/dotfiles/mcp-policy.json"
82
- mcp_registry_file="$REPO_ROOT/dot_config/dotfiles/mcp-registry.json"
78
+ policy_bundles_file="$REPO_ROOT/defaults/dot_config/dotfiles/policy-bundles.json"
79
+ model_registry_file="$REPO_ROOT/defaults/dot_config/dotfiles/model-registry.json"
80
+ prompt_registry_file="$REPO_ROOT/defaults/dot_config/dotfiles/prompt-registry.json"
81
+ mcp_policy_file="$REPO_ROOT/defaults/dot_config/dotfiles/mcp-policy.json"
82
+ mcp_registry_file="$REPO_ROOT/defaults/dot_config/dotfiles/mcp-registry.json"
83
83
  signing_format="$(git config --global gpg.format 2>/dev/null || echo ssh)"
84
84
  signing_key="$(git config --global user.signingkey 2>/dev/null || true)"
85
85
  allowed_signers="$(git config --global gpg.ssh.allowedSignersFile 2>/dev/null || echo "$HOME/.config/git/allowed_signers")"
@@ -94,7 +94,7 @@ if [[ -z "$current_profile" ]] && [[ -f "$agent_profile_file" ]]; then
94
94
  current_profile="$(jq -r '.defaultProfile // "ask"' "$agent_profile_file")"
95
95
  fi
96
96
 
97
- MCP_CONFIG="$REPO_ROOT/dot_config/claude/mcp_servers.json"
97
+ MCP_CONFIG="$REPO_ROOT/defaults/dot_config/claude/mcp_servers.json"
98
98
  export MCP_CONFIG
99
99
  mcp_summary="$(bash "$REPO_ROOT/scripts/diagnostics/mcp-doctor.sh" --strict --json)"
100
100
 
@@ -9,6 +9,14 @@ set -euo pipefail
9
9
  # These functions are sourced by meta.sh for dispatch.
10
10
 
11
11
  _agent_repo_root() {
12
+ # Post-Phase-4b: agent profile/card JSON ships under defaults/dot_config/.
13
+ # Prefer the chezmoi source dir so callers can append dot_config/... directly.
14
+ local dir
15
+ dir="$(resolve_chezmoi_source_dir)"
16
+ [[ -n "$dir" ]] && {
17
+ printf '%s\n' "$dir"
18
+ return
19
+ }
12
20
  require_source_dir
13
21
  }
14
22
 
@@ -25,8 +25,8 @@ set -euo pipefail
25
25
 
26
26
  # shellcheck disable=SC1091
27
27
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
28
- source "$SCRIPT_DIR/../lib/ui.sh"
29
- source "$SCRIPT_DIR/../lib/utils.sh"
28
+ source "$SCRIPT_DIR/../../../lib/dot/ui.sh"
29
+ source "$SCRIPT_DIR/../../../lib/dot/utils.sh"
30
30
 
31
31
  _agents_repo_root() {
32
32
  # Resolve the chezmoi source dir (where CLAUDE.md/AGENTS.md live).
@@ -40,16 +40,26 @@ _agents_repo_root() {
40
40
  # we treat that as "not a match" and fall through to git, rather
41
41
  # than accepting the wrong candidate.
42
42
  local candidate=""
43
+ # Sanity probe: post-Phase-4b the data file lives at
44
+ # defaults/.chezmoidata.toml; older deployments kept it at the root.
45
+ _has_chezmoidata() {
46
+ [[ -f "$1/.chezmoidata.toml" || -f "$1/defaults/.chezmoidata.toml" ]]
47
+ }
43
48
  if command -v chezmoi >/dev/null 2>&1; then
44
49
  candidate="$(chezmoi source-path 2>/dev/null || true)"
45
- if [[ -n "$candidate" && ! -f "$candidate/.chezmoidata.toml" ]]; then
50
+ # chezmoi source-path returns defaults/ when .chezmoiroot is set;
51
+ # peel back one level so callers receive the actual repo root.
52
+ if [[ -n "$candidate" && -f "$candidate/.chezmoidata.toml" && "$(basename "$candidate")" == "defaults" ]]; then
53
+ candidate="$(dirname "$candidate")"
54
+ fi
55
+ if [[ -n "$candidate" ]] && ! _has_chezmoidata "$candidate"; then
46
56
  candidate=""
47
57
  fi
48
58
  fi
49
59
  if [[ -z "$candidate" ]]; then
50
60
  candidate="$(git -C "$PWD" rev-parse --show-toplevel 2>/dev/null || true)"
51
61
  fi
52
- if [[ -z "$candidate" ]] || [[ ! -f "$candidate/.chezmoidata.toml" ]]; then
62
+ if [[ -z "$candidate" ]] || ! _has_chezmoidata "$candidate"; then
53
63
  return 1
54
64
  fi
55
65
  printf '%s\n' "$candidate"