@sebastienrousseau/dotfiles 0.2.519 → 0.2.521

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 (306) hide show
  1. package/CHANGELOG.md +200 -0
  2. package/LICENSE-APACHE +190 -0
  3. package/{LICENSE → LICENSE-MIT} +1 -1
  4. package/README.md +1172 -166
  5. package/install.sh +77 -11
  6. package/package.json +8 -8
  7. package/tools/README.md +49 -0
  8. package/tools/ci/install-chezmoi-verified.sh +68 -0
  9. package/docs/.vitepress/reports/localization-readability-audit.md +0 -73
  10. package/docs/AI.md +0 -179
  11. package/docs/CNAME +0 -1
  12. package/docs/CONFIG_STRATEGY.md +0 -124
  13. package/docs/COPYRIGHT +0 -7
  14. package/docs/GOVERNANCE.md +0 -98
  15. package/docs/MAINTAINERS.md +0 -41
  16. package/docs/NAMING_CONVENTIONS.md +0 -102
  17. package/docs/OPENCODE.md +0 -127
  18. package/docs/README.md +0 -84
  19. package/docs/STRUCTURE.md +0 -102
  20. package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -118
  21. package/docs/adr/ADR-002-shell-performance.md +0 -130
  22. package/docs/adr/ADR-003-security-first.md +0 -158
  23. package/docs/adr/ADR-004-cli-architecture.md +0 -171
  24. package/docs/adr/ADR-005-chezmoi-choice.md +0 -99
  25. package/docs/adr/ADR-006-shell-selection.md +0 -124
  26. package/docs/adr/ADR-007-multi-shell-parity.md +0 -62
  27. package/docs/adr/ADR-008-alias-system-architecture.md +0 -95
  28. package/docs/adr/ADR-009-wallpaper-driven-theming.md +0 -131
  29. package/docs/adr/ADR-010-starship-transient-prompt.md +0 -144
  30. package/docs/adr/ADR-011-nushell-tier3-keep.md +0 -144
  31. package/docs/adr/ADR-012-ai-fleet-local-proxy.md +0 -79
  32. package/docs/adr/README.md +0 -40
  33. package/docs/architecture/AI_COST_OPTIMIZATION.md +0 -144
  34. package/docs/architecture/ARCHITECTURE.md +0 -117
  35. package/docs/architecture/INTEROP.md +0 -44
  36. package/docs/architecture/REPO_LAYOUT.md +0 -241
  37. package/docs/architecture/WALKTHROUGH.md +0 -86
  38. package/docs/architecture/fleet-deployment.md +0 -77
  39. package/docs/archive/EUXIS_2026_REVIEW.md +0 -127
  40. package/docs/archive/LEGACY_ROADMAP.md +0 -6
  41. package/docs/archive/MILESTONE_v0.2.493.md +0 -47
  42. package/docs/archive/PLAN.md +0 -199
  43. package/docs/archive/REPO_AUDIT.md +0 -31
  44. package/docs/articles/.pages +0 -6
  45. package/docs/articles/2026-07-05-custom-mkdocs-material-dark-theme.md +0 -216
  46. package/docs/articles/2026-07-05-fish-startup-abbr.md +0 -153
  47. package/docs/articles/2026-07-05-master-to-main-rename-runbook.md +0 -128
  48. package/docs/articles/index.md +0 -36
  49. package/docs/guides/INSTALL.md +0 -144
  50. package/docs/guides/NEOVIM_IDE_GUIDE.md +0 -61
  51. package/docs/guides/THEMING.md +0 -230
  52. package/docs/guides/TROUBLESHOOTING.md +0 -176
  53. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +0 -792
  54. package/docs/index.md +0 -132
  55. package/docs/interop/A2A.md +0 -39
  56. package/docs/interop/POWERSHELL.md +0 -102
  57. package/docs/manual/00-introduction.md +0 -89
  58. package/docs/manual/01-concepts/01-architecture.md +0 -138
  59. package/docs/manual/01-concepts/02-trust-model.md +0 -183
  60. package/docs/manual/01-concepts/03-theme-engine.md +0 -186
  61. package/docs/manual/01-concepts/04-fleet.md +0 -148
  62. package/docs/manual/01-concepts/05-self-healing.md +0 -204
  63. package/docs/manual/02-tutorials/01-first-install.md +0 -197
  64. package/docs/manual/02-tutorials/02-add-wallpaper.md +0 -216
  65. package/docs/manual/02-tutorials/03-create-profile.md +0 -244
  66. package/docs/manual/02-tutorials/04-encrypt-secret.md +0 -281
  67. package/docs/manual/02-tutorials/05-deploy-fleet.md +0 -283
  68. package/docs/manual/03-reference/01-dot-cli.md +0 -450
  69. package/docs/manual/03-reference/02-config-files.md +0 -265
  70. package/docs/manual/03-reference/03-environment.md +0 -124
  71. package/docs/manual/03-reference/04-templates.md +0 -190
  72. package/docs/manual/03-reference/05-feature-flags.md +0 -187
  73. package/docs/manual/04-cookbook/01-recipes.md +0 -285
  74. package/docs/manual/04-cookbook/02-troubleshooting.md +0 -351
  75. package/docs/manual/04-cookbook/03-faq.md +0 -175
  76. package/docs/manual/05-appendices/A-platform-matrix.md +0 -101
  77. package/docs/manual/05-appendices/B-security-checklist.md +0 -85
  78. package/docs/manual/05-appendices/C-glossary.md +0 -40
  79. package/docs/manual/05-appendices/D-bibliography.md +0 -58
  80. package/docs/manual/05-appendices/E-license.md +0 -38
  81. package/docs/manual/_toc.yml +0 -58
  82. package/docs/manual/command-index.md +0 -155
  83. package/docs/manual/concept-index.md +0 -168
  84. package/docs/manual/index.md +0 -66
  85. package/docs/operations/ARCHITECTURE_ROADMAP.md +0 -7
  86. package/docs/operations/ATTESTATION.md +0 -44
  87. package/docs/operations/CI_CADENCE.md +0 -107
  88. package/docs/operations/CI_COMPOSITES.md +0 -156
  89. package/docs/operations/COMPLETIONS.md +0 -123
  90. package/docs/operations/COVERAGE.md +0 -204
  91. package/docs/operations/DRIFT.md +0 -107
  92. package/docs/operations/HARD_AUDIT_2026.md +0 -631
  93. package/docs/operations/MAINTENANCE.md +0 -63
  94. package/docs/operations/MANIFEST.md +0 -127
  95. package/docs/operations/MIGRATION.md +0 -109
  96. package/docs/operations/OPERATIONS.md +0 -188
  97. package/docs/operations/PERFORMANCE.md +0 -133
  98. package/docs/operations/REGISTRY.md +0 -90
  99. package/docs/operations/RELEASE_PIPELINE.md +0 -128
  100. package/docs/operations/RELIABILITY.md +0 -122
  101. package/docs/operations/RFC_v0_2_503_reorganization.md +0 -280
  102. package/docs/operations/ROADMAP.md +0 -10
  103. package/docs/operations/ROADMAP_2026.md +0 -7
  104. package/docs/operations/ROADMAP_V0_2_503.md +0 -10
  105. package/docs/operations/TESTING.md +0 -216
  106. package/docs/operations/TRACEABILITY.md +0 -43
  107. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +0 -65
  108. package/docs/operations/VERSION_SYNC.md +0 -393
  109. package/docs/reference/ALIASES.md +0 -131
  110. package/docs/reference/ALIASES_CHEATSHEET.md +0 -32
  111. package/docs/reference/ALIASES_DEPRECATIONS.md +0 -13
  112. package/docs/reference/FEATURES.md +0 -66
  113. package/docs/reference/FONTS.md +0 -112
  114. package/docs/reference/POWERSHELL_PARITY.md +0 -82
  115. package/docs/reference/PROFILES.md +0 -69
  116. package/docs/reference/SCREENSHOTS.md +0 -121
  117. package/docs/reference/SCRIPTS.md +0 -71
  118. package/docs/reference/SUPPORT_MATRIX.md +0 -80
  119. package/docs/reference/THEMES.md +0 -117
  120. package/docs/reference/TOOLS.md +0 -110
  121. package/docs/reference/UTILS.md +0 -242
  122. package/docs/registry.json +0 -6
  123. package/docs/schema/dot-env-v1.json +0 -110
  124. package/docs/schema/dot-registry-v1.json +0 -33
  125. package/docs/security/AI_ACT_COMPLIANCE.md +0 -94
  126. package/docs/security/AUDIT_BYPASS.md +0 -103
  127. package/docs/security/AUTOMATION_SECRETS.md +0 -26
  128. package/docs/security/CI_EGRESS_ALLOWLIST.md +0 -127
  129. package/docs/security/CI_PINNING.md +0 -129
  130. package/docs/security/COMMIT_SIGNING.md +0 -138
  131. package/docs/security/COMPLIANCE.md +0 -458
  132. package/docs/security/DEPS_DEV_EXCEPTIONS.md +0 -86
  133. package/docs/security/DISCLOSURE.md +0 -130
  134. package/docs/security/ENCRYPTION.md +0 -57
  135. package/docs/security/FMEA.md +0 -159
  136. package/docs/security/FUZZING.md +0 -114
  137. package/docs/security/HISTORY_FILTERING.md +0 -132
  138. package/docs/security/INCIDENT_RESPONSE.md +0 -579
  139. package/docs/security/INSTALL_VERIFICATION.md +0 -122
  140. package/docs/security/KEYS.md +0 -49
  141. package/docs/security/KEY_ROTATION.md +0 -303
  142. package/docs/security/MCP_POLICY.md +0 -78
  143. package/docs/security/POLICY_RELEASES.md +0 -37
  144. package/docs/security/README.md +0 -28
  145. package/docs/security/SCORECARD.md +0 -195
  146. package/docs/security/SECRETS.md +0 -158
  147. package/docs/security/SECURITY.md +0 -45
  148. package/docs/security/SECURITY_CHECKLIST.md +0 -55
  149. package/docs/security/SHELL_EXEMPTIONS.md +0 -145
  150. package/docs/security/SOUP_REGISTER.md +0 -36
  151. package/docs/security/THREAT_MODEL.md +0 -130
  152. package/docs/security/VERIFICATION_VALIDATION.md +0 -228
  153. package/docs/security/VERIFY_RELEASE.md +0 -201
  154. package/docs/security/security-pubkey.asc +0 -15
  155. package/docs/stylesheets/extra.css +0 -444
  156. package/docs/themes/README.md +0 -10
  157. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +0 -30
  158. package/docs/themes/hero-shot.svg +0 -78
  159. package/scripts/README.md +0 -123
  160. package/scripts/ci/check-copyright-headers.sh +0 -8
  161. package/scripts/ci/check-shell-preamble.sh +0 -8
  162. package/scripts/ci/guard-gitleaks-checkout.sh +0 -8
  163. package/scripts/demo/record.sh +0 -43
  164. package/scripts/diagnostics/a2a-conformance.sh +0 -163
  165. package/scripts/diagnostics/alias-governance.sh +0 -138
  166. package/scripts/diagnostics/aliases-cheatsheet.sh +0 -74
  167. package/scripts/diagnostics/aliases-manifest.sh +0 -77
  168. package/scripts/diagnostics/benchmark.sh +0 -408
  169. package/scripts/diagnostics/conflicts.sh +0 -73
  170. package/scripts/diagnostics/doctor-unified.sh +0 -39
  171. package/scripts/diagnostics/doctor.sh +0 -751
  172. package/scripts/diagnostics/drift-dashboard.sh +0 -202
  173. package/scripts/diagnostics/health.sh +0 -623
  174. package/scripts/diagnostics/history-analysis.sh +0 -86
  175. package/scripts/diagnostics/mcp-doctor.sh +0 -582
  176. package/scripts/diagnostics/perf.sh +0 -453
  177. package/scripts/diagnostics/scorecard.sh +0 -119
  178. package/scripts/diagnostics/secret-governance.sh +0 -65
  179. package/scripts/diagnostics/security-score.sh +0 -467
  180. package/scripts/diagnostics/smoke-test.sh +0 -88
  181. package/scripts/diagnostics/snapshot.sh +0 -90
  182. package/scripts/diagnostics/verify.sh +0 -108
  183. package/scripts/diagnostics/verify_state.sh +0 -73
  184. package/scripts/diagnostics/version-locks.sh +0 -94
  185. package/scripts/diagnostics/workstation-attestation.sh +0 -187
  186. package/scripts/dot/commands/agent.sh +0 -485
  187. package/scripts/dot/commands/agents.sh +0 -336
  188. package/scripts/dot/commands/ai.sh +0 -587
  189. package/scripts/dot/commands/aliases.sh +0 -277
  190. package/scripts/dot/commands/appearance.sh +0 -110
  191. package/scripts/dot/commands/completion.sh +0 -134
  192. package/scripts/dot/commands/core.sh +0 -217
  193. package/scripts/dot/commands/diagnostics.sh +0 -265
  194. package/scripts/dot/commands/env-emit.sh +0 -203
  195. package/scripts/dot/commands/fleet.sh +0 -688
  196. package/scripts/dot/commands/init.sh +0 -185
  197. package/scripts/dot/commands/lint.sh +0 -208
  198. package/scripts/dot/commands/manual.sh +0 -169
  199. package/scripts/dot/commands/meta.sh +0 -333
  200. package/scripts/dot/commands/patterns.sh +0 -55
  201. package/scripts/dot/commands/registry.sh +0 -419
  202. package/scripts/dot/commands/restore.sh +0 -232
  203. package/scripts/dot/commands/secrets.sh +0 -296
  204. package/scripts/dot/commands/security.sh +0 -102
  205. package/scripts/dot/commands/tools.sh +0 -556
  206. package/scripts/dot/data/alias-deprecations.tsv +0 -2
  207. package/scripts/dot/powershell/Dot.psm1 +0 -319
  208. package/scripts/fonts/install-nerd-fonts.sh +0 -75
  209. package/scripts/fonts/patch-fonts.sh +0 -36
  210. package/scripts/git-hooks/install.sh +0 -12
  211. package/scripts/git-hooks/pre-commit +0 -12
  212. package/scripts/git-hooks/pre-commit-audit.sh +0 -146
  213. package/scripts/git-hooks/pre-push +0 -105
  214. package/scripts/git-hooks/prepare-commit-msg +0 -29
  215. package/scripts/lib/secrets_provider.sh +0 -185
  216. package/scripts/ops/ai-setup.sh +0 -71
  217. package/scripts/ops/bundle.sh +0 -104
  218. package/scripts/ops/chaos.sh +0 -50
  219. package/scripts/ops/chezmoi-apply.sh +0 -333
  220. package/scripts/ops/chezmoi-diff.sh +0 -16
  221. package/scripts/ops/chezmoi-remove.sh +0 -46
  222. package/scripts/ops/chezmoi-update.sh +0 -63
  223. package/scripts/ops/heal-chezmoi.sh +0 -87
  224. package/scripts/ops/heal-system.sh +0 -129
  225. package/scripts/ops/heal-tools.sh +0 -297
  226. package/scripts/ops/heal.sh +0 -223
  227. package/scripts/ops/post-apply-repair.sh +0 -107
  228. package/scripts/ops/prewarm.sh +0 -128
  229. package/scripts/ops/release.sh +0 -262
  230. package/scripts/ops/rollback.sh +0 -604
  231. package/scripts/ops/setup.sh +0 -138
  232. package/scripts/ops/teleport.sh +0 -34
  233. package/scripts/qa/check-version-consistency.sh +0 -124
  234. package/scripts/qa/coverage-baseline.sh +0 -61
  235. package/scripts/qa/docs-coverage.sh +0 -112
  236. package/scripts/qa/examples-coverage.sh +0 -94
  237. package/scripts/qa/powershell-contract.ps1 +0 -95
  238. package/scripts/qa/reliability-audit.sh +0 -139
  239. package/scripts/qa/scorecard-snapshot.sh +0 -128
  240. package/scripts/qa/traceability-coverage.sh +0 -117
  241. package/scripts/qa/validate-examples.sh +0 -27
  242. package/scripts/qa/wsl-contract.sh +0 -12
  243. package/scripts/secrets/age-init.sh +0 -82
  244. package/scripts/secrets/create-secrets-file.sh +0 -46
  245. package/scripts/secrets/encrypt-ssh-key.sh +0 -44
  246. package/scripts/security/backup.sh +0 -58
  247. package/scripts/security/check-disclosure-key-expiry.sh +0 -111
  248. package/scripts/security/dns-doh.sh +0 -52
  249. package/scripts/security/encryption-check.sh +0 -55
  250. package/scripts/security/enforce-policies.sh +0 -335
  251. package/scripts/security/firewall.sh +0 -91
  252. package/scripts/security/lock-configs.sh +0 -67
  253. package/scripts/security/lock-screen.sh +0 -56
  254. package/scripts/security/manage-secrets.sh +0 -429
  255. package/scripts/security/ssh-cert.sh +0 -204
  256. package/scripts/security/telemetry-kill.sh +0 -51
  257. package/scripts/security/usb-safety.sh +0 -52
  258. package/scripts/theme/apply-gnome-theme.sh +0 -333
  259. package/scripts/theme/extract-heic-frames.sh +0 -115
  260. package/scripts/theme/extract-theme.py +0 -742
  261. package/scripts/theme/install-boot-logo.sh +0 -63
  262. package/scripts/theme/install-catppuccin-themes.sh +0 -371
  263. package/scripts/theme/install-cursors.sh +0 -26
  264. package/scripts/theme/install-file-icons.sh +0 -27
  265. package/scripts/theme/install-grub-theme.sh +0 -62
  266. package/scripts/theme/install-lock-icon.sh +0 -31
  267. package/scripts/theme/merge-wallpaper.sh +0 -146
  268. package/scripts/theme/rebuild-themes.sh +0 -544
  269. package/scripts/theme/switch.sh +0 -449
  270. package/scripts/theme/wallpaper-rotate.sh +0 -137
  271. package/scripts/theme/wallpaper-sync.sh +0 -690
  272. package/scripts/tools/cmatrix.sh +0 -22
  273. package/scripts/tools/detect-collisions.py +0 -103
  274. package/scripts/tools/emoji-picker.sh +0 -49
  275. package/scripts/tools/figlet-banner.sh +0 -19
  276. package/scripts/tools/log-rotate.sh +0 -31
  277. package/scripts/tools/lolcat-wrap.sh +0 -20
  278. package/scripts/tools/pipes.sh +0 -49
  279. package/scripts/tuning/linux.sh +0 -186
  280. package/scripts/tuning/macos.sh +0 -56
  281. package/scripts/uninstall.sh +0 -86
  282. package/scripts/version-sync.sh +0 -654
  283. package/templates/chezmoi-data/geekom-a9.toml.example +0 -21
  284. package/templates/chezmoi-data/mac-m1.toml.example +0 -16
  285. package/templates/chezmoi-data/mac-t2-linux.toml.example +0 -21
  286. package/templates/chezmoi-data/surface-pro-7p.toml.example +0 -21
  287. package/templates/projects/go/.github/workflows/ci.yml +0 -31
  288. package/templates/projects/go/README.md +0 -7
  289. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +0 -8
  290. package/templates/projects/go/go.mod +0 -3
  291. package/templates/projects/go/go.sum +0 -0
  292. package/templates/projects/molecule/README.md +0 -7
  293. package/templates/projects/molecule/converge.yml +0 -7
  294. package/templates/projects/molecule/molecule.yml +0 -16
  295. package/templates/projects/node/.github/workflows/ci.yml +0 -30
  296. package/templates/projects/node/README.md +0 -7
  297. package/templates/projects/node/package-lock.json +0 -12
  298. package/templates/projects/node/package.json +0 -10
  299. package/templates/projects/node/src/index.js +0 -3
  300. package/templates/projects/packer/README.md +0 -15
  301. package/templates/projects/packer/main.pkr.hcl +0 -15
  302. package/templates/projects/python/.github/workflows/ci.yml +0 -34
  303. package/templates/projects/python/README.md +0 -7
  304. package/templates/projects/python/pyproject.toml +0 -25
  305. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +0 -2
  306. package/templates/projects/python/tests/test_basic.py +0 -3
@@ -1,241 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- <!-- Copyright (c) 2015-2026 Dotfiles. All rights reserved. -->
6
-
7
- # Repository Layout
8
-
9
- A map of every top-level folder and file in this repo, grouped by purpose.
10
- Use this when you're not sure where something belongs or why a particular
11
- directory exists.
12
-
13
- For naming conventions (file prefixes, run-script numbering tiers), see
14
- [`../NAMING_CONVENTIONS.md`](../NAMING_CONVENTIONS.md). For the broader
15
- architectural rationale (philosophy, startup model, flake strategy), see
16
- [`ARCHITECTURE.md`](ARCHITECTURE.md). For the configuration-management
17
- strategy at a higher level, see [`../CONFIG_STRATEGY.md`](../CONFIG_STRATEGY.md).
18
-
19
- ---
20
-
21
- ## 1. Chezmoi source tree — the actual dotfiles
22
-
23
- Chezmoi reads this directory and deploys to `$HOME`. Filename **prefixes**
24
- carry semantics:
25
-
26
- | Prefix | Effect | Example |
27
- |------------------|---------------------------------------------|----------------------------------------------------|
28
- | `dot_` | Deployed with a leading `.` | `dot_gitconfig.tmpl` → `~/.gitconfig` |
29
- | `private_` | Sets `0600` perms on deploy | `private_dot_ssh/` → `~/.ssh/` |
30
- | `executable_` | Sets `+x` on deploy | `executable_dot` → `~/.local/bin/dot` |
31
- | `run_onchange_` | Runs once when its content hash changes | `run_onchange_20-ghostty-config.sh.tmpl` |
32
- | `.tmpl` | Rendered as a Go template at apply time | `dot_npmrc.tmpl` |
33
-
34
- > **Gotcha:** `executable_dot_foo` deploys as `.foo` (not `dot_foo`). Chezmoi
35
- > consumes the `dot_` prefix even when stacked with `executable_`.
36
-
37
- ### Chezmoi data and templates
38
-
39
- | Path | Role |
40
- |-----------------------------|----------------------------------------------------------------------------------------------|
41
- | `.chezmoi.toml.tmpl` | Init-time prompts (name, email, signing key). |
42
- | `.chezmoidata.toml` | **Source of truth** for version, profile, default theme, shell, feature flags. |
43
- | `.chezmoidata/` | Split data files: `themes.toml`, `keybinds.toml`, `hardware.toml`. |
44
- | `.chezmoiignore.tmpl` | Feature-flag-gated "don't deploy these to `$HOME`" list. |
45
- | `.chezmoitemplates/` | Reusable template partials (`aliases/`, `functions/`, `paths/`, `desktop/`). Not deployed. |
46
-
47
- ### Shell rc files (root level)
48
-
49
- | Path | Target | Purpose |
50
- |---|---|---|
51
- | `dot_bashrc`, `dot_profile` | `~/.bashrc`, `~/.profile` | Bash startup |
52
- | `dot_zshenv`, `dot_zprofile`, `dot_zshrc` | `~/.zshenv` etc. | Zsh startup chain (see [`ARCHITECTURE.md`](ARCHITECTURE.md) for order) |
53
- | `dot_vimrc`, `dot_inputrc`, `dot_psqlrc`, `dot_sqliterc`, `dot_Xresources` | `~/.*` | Classic per-tool dotfiles |
54
- | `dot_gitconfig.tmpl`, `dot_npmrc.tmpl` | `~/.gitconfig`, `~/.npmrc` | Templated — identity/tokens injected at apply |
55
- | `dot_cargo/config.toml.tmpl` | `~/.cargo/config.toml` | Rust build dirs redirected to `/tmp` |
56
- | `dot_fdignore`, `dot_noderc`, `dot_rustfmt.toml` | `~/.*` | Per-tool config |
57
- | `private_dot_netrc.tmpl`, `private_dot_ssh/` | `~/.netrc`, `~/.ssh/` | 0600 files |
58
-
59
- ### Large chezmoi directories
60
-
61
- | Path | Target | Notes |
62
- |---------------|-------------------|----------------------------------------------------------------------------------------------|
63
- | `dot_config/` | `~/.config/` | **Largest** — fish, zsh, nvim, ghostty, tmux, niri, mise, and ~90 other app configs. |
64
- | `dot_local/bin/` | `~/.local/bin/` | Every `dot-*` subcommand and helper script (the `dot` CLI lives here). |
65
- | `dot_local/share/` | `~/.local/share/` | Fonts and shared data. |
66
- | `dot_etc/opt/chrome/policies/` | `~/etc/opt/chrome/policies/` | Managed Chrome enterprise policies. |
67
-
68
- ### `run_onchange_*` hooks at the root
69
-
70
- Scripts triggered when their content changes. Numbering follows the
71
- convention in [`../NAMING_CONVENTIONS.md`](../NAMING_CONVENTIONS.md):
72
-
73
- - `run_onchange_20-ghostty-config.sh.tmpl` — re-renders Ghostty config
74
- - `run_onchange_21-topgrade-config.sh.tmpl` — refreshes topgrade config
75
- - `run_onchange_after_fonts.sh.tmpl` — post-deploy font cache refresh
76
-
77
- ---
78
-
79
- ## 2. AI-assistant files — **three** files, three distinct roles
80
-
81
- This is the most common source of confusion in the repo. All three files
82
- exist on purpose and don't overlap:
83
-
84
- | File | Deployed to | Audience | Scope |
85
- |-------------------------------|-----------------------|------------------------------------------------------------------|-------------------------------|
86
- | `dot_claude/CLAUDE.md` | `~/.claude/CLAUDE.md` | Claude Code, in **any** cwd on this machine | Personal, cross-project |
87
- | `CLAUDE.md` (repo root) | Not deployed | Claude Code, when cwd is **this** repo | Repo-scoped guidance |
88
- | `docs/OPENCODE.md` | Not deployed | OpenCode CLI, when cwd is **this** repo | Repo-scoped guidance (mirror) |
89
- | `.claude/settings.local.json` | Not deployed, **not tracked** | Claude Code | Per-machine permission allowlist |
90
-
91
- Each of the three tracked files carries a header comment explaining its
92
- role to prevent drift. Keep that header in place when editing.
93
-
94
- ---
95
-
96
- ## 3. Agent-protocol surface
97
-
98
- Standards-compliant discovery endpoints that let external agents and tools
99
- find this workstation's agent capabilities:
100
-
101
- | Path | Purpose |
102
- |-------------------------------------|-----------------------------------------------------------------------------|
103
- | `.well-known/agent-card.json` | A2A v0.3 agent card — skills, capabilities, URL |
104
- | `.well-known/agent.json` | Legacy pointer card, kept for back-compat |
105
- | `.well-known/mcp/server-card.json` | MCP server discovery manifest |
106
-
107
- ---
108
-
109
- ## 4. CI/CD and repo metadata
110
-
111
- | Path | Purpose |
112
- |------------------------------------------------------------------|----------------------------------------------------------------|
113
- | `.github/workflows/` | 20+ workflows: `ci.yml`, `ci-enforced.yml`, reusable lints, release pipelines |
114
- | `.github/workflows/reusable-*.yml` | Shared workflow fragments (`shell-lint`, `lua-lint`, `nix-lint`, `copyright-lint`, `test-suite`, `secrets-scan`, `security-baseline`) |
115
- | `.github/ISSUE_TEMPLATE/`, `PULL_REQUEST_TEMPLATE.md`, `CODEOWNERS`, `SECURITY.md`, `CONTRIBUTING.md`, `CODE-OF-CONDUCT.md`, `FUNDING.yml` | Standard GitHub metadata |
116
- | `.github/security-policies/` | Org-level security policy files |
117
- | `.github/branch-protection-config.json`, `BRANCH_PROTECTION.md` | Codified branch-protection settings |
118
- | `.github/dependabot.yml` | Dependency bump schedule |
119
- | `.devcontainer/` | GitHub Codespaces + VS Code dev container |
120
- | `Dockerfile.test`, `tests/Dockerfile.sandbox` | Ubuntu sandboxes for integration / e2e tests |
121
-
122
- ---
123
-
124
- ## 5. Build, bootstrap, and dev tooling
125
-
126
- | Path | Purpose |
127
- |-----------------------------------------|--------------------------------------------------------------------------------|
128
- | `install.sh` | Top-level one-liner installer |
129
- | `install/provision/`, `install/lib/` | Platform-specific install helpers invoked by `install.sh` |
130
- | `Makefile`, `Justfile.tmpl`, `treefmt.toml` | Convenience runners |
131
- | `mise.toml`, `mise-versions.lock.json` | Mise toolchain versions (locked) |
132
- | `flake.nix`, `flake.lock` (root) | Root Nix flake for `direnv` + repo dev shell |
133
- | `nix/flake.nix`, `nix/home.nix` | Separate flake for Home Manager activation (used by `dot upgrade` and `ci-enforced.yml → lint-nix`) |
134
- | `lib/wasm-tools/` | Vendored WebAssembly tooling (build output gitignored) |
135
- | `.envrc` | `direnv` hook into the root flake |
136
-
137
- ---
138
-
139
- ## 6. Scripts (`scripts/`) — repo-local, never deployed
140
-
141
- Nothing under `scripts/` ends up in `$HOME`. It's all tooling for running
142
- the repo itself.
143
-
144
- | Subdir | Purpose |
145
- |-------------------------------------------|-----------------------------------------------------------------|
146
- | `tools/ci/` | CI helpers (`check-copyright-headers.sh`, `install-chezmoi-verified.sh`, `validate-ci-config.sh`) |
147
- | `scripts/dot/commands/` | Subcommand implementations for the `dot` CLI |
148
- | `tools/docs/` | Manual build pipeline (`build-manual.sh`, `check-manual.sh`) |
149
- | `scripts/theme/` | K-Means CIELAB theme engine + HEIC merge/convert |
150
- | `scripts/ops/`, `tools/maintenance/`, `tools/release/` | Operator tooling |
151
- | `scripts/diagnostics/`, `scripts/qa/`, `scripts/security/`, `scripts/secrets/` | Domain-scoped scripts |
152
- | `scripts/fonts/`, `scripts/demo/`, `scripts/git-hooks/`, `scripts/tools/`, `scripts/tuning/`, `scripts/lib/` | Supporting scripts |
153
- | `scripts/uninstall.sh`, `scripts/version-sync.sh` | Top-level ops entrypoints |
154
-
155
- ---
156
-
157
- ## 7. Documentation (`docs/`)
158
-
159
- | Path | Purpose |
160
- |---------------------------------------|----------------------------------------------------------------------------|
161
- | `docs/manual/` | 26-page GNU-Stow-style reference manual (the v0.2.501 feature) |
162
- | `docs/architecture/` | This file + core architecture docs (ARCHITECTURE, INTEROP, fleet, walkthrough) |
163
- | `docs/operations/` | Runbooks, traceability matrix, migration notes |
164
- | `docs/reference/` | Command/config reference material |
165
- | `docs/guides/` | Long-form how-tos |
166
- | `docs/security/` | Threat model, disclosure policy, audit records |
167
- | `docs/adr/` | Architecture Decision Records |
168
- | `docs/themes/` | Theme catalogue / screenshots |
169
- | `docs/interop/` | Agent/MCP interop notes |
170
- | `docs/archive/` | Superseded docs kept for history |
171
- | `docs/NAMING_CONVENTIONS.md` | Naming bible (file prefixes, run-script numbering tiers) |
172
- | `docs/index.md`, `docs/README.md`, `docs/AI.md`, `docs/COPYRIGHT` | Entry points |
173
-
174
- ---
175
-
176
- ## 8. Tests (`tests/`)
177
-
178
- | Path | Purpose |
179
- |-------------------------------------------|--------------------------------------------------------------------------------------------|
180
- | `tests/framework/` | `test_runner.sh`, `assertions.sh`, `mocks.sh` — the custom shell-test framework |
181
- | `tests/unit/` | Unit tests organised by domain: `aliases/`, `ci/`, `docs/`, `dot-cli/`, `fish/`, `functions/`, `install/`, `nvim/`, `ops/`, `secrets/`, `security/`, `shell/`, `theme/`, `tools/`, `diagnostics/`, `misc/`, `nushell/` |
182
- | `tests/integration/` | End-to-end install and apply flows |
183
- | `tests/regression/` | Guardrail tests for previously-broken behaviours |
184
- | `tests/performance/` | `benchmark_runner.sh` and friends |
185
- | `tests/benchmark.sh`, `tests/test-aliases.sh`, `tests/test-docker.sh` | Top-level entrypoints |
186
- | `tests/Dockerfile.sandbox` | Fresh-Ubuntu sandbox image for integration tests |
187
-
188
- Tests execute shell source files directly — **do not** use Go template
189
- syntax in non-`.tmpl` files, or the test framework will choke on the curly
190
- braces.
191
-
192
- ---
193
-
194
- ## 9. Other top-level
195
-
196
- | Path | Purpose |
197
- |-------------------------------------------|------------------------------------------------------------------------------|
198
- | `config/` | Repo-local tool configs: `cliff.toml` (changelog), `gitleaks.toml`, `pre-commit-config.yaml`, `stylua.toml`, `trivyignore` |
199
- | `templates/chezmoi-data/`, `templates/projects/` | Starter scaffolding for new machines / new projects |
200
- | `examples/` | 14 standalone demo scripts used by the manual and tutorials |
201
- | `CHANGELOG.md`, `LICENSE`, `README.md` | Standard |
202
- | `docs/CONFIG_STRATEGY.md` | High-level "how configuration management works here" overview |
203
- | `.gitattributes`, `.gitignore`, `.gitleaksignore`, `.editorconfig`, `.secrets.baseline`, `.sops.yaml`, `.luacheckrc` | Repo-level tool configs |
204
- | `.pre-commit-config.yaml` → `config/pre-commit-config.yaml` | Symlink so `pre-commit` finds the canonical config |
205
-
206
- ---
207
-
208
- ## 10. Local-only artefacts (gitignored — if you see them, don't commit them)
209
-
210
- The following paths can appear during local work but are excluded from
211
- version control. If one of them ever shows up in `git status`, check the
212
- `.gitignore` entry rather than adding the file:
213
-
214
- | Path | Source |
215
- |--------------------------|------------------------------------------------------------------------------|
216
- | `_build/` | Output of `tools/docs/build-manual.sh` |
217
- | `.pnpm-store/` | pnpm's content-addressable store (should never appear here) |
218
- | `.claude/` | Claude Code per-machine state (`settings.local.json` permission allowlists) |
219
- | `node_modules/` | Node dependency trees from repo-local scripts |
220
- | `.version-sync-backup/` | Timestamped backups from `version-sync.sh` |
221
- | `lib/wasm-tools/target/` | Rust build artefacts for the vendored wasm tooling |
222
- | `dot_etc/machines/` | Host-specific installer overrides |
223
-
224
- ---
225
-
226
- ## How to decide where a new file belongs
227
-
228
- A quick decision tree for common cases:
229
-
230
- - **New app config that lives under `~/.config/<app>/`** → `dot_config/<app>/` (see `docs/NAMING_CONVENTIONS.md` → "Adding New Modules").
231
- - **New user-facing CLI script** → `dot_local/bin/executable_<name>`.
232
- - **New `dot` subcommand** → implementation in `scripts/dot/commands/<name>.sh`, routing in `bin/dot`.
233
- - **New repo-only automation** (CI helper, maintenance task, release step) → `scripts/<domain>/<name>.sh`.
234
- - **New test** → `tests/unit/<domain>/test_<feature>.sh` (follow `test_{domain}_{feature}.sh` naming).
235
- - **New doc** → pick the narrowest of `docs/architecture/`, `docs/reference/`, `docs/guides/`, `docs/operations/`, `docs/security/`.
236
- - **New alias file** → `.chezmoitemplates/aliases/<category>/<tool>.aliases.sh` (see conventions doc).
237
- - **New run-once hook** → `run_onchange_<NN>-<verb>-<noun>.sh.tmpl` at the root, using the numbering tier appropriate to its category.
238
-
239
- If none of the above fits, stop and ask in an issue or PR before
240
- introducing a new top-level directory. The current layout is deliberate
241
- and one-off additions cost everyone later.
@@ -1,86 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Walkthrough
6
-
7
- A hands-on tour of the dotfiles after installation. Run each step in your terminal to get comfortable with what's available.
8
-
9
- ## Step 1: Verify Installation
10
-
11
- Make sure everything landed correctly:
12
-
13
- ```bash
14
- dot --version
15
- dot doctor
16
- dot status
17
- ```
18
-
19
- `dot doctor` catches common problems early. If something's off, it'll tell you.
20
-
21
- ## Step 2: Explore the Shell
22
-
23
- The shell ships with modern replacements wired in:
24
-
25
- ```bash
26
- z dotfiles # Jump to ~/.dotfiles (zoxide)
27
- z - # Go back
28
-
29
- <Ctrl-R> # Fuzzy search command history (fzf)
30
- <Ctrl-T> # Fuzzy find files
31
-
32
- ls # Aliased to eza
33
- cat file.txt # Aliased to bat
34
- ```
35
-
36
- ## Step 3: Git Workflow
37
-
38
- ```bash
39
- gst # git status
40
- lg # Pretty log graph
41
- ga . # git add
42
- gcm "message" # git commit -m
43
- lgui # Launch lazygit
44
- ```
45
-
46
- ## Step 4: Tmux
47
-
48
- Prefix is `Ctrl-a`:
49
-
50
- ```bash
51
- <Ctrl-a> c # New window
52
- <Ctrl-a> | # Split vertically
53
- <Ctrl-a> - # Split horizontally
54
- <Ctrl-a> h/j/k/l # Navigate panes (vim-style)
55
- <Ctrl-a> f # Fuzzy session switcher
56
- ```
57
-
58
- ## Step 5: Neovim
59
-
60
- ```bash
61
- nvim .
62
-
63
- # Inside Neovim:
64
- <Space> # Leader — shows command palette
65
- <Space>ff # Find files
66
- <Space>fg # Live grep
67
- <Space>e # Toggle file tree
68
- ```
69
-
70
- ## Step 6: Docker
71
-
72
- ```bash
73
- dps # List running containers
74
- dco up -d # docker compose up
75
- dlogsf container # Follow container logs
76
- lzd # Launch lazydocker
77
- ```
78
-
79
- ## Step 7: Kubernetes (if enabled)
80
-
81
- ```bash
82
- k get pods # kubectl
83
- kctx # Switch context
84
- kn # Switch namespace
85
- k9 # Launch k9s
86
- ```
@@ -1,77 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Fleet Deployment Architecture
6
-
7
- ## Deployment Flow
8
-
9
- ```mermaid
10
- ---
11
- title: Fleet Deployment Architecture
12
- ---
13
- flowchart TD
14
- subgraph repo["Git Repository (SSOT)"]
15
- data[".chezmoidata.toml<br/>theme, profile, machine, features"]
16
- wallpapers["~/Pictures/Wallpapers/ + System<br/>wallpapers (source of truth)"]
17
- engine_k["K-Means CIELAB engine<br/>extract-theme.py + rebuild-themes.sh"]
18
- themes[".chezmoidata/themes.toml<br/>auto-generated, WCAG AAA"]
19
- hw[".chezmoidata/hardware.toml<br/>machine presets: T2, Surface, Geekom"]
20
- keys[".chezmoidata/keybinds.toml<br/>modifier hierarchy matrix"]
21
- tpl[".chezmoitemplates/<br/>reusable partials"]
22
- configs["dot_config/<br/>50+ app configs as .tmpl"]
23
- wallpapers --> engine_k --> themes
24
- end
25
-
26
- repo --> engine["Chezmoi Template Engine<br/>chezmoi apply"]
27
-
28
- engine --> t2["MacBook T2<br/>scale 2.0 | macOS"]
29
- engine --> sp["Surface Pro<br/>scale 1.5 | Linux"]
30
- engine --> gk["Geekom A9<br/>scale 1.0 | Linux"]
31
-
32
- subgraph apps["App Configs (per machine)"]
33
- niri["Niri (WM)"]
34
- ghostty["Ghostty (Term)"]
35
- tmux["Tmux (Mux)"]
36
- nvim["Neovim (Edit)"]
37
- gtk["GTK (UI)"]
38
- end
39
-
40
- t2 --> apps
41
- sp --> apps
42
- gk --> apps
43
-
44
- themes -. "colors" .-> niri & ghostty & tmux & nvim & gtk
45
-
46
- subgraph hotreload["IPC Hot-Reload Path"]
47
- direction LR
48
- user(["User runs dot-theme-sync"]) --> ipc["dot-theme-sync<br/>writes theme choice"]
49
- ipc --> reload_niri["niri: IPC reload"]
50
- ipc --> reload_ghostty["ghostty: config reload"]
51
- ipc --> reload_gtk["GTK: gsettings"]
52
- ipc --> reload_tmux["tmux: source-file"]
53
- ipc --> reload_nvim["nvim: RPC colorscheme"]
54
- end
55
-
56
- style repo fill:#313244,stroke:#cba6f7,color:#cdd6f4
57
- style engine fill:#45475a,stroke:#89b4fa,color:#cdd6f4
58
- style apps fill:#313244,stroke:#a6e3a1,color:#cdd6f4
59
- style hotreload fill:#313244,stroke:#f9e2af,color:#cdd6f4
60
- ```
61
-
62
- > **Note — Keybind Modifier Hierarchy:** Each input layer owns a
63
- > non-overlapping modifier prefix. The compositor (Super) never collides
64
- > with the multiplexer (Ctrl+a prefix), which never collides with the
65
- > editor (Space leader). `Ctrl+h/j/k/l` is the sole shared binding,
66
- > resolved by `tmux-vim-navigator` interop.
67
-
68
- ## Keybind Conflict Resolution Matrix
69
-
70
- | Modifier | Layer | Owner | Examples |
71
- |---|---|---|---|
72
- | `Super` (Mod) | Compositor | Niri | `Super+1`-`9` workspaces, `Super+Enter` terminal |
73
- | `Alt` | Window Switch | Niri | `Alt+Tab`, `Alt+grave` |
74
- | `Ctrl+a` prefix | Multiplexer | Tmux | `Ctrl+a h/j/k/l` panes, `Ctrl+a N` new window |
75
- | `Ctrl+h/j/k/l` | Smart Navigation | Tmux / Neovim | Seamless pane/split traversal |
76
- | `Ctrl+c/v/t/w` | Terminal | Ghostty | Copy, paste, new tab, close |
77
- | `Space` (leader) | Editor | Neovim | `Space+ff` find, `Space+ca` code action |
@@ -1,127 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Euxis 2026 Architecture & Product Review
6
-
7
- This review translates the current dotfiles CLI stack into an Apple-tier product strategy:
8
- high power, near-zero cognitive load, and cross-platform parity (macOS, Linux, WSL).
9
-
10
- ## Current state (what is already strong)
11
-
12
- - Unified entrypoint (`dot`) with modular command routing.
13
- - Good safety baseline (strict mode, governance, preflight checks).
14
- - Broad CI coverage with strong shell quality gates.
15
- - WSL support already exists but is distributed across scripts.
16
-
17
- ## Gaps to close for Apple-tier quality
18
-
19
- ### Performance and responsiveness
20
-
21
- - `dot doctor` scans broad filesystem paths and can feel slow on large homes.
22
- - Platform detection logic is duplicated across scripts.
23
- - Source directory resolution repeats file system probes in hot paths.
24
-
25
- ### UX and cognitive load
26
-
27
- - Cross-platform behavior is implicit, not surfaced as a simple product contract.
28
- - Users still need to understand host/guest boundaries (especially WSL).
29
- - Onboarding signal is fragmented across docs and command help.
30
-
31
- ### Product parity
32
-
33
- - No single abstraction layer for path conversion and host-native opening.
34
- - No first-class “platform parity” diagnostics in one section.
35
-
36
- ## Implemented in this branch
37
-
38
- ### 1) Platform abstraction layer
39
-
40
- Added `scripts/dot/lib/platform.sh` with:
41
-
42
- - `dot_platform_id`
43
- - `dot_host_os`
44
- - `dot_is_wsl`
45
- - `dot_path_to_unix`
46
- - `dot_path_to_native`
47
- - `dot_open_path`
48
-
49
- This centralizes platform semantics and removes per-script drift.
50
-
51
- ### 2) Hot-path optimization in shared utils
52
-
53
- Updated `scripts/dot/lib/utils.sh`:
54
-
55
- - sources `platform.sh`
56
- - adds process-local source dir cache (`_DOT_SOURCE_DIR_CACHE`)
57
- - avoids repeated filesystem checks in repeated command flows
58
-
59
- ### 3) Faster, clearer diagnostics
60
-
61
- Updated `scripts/diagnostics/doctor.sh`:
62
-
63
- - new **Platform** section (runtime + host + WSL bridge/fallback checks)
64
- - warns when running in `/mnt/*` under WSL (high IO latency path)
65
- - scoped symlink scan to standard roots only (`~/.config`, `~/.local`, `~/.ssh`)
66
- - adds explicit `dot` command resolution check
67
-
68
- ### 4) Onboarding clarity
69
-
70
- Updated `README.md`:
71
-
72
- - added “60-second onboarding” with a clear success state
73
-
74
- ### 5) Test coverage for new abstraction
75
-
76
- Added `scripts/tests/unit/test_dot_lib_platform.sh`:
77
-
78
- - existence + syntax + function presence + return contract checks
79
-
80
- ## File-by-file next refactors (high ROI)
81
-
82
- 1. `scripts/dot/commands/tools.sh`
83
-
84
- - Split `cmd_aliases` into submodule file.
85
- - Replace repeated `command -v` checks with cached capability map.
86
-
87
- 1. `dot_config/zsh/dot_zshrc.tmpl`
88
-
89
- - Add startup budget guard (record startup time; warn >400ms).
90
- - Move optional integrations behind capability checks generated once/session.
91
-
92
- 1. `scripts/ops/health-check.sh`
93
-
94
- - Import `platform.sh`, unify WSL/macOS/Linux branch logic.
95
- - Emit machine-readable JSON summary for UI frontends.
96
-
97
- 1. `scripts/diagnostics/perf.sh`
98
-
99
- - Add percentile reporting (P50/P95 over 10 runs).
100
- - Add regression threshold with actionable remediation hints.
101
-
102
- ## Product roadmap (prioritized)
103
-
104
- ### P0 (1-2 weeks)
105
-
106
- - Platform abstraction adoption across all dot commands.
107
- - Bounded diagnostic scans everywhere (`find` scope + timeout).
108
- - “Single-screen health” command output format harmonization.
109
-
110
- ### P1 (2-4 weeks)
111
-
112
- - Local state model for predictive UX (`~/.local/state/dotfiles/session.json`).
113
- - Adaptive hints (“next best action”) based on detected failures.
114
- - Non-blocking diagnostics execution with staged rendering.
115
-
116
- ### P2 (4-8 weeks)
117
-
118
- - Optional Rust helper binary for path/process abstraction and fast JSON output.
119
- - WASM-compatible policy engine for deterministic config validation.
120
- - Cross-device state sync model (privacy-first, local-first defaults).
121
-
122
- ## Apple-tier UX bar (acceptance criteria)
123
-
124
- - First successful install + health check in under 90 seconds.
125
- - `dot doctor` completes in under 700ms on warmed cache.
126
- - No user-facing distinction between macOS/Linux/WSL for core commands.
127
- - All failures return one-line remediation with direct command to fix.
@@ -1,6 +0,0 @@
1
- # Legacy Roadmap
2
-
3
- Legacy roadmap material has been consolidated into the canonical
4
- [`../../ROADMAP.md`](../../ROADMAP.md).
5
-
6
- This archive path is retained only for compatibility with older links.
@@ -1,47 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Milestone v0.2.493 Scope
6
-
7
- This milestone keeps scope intentionally small and operationally focused.
8
-
9
- ## Goals
10
-
11
- - Make post-merge verification a first-class workflow (`dot verify`).
12
- - Keep protected-branch CI deterministic (no unsigned bot commits on `master`).
13
- - Improve day-2 operator confidence with explicit verification guidance.
14
-
15
- ## In Scope
16
-
17
- - [x] Add `dot verify` command routing in diagnostics module.
18
- - `scripts/dot/commands/diagnostics.sh`
19
- - `bin/dot`
20
- - [x] Add verification runner script.
21
- - `scripts/diagnostics/verify.sh`
22
- - Runs:
23
- - `dot doctor`
24
- - `dot status`
25
- - `chezmoi diff`
26
- - [x] Update completion surfaces for new command.
27
- - `dot_local/share/bash-completion/completions/dot`
28
- - `dot_local/bin/executable_dot_completion`
29
- - [x] Harden sync-versions behavior for protected `master`.
30
- - `.github/workflows/sync-versions.yml`
31
- - `master` now verifies only; auto-sync commit job runs on non-master branches.
32
- - [x] Update docs and command references.
33
- - `README.md`
34
- - `docs/README.md`
35
- - `docs/OPERATIONS.md`
36
-
37
- ## Out of Scope
38
-
39
- - New security controls beyond existing baseline.
40
- - Major CLI redesign or command namespace reshuffle.
41
- - Release process automation changes outside sync-versions policy hardening.
42
-
43
- ## Exit Criteria
44
-
45
- - `dot verify` returns non-zero on drift/issues and zero when healthy.
46
- - `sync-versions` workflow no longer attempts commits to protected `master`.
47
- - Relevant unit tests and targeted command tests pass.