@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
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Roadmap
|
|
2
2
|
|
|
3
3
|
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
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Reproducibility
|
|
8
8
|
**Goal:** "Reproducible Shell Environments".
|
|
9
9
|
> *This distribution aims for deterministic rebuilds: the same tag yields the same environment across machines.*
|
|
10
10
|
|
|
@@ -16,29 +16,29 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
16
16
|
- [ ] **Container Native (Phase 28)**: Base Docker image for devcontainers.
|
|
17
17
|
- [ ] **Terraform Provider (Phase 28)**: Custom provider to provision dotfiles state.
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Observability
|
|
20
20
|
**Goal:** "Observable Shell Lifecycle".
|
|
21
21
|
> *The shell is instrumented: failures, timing, and lifecycle events are visible by design.*
|
|
22
22
|
|
|
23
|
-
- [
|
|
24
|
-
- [
|
|
25
|
-
- [
|
|
23
|
+
- [x] **Audit Structuring**: JSON-structured logging for bootstrap and provisioning events.
|
|
24
|
+
- [x] **Debug Modes**: First-class support for `DOTFILES_DEBUG=1` and `DOTFILES_TRACE=1`.
|
|
25
|
+
- [x] **Telemetry (Local)**: Granular startup timing breakdown via `dot perf`.
|
|
26
26
|
- [ ] **Health Dashboard (Phase 39)**: CLI view of system "health" metrics.
|
|
27
27
|
- [ ] **System Status (Phase 39)**: Real-time resource usage, battery, and network stats.
|
|
28
28
|
- [ ] **Update Manager (Phase 39)**: Visual interface for tool updates and migration.
|
|
29
29
|
|
|
30
|
-
##
|
|
30
|
+
## Secrets
|
|
31
31
|
**Goal:** "Explicit Secrets Model".
|
|
32
32
|
> *Secrets are never committed; sensitive state is encrypted or host-local by default.*
|
|
33
33
|
|
|
34
|
-
- [
|
|
35
|
-
- [
|
|
34
|
+
- [x] **Secret Driver**: Native integration with 1Password/Bitwarden CLI via `chezmoi`.
|
|
35
|
+
- [x] **Encryption**: Promoted use of `age` encryption for all private config files.
|
|
36
36
|
- [ ] **Leak Prevention (Phase 29)**: Pre-commit hooks (TruffleHog/Gitleaks) for high-entropy detection.
|
|
37
37
|
- [ ] **Vault Integration (Phase 29)**: Native HashiCorp Vault support.
|
|
38
38
|
- [ ] **Hardware Enclaves (Phase 29)**: Support for Secure Enclave/TPM key storage.
|
|
39
39
|
- [ ] **OIDC Auth (Phase 29)**: Keyless authentication via GitHub OIDC.
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## Toolchain
|
|
42
42
|
**Goal:** "Composable Shell Layers".
|
|
43
43
|
> *The distribution is layered: core safety is mandatory, advanced features are opt-in.*
|
|
44
44
|
|
|
@@ -50,7 +50,7 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
50
50
|
- [ ] **Wasm Target**: WebAssembly toolchain setup.
|
|
51
51
|
- [ ] **Embedded Dev**: Presets for Arduino/ESP32.
|
|
52
52
|
|
|
53
|
-
##
|
|
53
|
+
## Opt-in features
|
|
54
54
|
**Goal:** "Explicit Feature Flags".
|
|
55
55
|
> *Advanced features are gated behind explicit opt-in flags.*
|
|
56
56
|
|
|
@@ -61,11 +61,11 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
61
61
|
- [ ] **Dependency Solving**: Semantic versioning for modules.
|
|
62
62
|
- [ ] **Verified Publishers**: Cryptographic signing for "Official" modules.
|
|
63
63
|
|
|
64
|
-
##
|
|
64
|
+
## Safety
|
|
65
65
|
**Goal:** "Documented Threat Model".
|
|
66
66
|
> *Security decisions are driven by an explicit, documented threat model.*
|
|
67
67
|
|
|
68
|
-
- [
|
|
68
|
+
- [x] **Threat Model Doc**: A lightweight document defining the trust boundary (Local Machine). See `docs/security/THREAT_MODEL.md`.
|
|
69
69
|
- [ ] **Supply Chain**: Verification steps for upstream dependencies.
|
|
70
70
|
- [ ] **Identity & Access (Phase 40)**:
|
|
71
71
|
- [ ] **SSH Certs**: Short-lived SSH Certificates.
|
|
@@ -73,33 +73,33 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
73
73
|
- [ ] **PAM Modules**: Custom auth modules.
|
|
74
74
|
- [ ] **Auditd Rules**: Pre-configured audit rules.
|
|
75
75
|
|
|
76
|
-
##
|
|
76
|
+
## Validation
|
|
77
77
|
**Goal:** "Self-Validating Environment".
|
|
78
78
|
> *The environment can validate itself after installation or update.*
|
|
79
79
|
|
|
80
|
-
- [
|
|
81
|
-
- [
|
|
82
|
-
- [
|
|
80
|
+
- [x] **Smoke Tests**: Automated verification of key aliases (`ls`, `git`, `docker`).
|
|
81
|
+
- [x] **CI Validation**: GitHub Actions workflow to boot and verify the shell syntax.
|
|
82
|
+
- [x] **Chaos Engineering (Phase 41)**:
|
|
83
83
|
- [ ] **Config Chaos**: Randomly corrupt config files to test recovery.
|
|
84
84
|
- [ ] **Network Simulation**: Simulate high latency/packet loss.
|
|
85
85
|
- [ ] **Permission Fuzzing**: Verify strict umask behavior.
|
|
86
86
|
|
|
87
|
-
##
|
|
87
|
+
## Distribution
|
|
88
88
|
**Goal:** "Supported Platforms Matrix".
|
|
89
89
|
> *Only listed platforms are guaranteed to work; others are best-effort.*
|
|
90
90
|
|
|
91
|
-
- [
|
|
91
|
+
- [x] **Support Matrix**: Explicit table of OS/Version support. See `docs/reference/SUPPORT_MATRIX.md`.
|
|
92
92
|
- [ ] **Windows Deep Integration (Phase 53)**:
|
|
93
93
|
- [ ] **PowerShell Profile**: Mirror Zsh functionality.
|
|
94
94
|
- [ ] **WinGet**: Declarative package management.
|
|
95
95
|
- [ ] **WSL Bridge**: Seamless interop.
|
|
96
96
|
- [ ] **Linux Deep Integration (Phase 55)**:
|
|
97
|
-
- [
|
|
97
|
+
- [x] **Systemd User Units**: User service management.
|
|
98
98
|
- [ ] **Desktop Envs**: GNOME/KDE/Sway configs.
|
|
99
99
|
|
|
100
100
|
---
|
|
101
101
|
|
|
102
|
-
##
|
|
102
|
+
## Future
|
|
103
103
|
|
|
104
104
|
### Domain-Specific Environments
|
|
105
105
|
- [ ] **Data Science (Phase 38)**: Conda/Mamba, GPU Config, Jupyter.
|
|
@@ -125,7 +125,7 @@ This roadmap steers the project from a "feature-rich dotfiles repo" to an **Ente
|
|
|
125
125
|
|
|
126
126
|
---
|
|
127
127
|
|
|
128
|
-
##
|
|
128
|
+
## Completed
|
|
129
129
|
|
|
130
130
|
### Core Foundations
|
|
131
131
|
- [x] **Universal Config (Chezmoi) (Phase 1)**
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# Testing strategy
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
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.
|
|
6
|
+
|
|
7
|
+
## Quick start
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Run all unit tests
|
|
11
|
+
./tests/framework/test_runner.sh
|
|
12
|
+
|
|
13
|
+
# Run a specific test suite
|
|
14
|
+
./tests/framework/test_runner.sh extract
|
|
15
|
+
|
|
16
|
+
# Run integration tests
|
|
17
|
+
RUN_INTEGRATION=1 ./tests/framework/test_runner.sh
|
|
18
|
+
|
|
19
|
+
# Run performance benchmarks
|
|
20
|
+
./tests/performance/benchmark_runner.sh
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Test structure
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
tests/
|
|
27
|
+
├── framework/ # Test framework
|
|
28
|
+
│ ├── assertions.sh # 16 assertion functions
|
|
29
|
+
│ ├── mocks.sh # Mock utilities
|
|
30
|
+
│ └── test_runner.sh # Test executor
|
|
31
|
+
├── unit/ # 425 unit test files
|
|
32
|
+
├── integration/ # 11 integration test files
|
|
33
|
+
└── performance/ # Benchmarks
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Writing tests
|
|
37
|
+
|
|
38
|
+
### Test file template
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
#!/usr/bin/env bash
|
|
42
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
43
|
+
source "$SCRIPT_DIR/../framework/assertions.sh"
|
|
44
|
+
|
|
45
|
+
# Source the function under test
|
|
46
|
+
source "$HOME/.dotfiles/.chezmoitemplates/functions/myfunction.sh"
|
|
47
|
+
|
|
48
|
+
# Test cases
|
|
49
|
+
test_start "function_basic_usage"
|
|
50
|
+
assert_exit_code 0 "myfunction arg1"
|
|
51
|
+
|
|
52
|
+
test_start "function_no_args"
|
|
53
|
+
assert_exit_code 1 "myfunction"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Available assertions
|
|
57
|
+
|
|
58
|
+
| Function | Description |
|
|
59
|
+
|----------|-------------|
|
|
60
|
+
| `assert_equals expected actual [msg]` | Two values are equal |
|
|
61
|
+
| `assert_not_equals unexpected actual [msg]` | Two values differ |
|
|
62
|
+
| `assert_exit_code code command` | Command exits with given code |
|
|
63
|
+
| `assert_output_contains needle command` | Output contains string |
|
|
64
|
+
| `assert_output_not_contains needle command` | Output lacks string |
|
|
65
|
+
| `assert_output_matches pattern command` | Output matches regex |
|
|
66
|
+
| `assert_file_exists path [msg]` | File exists |
|
|
67
|
+
| `assert_file_not_exists path [msg]` | File doesn't exist |
|
|
68
|
+
| `assert_dir_exists path [msg]` | Directory exists |
|
|
69
|
+
| `assert_dir_not_exists path [msg]` | Directory doesn't exist |
|
|
70
|
+
| `assert_true condition [msg]` | Condition is true |
|
|
71
|
+
| `assert_false condition [msg]` | Condition is false |
|
|
72
|
+
| `assert_empty value [msg]` | String is empty |
|
|
73
|
+
| `assert_not_empty value [msg]` | String isn't empty |
|
|
74
|
+
| `assert_file_contains file needle [msg]` | File contains text |
|
|
75
|
+
| `assert_file_not_contains file needle [msg]` | File lacks text |
|
|
76
|
+
|
|
77
|
+
### Mock utilities
|
|
78
|
+
|
|
79
|
+
| Function | Description |
|
|
80
|
+
|----------|-------------|
|
|
81
|
+
| `mock_init` | Initialize mock environment |
|
|
82
|
+
| `mock_command name output [exit_code]` | Create a mock command |
|
|
83
|
+
| `mock_command_spy name [output] [exit_code]` | Create a mock that records calls |
|
|
84
|
+
| `mock_get_calls name` | Get spy call history |
|
|
85
|
+
| `mock_call_count name` | Get number of spy calls |
|
|
86
|
+
| `mock_file content [filename]` | Create temp file with content |
|
|
87
|
+
| `mock_dir [prefix]` | Create temp directory |
|
|
88
|
+
| `mock_archive type [content]` | Create a mock archive file |
|
|
89
|
+
| `mock_env var_name value` | Set an environment variable |
|
|
90
|
+
| `mock_cleanup` | Clean up all mocks |
|
|
91
|
+
|
|
92
|
+
## Test categories
|
|
93
|
+
|
|
94
|
+
### Unit tests (`tests/unit/`)
|
|
95
|
+
|
|
96
|
+
Test individual functions in isolation. Each file follows the `test_*.sh` naming convention and is discoverable with `ls tests/unit/`.
|
|
97
|
+
|
|
98
|
+
### Integration tests (`tests/integration/`)
|
|
99
|
+
|
|
100
|
+
Test complete workflows like the installation script and end-to-end apply behavior.
|
|
101
|
+
|
|
102
|
+
### Performance tests (`tests/performance/`)
|
|
103
|
+
|
|
104
|
+
Measure resource efficiency with shell startup benchmarks and load tests.
|
|
105
|
+
|
|
106
|
+
## Coverage goals
|
|
107
|
+
|
|
108
|
+
| Category | Target | Current |
|
|
109
|
+
|----------|--------|---------|
|
|
110
|
+
| Module coverage | >=95% | 100% |
|
|
111
|
+
| Unit test files | - | 425 |
|
|
112
|
+
| Integration test files | - | 11 |
|
|
113
|
+
| Total test files | - | 436 |
|
|
114
|
+
| Named tests (`test_start`) | - | 2149 |
|
|
115
|
+
| Unit test pass rate | 100% | 100% |
|
|
116
|
+
|
|
117
|
+
CI enforces module coverage via:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
MIN_COVERAGE=95 ./tests/framework/module_coverage.sh
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
For a current local baseline, run:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
bash ./scripts/qa/coverage-baseline.sh --with-module-coverage
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
For core internal behavior traceability, run:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
bash ./scripts/qa/traceability-coverage.sh
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## CI integration
|
|
136
|
+
|
|
137
|
+
Tests run automatically on every push to main, every pull request, and weekly scheduled runs (Monday 6 AM UTC).
|
|
138
|
+
|
|
139
|
+
### GitHub Actions example
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
- name: Run Tests
|
|
143
|
+
run: |
|
|
144
|
+
chmod +x ./tests/framework/test_runner.sh
|
|
145
|
+
./tests/framework/test_runner.sh
|
|
146
|
+
|
|
147
|
+
- name: Run Integration Tests
|
|
148
|
+
run: |
|
|
149
|
+
RUN_INTEGRATION=1 ./tests/framework/test_runner.sh
|
|
150
|
+
|
|
151
|
+
- name: Run Performance Benchmarks
|
|
152
|
+
run: |
|
|
153
|
+
./tests/performance/benchmark_runner.sh
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Environment variables
|
|
157
|
+
|
|
158
|
+
| Variable | Default | Description |
|
|
159
|
+
|----------|---------|-------------|
|
|
160
|
+
| `RUN_INTEGRATION` | `0` | Set to `1` to include integration tests |
|
|
161
|
+
| `VERBOSE` | `0` | Set to `1` for verbose output |
|
|
162
|
+
| `REPO_ROOT` | Auto-detected | Repository root directory |
|
|
163
|
+
| `TESTS_DIR` | Auto-detected | Tests directory |
|
|
164
|
+
|
|
165
|
+
## Best practices
|
|
166
|
+
|
|
167
|
+
1. **Isolation** -- Each test should be independent and self-contained.
|
|
168
|
+
2. **Cleanup** -- Use mocks that auto-cleanup via traps.
|
|
169
|
+
3. **No sleep** -- Avoid `sleep` or hardcoded delays.
|
|
170
|
+
4. **Descriptive names** -- Test names should describe what's being verified.
|
|
171
|
+
5. **Edge cases** -- Test error conditions, not just happy paths.
|
|
172
|
+
6. **Security** -- Include tests for dangerous input rejection.
|
|
173
|
+
|
|
174
|
+
## Troubleshooting
|
|
175
|
+
|
|
176
|
+
### Tests not found
|
|
177
|
+
|
|
178
|
+
Make sure test files match the `test_*.sh` pattern and are executable:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
chmod +x tests/unit/test_*.sh
|
|
182
|
+
chmod +x tests/integration/test_*.sh
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Function not available
|
|
186
|
+
|
|
187
|
+
If a test reports "function not available", verify the source file exists:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
ls -la .chezmoitemplates/functions/
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Mock cleanup issues
|
|
194
|
+
|
|
195
|
+
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,31 @@
|
|
|
1
|
+
# Behavioral Traceability
|
|
2
|
+
|
|
3
|
+
This matrix ties core internal behaviors to implementation files, automated tests, and prose documentation.
|
|
4
|
+
|
|
5
|
+
It is enforced by `bash ./scripts/qa/traceability-coverage.sh`.
|
|
6
|
+
|
|
7
|
+
| Behavior ID | Behavior | Implementation | Test Evidence | Documentation |
|
|
8
|
+
|-------------|----------|----------------|---------------|---------------|
|
|
9
|
+
| 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` |
|
|
10
|
+
| 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` |
|
|
11
|
+
| 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` |
|
|
12
|
+
| 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` |
|
|
13
|
+
| 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` |
|
|
14
|
+
| 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` |
|
|
15
|
+
| 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` |
|
|
16
|
+
| 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` |
|
|
17
|
+
| 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` |
|
|
18
|
+
| 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` |
|
|
19
|
+
| 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` |
|
|
20
|
+
| 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` |
|
|
21
|
+
| 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` |
|
|
22
|
+
| 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` |
|
|
23
|
+
| 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` |
|
|
24
|
+
| BT-16 | AI steering pattern workflows | `scripts/dot/commands/patterns.sh` | `tests/unit/dot-cli/test_dot_commands_patterns.sh` | `docs/AI.md` |
|
|
25
|
+
| BT-17 | Restore and rollback workflows | `scripts/dot/commands/restore.sh` | `tests/unit/dot-cli/test_dot_commands_restore.sh` | `docs/reference/UTILS.md` |
|
|
26
|
+
| 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` |
|
|
27
|
+
| 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` |
|
|
28
|
+
| BT-20 | Example validation contract | `scripts/qa/validate-examples.sh` | `tests/unit/misc/test_qa_reliability.sh` | `docs/operations/RELIABILITY.md` |
|
|
29
|
+
| 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` |
|
|
30
|
+
| 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` |
|
|
31
|
+
| 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,61 @@
|
|
|
1
|
+
# Trusted Agent Workstation
|
|
2
|
+
|
|
3
|
+
This repository is more than shell setup.
|
|
4
|
+
|
|
5
|
+
It defines a signed, local-first workstation baseline for agentic development on macOS, Linux, WSL, and PowerShell.
|
|
6
|
+
|
|
7
|
+
## Core model
|
|
8
|
+
|
|
9
|
+
- bounded agent profiles
|
|
10
|
+
- tracked MCP policy and registry
|
|
11
|
+
- workstation attestation
|
|
12
|
+
- signed commits and verified merges
|
|
13
|
+
- cross-platform CLI and diagnostics
|
|
14
|
+
|
|
15
|
+
## Governance artifacts
|
|
16
|
+
|
|
17
|
+
The source of truth lives in tracked JSON artifacts:
|
|
18
|
+
|
|
19
|
+
- [policy-bundles.json](/home/seb/.dotfiles/dot_config/dotfiles/policy-bundles.json)
|
|
20
|
+
- [agent-profiles.json](/home/seb/.dotfiles/dot_config/dotfiles/agent-profiles.json)
|
|
21
|
+
- [mcp-policy.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-policy.json)
|
|
22
|
+
- [mcp-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/mcp-registry.json)
|
|
23
|
+
- [model-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/model-registry.json)
|
|
24
|
+
- [prompt-registry.json](/home/seb/.dotfiles/dot_config/dotfiles/prompt-registry.json)
|
|
25
|
+
|
|
26
|
+
## Enterprise path
|
|
27
|
+
|
|
28
|
+
Phase 1 establishes:
|
|
29
|
+
|
|
30
|
+
- product framing
|
|
31
|
+
- policy bundles
|
|
32
|
+
- prompt and model change control
|
|
33
|
+
- attestation evidence for governance state
|
|
34
|
+
|
|
35
|
+
Implemented next-layer controls:
|
|
36
|
+
|
|
37
|
+
- filesystem-backed fleet attestation export
|
|
38
|
+
- replayable agent checkpoints
|
|
39
|
+
- signed policy bundle release workflow
|
|
40
|
+
- tracked A2A conformance validation
|
|
41
|
+
|
|
42
|
+
Further phases add:
|
|
43
|
+
|
|
44
|
+
- central audit export
|
|
45
|
+
- fleet drift dashboards
|
|
46
|
+
- checkpoint policies and retention controls
|
|
47
|
+
- broader protocol interoperability coverage
|
|
48
|
+
|
|
49
|
+
## Validation
|
|
50
|
+
|
|
51
|
+
Run:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
dot doctor
|
|
55
|
+
dot mcp --strict
|
|
56
|
+
dot mode list
|
|
57
|
+
dot agent card --json
|
|
58
|
+
dot attest --json
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Every governance change requires a signed commit.
|