[tools] java = "latest" [task_config] shell = "java scripts/mise_shell.java" [tasks.default] description = "List tasks" hide = true run = 'run("mise", "tasks", "ls");' [tasks.check] description = "Verify crypto, hooks, secrets, and symlink manifests" run = 'run("java", "bootstripper.java", "check");' [tasks.ci] description = "Run committed-state Podman CI check" run = 'run("java", "./scripts/dotfiles_integration_test.java");' [tasks.ci-check] description = "Run the CI check suite" hide = true run = 'run("java", "./scripts/dotfiles_integration_test.java", "--inside");' [tasks.crypto-test] description = "Run the complete crypto acceptance suite" hide = true run = 'run("java", "./scripts/dotfiles_integration_test.java", "--crypto");' [tasks.crypto-git-test] description = "Run focused encrypted Git filter and merge tests" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--crypto-git");' [tasks.crypto-restore-test] description = "Run focused encrypted-secret restoration tests" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--crypto-restore");' [tasks.fresh-checkout-crypto-test] description = "Test link-time crypto setup from a fresh encrypted checkout" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--fresh-checkout-crypto");' [tasks.bootstrap-test] description = "Run focused bootstrap and platform-selection tests" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--bootstrap");' [tasks.hooks-test] description = "Run isolated Git hook and link integration tests" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--hooks");' [tasks.mise-shell-test] description = "Run focused Mise Java task-shell tests" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--mise-shell");' [tasks.mise-route-test] description = "Test the production Mise link-task route" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--mise-route");' [tasks.manifests-test] description = "Validate all repository symlink manifest contracts" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--manifest-contracts");' [tasks.process-harness-test] description = "Test integration subprocess timeout and cleanup" run = 'run("java", "./scripts/dotfiles_integration_test.java", "--process-cleanup");' [tasks.secrets-scan] description = "Scan committed Git history for plaintext secrets" run = 'run("gitleaks", "git", "--redact=100", "--no-banner", "--log-opts=--all --full-history --diff-merges=first-parent --no-ext-diff --no-textconv");' [tasks.link] description = "Converge crypto and hooks, validate manifests, and link dorkfiles into HOME" run = 'run("java", "bootstripper.java", "link");' [tasks.setup-crypto] description = "Configure crypto and decrypt unchanged checkout secrets; refuse local changes" run = 'run("java", "bootstripper.java", "setup-crypto");' [tasks.clean] description = "Remove managed dorkfiles links from HOME" run = 'run("java", "bootstripper.java", "clean");' [tasks.init] description = "Create initial crypto salt" hide = true run = 'run("java", "bootstripper.java", "init-crypto");' [tasks.hook] description = "Install Git hooks" hide = true run = 'run("java", "bootstripper.java", "install-hooks");' [tasks.fix] description = "Fix local file permissions" hide = true run = 'run("java", "scripts/fix_permissions.java");' [tasks.wiki-test] description = "Test Wiki skill and prompt contracts" run = 'run("npm", "--prefix", "pi/agent/skills/wiki", "test");' [tasks.niri-test] description = "Test Niri modernization inspector, Nugu generation, and config loading" run = ''' run("node", "--test", "niri/.pi/skills/modernize/scripts/inspect.test.mjs"); run("node", "--test", "niri/config.test.mjs", "niri/theme.test.mjs"); run("niri", "validate", "-c", "niri/config.kdl"); ''' [tasks.nugu-termux] description = "Generate both Nugu Termux palettes without selecting a mode" run = ''' cd("nugu"); run("just", "--shell", "nu", "--clear-shell-args", "--shell-arg=--no-config-file", "--shell-arg=--commands", "termux"); ''' [tasks.termux-test] description = "Test Nugu Termux generation and manual theme switching" run = ''' run("nu", "--no-config-file", "-c", "for file in [nugu/termux.nu nushell/modules/termux-theme.nu] { if not (nu-check --as-module $file) { error make {msg: $'Parse failed: ($file)'} } }"); run("node", "--test", "termux/theme.test.mjs"); ''' [tasks.wezterm-test] description = "Test WezTerm modernization and instance helpers" run = ''' run("node", "--test", "wezterm/.pi/skills/modernize/scripts/inspect.test.mjs"); run("nu", "--no-config-file", "wezterm/tests/wezterm_instances_test.nu"); ''' [tasks.win32-drive-test] description = "Test the win32-drive skill script against a fixture window (takes over the Windows desktop)" run = ''' run("powershell.exe", "-NoProfile", "-ExecutionPolicy", "Bypass", "-File", "pi/agent/skillz/win32-drive/scripts/win32-drive.test.ps1"); '''