@sebastienrousseau/dotfiles 0.2.519 → 0.2.521
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 +200 -0
- package/LICENSE-APACHE +190 -0
- package/{LICENSE → LICENSE-MIT} +1 -1
- package/README.md +1172 -166
- package/install.sh +77 -11
- package/package.json +8 -8
- package/tools/README.md +49 -0
- package/tools/ci/install-chezmoi-verified.sh +68 -0
- package/docs/.vitepress/reports/localization-readability-audit.md +0 -73
- package/docs/AI.md +0 -179
- package/docs/CNAME +0 -1
- package/docs/CONFIG_STRATEGY.md +0 -124
- package/docs/COPYRIGHT +0 -7
- package/docs/GOVERNANCE.md +0 -98
- package/docs/MAINTAINERS.md +0 -41
- package/docs/NAMING_CONVENTIONS.md +0 -102
- package/docs/OPENCODE.md +0 -127
- package/docs/README.md +0 -84
- package/docs/STRUCTURE.md +0 -102
- package/docs/adr/ADR-001-ci-cd-pipeline.md +0 -118
- package/docs/adr/ADR-002-shell-performance.md +0 -130
- package/docs/adr/ADR-003-security-first.md +0 -158
- package/docs/adr/ADR-004-cli-architecture.md +0 -171
- package/docs/adr/ADR-005-chezmoi-choice.md +0 -99
- package/docs/adr/ADR-006-shell-selection.md +0 -124
- package/docs/adr/ADR-007-multi-shell-parity.md +0 -62
- package/docs/adr/ADR-008-alias-system-architecture.md +0 -95
- package/docs/adr/ADR-009-wallpaper-driven-theming.md +0 -131
- package/docs/adr/ADR-010-starship-transient-prompt.md +0 -144
- package/docs/adr/ADR-011-nushell-tier3-keep.md +0 -144
- package/docs/adr/ADR-012-ai-fleet-local-proxy.md +0 -79
- package/docs/adr/README.md +0 -40
- package/docs/architecture/AI_COST_OPTIMIZATION.md +0 -144
- package/docs/architecture/ARCHITECTURE.md +0 -117
- package/docs/architecture/INTEROP.md +0 -44
- package/docs/architecture/REPO_LAYOUT.md +0 -241
- package/docs/architecture/WALKTHROUGH.md +0 -86
- package/docs/architecture/fleet-deployment.md +0 -77
- package/docs/archive/EUXIS_2026_REVIEW.md +0 -127
- package/docs/archive/LEGACY_ROADMAP.md +0 -6
- package/docs/archive/MILESTONE_v0.2.493.md +0 -47
- package/docs/archive/PLAN.md +0 -199
- package/docs/archive/REPO_AUDIT.md +0 -31
- package/docs/articles/.pages +0 -6
- package/docs/articles/2026-07-05-custom-mkdocs-material-dark-theme.md +0 -216
- package/docs/articles/2026-07-05-fish-startup-abbr.md +0 -153
- package/docs/articles/2026-07-05-master-to-main-rename-runbook.md +0 -128
- package/docs/articles/index.md +0 -36
- package/docs/guides/INSTALL.md +0 -144
- package/docs/guides/NEOVIM_IDE_GUIDE.md +0 -61
- package/docs/guides/THEMING.md +0 -230
- package/docs/guides/TROUBLESHOOTING.md +0 -176
- package/docs/guides/WSL2_NIX_TROUBLESHOOTING.md +0 -792
- package/docs/index.md +0 -132
- package/docs/interop/A2A.md +0 -39
- package/docs/interop/POWERSHELL.md +0 -102
- package/docs/manual/00-introduction.md +0 -89
- package/docs/manual/01-concepts/01-architecture.md +0 -138
- package/docs/manual/01-concepts/02-trust-model.md +0 -183
- package/docs/manual/01-concepts/03-theme-engine.md +0 -186
- package/docs/manual/01-concepts/04-fleet.md +0 -148
- package/docs/manual/01-concepts/05-self-healing.md +0 -204
- package/docs/manual/02-tutorials/01-first-install.md +0 -197
- package/docs/manual/02-tutorials/02-add-wallpaper.md +0 -216
- package/docs/manual/02-tutorials/03-create-profile.md +0 -244
- package/docs/manual/02-tutorials/04-encrypt-secret.md +0 -281
- package/docs/manual/02-tutorials/05-deploy-fleet.md +0 -283
- package/docs/manual/03-reference/01-dot-cli.md +0 -450
- package/docs/manual/03-reference/02-config-files.md +0 -265
- package/docs/manual/03-reference/03-environment.md +0 -124
- package/docs/manual/03-reference/04-templates.md +0 -190
- package/docs/manual/03-reference/05-feature-flags.md +0 -187
- package/docs/manual/04-cookbook/01-recipes.md +0 -285
- package/docs/manual/04-cookbook/02-troubleshooting.md +0 -351
- package/docs/manual/04-cookbook/03-faq.md +0 -175
- package/docs/manual/05-appendices/A-platform-matrix.md +0 -101
- package/docs/manual/05-appendices/B-security-checklist.md +0 -85
- package/docs/manual/05-appendices/C-glossary.md +0 -40
- package/docs/manual/05-appendices/D-bibliography.md +0 -58
- package/docs/manual/05-appendices/E-license.md +0 -38
- package/docs/manual/_toc.yml +0 -58
- package/docs/manual/command-index.md +0 -155
- package/docs/manual/concept-index.md +0 -168
- package/docs/manual/index.md +0 -66
- package/docs/operations/ARCHITECTURE_ROADMAP.md +0 -7
- package/docs/operations/ATTESTATION.md +0 -44
- package/docs/operations/CI_CADENCE.md +0 -107
- package/docs/operations/CI_COMPOSITES.md +0 -156
- package/docs/operations/COMPLETIONS.md +0 -123
- package/docs/operations/COVERAGE.md +0 -204
- package/docs/operations/DRIFT.md +0 -107
- package/docs/operations/HARD_AUDIT_2026.md +0 -631
- package/docs/operations/MAINTENANCE.md +0 -63
- package/docs/operations/MANIFEST.md +0 -127
- package/docs/operations/MIGRATION.md +0 -109
- package/docs/operations/OPERATIONS.md +0 -188
- package/docs/operations/PERFORMANCE.md +0 -133
- package/docs/operations/REGISTRY.md +0 -90
- package/docs/operations/RELEASE_PIPELINE.md +0 -128
- package/docs/operations/RELIABILITY.md +0 -122
- package/docs/operations/RFC_v0_2_503_reorganization.md +0 -280
- package/docs/operations/ROADMAP.md +0 -10
- package/docs/operations/ROADMAP_2026.md +0 -7
- package/docs/operations/ROADMAP_V0_2_503.md +0 -10
- package/docs/operations/TESTING.md +0 -216
- package/docs/operations/TRACEABILITY.md +0 -43
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +0 -65
- package/docs/operations/VERSION_SYNC.md +0 -393
- package/docs/reference/ALIASES.md +0 -131
- package/docs/reference/ALIASES_CHEATSHEET.md +0 -32
- package/docs/reference/ALIASES_DEPRECATIONS.md +0 -13
- package/docs/reference/FEATURES.md +0 -66
- package/docs/reference/FONTS.md +0 -112
- package/docs/reference/POWERSHELL_PARITY.md +0 -82
- package/docs/reference/PROFILES.md +0 -69
- package/docs/reference/SCREENSHOTS.md +0 -121
- package/docs/reference/SCRIPTS.md +0 -71
- package/docs/reference/SUPPORT_MATRIX.md +0 -80
- package/docs/reference/THEMES.md +0 -117
- package/docs/reference/TOOLS.md +0 -110
- package/docs/reference/UTILS.md +0 -242
- package/docs/registry.json +0 -6
- package/docs/schema/dot-env-v1.json +0 -110
- package/docs/schema/dot-registry-v1.json +0 -33
- package/docs/security/AI_ACT_COMPLIANCE.md +0 -94
- package/docs/security/AUDIT_BYPASS.md +0 -103
- package/docs/security/AUTOMATION_SECRETS.md +0 -26
- package/docs/security/CI_EGRESS_ALLOWLIST.md +0 -127
- package/docs/security/CI_PINNING.md +0 -129
- package/docs/security/COMMIT_SIGNING.md +0 -138
- package/docs/security/COMPLIANCE.md +0 -458
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +0 -86
- package/docs/security/DISCLOSURE.md +0 -130
- package/docs/security/ENCRYPTION.md +0 -57
- package/docs/security/FMEA.md +0 -159
- package/docs/security/FUZZING.md +0 -114
- package/docs/security/HISTORY_FILTERING.md +0 -132
- package/docs/security/INCIDENT_RESPONSE.md +0 -579
- package/docs/security/INSTALL_VERIFICATION.md +0 -122
- package/docs/security/KEYS.md +0 -49
- package/docs/security/KEY_ROTATION.md +0 -303
- package/docs/security/MCP_POLICY.md +0 -78
- package/docs/security/POLICY_RELEASES.md +0 -37
- package/docs/security/README.md +0 -28
- package/docs/security/SCORECARD.md +0 -195
- package/docs/security/SECRETS.md +0 -158
- package/docs/security/SECURITY.md +0 -45
- package/docs/security/SECURITY_CHECKLIST.md +0 -55
- package/docs/security/SHELL_EXEMPTIONS.md +0 -145
- package/docs/security/SOUP_REGISTER.md +0 -36
- package/docs/security/THREAT_MODEL.md +0 -130
- package/docs/security/VERIFICATION_VALIDATION.md +0 -228
- package/docs/security/VERIFY_RELEASE.md +0 -201
- package/docs/security/security-pubkey.asc +0 -15
- package/docs/stylesheets/extra.css +0 -444
- package/docs/themes/README.md +0 -10
- package/docs/themes/VISUAL_INTEGRITY_REPORT.md +0 -30
- package/docs/themes/hero-shot.svg +0 -78
- package/scripts/README.md +0 -123
- package/scripts/ci/check-copyright-headers.sh +0 -8
- package/scripts/ci/check-shell-preamble.sh +0 -8
- package/scripts/ci/guard-gitleaks-checkout.sh +0 -8
- package/scripts/demo/record.sh +0 -43
- package/scripts/diagnostics/a2a-conformance.sh +0 -163
- package/scripts/diagnostics/alias-governance.sh +0 -138
- package/scripts/diagnostics/aliases-cheatsheet.sh +0 -74
- package/scripts/diagnostics/aliases-manifest.sh +0 -77
- package/scripts/diagnostics/benchmark.sh +0 -408
- package/scripts/diagnostics/conflicts.sh +0 -73
- package/scripts/diagnostics/doctor-unified.sh +0 -39
- package/scripts/diagnostics/doctor.sh +0 -751
- package/scripts/diagnostics/drift-dashboard.sh +0 -202
- package/scripts/diagnostics/health.sh +0 -623
- package/scripts/diagnostics/history-analysis.sh +0 -86
- package/scripts/diagnostics/mcp-doctor.sh +0 -582
- package/scripts/diagnostics/perf.sh +0 -453
- package/scripts/diagnostics/scorecard.sh +0 -119
- package/scripts/diagnostics/secret-governance.sh +0 -65
- package/scripts/diagnostics/security-score.sh +0 -467
- package/scripts/diagnostics/smoke-test.sh +0 -88
- package/scripts/diagnostics/snapshot.sh +0 -90
- package/scripts/diagnostics/verify.sh +0 -108
- package/scripts/diagnostics/verify_state.sh +0 -73
- package/scripts/diagnostics/version-locks.sh +0 -94
- package/scripts/diagnostics/workstation-attestation.sh +0 -187
- package/scripts/dot/commands/agent.sh +0 -485
- package/scripts/dot/commands/agents.sh +0 -336
- package/scripts/dot/commands/ai.sh +0 -587
- package/scripts/dot/commands/aliases.sh +0 -277
- package/scripts/dot/commands/appearance.sh +0 -110
- package/scripts/dot/commands/completion.sh +0 -134
- package/scripts/dot/commands/core.sh +0 -217
- package/scripts/dot/commands/diagnostics.sh +0 -265
- package/scripts/dot/commands/env-emit.sh +0 -203
- package/scripts/dot/commands/fleet.sh +0 -688
- package/scripts/dot/commands/init.sh +0 -185
- package/scripts/dot/commands/lint.sh +0 -208
- package/scripts/dot/commands/manual.sh +0 -169
- package/scripts/dot/commands/meta.sh +0 -333
- package/scripts/dot/commands/patterns.sh +0 -55
- package/scripts/dot/commands/registry.sh +0 -419
- package/scripts/dot/commands/restore.sh +0 -232
- package/scripts/dot/commands/secrets.sh +0 -296
- package/scripts/dot/commands/security.sh +0 -102
- package/scripts/dot/commands/tools.sh +0 -556
- package/scripts/dot/data/alias-deprecations.tsv +0 -2
- package/scripts/dot/powershell/Dot.psm1 +0 -319
- package/scripts/fonts/install-nerd-fonts.sh +0 -75
- package/scripts/fonts/patch-fonts.sh +0 -36
- package/scripts/git-hooks/install.sh +0 -12
- package/scripts/git-hooks/pre-commit +0 -12
- package/scripts/git-hooks/pre-commit-audit.sh +0 -146
- package/scripts/git-hooks/pre-push +0 -105
- package/scripts/git-hooks/prepare-commit-msg +0 -29
- package/scripts/lib/secrets_provider.sh +0 -185
- package/scripts/ops/ai-setup.sh +0 -71
- package/scripts/ops/bundle.sh +0 -104
- package/scripts/ops/chaos.sh +0 -50
- package/scripts/ops/chezmoi-apply.sh +0 -333
- package/scripts/ops/chezmoi-diff.sh +0 -16
- package/scripts/ops/chezmoi-remove.sh +0 -46
- package/scripts/ops/chezmoi-update.sh +0 -63
- package/scripts/ops/heal-chezmoi.sh +0 -87
- package/scripts/ops/heal-system.sh +0 -129
- package/scripts/ops/heal-tools.sh +0 -297
- package/scripts/ops/heal.sh +0 -223
- package/scripts/ops/post-apply-repair.sh +0 -107
- package/scripts/ops/prewarm.sh +0 -128
- package/scripts/ops/release.sh +0 -262
- package/scripts/ops/rollback.sh +0 -604
- package/scripts/ops/setup.sh +0 -138
- package/scripts/ops/teleport.sh +0 -34
- package/scripts/qa/check-version-consistency.sh +0 -124
- package/scripts/qa/coverage-baseline.sh +0 -61
- package/scripts/qa/docs-coverage.sh +0 -112
- package/scripts/qa/examples-coverage.sh +0 -94
- package/scripts/qa/powershell-contract.ps1 +0 -95
- package/scripts/qa/reliability-audit.sh +0 -139
- package/scripts/qa/scorecard-snapshot.sh +0 -128
- package/scripts/qa/traceability-coverage.sh +0 -117
- package/scripts/qa/validate-examples.sh +0 -27
- package/scripts/qa/wsl-contract.sh +0 -12
- package/scripts/secrets/age-init.sh +0 -82
- package/scripts/secrets/create-secrets-file.sh +0 -46
- package/scripts/secrets/encrypt-ssh-key.sh +0 -44
- package/scripts/security/backup.sh +0 -58
- package/scripts/security/check-disclosure-key-expiry.sh +0 -111
- package/scripts/security/dns-doh.sh +0 -52
- package/scripts/security/encryption-check.sh +0 -55
- package/scripts/security/enforce-policies.sh +0 -335
- package/scripts/security/firewall.sh +0 -91
- package/scripts/security/lock-configs.sh +0 -67
- package/scripts/security/lock-screen.sh +0 -56
- package/scripts/security/manage-secrets.sh +0 -429
- package/scripts/security/ssh-cert.sh +0 -204
- package/scripts/security/telemetry-kill.sh +0 -51
- package/scripts/security/usb-safety.sh +0 -52
- package/scripts/theme/apply-gnome-theme.sh +0 -333
- package/scripts/theme/extract-heic-frames.sh +0 -115
- package/scripts/theme/extract-theme.py +0 -742
- package/scripts/theme/install-boot-logo.sh +0 -63
- package/scripts/theme/install-catppuccin-themes.sh +0 -371
- package/scripts/theme/install-cursors.sh +0 -26
- package/scripts/theme/install-file-icons.sh +0 -27
- package/scripts/theme/install-grub-theme.sh +0 -62
- package/scripts/theme/install-lock-icon.sh +0 -31
- package/scripts/theme/merge-wallpaper.sh +0 -146
- package/scripts/theme/rebuild-themes.sh +0 -544
- package/scripts/theme/switch.sh +0 -449
- package/scripts/theme/wallpaper-rotate.sh +0 -137
- package/scripts/theme/wallpaper-sync.sh +0 -690
- package/scripts/tools/cmatrix.sh +0 -22
- package/scripts/tools/detect-collisions.py +0 -103
- package/scripts/tools/emoji-picker.sh +0 -49
- package/scripts/tools/figlet-banner.sh +0 -19
- package/scripts/tools/log-rotate.sh +0 -31
- package/scripts/tools/lolcat-wrap.sh +0 -20
- package/scripts/tools/pipes.sh +0 -49
- package/scripts/tuning/linux.sh +0 -186
- package/scripts/tuning/macos.sh +0 -56
- package/scripts/uninstall.sh +0 -86
- package/scripts/version-sync.sh +0 -654
- package/templates/chezmoi-data/geekom-a9.toml.example +0 -21
- package/templates/chezmoi-data/mac-m1.toml.example +0 -16
- package/templates/chezmoi-data/mac-t2-linux.toml.example +0 -21
- package/templates/chezmoi-data/surface-pro-7p.toml.example +0 -21
- package/templates/projects/go/.github/workflows/ci.yml +0 -31
- package/templates/projects/go/README.md +0 -7
- package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +0 -8
- package/templates/projects/go/go.mod +0 -3
- package/templates/projects/go/go.sum +0 -0
- package/templates/projects/molecule/README.md +0 -7
- package/templates/projects/molecule/converge.yml +0 -7
- package/templates/projects/molecule/molecule.yml +0 -16
- package/templates/projects/node/.github/workflows/ci.yml +0 -30
- package/templates/projects/node/README.md +0 -7
- package/templates/projects/node/package-lock.json +0 -12
- package/templates/projects/node/package.json +0 -10
- package/templates/projects/node/src/index.js +0 -3
- package/templates/projects/packer/README.md +0 -15
- package/templates/projects/packer/main.pkr.hcl +0 -15
- package/templates/projects/python/.github/workflows/ci.yml +0 -34
- package/templates/projects/python/README.md +0 -7
- package/templates/projects/python/pyproject.toml +0 -25
- package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +0 -2
- package/templates/projects/python/tests/test_basic.py +0 -3
|
@@ -1,216 +0,0 @@
|
|
|
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
|
-
# Run unit tests in parallel (parsed per-file output, deterministic order)
|
|
27
|
-
./tests/framework/test_runner.sh --jobs auto
|
|
28
|
-
|
|
29
|
-
# Strict mode: promote silent `command not found` / `unbound variable`
|
|
30
|
-
# inside cov_exercise_functions_file to test failures. Default is
|
|
31
|
-
# tolerant (the helper sources dot command files in a clean shell where
|
|
32
|
-
# their lib/dot/ helpers are intentionally unresolved). Use STRICT=1
|
|
33
|
-
# locally before pushing to catch the class of bug that escaped
|
|
34
|
-
# review pre-v0.2.503 (e.g. agent.sh: _agent_repo_root falling
|
|
35
|
-
# through to a missing require_source_dir).
|
|
36
|
-
DOT_STRICT=1 ./tests/framework/test_runner.sh
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
The runner's FINAL SUMMARY lists which test files failed (not just
|
|
40
|
-
the total count) so locating a regression in a 4000+ assertion run
|
|
41
|
-
doesn't require grepping back through the full log. Per-file failure
|
|
42
|
-
counts and crashed-file markers appear inline.
|
|
43
|
-
|
|
44
|
-
## Test structure
|
|
45
|
-
|
|
46
|
-
```text
|
|
47
|
-
tests/
|
|
48
|
-
├── framework/ # Test framework
|
|
49
|
-
│ ├── assertions.sh # 16 assertion functions
|
|
50
|
-
│ ├── mocks.sh # Mock utilities
|
|
51
|
-
│ └── test_runner.sh # Test executor
|
|
52
|
-
├── unit/ # 425 unit test files
|
|
53
|
-
├── integration/ # 11 integration test files
|
|
54
|
-
└── performance/ # Benchmarks
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Writing tests
|
|
58
|
-
|
|
59
|
-
### Test file template
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
#!/usr/bin/env bash
|
|
63
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
64
|
-
source "$SCRIPT_DIR/../framework/assertions.sh"
|
|
65
|
-
|
|
66
|
-
# Source the function under test
|
|
67
|
-
source "$HOME/.dotfiles/.chezmoitemplates/functions/myfunction.sh"
|
|
68
|
-
|
|
69
|
-
# Test cases
|
|
70
|
-
test_start "function_basic_usage"
|
|
71
|
-
assert_exit_code 0 "myfunction arg1"
|
|
72
|
-
|
|
73
|
-
test_start "function_no_args"
|
|
74
|
-
assert_exit_code 1 "myfunction"
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Available assertions
|
|
78
|
-
|
|
79
|
-
| Function | Description |
|
|
80
|
-
|----------|-------------|
|
|
81
|
-
| `assert_equals expected actual [msg]` | Two values are equal |
|
|
82
|
-
| `assert_not_equals unexpected actual [msg]` | Two values differ |
|
|
83
|
-
| `assert_exit_code code command` | Command exits with given code |
|
|
84
|
-
| `assert_output_contains needle command` | Output contains string |
|
|
85
|
-
| `assert_output_not_contains needle command` | Output lacks string |
|
|
86
|
-
| `assert_output_matches pattern command` | Output matches regex |
|
|
87
|
-
| `assert_file_exists path [msg]` | File exists |
|
|
88
|
-
| `assert_file_not_exists path [msg]` | File doesn't exist |
|
|
89
|
-
| `assert_dir_exists path [msg]` | Directory exists |
|
|
90
|
-
| `assert_dir_not_exists path [msg]` | Directory doesn't exist |
|
|
91
|
-
| `assert_true condition [msg]` | Condition is true |
|
|
92
|
-
| `assert_false condition [msg]` | Condition is false |
|
|
93
|
-
| `assert_empty value [msg]` | String is empty |
|
|
94
|
-
| `assert_not_empty value [msg]` | String isn't empty |
|
|
95
|
-
| `assert_file_contains file needle [msg]` | File contains text |
|
|
96
|
-
| `assert_file_not_contains file needle [msg]` | File lacks text |
|
|
97
|
-
|
|
98
|
-
### Mock utilities
|
|
99
|
-
|
|
100
|
-
| Function | Description |
|
|
101
|
-
|----------|-------------|
|
|
102
|
-
| `mock_init` | Initialize mock environment |
|
|
103
|
-
| `mock_command name output [exit_code]` | Create a mock command |
|
|
104
|
-
| `mock_command_spy name [output] [exit_code]` | Create a mock that records calls |
|
|
105
|
-
| `mock_get_calls name` | Get spy call history |
|
|
106
|
-
| `mock_call_count name` | Get number of spy calls |
|
|
107
|
-
| `mock_file content [filename]` | Create temp file with content |
|
|
108
|
-
| `mock_dir [prefix]` | Create temp directory |
|
|
109
|
-
| `mock_archive type [content]` | Create a mock archive file |
|
|
110
|
-
| `mock_env var_name value` | Set an environment variable |
|
|
111
|
-
| `mock_cleanup` | Clean up all mocks |
|
|
112
|
-
|
|
113
|
-
## Test categories
|
|
114
|
-
|
|
115
|
-
### Unit tests (`tests/unit/`)
|
|
116
|
-
|
|
117
|
-
Test individual functions in isolation. Each file follows the `test_*.sh` naming convention and is discoverable with `ls tests/unit/`.
|
|
118
|
-
|
|
119
|
-
### Integration tests (`tests/integration/`)
|
|
120
|
-
|
|
121
|
-
Test complete workflows like the installation script and end-to-end apply behavior.
|
|
122
|
-
|
|
123
|
-
### Performance tests (`tests/performance/`)
|
|
124
|
-
|
|
125
|
-
Measure resource efficiency with shell startup benchmarks and load tests.
|
|
126
|
-
|
|
127
|
-
## Coverage goals
|
|
128
|
-
|
|
129
|
-
| Category | Target | Current |
|
|
130
|
-
|----------|--------|---------|
|
|
131
|
-
| Module coverage | >=95% | 100% |
|
|
132
|
-
| Unit test files | - | 425 |
|
|
133
|
-
| Integration test files | - | 11 |
|
|
134
|
-
| Total test files | - | 436 |
|
|
135
|
-
| Named tests (`test_start`) | - | 2149 |
|
|
136
|
-
| Unit test pass rate | 100% | 100% |
|
|
137
|
-
|
|
138
|
-
CI enforces module coverage via:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
MIN_COVERAGE=95 ./tests/framework/module_coverage.sh
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
For a current local baseline, run:
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
bash ./scripts/qa/coverage-baseline.sh --with-module-coverage
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
For core internal behavior traceability, run:
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
bash ./scripts/qa/traceability-coverage.sh
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## CI integration
|
|
157
|
-
|
|
158
|
-
Tests run automatically on every push to main, every pull request, and weekly scheduled runs (Monday 6 AM UTC).
|
|
159
|
-
|
|
160
|
-
### GitHub Actions example
|
|
161
|
-
|
|
162
|
-
```yaml
|
|
163
|
-
- name: Run Tests
|
|
164
|
-
run: |
|
|
165
|
-
chmod +x ./tests/framework/test_runner.sh
|
|
166
|
-
./tests/framework/test_runner.sh
|
|
167
|
-
|
|
168
|
-
- name: Run Integration Tests
|
|
169
|
-
run: |
|
|
170
|
-
RUN_INTEGRATION=1 ./tests/framework/test_runner.sh
|
|
171
|
-
|
|
172
|
-
- name: Run Performance Benchmarks
|
|
173
|
-
run: |
|
|
174
|
-
./tests/performance/benchmark_runner.sh
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
## Environment variables
|
|
178
|
-
|
|
179
|
-
| Variable | Default | Description |
|
|
180
|
-
|----------|---------|-------------|
|
|
181
|
-
| `RUN_INTEGRATION` | `0` | Set to `1` to include integration tests |
|
|
182
|
-
| `VERBOSE` | `0` | Set to `1` for verbose output |
|
|
183
|
-
| `REPO_ROOT` | Auto-detected | Repository root directory |
|
|
184
|
-
| `TESTS_DIR` | Auto-detected | Tests directory |
|
|
185
|
-
|
|
186
|
-
## Best practices
|
|
187
|
-
|
|
188
|
-
1. **Isolation** -- Each test should be independent and self-contained.
|
|
189
|
-
2. **Cleanup** -- Use mocks that auto-cleanup via traps.
|
|
190
|
-
3. **No sleep** -- Avoid `sleep` or hardcoded delays.
|
|
191
|
-
4. **Descriptive names** -- Test names should describe what's being verified.
|
|
192
|
-
5. **Edge cases** -- Test error conditions, not just happy paths.
|
|
193
|
-
6. **Security** -- Include tests for dangerous input rejection.
|
|
194
|
-
|
|
195
|
-
## Troubleshooting
|
|
196
|
-
|
|
197
|
-
### Tests not found
|
|
198
|
-
|
|
199
|
-
Make sure test files match the `test_*.sh` pattern and are executable:
|
|
200
|
-
|
|
201
|
-
```bash
|
|
202
|
-
chmod +x tests/unit/test_*.sh
|
|
203
|
-
chmod +x tests/integration/test_*.sh
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### Function not available
|
|
207
|
-
|
|
208
|
-
If a test reports "function not available", verify the source file exists:
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
ls -la .chezmoitemplates/functions/
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
### Mock cleanup issues
|
|
215
|
-
|
|
216
|
-
If mocks aren't cleaning up, make sure you aren't running with `set -e` before mock operations that might intentionally fail.
|
|
@@ -1,43 +0,0 @@
|
|
|
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`, `defaults/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 | `bin/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 | `tools/docs/build-manual.sh`, `tools/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` |
|
|
36
|
-
| BT-24 | Multi-harness AI agent context (AGENTS.md generator) | `scripts/dot/commands/agents.sh` | `tests/unit/auto/test_auto_dot_driver.sh` | `AGENTS.md`, `CLAUDE.md`, `docs/operations/HARD_AUDIT_2026.md` |
|
|
37
|
-
| BT-25 | Bootstrap foreign dotfiles repo through chezmoi harness | `scripts/dot/commands/init.sh` | `tests/unit/auto/test_auto_dot_driver.sh` | `docs/operations/ROADMAP_2026.md`, `docs/manual/03-reference/01-dot-cli.md` |
|
|
38
|
-
| BT-26 | Module registry discovery and install scaffold | `scripts/dot/commands/registry.sh` | `tests/unit/auto/test_auto_dot_driver.sh` | `docs/operations/REGISTRY.md`, `docs/registry.json` |
|
|
39
|
-
| BT-27 | Workstation environment manifest emitter (`dot env emit`) | `scripts/dot/commands/env-emit.sh` | `tests/unit/dot-cli/test_cmd_env_emit.sh` | `docs/operations/MANIFEST.md`, `docs/schema/dot-env-v1.json` |
|
|
40
|
-
| BT-28 | Cross-file version-string consistency contract | `scripts/qa/check-version-consistency.sh` | `tests/unit/qa/test_check_version_consistency.sh` | `docs/operations/RELIABILITY.md` |
|
|
41
|
-
| BT-29 | OpenSSF Scorecard nightly snapshot artefact | `scripts/qa/scorecard-snapshot.sh` | `tests/unit/qa/test_scorecard_snapshot.sh` | `docs/security/SCORECARD.md` |
|
|
42
|
-
| BT-30 | Shell completion generator (`dot completion <shell>`) | `scripts/dot/commands/completion.sh` | `tests/unit/dot-cli/test_dot_completion.sh` | `docs/reference/UTILS.md` |
|
|
43
|
-
| BT-31 | Examples coverage contract (feature/command → example) | `scripts/qa/examples-coverage.sh` | `tests/unit/misc/test_qa_examples_coverage.sh` | `docs/reference/UTILS.md` |
|
|
@@ -1,65 +0,0 @@
|
|
|
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](https://github.com/sebastienrousseau/dotfiles/blob/main/defaults/dot_config/dotfiles/policy-bundles.json)
|
|
24
|
-
- [agent-profiles.json](https://github.com/sebastienrousseau/dotfiles/blob/main/defaults/dot_config/dotfiles/agent-profiles.json)
|
|
25
|
-
- [mcp-policy.json](https://github.com/sebastienrousseau/dotfiles/blob/main/defaults/dot_config/dotfiles/mcp-policy.json)
|
|
26
|
-
- [mcp-registry.json](https://github.com/sebastienrousseau/dotfiles/blob/main/defaults/dot_config/dotfiles/mcp-registry.json)
|
|
27
|
-
- [model-registry.json](https://github.com/sebastienrousseau/dotfiles/blob/main/defaults/dot_config/dotfiles/model-registry.json)
|
|
28
|
-
- [prompt-registry.json](https://github.com/sebastienrousseau/dotfiles/blob/main/defaults/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.
|