@sebastienrousseau/dotfiles 0.2.499 → 0.2.500
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +375 -0
- package/LICENSE +1283 -0
- package/README.md +284 -0
- package/docs/.vitepress/reports/localization-readability-audit.md +69 -0
- package/docs/AI.md +102 -0
- package/docs/COPYRIGHT +4 -3
- package/docs/NAMING_CONVENTIONS.md +95 -0
- package/docs/README.md +78 -0
- package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
- package/docs/adr/ADR-002-shell-performance.md +121 -0
- package/docs/adr/ADR-003-security-first.md +140 -0
- package/docs/adr/ADR-004-cli-architecture.md +157 -0
- package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
- package/docs/adr/ADR-006-shell-selection.md +115 -0
- package/docs/adr/ADR-007-multi-shell-parity.md +53 -0
- package/docs/adr/ADR-008-alias-system-architecture.md +85 -0
- package/docs/adr/README.md +32 -0
- package/docs/architecture/ARCHITECTURE.md +113 -0
- package/docs/architecture/INTEROP.md +36 -0
- package/docs/architecture/REPO_LAYOUT.md +237 -0
- package/docs/architecture/WALKTHROUGH.md +82 -0
- package/docs/architecture/fleet-deployment.md +73 -0
- package/docs/archive/EUXIS_2026_REVIEW.md +119 -0
- package/docs/archive/LEGACY_ROADMAP.md +142 -0
- package/docs/archive/MILESTONE_v0.2.493.md +43 -0
- package/docs/{PLAN.md → archive/PLAN.md} +4 -4
- package/docs/archive/REPO_AUDIT.md +23 -0
- package/docs/guides/INSTALL.md +140 -0
- package/docs/guides/NEOVIM_IDE_GUIDE.md +52 -0
- package/docs/guides/THEMING.md +222 -0
- package/docs/guides/TROUBLESHOOTING.md +148 -0
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +723 -0
- package/docs/index.md +39 -0
- package/docs/interop/A2A.md +32 -0
- package/docs/manual/00-introduction.md +85 -0
- package/docs/manual/01-concepts/01-architecture.md +134 -0
- package/docs/manual/01-concepts/02-trust-model.md +178 -0
- package/docs/manual/01-concepts/03-theme-engine.md +182 -0
- package/docs/manual/01-concepts/04-fleet.md +142 -0
- package/docs/manual/01-concepts/05-self-healing.md +197 -0
- package/docs/manual/02-tutorials/01-first-install.md +192 -0
- package/docs/manual/02-tutorials/02-add-wallpaper.md +211 -0
- package/docs/manual/02-tutorials/03-create-profile.md +238 -0
- package/docs/manual/02-tutorials/04-encrypt-secret.md +275 -0
- package/docs/manual/02-tutorials/05-deploy-fleet.md +279 -0
- package/docs/manual/03-reference/01-dot-cli.md +413 -0
- package/docs/manual/03-reference/02-config-files.md +259 -0
- package/docs/manual/03-reference/03-environment.md +120 -0
- package/docs/manual/03-reference/04-templates.md +184 -0
- package/docs/manual/03-reference/05-feature-flags.md +118 -0
- package/docs/manual/04-cookbook/01-recipes.md +281 -0
- package/docs/manual/04-cookbook/02-troubleshooting.md +319 -0
- package/docs/manual/04-cookbook/03-faq.md +167 -0
- package/docs/manual/05-appendices/A-platform-matrix.md +97 -0
- package/docs/manual/05-appendices/B-security-checklist.md +78 -0
- package/docs/manual/05-appendices/C-glossary.md +36 -0
- package/docs/manual/05-appendices/D-bibliography.md +54 -0
- package/docs/manual/05-appendices/E-license.md +34 -0
- package/docs/manual/_toc.yml +58 -0
- package/docs/manual/command-index.md +58 -0
- package/docs/manual/concept-index.md +164 -0
- package/docs/operations/ATTESTATION.md +39 -0
- package/docs/operations/MAINTENANCE.md +59 -0
- package/docs/operations/MIGRATION.md +101 -0
- package/docs/operations/OPERATIONS.md +164 -0
- package/docs/operations/RELIABILITY.md +116 -0
- package/docs/{ROADMAP.md → operations/ROADMAP.md} +22 -22
- package/docs/operations/TESTING.md +195 -0
- package/docs/operations/TRACEABILITY.md +31 -0
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +61 -0
- package/docs/operations/VERSION_SYNC.md +344 -0
- package/docs/reference/ALIASES.md +124 -0
- package/docs/reference/ALIASES_CHEATSHEET.md +28 -0
- package/docs/reference/ALIASES_DEPRECATIONS.md +9 -0
- package/docs/reference/FEATURES.md +62 -0
- package/docs/reference/FONTS.md +108 -0
- package/docs/reference/PROFILES.md +65 -0
- package/docs/reference/SCREENSHOTS.md +117 -0
- package/docs/reference/SCRIPTS.md +67 -0
- package/docs/reference/SUPPORT_MATRIX.md +74 -0
- package/docs/reference/THEMES.md +113 -0
- package/docs/reference/TOOLS.md +105 -0
- package/docs/reference/UTILS.md +151 -0
- package/docs/security/AI_ACT_COMPLIANCE.md +90 -0
- package/docs/security/AUTOMATION_SECRETS.md +22 -0
- package/docs/security/COMPLIANCE.md +453 -0
- package/docs/security/ENCRYPTION.md +52 -0
- package/docs/security/FMEA.md +155 -0
- package/docs/security/INCIDENT_RESPONSE.md +575 -0
- package/docs/security/KEYS.md +45 -0
- package/docs/security/KEY_ROTATION.md +219 -0
- package/docs/security/MCP_POLICY.md +69 -0
- package/docs/security/POLICY_RELEASES.md +33 -0
- package/docs/security/README.md +24 -0
- package/docs/security/SECRETS.md +146 -0
- package/docs/security/SECURITY.md +41 -0
- package/docs/security/SECURITY_CHECKLIST.md +44 -0
- package/docs/security/SOUP_REGISTER.md +32 -0
- package/docs/security/THREAT_MODEL.md +120 -0
- package/docs/security/VERIFICATION_VALIDATION.md +224 -0
- package/docs/themes/README.md +6 -0
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +26 -0
- package/docs/themes/hero-shot.svg +78 -0
- package/dot_config/.module-manifest.json +69 -0
- package/dot_config/ai/identity.md +20 -0
- package/dot_config/ai/patterns/architect.md +14 -0
- package/dot_config/ai/patterns/hardener.md +13 -0
- package/dot_config/ai/patterns/refactor.md +13 -0
- package/dot_config/aider/aider.conf.yml +32 -0
- package/dot_config/alacritty/alacritty.toml.tmpl +55 -0
- package/dot_config/ansible/ansible.cfg +11 -0
- package/dot_config/atuin/config.toml +40 -0
- package/dot_config/bat/config +23 -0
- package/dot_config/brave-flags.conf.tmpl +7 -0
- package/dot_config/btop/btop.conf +16 -0
- package/dot_config/btop/themes/tokyonight.theme +34 -0
- package/dot_config/bun/bunfig.toml.tmpl +33 -0
- package/dot_config/claude/mcp_servers.json +20 -0
- package/dot_config/containers/containers.conf +14 -0
- package/dot_config/curl/dot_curlrc +18 -0
- package/dot_config/dlv/config.yml +39 -0
- package/dot_config/docker/config.json +15 -0
- package/dot_config/dotfiles/agent-card.json +29 -0
- package/dot_config/dotfiles/agent-profiles.json +92 -0
- package/dot_config/dotfiles/boot/README.md +11 -0
- package/dot_config/dotfiles/grub/README.md +11 -0
- package/dot_config/dotfiles/lock/README.md +11 -0
- package/dot_config/dotfiles/mcp-lock.json +33 -0
- package/dot_config/dotfiles/mcp-policy.json +52 -0
- package/dot_config/dotfiles/mcp-registry.json +47 -0
- package/dot_config/dotfiles/model-registry.json +20 -0
- package/dot_config/dotfiles/policy-bundles.json +38 -0
- package/dot_config/dotfiles/prompt-registry.json +16 -0
- package/dot_config/dotfiles/versions.env +18 -0
- package/dot_config/duf/duf.conf +6 -0
- package/dot_config/duti/defaults.duti +5 -0
- package/dot_config/emoji/emoji.txt +34 -0
- package/dot_config/environment.d/50-ssh-agent.conf +2 -0
- package/dot_config/environment.d/90-wayland.conf +19 -0
- package/dot_config/fastfetch/config.jsonc +28 -0
- package/dot_config/firefox/user.js.tmpl +58 -0
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +9 -0
- package/dot_config/fish/completions/dot.fish.tmpl +115 -0
- package/dot_config/fish/conf.d/000-perf-cache.fish +56 -0
- package/dot_config/fish/conf.d/aliases.fish.tmpl +77 -0
- package/dot_config/fish/conf.d/env.fish.tmpl +48 -0
- package/dot_config/fish/conf.d/functions.fish.tmpl +22 -0
- package/dot_config/fish/conf.d/init.fish.tmpl +151 -0
- package/dot_config/fish/config.fish.tmpl +44 -0
- package/dot_config/fish/fish_plugins +1 -0
- package/dot_config/fish/functions/_.fish +3 -0
- package/dot_config/fish/functions/_cached_eval.fish +58 -0
- package/dot_config/fish/functions/als.fish +46 -0
- package/dot_config/fish/functions/bg-upgrade.fish +7 -0
- package/dot_config/fish/functions/c.fish +3 -0
- package/dot_config/fish/functions/cat.fish +9 -0
- package/dot_config/fish/functions/d.fish +7 -0
- package/dot_config/fish/functions/dot.fish +34 -0
- package/dot_config/fish/functions/h.fish +3 -0
- package/dot_config/fish/functions/l.fish +7 -0
- package/dot_config/fish/functions/la.fish +7 -0
- package/dot_config/fish/functions/ll.fish +7 -0
- package/dot_config/fish/functions/log_error.fish +13 -0
- package/dot_config/fish/functions/log_info.fish +13 -0
- package/dot_config/fish/functions/lr.fish +7 -0
- package/dot_config/fish/functions/lra.fish +7 -0
- package/dot_config/fish/functions/ls.fish +7 -0
- package/dot_config/fish/functions/lt.fish +7 -0
- package/dot_config/fish/functions/lta.fish +7 -0
- package/dot_config/fish/functions/notify-run.fish +11 -0
- package/dot_config/fish/functions/q.fish +3 -0
- package/dot_config/fish/functions/silent-run.fish +7 -0
- package/dot_config/fish/functions/yy.fish +8 -0
- package/dot_config/flatpak/flatpak.list +4 -0
- package/dot_config/fontconfig/fonts.conf.tmpl +57 -0
- package/dot_config/foot/foot.ini.tmpl +33 -0
- package/dot_config/fuzzel/fuzzel.ini.tmpl +18 -0
- package/dot_config/fzf/fzf.zsh +48 -0
- package/dot_config/gem/gemrc +9 -0
- package/dot_config/gh/config.yml +12 -0
- package/dot_config/ghostty/config.tmpl +165 -0
- package/dot_config/git/allowed_signers.tmpl +18 -0
- package/dot_config/git/attributes +12 -0
- package/dot_config/git/commit-template +10 -0
- package/dot_config/git/ignore +27 -0
- package/dot_config/gnupg/gpg-agent.conf +11 -0
- package/dot_config/go/golangci.yml +118 -0
- package/dot_config/go/gopls.json +30 -0
- package/dot_config/goose/config.yaml +29 -0
- package/dot_config/gtk-3.0/gtk.css.tmpl +184 -0
- package/dot_config/gtk-3.0/settings.ini.tmpl +27 -0
- package/dot_config/gtk-4.0/gtk.css.tmpl +252 -0
- package/dot_config/gtk-4.0/settings.ini.tmpl +18 -0
- package/dot_config/htop/htoprc +20 -0
- package/dot_config/inputrc +2 -0
- package/dot_config/ipython/profile_default/ipython_config.py +19 -0
- package/dot_config/just/justfile +122 -0
- package/dot_config/k9s/config.yaml +65 -0
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
- package/dot_config/kanshi/config.tmpl +22 -0
- package/dot_config/karabiner/karabiner.json +14 -0
- package/dot_config/kitty/kitty.conf.tmpl +53 -0
- package/dot_config/lazydocker/config.yml +186 -0
- package/dot_config/lazygit/config.yml +35 -0
- package/dot_config/mako/config +47 -0
- package/dot_config/mas/masapps.txt +5 -0
- package/dot_config/micro/settings.json +3 -0
- package/dot_config/mimeapps.list +77 -0
- package/dot_config/minikube/config.json +13 -0
- package/dot_config/mise/config.toml +99 -0
- package/dot_config/mongosh/mongoshrc.js +68 -0
- package/dot_config/mpv/input.conf +47 -0
- package/dot_config/mpv/mpv.conf +47 -0
- package/dot_config/mycli/myclirc +67 -0
- package/dot_config/nano/nanorc +28 -0
- package/dot_config/ncdu/config +12 -0
- package/dot_config/niri/config.kdl.tmpl +327 -0
- package/dot_config/nushell/aliases.nu +18 -0
- package/dot_config/nushell/completions.nu.tmpl +52 -0
- package/dot_config/nushell/config.nu.tmpl +86 -0
- package/dot_config/nushell/env.nu.tmpl +94 -0
- package/dot_config/nushell/functions.nu.tmpl +17 -0
- package/dot_config/nvim/init.lua +18 -0
- package/dot_config/nvim/lazy-lock.json +58 -0
- package/dot_config/nvim/lua/config/autocmds.lua +107 -0
- package/dot_config/nvim/lua/config/keymaps.lua +92 -0
- package/dot_config/nvim/lua/config/lazy.lua +44 -0
- package/dot_config/nvim/lua/config/options.lua +49 -0
- package/dot_config/nvim/lua/plugins/ai.lua +75 -0
- package/dot_config/nvim/lua/plugins/coding.lua +216 -0
- package/dot_config/nvim/lua/plugins/completion.lua +60 -0
- package/dot_config/nvim/lua/plugins/dap.lua +412 -0
- package/dot_config/nvim/lua/plugins/editor.lua +55 -0
- package/dot_config/nvim/lua/plugins/git.lua +10 -0
- package/dot_config/nvim/lua/plugins/lsp.lua +156 -0
- package/dot_config/nvim/lua/plugins/markdown.lua +18 -0
- package/dot_config/nvim/lua/plugins/rust.lua +34 -0
- package/dot_config/nvim/lua/plugins/sessions.lua +33 -0
- package/dot_config/nvim/lua/plugins/ui.lua +509 -0
- package/dot_config/paru/paru.conf +10 -0
- package/dot_config/pip/pip.conf.tmpl +32 -0
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +81 -0
- package/dot_config/pueue/pueue.yml +34 -0
- package/dot_config/pypoetry/config.toml +6 -0
- package/dot_config/pyrightconfig.json +5 -0
- package/dot_config/raycast/README.md +13 -0
- package/dot_config/redis/redisclirc +41 -0
- package/dot_config/ripgrep/ripgreprc +21 -0
- package/dot_config/shell/00-core-paths.sh.tmpl +133 -0
- package/dot_config/shell/05-core-safety.sh +47 -0
- package/dot_config/shell/10-secrets.sh +40 -0
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +16 -0
- package/dot_config/shell/40-ls-colors.sh +48 -0
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +10 -0
- package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +64 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +120 -0
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +54 -0
- package/dot_config/shell/Brewfile +207 -0
- package/dot_config/shell/Brewfile.cask +92 -0
- package/dot_config/shell/Brewfile.cli +127 -0
- package/dot_config/shell/README.md +267 -0
- package/dot_config/shell/als_data.txt.tmpl +65 -0
- package/dot_config/shell/custom/auto_ls.zsh +20 -0
- package/dot_config/shell/custom/context_suggest.zsh +68 -0
- package/dot_config/shell/custom/error_analysis.zsh +45 -0
- package/dot_config/sops/dot_sops.yaml +23 -0
- package/dot_config/starship.toml.tmpl +202 -0
- package/dot_config/swaylock/config +43 -0
- package/dot_config/systemd/user/dotfiles-maintenance.service +8 -0
- package/dot_config/systemd/user/dotfiles-maintenance.timer +11 -0
- package/dot_config/systemd/user/pueued.service +12 -0
- package/dot_config/systemd/user/ssh-agent.service +12 -0
- package/dot_config/task/Taskfile.yml +86 -0
- package/dot_config/tflint/tflint.hcl +9 -0
- package/dot_config/tmux/tmux.conf.tmpl +223 -0
- package/dot_config/topgrade.toml.tmpl +54 -0
- package/dot_config/user-dirs.dirs +9 -0
- package/dot_config/vscode/extensions.txt +11 -0
- package/dot_config/vscode/settings.json.tmpl +82 -0
- package/dot_config/waybar/config.jsonc.tmpl +90 -0
- package/dot_config/waybar/style.css.tmpl +211 -0
- package/dot_config/wezterm/wezterm.lua.tmpl +64 -0
- package/dot_config/wget/wgetrc +12 -0
- package/dot_config/xdg-desktop-portal/niri-portals.conf +5 -0
- package/dot_config/yarn/yarnrc.yml +36 -0
- package/dot_config/yazi/keymap.toml +67 -0
- package/dot_config/yazi/theme.toml +102 -0
- package/dot_config/yazi/yazi.toml +40 -0
- package/dot_config/zathura/zathurarc +52 -0
- package/dot_config/zellij/config.kdl.tmpl +79 -0
- package/dot_config/zsh/dot_zprofile +7 -0
- package/dot_config/zsh/dot_zshenv +5 -0
- package/dot_config/zsh/dot_zshrc.tmpl +498 -0
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +77 -0
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +18 -0
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
- package/dot_config/zsh/rc.d/20-zinit.zsh +65 -0
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +194 -0
- package/dot_config/zsh/rc.d/40-bell.zsh +20 -0
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +9 -0
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +32 -0
- package/dot_local/bin/__pycache__/executable_dot-load-benchmark-ptycpython-312.pyc +0 -0
- package/dot_local/bin/executable_ai-update +195 -0
- package/dot_local/bin/executable_ai_core +152 -0
- package/dot_local/bin/executable_antigravity +11 -0
- package/dot_local/bin/executable_b64 +84 -0
- package/dot_local/bin/executable_bm +77 -0
- package/dot_local/bin/executable_cb +39 -0
- package/dot_local/bin/executable_dot +589 -0
- package/dot_local/bin/executable_dot-ai +36 -0
- package/dot_local/bin/executable_dot-bootstrap +77 -0
- package/dot_local/bin/executable_dot-launch-or-focus +52 -0
- package/dot_local/bin/executable_dot-load-benchmark +31 -0
- package/dot_local/bin/executable_dot-load-benchmark-pty +77 -0
- package/dot_local/bin/executable_dot-theme-sync +952 -0
- package/dot_local/bin/executable_dot_completion +57 -0
- package/dot_local/bin/executable_dtags +28 -0
- package/dot_local/bin/executable_epoch +67 -0
- package/dot_local/bin/executable_extract +41 -0
- package/dot_local/bin/executable_gbd +52 -0
- package/dot_local/bin/executable_gd +42 -0
- package/dot_local/bin/executable_git-ai-commit +175 -0
- package/dot_local/bin/executable_git-ai-diff +169 -0
- package/dot_local/bin/executable_gl +101 -0
- package/dot_local/bin/executable_hash +161 -0
- package/dot_local/bin/executable_hashsum +160 -0
- package/dot_local/bin/executable_hex +115 -0
- package/dot_local/bin/executable_jsonv +78 -0
- package/dot_local/bin/executable_jwt +94 -0
- package/dot_local/bin/executable_kill-port +75 -0
- package/dot_local/bin/executable_lorem +118 -0
- package/dot_local/bin/executable_mkscript +35 -0
- package/dot_local/bin/executable_monitor +56 -0
- package/dot_local/bin/executable_myip +51 -0
- package/dot_local/bin/executable_notify +22 -0
- package/dot_local/bin/executable_open +36 -0
- package/dot_local/bin/executable_pw +27 -0
- package/dot_local/bin/executable_rec-start +46 -0
- package/dot_local/bin/executable_rec-stop +35 -0
- package/dot_local/bin/executable_regex +132 -0
- package/dot_local/bin/executable_start-niri +8 -0
- package/dot_local/bin/executable_tmux-sessionizer +314 -0
- package/dot_local/bin/executable_tour +175 -0
- package/dot_local/bin/executable_up +21 -0
- package/dot_local/bin/executable_update +142 -0
- package/dot_local/bin/executable_uuid +87 -0
- package/dot_local/bin/executable_win +32 -0
- package/dot_local/bin/executable_yamlv +57 -0
- package/dot_local/share/bash-completion/completions/dot +72 -0
- 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 +149 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +64 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +18 -0
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +13 -0
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +6 -0
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +283 -0
- package/install.sh +342 -0
- package/package.json +1 -1
- package/scripts/ci/check-copyright-headers.sh +96 -0
- package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
- package/scripts/ci/install-chezmoi-verified.sh +64 -0
- package/scripts/ci/validate-ci-config.sh +224 -0
- package/scripts/demo/record.sh +42 -0
- package/scripts/diagnostics/a2a-conformance.sh +162 -0
- package/scripts/diagnostics/alias-governance.sh +137 -0
- package/scripts/diagnostics/aliases-cheatsheet.sh +73 -0
- package/scripts/diagnostics/aliases-manifest.sh +31 -0
- package/scripts/diagnostics/benchmark.sh +381 -0
- package/scripts/diagnostics/conflicts.sh +72 -0
- package/scripts/diagnostics/doctor-unified.sh +38 -0
- package/scripts/diagnostics/doctor.sh +541 -0
- package/scripts/diagnostics/drift-dashboard.sh +37 -0
- package/scripts/diagnostics/health.sh +597 -0
- package/scripts/diagnostics/history-analysis.sh +85 -0
- package/scripts/diagnostics/mcp-doctor.sh +575 -0
- package/scripts/diagnostics/perf.sh +225 -0
- package/scripts/diagnostics/scorecard.sh +118 -0
- package/scripts/diagnostics/secret-governance.sh +58 -0
- package/scripts/diagnostics/security-score.sh +438 -0
- package/scripts/diagnostics/smoke-test.sh +87 -0
- package/scripts/diagnostics/snapshot.sh +89 -0
- package/scripts/diagnostics/verify.sh +107 -0
- package/scripts/{verify_state.sh → diagnostics/verify_state.sh} +22 -22
- package/scripts/diagnostics/version-locks.sh +79 -0
- package/scripts/diagnostics/workstation-attestation.sh +181 -0
- package/scripts/docs/build-manual.sh +883 -0
- package/scripts/docs/check-manual.sh +213 -0
- package/scripts/dot/commands/agent.sh +465 -0
- package/scripts/dot/commands/ai.sh +416 -0
- package/scripts/dot/commands/aliases.sh +250 -0
- package/scripts/dot/commands/appearance.sh +80 -0
- package/scripts/dot/commands/core.sh +185 -0
- package/scripts/dot/commands/diagnostics.sh +229 -0
- package/scripts/dot/commands/fleet.sh +399 -0
- package/scripts/dot/commands/lint.sh +177 -0
- package/scripts/dot/commands/manual.sh +168 -0
- package/scripts/dot/commands/meta.sh +248 -0
- package/scripts/dot/commands/patterns.sh +54 -0
- package/scripts/dot/commands/restore.sh +231 -0
- package/scripts/dot/commands/secrets.sh +223 -0
- package/scripts/dot/commands/security.sh +76 -0
- package/scripts/dot/commands/tools.sh +469 -0
- package/scripts/dot/data/alias-deprecations.tsv +2 -0
- package/scripts/dot/lib/bento.sh +49 -0
- package/scripts/dot/lib/log.sh +194 -0
- package/scripts/dot/lib/platform.sh +98 -0
- package/scripts/dot/lib/ui.sh +507 -0
- package/scripts/dot/lib/utils.sh +372 -0
- package/scripts/fonts/install-nerd-fonts.sh +68 -0
- package/scripts/fonts/patch-fonts.sh +35 -0
- package/scripts/git-hooks/install.sh +11 -0
- package/scripts/git-hooks/pre-commit +12 -0
- package/scripts/git-hooks/pre-commit-audit.sh +145 -0
- package/scripts/git-hooks/pre-push +29 -0
- package/scripts/git-hooks/prepare-commit-msg +29 -0
- package/scripts/lib/secrets_provider.sh +158 -0
- package/scripts/maintenance/check-updates.sh +131 -0
- package/scripts/ops/ai-setup.sh +55 -0
- package/scripts/ops/bundle.sh +77 -0
- package/scripts/ops/chaos.sh +49 -0
- package/scripts/ops/chezmoi-apply.sh +270 -0
- package/scripts/ops/chezmoi-diff.sh +15 -0
- package/scripts/ops/chezmoi-remove.sh +45 -0
- package/scripts/ops/chezmoi-update.sh +48 -0
- package/scripts/ops/heal-chezmoi.sh +51 -0
- package/scripts/ops/heal-system.sh +128 -0
- package/scripts/ops/heal-tools.sh +340 -0
- package/scripts/ops/heal.sh +222 -0
- package/scripts/ops/post-apply-repair.sh +106 -0
- package/scripts/ops/prewarm.sh +127 -0
- package/scripts/ops/release.sh +252 -0
- package/scripts/ops/rollback.sh +589 -0
- package/scripts/ops/setup.sh +137 -0
- package/scripts/ops/teleport.sh +33 -0
- package/scripts/qa/coverage-baseline.sh +60 -0
- package/scripts/qa/docs-coverage.sh +111 -0
- package/scripts/qa/reliability-audit.sh +138 -0
- package/scripts/qa/traceability-coverage.sh +116 -0
- package/scripts/qa/validate-examples.sh +26 -0
- package/scripts/qa/wsl-contract.sh +11 -0
- package/scripts/release/package-policy-bundles.sh +125 -0
- package/scripts/secrets/age-init.sh +70 -0
- package/scripts/secrets/create-secrets-file.sh +45 -0
- package/scripts/secrets/encrypt-ssh-key.sh +43 -0
- package/scripts/security/backup.sh +57 -0
- package/scripts/security/dns-doh.sh +51 -0
- package/scripts/security/encryption-check.sh +54 -0
- package/scripts/security/enforce-policies.sh +334 -0
- package/scripts/security/firewall.sh +90 -0
- package/scripts/security/lock-configs.sh +57 -0
- package/scripts/security/lock-screen.sh +55 -0
- package/scripts/security/manage-secrets.sh +428 -0
- package/scripts/security/ssh-cert.sh +203 -0
- package/scripts/security/telemetry-kill.sh +50 -0
- package/scripts/security/usb-safety.sh +51 -0
- package/scripts/theme/apply-gnome-theme.sh +328 -0
- package/scripts/theme/extract-theme.py +677 -0
- package/scripts/theme/install-boot-logo.sh +62 -0
- package/scripts/theme/install-catppuccin-themes.sh +370 -0
- package/scripts/theme/install-cursors.sh +25 -0
- package/scripts/theme/install-file-icons.sh +26 -0
- package/scripts/theme/install-grub-theme.sh +61 -0
- package/scripts/theme/install-lock-icon.sh +30 -0
- package/scripts/theme/merge-wallpaper.sh +141 -0
- package/scripts/theme/rebuild-themes.sh +309 -0
- package/scripts/theme/switch.sh +421 -0
- package/scripts/theme/wallpaper-rotate.sh +136 -0
- package/scripts/theme/wallpaper-sync.sh +397 -0
- package/scripts/tools/cmatrix.sh +21 -0
- package/scripts/{detect-collisions.py → tools/detect-collisions.py} +2 -2
- package/scripts/tools/emoji-picker.sh +48 -0
- package/scripts/tools/figlet-banner.sh +18 -0
- package/scripts/tools/log-rotate.sh +30 -0
- package/scripts/tools/lolcat-wrap.sh +19 -0
- package/scripts/tools/pipes.sh +48 -0
- package/scripts/tuning/linux.sh +185 -0
- package/scripts/tuning/macos.sh +55 -0
- package/scripts/uninstall.sh +85 -0
- package/scripts/version-sync.sh +487 -0
- package/templates/chezmoi-data/geekom-a9.toml.example +21 -0
- package/templates/chezmoi-data/mac-m1.toml.example +16 -0
- package/templates/chezmoi-data/mac-t2-linux.toml.example +21 -0
- package/templates/chezmoi-data/surface-pro-7p.toml.example +21 -0
- package/templates/projects/go/.github/workflows/ci.yml +31 -0
- package/templates/projects/go/README.md +4 -0
- package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +1 -0
- package/templates/projects/go/go.sum +0 -0
- package/templates/projects/molecule/README.md +7 -0
- package/templates/projects/molecule/converge.yml +7 -0
- package/templates/projects/molecule/molecule.yml +16 -0
- package/templates/projects/node/.github/workflows/ci.yml +30 -0
- package/templates/projects/node/README.md +4 -0
- package/templates/projects/node/package-lock.json +12 -0
- package/templates/projects/node/src/index.js +1 -0
- package/templates/projects/packer/README.md +15 -0
- package/templates/projects/packer/main.pkr.hcl +15 -0
- package/templates/projects/python/.github/workflows/ci.yml +34 -0
- package/templates/projects/python/README.md +4 -0
- package/templates/projects/python/pyproject.toml +15 -0
- package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
- package/templates/projects/python/tests/test_basic.py +1 -0
- package/docs/ARCHITECTURE.md +0 -62
- package/docs/COMPLIANCE.md +0 -47
- package/docs/OPERATIONS.md +0 -103
- package/docs/PR_DESCRIPTION.md +0 -150
- package/docs/ROADMAP_legacy.md +0 -556
- package/docs/SECURITY_CHECKLIST.md +0 -25
- package/docs/TASK.md +0 -99
- package/docs/WALKTHROUGH.md +0 -46
- package/scripts/backup.sh +0 -142
- package/scripts/banner.sh +0 -20
- package/scripts/benchmark.sh +0 -20
- package/scripts/build.sh +0 -41
- package/scripts/clean.sh +0 -31
- package/scripts/compile.sh +0 -54
- package/scripts/copy.sh +0 -108
- package/scripts/doctor.sh +0 -79
- package/scripts/dotfiles.sh +0 -63
- package/scripts/download.sh +0 -35
- package/scripts/help.sh +0 -57
- package/scripts/lock-configs.sh +0 -57
- package/scripts/package.sh +0 -46
- package/scripts/ssh.sh +0 -55
- package/scripts/teleport.sh +0 -23
- package/scripts/test-aliases.sh +0 -25
- package/scripts/test_smoke.sh +0 -88
- package/scripts/unpack.sh +0 -28
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Threat Model
|
|
2
|
+
|
|
3
|
+
Security analysis of the dotfiles distribution. Covers trust boundaries, threat actors, attack surfaces, and mitigations.
|
|
4
|
+
|
|
5
|
+
## Trust Boundary
|
|
6
|
+
|
|
7
|
+
The primary trust boundary is the **local machine**. Dotfiles are deployed to and executed on the user's own system. All configuration files, scripts, and templates run with the user's privileges.
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
┌─────────────────────────────────────────────────┐
|
|
11
|
+
│ Local Machine (trusted zone) │
|
|
12
|
+
│ ┌─────────────────┐ ┌──────────────────────┐ │
|
|
13
|
+
│ │ ~/.dotfiles/ │ │ ~/.config/ (deployed)│ │
|
|
14
|
+
│ │ (source repo) │──│ Shell configs, nvim │ │
|
|
15
|
+
│ └─────────────────┘ └──────────────────────┘ │
|
|
16
|
+
│ │
|
|
17
|
+
│ ┌─────────────────┐ ┌──────────────────────┐ │
|
|
18
|
+
│ │ ~/.local/bin/ │ │ ~/.cache/shell/ │ │
|
|
19
|
+
│ │ (user scripts) │ │ (cached eval output) │ │
|
|
20
|
+
│ └─────────────────┘ └──────────────────────┘ │
|
|
21
|
+
└─────────────────────────────────────────────────┘
|
|
22
|
+
│
|
|
23
|
+
─────┼──────── Trust boundary ────────
|
|
24
|
+
│
|
|
25
|
+
┌─────────────────────────────────────────────────┐
|
|
26
|
+
│ External (untrusted zone) │
|
|
27
|
+
│ GitHub (repo hosting), Homebrew, Nix, │
|
|
28
|
+
│ Zinit plugins, Neovim plugins, npm, pip │
|
|
29
|
+
└─────────────────────────────────────────────────┘
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Threat Actors
|
|
33
|
+
|
|
34
|
+
| Actor | Motivation | Capability |
|
|
35
|
+
|-------|-----------|------------|
|
|
36
|
+
| Supply chain attacker | Inject malicious code via dependency | Compromise upstream packages (Homebrew, npm, Zinit plugins) |
|
|
37
|
+
| Secrets harvester | Steal API keys, SSH keys, tokens | Scrape git history, shell history, env vars |
|
|
38
|
+
| Privilege escalation | Gain root access | Exploit `sudo` aliases, writable scripts in PATH |
|
|
39
|
+
| Network attacker | Intercept credentials | MITM on install scripts, curl-pipe-bash |
|
|
40
|
+
|
|
41
|
+
## Attack Surfaces
|
|
42
|
+
|
|
43
|
+
### 1. Shell Startup Scripts
|
|
44
|
+
|
|
45
|
+
**Risk:** Malicious code in sourced files executes with user privileges on every shell start.
|
|
46
|
+
|
|
47
|
+
**Mitigations:**
|
|
48
|
+
- All shell scripts pass `shellcheck --severity=error`
|
|
49
|
+
- `set -euo pipefail` enforced in all operational scripts
|
|
50
|
+
- `eval` usage hardened with process substitution (`. /dev/stdin`)
|
|
51
|
+
- Input validation on dynamic function generation
|
|
52
|
+
- `DOTFILES_ULTRA_FAST=1` bypasses all non-core sourcing
|
|
53
|
+
|
|
54
|
+
### 2. Secrets Exposure
|
|
55
|
+
|
|
56
|
+
**Risk:** API keys, tokens, and SSH keys leaked via git history, shell history, or environment.
|
|
57
|
+
|
|
58
|
+
**Mitigations:**
|
|
59
|
+
- [Gitleaks](https://github.com/gitleaks/gitleaks) pre-commit hook blocks secrets in commits
|
|
60
|
+
- Atuin `history_filter` excludes sensitive patterns
|
|
61
|
+
- Age encryption for local secret storage
|
|
62
|
+
- `dot secrets set` uses secure prompts (no shell history)
|
|
63
|
+
- `.gitignore` excludes `key.txt`, `.env`, credential files
|
|
64
|
+
|
|
65
|
+
### 3. Supply Chain Dependencies
|
|
66
|
+
|
|
67
|
+
**Risk:** Compromised upstream packages injected into the toolchain.
|
|
68
|
+
|
|
69
|
+
**Mitigations:**
|
|
70
|
+
- Nix Flakes provide reproducible, pinned dependencies
|
|
71
|
+
- Zinit plugin versions pinned (`ver"0.8.0"`)
|
|
72
|
+
- Neovim plugin versions locked via `lazy-lock.json`
|
|
73
|
+
- `install.sh` uses HTTPS for all downloads
|
|
74
|
+
- Homebrew formula integrity via bottle checksums
|
|
75
|
+
|
|
76
|
+
### 4. Path Manipulation
|
|
77
|
+
|
|
78
|
+
**Risk:** Attacker places malicious binary in a PATH directory that shadows legitimate tools.
|
|
79
|
+
|
|
80
|
+
**Mitigations:**
|
|
81
|
+
- PATH construction is deterministic (template-generated)
|
|
82
|
+
- `~/.local/bin` is user-controlled and checked for writability
|
|
83
|
+
- No world-writable directories in PATH
|
|
84
|
+
- `prependpath` function validates directory existence
|
|
85
|
+
|
|
86
|
+
### 5. Template Injection
|
|
87
|
+
|
|
88
|
+
**Risk:** Chezmoi template variables could inject shell code if not properly quoted.
|
|
89
|
+
|
|
90
|
+
**Mitigations:**
|
|
91
|
+
- Template variables come from `.chezmoidata.toml` (user-controlled)
|
|
92
|
+
- No external/network data used in templates
|
|
93
|
+
- Template validation via `chezmoi apply --dry-run` in CI
|
|
94
|
+
|
|
95
|
+
### 6. Cached Eval Files
|
|
96
|
+
|
|
97
|
+
**Risk:** Stale or tampered cache files in `~/.cache/shell/` sourced at startup.
|
|
98
|
+
|
|
99
|
+
**Mitigations:**
|
|
100
|
+
- `_cached_eval` validates cache against binary mtime
|
|
101
|
+
- Cache files are user-owned (0644)
|
|
102
|
+
- Cache directory is under `$XDG_CACHE_HOME` (user-controlled)
|
|
103
|
+
- Cache can be cleared with `rm -rf ~/.cache/shell/`
|
|
104
|
+
|
|
105
|
+
## Residual Risks
|
|
106
|
+
|
|
107
|
+
| Risk | Likelihood | Impact | Status |
|
|
108
|
+
|------|-----------|--------|--------|
|
|
109
|
+
| Zinit plugin compromise | Low | High | Mitigated by version pinning |
|
|
110
|
+
| Shell history leak | Medium | Medium | Mitigated by Atuin filter |
|
|
111
|
+
| Stale Nix closure | Low | Low | Accepted (manual `nix flake update`) |
|
|
112
|
+
| macOS Keychain access | Low | Medium | Accepted (OS-level protection) |
|
|
113
|
+
|
|
114
|
+
## Recommendations
|
|
115
|
+
|
|
116
|
+
1. Run `gitleaks detect` before every push (pre-commit hook enforced)
|
|
117
|
+
2. Rotate secrets on a 90-day schedule
|
|
118
|
+
3. Audit `lazy-lock.json` diffs when updating Neovim plugins
|
|
119
|
+
4. Pin Homebrew versions for security-critical tools
|
|
120
|
+
5. Use `DOTFILES_ULTRA_FAST=1` in CI to minimize attack surface
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# Verification and Validation Report
|
|
2
|
+
|
|
3
|
+
## Document Control
|
|
4
|
+
|
|
5
|
+
| Field | Value |
|
|
6
|
+
|-------|-------|
|
|
7
|
+
| Document ID | VV-DOT-001 |
|
|
8
|
+
| Version | 0.2.500 |
|
|
9
|
+
| Date | 2026-03-20 |
|
|
10
|
+
| Author | Repository Maintainer |
|
|
11
|
+
| Status | Active |
|
|
12
|
+
| Classification | Internal |
|
|
13
|
+
| Standard | ISO 13485:2016 Sections 7.3.6 / 7.3.7 (adapted) |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Purpose
|
|
18
|
+
|
|
19
|
+
This document constitutes the formal Verification and Validation (V&V) report for the chezmoi-managed dotfiles repository, adapted from ISO 13485:2016 Sections 7.3.6 (Design and Development Verification) and 7.3.7 (Design and Development Validation) for infrastructure-as-code.
|
|
20
|
+
|
|
21
|
+
**Verification** confirms that each design output meets its corresponding design input requirement through inspection, analysis, and testing. **Validation** confirms that the deployed system satisfies its intended use under representative operating conditions (Linux, macOS, WSL).
|
|
22
|
+
|
|
23
|
+
All verification activities are executed through automated CI pipelines, pre-commit hooks, and the repository test framework. Evidence is retained in CI logs, test output, and this document.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Verification Matrix
|
|
28
|
+
|
|
29
|
+
| Req ID | Requirement | Verification Method | Test File(s) | Result |
|
|
30
|
+
|--------|-------------|---------------------|--------------|--------|
|
|
31
|
+
| VR-01 | Shell scripts pass ShellCheck (severity=error) | Static analysis via `shellcheck --severity=error -e SC1091 -e SC2030 -e SC2031` | `ci.yml`, `ci-enforced.yml`, pre-commit hook | Pass |
|
|
32
|
+
| VR-02 | All scripts have `set -euo pipefail` | Pattern scan across all `.sh` files; CI enforcement | `ci-enforced.yml`, `compliance-guard.yml` | Pass |
|
|
33
|
+
| VR-03 | No secrets in source control (gitleaks clean) | Gitleaks scan with `config/gitleaks.toml` ruleset | Pre-commit hook, `security-enhanced.yml` | Pass |
|
|
34
|
+
| VR-04 | Cross-platform compatibility (BSD + GNU) | Dual-platform CI matrix (ubuntu-latest, macos-latest) | `cross-platform-test.yml` | Pass |
|
|
35
|
+
| VR-05 | TLS enforcement (no insecure curl/wget) | Pattern blocking for `curl -k`, `--insecure`, `wget --no-check-certificate` | Pre-commit hook, `compliance-guard.yml` | Pass |
|
|
36
|
+
| VR-06 | Permission controls (no chmod 777/666) | CI pattern scan blocks world-writable permissions | Pre-commit hook, `compliance-guard.yml` | Pass |
|
|
37
|
+
| VR-07 | Signed commits enforced | Pre-push hook verifies `git verify-commit` for all commits in range | `scripts/git-hooks/pre-push`, `compliance-guard.yml` | Pass |
|
|
38
|
+
| VR-08 | Conventional commit format | Pre-commit hook validates `feat:`, `fix:`, `docs:` prefixes | Pre-commit hook (conventional-commits) | Pass |
|
|
39
|
+
| VR-09 | Template rendering correctness | `chezmoi apply --dry-run` on Linux and macOS CI runners | `ci.yml` (Linux + macOS matrix), `tests/unit/test_*.sh` | Pass |
|
|
40
|
+
| VR-10 | Alias system functional | Unit tests source alias files and verify command availability | `tests/unit/aliases/test_*.sh` (104 files) | Pass |
|
|
41
|
+
| VR-11 | Neovim config loads without errors | Headless Neovim launch with error detection | `tests/unit/neovim/test_*.sh` (15 files) | Pass |
|
|
42
|
+
| VR-12 | Fish/Zsh/Nushell configs valid | Syntax validation and functional tests per shell | `tests/unit/fish/` (33), `tests/unit/shell/` (12), `tests/unit/nushell/` (5) | Pass |
|
|
43
|
+
| VR-13 | CI pipelines execute successfully | GitHub Actions workflow status across all triggers | `ci.yml`, `ci-enforced.yml`, `compliance-guard.yml`, `cross-platform-test.yml`, `security-enhanced.yml`, `codeql.yml` | Pass |
|
|
44
|
+
| VR-14 | Pre-commit hooks functional | Hook execution via `pre-commit run --all-files` | `config/pre-commit-config.yaml` | Pass |
|
|
45
|
+
| VR-15 | Age encryption operational | Chezmoi age-encrypted file decryption during apply | `chezmoi apply --dry-run` (encrypted targets), integration tests | Pass |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Validation Summary
|
|
50
|
+
|
|
51
|
+
### Coverage Metrics
|
|
52
|
+
|
|
53
|
+
| Metric | Value | Threshold | Status |
|
|
54
|
+
|--------|-------|-----------|--------|
|
|
55
|
+
| Total test files | 430 | N/A | Measured |
|
|
56
|
+
| Total assertions | 2,217 | N/A | Measured |
|
|
57
|
+
| Pass rate | 100% | 100% | Pass |
|
|
58
|
+
| Module coverage | 100% | >= 95% | Pass |
|
|
59
|
+
|
|
60
|
+
### Category Breakdown
|
|
61
|
+
|
|
62
|
+
| Category | Test Files | Status |
|
|
63
|
+
|----------|-----------|--------|
|
|
64
|
+
| Alias files | 104 | Tested |
|
|
65
|
+
| Function files | 76 | Tested |
|
|
66
|
+
| Fish functions + conf.d | 33 | Tested |
|
|
67
|
+
| Misc / compliance | 34 | Tested |
|
|
68
|
+
| Dot CLI | 30 | Tested |
|
|
69
|
+
| Diagnostics | 28 | Tested |
|
|
70
|
+
| Shell configs | 20 | Tested |
|
|
71
|
+
| Ops | 18 | Tested |
|
|
72
|
+
| Install | 17 | Tested |
|
|
73
|
+
| Security | 16 | Tested |
|
|
74
|
+
| Neovim Lua configs | 15 | Tested |
|
|
75
|
+
| Theme | 11 | Tested |
|
|
76
|
+
| Tools | 7 | Tested |
|
|
77
|
+
| Nushell configs | 6 | Tested |
|
|
78
|
+
| Secrets | 5 | Tested |
|
|
79
|
+
| Integration tests | 10 | Tested |
|
|
80
|
+
| **Total** | **430** | **All pass** |
|
|
81
|
+
|
|
82
|
+
### Validation Environments
|
|
83
|
+
|
|
84
|
+
| Environment | OS | Shell | Bash Version | Status |
|
|
85
|
+
|-------------|-----|-------|--------------|--------|
|
|
86
|
+
| CI (Linux) | Ubuntu latest | Bash | 5.x | Validated |
|
|
87
|
+
| CI (macOS) | macOS latest | Zsh | 3.2 (system) | Validated |
|
|
88
|
+
| Local (Linux) | CachyOS / Arch | Fish, Zsh, Bash | 5.x | Validated |
|
|
89
|
+
| Local (WSL) | Ubuntu | Bash | 5.x | Validated |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Test Framework Architecture
|
|
94
|
+
|
|
95
|
+
### Directory Structure
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
tests/
|
|
99
|
+
├── framework/
|
|
100
|
+
│ ├── test_runner.sh # Test executor — discovers and runs all test_*.sh files
|
|
101
|
+
│ ├── assertions.sh # 16 assertion functions (assert_equals, assert_contains, etc.)
|
|
102
|
+
│ └── mocks.sh # Mock utilities for isolating external dependencies
|
|
103
|
+
├── unit/
|
|
104
|
+
│ ├── aliases/ # Alias and command-surface tests
|
|
105
|
+
│ ├── functions/ # Function behavior tests
|
|
106
|
+
│ ├── dot-cli/ # `dot` command workflow tests
|
|
107
|
+
│ ├── shell/ # Shell integration and completion tests
|
|
108
|
+
│ ├── fish/ # Fish function and completion tests
|
|
109
|
+
│ ├── nushell/ # Nushell configuration tests
|
|
110
|
+
│ ├── nvim/ # Neovim configuration tests
|
|
111
|
+
│ └── test_*.sh # 425 unit test files total
|
|
112
|
+
├── integration/
|
|
113
|
+
│ └── test_*.sh # 11 integration test files
|
|
114
|
+
└── performance/
|
|
115
|
+
└── benchmark_runner.sh # Performance regression benchmarks
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Execution Model
|
|
119
|
+
|
|
120
|
+
1. `test_runner.sh` recursively discovers all `test_*.sh` files under `tests/`.
|
|
121
|
+
2. Each test file is executed in a subshell with `assertions.sh` sourced.
|
|
122
|
+
3. Tests source bash files directly from the repository (not Go templates).
|
|
123
|
+
4. `mocks.sh` provides stubs for external tools (`chezmoi`, `git`, `brew`, etc.).
|
|
124
|
+
5. Exit codes and assertion counts are aggregated into a final report.
|
|
125
|
+
|
|
126
|
+
### Assertion Library
|
|
127
|
+
|
|
128
|
+
| Function | Purpose |
|
|
129
|
+
|----------|---------|
|
|
130
|
+
| `assert_equals` | Exact string equality |
|
|
131
|
+
| `assert_not_equals` | String inequality |
|
|
132
|
+
| `assert_contains` | Substring match |
|
|
133
|
+
| `assert_not_contains` | Substring absence |
|
|
134
|
+
| `assert_starts_with` | Prefix match |
|
|
135
|
+
| `assert_ends_with` | Suffix match |
|
|
136
|
+
| `assert_matches` | Regex match |
|
|
137
|
+
| `assert_file_exists` | File presence |
|
|
138
|
+
| `assert_file_not_exists` | File absence |
|
|
139
|
+
| `assert_directory_exists` | Directory presence |
|
|
140
|
+
| `assert_command_exists` | Command availability |
|
|
141
|
+
| `assert_exit_code` | Process exit code |
|
|
142
|
+
| `assert_empty` | Empty string |
|
|
143
|
+
| `assert_not_empty` | Non-empty string |
|
|
144
|
+
| `assert_true` | Boolean truth |
|
|
145
|
+
| `assert_false` | Boolean false |
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Traceability Matrix
|
|
150
|
+
|
|
151
|
+
This matrix maps compliance controls from COMPLIANCE.md to verification requirements defined in this document.
|
|
152
|
+
|
|
153
|
+
### SOC 2 Type II Traceability
|
|
154
|
+
|
|
155
|
+
| SOC 2 Control | Description | Verification Requirement(s) |
|
|
156
|
+
|---------------|-------------|----------------------------|
|
|
157
|
+
| CC6.1 | Logical Access Security | VR-06 (Permission controls), VR-15 (Age encryption) |
|
|
158
|
+
| CC6.8 | Unauthorized Code Protection | VR-07 (Signed commits), VR-03 (No secrets) |
|
|
159
|
+
| CC7.1 | System Operations | VR-05 (TLS enforcement), VR-13 (CI pipelines) |
|
|
160
|
+
| CC7.2 | Change Detection | VR-14 (Pre-commit hooks), VR-08 (Conventional commits) |
|
|
161
|
+
| CC8.1 | Change Management | VR-07 (Signed commits), VR-08 (Conventional commits), VR-13 (CI pipelines) |
|
|
162
|
+
| A1.2 | Audit Logs | VR-13 (CI pipelines — logs retained in GitHub Actions) |
|
|
163
|
+
|
|
164
|
+
### ISO 27001 Traceability
|
|
165
|
+
|
|
166
|
+
| ISO Control | Description | Verification Requirement(s) |
|
|
167
|
+
|-------------|-------------|----------------------------|
|
|
168
|
+
| A.9.1.1 | Access Control Policy | VR-06 (Permission controls), VR-15 (Age encryption) |
|
|
169
|
+
| A.9.4.1 | Information Access Restriction | VR-06 (No chmod 777/666) |
|
|
170
|
+
| A.12.1.2 | Change Management | VR-07 (Signed commits), VR-08 (Conventional commits) |
|
|
171
|
+
| A.12.6.1 | Technical Vulnerability Management | VR-03 (Gitleaks), VR-05 (TLS enforcement) |
|
|
172
|
+
| A.13.1.1 | Network Controls | VR-05 (TLS enforcement) |
|
|
173
|
+
| A.14.2.5 | Secure Engineering | VR-01 (ShellCheck), VR-02 (set -euo pipefail), VR-04 (Cross-platform) |
|
|
174
|
+
| A.14.2.8 | System Security Testing | VR-09 (Template rendering), VR-10 (Aliases), VR-11 (Neovim), VR-12 (Shell configs) |
|
|
175
|
+
|
|
176
|
+
### GDPR / Privacy Traceability
|
|
177
|
+
|
|
178
|
+
| Requirement | Description | Verification Requirement(s) |
|
|
179
|
+
|-------------|-------------|----------------------------|
|
|
180
|
+
| Data Minimization | Limit data collection | VR-03 (No secrets in source) |
|
|
181
|
+
| Integrity | Protect against tampering | VR-07 (Signed commits), VR-14 (Pre-commit hooks) |
|
|
182
|
+
| Encryption | Protect data at rest | VR-15 (Age encryption operational) |
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Acceptance Criteria
|
|
187
|
+
|
|
188
|
+
All of the following criteria must be satisfied for this V&V report to remain valid.
|
|
189
|
+
|
|
190
|
+
| Criterion | Verification Method | Required Outcome |
|
|
191
|
+
|-----------|---------------------|------------------|
|
|
192
|
+
| All unit and integration tests pass | `./tests/framework/test_runner.sh` | Exit code 0, 0 failures |
|
|
193
|
+
| ShellCheck clean | `shellcheck --severity=error` on all `.sh` files | Zero findings |
|
|
194
|
+
| Gitleaks clean | `gitleaks detect --config config/gitleaks.toml` | Zero findings |
|
|
195
|
+
| Chezmoi dry-run clean | `chezmoi apply --dry-run` on Linux and macOS | Exit code 0, no errors |
|
|
196
|
+
| Pre-commit hooks pass | `pre-commit run --all-files` | Exit code 0 |
|
|
197
|
+
| Cross-platform CI green | `cross-platform-test.yml` on ubuntu-latest and macos-latest | All jobs pass |
|
|
198
|
+
| Module coverage at threshold | Test runner coverage report | >= 95% (currently 100%) |
|
|
199
|
+
| No world-writable permissions | `compliance-guard.yml` pattern scan | Zero `chmod 777` or `chmod 666` matches |
|
|
200
|
+
| No insecure TLS patterns | `compliance-guard.yml` pattern scan | Zero `curl -k` or `wget --no-check-certificate` matches |
|
|
201
|
+
| All commits signed | `git verify-commit` on HEAD~50..HEAD range | All commits verified |
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Sign-off
|
|
206
|
+
|
|
207
|
+
| Role | Name | Date | Signature |
|
|
208
|
+
|------|------|------|-----------|
|
|
209
|
+
| Repository Owner | | | |
|
|
210
|
+
| Security Reviewer | | | |
|
|
211
|
+
| Quality Assurance | | | |
|
|
212
|
+
| Release Manager | | | |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## References
|
|
217
|
+
|
|
218
|
+
- [ISO 13485:2016](https://www.iso.org/standard/59752.html) — Medical devices, Quality management systems
|
|
219
|
+
- [ISO 27001:2022](https://www.iso.org/standard/27001) — Information security management
|
|
220
|
+
- [SOC 2 Type II](https://www.aicpa.org/soc2) — Trust Services Criteria
|
|
221
|
+
- [SLSA Framework](https://slsa.dev/) — Supply chain Levels for Software Artifacts
|
|
222
|
+
- [ShellCheck](https://www.shellcheck.net/) — Static analysis for shell scripts
|
|
223
|
+
- [Gitleaks](https://gitleaks.io/) — Secrets detection
|
|
224
|
+
- [Chezmoi](https://www.chezmoi.io/) — Dotfiles manager
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Theme Gallery
|
|
2
|
+
|
|
3
|
+
Themes are auto-generated from your wallpapers — the available set depends on what's present on your system. Run `dot theme list` to see what's discovered.
|
|
4
|
+
|
|
5
|
+
See [Theme Reference](../reference/THEMES.md) for the wallpaper-driven engine.
|
|
6
|
+
See [Theming Guide](../guides/THEMING.md) for setup, switching, and the K-Means CIELAB pipeline.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Visual Integrity Report
|
|
2
|
+
|
|
3
|
+
Generated: 2026-04-08
|
|
4
|
+
Scope: terminal theme SSOT, shell first-paint path, font rendering, and cross-platform template intent.
|
|
5
|
+
|
|
6
|
+
| Metric | Current | Target | Status |
|
|
7
|
+
| :--- | :--- | :--- | :--- |
|
|
8
|
+
| Contrast (APCA) | `macos-monterey-dark` body text `Lc 90+`, critical UI `Lc 95+` | `Lc 75+` body, `Lc 90+` critical | Pass |
|
|
9
|
+
| Startup Time | `bash 25ms`, `zsh 35ms`, `fish 25ms` | `< 100ms` | Pass |
|
|
10
|
+
| Color DeltaE | SSOT palette unified across Ghostty/Kitty/Alacritty/WezTerm; no runtime probe yet | `< 2.0` | Needs instrumentation |
|
|
11
|
+
|
|
12
|
+
## Findings
|
|
13
|
+
|
|
14
|
+
- Theme colors are already centralized in `.chezmoidata/themes.toml`, but accessibility intent was implicit. The active theme now carries explicit OKLCH/APCA metadata.
|
|
15
|
+
- First-prompt Fish initialization still performed live CLI work when cache artifacts were present. The prompt path now sources prewarmed cache files first and only regenerates on cache miss.
|
|
16
|
+
- Terminal templates were palette-consistent, but rendering policy was inconsistent. macOS now prefers Display P3 and CoreText-friendly metrics; Linux/Wayland templates prefer more conservative opacity and FreeType-safe fallbacks.
|
|
17
|
+
|
|
18
|
+
## Edge Cases
|
|
19
|
+
|
|
20
|
+
- Wayland fontconfig now sets `rgba` declaratively from feature flags to avoid color fringing on mixed-density Linux panels.
|
|
21
|
+
- Ghostty, Kitty, Alacritty, and WezTerm now share the same terminal ramp while allowing platform-specific font fallback and window-compositor behavior.
|
|
22
|
+
- WSL parity is still template-capable, but DeltaE validation is not yet automated against Windows Terminal serialization.
|
|
23
|
+
|
|
24
|
+
## Next Step
|
|
25
|
+
|
|
26
|
+
Implement a small palette audit utility that computes APCA and DeltaE from `.chezmoidata/themes.toml` so the report can become test-backed rather than declarative.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<svg width="800" height="450" viewBox="0 0 800 450" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- Background Shadow -->
|
|
3
|
+
<rect x="10" y="10" width="780" height="430" rx="12" fill="rgba(0,0,0,0.3)" filter="blur(10px)" />
|
|
4
|
+
|
|
5
|
+
<!-- Terminal Window -->
|
|
6
|
+
<rect x="20" y="20" width="760" height="410" rx="10" fill="#1e1e2e" stroke="#313244" stroke-width="1" />
|
|
7
|
+
|
|
8
|
+
<!-- Window Title Bar -->
|
|
9
|
+
<path d="M20 30 a10 10 0 0 1 10 -10 h740 a10 10 0 0 1 10 10 v20 h-760 z" fill="#181825" />
|
|
10
|
+
|
|
11
|
+
<!-- macOS Buttons -->
|
|
12
|
+
<circle cx="40" cy="35" r="6" fill="#f38ba8" />
|
|
13
|
+
<circle cx="60" cy="35" r="6" fill="#fab387" />
|
|
14
|
+
<circle cx="80" cy="35" r="6" fill="#a6e3a1" />
|
|
15
|
+
|
|
16
|
+
<!-- Title -->
|
|
17
|
+
<text x="400" y="38" font-family="JetBrains Mono, monospace" font-size="12" fill="#bac2de" text-anchor="middle">~/.dotfiles — zsh</text>
|
|
18
|
+
|
|
19
|
+
<!-- Mock Terminal Content -->
|
|
20
|
+
<g font-family="JetBrains Mono, monospace" font-size="13">
|
|
21
|
+
<!-- Prompt + command -->
|
|
22
|
+
<text x="40" y="75" fill="#a6e3a1">➤</text>
|
|
23
|
+
<text x="60" y="75" fill="#cdd6f4">dot doctor</text>
|
|
24
|
+
|
|
25
|
+
<!-- Section: Dotfiles Core -->
|
|
26
|
+
<text x="40" y="105" fill="#89b4fa" font-weight="bold">Dotfiles Core</text>
|
|
27
|
+
<text x="40" y="125" fill="#a6e3a1"> ✓ chezmoi</text>
|
|
28
|
+
<text x="220" y="125" fill="#585b70">2.47.1 (mise)</text>
|
|
29
|
+
<text x="40" y="145" fill="#a6e3a1"> ✓ git</text>
|
|
30
|
+
<text x="220" y="145" fill="#585b70">2.49.0 (system)</text>
|
|
31
|
+
<text x="40" y="165" fill="#a6e3a1"> ✓ age encryption</text>
|
|
32
|
+
<text x="220" y="165" fill="#585b70">key present</text>
|
|
33
|
+
|
|
34
|
+
<!-- Section: Shell Environment -->
|
|
35
|
+
<text x="40" y="195" fill="#89b4fa" font-weight="bold">Shell Environment</text>
|
|
36
|
+
<text x="40" y="215" fill="#a6e3a1"> ✓ zsh</text>
|
|
37
|
+
<text x="220" y="215" fill="#585b70">5.9.0 (system)</text>
|
|
38
|
+
<text x="40" y="235" fill="#a6e3a1"> ✓ starship</text>
|
|
39
|
+
<text x="220" y="235" fill="#585b70">1.22.1 (mise)</text>
|
|
40
|
+
<text x="40" y="255" fill="#a6e3a1"> ✓ zoxide</text>
|
|
41
|
+
<text x="220" y="255" fill="#585b70">0.9.7 (mise)</text>
|
|
42
|
+
|
|
43
|
+
<!-- Section: CLI Tools -->
|
|
44
|
+
<text x="420" y="105" fill="#89b4fa" font-weight="bold">CLI Tools</text>
|
|
45
|
+
<text x="420" y="125" fill="#a6e3a1"> ✓ rg (ripgrep)</text>
|
|
46
|
+
<text x="600" y="125" fill="#585b70">14.1.1</text>
|
|
47
|
+
<text x="420" y="145" fill="#a6e3a1"> ✓ bat</text>
|
|
48
|
+
<text x="600" y="145" fill="#585b70">0.25.0</text>
|
|
49
|
+
<text x="420" y="165" fill="#a6e3a1"> ✓ fzf</text>
|
|
50
|
+
<text x="600" y="165" fill="#585b70">0.60.3</text>
|
|
51
|
+
|
|
52
|
+
<!-- Section: Security -->
|
|
53
|
+
<text x="420" y="195" fill="#89b4fa" font-weight="bold">Security</text>
|
|
54
|
+
<text x="420" y="215" fill="#a6e3a1"> ✓ SSH keys</text>
|
|
55
|
+
<text x="600" y="215" fill="#585b70">ed25519</text>
|
|
56
|
+
<text x="420" y="235" fill="#a6e3a1"> ✓ GPG signing</text>
|
|
57
|
+
<text x="600" y="235" fill="#585b70">configured</text>
|
|
58
|
+
<text x="420" y="255" fill="#a6e3a1"> ✓ secrets (age)</text>
|
|
59
|
+
<text x="600" y="255" fill="#585b70">encrypted</text>
|
|
60
|
+
|
|
61
|
+
<!-- Performance line -->
|
|
62
|
+
<text x="40" y="290" fill="#89b4fa" font-weight="bold">Performance</text>
|
|
63
|
+
<text x="40" y="310" fill="#a6e3a1"> ✓ zsh startup</text>
|
|
64
|
+
<text x="220" y="310" fill="#585b70">12ms</text>
|
|
65
|
+
|
|
66
|
+
<!-- Score -->
|
|
67
|
+
<text x="40" y="350" fill="#a6e3a1" font-weight="bold">Score: 95/100 — Excellent</text>
|
|
68
|
+
<text x="40" y="370" fill="#585b70">18 passed, 0 errors, 1 warning</text>
|
|
69
|
+
|
|
70
|
+
<!-- New prompt -->
|
|
71
|
+
<text x="40" y="405" fill="#a6e3a1">➤</text>
|
|
72
|
+
<text x="60" y="405" fill="#cdd6f4">~/.dotfiles</text>
|
|
73
|
+
<text x="170" y="405" fill="#f5c2e7">on master</text>
|
|
74
|
+
<rect x="275" y="393" width="8" height="16" fill="#cdd6f4">
|
|
75
|
+
<animate attributeName="opacity" values="1;0;1" dur="1s" repeatCount="indefinite" />
|
|
76
|
+
</rect>
|
|
77
|
+
</g>
|
|
78
|
+
</svg>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "Module manifest for dot_config/ — logical grouping of flat directories",
|
|
3
|
+
"groups": {
|
|
4
|
+
"shell": {
|
|
5
|
+
"description": "Shell environments and startup",
|
|
6
|
+
"modules": ["shell", "zsh", "fish", "nushell"]
|
|
7
|
+
},
|
|
8
|
+
"terminal": {
|
|
9
|
+
"description": "Terminal emulators",
|
|
10
|
+
"modules": ["alacritty", "ghostty", "kitty", "wezterm"]
|
|
11
|
+
},
|
|
12
|
+
"editor": {
|
|
13
|
+
"description": "Text editors and IDEs",
|
|
14
|
+
"modules": ["nvim", "vscode", "micro", "nano"]
|
|
15
|
+
},
|
|
16
|
+
"git": {
|
|
17
|
+
"description": "Version control",
|
|
18
|
+
"modules": ["git", "lazygit", "gh"]
|
|
19
|
+
},
|
|
20
|
+
"container": {
|
|
21
|
+
"description": "Containers and orchestration",
|
|
22
|
+
"modules": ["docker", "containers", "lazydocker", "k9s", "minikube"]
|
|
23
|
+
},
|
|
24
|
+
"ai": {
|
|
25
|
+
"description": "AI tools and assistants",
|
|
26
|
+
"modules": ["ai", "aider", "claude", "goose"]
|
|
27
|
+
},
|
|
28
|
+
"languages": {
|
|
29
|
+
"description": "Language toolchains",
|
|
30
|
+
"modules": ["go", "pip", "pypoetry", "gem", "bun", "yarn", "dlv"]
|
|
31
|
+
},
|
|
32
|
+
"system": {
|
|
33
|
+
"description": "System monitoring and management",
|
|
34
|
+
"modules": ["btop", "htop", "fastfetch", "topgrade", "systemd", "ncdu", "duf"]
|
|
35
|
+
},
|
|
36
|
+
"security": {
|
|
37
|
+
"description": "Security and secrets",
|
|
38
|
+
"modules": ["gnupg", "sops"]
|
|
39
|
+
},
|
|
40
|
+
"network": {
|
|
41
|
+
"description": "Network and HTTP tools",
|
|
42
|
+
"modules": ["curl", "wget"]
|
|
43
|
+
},
|
|
44
|
+
"data": {
|
|
45
|
+
"description": "Databases and data tools",
|
|
46
|
+
"modules": ["redis", "mongosh", "mycli", "ipython"]
|
|
47
|
+
},
|
|
48
|
+
"tools": {
|
|
49
|
+
"description": "CLI utilities",
|
|
50
|
+
"modules": ["bat", "fzf", "yazi", "just", "mise", "task", "tmux", "pueue", "atuin", "emoji"]
|
|
51
|
+
},
|
|
52
|
+
"desktop": {
|
|
53
|
+
"description": "Desktop environment and appearance",
|
|
54
|
+
"modules": ["gtk-3.0", "gtk-4.0", "fontconfig", "flatpak", "zellij"]
|
|
55
|
+
},
|
|
56
|
+
"macos": {
|
|
57
|
+
"description": "macOS-specific modules",
|
|
58
|
+
"modules": ["karabiner", "mas", "duti", "raycast"]
|
|
59
|
+
},
|
|
60
|
+
"infra": {
|
|
61
|
+
"description": "Infrastructure and cloud",
|
|
62
|
+
"modules": ["ansible", "tflint"]
|
|
63
|
+
},
|
|
64
|
+
"dotfiles": {
|
|
65
|
+
"description": "Dotfiles internal config",
|
|
66
|
+
"modules": ["dotfiles"]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# AI Identity & Preferences
|
|
2
|
+
|
|
3
|
+
## Profile
|
|
4
|
+
- **User**:
|
|
5
|
+
- **Role**: Senior Software Engineer / Architect
|
|
6
|
+
- **Expertise**: Rust, TypeScript, Go, DevOps (Nix, Kubernetes), Shell Scripting.
|
|
7
|
+
|
|
8
|
+
## Coding Style
|
|
9
|
+
- **Principles**: Clean code, SOLID, DRY, KISS.
|
|
10
|
+
- **Preferences**:
|
|
11
|
+
- Prefer TypeScript over JavaScript.
|
|
12
|
+
- Prefer functional programming patterns where appropriate.
|
|
13
|
+
- Use Vitest or Jest for testing.
|
|
14
|
+
- Use Prettier and ESLint for formatting/linting.
|
|
15
|
+
- **Documentation**: Use JSDoc/TSDoc for code and GitHub-flavored Markdown for docs.
|
|
16
|
+
|
|
17
|
+
## Workspace Context
|
|
18
|
+
- **Environment**: Linux (CachyOS/Arch), macOS.
|
|
19
|
+
- **Shells**: Zsh (primary), Fish, Nushell, Bash.
|
|
20
|
+
- **Dotfiles**: Managed by Chezmoi, optimized for performance and security.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Identity: Dotfiles Architect
|
|
2
|
+
|
|
3
|
+
You are an expert Shell Infrastructure Architect specializing in the 2026 developer stack.
|
|
4
|
+
|
|
5
|
+
## Core Directives
|
|
6
|
+
- **Subtlety**: Propose changes that integrate seamlessly without adding unnecessary complexity.
|
|
7
|
+
- **Performance**: Prioritize shell startup speed and binary efficiency (e.g., _cached_eval).
|
|
8
|
+
- **Architecture**: Adhere to the modular "rc.d" structure and XDG Base Directory standards.
|
|
9
|
+
- **Tools**: Leverage Mise for runtimes, Nix for declarative environments, and Chezmoi for state management.
|
|
10
|
+
|
|
11
|
+
## Environment Context
|
|
12
|
+
- OS: Arch/CachyOS (optimized for x86-64-v4) or macOS.
|
|
13
|
+
- Shells: Zsh (primary), Fish, Nushell, Bash.
|
|
14
|
+
- Security: Age/SOPS for secrets, GPG signing enforced.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Identity: Shell Security Hardener
|
|
2
|
+
|
|
3
|
+
You are a security engineer specializing in high-compliance Fintech environments and Post-Quantum Cryptography (PQC).
|
|
4
|
+
|
|
5
|
+
## Core Directives
|
|
6
|
+
- **Zero Trust**: Assume all external scripts are compromised until verified.
|
|
7
|
+
- **Encryption**: Enforce Age/SOPS for all sensitive data.
|
|
8
|
+
- **Compliance**: Adhere to 2026 security baselines (GPG signing, SSH certificate authorities).
|
|
9
|
+
- **Privacy**: Disable all non-essential telemetry at the OS and application level.
|
|
10
|
+
|
|
11
|
+
## Verification Logic
|
|
12
|
+
- Every proposal must include a "Verification" step (e.g., dot verify --security).
|
|
13
|
+
- Prioritize hardware enclave (TPM/Secure Enclave) integrations.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Identity: POSIX & Shell Optimizer
|
|
2
|
+
|
|
3
|
+
You are an expert in shell script optimization and POSIX compliance.
|
|
4
|
+
|
|
5
|
+
## Core Directives
|
|
6
|
+
- **Portability**: Ensure scripts work across Zsh, Bash, and Dash unless specifically optimized for a feature shell (like Fish/Nushell).
|
|
7
|
+
- **Indempotency**: Scripts must be safe to run multiple times without side effects.
|
|
8
|
+
- **Linting**: Adhere to ShellCheck best practices and strict error handling (set -euo pipefail).
|
|
9
|
+
- **Latency**: Minimize subshell calls and external binary forks.
|
|
10
|
+
|
|
11
|
+
## Optimization Strategy
|
|
12
|
+
- Use built-in shell features over external commands where possible.
|
|
13
|
+
- Implement caching mechanisms for heavy computations.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Aider configuration
|
|
2
|
+
# https://aider.chat/docs/config/options.html
|
|
3
|
+
|
|
4
|
+
# Model settings
|
|
5
|
+
model: claude-opus-4-6
|
|
6
|
+
edit-format: diff
|
|
7
|
+
|
|
8
|
+
# Git settings
|
|
9
|
+
auto-commits: true
|
|
10
|
+
dirty-commits: false
|
|
11
|
+
attribute-author: true
|
|
12
|
+
attribute-commit-message: true
|
|
13
|
+
|
|
14
|
+
# UI settings
|
|
15
|
+
dark-mode: true
|
|
16
|
+
pretty: true
|
|
17
|
+
stream: true
|
|
18
|
+
|
|
19
|
+
# Code settings
|
|
20
|
+
auto-lint: true
|
|
21
|
+
lint-cmd: "npm run lint"
|
|
22
|
+
auto-test: false
|
|
23
|
+
|
|
24
|
+
# File handling
|
|
25
|
+
gitignore: true
|
|
26
|
+
aiderignore: true
|
|
27
|
+
|
|
28
|
+
# History
|
|
29
|
+
restore-chat-history: true
|
|
30
|
+
|
|
31
|
+
# Voice (if enabled)
|
|
32
|
+
# voice-language: en
|