@sebastienrousseau/dotfiles 0.2.499 → 0.2.501
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 +452 -0
- package/LICENSE +1283 -0
- package/README.md +322 -0
- package/docs/.vitepress/reports/localization-readability-audit.md +73 -0
- package/docs/AI.md +108 -0
- package/docs/CNAME +1 -0
- package/docs/COPYRIGHT +4 -3
- package/docs/NAMING_CONVENTIONS.md +102 -0
- package/docs/README.md +82 -0
- package/docs/_config.yml +59 -0
- package/docs/adr/ADR-001-ci-cd-pipeline.md +118 -0
- package/docs/adr/ADR-002-shell-performance.md +130 -0
- package/docs/adr/ADR-003-security-first.md +158 -0
- package/docs/adr/ADR-004-cli-architecture.md +171 -0
- package/docs/adr/ADR-005-chezmoi-choice.md +99 -0
- package/docs/adr/ADR-006-shell-selection.md +124 -0
- package/docs/adr/ADR-007-multi-shell-parity.md +62 -0
- package/docs/adr/ADR-008-alias-system-architecture.md +95 -0
- package/docs/adr/ADR-009-wallpaper-driven-theming.md +131 -0
- package/docs/adr/ADR-010-starship-transient-prompt.md +144 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +144 -0
- package/docs/adr/README.md +39 -0
- package/docs/architecture/ARCHITECTURE.md +117 -0
- package/docs/architecture/INTEROP.md +44 -0
- package/docs/architecture/REPO_LAYOUT.md +241 -0
- package/docs/architecture/WALKTHROUGH.md +86 -0
- package/docs/architecture/fleet-deployment.md +77 -0
- package/docs/archive/EUXIS_2026_REVIEW.md +127 -0
- package/docs/archive/LEGACY_ROADMAP.md +160 -0
- package/docs/archive/MILESTONE_v0.2.493.md +47 -0
- package/docs/{PLAN.md → archive/PLAN.md} +50 -12
- package/docs/archive/REPO_AUDIT.md +31 -0
- package/docs/guides/INSTALL.md +144 -0
- package/docs/guides/NEOVIM_IDE_GUIDE.md +61 -0
- package/docs/guides/THEMING.md +230 -0
- package/docs/guides/TROUBLESHOOTING.md +176 -0
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +792 -0
- package/docs/index.md +43 -0
- package/docs/interop/A2A.md +39 -0
- package/docs/interop/POWERSHELL.md +102 -0
- package/docs/manual/00-introduction.md +89 -0
- package/docs/manual/01-concepts/01-architecture.md +138 -0
- package/docs/manual/01-concepts/02-trust-model.md +182 -0
- package/docs/manual/01-concepts/03-theme-engine.md +186 -0
- package/docs/manual/01-concepts/04-fleet.md +148 -0
- package/docs/manual/01-concepts/05-self-healing.md +204 -0
- package/docs/manual/02-tutorials/01-first-install.md +197 -0
- package/docs/manual/02-tutorials/02-add-wallpaper.md +216 -0
- package/docs/manual/02-tutorials/03-create-profile.md +244 -0
- package/docs/manual/02-tutorials/04-encrypt-secret.md +281 -0
- package/docs/manual/02-tutorials/05-deploy-fleet.md +283 -0
- package/docs/manual/03-reference/01-dot-cli.md +417 -0
- package/docs/manual/03-reference/02-config-files.md +265 -0
- package/docs/manual/03-reference/03-environment.md +124 -0
- package/docs/manual/03-reference/04-templates.md +190 -0
- package/docs/manual/03-reference/05-feature-flags.md +128 -0
- package/docs/manual/04-cookbook/01-recipes.md +285 -0
- package/docs/manual/04-cookbook/02-troubleshooting.md +351 -0
- package/docs/manual/04-cookbook/03-faq.md +175 -0
- package/docs/manual/05-appendices/A-platform-matrix.md +101 -0
- package/docs/manual/05-appendices/B-security-checklist.md +84 -0
- package/docs/manual/05-appendices/C-glossary.md +40 -0
- package/docs/manual/05-appendices/D-bibliography.md +58 -0
- package/docs/manual/05-appendices/E-license.md +38 -0
- package/docs/manual/_toc.yml +58 -0
- package/docs/manual/command-index.md +62 -0
- package/docs/manual/concept-index.md +168 -0
- package/docs/operations/ATTESTATION.md +44 -0
- package/docs/operations/CI_CADENCE.md +107 -0
- package/docs/operations/CI_COMPOSITES.md +156 -0
- package/docs/operations/COMPLETIONS.md +123 -0
- package/docs/operations/COVERAGE.md +148 -0
- package/docs/operations/DRIFT.md +107 -0
- package/docs/operations/MAINTENANCE.md +63 -0
- package/docs/operations/MIGRATION.md +109 -0
- package/docs/operations/OPERATIONS.md +188 -0
- package/docs/operations/PERFORMANCE.md +133 -0
- package/docs/operations/RELIABILITY.md +122 -0
- package/docs/{ROADMAP.md → operations/ROADMAP.md} +57 -39
- package/docs/operations/TESTING.md +199 -0
- package/docs/operations/TRACEABILITY.md +35 -0
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +65 -0
- package/docs/operations/VERSION_SYNC.md +393 -0
- package/docs/reference/ALIASES.md +131 -0
- package/docs/reference/ALIASES_CHEATSHEET.md +32 -0
- package/docs/reference/ALIASES_DEPRECATIONS.md +13 -0
- package/docs/reference/FEATURES.md +66 -0
- package/docs/reference/FONTS.md +112 -0
- package/docs/reference/PROFILES.md +69 -0
- package/docs/reference/SCREENSHOTS.md +121 -0
- package/docs/reference/SCRIPTS.md +71 -0
- package/docs/reference/SUPPORT_MATRIX.md +80 -0
- package/docs/reference/THEMES.md +117 -0
- package/docs/reference/TOOLS.md +109 -0
- package/docs/reference/UTILS.md +155 -0
- package/docs/security/AI_ACT_COMPLIANCE.md +94 -0
- package/docs/security/AUDIT_BYPASS.md +103 -0
- package/docs/security/AUTOMATION_SECRETS.md +26 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +127 -0
- package/docs/security/COMPLIANCE.md +458 -0
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +86 -0
- package/docs/security/ENCRYPTION.md +57 -0
- package/docs/security/FMEA.md +159 -0
- package/docs/security/HISTORY_FILTERING.md +132 -0
- package/docs/security/INCIDENT_RESPONSE.md +579 -0
- package/docs/security/INSTALL_VERIFICATION.md +122 -0
- package/docs/security/KEYS.md +49 -0
- package/docs/security/KEY_ROTATION.md +223 -0
- package/docs/security/MCP_POLICY.md +78 -0
- package/docs/security/POLICY_RELEASES.md +37 -0
- package/docs/security/README.md +28 -0
- package/docs/security/SCORECARD.md +80 -0
- package/docs/security/SECRETS.md +158 -0
- package/docs/security/SECURITY.md +45 -0
- package/docs/security/SECURITY_CHECKLIST.md +55 -0
- package/docs/security/SHELL_EXEMPTIONS.md +145 -0
- package/docs/security/SOUP_REGISTER.md +36 -0
- package/docs/security/THREAT_MODEL.md +130 -0
- package/docs/security/VERIFICATION_VALIDATION.md +228 -0
- package/docs/themes/README.md +10 -0
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +30 -0
- package/docs/themes/hero-shot.svg +78 -0
- package/dot_config/.module-manifest.json +69 -0
- package/dot_config/ai/identity.md +23 -0
- package/dot_config/ai/patterns/architect.md +16 -0
- package/dot_config/ai/patterns/hardener.md +15 -0
- package/dot_config/ai/patterns/refactor.md +15 -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.tmpl +47 -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 +13 -0
- package/dot_config/dotfiles/grub/README.md +13 -0
- package/dot_config/dotfiles/lock/README.md +13 -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 +172 -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 +131 -0
- package/dot_config/fish/functions/_cached_eval_clear.fish +17 -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/hooks/executable_commit-msg +146 -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/cached_eval.nu +80 -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 +102 -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 +134 -0
- package/dot_config/shell/05-core-safety.sh +48 -0
- package/dot_config/shell/10-secrets.sh +41 -0
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +17 -0
- package/dot_config/shell/40-ls-colors.sh +49 -0
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +11 -0
- package/dot_config/shell/50-logic-functions.sh.tmpl +11 -0
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +65 -0
- package/dot_config/shell/90-ux-aliases.sh.tmpl +121 -0
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +55 -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 +284 -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 +10 -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 +635 -0
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +99 -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 +214 -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/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 +79 -0
- package/dot_local/bin/executable_cb +39 -0
- package/dot_local/bin/executable_dot +596 -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 +24 -0
- package/dot_local/bin/executable_open +38 -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 +177 -0
- package/dot_local/bin/executable_up +23 -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 +350 -0
- package/package.json +1 -1
- package/scripts/ci/check-copyright-headers.sh +96 -0
- package/scripts/ci/check-dangerous-chmod.sh +19 -0
- package/scripts/ci/check-deps-dev.sh +236 -0
- package/scripts/ci/check-insecure-tls.sh +61 -0
- package/scripts/ci/check-regression-traceability.sh +67 -0
- package/scripts/ci/check-shell-preamble.sh +106 -0
- package/scripts/ci/guard-gitleaks-checkout.sh +57 -0
- package/scripts/ci/install-chezmoi-verified.sh +64 -0
- package/scripts/ci/run-coverage.sh +362 -0
- package/scripts/ci/validate-chezmoidata.sh +25 -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 +709 -0
- package/scripts/diagnostics/drift-dashboard.sh +201 -0
- package/scripts/diagnostics/health.sh +614 -0
- package/scripts/diagnostics/history-analysis.sh +85 -0
- package/scripts/diagnostics/mcp-doctor.sh +575 -0
- package/scripts/diagnostics/perf.sh +452 -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 +186 -0
- package/scripts/docs/build-manual.sh +883 -0
- package/scripts/docs/check-manual.sh +213 -0
- package/scripts/dot/commands/agent.sh +474 -0
- package/scripts/dot/commands/ai.sh +481 -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 +50 -0
- package/scripts/dot/lib/log.sh +200 -0
- package/scripts/dot/lib/platform.sh +99 -0
- package/scripts/dot/lib/ui.sh +518 -0
- package/scripts/dot/lib/utils.sh +377 -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 +92 -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 +86 -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/powershell-contract.ps1 +95 -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 +145 -0
- package/scripts/theme/rebuild-themes.sh +309 -0
- package/scripts/theme/switch.sh +431 -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
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
render_with_liquid: false
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Roadmap
|
|
2
6
|
|
|
3
7
|
This roadmap steers the project from a "feature-rich dotfiles repo" to an **Enterprise-Grade Shell Distribution**. The structure is organized by strategic pillars (**Trust**, **Predictability**, **Observability**) rather than linear phases, though the original 100-Phase vision is preserved within these categories.
|
|
4
8
|
|
|
5
9
|
---
|
|
6
10
|
|
|
7
|
-
##
|
|
11
|
+
## Reproducibility
|
|
12
|
+
|
|
8
13
|
**Goal:** "Reproducible Shell Environments".
|
|
9
14
|
> *This distribution aims for deterministic rebuilds: the same tag yields the same environment across machines.*
|
|
10
15
|
|
|
@@ -16,29 +21,32 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
16
21
|
- [ ] **Container Native (Phase 28)**: Base Docker image for devcontainers.
|
|
17
22
|
- [ ] **Terraform Provider (Phase 28)**: Custom provider to provision dotfiles state.
|
|
18
23
|
|
|
19
|
-
##
|
|
24
|
+
## Observability
|
|
25
|
+
|
|
20
26
|
**Goal:** "Observable Shell Lifecycle".
|
|
21
27
|
> *The shell is instrumented: failures, timing, and lifecycle events are visible by design.*
|
|
22
28
|
|
|
23
|
-
- [
|
|
24
|
-
- [
|
|
25
|
-
- [
|
|
29
|
+
- [x] **Audit Structuring**: JSON-structured logging for bootstrap and provisioning events.
|
|
30
|
+
- [x] **Debug Modes**: First-class support for `DOTFILES_DEBUG=1` and `DOTFILES_TRACE=1`.
|
|
31
|
+
- [x] **Telemetry (Local)**: Granular startup timing breakdown via `dot perf`.
|
|
26
32
|
- [ ] **Health Dashboard (Phase 39)**: CLI view of system "health" metrics.
|
|
27
33
|
- [ ] **System Status (Phase 39)**: Real-time resource usage, battery, and network stats.
|
|
28
34
|
- [ ] **Update Manager (Phase 39)**: Visual interface for tool updates and migration.
|
|
29
35
|
|
|
30
|
-
##
|
|
36
|
+
## Secrets
|
|
37
|
+
|
|
31
38
|
**Goal:** "Explicit Secrets Model".
|
|
32
39
|
> *Secrets are never committed; sensitive state is encrypted or host-local by default.*
|
|
33
40
|
|
|
34
|
-
- [
|
|
35
|
-
- [
|
|
41
|
+
- [x] **Secret Driver**: Native integration with 1Password/Bitwarden CLI via `chezmoi`.
|
|
42
|
+
- [x] **Encryption**: Promoted use of `age` encryption for all private config files.
|
|
36
43
|
- [ ] **Leak Prevention (Phase 29)**: Pre-commit hooks (TruffleHog/Gitleaks) for high-entropy detection.
|
|
37
44
|
- [ ] **Vault Integration (Phase 29)**: Native HashiCorp Vault support.
|
|
38
45
|
- [ ] **Hardware Enclaves (Phase 29)**: Support for Secure Enclave/TPM key storage.
|
|
39
46
|
- [ ] **OIDC Auth (Phase 29)**: Keyless authentication via GitHub OIDC.
|
|
40
47
|
|
|
41
|
-
##
|
|
48
|
+
## Toolchain
|
|
49
|
+
|
|
42
50
|
**Goal:** "Composable Shell Layers".
|
|
43
51
|
> *The distribution is layered: core safety is mandatory, advanced features are opt-in.*
|
|
44
52
|
|
|
@@ -46,62 +54,67 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
46
54
|
- [ ] **UX Layer**: Prompt (Starship), Aliases, Completions.
|
|
47
55
|
- [ ] **Toolchain Layer**: Rust replacements (`eza`, `bat`, `ripgrep`).
|
|
48
56
|
- [ ] **Cross-Compiler Toolchain (Phase 34)**:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
57
|
+
- [ ] **Multi-Arch**: `qemu-user-static` for ARM64/AMD64.
|
|
58
|
+
- [ ] **Wasm Target**: WebAssembly toolchain setup.
|
|
59
|
+
- [ ] **Embedded Dev**: Presets for Arduino/ESP32.
|
|
60
|
+
|
|
61
|
+
## Opt-in features
|
|
52
62
|
|
|
53
|
-
## ⚙️ Pillar 5: Controlled Opt-In Features
|
|
54
63
|
**Goal:** "Explicit Feature Flags".
|
|
55
64
|
> *Advanced features are gated behind explicit opt-in flags.*
|
|
56
65
|
|
|
57
66
|
- [ ] **Feature Toggles**: Environment variables (e.g., `ENABLE_AI=0`, `ENABLE_HISTORY_SYNC=0`).
|
|
58
67
|
- [ ] **Lazy Loading**: Strict lazy-loading for all non-core plugins.
|
|
59
68
|
- [ ] **Plugin Ecosystem (Phase 35)**:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
- [ ] **Module Registry**: Public index of dotfiles modules.
|
|
70
|
+
- [ ] **Dependency Solving**: Semantic versioning for modules.
|
|
71
|
+
- [ ] **Verified Publishers**: Cryptographic signing for "Official" modules.
|
|
72
|
+
|
|
73
|
+
## Safety
|
|
63
74
|
|
|
64
|
-
## 🛡️ Pillar 6: Threat Model & Safety
|
|
65
75
|
**Goal:** "Documented Threat Model".
|
|
66
76
|
> *Security decisions are driven by an explicit, documented threat model.*
|
|
67
77
|
|
|
68
|
-
- [
|
|
78
|
+
- [x] **Threat Model Doc**: A lightweight document defining the trust boundary (Local Machine). See `docs/security/THREAT_MODEL.md`.
|
|
69
79
|
- [ ] **Supply Chain**: Verification steps for upstream dependencies.
|
|
70
80
|
- [ ] **Identity & Access (Phase 40)**:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
81
|
+
- [ ] **SSH Certs**: Short-lived SSH Certificates.
|
|
82
|
+
- [ ] **YubiKey Bio**: Biometric enforcement for `sudo`.
|
|
83
|
+
- [ ] **PAM Modules**: Custom auth modules.
|
|
84
|
+
- [ ] **Auditd Rules**: Pre-configured audit rules.
|
|
85
|
+
|
|
86
|
+
## Validation
|
|
75
87
|
|
|
76
|
-
## 🧪 Pillar 7: Self-Test & Validation
|
|
77
88
|
**Goal:** "Self-Validating Environment".
|
|
78
89
|
> *The environment can validate itself after installation or update.*
|
|
79
90
|
|
|
80
|
-
- [
|
|
81
|
-
- [
|
|
82
|
-
- [
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
91
|
+
- [x] **Smoke Tests**: Automated verification of key aliases (`ls`, `git`, `docker`).
|
|
92
|
+
- [x] **CI Validation**: GitHub Actions workflow to boot and verify the shell syntax.
|
|
93
|
+
- [x] **Chaos Engineering (Phase 41)**:
|
|
94
|
+
- [ ] **Config Chaos**: Randomly corrupt config files to test recovery.
|
|
95
|
+
- [ ] **Network Simulation**: Simulate high latency/packet loss.
|
|
96
|
+
- [ ] **Permission Fuzzing**: Verify strict umask behavior.
|
|
97
|
+
|
|
98
|
+
## Distribution
|
|
86
99
|
|
|
87
|
-
## 📦 Pillar 8: Distribution Guarantees & Platform Support
|
|
88
100
|
**Goal:** "Supported Platforms Matrix".
|
|
89
101
|
> *Only listed platforms are guaranteed to work; others are best-effort.*
|
|
90
102
|
|
|
91
|
-
- [
|
|
103
|
+
- [x] **Support Matrix**: Explicit table of OS/Version support. See `docs/reference/SUPPORT_MATRIX.md`.
|
|
92
104
|
- [ ] **Windows Deep Integration (Phase 53)**:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
105
|
+
- [ ] **PowerShell Profile**: Mirror Zsh functionality.
|
|
106
|
+
- [ ] **WinGet**: Declarative package management.
|
|
107
|
+
- [ ] **WSL Bridge**: Seamless interop.
|
|
96
108
|
- [ ] **Linux Deep Integration (Phase 55)**:
|
|
97
|
-
|
|
98
|
-
|
|
109
|
+
- [x] **Systemd User Units**: User service management.
|
|
110
|
+
- [ ] **Desktop Envs**: GNOME/KDE/Sway configs.
|
|
99
111
|
|
|
100
112
|
---
|
|
101
113
|
|
|
102
|
-
##
|
|
114
|
+
## Future
|
|
103
115
|
|
|
104
116
|
### Domain-Specific Environments
|
|
117
|
+
|
|
105
118
|
- [ ] **Data Science (Phase 38)**: Conda/Mamba, GPU Config, Jupyter.
|
|
106
119
|
- [ ] **Network Topologies (Phase 56)**: Mesh Networks, Tor, Private VPNs.
|
|
107
120
|
- [ ] **Build Systems (Phase 57)**: Bazel, Maven/Gradle, CMake.
|
|
@@ -112,6 +125,7 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
112
125
|
- [ ] **Bio-Informatics (Phase 70)**: Genomics, PDB, FASTA.
|
|
113
126
|
|
|
114
127
|
### Enterprise & Operations
|
|
128
|
+
|
|
115
129
|
- [ ] **Collaborations (Phase 45)**: Pair Programming, Team Sync, ChatOps.
|
|
116
130
|
- [ ] **Database DevOps (Phase 46)**: DB Clients, Local Docker DBs, Migrations.
|
|
117
131
|
- [ ] **Serverless (Phase 47)**: Lambda, Edge Workers, Wasm.
|
|
@@ -120,20 +134,23 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
120
134
|
- [ ] **Recruiting & HR (Phase 94)**: Resume Generators, coding interview sets.
|
|
121
135
|
|
|
122
136
|
### Accessibility & Legacy
|
|
137
|
+
|
|
123
138
|
- [ ] **Accessibility (Phase 36)**: Screen Reader optimization, High Contrast.
|
|
124
139
|
- [ ] **Legacy Modernization (Phase 42)**: Mainframe/Unix support, PowerShell Core.
|
|
125
140
|
|
|
126
141
|
---
|
|
127
142
|
|
|
128
|
-
##
|
|
143
|
+
## Completed
|
|
129
144
|
|
|
130
145
|
### Core Foundations
|
|
146
|
+
|
|
131
147
|
- [x] **Universal Config (Chezmoi) (Phase 1)**
|
|
132
148
|
- [x] **Shell Environment (Phase 2)**
|
|
133
149
|
- [x] **Tool Modernization (Phase 3)**
|
|
134
150
|
- [x] **Performance Optimization (Phase 4)**
|
|
135
151
|
|
|
136
152
|
### Hardened Security
|
|
153
|
+
|
|
137
154
|
- [x] **Security & Validation (Phase 5)**
|
|
138
155
|
- [x] **Package Management (Phase 6)**
|
|
139
156
|
- [x] **Hardened Security (Phase 21)**
|
|
@@ -141,6 +158,7 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
141
158
|
- [x] **Legal & Licensing (Phase 92)**: FOSSology, Headers, CLA.
|
|
142
159
|
|
|
143
160
|
### Experience
|
|
161
|
+
|
|
144
162
|
- [x] **Documentation (Phase 25)**: DocSite, Interactive Tour.
|
|
145
163
|
- [x] **Self-Healing (Phase 27)**: Doctor, Auto-Repair.
|
|
146
164
|
- [x] **OS Bundling (Phase 26)**: XDG Compliance, Vendor Hooks.
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
render_with_liquid: false
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Testing strategy
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The repo uses a multi-layer testing approach: unit tests for individual functions, integration tests for system-wide behavior, and performance benchmarks for resource efficiency.
|
|
10
|
+
|
|
11
|
+
## Quick start
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Run all unit tests
|
|
15
|
+
./tests/framework/test_runner.sh
|
|
16
|
+
|
|
17
|
+
# Run a specific test suite
|
|
18
|
+
./tests/framework/test_runner.sh extract
|
|
19
|
+
|
|
20
|
+
# Run integration tests
|
|
21
|
+
RUN_INTEGRATION=1 ./tests/framework/test_runner.sh
|
|
22
|
+
|
|
23
|
+
# Run performance benchmarks
|
|
24
|
+
./tests/performance/benchmark_runner.sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Test structure
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
tests/
|
|
31
|
+
├── framework/ # Test framework
|
|
32
|
+
│ ├── assertions.sh # 16 assertion functions
|
|
33
|
+
│ ├── mocks.sh # Mock utilities
|
|
34
|
+
│ └── test_runner.sh # Test executor
|
|
35
|
+
├── unit/ # 425 unit test files
|
|
36
|
+
├── integration/ # 11 integration test files
|
|
37
|
+
└── performance/ # Benchmarks
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Writing tests
|
|
41
|
+
|
|
42
|
+
### Test file template
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
#!/usr/bin/env bash
|
|
46
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
47
|
+
source "$SCRIPT_DIR/../framework/assertions.sh"
|
|
48
|
+
|
|
49
|
+
# Source the function under test
|
|
50
|
+
source "$HOME/.dotfiles/.chezmoitemplates/functions/myfunction.sh"
|
|
51
|
+
|
|
52
|
+
# Test cases
|
|
53
|
+
test_start "function_basic_usage"
|
|
54
|
+
assert_exit_code 0 "myfunction arg1"
|
|
55
|
+
|
|
56
|
+
test_start "function_no_args"
|
|
57
|
+
assert_exit_code 1 "myfunction"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Available assertions
|
|
61
|
+
|
|
62
|
+
| Function | Description |
|
|
63
|
+
|----------|-------------|
|
|
64
|
+
| `assert_equals expected actual [msg]` | Two values are equal |
|
|
65
|
+
| `assert_not_equals unexpected actual [msg]` | Two values differ |
|
|
66
|
+
| `assert_exit_code code command` | Command exits with given code |
|
|
67
|
+
| `assert_output_contains needle command` | Output contains string |
|
|
68
|
+
| `assert_output_not_contains needle command` | Output lacks string |
|
|
69
|
+
| `assert_output_matches pattern command` | Output matches regex |
|
|
70
|
+
| `assert_file_exists path [msg]` | File exists |
|
|
71
|
+
| `assert_file_not_exists path [msg]` | File doesn't exist |
|
|
72
|
+
| `assert_dir_exists path [msg]` | Directory exists |
|
|
73
|
+
| `assert_dir_not_exists path [msg]` | Directory doesn't exist |
|
|
74
|
+
| `assert_true condition [msg]` | Condition is true |
|
|
75
|
+
| `assert_false condition [msg]` | Condition is false |
|
|
76
|
+
| `assert_empty value [msg]` | String is empty |
|
|
77
|
+
| `assert_not_empty value [msg]` | String isn't empty |
|
|
78
|
+
| `assert_file_contains file needle [msg]` | File contains text |
|
|
79
|
+
| `assert_file_not_contains file needle [msg]` | File lacks text |
|
|
80
|
+
|
|
81
|
+
### Mock utilities
|
|
82
|
+
|
|
83
|
+
| Function | Description |
|
|
84
|
+
|----------|-------------|
|
|
85
|
+
| `mock_init` | Initialize mock environment |
|
|
86
|
+
| `mock_command name output [exit_code]` | Create a mock command |
|
|
87
|
+
| `mock_command_spy name [output] [exit_code]` | Create a mock that records calls |
|
|
88
|
+
| `mock_get_calls name` | Get spy call history |
|
|
89
|
+
| `mock_call_count name` | Get number of spy calls |
|
|
90
|
+
| `mock_file content [filename]` | Create temp file with content |
|
|
91
|
+
| `mock_dir [prefix]` | Create temp directory |
|
|
92
|
+
| `mock_archive type [content]` | Create a mock archive file |
|
|
93
|
+
| `mock_env var_name value` | Set an environment variable |
|
|
94
|
+
| `mock_cleanup` | Clean up all mocks |
|
|
95
|
+
|
|
96
|
+
## Test categories
|
|
97
|
+
|
|
98
|
+
### Unit tests (`tests/unit/`)
|
|
99
|
+
|
|
100
|
+
Test individual functions in isolation. Each file follows the `test_*.sh` naming convention and is discoverable with `ls tests/unit/`.
|
|
101
|
+
|
|
102
|
+
### Integration tests (`tests/integration/`)
|
|
103
|
+
|
|
104
|
+
Test complete workflows like the installation script and end-to-end apply behavior.
|
|
105
|
+
|
|
106
|
+
### Performance tests (`tests/performance/`)
|
|
107
|
+
|
|
108
|
+
Measure resource efficiency with shell startup benchmarks and load tests.
|
|
109
|
+
|
|
110
|
+
## Coverage goals
|
|
111
|
+
|
|
112
|
+
| Category | Target | Current |
|
|
113
|
+
|----------|--------|---------|
|
|
114
|
+
| Module coverage | >=95% | 100% |
|
|
115
|
+
| Unit test files | - | 425 |
|
|
116
|
+
| Integration test files | - | 11 |
|
|
117
|
+
| Total test files | - | 436 |
|
|
118
|
+
| Named tests (`test_start`) | - | 2149 |
|
|
119
|
+
| Unit test pass rate | 100% | 100% |
|
|
120
|
+
|
|
121
|
+
CI enforces module coverage via:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
MIN_COVERAGE=95 ./tests/framework/module_coverage.sh
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
For a current local baseline, run:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
bash ./scripts/qa/coverage-baseline.sh --with-module-coverage
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
For core internal behavior traceability, run:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
bash ./scripts/qa/traceability-coverage.sh
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## CI integration
|
|
140
|
+
|
|
141
|
+
Tests run automatically on every push to main, every pull request, and weekly scheduled runs (Monday 6 AM UTC).
|
|
142
|
+
|
|
143
|
+
### GitHub Actions example
|
|
144
|
+
|
|
145
|
+
```yaml
|
|
146
|
+
- name: Run Tests
|
|
147
|
+
run: |
|
|
148
|
+
chmod +x ./tests/framework/test_runner.sh
|
|
149
|
+
./tests/framework/test_runner.sh
|
|
150
|
+
|
|
151
|
+
- name: Run Integration Tests
|
|
152
|
+
run: |
|
|
153
|
+
RUN_INTEGRATION=1 ./tests/framework/test_runner.sh
|
|
154
|
+
|
|
155
|
+
- name: Run Performance Benchmarks
|
|
156
|
+
run: |
|
|
157
|
+
./tests/performance/benchmark_runner.sh
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Environment variables
|
|
161
|
+
|
|
162
|
+
| Variable | Default | Description |
|
|
163
|
+
|----------|---------|-------------|
|
|
164
|
+
| `RUN_INTEGRATION` | `0` | Set to `1` to include integration tests |
|
|
165
|
+
| `VERBOSE` | `0` | Set to `1` for verbose output |
|
|
166
|
+
| `REPO_ROOT` | Auto-detected | Repository root directory |
|
|
167
|
+
| `TESTS_DIR` | Auto-detected | Tests directory |
|
|
168
|
+
|
|
169
|
+
## Best practices
|
|
170
|
+
|
|
171
|
+
1. **Isolation** -- Each test should be independent and self-contained.
|
|
172
|
+
2. **Cleanup** -- Use mocks that auto-cleanup via traps.
|
|
173
|
+
3. **No sleep** -- Avoid `sleep` or hardcoded delays.
|
|
174
|
+
4. **Descriptive names** -- Test names should describe what's being verified.
|
|
175
|
+
5. **Edge cases** -- Test error conditions, not just happy paths.
|
|
176
|
+
6. **Security** -- Include tests for dangerous input rejection.
|
|
177
|
+
|
|
178
|
+
## Troubleshooting
|
|
179
|
+
|
|
180
|
+
### Tests not found
|
|
181
|
+
|
|
182
|
+
Make sure test files match the `test_*.sh` pattern and are executable:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
chmod +x tests/unit/test_*.sh
|
|
186
|
+
chmod +x tests/integration/test_*.sh
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Function not available
|
|
190
|
+
|
|
191
|
+
If a test reports "function not available", verify the source file exists:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
ls -la .chezmoitemplates/functions/
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Mock cleanup issues
|
|
198
|
+
|
|
199
|
+
If mocks aren't cleaning up, make sure you aren't running with `set -e` before mock operations that might intentionally fail.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
render_with_liquid: false
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Behavioral Traceability
|
|
6
|
+
|
|
7
|
+
This matrix ties core internal behaviors to implementation files, automated tests, and prose documentation.
|
|
8
|
+
|
|
9
|
+
It is enforced by `bash ./scripts/qa/traceability-coverage.sh`.
|
|
10
|
+
|
|
11
|
+
| Behavior ID | Behavior | Implementation | Test Evidence | Documentation |
|
|
12
|
+
|-------------|----------|----------------|---------------|---------------|
|
|
13
|
+
| BT-01 | AI status, launcher, and cache lifecycle | `scripts/dot/commands/ai.sh` | `tests/unit/dot-cli/test_dot_commands_ai.sh` | `docs/AI.md`, `docs/reference/UTILS.md` |
|
|
14
|
+
| BT-02 | Agent profiles, checkpoints, and conformance | `scripts/dot/commands/agent.sh` | `tests/unit/dot-cli/test_dot_commands_agent.sh`, `tests/unit/dot-cli/test_dot_agent_mode.sh`, `tests/unit/dot-cli/test_dot_a2a_conformance.sh` | `docs/operations/TRUSTED_AGENT_WORKSTATION.md`, `docs/interop/A2A.md`, `docs/reference/UTILS.md` |
|
|
15
|
+
| BT-03 | MCP policy validation and registry inspection | `scripts/dot/commands/meta.sh`, `scripts/diagnostics/mcp-doctor.sh` | `tests/unit/dot-cli/test_dot_commands_meta.sh`, `tests/unit/dot-cli/test_dot_cli.sh` | `docs/security/MCP_POLICY.md`, `docs/operations/TRUSTED_AGENT_WORKSTATION.md`, `docs/reference/UTILS.md` |
|
|
16
|
+
| BT-04 | Fleet status, drift, namespace, and events workflows | `scripts/dot/commands/fleet.sh` | `tests/unit/dot-cli/test_dot_commands_fleet.sh`, `tests/unit/dot-cli/test_dot_fleet_enforcement.sh` | `docs/operations/TRUSTED_AGENT_WORKSTATION.md`, `docs/operations/ATTESTATION.md`, `docs/reference/UTILS.md` |
|
|
17
|
+
| BT-05 | Secrets command surface and shell autoload buckets | `scripts/dot/commands/secrets.sh`, `dot_config/shell/10-secrets.sh` | `tests/unit/dot-cli/test_dot_commands_secrets.sh`, `tests/unit/shell/test_shell_secrets_autoload.sh` | `docs/security/SECRETS.md`, `docs/reference/UTILS.md` |
|
|
18
|
+
| BT-06 | Theme synchronization and multi-tool theme application | `dot_local/bin/executable_dot-theme-sync` | `tests/unit/theme/test_dot_theme_sync.sh` | `docs/guides/THEMING.md`, `docs/reference/THEMES.md`, `docs/reference/SCRIPTS.md` |
|
|
19
|
+
| BT-07 | Reliability audit orchestration | `scripts/qa/reliability-audit.sh` | `tests/unit/misc/test_qa_reliability.sh`, `tests/unit/misc/test_qa_reliability_behaviour.sh` | `docs/operations/RELIABILITY.md`, `docs/operations/TESTING.md` |
|
|
20
|
+
| BT-08 | Repository coverage baseline audit | `scripts/qa/coverage-baseline.sh` | `tests/unit/misc/test_qa_coverage_baseline.sh` | `docs/operations/RELIABILITY.md`, `docs/operations/TESTING.md` |
|
|
21
|
+
| BT-09 | Documentation coverage contract for public surfaces | `scripts/qa/docs-coverage.sh` | `tests/unit/misc/test_qa_docs_coverage.sh`, `tests/unit/misc/test_qa_docs_repo_coverage.sh` | `docs/operations/RELIABILITY.md`, `docs/reference/UTILS.md`, `docs/reference/SCRIPTS.md` |
|
|
22
|
+
| BT-10 | Repository executable-surface coverage gate | `tests/framework/module_coverage.sh` | `tests/unit/tools/test_public_entrypoints.sh`, `tests/unit/misc/test_module_coverage_behaviour.sh` | `docs/operations/TESTING.md`, `docs/security/VERIFICATION_VALIDATION.md`, `docs/reference/SCRIPTS.md` |
|
|
23
|
+
| BT-11 | Core apply, diff, status, edit, and commit workflows | `scripts/dot/commands/core.sh` | `tests/unit/dot-cli/test_dot_commands_core.sh`, `tests/unit/dot-cli/test_dot_cli.sh` | `docs/reference/UTILS.md` |
|
|
24
|
+
| BT-12 | Alias discovery, search, and governance workflows | `scripts/dot/commands/aliases.sh` | `tests/unit/dot-cli/test_dot_commands_aliases.sh` | `docs/reference/ALIASES.md`, `docs/reference/UTILS.md` |
|
|
25
|
+
| BT-13 | Appearance and theme command workflows | `scripts/dot/commands/appearance.sh` | `tests/unit/dot-cli/test_dot_commands_appearance.sh` | `docs/guides/THEMING.md`, `docs/reference/UTILS.md` |
|
|
26
|
+
| BT-14 | Diagnostics command workflows | `scripts/dot/commands/diagnostics.sh` | `tests/unit/dot-cli/test_dot_commands_diagnostics.sh` | `docs/operations/RELIABILITY.md`, `docs/reference/UTILS.md` |
|
|
27
|
+
| BT-15 | Lint command workflow | `scripts/dot/commands/lint.sh` | `tests/unit/dot-cli/test_dot_commands_lint.sh`, `tests/unit/dot-cli/test_lint.sh` | `docs/operations/TESTING.md`, `docs/reference/UTILS.md` |
|
|
28
|
+
| BT-16 | AI steering pattern workflows | `scripts/dot/commands/patterns.sh` | `tests/unit/dot-cli/test_dot_commands_patterns.sh` | `docs/AI.md` |
|
|
29
|
+
| BT-17 | Restore and rollback workflows | `scripts/dot/commands/restore.sh` | `tests/unit/dot-cli/test_dot_commands_restore.sh` | `docs/reference/UTILS.md` |
|
|
30
|
+
| BT-18 | Security command workflows | `scripts/dot/commands/security.sh` | `tests/unit/dot-cli/test_dot_commands_security.sh` | `docs/reference/UTILS.md`, `docs/security/COMPLIANCE.md` |
|
|
31
|
+
| BT-19 | Tool catalog and sandbox workflows | `scripts/dot/commands/tools.sh` | `tests/unit/dot-cli/test_dot_commands_tools.sh` | `docs/reference/TOOLS.md`, `docs/reference/UTILS.md` |
|
|
32
|
+
| BT-20 | Example validation contract | `scripts/qa/validate-examples.sh` | `tests/unit/misc/test_qa_reliability.sh` | `docs/operations/RELIABILITY.md` |
|
|
33
|
+
| BT-21 | WSL parity contract | `scripts/qa/wsl-contract.sh` | `tests/unit/misc/test_qa_reliability.sh` | `docs/operations/RELIABILITY.md`, `docs/reference/SUPPORT_MATRIX.md` |
|
|
34
|
+
| BT-22 | Internal behavior traceability contract | `scripts/qa/traceability-coverage.sh` | `tests/unit/misc/test_qa_traceability_coverage.sh` | `docs/operations/TRACEABILITY.md`, `docs/operations/RELIABILITY.md` |
|
|
35
|
+
| BT-23 | Multi-format Manual pipeline | `scripts/docs/build-manual.sh`, `scripts/docs/check-manual.sh`, `scripts/dot/commands/manual.sh` | `tests/unit/docs/test_build_manual.sh`, `tests/unit/docs/test_check_manual.sh`, `tests/unit/dot-cli/test_dot_commands_manual.sh` | `docs/manual/`, `docs/README.md`, `README.md` |
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
render_with_liquid: false
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Trusted Agent Workstation
|
|
6
|
+
|
|
7
|
+
This repository is more than shell setup.
|
|
8
|
+
|
|
9
|
+
It defines a signed, local-first workstation baseline for agentic development on macOS, Linux, WSL, and PowerShell.
|
|
10
|
+
|
|
11
|
+
## Core model
|
|
12
|
+
|
|
13
|
+
- bounded agent profiles
|
|
14
|
+
- tracked MCP policy and registry
|
|
15
|
+
- workstation attestation
|
|
16
|
+
- signed commits and verified merges
|
|
17
|
+
- cross-platform CLI and diagnostics
|
|
18
|
+
|
|
19
|
+
## Governance artifacts
|
|
20
|
+
|
|
21
|
+
The source of truth lives in tracked JSON artifacts:
|
|
22
|
+
|
|
23
|
+
- [policy-bundles.json](/home/seb/.dotfiles/dot_config/dotfiles/policy-bundles.json)
|
|
24
|
+
- [agent-profiles.json](/home/seb/.dotfiles/dot_config/dotfiles/agent-profiles.json)
|
|
25
|
+
- [mcp-policy.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-policy.json)
|
|
26
|
+
- [mcp-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-registry.json)
|
|
27
|
+
- [model-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/model-registry.json)
|
|
28
|
+
- [prompt-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/prompt-registry.json)
|
|
29
|
+
|
|
30
|
+
## Enterprise path
|
|
31
|
+
|
|
32
|
+
Phase 1 establishes:
|
|
33
|
+
|
|
34
|
+
- product framing
|
|
35
|
+
- policy bundles
|
|
36
|
+
- prompt and model change control
|
|
37
|
+
- attestation evidence for governance state
|
|
38
|
+
|
|
39
|
+
Implemented next-layer controls:
|
|
40
|
+
|
|
41
|
+
- filesystem-backed fleet attestation export
|
|
42
|
+
- replayable agent checkpoints
|
|
43
|
+
- signed policy bundle release workflow
|
|
44
|
+
- tracked A2A conformance validation
|
|
45
|
+
|
|
46
|
+
Further phases add:
|
|
47
|
+
|
|
48
|
+
- central audit export
|
|
49
|
+
- fleet drift dashboards
|
|
50
|
+
- checkpoint policies and retention controls
|
|
51
|
+
- broader protocol interoperability coverage
|
|
52
|
+
|
|
53
|
+
## Validation
|
|
54
|
+
|
|
55
|
+
Run:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
dot doctor
|
|
59
|
+
dot mcp --strict
|
|
60
|
+
dot mode list
|
|
61
|
+
dot agent card --json
|
|
62
|
+
dot attest --json
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Every governance change requires a signed commit.
|