@sebastienrousseau/dotfiles 0.2.520 → 0.2.522

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 (323) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/LICENSE-APACHE +190 -0
  3. package/LICENSE-MIT +21 -0
  4. package/README.md +43 -37
  5. package/install.sh +76 -10
  6. package/package.json +7 -7
  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/ARCHITECTURE.md +0 -117
  12. package/docs/CNAME +0 -1
  13. package/docs/CONFIG_STRATEGY.md +0 -124
  14. package/docs/COPYRIGHT +0 -7
  15. package/docs/ECOSYSTEM.md +0 -220
  16. package/docs/GOLD-STANDARD-AUDIT.md +0 -352
  17. package/docs/GOVERNANCE.md +0 -98
  18. package/docs/MAINTAINERS.md +0 -41
  19. package/docs/MINIMUM-TOOLCHAIN.md +0 -100
  20. package/docs/NAMING_CONVENTIONS.md +0 -102
  21. package/docs/OPENCODE.md +0 -127
  22. package/docs/README.md +0 -84
  23. package/docs/STRUCTURE.md +0 -102
  24. package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -118
  25. package/docs/adr/ADR-002-shell-performance.md +0 -130
  26. package/docs/adr/ADR-003-security-first.md +0 -158
  27. package/docs/adr/ADR-004-cli-architecture.md +0 -171
  28. package/docs/adr/ADR-005-chezmoi-choice.md +0 -99
  29. package/docs/adr/ADR-006-shell-selection.md +0 -124
  30. package/docs/adr/ADR-007-multi-shell-parity.md +0 -62
  31. package/docs/adr/ADR-008-alias-system-architecture.md +0 -95
  32. package/docs/adr/ADR-009-wallpaper-driven-theming.md +0 -131
  33. package/docs/adr/ADR-010-starship-transient-prompt.md +0 -144
  34. package/docs/adr/ADR-011-nushell-tier3-keep.md +0 -144
  35. package/docs/adr/ADR-012-ai-fleet-local-proxy.md +0 -79
  36. package/docs/adr/README.md +0 -40
  37. package/docs/architecture/AI_COST_OPTIMIZATION.md +0 -144
  38. package/docs/architecture/ARCHITECTURE.md +0 -20
  39. package/docs/architecture/INTEROP.md +0 -44
  40. package/docs/architecture/REPO_LAYOUT.md +0 -241
  41. package/docs/architecture/WALKTHROUGH.md +0 -86
  42. package/docs/architecture/fleet-deployment.md +0 -77
  43. package/docs/archive/EUXIS_2026_REVIEW.md +0 -127
  44. package/docs/archive/LEGACY_ROADMAP.md +0 -6
  45. package/docs/archive/MILESTONE_v0.2.493.md +0 -47
  46. package/docs/archive/PLAN.md +0 -199
  47. package/docs/archive/REPO_AUDIT.md +0 -31
  48. package/docs/articles/.pages +0 -6
  49. package/docs/articles/2026-07-05-custom-mkdocs-material-dark-theme.md +0 -216
  50. package/docs/articles/2026-07-05-fish-startup-abbr.md +0 -153
  51. package/docs/articles/2026-07-05-master-to-main-rename-runbook.md +0 -128
  52. package/docs/articles/index.md +0 -36
  53. package/docs/guides/INSTALL.md +0 -144
  54. package/docs/guides/MACOS_ICLOUD_SYMLINKS.md +0 -121
  55. package/docs/guides/NEOVIM_IDE_GUIDE.md +0 -61
  56. package/docs/guides/THEMING.md +0 -230
  57. package/docs/guides/TROUBLESHOOTING.md +0 -176
  58. package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +0 -792
  59. package/docs/index.md +0 -132
  60. package/docs/interop/A2A.md +0 -39
  61. package/docs/interop/POWERSHELL.md +0 -102
  62. package/docs/manual/00-introduction.md +0 -89
  63. package/docs/manual/01-concepts/01-architecture.md +0 -138
  64. package/docs/manual/01-concepts/02-trust-model.md +0 -183
  65. package/docs/manual/01-concepts/03-theme-engine.md +0 -186
  66. package/docs/manual/01-concepts/04-fleet.md +0 -148
  67. package/docs/manual/01-concepts/05-self-healing.md +0 -204
  68. package/docs/manual/02-tutorials/01-first-install.md +0 -197
  69. package/docs/manual/02-tutorials/02-add-wallpaper.md +0 -216
  70. package/docs/manual/02-tutorials/03-create-profile.md +0 -244
  71. package/docs/manual/02-tutorials/04-encrypt-secret.md +0 -281
  72. package/docs/manual/02-tutorials/05-deploy-fleet.md +0 -283
  73. package/docs/manual/03-reference/01-dot-cli.md +0 -475
  74. package/docs/manual/03-reference/02-config-files.md +0 -265
  75. package/docs/manual/03-reference/03-environment.md +0 -124
  76. package/docs/manual/03-reference/04-templates.md +0 -190
  77. package/docs/manual/03-reference/05-feature-flags.md +0 -187
  78. package/docs/manual/04-cookbook/01-recipes.md +0 -285
  79. package/docs/manual/04-cookbook/02-troubleshooting.md +0 -351
  80. package/docs/manual/04-cookbook/03-faq.md +0 -175
  81. package/docs/manual/05-appendices/A-platform-matrix.md +0 -101
  82. package/docs/manual/05-appendices/B-security-checklist.md +0 -85
  83. package/docs/manual/05-appendices/C-glossary.md +0 -40
  84. package/docs/manual/05-appendices/D-bibliography.md +0 -58
  85. package/docs/manual/05-appendices/E-license.md +0 -38
  86. package/docs/manual/_toc.yml +0 -58
  87. package/docs/manual/command-index.md +0 -175
  88. package/docs/manual/concept-index.md +0 -170
  89. package/docs/manual/index.md +0 -66
  90. package/docs/migration/README.md +0 -81
  91. package/docs/migration/from-bare-git-repo.md +0 -156
  92. package/docs/migration/from-gnu-stow.md +0 -165
  93. package/docs/migration/from-plain-chezmoi.md +0 -148
  94. package/docs/migration/from-yadm.md +0 -187
  95. package/docs/operations/ARCHITECTURE_ROADMAP.md +0 -7
  96. package/docs/operations/ATTESTATION.md +0 -44
  97. package/docs/operations/CI_CADENCE.md +0 -107
  98. package/docs/operations/CI_COMPOSITES.md +0 -156
  99. package/docs/operations/COMPLETIONS.md +0 -123
  100. package/docs/operations/COVERAGE.md +0 -204
  101. package/docs/operations/DRIFT.md +0 -107
  102. package/docs/operations/HARD_AUDIT_2026.md +0 -631
  103. package/docs/operations/MAINTENANCE.md +0 -63
  104. package/docs/operations/MANIFEST.md +0 -127
  105. package/docs/operations/MIGRATION.md +0 -109
  106. package/docs/operations/OPERATIONS.md +0 -188
  107. package/docs/operations/PERFORMANCE.md +0 -133
  108. package/docs/operations/PERFORMANCE_BUDGETS.md +0 -196
  109. package/docs/operations/REGISTRY.md +0 -90
  110. package/docs/operations/RELEASE_PIPELINE.md +0 -128
  111. package/docs/operations/RELIABILITY.md +0 -122
  112. package/docs/operations/RFC_v0_2_503_reorganization.md +0 -280
  113. package/docs/operations/ROADMAP.md +0 -10
  114. package/docs/operations/ROADMAP_2026.md +0 -7
  115. package/docs/operations/ROADMAP_V0_2_503.md +0 -10
  116. package/docs/operations/TESTING.md +0 -216
  117. package/docs/operations/TRACEABILITY.md +0 -44
  118. package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +0 -65
  119. package/docs/operations/VERSION_SYNC.md +0 -393
  120. package/docs/packaging.md +0 -222
  121. package/docs/reference/ALIASES.md +0 -131
  122. package/docs/reference/ALIASES_CHEATSHEET.md +0 -32
  123. package/docs/reference/ALIASES_DEPRECATIONS.md +0 -13
  124. package/docs/reference/FEATURE-MATRIX.md +0 -646
  125. package/docs/reference/FEATURES.md +0 -66
  126. package/docs/reference/FONTS.md +0 -112
  127. package/docs/reference/POWERSHELL_PARITY.md +0 -82
  128. package/docs/reference/PROFILES.md +0 -69
  129. package/docs/reference/SCREENSHOTS.md +0 -121
  130. package/docs/reference/SCRIPTS.md +0 -71
  131. package/docs/reference/SUPPORT_MATRIX.md +0 -80
  132. package/docs/reference/THEMES.md +0 -117
  133. package/docs/reference/TOOLS.md +0 -110
  134. package/docs/reference/UTILS.md +0 -243
  135. package/docs/registry.json +0 -6
  136. package/docs/schema/dot-env-v1.json +0 -110
  137. package/docs/schema/dot-registry-v1.json +0 -33
  138. package/docs/security/AI_ACT_COMPLIANCE.md +0 -94
  139. package/docs/security/AUDIT_BYPASS.md +0 -103
  140. package/docs/security/AUTOMATION_SECRETS.md +0 -26
  141. package/docs/security/CI_EGRESS_ALLOWLIST.md +0 -127
  142. package/docs/security/CI_PINNING.md +0 -129
  143. package/docs/security/COMMIT_SIGNING.md +0 -138
  144. package/docs/security/COMPLIANCE.md +0 -458
  145. package/docs/security/DEPS_DEV_EXCEPTIONS.md +0 -86
  146. package/docs/security/DISCLOSURE.md +0 -130
  147. package/docs/security/ENCRYPTION.md +0 -57
  148. package/docs/security/FMEA.md +0 -159
  149. package/docs/security/FUZZING.md +0 -209
  150. package/docs/security/HISTORY_FILTERING.md +0 -132
  151. package/docs/security/INCIDENT_RESPONSE.md +0 -579
  152. package/docs/security/INSTALL_VERIFICATION.md +0 -122
  153. package/docs/security/KEYS.md +0 -49
  154. package/docs/security/KEY_ROTATION.md +0 -303
  155. package/docs/security/MCP_POLICY.md +0 -78
  156. package/docs/security/POLICY_RELEASES.md +0 -37
  157. package/docs/security/README.md +0 -28
  158. package/docs/security/SCORECARD.md +0 -195
  159. package/docs/security/SECRETS.md +0 -158
  160. package/docs/security/SECURITY.md +0 -45
  161. package/docs/security/SECURITY_CHECKLIST.md +0 -55
  162. package/docs/security/SHELL_EXEMPTIONS.md +0 -145
  163. package/docs/security/SOUP_REGISTER.md +0 -36
  164. package/docs/security/THREAT_MODEL.md +0 -130
  165. package/docs/security/VERIFICATION_VALIDATION.md +0 -228
  166. package/docs/security/VERIFY_RELEASE.md +0 -201
  167. package/docs/security/security-pubkey.asc +0 -15
  168. package/docs/stylesheets/extra.css +0 -444
  169. package/docs/themes/README.md +0 -10
  170. package/docs/themes/VISUAL_INTEGRITY_REPORT.md +0 -30
  171. package/docs/themes/hero-shot.svg +0 -78
  172. package/scripts/README.md +0 -123
  173. package/scripts/ci/check-copyright-headers.sh +0 -8
  174. package/scripts/ci/check-shell-preamble.sh +0 -8
  175. package/scripts/ci/guard-gitleaks-checkout.sh +0 -8
  176. package/scripts/demo/record.sh +0 -43
  177. package/scripts/diagnostics/a2a-conformance.sh +0 -163
  178. package/scripts/diagnostics/alias-governance.sh +0 -165
  179. package/scripts/diagnostics/aliases-cheatsheet.sh +0 -74
  180. package/scripts/diagnostics/aliases-manifest.sh +0 -77
  181. package/scripts/diagnostics/attest-verify.sh +0 -147
  182. package/scripts/diagnostics/benchmark.sh +0 -408
  183. package/scripts/diagnostics/conflicts.sh +0 -73
  184. package/scripts/diagnostics/doctor-unified.sh +0 -43
  185. package/scripts/diagnostics/doctor.sh +0 -797
  186. package/scripts/diagnostics/drift-dashboard.sh +0 -203
  187. package/scripts/diagnostics/health.sh +0 -656
  188. package/scripts/diagnostics/history-analysis.sh +0 -86
  189. package/scripts/diagnostics/mcp-doctor.sh +0 -582
  190. package/scripts/diagnostics/perf.sh +0 -453
  191. package/scripts/diagnostics/scorecard.sh +0 -120
  192. package/scripts/diagnostics/secret-governance.sh +0 -65
  193. package/scripts/diagnostics/security-score.sh +0 -467
  194. package/scripts/diagnostics/smoke-test.sh +0 -88
  195. package/scripts/diagnostics/snapshot.sh +0 -90
  196. package/scripts/diagnostics/verify.sh +0 -108
  197. package/scripts/diagnostics/verify_state.sh +0 -73
  198. package/scripts/diagnostics/version-locks.sh +0 -94
  199. package/scripts/diagnostics/workstation-attestation.sh +0 -212
  200. package/scripts/dot/commands/agent.sh +0 -535
  201. package/scripts/dot/commands/agents.sh +0 -352
  202. package/scripts/dot/commands/ai.sh +0 -600
  203. package/scripts/dot/commands/aliases.sh +0 -277
  204. package/scripts/dot/commands/appearance.sh +0 -110
  205. package/scripts/dot/commands/completion.sh +0 -171
  206. package/scripts/dot/commands/core.sh +0 -217
  207. package/scripts/dot/commands/diagnostics.sh +0 -265
  208. package/scripts/dot/commands/env-emit.sh +0 -203
  209. package/scripts/dot/commands/fleet.sh +0 -711
  210. package/scripts/dot/commands/init.sh +0 -185
  211. package/scripts/dot/commands/lint.sh +0 -208
  212. package/scripts/dot/commands/manual.sh +0 -169
  213. package/scripts/dot/commands/meta.sh +0 -438
  214. package/scripts/dot/commands/patterns.sh +0 -55
  215. package/scripts/dot/commands/registry.sh +0 -455
  216. package/scripts/dot/commands/restore.sh +0 -232
  217. package/scripts/dot/commands/secrets.sh +0 -296
  218. package/scripts/dot/commands/security.sh +0 -102
  219. package/scripts/dot/commands/tools.sh +0 -570
  220. package/scripts/dot/data/alias-deprecations.tsv +0 -2
  221. package/scripts/dot/powershell/Dot.psm1 +0 -319
  222. package/scripts/fonts/install-nerd-fonts.sh +0 -75
  223. package/scripts/fonts/patch-fonts.sh +0 -36
  224. package/scripts/git-hooks/install.sh +0 -12
  225. package/scripts/git-hooks/pre-commit +0 -12
  226. package/scripts/git-hooks/pre-commit-audit.sh +0 -146
  227. package/scripts/git-hooks/pre-push +0 -105
  228. package/scripts/git-hooks/prepare-commit-msg +0 -29
  229. package/scripts/lib/secrets_provider.sh +0 -200
  230. package/scripts/nvim/headless-upgrade.lua +0 -81
  231. package/scripts/ops/ai-setup.sh +0 -71
  232. package/scripts/ops/bundle.sh +0 -104
  233. package/scripts/ops/chaos.sh +0 -50
  234. package/scripts/ops/chezmoi-apply.sh +0 -333
  235. package/scripts/ops/chezmoi-diff.sh +0 -16
  236. package/scripts/ops/chezmoi-remove.sh +0 -46
  237. package/scripts/ops/chezmoi-update.sh +0 -67
  238. package/scripts/ops/heal-chezmoi.sh +0 -87
  239. package/scripts/ops/heal-system.sh +0 -129
  240. package/scripts/ops/heal-tools.sh +0 -297
  241. package/scripts/ops/heal.sh +0 -223
  242. package/scripts/ops/post-apply-repair.sh +0 -107
  243. package/scripts/ops/prewarm.sh +0 -128
  244. package/scripts/ops/release.sh +0 -262
  245. package/scripts/ops/rollback.sh +0 -613
  246. package/scripts/ops/setup.sh +0 -138
  247. package/scripts/ops/teleport.sh +0 -34
  248. package/scripts/qa/check-feature-matrix.sh +0 -296
  249. package/scripts/qa/check-version-consistency.sh +0 -12
  250. package/scripts/qa/coverage-baseline.sh +0 -61
  251. package/scripts/qa/docs-coverage.sh +0 -118
  252. package/scripts/qa/examples-coverage.sh +0 -94
  253. package/scripts/qa/powershell-contract.ps1 +0 -95
  254. package/scripts/qa/reliability-audit.sh +0 -139
  255. package/scripts/qa/scorecard-snapshot.sh +0 -128
  256. package/scripts/qa/traceability-coverage.sh +0 -124
  257. package/scripts/qa/validate-examples.sh +0 -90
  258. package/scripts/qa/wsl-contract.sh +0 -12
  259. package/scripts/secrets/age-init.sh +0 -82
  260. package/scripts/secrets/create-secrets-file.sh +0 -46
  261. package/scripts/secrets/encrypt-ssh-key.sh +0 -44
  262. package/scripts/security/backup.sh +0 -58
  263. package/scripts/security/check-disclosure-key-expiry.sh +0 -111
  264. package/scripts/security/dns-doh.sh +0 -52
  265. package/scripts/security/encryption-check.sh +0 -55
  266. package/scripts/security/enforce-policies.sh +0 -552
  267. package/scripts/security/firewall.sh +0 -91
  268. package/scripts/security/lock-configs.sh +0 -67
  269. package/scripts/security/lock-screen.sh +0 -56
  270. package/scripts/security/manage-secrets.sh +0 -429
  271. package/scripts/security/ssh-cert.sh +0 -204
  272. package/scripts/security/telemetry-kill.sh +0 -51
  273. package/scripts/security/usb-safety.sh +0 -52
  274. package/scripts/theme/apply-gnome-theme.sh +0 -333
  275. package/scripts/theme/extract-heic-frames.sh +0 -115
  276. package/scripts/theme/extract-theme.py +0 -1020
  277. package/scripts/theme/install-boot-logo.sh +0 -63
  278. package/scripts/theme/install-catppuccin-themes.sh +0 -371
  279. package/scripts/theme/install-cursors.sh +0 -26
  280. package/scripts/theme/install-file-icons.sh +0 -27
  281. package/scripts/theme/install-grub-theme.sh +0 -62
  282. package/scripts/theme/install-lock-icon.sh +0 -31
  283. package/scripts/theme/merge-wallpaper.sh +0 -146
  284. package/scripts/theme/rebuild-themes.sh +0 -603
  285. package/scripts/theme/switch.sh +0 -476
  286. package/scripts/theme/wallpaper-rotate.sh +0 -137
  287. package/scripts/theme/wallpaper-sync.sh +0 -690
  288. package/scripts/tools/cmatrix.sh +0 -22
  289. package/scripts/tools/detect-collisions.py +0 -103
  290. package/scripts/tools/emoji-picker.sh +0 -49
  291. package/scripts/tools/figlet-banner.sh +0 -19
  292. package/scripts/tools/log-rotate.sh +0 -31
  293. package/scripts/tools/lolcat-wrap.sh +0 -20
  294. package/scripts/tools/pipes.sh +0 -49
  295. package/scripts/tuning/linux.sh +0 -186
  296. package/scripts/tuning/macos.sh +0 -56
  297. package/scripts/uninstall.sh +0 -86
  298. package/scripts/verify-release-versions +0 -156
  299. package/scripts/version-sync.sh +0 -714
  300. package/templates/chezmoi-data/geekom-a9.toml.example +0 -21
  301. package/templates/chezmoi-data/mac-m1.toml.example +0 -16
  302. package/templates/chezmoi-data/mac-t2-linux.toml.example +0 -21
  303. package/templates/chezmoi-data/surface-pro-7p.toml.example +0 -21
  304. package/templates/projects/go/.github/workflows/ci.yml +0 -31
  305. package/templates/projects/go/README.md +0 -7
  306. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +0 -8
  307. package/templates/projects/go/go.mod +0 -3
  308. package/templates/projects/go/go.sum +0 -0
  309. package/templates/projects/molecule/README.md +0 -7
  310. package/templates/projects/molecule/converge.yml +0 -7
  311. package/templates/projects/molecule/molecule.yml +0 -16
  312. package/templates/projects/node/.github/workflows/ci.yml +0 -30
  313. package/templates/projects/node/README.md +0 -7
  314. package/templates/projects/node/package-lock.json +0 -12
  315. package/templates/projects/node/package.json +0 -10
  316. package/templates/projects/node/src/index.js +0 -3
  317. package/templates/projects/packer/README.md +0 -15
  318. package/templates/projects/packer/main.pkr.hcl +0 -15
  319. package/templates/projects/python/.github/workflows/ci.yml +0 -34
  320. package/templates/projects/python/README.md +0 -7
  321. package/templates/projects/python/pyproject.toml +0 -25
  322. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +0 -2
  323. package/templates/projects/python/tests/test_basic.py +0 -3
@@ -1,351 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
- {% raw %}
5
-
6
- # Cookbook: Troubleshooting
7
-
8
- Symptom → cause → fix.
9
-
10
- ## Installation
11
-
12
- ### Symptom: `install.sh` fails with "chezmoi not found"
13
-
14
- **Cause**: `/usr/local/bin` or `~/.local/bin` not in PATH at install time.
15
-
16
- **Fix**:
17
-
18
- ```sh
19
- export PATH="$HOME/.local/bin:$PATH"
20
- bash -c "$(curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/main/install.sh)"
21
- ```
22
-
23
- ### Symptom: "could not create directory ~/.local/share/chezmoi"
24
-
25
- **Cause**: Permission issue on `~/.local`.
26
-
27
- **Fix**:
28
-
29
- ```sh
30
- mkdir -p ~/.local/share ~/.local/state ~/.local/bin
31
- chmod 755 ~/.local ~/.local/share
32
- ```
33
-
34
- ### Symptom: Install hangs at "Downloading chezmoi"
35
-
36
- **Cause**: Slow network or corporate proxy.
37
-
38
- **Fix**:
39
-
40
- ```sh
41
- export https_proxy=$HTTP_PROXY # if applicable
42
- # Or pre-download chezmoi manually
43
- brew install chezmoi # macOS
44
- apt install chezmoi # Debian 13+
45
- ```
46
-
47
- ## Apply / Sync
48
-
49
- ### Symptom: `dot apply` reports "file modified, skipping"
50
-
51
- **Cause**: Chezmoi detected local drift on a managed file.
52
-
53
- **Fix**:
54
-
55
- ```sh
56
- dot diff # see what differs
57
- dot apply --force # overwrite local
58
- # OR
59
- dot add <path> # import local change to source
60
- ```
61
-
62
- ### Symptom: "template: error calling index"
63
-
64
- **Cause**: A template references a missing data field.
65
-
66
- **Fix**: Check that your `.chezmoidata.toml` has the required field. For example:
67
-
68
- ```sh
69
- chezmoi execute-template '{{- $hw := index .hardware .machine -}}{{ $hw.wm }}'
70
- ```
71
-
72
- If `machine` is not set in your `~/.config/chezmoi/chezmoi.toml`, `index` returns nil. Set:
73
-
74
- ```toml
75
- [data]
76
- machine = "macbook-t2"
77
- ```
78
-
79
- ### Symptom: Apply succeeds but shell doesn't reflect changes
80
-
81
- **Cause**: Cached init scripts are stale.
82
-
83
- **Fix**:
84
-
85
- ```sh
86
- dot clean-cache
87
- dot prewarm
88
- exec $SHELL -l
89
- ```
90
-
91
- ## Theme
92
-
93
- ### Symptom: `dot theme` shows no themes
94
-
95
- **Cause**: No wallpapers discovered, themes.toml not generated.
96
-
97
- **Fix**:
98
-
99
- ```sh
100
- dot theme rebuild --force
101
- ```
102
-
103
- ### Symptom: `dot theme <name>` errors "unknown theme"
104
-
105
- **Cause**: Theme name doesn't exist in `themes.toml`.
106
-
107
- **Fix**:
108
-
109
- ```sh
110
- dot theme list # see valid names
111
- dot theme rebuild --force # regenerate if expected but missing
112
- ```
113
-
114
- ### Symptom: macOS accent color doesn't update
115
-
116
- **Cause**: System Settings UI cached the old value.
117
-
118
- **Fix**: `dot-theme-sync` now calls `killall cfprefsd SystemUIServer Dock "System Settings"`. If it still doesn't refresh:
119
-
120
- ```sh
121
- killall -KILL Dock SystemUIServer
122
- sudo killall -KILL cfprefsd
123
- ```
124
-
125
- Or log out and back in.
126
-
127
- ### Symptom: Wallpaper not applying
128
-
129
- **Cause**: Wrong format or missing DE support on Linux.
130
-
131
- **Fix**:
132
-
133
- ```sh
134
- # Check the wallpaper file exists
135
- ls -la ~/Pictures/Wallpapers/
136
-
137
- # On Linux, verify HEIC → PNG conversion tool
138
- command -v magick || command -v heif-convert || command -v convert
139
- # Install if needed:
140
- sudo apt install imagemagick-7
141
- ```
142
-
143
- ### Symptom: Theme applies but Ghostty doesn't reload
144
-
145
- **Cause**: Ghostty DBus or SIGUSR2 signaling failed.
146
-
147
- **Fix**:
148
-
149
- ```sh
150
- # Restart Ghostty manually, or:
151
- pkill -USR2 ghostty 2>/dev/null
152
- # Or quit+relaunch the app
153
- ```
154
-
155
- ## Secrets
156
-
157
- ### Symptom: "could not decrypt: no age key"
158
-
159
- **Cause**: `~/.config/age/keys.txt` missing or unreadable.
160
-
161
- **Fix**:
162
-
163
- ```sh
164
- ls -la ~/.config/age/keys.txt
165
- # Should be: -rw------- 1 user user
166
- chmod 600 ~/.config/age/keys.txt
167
-
168
- # If missing, restore from password manager or regenerate (requires re-encrypting all secrets)
169
- ```
170
-
171
- ### Symptom: SOPS says "wrong recipient"
172
-
173
- **Cause**: Your Age public key isn't listed in the file's recipients.
174
-
175
- **Fix**:
176
-
177
- ```sh
178
- # Add your public key to .sops.yaml
179
- sops updatekeys path/to/file.sops.yaml
180
-
181
- # Or, ask a recipient to re-encrypt for you
182
- ```
183
-
184
- ### Symptom: Plaintext leak detected by gitleaks
185
-
186
- **Cause**: A secret was committed to Git history.
187
-
188
- **Fix**:
189
-
190
- ```sh
191
- # Immediate mitigation
192
- dot verify --security # confirm which file
193
- git rm --cached <file>
194
- echo "<file>" >> .gitignore
195
- git commit -sS -m "fix(security): remove leaked file"
196
-
197
- # Rotate the leaked secret upstream (it's now public)
198
- # Rewrite Git history if needed (requires force-push):
199
- git filter-repo --path <file> --invert-paths
200
- ```
201
-
202
- ## Performance
203
-
204
- ### Symptom: Shell startup >500ms
205
-
206
- **Cause**: Heavy modules loaded synchronously.
207
-
208
- **Fix**:
209
-
210
- ```sh
211
- dot benchmark --detailed
212
- # Identify which module is slow
213
-
214
- # Rebuild caches
215
- dot prewarm
216
-
217
- # Disable heavy modules temporarily
218
- # Edit ~/.config/zsh/.zshrc.local (or equivalent) to skip them
219
- ```
220
-
221
- ### Symptom: `dot doctor` score <70
222
-
223
- **Cause**: Multiple health issues.
224
-
225
- **Fix**:
226
-
227
- ```sh
228
- dot doctor --verbose # see every failure
229
- dot heal # auto-fix what's possible
230
- dot doctor # recheck
231
- ```
232
-
233
- ### Symptom: Mise tools not found
234
-
235
- **Cause**: Mise shim not activated.
236
-
237
- **Fix**:
238
-
239
- ```sh
240
- eval "$(mise activate zsh)" # or fish, bash
241
- dot doctor # confirm
242
- ```
243
-
244
- ## Build Artifacts
245
-
246
- ### Symptom: Cargo builds to `target/` instead of `/tmp/builds/cargo`
247
-
248
- **Cause**: `~/.cargo/config.toml` not managed or was overridden.
249
-
250
- **Fix**:
251
-
252
- ```sh
253
- chezmoi apply ~/.cargo/config.toml
254
- cat ~/.cargo/config.toml | grep target-dir
255
- # Should be: target-dir = "/tmp/builds/cargo"
256
- ```
257
-
258
- ### Symptom: `/tmp/builds/` doesn't exist
259
-
260
- **Cause**: Created by shell init, but shell wasn't restarted.
261
-
262
- **Fix**:
263
-
264
- ```sh
265
- mkdir -p /tmp/builds
266
- # Or restart shell
267
- exec $SHELL -l
268
- ```
269
-
270
- ## Fleet
271
-
272
- ### Symptom: `dot fleet attest` hangs
273
-
274
- **Cause**: A fleet host is unreachable.
275
-
276
- **Fix**:
277
-
278
- ```sh
279
- # Check connectivity to each host
280
- for host in macbook-t2 surface-pro geekom-a9; do
281
- ssh -o ConnectTimeout=5 $host 'echo OK' || echo "FAIL: $host"
282
- done
283
-
284
- # Remove unreachable hosts from ~/.config/dotfiles/fleet.toml temporarily
285
- ```
286
-
287
- ### Symptom: Attestation signature fails
288
-
289
- **Cause**: Remote host's SSH public key not in local `~/.ssh/allowed_signers`.
290
-
291
- **Fix**:
292
-
293
- ```sh
294
- # On the remote host:
295
- ssh remote-host 'cat ~/.ssh/id_ed25519.pub'
296
- # Copy the output and append to your ~/.ssh/allowed_signers
297
- ```
298
-
299
- ## CI
300
-
301
- ### Symptom: PR fails on "Shell Lint (Zero Warnings)"
302
-
303
- **Cause**: `shfmt` formatting differs from canonical.
304
-
305
- **Fix**:
306
-
307
- ```sh
308
- shfmt -w -i 2 -ci scripts/**/*.sh install.sh .chezmoitemplates/**/*.sh
309
- # Commit the changes
310
- ```
311
-
312
- ### Symptom: PR fails on "100% Coverage"
313
-
314
- **Cause**: New code added without tests.
315
-
316
- **Fix**:
317
-
318
- ```sh
319
- bash examples/example-coverage-gate.sh
320
- # Identifies uncovered modules
321
-
322
- # Add a test in tests/unit/<domain>/test_<module>.sh
323
- ```
324
-
325
- ### Symptom: Checkov SARIF upload times out
326
-
327
- **Cause**: Known infrastructure flake (Azure runner slow apt mirrors).
328
-
329
- **Fix**: The workflow already guards this with `hashFiles('reports/checkov.sarif')`. If you see this after the guard was added, check the Checkov step output for errors.
330
-
331
- ## Getting More Help
332
-
333
- 1. Check [FAQ](03-faq.md)
334
- 2. Read the relevant [concept chapter](../01-concepts/)
335
- 3. Open an issue: <https://github.com/sebastienrousseau/dotfiles/issues>
336
-
337
- When filing an issue, include:
338
-
339
- ```sh
340
- dot doctor --json
341
- dot version
342
- uname -a
343
- chezmoi --version
344
- ```
345
-
346
- ## See Also
347
-
348
- - [Self-Healing concept](../01-concepts/05-self-healing.md)
349
- - [FAQ](03-faq.md)
350
- - [Security: Incident Response](../../security/INCIDENT_RESPONSE.md)
351
- {% endraw %}
@@ -1,175 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Cookbook: Frequently Asked Questions
6
-
7
- ## General
8
-
9
- ### Why use this over stow, yadm, or a plain Git repo?
10
-
11
- Because it's not just a dotfiles manager. It's a workstation baseline with:
12
-
13
- - Cryptographic attestation
14
- - AI/MCP policy enforcement
15
- - Wallpaper-driven theme engine (WCAG AAA)
16
- - Self-healing + chaos testing
17
- - Fleet management
18
- - Per-platform rendering via chezmoi templates
19
-
20
- If you only need to symlink `.bashrc`, use stow. If you're operating a fleet of signed, attested, AI-aware workstations, use this.
21
-
22
- ### Does it work on Windows?
23
-
24
- Only via WSL2. Native Windows PowerShell support exists for baseline parity (aliases, prompt), but the full feature set (chezmoi, Mise, theme engine) requires WSL2.
25
-
26
- ### Is it production-ready?
27
-
28
- Yes — it's the author's daily driver across multiple hosts and receives regular releases (see `CHANGELOG.md`). CI enforces 100% executable-module mapping and a ratcheted measured Bash line-coverage floor, plus zero-warning linting, WCAG AAA for themes, SBOM + CVE scanning, and signed-commit verification. The current measured coverage and exclusions are documented in `docs/operations/COVERAGE.md`.
29
-
30
- ### Can I fork it and use it without attribution?
31
-
32
- Yes — MIT License. Attribution is appreciated but not required.
33
-
34
- ## Themes
35
-
36
- ### Why K-Means in CIELAB instead of RGB?
37
-
38
- CIELAB distances approximate human perception. A Δ in RGB might look identical to your eye in one part of the color space and very different in another. Clustering in Lab produces palettes where "close" colors actually look close. See [Theme Engine](../01-concepts/03-theme-engine.md).
39
-
40
- ### Why not pre-built themes like Catppuccin or Rosé Pine?
41
-
42
- Two reasons:
43
-
44
- 1. **Maintenance** — 100+ themes × 20+ applications = thousands of template variables to keep in sync. Generation from wallpapers eliminates that.
45
- 2. **User agency** — users bring their own wallpapers. The theme adapts to them, not the other way around.
46
-
47
- The engine can still produce Catppuccin-like output: give it a Catppuccin wallpaper and you get Catppuccin-aligned terminal colors.
48
-
49
- ### Does it ship wallpapers?
50
-
51
- No. Apple/Microsoft/distro-vendor wallpapers are copyrighted. The repo discovers wallpapers that are already on the user's system (at `~/Pictures/Wallpapers/` or the OS's system wallpaper directory). Users bring their own images.
52
-
53
- ### How do I control the accent color?
54
-
55
- You don't directly — the accent hue is extracted from the wallpaper. But `_compute_accent()` picks the most chromatic cluster, then darkens it until white text meets 7:1 contrast. If you want a specific accent, choose a wallpaper with that hue dominant.
56
-
57
- ### Can I use my own theme without a wallpaper?
58
-
59
- Not directly — the engine expects a source image. You could:
60
-
61
- 1. Pick a wallpaper whose palette you want
62
- 2. Let the engine generate the theme
63
- 3. Lock the generated `.toml` entry by copying to a non-regenerated path
64
-
65
- But this defeats the point. If you have a specific palette in mind, generate a solid-color or gradient image with those colors and use that.
66
-
67
- ## Secrets
68
-
69
- ### Why Age instead of GPG?
70
-
71
- GPG is notoriously complex. Age is simpler, uses modern crypto (X25519 + ChaCha20-Poly1305), and has no legacy baggage. It's the tool [SOPS recommends](https://github.com/getsops/sops#encrypting-using-age).
72
-
73
- ### Why commit encrypted secrets at all?
74
-
75
- - **Traceable** — Git history shows when secrets changed
76
- - **Auditable** — ciphertext is testable without decryption
77
- - **Portable** — clone the repo anywhere, decrypt with your key
78
- - **No external dependency** — no Vault/AWS Secrets Manager/etc.
79
-
80
- The alternative (storing secrets outside the repo) creates sync headaches across fleet hosts. Encrypted-at-rest-in-repo is simpler and just as secure if keys are managed correctly.
81
-
82
- ### What if I lose my Age private key?
83
-
84
- You lose access to all secrets encrypted only for that key. Recovery requires another recipient (another host with a valid key) to decrypt and re-encrypt. Fleet setups use multiple recipients for this reason — see [Deploy to Fleet](../02-tutorials/05-deploy-fleet.md).
85
-
86
- ## AI & Agents
87
-
88
- ### Does this require an API key?
89
-
90
- No. The AI tools (Claude Code, Codex, Copilot) are installed but require their own authentication. `dot ai` shows what's present without invoking any remote service.
91
-
92
- ### What is MCP?
93
-
94
- The [Model Context Protocol](https://modelcontextprotocol.io/) is a standard for connecting AI models to tools and data sources. `.dotfiles` includes policy enforcement for MCP-aware agents: allowlists, attestation, and signed registries. See [Trust Model](../01-concepts/02-trust-model.md).
95
-
96
- ### Can I add my own agent profile?
97
-
98
- Yes. Drop a Markdown file in `dot_config/ai/patterns/`. Each file describes a profile (architect, hardener, etc.). `dot mode <name>` switches between them.
99
-
100
- ## Fleet
101
-
102
- ### How many hosts can I manage?
103
-
104
- No hard limit. The `dot fleet` commands SSH sequentially by default, so large fleets (>20 hosts) benefit from parallel invocation. For industrial scale, pair with Ansible/Nix/Puppet; `.dotfiles` handles the user-level config, not system administration.
105
-
106
- ### Do I need a central server?
107
-
108
- No. Everything is Git-based. No central orchestration service, no daemon. Each host pulls independently.
109
-
110
- ### Can two hosts have different themes?
111
-
112
- Yes. Each host's `~/.config/chezmoi/chezmoi.toml` can set its own `theme`. This is per-host override — not shared in the repo.
113
-
114
- ## Performance
115
-
116
- ### Why is my shell startup 800ms when the budget is 500ms?
117
-
118
- Check what's loaded:
119
-
120
- ```sh
121
- DOTFILES_DEBUG=1 zsh -i -c exit 2>&1 | grep -E '\[debug [0-9]+ms\]'
122
- ```
123
-
124
- Common culprits:
125
-
126
- - nvm loading Node on every shell (use lazy loading)
127
- - `mise activate` with aggressive hook-env (set `activate_aggressive = false`)
128
- - Plugin manager scanning for updates
129
-
130
- Run `dot benchmark --detailed` to attribute cost.
131
-
132
- ### Can I disable prewarming?
133
-
134
- Yes — but your cold shell startup will be slow. Remove the prewarm invocation from your shell profile or skip `dot prewarm` after apply.
135
-
136
- ## Troubleshooting Community
137
-
138
- ### Where do I report bugs?
139
-
140
- GitHub issues: <https://github.com/sebastienrousseau/dotfiles/issues>. Include output of `dot doctor --json` and your platform.
141
-
142
- ### Where do I ask usage questions?
143
-
144
- GitHub discussions, or mention in the issue you open. The maintainer responds best to issues with clear repro steps.
145
-
146
- ### Is there a Discord / Slack?
147
-
148
- Not currently.
149
-
150
- ## Philosophy
151
-
152
- ### Why so much emphasis on attestation?
153
-
154
- Because AI agents operating on your workstation can do anything you can. Attestation is the audit trail — who ran what, when, with which policy. Without it, agent operations are black boxes.
155
-
156
- ### Why MIT License?
157
-
158
- To maximize adoption and contribution. MIT is compatible with commercial use; copyleft alternatives would restrict who can use the code.
159
-
160
- ### Why no GUI configurator?
161
-
162
- Text + Git is the optimal interface for a workstation baseline:
163
-
164
- - Versioned (Git history)
165
- - Reproducible (same input → same output)
166
- - Auditable (diff-able)
167
- - Scriptable (any `dot` command can be invoked programmatically)
168
-
169
- A GUI adds complexity without benefit over editing `.chezmoidata.toml` directly.
170
-
171
- ## See Also
172
-
173
- - [Troubleshooting](02-troubleshooting.md)
174
- - [Recipes](01-recipes.md)
175
- - [GitHub Discussions](https://github.com/sebastienrousseau/dotfiles/discussions)
@@ -1,101 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Appendix A: Platform Support Matrix
6
-
7
- ## Supported Platforms
8
-
9
- | OS | Version | Support | Notes |
10
- |:---|:---|:---:|:---|
11
- | macOS | 14 (Sonoma) | ✓ full | Primary development platform |
12
- | macOS | 15 (Sequoia) | ✓ full | |
13
- | macOS | 26 (Tahoe) | ✓ full | |
14
- | Ubuntu | 22.04 LTS | ✓ full | |
15
- | Ubuntu | 24.04 LTS | ✓ full | CI reference platform |
16
- | Debian | 12 (Bookworm) | ✓ full | |
17
- | Debian | 13 (Trixie) | ✓ full | |
18
- | Arch Linux | rolling | ✓ full | |
19
- | CachyOS | rolling | ✓ full | Arch-based |
20
- | Fedora | 39 | ✓ | Less tested |
21
- | Fedora | 40, 41 | ✓ | Less tested |
22
- | openSUSE | Tumbleweed | ✓ | Less tested |
23
- | Alpine | 3.20 | ⚠ partial | POSIX shells only; no Fish |
24
- | WSL2 | Ubuntu 22.04+ | ✓ full | Windows 11 host |
25
- | WSL2 | Debian | ✓ full | |
26
- | Windows PowerShell | 7.5+ | ⚠ baseline | Aliases + prompt; no chezmoi |
27
- | FreeBSD | 14 | ✗ untested | |
28
- | Termux (Android) | latest | ✗ untested | |
29
-
30
- ## Supported Shells
31
-
32
- | Shell | Version | Support |
33
- |:---|:---|:---:|
34
- | Fish | 3.6+ | ✓ primary |
35
- | Zsh | 5.9+ | ✓ full |
36
- | Bash | 5.0+ | ✓ full |
37
- | Nushell | 0.90+ | ✓ full |
38
- | PowerShell | 7.5+ | ⚠ baseline |
39
-
40
- ## Supported Architectures
41
-
42
- | Arch | Status |
43
- |:---:|:---:|
44
- | amd64 / x86_64 | ✓ |
45
- | arm64 / aarch64 | ✓ |
46
- | armv7 | ⚠ best-effort |
47
- | riscv64 | ✗ untested |
48
-
49
- ## Required Binaries
50
-
51
- | Binary | Purpose | Install |
52
- |:---|:---|:---|
53
- | `git` | Version control | System package manager |
54
- | `curl` | Installer | System package manager |
55
- | `chezmoi` | Template engine | Installer downloads verified binary |
56
-
57
- ## Optional Binaries (installed by Mise on first apply)
58
-
59
- | Binary | Purpose |
60
- |:---|:---|
61
- | `mise` | Runtime version manager |
62
- | `age` | Secret encryption |
63
- | `sops` | YAML secret encryption |
64
- | `pandoc` | Manual generation |
65
- | `shellcheck` | Shell linting |
66
- | `shfmt` | Shell formatting |
67
- | `starship` | Prompt |
68
- | `fzf` | Fuzzy finder |
69
- | `zoxide` | Smart `cd` |
70
- | `atuin` | Shell history sync |
71
- | `delta` | Git diff pager |
72
- | `lazygit` | TUI Git client |
73
- | `neovim` | Editor |
74
-
75
- ## Tested CI Environments
76
-
77
- | Environment | Workflow |
78
- |:---|:---|
79
- | macOS 14 (GHA) | `ci.yml`, `ci-enforced.yml` |
80
- | Ubuntu 24.04 (GHA) | `ci.yml`, `ci-enforced.yml` |
81
- | GitHub Codespaces | `devcontainer-prebuild.yml` |
82
- | Docker Ubuntu 24.04 | `ci.yml` test-docker job |
83
-
84
- ## Feature Matrix
85
-
86
- | Feature | macOS | Linux | WSL2 |
87
- |:---|:---:|:---:|:---:|
88
- | Shell configs (zsh/fish/bash/nu) | ✓ | ✓ | ✓ |
89
- | Terminal emulator configs | ✓ | ✓ | ✗ (host handles) |
90
- | Theme engine (K-Means) | ✓ | ✓ | ✓ |
91
- | Dynamic HEIC dark/light | ✓ native | ⚠ HEIC→PNG converted | ✗ |
92
- | Neovim + LSP | ✓ | ✓ | ✓ |
93
- | AI tools (Claude, Codex, etc.) | ✓ | ✓ | ✓ |
94
- | MCP policy enforcement | ✓ | ✓ | ✓ |
95
- | Attestation | ✓ | ✓ | ✓ |
96
- | Fleet (SSH-based) | ✓ | ✓ | ⚠ |
97
- | AeroSpace (WM) | ✓ | ✗ | ✗ |
98
- | Niri (WM) | ✗ | ✓ | ✗ |
99
- | GNOME gsettings | ✗ | ✓ | ⚠ |
100
- | Build artifact redirect | ✓ | ✓ | ✓ |
101
- | Self-healing (`dot heal`) | ✓ | ✓ | ✓ |
@@ -1,85 +0,0 @@
1
- ---
2
- render_with_liquid: false
3
- ---
4
-
5
- # Appendix B: Security Checklist
6
-
7
- Run this checklist after a fresh install and quarterly afterwards.
8
-
9
- ## Pre-Install
10
-
11
- - [ ] Download `install.sh` over HTTPS only
12
- - [ ] Inspect `install.sh` before running (optional, recommended for untrusted environments)
13
- - [ ] Ensure SSH signing key exists and is backed up (`~/.ssh/id_ed25519`)
14
- - [ ] Ensure Age key is backed up if reinstalling (`~/.config/age/keys.txt`)
15
-
16
- ## Post-Install
17
-
18
- - [ ] Run `dot doctor` — expect score ≥90
19
- - [ ] Run `dot verify --security` — all checks pass
20
- - [ ] Verify commit signing: `cd ~/.dotfiles && git verify-commit HEAD`
21
- - [ ] Confirm `~/.ssh/allowed_signers` contains your public key
22
- - [ ] Check that `~/.config/age/keys.txt` permissions are `0600`
23
- - [ ] Run `dot mcp --strict` — policy matches registry
24
-
25
- ## Ongoing (monthly)
26
-
27
- - [ ] `dot upgrade` — pick up security patches
28
- - [ ] `dot verify --security` — confirm no new leaks
29
- - [ ] Review `~/.local/state/dotfiles/mcp-violations.log` — any unexpected entries?
30
- - [ ] Review recent attestations — `ls ~/.local/state/dotfiles/attestation/ | tail -10`
31
- - [ ] Rotate Age key if compromised or as part of scheduled rotation
32
-
33
- ## Ongoing (quarterly)
34
-
35
- - [ ] Rotate SSH signing key
36
- - [ ] Audit `~/.ssh/allowed_signers` — remove former team members
37
- - [ ] Review SOPS recipient list in `.sops.yaml`
38
- - [ ] Run `dot chaos` in a test container — verify heal works
39
- - [ ] Update pinned tool versions in `mise.toml`
40
- - [ ] Run fleet attestation — confirm all hosts aligned
41
-
42
- ## Incident Response
43
-
44
- If a secret leak is detected:
45
-
46
- 1. **Contain** — remove from history, force-push
47
-
48
- ```sh
49
- git filter-repo --path <file> --invert-paths
50
- git push --force
51
- ```
52
-
53
- 2. **Rotate** — change the leaked secret upstream (Stripe key, SSH key, etc.)
54
- 3. **Audit** — check who/what had access
55
- 4. **Notify** — inform affected parties if required
56
-
57
- If a host is compromised:
58
-
59
- 1. **Revoke** — remove the host's public key from `~/.ssh/allowed_signers` on all other fleet hosts
60
- 2. **Re-encrypt** — `sops updatekeys` with the host excluded from recipients
61
- 3. **Attest** — run `dot fleet attest` to verify revocation propagated
62
- 4. **Wipe** — if the host is recoverable, `rm -rf ~/.config/age ~/.dotfiles` and reinstall
63
-
64
- ## Gates Enforced by CI
65
-
66
- Every PR to main must pass:
67
-
68
- - [x] SSH-signed commits
69
- - [x] Shellcheck zero warnings (severity=error)
70
- - [x] Gitleaks scan
71
- - [x] Detect-secrets baseline diff
72
- - [x] TruffleHog verified scan
73
- - [x] Copyright headers present
74
- - [x] 100% executable module mapping
75
- - [ ] 100% measured line and branch coverage (current ratchet is documented in `docs/operations/COVERAGE.md`)
76
- - [x] Reliability tests (macOS + Ubuntu)
77
- - [x] Checkov infra scan
78
- - [x] Version sync (bumped across all files)
79
-
80
- ## See Also
81
-
82
- - [Trust Model](../01-concepts/02-trust-model.md)
83
- - [Encrypt a Secret tutorial](../02-tutorials/04-encrypt-secret.md)
84
- - [Security Policy](../../security/SECURITY.md)
85
- - [Incident Response Playbook](../../security/INCIDENT_RESPONSE.md)