@sebastienrousseau/dotfiles 0.2.501 → 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.
- package/CHANGELOG.md +155 -4
- package/LICENSE +21 -1283
- package/README.md +40 -8
- package/docs/CONFIG_STRATEGY.md +124 -0
- package/docs/COPYRIGHT +1 -1
- package/docs/GOVERNANCE.md +98 -0
- package/docs/MAINTAINERS.md +41 -0
- package/docs/OPENCODE.md +127 -0
- package/docs/README.md +2 -0
- package/docs/STRUCTURE.md +102 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
- package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
- package/docs/architecture/REPO_LAYOUT.md +8 -8
- package/docs/archive/MILESTONE_v0.2.493.md +1 -1
- package/docs/index.md +2 -2
- package/docs/interop/POWERSHELL.md +1 -1
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/01-concepts/02-trust-model.md +1 -1
- package/docs/manual/03-reference/01-dot-cli.md +63 -45
- package/docs/manual/03-reference/02-config-files.md +2 -2
- package/docs/manual/03-reference/05-feature-flags.md +62 -3
- package/docs/manual/_toc.yml +1 -1
- package/docs/manual/command-index.md +72 -55
- package/docs/manual/index.md +66 -0
- package/docs/operations/CI_COMPOSITES.md +2 -2
- package/docs/operations/COMPLETIONS.md +2 -2
- package/docs/operations/COVERAGE.md +40 -6
- package/docs/operations/HARD_AUDIT_2026.md +631 -0
- package/docs/operations/MAINTENANCE.md +3 -3
- package/docs/operations/MANIFEST.md +127 -0
- package/docs/operations/REGISTRY.md +89 -0
- package/docs/operations/RELEASE_PIPELINE.md +130 -0
- package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
- package/docs/operations/ROADMAP_2026.md +665 -0
- package/docs/operations/ROADMAP_V0_2_503.md +134 -0
- package/docs/operations/TESTING.md +17 -0
- package/docs/operations/TRACEABILITY.md +9 -3
- package/docs/operations/VERSION_SYNC.md +4 -4
- package/docs/reference/POWERSHELL_PARITY.md +81 -0
- package/docs/registry.json +6 -0
- package/docs/schema/dot-env-v1.json +110 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
- package/docs/security/CI_PINNING.md +121 -0
- package/docs/security/COMMIT_SIGNING.md +138 -0
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
- package/docs/security/DISCLOSURE.md +130 -0
- package/docs/security/FUZZING.md +114 -0
- package/docs/security/INSTALL_VERIFICATION.md +2 -2
- package/docs/security/KEY_ROTATION.md +81 -1
- package/docs/security/POLICY_RELEASES.md +2 -2
- package/docs/security/SCORECARD.md +130 -15
- package/docs/security/SHELL_EXEMPTIONS.md +4 -4
- package/docs/security/VERIFY_RELEASE.md +201 -0
- package/docs/security/security-pubkey.asc +15 -0
- package/install.sh +67 -38
- package/package.json +1 -1
- package/scripts/README.md +123 -0
- package/scripts/ci/check-copyright-headers.sh +4 -93
- package/scripts/ci/check-shell-preamble.sh +4 -103
- package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
- package/scripts/diagnostics/a2a-conformance.sh +4 -4
- package/scripts/diagnostics/alias-governance.sh +1 -1
- package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
- package/scripts/diagnostics/benchmark.sh +4 -4
- package/scripts/diagnostics/conflicts.sh +2 -2
- package/scripts/diagnostics/doctor-unified.sh +2 -2
- package/scripts/diagnostics/doctor.sh +45 -15
- package/scripts/diagnostics/drift-dashboard.sh +2 -2
- package/scripts/diagnostics/health.sh +4 -4
- package/scripts/diagnostics/history-analysis.sh +2 -2
- package/scripts/diagnostics/mcp-doctor.sh +10 -7
- package/scripts/diagnostics/perf.sh +4 -4
- package/scripts/diagnostics/scorecard.sh +4 -4
- package/scripts/diagnostics/security-score.sh +2 -2
- package/scripts/diagnostics/smoke-test.sh +2 -2
- package/scripts/diagnostics/snapshot.sh +2 -2
- package/scripts/diagnostics/verify.sh +4 -4
- package/scripts/diagnostics/version-locks.sh +2 -2
- package/scripts/diagnostics/workstation-attestation.sh +14 -14
- package/scripts/dot/commands/agent.sh +27 -22
- package/scripts/dot/commands/agents.sh +335 -0
- package/scripts/dot/commands/ai.sh +144 -25
- package/scripts/dot/commands/aliases.sh +10 -8
- package/scripts/dot/commands/appearance.sh +2 -2
- package/scripts/dot/commands/core.sh +12 -6
- package/scripts/dot/commands/diagnostics.sh +5 -5
- package/scripts/dot/commands/env-emit.sh +202 -0
- package/scripts/dot/commands/fleet.sh +290 -14
- package/scripts/dot/commands/init.sh +184 -0
- package/scripts/dot/commands/lint.sh +9 -4
- package/scripts/dot/commands/manual.sh +3 -3
- package/scripts/dot/commands/meta.sh +19 -10
- package/scripts/dot/commands/patterns.sh +2 -2
- package/scripts/dot/commands/registry.sh +263 -0
- package/scripts/dot/commands/restore.sh +4 -4
- package/scripts/dot/commands/secrets.sh +4 -3
- package/scripts/dot/commands/security.sh +2 -2
- package/scripts/dot/commands/tools.sh +62 -4
- package/scripts/dot/powershell/Dot.psm1 +199 -0
- package/scripts/fonts/install-nerd-fonts.sh +2 -2
- package/scripts/git-hooks/pre-commit-audit.sh +2 -2
- package/scripts/git-hooks/pre-push +13 -0
- package/scripts/lib/secrets_provider.sh +32 -6
- package/scripts/ops/ai-setup.sh +1 -1
- package/scripts/ops/bundle.sh +2 -2
- package/scripts/ops/chaos.sh +2 -2
- package/scripts/ops/chezmoi-apply.sh +4 -4
- package/scripts/ops/heal.sh +4 -4
- package/scripts/ops/post-apply-repair.sh +2 -2
- package/scripts/ops/prewarm.sh +2 -2
- package/scripts/ops/release.sh +4 -4
- package/scripts/ops/rollback.sh +18 -4
- package/scripts/ops/setup.sh +2 -2
- package/scripts/qa/check-version-consistency.sh +123 -0
- package/scripts/qa/coverage-baseline.sh +1 -1
- package/scripts/qa/docs-coverage.sh +2 -2
- package/scripts/qa/powershell-contract.ps1 +1 -1
- package/scripts/qa/scorecard-snapshot.sh +127 -0
- package/scripts/security/backup.sh +2 -2
- package/scripts/security/check-disclosure-key-expiry.sh +110 -0
- package/scripts/security/dns-doh.sh +4 -4
- package/scripts/security/encryption-check.sh +4 -4
- package/scripts/security/enforce-policies.sh +2 -2
- package/scripts/security/firewall.sh +4 -4
- package/scripts/security/lock-configs.sh +11 -2
- package/scripts/security/lock-screen.sh +4 -4
- package/scripts/security/manage-secrets.sh +2 -2
- package/scripts/security/ssh-cert.sh +2 -2
- package/scripts/security/telemetry-kill.sh +4 -4
- package/scripts/security/usb-safety.sh +4 -4
- package/scripts/theme/extract-heic-frames.sh +114 -0
- package/scripts/theme/rebuild-themes.sh +8 -1
- package/scripts/theme/switch.sh +13 -6
- package/scripts/theme/wallpaper-sync.sh +297 -93
- package/scripts/tuning/linux.sh +2 -2
- package/scripts/tuning/macos.sh +2 -2
- package/scripts/version-sync.sh +58 -7
- package/dot_config/.module-manifest.json +0 -69
- package/dot_config/ai/identity.md +0 -23
- package/dot_config/ai/patterns/architect.md +0 -16
- package/dot_config/ai/patterns/hardener.md +0 -15
- package/dot_config/ai/patterns/refactor.md +0 -15
- package/dot_config/aider/aider.conf.yml +0 -32
- package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
- package/dot_config/ansible/ansible.cfg +0 -11
- package/dot_config/atuin/config.toml.tmpl +0 -47
- package/dot_config/bat/config +0 -23
- package/dot_config/brave-flags.conf.tmpl +0 -7
- package/dot_config/btop/btop.conf +0 -16
- package/dot_config/btop/themes/tokyonight.theme +0 -34
- package/dot_config/bun/bunfig.toml.tmpl +0 -33
- package/dot_config/claude/mcp_servers.json +0 -20
- package/dot_config/containers/containers.conf +0 -14
- package/dot_config/curl/dot_curlrc +0 -18
- package/dot_config/dlv/config.yml +0 -39
- package/dot_config/docker/config.json +0 -15
- package/dot_config/dotfiles/agent-card.json +0 -29
- package/dot_config/dotfiles/agent-profiles.json +0 -92
- package/dot_config/dotfiles/boot/README.md +0 -13
- package/dot_config/dotfiles/grub/README.md +0 -13
- package/dot_config/dotfiles/lock/README.md +0 -13
- package/dot_config/dotfiles/mcp-lock.json +0 -33
- package/dot_config/dotfiles/mcp-policy.json +0 -52
- package/dot_config/dotfiles/mcp-registry.json +0 -47
- package/dot_config/dotfiles/model-registry.json +0 -20
- package/dot_config/dotfiles/policy-bundles.json +0 -38
- package/dot_config/dotfiles/prompt-registry.json +0 -16
- package/dot_config/dotfiles/versions.env +0 -18
- package/dot_config/duf/duf.conf +0 -6
- package/dot_config/duti/defaults.duti +0 -5
- package/dot_config/emoji/emoji.txt +0 -34
- package/dot_config/environment.d/50-ssh-agent.conf +0 -2
- package/dot_config/environment.d/90-wayland.conf +0 -19
- package/dot_config/fastfetch/config.jsonc +0 -28
- package/dot_config/firefox/user.js.tmpl +0 -58
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
- package/dot_config/fish/completions/dot.fish.tmpl +0 -115
- package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
- package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
- package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
- package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
- package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
- package/dot_config/fish/config.fish.tmpl +0 -44
- package/dot_config/fish/fish_plugins +0 -1
- package/dot_config/fish/functions/_.fish +0 -3
- package/dot_config/fish/functions/_cached_eval.fish +0 -131
- package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
- package/dot_config/fish/functions/als.fish +0 -46
- package/dot_config/fish/functions/bg-upgrade.fish +0 -7
- package/dot_config/fish/functions/c.fish +0 -3
- package/dot_config/fish/functions/cat.fish +0 -9
- package/dot_config/fish/functions/d.fish +0 -7
- package/dot_config/fish/functions/dot.fish +0 -34
- package/dot_config/fish/functions/h.fish +0 -3
- package/dot_config/fish/functions/l.fish +0 -7
- package/dot_config/fish/functions/la.fish +0 -7
- package/dot_config/fish/functions/ll.fish +0 -7
- package/dot_config/fish/functions/log_error.fish +0 -13
- package/dot_config/fish/functions/log_info.fish +0 -13
- package/dot_config/fish/functions/lr.fish +0 -7
- package/dot_config/fish/functions/lra.fish +0 -7
- package/dot_config/fish/functions/ls.fish +0 -7
- package/dot_config/fish/functions/lt.fish +0 -7
- package/dot_config/fish/functions/lta.fish +0 -7
- package/dot_config/fish/functions/notify-run.fish +0 -11
- package/dot_config/fish/functions/q.fish +0 -3
- package/dot_config/fish/functions/silent-run.fish +0 -7
- package/dot_config/fish/functions/yy.fish +0 -8
- package/dot_config/flatpak/flatpak.list +0 -4
- package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
- package/dot_config/foot/foot.ini.tmpl +0 -33
- package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
- package/dot_config/fzf/fzf.zsh +0 -48
- package/dot_config/gem/gemrc +0 -9
- package/dot_config/gh/config.yml +0 -12
- package/dot_config/ghostty/config.tmpl +0 -165
- package/dot_config/git/allowed_signers.tmpl +0 -18
- package/dot_config/git/attributes +0 -12
- package/dot_config/git/commit-template +0 -10
- package/dot_config/git/hooks/executable_commit-msg +0 -146
- package/dot_config/git/ignore +0 -27
- package/dot_config/gnupg/gpg-agent.conf +0 -11
- package/dot_config/go/golangci.yml +0 -118
- package/dot_config/go/gopls.json +0 -30
- package/dot_config/goose/config.yaml +0 -29
- package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
- package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
- package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
- package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
- package/dot_config/htop/htoprc +0 -20
- package/dot_config/inputrc +0 -2
- package/dot_config/ipython/profile_default/ipython_config.py +0 -19
- package/dot_config/just/justfile +0 -122
- package/dot_config/k9s/config.yaml +0 -65
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
- package/dot_config/kanshi/config.tmpl +0 -22
- package/dot_config/karabiner/karabiner.json +0 -14
- package/dot_config/kitty/kitty.conf.tmpl +0 -53
- package/dot_config/lazydocker/config.yml +0 -186
- package/dot_config/lazygit/config.yml +0 -35
- package/dot_config/mako/config +0 -47
- package/dot_config/mas/masapps.txt +0 -5
- package/dot_config/micro/settings.json +0 -3
- package/dot_config/mimeapps.list +0 -77
- package/dot_config/minikube/config.json +0 -13
- package/dot_config/mise/config.toml +0 -99
- package/dot_config/mongosh/mongoshrc.js +0 -68
- package/dot_config/mpv/input.conf +0 -47
- package/dot_config/mpv/mpv.conf +0 -47
- package/dot_config/mycli/myclirc +0 -67
- package/dot_config/nano/nanorc +0 -28
- package/dot_config/ncdu/config +0 -12
- package/dot_config/niri/config.kdl.tmpl +0 -327
- package/dot_config/nushell/aliases.nu +0 -18
- package/dot_config/nushell/cached_eval.nu +0 -80
- package/dot_config/nushell/completions.nu.tmpl +0 -52
- package/dot_config/nushell/config.nu.tmpl +0 -86
- package/dot_config/nushell/env.nu.tmpl +0 -102
- package/dot_config/nushell/functions.nu.tmpl +0 -17
- package/dot_config/nvim/init.lua +0 -18
- package/dot_config/nvim/lazy-lock.json +0 -58
- package/dot_config/nvim/lua/config/autocmds.lua +0 -107
- package/dot_config/nvim/lua/config/keymaps.lua +0 -92
- package/dot_config/nvim/lua/config/lazy.lua +0 -44
- package/dot_config/nvim/lua/config/options.lua +0 -49
- package/dot_config/nvim/lua/plugins/ai.lua +0 -75
- package/dot_config/nvim/lua/plugins/coding.lua +0 -216
- package/dot_config/nvim/lua/plugins/completion.lua +0 -60
- package/dot_config/nvim/lua/plugins/dap.lua +0 -412
- package/dot_config/nvim/lua/plugins/editor.lua +0 -55
- package/dot_config/nvim/lua/plugins/git.lua +0 -10
- package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
- package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
- package/dot_config/nvim/lua/plugins/rust.lua +0 -34
- package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
- package/dot_config/nvim/lua/plugins/ui.lua +0 -509
- package/dot_config/paru/paru.conf +0 -10
- package/dot_config/pip/pip.conf.tmpl +0 -32
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
- package/dot_config/pueue/pueue.yml +0 -34
- package/dot_config/pypoetry/config.toml +0 -6
- package/dot_config/pyrightconfig.json +0 -5
- package/dot_config/raycast/README.md +0 -13
- package/dot_config/redis/redisclirc +0 -41
- package/dot_config/ripgrep/ripgreprc +0 -21
- package/dot_config/shell/00-core-paths.sh.tmpl +0 -134
- package/dot_config/shell/05-core-safety.sh +0 -48
- package/dot_config/shell/10-secrets.sh +0 -41
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
- package/dot_config/shell/40-ls-colors.sh +0 -49
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
- package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
- package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
- package/dot_config/shell/Brewfile +0 -207
- package/dot_config/shell/Brewfile.cask +0 -92
- package/dot_config/shell/Brewfile.cli +0 -127
- package/dot_config/shell/README.md +0 -284
- package/dot_config/shell/als_data.txt.tmpl +0 -65
- package/dot_config/shell/custom/auto_ls.zsh +0 -20
- package/dot_config/shell/custom/context_suggest.zsh +0 -68
- package/dot_config/shell/custom/error_analysis.zsh +0 -45
- package/dot_config/sops/dot_sops.yaml +0 -23
- package/dot_config/starship.toml.tmpl +0 -202
- package/dot_config/swaylock/config +0 -43
- package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
- package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
- package/dot_config/systemd/user/pueued.service +0 -12
- package/dot_config/systemd/user/ssh-agent.service +0 -12
- package/dot_config/task/Taskfile.yml +0 -86
- package/dot_config/tflint/tflint.hcl +0 -9
- package/dot_config/tmux/tmux.conf.tmpl +0 -223
- package/dot_config/topgrade.toml.tmpl +0 -54
- package/dot_config/user-dirs.dirs +0 -10
- package/dot_config/vscode/extensions.txt +0 -11
- package/dot_config/vscode/settings.json.tmpl +0 -82
- package/dot_config/waybar/config.jsonc.tmpl +0 -90
- package/dot_config/waybar/style.css.tmpl +0 -211
- package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
- package/dot_config/wget/wgetrc +0 -12
- package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
- package/dot_config/yarn/yarnrc.yml +0 -36
- package/dot_config/yazi/keymap.toml +0 -67
- package/dot_config/yazi/theme.toml +0 -102
- package/dot_config/yazi/yazi.toml +0 -40
- package/dot_config/zathura/zathurarc +0 -52
- package/dot_config/zellij/config.kdl.tmpl +0 -79
- package/dot_config/zsh/dot_zprofile +0 -7
- package/dot_config/zsh/dot_zshenv +0 -5
- package/dot_config/zsh/dot_zshrc.tmpl +0 -635
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
- package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
- package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
- package/dot_local/bin/executable_ai-update +0 -195
- package/dot_local/bin/executable_ai_core +0 -152
- package/dot_local/bin/executable_antigravity +0 -11
- package/dot_local/bin/executable_b64 +0 -84
- package/dot_local/bin/executable_bm +0 -79
- package/dot_local/bin/executable_cb +0 -39
- package/dot_local/bin/executable_dot +0 -596
- package/dot_local/bin/executable_dot-ai +0 -36
- package/dot_local/bin/executable_dot-bootstrap +0 -77
- package/dot_local/bin/executable_dot-launch-or-focus +0 -52
- package/dot_local/bin/executable_dot-load-benchmark +0 -31
- package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
- package/dot_local/bin/executable_dot-theme-sync +0 -952
- package/dot_local/bin/executable_dot_completion +0 -57
- package/dot_local/bin/executable_dtags +0 -28
- package/dot_local/bin/executable_epoch +0 -67
- package/dot_local/bin/executable_extract +0 -41
- package/dot_local/bin/executable_gbd +0 -52
- package/dot_local/bin/executable_gd +0 -42
- package/dot_local/bin/executable_git-ai-commit +0 -175
- package/dot_local/bin/executable_git-ai-diff +0 -169
- package/dot_local/bin/executable_gl +0 -101
- package/dot_local/bin/executable_hash +0 -161
- package/dot_local/bin/executable_hashsum +0 -160
- package/dot_local/bin/executable_hex +0 -115
- package/dot_local/bin/executable_jsonv +0 -78
- package/dot_local/bin/executable_jwt +0 -94
- package/dot_local/bin/executable_kill-port +0 -75
- package/dot_local/bin/executable_lorem +0 -118
- package/dot_local/bin/executable_mkscript +0 -35
- package/dot_local/bin/executable_monitor +0 -56
- package/dot_local/bin/executable_myip +0 -51
- package/dot_local/bin/executable_notify +0 -24
- package/dot_local/bin/executable_open +0 -38
- package/dot_local/bin/executable_pw +0 -27
- package/dot_local/bin/executable_rec-start +0 -46
- package/dot_local/bin/executable_rec-stop +0 -35
- package/dot_local/bin/executable_regex +0 -132
- package/dot_local/bin/executable_start-niri +0 -8
- package/dot_local/bin/executable_tmux-sessionizer +0 -314
- package/dot_local/bin/executable_tour +0 -177
- package/dot_local/bin/executable_up +0 -23
- package/dot_local/bin/executable_update +0 -142
- package/dot_local/bin/executable_uuid +0 -87
- package/dot_local/bin/executable_win +0 -32
- package/dot_local/bin/executable_yamlv +0 -57
- package/dot_local/share/bash-completion/completions/dot +0 -72
- package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
- package/dot_local/share/man/man1/dot.1 +0 -149
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +0 -283
- package/scripts/ci/check-dangerous-chmod.sh +0 -19
- package/scripts/ci/check-deps-dev.sh +0 -236
- package/scripts/ci/check-insecure-tls.sh +0 -61
- package/scripts/ci/check-regression-traceability.sh +0 -67
- package/scripts/ci/install-chezmoi-verified.sh +0 -64
- package/scripts/ci/run-coverage.sh +0 -362
- package/scripts/ci/validate-chezmoidata.sh +0 -25
- package/scripts/ci/validate-ci-config.sh +0 -224
- package/scripts/docs/build-manual.sh +0 -883
- package/scripts/docs/check-manual.sh +0 -213
- package/scripts/dot/lib/bento.sh +0 -50
- package/scripts/dot/lib/log.sh +0 -200
- package/scripts/dot/lib/platform.sh +0 -99
- package/scripts/dot/lib/ui.sh +0 -518
- package/scripts/dot/lib/utils.sh +0 -377
- package/scripts/maintenance/check-updates.sh +0 -131
- package/scripts/release/package-policy-bundles.sh +0 -125
package/README.md
CHANGED
|
@@ -5,28 +5,54 @@
|
|
|
5
5
|
<h1 align="center">.dotfiles</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>Declarative dotfiles for macOS, Linux, and
|
|
8
|
+
<strong>Declarative dotfiles for macOS, Linux, WSL, and Windows-native PowerShell 7.4 LTS / 7.5+. Multi-shell by default. Sub-100ms CLI cold-start. Wallpaper-driven themes. Signed + attested releases. Fleet apply over SSH.</strong>
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
<a href="https://github.com/sebastienrousseau/dotfiles/actions"><img src="https://img.shields.io/github/actions/workflow/status/sebastienrousseau/dotfiles/ci.yml?style=for-the-badge&logo=github" alt="Build" /></a>
|
|
13
|
-
<a href="https://github.com/sebastienrousseau/dotfiles/releases/latest"><img src="https://img.shields.io/badge/Version-v0.2.
|
|
13
|
+
<a href="https://github.com/sebastienrousseau/dotfiles/releases/latest"><img src="https://img.shields.io/badge/Version-v0.2.503-blue?style=for-the-badge" alt="Version" /></a>
|
|
14
14
|
<a href="https://github.com/sebastienrousseau/dotfiles/releases"><img src="https://img.shields.io/github/downloads/sebastienrousseau/dotfiles/total?style=for-the-badge" alt="Downloads" /></a>
|
|
15
15
|
<a href="https://codespaces.new/sebastienrousseau/dotfiles"><img src="https://img.shields.io/badge/Open%20in-Codespaces-blue?style=for-the-badge&logo=github" alt="Open in GitHub Codespaces" /></a>
|
|
16
16
|
<a href="https://scorecard.dev/viewer/?uri=github.com/sebastienrousseau/dotfiles"><img src="https://img.shields.io/ossf-scorecard/github.com/sebastienrousseau/dotfiles?style=for-the-badge&label=OpenSSF%20Scorecard" alt="OpenSSF Scorecard" /></a>
|
|
17
|
+
<a href="https://www.bestpractices.dev/projects/new"><img src="https://img.shields.io/badge/OpenSSF%20Best%20Practices-in%20progress-yellow?style=for-the-badge" alt="OpenSSF Best Practices" /></a>
|
|
18
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License: MIT" /></a>
|
|
17
19
|
</p>
|
|
18
20
|
|
|
19
21
|
---
|
|
20
22
|
|
|
21
23
|
> **Why this is different.** You won't find these three things in `mathiasbynens/`, `holman/`, or `paulirish/`. First, wallpaper-driven terminal themes. We use K-Means clustering in CIELAB and enforce WCAG AAA contrast. Second, first-class agent governance. That covers MCP policy, A2A discovery, signed attestation logs, and bounded profiles (`ask` / `plan` / `apply` / `audit`). Third, verified multi-shell parity across zsh, fish, bash, nushell, and PowerShell. The suite is tested on macOS, Linux, WSL2, and Apple Silicon CI runners. Signed commits are enforced. The installer is idempotent. The CLI heals itself.
|
|
22
24
|
|
|
25
|
+
<!-- ASCIINEMA DEMO — closes #874 once recorded.
|
|
26
|
+
30-second clip covering: install.sh → dot doctor → dot theme rebuild.
|
|
27
|
+
Recording recipe (maintainer):
|
|
28
|
+
|
|
29
|
+
asciinema rec ~/dotfiles-demo.cast \
|
|
30
|
+
--idle-time-limit 1 --rows 30 --cols 100 \
|
|
31
|
+
--title "Dotfiles: install → doctor → theme"
|
|
32
|
+
# in the recording shell:
|
|
33
|
+
# curl -fsSL https://raw.githubusercontent.com/sebastienrousseau/dotfiles/master/install.sh | bash
|
|
34
|
+
# dot doctor
|
|
35
|
+
# dot theme rebuild --force
|
|
36
|
+
# then Ctrl-D to stop
|
|
37
|
+
|
|
38
|
+
Upload with `asciinema upload ~/dotfiles-demo.cast`, grab the
|
|
39
|
+
resulting `https://asciinema.org/a/<id>` URL, and replace this
|
|
40
|
+
comment with:
|
|
41
|
+
|
|
42
|
+
<p align="center">
|
|
43
|
+
<a href="https://asciinema.org/a/<id>">
|
|
44
|
+
<img src="https://asciinema.org/a/<id>.svg" alt="install → doctor → theme demo" />
|
|
45
|
+
</a>
|
|
46
|
+
</p>
|
|
47
|
+
-->
|
|
48
|
+
|
|
23
49
|
## Install
|
|
24
50
|
|
|
25
51
|
**Verified install (recommended).** Pin to a release tag. Download the installer. Check its SHA256 against the value published with the release. Then run it. See [docs/security/INSTALL_VERIFICATION.md](docs/security/INSTALL_VERIFICATION.md) for the per-release hash and how it's generated.
|
|
26
52
|
|
|
27
53
|
```bash
|
|
28
54
|
curl -fsSL -o /tmp/dotfiles-install.sh \
|
|
29
|
-
https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.
|
|
55
|
+
https://raw.githubusercontent.com/sebastienrousseau/dotfiles/v0.2.503/install.sh
|
|
30
56
|
echo "4c0303a2d88d5aed98428ab0da37618c9795af4dae0e6549646c2fce5235c280 /tmp/dotfiles-install.sh" \
|
|
31
57
|
| shasum -a 256 -c
|
|
32
58
|
bash /tmp/dotfiles-install.sh
|
|
@@ -80,10 +106,10 @@ Most dotfiles repos are personal collections. This one ships as workstation infr
|
|
|
80
106
|
|:---|:---|:---|
|
|
81
107
|
| **Wallpaper-driven themes** | K-Means clustering in CIELAB extracts terminal palettes from any wallpaper. WCAG AAA enforced. Dynamic HEIC dark/light. | `dot theme rebuild` |
|
|
82
108
|
| **AI and MCP native** | Agent profiles, MCP policy enforcement, attestation logs, AI commit messages. | `dot ai`, `dot mcp`, `dot agent`, `dot mode` |
|
|
83
|
-
| **Cryptographic attestation** | Signed commits, machine-readable evidence, policy bundle releases. | `dot attest`, `dot verify` |
|
|
109
|
+
| **Cryptographic attestation** | Signed commits, machine-readable evidence, policy bundle releases. | `dot attest`, `dot secrets verify` |
|
|
84
110
|
| **Fleet management** | Multi-node drift dashboard, per-host profiles. | `dot fleet` |
|
|
85
111
|
| **Self-healing** | Auto-repair tools, chezmoi drift, broken symlinks, missing files. | `dot heal`, `dot chaos`, `dot rollback`, `dot bundle` |
|
|
86
|
-
| **Sub-second startup** | Lazy loading, `_cached_eval` pattern, mtime-based cache invalidation, realpath sidecar pins. | `dot
|
|
112
|
+
| **Sub-second startup** | Lazy loading, `_cached_eval` pattern, mtime-based cache invalidation, realpath sidecar pins. | `dot perf`, `dot health` |
|
|
87
113
|
| **Multi-shell parity** | Tier-1 (full): zsh, bash. Tier-2 (bridged): fish. Tier-3 (compatible): nushell. PowerShell is supported as a contract-tested parity target. See [ADR-007](docs/adr/ADR-007-multi-shell-parity.md) and [ADR-011](docs/adr/ADR-011-nushell-tier3-keep.md). | `dot env`, `dot profile` |
|
|
88
114
|
| **Build artifacts → /tmp** | Cargo, Go, pip, uv, and Zig caches redirect to `/tmp/builds/`. Project dirs stay clean. | `~/.config/mise/config.toml`, `~/.cargo/config.toml` |
|
|
89
115
|
| **Encrypted secrets** | Age and SOPS keep per-machine secrets out of plaintext history. | `dot secrets` |
|
|
@@ -153,9 +179,15 @@ Over 80 commands grouped by intent. Run `dot help` for the full reference.
|
|
|
153
179
|
|
|
154
180
|
| | |
|
|
155
181
|
|:---|:---|
|
|
182
|
+
| `dot init <user>` | Bootstrap any GitHub user's dotfiles repo through this harness |
|
|
156
183
|
| `dot sync` | Apply dotfiles to this machine |
|
|
157
184
|
| `dot doctor` | Check the environment and surface issues |
|
|
158
185
|
| `dot learn` | Open the guided tour |
|
|
186
|
+
| `dot agents render` | Sync `CLAUDE.md` → `AGENTS.md` + Cursor + Codex stubs |
|
|
187
|
+
| `dot fleet apply` | SSH out to every host in `~/.config/dotfiles/fleet.toml` |
|
|
188
|
+
| `dot registry list` | Browse reusable dotfile modules from the registry |
|
|
189
|
+
|
|
190
|
+
A [Claude Code skill](defaults/dot_claude/skills/dotfiles-bootstrap/SKILL.md) is also shipped — `/skills` discovers `dotfiles-bootstrap` and runs `dot init` with profile-aware safety defaults.
|
|
159
191
|
|
|
160
192
|
### Daily Use
|
|
161
193
|
|
|
@@ -201,9 +233,9 @@ Over 80 commands grouped by intent. Run `dot help` for the full reference.
|
|
|
201
233
|
| | |
|
|
202
234
|
|:---|:---|
|
|
203
235
|
| `dot fleet` | Multi-node status, drift, and namespace |
|
|
204
|
-
| `dot
|
|
236
|
+
| `dot perf` | Measure shell startup |
|
|
205
237
|
| `dot score` / `dot security-score` | Health and security scorecards |
|
|
206
|
-
| `dot
|
|
238
|
+
| `dot health` | Live dashboard for caches and tool state |
|
|
207
239
|
|
|
208
240
|
Full reference: [docs/reference/UTILS.md](docs/reference/UTILS.md) · Complete manual: [docs/manual/](docs/manual/) or `dot manual`
|
|
209
241
|
|
|
@@ -227,7 +259,7 @@ The `.dotfiles` Manual is published in nine formats: HTML (single and multi-page
|
|
|
227
259
|
2. **Explore** — `dot learn` walks through shells, secrets, themes, and performance
|
|
228
260
|
3. **Customize** — edit `~/.config/chezmoi/chezmoi.toml` for per-machine settings ([Profiles](docs/reference/PROFILES.md))
|
|
229
261
|
4. **Toggle features** — flip features in `.chezmoidata.toml` ([Feature Flags](docs/reference/FEATURES.md))
|
|
230
|
-
5. **Apply** — `dot sync` applies the config and
|
|
262
|
+
5. **Apply** — `dot sync` applies the config and the next interactive shell hydrates caches via `_cached_eval`
|
|
231
263
|
|
|
232
264
|
See the [Migration Guide](docs/operations/MIGRATION.md) for version upgrades.
|
|
233
265
|
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Configuration Management Strategy
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This document defines the configuration management approach for this development environment, consolidating multiple systems into a clear hierarchy.
|
|
6
|
+
|
|
7
|
+
## Configuration Systems
|
|
8
|
+
|
|
9
|
+
### Primary: Chezmoi
|
|
10
|
+
|
|
11
|
+
**Role:** Source of truth for all managed dotfiles
|
|
12
|
+
**Location:** `~/.dotfiles/` (chezmoi source directory)
|
|
13
|
+
**Managed Files:** 209 files/directories
|
|
14
|
+
|
|
15
|
+
Chezmoi handles:
|
|
16
|
+
|
|
17
|
+
- Shell configurations (.bashrc, .zshrc, .profile, .zshenv, .zprofile)
|
|
18
|
+
- Editor configs (.vimrc, nvim, VS Code settings)
|
|
19
|
+
- Tool configs (.gitconfig, .npmrc, .noderc, etc.)
|
|
20
|
+
- Application configs (~/.config/*)
|
|
21
|
+
- SSH configuration (~/.ssh/config, config.d/)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Tertiary: Runtime/Application Data
|
|
25
|
+
|
|
26
|
+
**Role:** Auto-generated, not version controlled
|
|
27
|
+
**Examples:**
|
|
28
|
+
|
|
29
|
+
- `~/.cache/` - Application caches
|
|
30
|
+
- `~/.local/share/` - Application data
|
|
31
|
+
- `~/.cargo/`, `~/.rustup/` - Language toolchains
|
|
32
|
+
- `~/.npm/`, `~/.node_modules/` - Node.js packages
|
|
33
|
+
|
|
34
|
+
## Decision Matrix
|
|
35
|
+
|
|
36
|
+
| Configuration Type | Manager | Reason |
|
|
37
|
+
|-------------------|---------|--------|
|
|
38
|
+
| Shell dotfiles | Chezmoi | Templated, machine-specific |
|
|
39
|
+
| Editor configs | Chezmoi | Consistent across machines |
|
|
40
|
+
| Git config | Chezmoi | Templated (email, signing key) |
|
|
41
|
+
| SSH config | Chezmoi | Structured with config.d/ |
|
|
42
|
+
| Euxis framework | Git (separate) | Independent lifecycle |
|
|
43
|
+
| Language runtimes | mise | Version management |
|
|
44
|
+
| System packages | apt/snap | OS-level |
|
|
45
|
+
| Application data | None | Auto-generated |
|
|
46
|
+
|
|
47
|
+
## Chezmoi Configuration
|
|
48
|
+
|
|
49
|
+
### Data Variables (.chezmoidata.toml)
|
|
50
|
+
|
|
51
|
+
```toml
|
|
52
|
+
profile = "laptop" # Machine profile
|
|
53
|
+
theme = "tokyonight-night" # Color scheme
|
|
54
|
+
terminal_font_family = "JetBrains Mono"
|
|
55
|
+
terminal_font_size = 12
|
|
56
|
+
|
|
57
|
+
[features]
|
|
58
|
+
zsh = true # Enable zsh configs
|
|
59
|
+
nvim = true # Enable neovim configs
|
|
60
|
+
tmux = true # Enable tmux configs
|
|
61
|
+
gui = true # Enable GUI app configs
|
|
62
|
+
secrets = true # Enable secret management
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Template Patterns
|
|
66
|
+
|
|
67
|
+
Files ending in `.tmpl` are processed with Go templates:
|
|
68
|
+
|
|
69
|
+
- `dot_gitconfig.tmpl` - Injects name, email, signing key
|
|
70
|
+
- `dot_npmrc.tmpl` - Injects registry tokens
|
|
71
|
+
- `dot_noderc.tmpl` - Injects Node.js settings
|
|
72
|
+
|
|
73
|
+
### Ignored Patterns (.chezmoiignore.tmpl)
|
|
74
|
+
|
|
75
|
+
Machine-specific exclusions based on profile and features.
|
|
76
|
+
|
|
77
|
+
## Workflow
|
|
78
|
+
|
|
79
|
+
### Adding New Configuration
|
|
80
|
+
|
|
81
|
+
1. **Check if managed:** `chezmoi managed | grep <file>`
|
|
82
|
+
2. **If not managed:** `chezmoi add <file>`
|
|
83
|
+
3. **If templating needed:** Rename to `.tmpl`, add template logic
|
|
84
|
+
4. **Apply changes:** `chezmoi apply`
|
|
85
|
+
|
|
86
|
+
### Updating Configuration
|
|
87
|
+
|
|
88
|
+
1. **Edit source:** `chezmoi edit <file>` or edit in `~/.dotfiles/`
|
|
89
|
+
2. **Preview changes:** `chezmoi diff`
|
|
90
|
+
3. **Apply:** `chezmoi apply`
|
|
91
|
+
4. **Commit:** `cd ~/.dotfiles && git add -A && git commit`
|
|
92
|
+
|
|
93
|
+
### Syncing Across Machines
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# On new machine
|
|
97
|
+
chezmoi init https://github.com/<user>/dotfiles.git
|
|
98
|
+
chezmoi apply
|
|
99
|
+
|
|
100
|
+
# On existing machine
|
|
101
|
+
chezmoi update
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Anti-Patterns to Avoid
|
|
105
|
+
|
|
106
|
+
1. **Manual edits to managed files** - Always edit via chezmoi or re-add after manual changes
|
|
107
|
+
2. **Duplicate configs** - Don't maintain parallel configs outside chezmoi
|
|
108
|
+
3. **Hardcoded machine-specific values** - Use templates and data variables
|
|
109
|
+
4. **Version controlling runtime data** - Keep ~/.cache, ~/.local/share out of version control
|
|
110
|
+
|
|
111
|
+
## File Ownership
|
|
112
|
+
|
|
113
|
+
| Path | Owner | Notes |
|
|
114
|
+
|------|-------|-------|
|
|
115
|
+
| `~/.dotfiles/` | chezmoi | Source of truth |
|
|
116
|
+
| `~/.*` (dotfiles) | chezmoi-applied | Don't edit directly |
|
|
117
|
+
| `~/.config/*` | Mixed | Check `chezmoi managed` |
|
|
118
|
+
| `~/.local/` | chezmoi (bin) + runtime | Partial management |
|
|
119
|
+
|
|
120
|
+
## Maintenance Schedule
|
|
121
|
+
|
|
122
|
+
- **Weekly:** `chezmoi update` to sync remote changes
|
|
123
|
+
- **Monthly:** Review `chezmoi unmanaged` for new configs to add
|
|
124
|
+
- **Quarterly:** Audit `.chezmoiignore` patterns
|
package/docs/COPYRIGHT
CHANGED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Governance
|
|
2
|
+
|
|
3
|
+
## Model
|
|
4
|
+
|
|
5
|
+
**Single-maintainer steward.** The project is owned and decided
|
|
6
|
+
by one maintainer (see [`MAINTAINERS.md`](MAINTAINERS.md)). This document exists so
|
|
7
|
+
contributors and downstream consumers understand exactly how
|
|
8
|
+
decisions are made, how to influence them, and what guarantees
|
|
9
|
+
exist.
|
|
10
|
+
|
|
11
|
+
## Decision-making
|
|
12
|
+
|
|
13
|
+
| Decision class | Process | Veto |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| Bug fix | Open PR, maintainer reviews + merges. Tests required. | Maintainer |
|
|
16
|
+
| Feature addition | Open issue first to scope. Then PR. Larger changes need an RFC in `docs/operations/`. | Maintainer |
|
|
17
|
+
| Breaking change | RFC in `docs/operations/RFC_<topic>.md` + 2-week comment window + migration script + at least one minor-version deprecation. | Maintainer (with public reasoning) |
|
|
18
|
+
| Security policy | `.github/SECURITY.md` is the canonical reference. Disclosure-key rotation follows `docs/security/KEY_ROTATION.md`. | Maintainer + 30-day public notice |
|
|
19
|
+
| Dependency change | Pre-commit + CI must stay green. New runtime deps require RFC. | Maintainer |
|
|
20
|
+
| Release | Maintainer cuts tags. Convention: signed annotated tag, Cosign-signed SBOM, SLSA L3 provenance. | Maintainer |
|
|
21
|
+
|
|
22
|
+
## Contribution flow
|
|
23
|
+
|
|
24
|
+
1. **Issue** for non-trivial work. Confirm scope before coding.
|
|
25
|
+
2. **Branch** off `master`: `feat/<scope>`, `fix/<scope>`,
|
|
26
|
+
`docs/<scope>`, etc.
|
|
27
|
+
3. **PR** with description following the template:
|
|
28
|
+
- Summary (1–3 bullets)
|
|
29
|
+
- Test plan (checklist)
|
|
30
|
+
- Trailing Euxis signature block (required by
|
|
31
|
+
`pr-signature.yml`)
|
|
32
|
+
4. **CI** must pass before merge. Pre-commit hooks must not be
|
|
33
|
+
bypassed (`--no-verify` is rejected by the pre-push hook).
|
|
34
|
+
5. **Review** by the maintainer. Squash-merge is the project
|
|
35
|
+
default; merge-commit only for release PRs that need history
|
|
36
|
+
preserved (e.g., `feat/v0.X.YYY` aggregate PRs).
|
|
37
|
+
6. **Commit signing** is mandatory: SSH or GPG. Unsigned commits
|
|
38
|
+
are rejected at push.
|
|
39
|
+
|
|
40
|
+
See `CONTRIBUTING.md` for full code-style + commit-message
|
|
41
|
+
requirements.
|
|
42
|
+
|
|
43
|
+
## RFC process
|
|
44
|
+
|
|
45
|
+
For breaking changes or substantial new features:
|
|
46
|
+
|
|
47
|
+
1. Create `docs/operations/RFC_<short-name>.md` with sections:
|
|
48
|
+
- **Summary** (one paragraph)
|
|
49
|
+
- **Motivation** (why now, what's broken without it)
|
|
50
|
+
- **Detailed design** (concrete file paths, API shapes)
|
|
51
|
+
- **Backwards compatibility** (what breaks, migration path)
|
|
52
|
+
- **Alternatives considered** (with reasons rejected)
|
|
53
|
+
- **Unresolved questions**
|
|
54
|
+
2. Open a PR labelled `rfc` against `master`.
|
|
55
|
+
3. Comment window: 14 days minimum.
|
|
56
|
+
4. Maintainer renders a decision (accept / accept-with-changes /
|
|
57
|
+
reject) with public reasoning in the PR.
|
|
58
|
+
5. Accepted RFCs are merged as-is to `docs/operations/` and become
|
|
59
|
+
the implementation reference.
|
|
60
|
+
|
|
61
|
+
Active and historical RFCs are linked from
|
|
62
|
+
`docs/operations/README.md`.
|
|
63
|
+
|
|
64
|
+
## Code of conduct
|
|
65
|
+
|
|
66
|
+
Standard expectations: be kind, assume good faith, focus on the
|
|
67
|
+
work. Discriminatory or harassing behaviour is grounds for
|
|
68
|
+
permanent block. Report incidents to the maintainer via the
|
|
69
|
+
security disclosure channel (`security@sebastienrousseau.com`,
|
|
70
|
+
encrypted to the WKD-published GPG key).
|
|
71
|
+
|
|
72
|
+
## Forking
|
|
73
|
+
|
|
74
|
+
The project is MIT-licensed; fork freely. If your fork diverges
|
|
75
|
+
substantially and gains its own community, please rename it to
|
|
76
|
+
avoid downstream confusion ("dotfiles-X" or similar).
|
|
77
|
+
|
|
78
|
+
## Sustainability
|
|
79
|
+
|
|
80
|
+
The single-maintainer model has known weaknesses (bus factor,
|
|
81
|
+
review bandwidth, perspective). The project mitigates these by:
|
|
82
|
+
|
|
83
|
+
- **Comprehensive automation**: 75+ CI checks, pre-commit hooks,
|
|
84
|
+
shellcheck/shfmt/typos enforcement.
|
|
85
|
+
- **Documented architecture**: [`STRUCTURE.md`](STRUCTURE.md), `scripts/README.md`,
|
|
86
|
+
`architecture/`, `operations/HARD_AUDIT_2026.md`.
|
|
87
|
+
- **Cryptographic supply chain**: Cosign-signed SBOMs, SLSA L3
|
|
88
|
+
provenance, signed commits, WKD-published disclosure key.
|
|
89
|
+
- **Permissive license**: MIT — anyone can fork and continue.
|
|
90
|
+
- **Active issue triage**: targeted weekly cadence.
|
|
91
|
+
|
|
92
|
+
When the project gains regular contributors, this document will be
|
|
93
|
+
updated to reflect the shared-maintainer model.
|
|
94
|
+
|
|
95
|
+
## Reference
|
|
96
|
+
|
|
97
|
+
- [OpenSSF Best Practices criteria](https://www.bestpractices.dev/en/criteria/0) — this governance model is designed to satisfy the "passing" tier.
|
|
98
|
+
- [CNCF Project Governance template](https://contribute.cncf.io/maintainers/governance/) — adapted for solo maintainership.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Maintainers
|
|
2
|
+
|
|
3
|
+
This project is maintained by a single primary maintainer with an
|
|
4
|
+
explicit, documented governance model (see [`GOVERNANCE.md`](GOVERNANCE.md)).
|
|
5
|
+
|
|
6
|
+
## Primary maintainer
|
|
7
|
+
|
|
8
|
+
- **Sebastien Rousseau** — <sebastian.rousseau@gmail.com>
|
|
9
|
+
- GitHub: [@sebastienrousseau](https://github.com/sebastienrousseau)
|
|
10
|
+
- Role: project owner, release manager, security disclosure contact
|
|
11
|
+
- Commit signing: SSH ED25519 (`SHA256:kIOPAavp1TCEauTr1tTIN3cv+tSs6F9m/4lZjuM9tqk`)
|
|
12
|
+
- GPG disclosure key fingerprint: `55AFAD364FD9DB3819E61F0C8D688FAFA9144693` (ed25519 + cv25519, expires 2029-05-15, published via WKD at `security@sebastienrousseau.com`)
|
|
13
|
+
|
|
14
|
+
## Active contributors
|
|
15
|
+
|
|
16
|
+
This is a solo-maintained project. Contributions are welcomed via
|
|
17
|
+
pull request (see `CONTRIBUTING.md`); the maintainer reviews and
|
|
18
|
+
merges. When the project gains additional regular committers their
|
|
19
|
+
names will land here with role and contact.
|
|
20
|
+
|
|
21
|
+
## Security contact
|
|
22
|
+
|
|
23
|
+
For coordinated vulnerability disclosure, follow `.github/SECURITY.md`.
|
|
24
|
+
TL;DR: encrypt your report to the WKD-published GPG key above and
|
|
25
|
+
email `security@sebastienrousseau.com`. Acknowledgement SLA: 72 hours.
|
|
26
|
+
|
|
27
|
+
## Backup / continuity
|
|
28
|
+
|
|
29
|
+
In the event the primary maintainer becomes unable to maintain the
|
|
30
|
+
project, the repository is published under the MIT license and may
|
|
31
|
+
be forked. The `chezmoi`-based architecture means existing user
|
|
32
|
+
installs continue to work indefinitely without upstream activity.
|
|
33
|
+
|
|
34
|
+
## Releases
|
|
35
|
+
|
|
36
|
+
| Release author | Cadence | Signing |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| Primary maintainer | ~weekly | Signed annotated git tag + Cosign-signed SBOM + SLSA L3 provenance |
|
|
39
|
+
|
|
40
|
+
See `docs/operations/HARD_AUDIT_2026.md` Part 7 for the
|
|
41
|
+
disclosure-key generation + WKD publication record.
|
package/docs/OPENCODE.md
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Role: Repo-scoped instructions for the OpenCode CLI when operating
|
|
3
|
+
inside this repository. Mirrors CLAUDE.md but targets OpenCode's
|
|
4
|
+
conventions/discovery.
|
|
5
|
+
Audience: OpenCode, this repo only.
|
|
6
|
+
|
|
7
|
+
Distinct from:
|
|
8
|
+
- CLAUDE.md — same intent, but for Claude Code.
|
|
9
|
+
- dot_claude/CLAUDE.md — PERSONAL cross-project Claude Code preferences,
|
|
10
|
+
deployed to ~/.claude/CLAUDE.md by chezmoi.
|
|
11
|
+
|
|
12
|
+
Keep CLAUDE.md and OPENCODE.md in sync on repo-level conventions (layout,
|
|
13
|
+
naming, CI, testing). If they drift, CLAUDE.md is the source of truth.
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
# OPENCODE.md — AI Assistant Guidelines for Dotfiles Repository
|
|
17
|
+
|
|
18
|
+
## Chezmoi Source Directory Conventions
|
|
19
|
+
|
|
20
|
+
This is a **chezmoi-managed** dotfiles repository. Files here are *source templates*,
|
|
21
|
+
not the deployed config files. Understanding the naming conventions is critical.
|
|
22
|
+
|
|
23
|
+
### File Naming Rules
|
|
24
|
+
|
|
25
|
+
| Prefix/Suffix | Meaning |
|
|
26
|
+
|------------------|------------------------------------------------------|
|
|
27
|
+
| `dot_` | Deployed with a leading `.` (e.g., `dot_zshrc` -> `.zshrc`) |
|
|
28
|
+
| `executable_` | Deployed with `+x` permission |
|
|
29
|
+
| `private_` | Deployed with `0600` permissions |
|
|
30
|
+
| `.tmpl` | **Go template** — processed by chezmoi before deployment |
|
|
31
|
+
| `run_onchange_` | Script that runs when the target file changes |
|
|
32
|
+
| `encrypted_` | Age-encrypted file, decrypted at deploy time |
|
|
33
|
+
|
|
34
|
+
### Critical: Template vs Non-Template Files
|
|
35
|
+
|
|
36
|
+
Many shell config files exist **only** as `.tmpl` variants. When reading files:
|
|
37
|
+
|
|
38
|
+
- `dot_config/shell/00-core-paths.sh` does **NOT** exist
|
|
39
|
+
- `dot_config/shell/00-core-paths.sh.tmpl` **DOES** exist (this is the source)
|
|
40
|
+
|
|
41
|
+
**Rule**: If a `.sh` or `.zsh` file is not found, always try appending `.tmpl`.
|
|
42
|
+
|
|
43
|
+
Files that are templates (use Go template syntax like `{{ .variable }}`):
|
|
44
|
+
|
|
45
|
+
- `dot_config/shell/*.sh.tmpl` — all shell layer files
|
|
46
|
+
- `dot_config/zsh/dot_zshrc.tmpl` — main zsh config
|
|
47
|
+
- `dot_config/zsh/rc.d/*.tmpl` — zsh startup modules
|
|
48
|
+
- `dot_gitconfig.tmpl` — git configuration
|
|
49
|
+
- `private_dot_ssh/config.tmpl` — SSH configuration
|
|
50
|
+
- `dot_npmrc.tmpl` — npm configuration
|
|
51
|
+
- `private_dot_netrc.tmpl` — netrc credentials
|
|
52
|
+
|
|
53
|
+
Files that are **NOT** templates (plain files, no `.tmpl` suffix):
|
|
54
|
+
|
|
55
|
+
- `dot_config/shell/00-container-detect.sh` — plain shell script
|
|
56
|
+
- `dot_config/shell/90-theme-switch.sh` — plain shell script
|
|
57
|
+
- `dot_config/zsh/rc.d/00-alias-shims.zsh` — plain zsh
|
|
58
|
+
- `dot_config/zsh/rc.d/05-ssh-agent.zsh` — plain zsh
|
|
59
|
+
- Most files under `dot_config/nvim/`, `dot_config/starship.toml.tmpl`, etc.
|
|
60
|
+
|
|
61
|
+
### Reading Template Files
|
|
62
|
+
|
|
63
|
+
Template files contain Go template directives like:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
{{ if eq .chezmoi.os "darwin" }}
|
|
67
|
+
# macOS-specific config
|
|
68
|
+
{{ end }}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Data variables come from `.chezmoidata.toml` (profiles, features, theme, tools).
|
|
72
|
+
User-specific values (git identity, age keys) come from `~/.config/chezmoi/chezmoi.toml`.
|
|
73
|
+
|
|
74
|
+
### Repository Layout
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
.chezmoidata.toml # Feature flags, profiles, version
|
|
78
|
+
.chezmoitemplates/ # Reusable template partials (aliases, functions, paths)
|
|
79
|
+
dot_config/ # XDG configs (~/.config/*) — largest directory
|
|
80
|
+
zsh/ # Zsh configuration
|
|
81
|
+
dot_zshrc.tmpl # Main zsh orchestrator
|
|
82
|
+
rc.d/ # Startup modules (sourced in order)
|
|
83
|
+
shell/ # POSIX shell layers (paths, safety, aliases, functions)
|
|
84
|
+
nvim/ # Neovim configuration (Lua)
|
|
85
|
+
mise/ # mise version manager config
|
|
86
|
+
starship.toml.tmpl # Starship prompt config
|
|
87
|
+
atuin/ # Atuin shell history
|
|
88
|
+
bat/ # bat (cat replacement) config
|
|
89
|
+
ghostty/ # Ghostty terminal config
|
|
90
|
+
kitty/ # Kitty terminal config
|
|
91
|
+
alacritty/ # Alacritty terminal config
|
|
92
|
+
dot_local/bin/ # User scripts (~/.local/bin)
|
|
93
|
+
scripts/ # Repo-only scripts (tests, ops, security, diagnostics)
|
|
94
|
+
docs/ # Documentation (30+ files)
|
|
95
|
+
install.sh # Bootstrap installer
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Shell Startup Chain
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
~/.zshenv (dot_zshenv) → XDG vars, PATH, ZDOTDIR
|
|
102
|
+
~/.config/zsh/.zshrc (dot_zshrc.tmpl) → Main orchestrator
|
|
103
|
+
→ rc.d/00-alias-shims.zsh → Single-letter fallback commands
|
|
104
|
+
→ rc.d/05-ssh-agent.zsh → SSH agent + YubiKey
|
|
105
|
+
→ rc.d/10-env.zsh.tmpl → Environment variables
|
|
106
|
+
→ rc.d/20-zinit.zsh.tmpl → Plugin manager (deferred)
|
|
107
|
+
→ rc.d/30-options.zsh.tmpl → History, keybindings, completions
|
|
108
|
+
→ rc.d/40-bell.zsh.tmpl → Bell settings
|
|
109
|
+
→ rc.d/50-login-fortune.zsh.tmpl → Login greeting
|
|
110
|
+
→ shell/00-core-paths.sh.tmpl → Full PATH construction
|
|
111
|
+
→ shell/05-core-safety.sh.tmpl → Safety defaults
|
|
112
|
+
→ shell/90-ux-aliases.sh.tmpl → Core aliases (eager)
|
|
113
|
+
→ [deferred] mise, atuin, starship, zoxide, fzf
|
|
114
|
+
→ [lazy] shell/91-ux-aliases-lazy.sh.tmpl → Tool aliases
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Key Data Files
|
|
118
|
+
|
|
119
|
+
- `.chezmoidata.toml` — All configuration: profiles, feature flags, tool settings
|
|
120
|
+
- `dot_config/mise/config.toml` — mise tool versions (node, python, go, rust, etc.)
|
|
121
|
+
- `dot_config/starship.toml.tmpl` — Prompt configuration
|
|
122
|
+
|
|
123
|
+
### Testing
|
|
124
|
+
|
|
125
|
+
- Test framework: `tests/framework/`
|
|
126
|
+
- Unit tests: `tests/unit/`
|
|
127
|
+
- Tests execute bash source files directly — they do NOT use Go template syntax
|
package/docs/README.md
CHANGED
|
@@ -54,6 +54,8 @@ Quick jumps into the Manual:
|
|
|
54
54
|
- [Naming conventions](NAMING_CONVENTIONS.md)
|
|
55
55
|
- [Architecture](architecture/ARCHITECTURE.md)
|
|
56
56
|
- [Repository layout](architecture/REPO_LAYOUT.md)
|
|
57
|
+
- [AI cost optimization](architecture/AI_COST_OPTIMIZATION.md)
|
|
58
|
+
- [Release pipeline](operations/RELEASE_PIPELINE.md)
|
|
57
59
|
- [Architecture decisions](adr/README.md)
|
|
58
60
|
|
|
59
61
|
## Repository map
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Repository Structure
|
|
2
|
+
|
|
3
|
+
This document maps every top-level path in the repository to its
|
|
4
|
+
purpose. Skim it once and you should be able to answer:
|
|
5
|
+
|
|
6
|
+
- **Where is the `dot` CLI?** → `bin/dot` (the source-of-truth file). At runtime it lives at `~/.local/bin/dot`.
|
|
7
|
+
- **Why are there 20+ `dot_*` files at root?** → chezmoi convention: a `dot_X` source file deploys to `~/.X` on apply. Same for `executable_*` (gains `+x`), `private_*` (`0600`), `run_onchange_*` (re-runs when source changes).
|
|
8
|
+
- **What's the framework vs. the maintainer's personal config?** → Everything under `scripts/`, `install/`, `tools/`, `lib/`, and `defaults/.chezmoitemplates/` is framework code. Everything under `defaults/dot_config/`, `defaults/dot_warp/`, `defaults/private_dot_ssh/` is user-facing default configuration (chezmoi auto-rebases via `.chezmoiroot`).
|
|
9
|
+
|
|
10
|
+
The Debian/aws-cli-style root layout shipped in **v0.2.503**:
|
|
11
|
+
`bin/` (dispatcher), `lib/` (shared bash libs), `defaults/`
|
|
12
|
+
(all chezmoi-tracked source files, rebased via
|
|
13
|
+
`.chezmoiroot`). Repo root now hosts only project/CI/docs paths.
|
|
14
|
+
See `docs/operations/ROADMAP_V0_2_503.md` for the full history.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Top-level paths
|
|
19
|
+
|
|
20
|
+
| Path | Kind | Purpose |
|
|
21
|
+
|------|------|---------|
|
|
22
|
+
| **CLI + framework** | | |
|
|
23
|
+
| `dot_local/bin/` | framework | `executable_dot` (CLI entrypoint) and helper scripts. Deploys to `~/.local/bin/`. |
|
|
24
|
+
| `dot_local/share/` | framework | Man pages, zsh completions. Deploys to `~/.local/share/`. |
|
|
25
|
+
| `scripts/` | framework | Runtime-invoked scripts (`dot` CLI dispatch + specialised subtrees). See `scripts/README.md`. |
|
|
26
|
+
| `tools/` | repo-ops | Repo-only ops: CI helpers, release, maintenance, docs-generation. Not distributable. See `tools/README.md`. |
|
|
27
|
+
| `lib/dot/` | framework | Shared bash library sourced by every `dot` subcommand and the dispatcher. Reorganised here from `scripts/dot/lib/` per RFC Phase 1. See `lib/dot/README.md`. |
|
|
28
|
+
| `lib/` | framework | Library tree (`lib/dot/` + third-party `lib/wasm-tools/`). |
|
|
29
|
+
| `install/` | framework | Bootstrap logic + distribution-channel manifests (`homebrew/`, `scoop/`, `aur/`). See `install/README.md`. `install/provision/` runs on `chezmoi apply` via `run_onchange_*` triggers. |
|
|
30
|
+
| `install.sh` | framework | Top-level installer. SHA256-verified chezmoi fetch + initial apply. |
|
|
31
|
+
| `.chezmoitemplates/` | framework | Reusable Go-template partials (aliases, functions, paths). Sourced by `dot_*.tmpl` files. |
|
|
32
|
+
| **User-facing defaults** | | |
|
|
33
|
+
| `dot_bashrc`, `dot_zshrc`, `dot_zshenv`, `dot_zprofile`, `dot_profile`, `dot_vimrc`, etc. | defaults | Shell + editor rc files. Deploy to `~/.X`. |
|
|
34
|
+
| `dot_config/` | defaults | XDG config (`~/.config/*`). Largest tree — 80+ tool configs. |
|
|
35
|
+
| `dot_local/` (non-bin/share) | defaults | Per-user state files for tools (`dot_local/state/`, etc.). |
|
|
36
|
+
| `dot_cargo/`, `dot_etc/`, `dot_warp/` | defaults | Tool-specific roots (cargo, system etc, Warp terminal). |
|
|
37
|
+
| `private_dot_ssh/` | defaults | SSH config — chezmoi `private_` prefix forces 0600. Does NOT contain private keys. |
|
|
38
|
+
| `dot_claude/` | defaults | Claude Code per-user skills and config. |
|
|
39
|
+
| **Templates + data** | | |
|
|
40
|
+
| `templates/` | framework | Non-chezmoi templates (e.g. for `dot agents render`). |
|
|
41
|
+
| `.chezmoidata/` | data | Hardware presets (`macbook-t2`, `surface-pro`) read by templates. |
|
|
42
|
+
| `.chezmoidata.toml` | data | Feature flags + version. Single source-of-truth for `dotfiles_version`. |
|
|
43
|
+
| `.chezmoi.toml.tmpl` | framework | Per-host chezmoi config generated on first apply. |
|
|
44
|
+
| `.chezmoiignore` / `.chezmoiignore.tmpl` | framework | Tells chezmoi which paths NOT to deploy. |
|
|
45
|
+
| **Docs + tests** | | |
|
|
46
|
+
| `docs/` | docs | All documentation: `manual/` (user guide), `operations/` (audits, roadmaps), `reference/` (lookup tables), `security/`. |
|
|
47
|
+
| `tests/` | tests | Test suite: `framework/` (runner + assertions + mocks), `unit/`, `integration/`, `regression/`, `fuzz/`, `snapshots/`. |
|
|
48
|
+
| `examples/` | docs | Standalone examples (mise plugin, AI patterns, ops scripts). |
|
|
49
|
+
| **CI + release** | | |
|
|
50
|
+
| `.github/` | ci | GitHub Actions workflows + issue/PR templates + repo-level SECURITY/CODEOWNERS. |
|
|
51
|
+
| `.devcontainer/` | ci | Dev Container spec for reproducible contributor onboarding. |
|
|
52
|
+
| `Dockerfile.test` | ci | Container baseline for the CI test job. |
|
|
53
|
+
| `.pre-commit-config.yaml` → `config/pre-commit-config.yaml` | ci | Pre-commit hooks (shellcheck, shfmt, luacheck, gitleaks, typos, conventional-commits). |
|
|
54
|
+
| `flake.nix` / `flake.lock` | ci | Nix flake for reproducible dev shell. |
|
|
55
|
+
| `mise.toml` / `mise-versions.lock.json` | ci | Pinned tool versions (mise as the package manager). |
|
|
56
|
+
| **Misc + agents** | | |
|
|
57
|
+
| `AGENTS.md` | docs | Cross-harness AI agent context (the standard read by Codex/Cursor/etc.). |
|
|
58
|
+
| `.cursor/`, `.codex/`, `.windsurf/`, `.zed/`, `.roo/`, `.clinerules`, `.aider.conf.yml`, `.continuerc.json`, `.jules/`, `.gemini/` | agents | Per-harness AGENTS.md renderings. Generated by `dot agents render`. Each one points back at `CLAUDE.md` as canonical. |
|
|
59
|
+
| `CLAUDE.md` | docs | Project guidelines (the canonical source — `dot agents render` propagates it). |
|
|
60
|
+
| `CONTRIBUTING.md` | docs | Contributor guide (must stay at root for GitHub auto-discovery). |
|
|
61
|
+
| `docs/CONFIG_STRATEGY.md`, `docs/OPENCODE.md` | docs | Strategy + OpenCode-CLI guidance. Moved out of root for cleanliness in v0.2.503. |
|
|
62
|
+
| `README.md` / `CHANGELOG.md` / `LICENSE` | docs | Standard project files. |
|
|
63
|
+
| `Justfile.tmpl` / `Makefile` | dev | Task runners. |
|
|
64
|
+
| `dist/` | build | Build artefacts directory. |
|
|
65
|
+
| `coverage/`, `nightly-reports/` | build | CI output directories (gitignored). |
|
|
66
|
+
| `nix/` | build | Nix flake source. |
|
|
67
|
+
| `.well-known/` | misc | RFC-compliant `.well-known/` content (currently used for WKD GPG key publication). |
|
|
68
|
+
| `.version-sync-backup/` | misc | Backup directory used by `scripts/version-sync.sh` during release prep. |
|
|
69
|
+
|
|
70
|
+
## Chezmoi naming contract
|
|
71
|
+
|
|
72
|
+
| Prefix / suffix | Effect on deployment |
|
|
73
|
+
|---|---|
|
|
74
|
+
| `dot_foo` | Deploys as `.foo` (the `dot_` is consumed). |
|
|
75
|
+
| `executable_foo` | Adds `+x` permission. |
|
|
76
|
+
| `private_foo` | Sets `0600` permission. |
|
|
77
|
+
| `run_onchange_foo.sh` | Script re-executes when its hash changes. |
|
|
78
|
+
| `*.tmpl` | Processed as a Go template with chezmoi data before deployment. |
|
|
79
|
+
|
|
80
|
+
**Critical gotcha:** `executable_dot_foo` deploys as `.foo` (not
|
|
81
|
+
`dot_foo`). The `dot_` prefix is consumed by chezmoi after the
|
|
82
|
+
`executable_` prefix. Renaming a deployed file silently can leave
|
|
83
|
+
stale state in `~/.config/chezmoi/`.
|
|
84
|
+
|
|
85
|
+
## Where to make changes
|
|
86
|
+
|
|
87
|
+
| Goal | File(s) to edit |
|
|
88
|
+
|------|----------------|
|
|
89
|
+
| Add a new `dot <subcommand>` | `scripts/dot/commands/<subcommand>.sh` + dispatch in `bin/dot` + entry in `docs/manual/03-reference/01-dot-cli.md` + entry in `docs/manual/command-index.md`. |
|
|
90
|
+
| Change an alias | `.chezmoitemplates/aliases/<file>.aliases.sh` (sourced by `dot_zshrc.tmpl`, etc.). |
|
|
91
|
+
| Add a feature flag | `[features]` block in `.chezmoidata.toml` + doc entry in `docs/manual/03-reference/05-feature-flags.md`. |
|
|
92
|
+
| Add a new file deployed to `~/.X` | Create `dot_X` at root (or under a chezmoi-managed subtree). |
|
|
93
|
+
| Add a new chezmoi template | `dot_X.tmpl` at root, then use `{{ }}` for chezmoi data. |
|
|
94
|
+
| Add a CI workflow | `.github/workflows/<name>.yml`. |
|
|
95
|
+
| Add a test | `tests/unit/<domain>/test_<name>.sh` or `tests/integration/test_<name>.sh`. |
|
|
96
|
+
|
|
97
|
+
## See also
|
|
98
|
+
|
|
99
|
+
- `scripts/README.md` — map of the `scripts/` subtree.
|
|
100
|
+
- `CONTRIBUTING.md` — code-style + commit-message + signing requirements.
|
|
101
|
+
- `CLAUDE.md` — AI-assistant guidelines (the canonical source for `dot agents render`).
|
|
102
|
+
- `docs/operations/ROADMAP_V0_2_503.md` — current release scope, including the v0.2.503 reorganisation plan.
|
|
@@ -137,8 +137,8 @@ plugin system, bash bridge for aliases) await an actual user request.
|
|
|
137
137
|
|
|
138
138
|
## References
|
|
139
139
|
|
|
140
|
-
- [`dot_config/nushell/cached_eval.nu`](../../dot_config/nushell/cached_eval.nu) — the new module.
|
|
141
|
-
- [`dot_config/nushell/env.nu.tmpl`](../../dot_config/nushell/env.nu.tmpl) — adopter.
|
|
140
|
+
- [`dot_config/nushell/cached_eval.nu`](../../defaults/dot_config/nushell/cached_eval.nu) — the new module.
|
|
141
|
+
- [`dot_config/nushell/env.nu.tmpl`](../../defaults/dot_config/nushell/env.nu.tmpl) — adopter.
|
|
142
142
|
- ADR-007 (Multi-Shell Parity Strategy) — establishes the tier definitions.
|
|
143
143
|
- ADR-002 (Shell Performance Optimization Strategy) — establishes `_cached_eval` semantics this module ports.
|
|
144
144
|
- Issue [#880](https://github.com/sebastienrousseau/dotfiles/issues/880).
|