@sebastienrousseau/dotfiles 0.2.520 → 0.2.522
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 +52 -0
- package/LICENSE-APACHE +190 -0
- package/LICENSE-MIT +21 -0
- package/README.md +43 -37
- package/install.sh +76 -10
- package/package.json +7 -7
- 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/ARCHITECTURE.md +0 -117
- package/docs/CNAME +0 -1
- package/docs/CONFIG_STRATEGY.md +0 -124
- package/docs/COPYRIGHT +0 -7
- package/docs/ECOSYSTEM.md +0 -220
- package/docs/GOLD-STANDARD-AUDIT.md +0 -352
- package/docs/GOVERNANCE.md +0 -98
- package/docs/MAINTAINERS.md +0 -41
- package/docs/MINIMUM-TOOLCHAIN.md +0 -100
- 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 -20
- 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/MACOS_ICLOUD_SYMLINKS.md +0 -121
- 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 -475
- 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 -175
- package/docs/manual/concept-index.md +0 -170
- package/docs/manual/index.md +0 -66
- package/docs/migration/README.md +0 -81
- package/docs/migration/from-bare-git-repo.md +0 -156
- package/docs/migration/from-gnu-stow.md +0 -165
- package/docs/migration/from-plain-chezmoi.md +0 -148
- package/docs/migration/from-yadm.md +0 -187
- 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/PERFORMANCE_BUDGETS.md +0 -196
- 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 -44
- package/docs/operations/TRUSTED_AGENT_WORKSTATION.md +0 -65
- package/docs/operations/VERSION_SYNC.md +0 -393
- package/docs/packaging.md +0 -222
- 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/FEATURE-MATRIX.md +0 -646
- 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 -243
- 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 -209
- 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 -165
- package/scripts/diagnostics/aliases-cheatsheet.sh +0 -74
- package/scripts/diagnostics/aliases-manifest.sh +0 -77
- package/scripts/diagnostics/attest-verify.sh +0 -147
- package/scripts/diagnostics/benchmark.sh +0 -408
- package/scripts/diagnostics/conflicts.sh +0 -73
- package/scripts/diagnostics/doctor-unified.sh +0 -43
- package/scripts/diagnostics/doctor.sh +0 -797
- package/scripts/diagnostics/drift-dashboard.sh +0 -203
- package/scripts/diagnostics/health.sh +0 -656
- 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 -120
- 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 -212
- package/scripts/dot/commands/agent.sh +0 -535
- package/scripts/dot/commands/agents.sh +0 -352
- package/scripts/dot/commands/ai.sh +0 -600
- package/scripts/dot/commands/aliases.sh +0 -277
- package/scripts/dot/commands/appearance.sh +0 -110
- package/scripts/dot/commands/completion.sh +0 -171
- 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 -711
- 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 -438
- package/scripts/dot/commands/patterns.sh +0 -55
- package/scripts/dot/commands/registry.sh +0 -455
- 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 -570
- 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 -200
- package/scripts/nvim/headless-upgrade.lua +0 -81
- 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 -67
- 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 -613
- package/scripts/ops/setup.sh +0 -138
- package/scripts/ops/teleport.sh +0 -34
- package/scripts/qa/check-feature-matrix.sh +0 -296
- package/scripts/qa/check-version-consistency.sh +0 -12
- package/scripts/qa/coverage-baseline.sh +0 -61
- package/scripts/qa/docs-coverage.sh +0 -118
- 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 -124
- package/scripts/qa/validate-examples.sh +0 -90
- 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 -552
- 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 -1020
- 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 -603
- package/scripts/theme/switch.sh +0 -476
- 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/verify-release-versions +0 -156
- package/scripts/version-sync.sh +0 -714
- 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,228 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
render_with_liquid: false
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Verification and Validation Report
|
|
6
|
-
|
|
7
|
-
## Document Control
|
|
8
|
-
|
|
9
|
-
| Field | Value |
|
|
10
|
-
|-------|-------|
|
|
11
|
-
| Document ID | VV-DOT-001 |
|
|
12
|
-
| Version | 0.2.501 |
|
|
13
|
-
| Date | 2026-03-20 |
|
|
14
|
-
| Author | Repository Maintainer |
|
|
15
|
-
| Status | Active |
|
|
16
|
-
| Classification | Internal |
|
|
17
|
-
| Standard | ISO 13485:2016 Sections 7.3.6 / 7.3.7 (adapted) |
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Purpose
|
|
22
|
-
|
|
23
|
-
This document constitutes the formal Verification and Validation (V&V) report for the chezmoi-managed dotfiles repository, adapted from ISO 13485:2016 Sections 7.3.6 (Design and Development Verification) and 7.3.7 (Design and Development Validation) for infrastructure-as-code.
|
|
24
|
-
|
|
25
|
-
**Verification** confirms that each design output meets its corresponding design input requirement through inspection, analysis, and testing. **Validation** confirms that the deployed system satisfies its intended use under representative operating conditions (Linux, macOS, WSL).
|
|
26
|
-
|
|
27
|
-
All verification activities are executed through automated CI pipelines, pre-commit hooks, and the repository test framework. Evidence is retained in CI logs, test output, and this document.
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Verification Matrix
|
|
32
|
-
|
|
33
|
-
| Req ID | Requirement | Verification Method | Test File(s) | Result |
|
|
34
|
-
|--------|-------------|---------------------|--------------|--------|
|
|
35
|
-
| VR-01 | Shell scripts pass ShellCheck (severity=error) | Static analysis via `shellcheck --severity=error -e SC1091 -e SC2030 -e SC2031` | `ci.yml`, `ci-enforced.yml`, pre-commit hook | Pass |
|
|
36
|
-
| VR-02 | All scripts have `set -euo pipefail` | Pattern scan across all `.sh` files; CI enforcement | `ci-enforced.yml`, `compliance-guard.yml` | Pass |
|
|
37
|
-
| VR-03 | No secrets in source control (gitleaks clean) | Gitleaks scan with `config/gitleaks.toml` ruleset | Pre-commit hook, `security-enhanced.yml` | Pass |
|
|
38
|
-
| VR-04 | Cross-platform compatibility (BSD + GNU) | Dual-platform CI matrix (ubuntu-latest, macos-latest) | `cross-platform-test.yml` | Pass |
|
|
39
|
-
| VR-05 | TLS enforcement (no insecure curl/wget) | Pattern blocking for `curl -k`, `--insecure`, `wget --no-check-certificate` | Pre-commit hook, `compliance-guard.yml` | Pass |
|
|
40
|
-
| VR-06 | Permission controls (no chmod 777/666) | CI pattern scan blocks world-writable permissions | Pre-commit hook, `compliance-guard.yml` | Pass |
|
|
41
|
-
| VR-07 | Signed commits enforced | Pre-push hook verifies `git verify-commit` for all commits in range | `scripts/git-hooks/pre-push`, `compliance-guard.yml` | Pass |
|
|
42
|
-
| VR-08 | Conventional commit format | Pre-commit hook validates `feat:`, `fix:`, `docs:` prefixes | Pre-commit hook (conventional-commits) | Pass |
|
|
43
|
-
| VR-09 | Template rendering correctness | `chezmoi apply --dry-run` on Linux and macOS CI runners | `ci.yml` (Linux + macOS matrix), `tests/unit/test_*.sh` | Pass |
|
|
44
|
-
| VR-10 | Alias system functional | Unit tests source alias files and verify command availability | `tests/unit/aliases/test_*.sh` (104 files) | Pass |
|
|
45
|
-
| VR-11 | Neovim config loads without errors | Headless Neovim launch with error detection | `tests/unit/neovim/test_*.sh` (15 files) | Pass |
|
|
46
|
-
| VR-12 | Fish/Zsh/Nushell configs valid | Syntax validation and functional tests per shell | `tests/unit/fish/` (33), `tests/unit/shell/` (12), `tests/unit/nushell/` (5) | Pass |
|
|
47
|
-
| VR-13 | CI pipelines execute successfully | GitHub Actions workflow status across all triggers | `ci.yml`, `ci-enforced.yml`, `compliance-guard.yml`, `cross-platform-test.yml`, `security-enhanced.yml`, `codeql.yml` | Pass |
|
|
48
|
-
| VR-14 | Pre-commit hooks functional | Hook execution via `pre-commit run --all-files` | `config/pre-commit-config.yaml` | Pass |
|
|
49
|
-
| VR-15 | Age encryption operational | Chezmoi age-encrypted file decryption during apply | `chezmoi apply --dry-run` (encrypted targets), integration tests | Pass |
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Validation Summary
|
|
54
|
-
|
|
55
|
-
### Coverage Metrics
|
|
56
|
-
|
|
57
|
-
| Metric | Value | Threshold | Status |
|
|
58
|
-
|--------|-------|-----------|--------|
|
|
59
|
-
| Total test files | 430 | N/A | Measured |
|
|
60
|
-
| Total assertions | 2,217 | N/A | Measured |
|
|
61
|
-
| Pass rate | 100% | 100% | Pass |
|
|
62
|
-
| Module coverage | 100% | >= 95% | Pass |
|
|
63
|
-
|
|
64
|
-
### Category Breakdown
|
|
65
|
-
|
|
66
|
-
| Category | Test Files | Status |
|
|
67
|
-
|----------|-----------|--------|
|
|
68
|
-
| Alias files | 104 | Tested |
|
|
69
|
-
| Function files | 76 | Tested |
|
|
70
|
-
| Fish functions + conf.d | 33 | Tested |
|
|
71
|
-
| Misc / compliance | 34 | Tested |
|
|
72
|
-
| Dot CLI | 30 | Tested |
|
|
73
|
-
| Diagnostics | 28 | Tested |
|
|
74
|
-
| Shell configs | 20 | Tested |
|
|
75
|
-
| Ops | 18 | Tested |
|
|
76
|
-
| Install | 17 | Tested |
|
|
77
|
-
| Security | 16 | Tested |
|
|
78
|
-
| Neovim Lua configs | 15 | Tested |
|
|
79
|
-
| Theme | 11 | Tested |
|
|
80
|
-
| Tools | 7 | Tested |
|
|
81
|
-
| Nushell configs | 6 | Tested |
|
|
82
|
-
| Secrets | 5 | Tested |
|
|
83
|
-
| Integration tests | 10 | Tested |
|
|
84
|
-
| **Total** | **430** | **All pass** |
|
|
85
|
-
|
|
86
|
-
### Validation Environments
|
|
87
|
-
|
|
88
|
-
| Environment | OS | Shell | Bash Version | Status |
|
|
89
|
-
|-------------|-----|-------|--------------|--------|
|
|
90
|
-
| CI (Linux) | Ubuntu latest | Bash | 5.x | Validated |
|
|
91
|
-
| CI (macOS) | macOS latest | Zsh | 3.2 (system) | Validated |
|
|
92
|
-
| Local (Linux) | CachyOS / Arch | Fish, Zsh, Bash | 5.x | Validated |
|
|
93
|
-
| Local (WSL) | Ubuntu | Bash | 5.x | Validated |
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Test Framework Architecture
|
|
98
|
-
|
|
99
|
-
### Directory Structure
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
tests/
|
|
103
|
-
├── framework/
|
|
104
|
-
│ ├── test_runner.sh # Test executor — discovers and runs all test_*.sh files
|
|
105
|
-
│ ├── assertions.sh # 16 assertion functions (assert_equals, assert_contains, etc.)
|
|
106
|
-
│ └── mocks.sh # Mock utilities for isolating external dependencies
|
|
107
|
-
├── unit/
|
|
108
|
-
│ ├── aliases/ # Alias and command-surface tests
|
|
109
|
-
│ ├── functions/ # Function behavior tests
|
|
110
|
-
│ ├── dot-cli/ # `dot` command workflow tests
|
|
111
|
-
│ ├── shell/ # Shell integration and completion tests
|
|
112
|
-
│ ├── fish/ # Fish function and completion tests
|
|
113
|
-
│ ├── nushell/ # Nushell configuration tests
|
|
114
|
-
│ ├── nvim/ # Neovim configuration tests
|
|
115
|
-
│ └── test_*.sh # 425 unit test files total
|
|
116
|
-
├── integration/
|
|
117
|
-
│ └── test_*.sh # 11 integration test files
|
|
118
|
-
└── performance/
|
|
119
|
-
└── benchmark_runner.sh # Performance regression benchmarks
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### Execution Model
|
|
123
|
-
|
|
124
|
-
1. `test_runner.sh` recursively discovers all `test_*.sh` files under `tests/`.
|
|
125
|
-
2. Each test file is executed in a subshell with `assertions.sh` sourced.
|
|
126
|
-
3. Tests source bash files directly from the repository (not Go templates).
|
|
127
|
-
4. `mocks.sh` provides stubs for external tools (`chezmoi`, `git`, `brew`, etc.).
|
|
128
|
-
5. Exit codes and assertion counts are aggregated into a final report.
|
|
129
|
-
|
|
130
|
-
### Assertion Library
|
|
131
|
-
|
|
132
|
-
| Function | Purpose |
|
|
133
|
-
|----------|---------|
|
|
134
|
-
| `assert_equals` | Exact string equality |
|
|
135
|
-
| `assert_not_equals` | String inequality |
|
|
136
|
-
| `assert_contains` | Substring match |
|
|
137
|
-
| `assert_not_contains` | Substring absence |
|
|
138
|
-
| `assert_starts_with` | Prefix match |
|
|
139
|
-
| `assert_ends_with` | Suffix match |
|
|
140
|
-
| `assert_matches` | Regex match |
|
|
141
|
-
| `assert_file_exists` | File presence |
|
|
142
|
-
| `assert_file_not_exists` | File absence |
|
|
143
|
-
| `assert_directory_exists` | Directory presence |
|
|
144
|
-
| `assert_command_exists` | Command availability |
|
|
145
|
-
| `assert_exit_code` | Process exit code |
|
|
146
|
-
| `assert_empty` | Empty string |
|
|
147
|
-
| `assert_not_empty` | Non-empty string |
|
|
148
|
-
| `assert_true` | Boolean truth |
|
|
149
|
-
| `assert_false` | Boolean false |
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## Traceability Matrix
|
|
154
|
-
|
|
155
|
-
This matrix maps compliance controls from COMPLIANCE.md to verification requirements defined in this document.
|
|
156
|
-
|
|
157
|
-
### SOC 2 Type II Traceability
|
|
158
|
-
|
|
159
|
-
| SOC 2 Control | Description | Verification Requirement(s) |
|
|
160
|
-
|---------------|-------------|----------------------------|
|
|
161
|
-
| CC6.1 | Logical Access Security | VR-06 (Permission controls), VR-15 (Age encryption) |
|
|
162
|
-
| CC6.8 | Unauthorized Code Protection | VR-07 (Signed commits), VR-03 (No secrets) |
|
|
163
|
-
| CC7.1 | System Operations | VR-05 (TLS enforcement), VR-13 (CI pipelines) |
|
|
164
|
-
| CC7.2 | Change Detection | VR-14 (Pre-commit hooks), VR-08 (Conventional commits) |
|
|
165
|
-
| CC8.1 | Change Management | VR-07 (Signed commits), VR-08 (Conventional commits), VR-13 (CI pipelines) |
|
|
166
|
-
| A1.2 | Audit Logs | VR-13 (CI pipelines — logs retained in GitHub Actions) |
|
|
167
|
-
|
|
168
|
-
### ISO 27001 Traceability
|
|
169
|
-
|
|
170
|
-
| ISO Control | Description | Verification Requirement(s) |
|
|
171
|
-
|-------------|-------------|----------------------------|
|
|
172
|
-
| A.9.1.1 | Access Control Policy | VR-06 (Permission controls), VR-15 (Age encryption) |
|
|
173
|
-
| A.9.4.1 | Information Access Restriction | VR-06 (No chmod 777/666) |
|
|
174
|
-
| A.12.1.2 | Change Management | VR-07 (Signed commits), VR-08 (Conventional commits) |
|
|
175
|
-
| A.12.6.1 | Technical Vulnerability Management | VR-03 (Gitleaks), VR-05 (TLS enforcement) |
|
|
176
|
-
| A.13.1.1 | Network Controls | VR-05 (TLS enforcement) |
|
|
177
|
-
| A.14.2.5 | Secure Engineering | VR-01 (ShellCheck), VR-02 (set -euo pipefail), VR-04 (Cross-platform) |
|
|
178
|
-
| A.14.2.8 | System Security Testing | VR-09 (Template rendering), VR-10 (Aliases), VR-11 (Neovim), VR-12 (Shell configs) |
|
|
179
|
-
|
|
180
|
-
### GDPR / Privacy Traceability
|
|
181
|
-
|
|
182
|
-
| Requirement | Description | Verification Requirement(s) |
|
|
183
|
-
|-------------|-------------|----------------------------|
|
|
184
|
-
| Data Minimization | Limit data collection | VR-03 (No secrets in source) |
|
|
185
|
-
| Integrity | Protect against tampering | VR-07 (Signed commits), VR-14 (Pre-commit hooks) |
|
|
186
|
-
| Encryption | Protect data at rest | VR-15 (Age encryption operational) |
|
|
187
|
-
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
## Acceptance Criteria
|
|
191
|
-
|
|
192
|
-
All of the following criteria must be satisfied for this V&V report to remain valid.
|
|
193
|
-
|
|
194
|
-
| Criterion | Verification Method | Required Outcome |
|
|
195
|
-
|-----------|---------------------|------------------|
|
|
196
|
-
| All unit and integration tests pass | `./tests/framework/test_runner.sh` | Exit code 0, 0 failures |
|
|
197
|
-
| ShellCheck clean | `shellcheck --severity=error` on all `.sh` files | Zero findings |
|
|
198
|
-
| Gitleaks clean | `gitleaks detect --config config/gitleaks.toml` | Zero findings |
|
|
199
|
-
| Chezmoi dry-run clean | `chezmoi apply --dry-run` on Linux and macOS | Exit code 0, no errors |
|
|
200
|
-
| Pre-commit hooks pass | `pre-commit run --all-files` | Exit code 0 |
|
|
201
|
-
| Cross-platform CI green | `cross-platform-test.yml` on ubuntu-latest and macos-latest | All jobs pass |
|
|
202
|
-
| Module coverage at threshold | Test runner coverage report | >= 95% (currently 100%) |
|
|
203
|
-
| No world-writable permissions | `compliance-guard.yml` pattern scan | Zero `chmod 777` or `chmod 666` matches |
|
|
204
|
-
| No insecure TLS patterns | `compliance-guard.yml` pattern scan | Zero `curl -k` or `wget --no-check-certificate` matches |
|
|
205
|
-
| All commits signed | `git verify-commit` on HEAD~50..HEAD range | All commits verified |
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## Sign-off
|
|
210
|
-
|
|
211
|
-
| Role | Name | Date | Signature |
|
|
212
|
-
|------|------|------|-----------|
|
|
213
|
-
| Repository Owner | | | |
|
|
214
|
-
| Security Reviewer | | | |
|
|
215
|
-
| Quality Assurance | | | |
|
|
216
|
-
| Release Manager | | | |
|
|
217
|
-
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
## References
|
|
221
|
-
|
|
222
|
-
- [ISO 13485:2016](https://www.iso.org/standard/59752.html) — Medical devices, Quality management systems
|
|
223
|
-
- [ISO 27001:2022](https://www.iso.org/standard/27001) — Information security management
|
|
224
|
-
- [SOC 2 Type II](https://www.aicpa.org/soc2) — Trust Services Criteria
|
|
225
|
-
- [SLSA Framework](https://slsa.dev/) — Supply chain Levels for Software Artifacts
|
|
226
|
-
- [ShellCheck](https://www.shellcheck.net/) — Static analysis for shell scripts
|
|
227
|
-
- [Gitleaks](https://gitleaks.io/) — Secrets detection
|
|
228
|
-
- [Chezmoi](https://www.chezmoi.io/) — Dotfiles manager
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Verify a Release"
|
|
3
|
-
date: 2026-05-17
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Verifying a Release
|
|
7
|
-
|
|
8
|
-
Every release of the framework ships four independent attestations.
|
|
9
|
-
Verify any of them, they're orthogonal and each rules out a
|
|
10
|
-
different class of attack.
|
|
11
|
-
|
|
12
|
-
| Artefact | Format | Tool | Threat covered |
|
|
13
|
-
|----------|--------|------|----------------|
|
|
14
|
-
| **SBOM** (`dotfiles-sbom.spdx.json`) | SPDX 2.3 JSON | any SBOM viewer | "what's in the release?", full component inventory |
|
|
15
|
-
| **Cosign signature** (`.sig` + `.pem`) | sigstore keyless | `cosign verify-blob` | "did our CI actually produce this SBOM?", short-lived Fulcio cert + Rekor transparency-log entry |
|
|
16
|
-
| **SLSA provenance** (`.intoto.jsonl`) | in-toto v1 / SLSA L3 | `slsa-verifier` | "what build process produced this?", workflow ID, source ref, builder identity |
|
|
17
|
-
| **Unified manifest** (`ALL_SHA256SUMS` + `.sig` + `.pem`) | text + sigstore keyless | `cosign verify-blob` then `sha256sum -c` | "is every other asset on this release the one our CI produced?", one signed line per asset |
|
|
18
|
-
|
|
19
|
-
All four are attached to every GitHub Release as assets, from v0.2.503 forward.
|
|
20
|
-
Releases v0.2.500 through v0.2.502 carry the SBOM bundle only: the unified
|
|
21
|
-
manifest landed in v0.2.503 and is forward-only (re-tagging earlier releases
|
|
22
|
-
would break consumer pins on existing SHAs).
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## TL;DR — verify v0.2.503+ end-to-end
|
|
27
|
-
|
|
28
|
-
```sh
|
|
29
|
-
# 0. Pick the release to verify
|
|
30
|
-
TAG=v0.2.503
|
|
31
|
-
REPO=sebastienrousseau/dotfiles
|
|
32
|
-
|
|
33
|
-
# 1. Download every attestation artefact
|
|
34
|
-
gh release download "$TAG" --repo "$REPO" \
|
|
35
|
-
--pattern dotfiles-sbom.spdx.json \
|
|
36
|
-
--pattern dotfiles-sbom.spdx.json.sig \
|
|
37
|
-
--pattern dotfiles-sbom.spdx.json.pem \
|
|
38
|
-
--pattern dotfiles-sbom.spdx.json.intoto.jsonl \
|
|
39
|
-
--pattern ALL_SHA256SUMS \
|
|
40
|
-
--pattern ALL_SHA256SUMS.sig \
|
|
41
|
-
--pattern ALL_SHA256SUMS.pem
|
|
42
|
-
|
|
43
|
-
# 2. Verify Cosign signature on the SBOM (binds SBOM to CI workflow identity)
|
|
44
|
-
cosign verify-blob \
|
|
45
|
-
--certificate dotfiles-sbom.spdx.json.pem \
|
|
46
|
-
--signature dotfiles-sbom.spdx.json.sig \
|
|
47
|
-
--certificate-identity-regexp "^https://github.com/$REPO/" \
|
|
48
|
-
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
|
|
49
|
-
dotfiles-sbom.spdx.json
|
|
50
|
-
|
|
51
|
-
# 3. Verify SLSA provenance (binds SBOM to exact source tag + builder)
|
|
52
|
-
slsa-verifier verify-artifact dotfiles-sbom.spdx.json \
|
|
53
|
-
--provenance-path dotfiles-sbom.spdx.json.intoto.jsonl \
|
|
54
|
-
--source-uri "github.com/$REPO" \
|
|
55
|
-
--source-tag "$TAG"
|
|
56
|
-
|
|
57
|
-
# 4. Verify the unified manifest, then verify every other asset against it.
|
|
58
|
-
# One signed file covers all release artefacts in one shot.
|
|
59
|
-
cosign verify-blob \
|
|
60
|
-
--certificate ALL_SHA256SUMS.pem \
|
|
61
|
-
--signature ALL_SHA256SUMS.sig \
|
|
62
|
-
--certificate-identity-regexp "^https://github.com/$REPO/" \
|
|
63
|
-
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
|
|
64
|
-
ALL_SHA256SUMS
|
|
65
|
-
|
|
66
|
-
gh release download "$TAG" --repo "$REPO" --dir . # pull every other asset
|
|
67
|
-
sha256sum -c ALL_SHA256SUMS # one line per asset
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
All four commands should print "Verified" / "PASSED" / "OK" and
|
|
71
|
-
exit 0. If any fails, **the release was tampered with**: open
|
|
72
|
-
an issue at <https://github.com/sebastienrousseau/dotfiles/issues>
|
|
73
|
-
and do **not** install.
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Tool installation
|
|
78
|
-
|
|
79
|
-
| Tool | macOS | Linux | Windows |
|
|
80
|
-
|------|-------|-------|---------|
|
|
81
|
-
| `gh` (GitHub CLI) | `brew install gh` | `apt install gh` / [release page](https://github.com/cli/cli/releases) | `scoop install gh` |
|
|
82
|
-
| `cosign` | `brew install cosign` | `curl -sSfL https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64 -o /usr/local/bin/cosign && chmod +x /usr/local/bin/cosign` | `scoop install cosign` |
|
|
83
|
-
| `slsa-verifier` | `brew install slsa-verifier` | `go install github.com/slsa-framework/slsa-verifier/v2/cli/slsa-verifier@latest` | `scoop install slsa-verifier` |
|
|
84
|
-
|
|
85
|
-
If you don't have Go installed, fetch the pre-built `slsa-verifier`
|
|
86
|
-
binary from <https://github.com/slsa-framework/slsa-verifier/releases>
|
|
87
|
-
(SHA256-verify per their release notes).
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## What each verification actually proves
|
|
92
|
-
|
|
93
|
-
### `cosign verify-blob` succeeds
|
|
94
|
-
|
|
95
|
-
- The SBOM was signed by a workflow run **on this repository** (the
|
|
96
|
-
`--certificate-identity-regexp` enforces it).
|
|
97
|
-
- The signing OIDC token was issued by **GitHub Actions** (the
|
|
98
|
-
`--certificate-oidc-issuer` enforces it).
|
|
99
|
-
- The signature is recorded in the **Rekor public transparency log**
|
|
100
|
-
(cosign queries this automatically) — anyone can audit it.
|
|
101
|
-
- The Cosign cert was issued by **Fulcio** (the sigstore CA) and
|
|
102
|
-
was valid at the time of signing.
|
|
103
|
-
|
|
104
|
-
This **does not** prove what the build process did — only that
|
|
105
|
-
"the file you have is the file CI produced." For "what did CI do",
|
|
106
|
-
see SLSA verification below.
|
|
107
|
-
|
|
108
|
-
### `slsa-verifier verify-artifact` succeeds
|
|
109
|
-
|
|
110
|
-
- The SBOM digest matches a provenance statement.
|
|
111
|
-
- The provenance was generated by the **SLSA-Generator** running on
|
|
112
|
-
**GitHub-hosted runners** for **this exact repository**.
|
|
113
|
-
- The build was triggered by the named tag (`--source-tag $TAG`).
|
|
114
|
-
- The provenance is anchored in Rekor (immutable, third-party-auditable).
|
|
115
|
-
|
|
116
|
-
SLSA Level 3 is achieved because: (a) the provenance is generated
|
|
117
|
-
by a *trusted, isolated* builder (slsa-github-generator), not by
|
|
118
|
-
us; (b) the builder runs with hermetic, non-falsifiable inputs;
|
|
119
|
-
(c) the provenance is signed by the builder's own identity, not
|
|
120
|
-
ours.
|
|
121
|
-
|
|
122
|
-
### What none of this proves
|
|
123
|
-
|
|
124
|
-
The framework's source code is **not formally verified**. SBOM +
|
|
125
|
-
SLSA + Cosign protect the *supply chain* (you got what we shipped)
|
|
126
|
-
— not the *correctness* (what we shipped does what we claim).
|
|
127
|
-
|
|
128
|
-
For correctness review:
|
|
129
|
-
|
|
130
|
-
- Code is open under MIT — read it. Start at `bin/dot`.
|
|
131
|
-
- CI runs ~75 checks per PR (shellcheck, shfmt, CodeQL, Semgrep, Codacy, etc.).
|
|
132
|
-
- Pre-commit hooks reject typos, unsigned commits, raw secrets.
|
|
133
|
-
- See `docs/security/SCORECARD.md` for the OpenSSF score posture.
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## In-shell one-liner for ongoing verification
|
|
138
|
-
|
|
139
|
-
If you intend to install or update from a release tag, add this to
|
|
140
|
-
your shell startup (already in `dot_config/shell/*` for users who
|
|
141
|
-
run `chezmoi apply`):
|
|
142
|
-
|
|
143
|
-
```sh
|
|
144
|
-
verify-dot-release() {
|
|
145
|
-
local tag="${1:-$(gh release view --json tagName --jq .tagName \
|
|
146
|
-
--repo sebastienrousseau/dotfiles)}"
|
|
147
|
-
local tmp
|
|
148
|
-
tmp="$(mktemp -d)"
|
|
149
|
-
( cd "$tmp" \
|
|
150
|
-
&& gh release download "$tag" --repo sebastienrousseau/dotfiles \
|
|
151
|
-
--pattern 'dotfiles-sbom.*' \
|
|
152
|
-
&& cosign verify-blob \
|
|
153
|
-
--certificate dotfiles-sbom.spdx.json.pem \
|
|
154
|
-
--signature dotfiles-sbom.spdx.json.sig \
|
|
155
|
-
--certificate-identity-regexp '^https://github.com/sebastienrousseau/dotfiles/' \
|
|
156
|
-
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
|
|
157
|
-
dotfiles-sbom.spdx.json \
|
|
158
|
-
&& slsa-verifier verify-artifact dotfiles-sbom.spdx.json \
|
|
159
|
-
--provenance-path dotfiles-sbom.spdx.json.intoto.jsonl \
|
|
160
|
-
--source-uri github.com/sebastienrousseau/dotfiles \
|
|
161
|
-
--source-tag "$tag"
|
|
162
|
-
)
|
|
163
|
-
local rc=$?
|
|
164
|
-
rm -rf "$tmp"
|
|
165
|
-
return $rc
|
|
166
|
-
}
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Usage:
|
|
170
|
-
|
|
171
|
-
```sh
|
|
172
|
-
verify-dot-release # verify latest
|
|
173
|
-
verify-dot-release v0.2.502 # verify specific tag
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
---
|
|
177
|
-
|
|
178
|
-
## If verification fails
|
|
179
|
-
|
|
180
|
-
1. **Don't install.** Stop the bootstrap script. `^C` any in-flight
|
|
181
|
-
`chezmoi apply`.
|
|
182
|
-
2. **Compare assets**. The release page shows file sizes — if
|
|
183
|
-
yours don't match what's on
|
|
184
|
-
<https://github.com/sebastienrousseau/dotfiles/releases>, you
|
|
185
|
-
downloaded from a man-in-the-middle.
|
|
186
|
-
3. **Report**: open an issue and email
|
|
187
|
-
`security@sebastienrousseau.com` (encrypted to the WKD-published
|
|
188
|
-
GPG key — fingerprint
|
|
189
|
-
`55AFAD364FD9DB3819E61F0C8D688FAFA9144693`). Acknowledgement
|
|
190
|
-
SLA: 72 hours per `SECURITY.md`.
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## See also
|
|
195
|
-
|
|
196
|
-
- `SECURITY.md` — coordinated disclosure policy.
|
|
197
|
-
- `docs/security/KEY_ROTATION.md` — disclosure-key rotation procedure.
|
|
198
|
-
- `docs/security/SCORECARD.md` — OpenSSF Scorecard posture.
|
|
199
|
-
- `docs/operations/HARD_AUDIT_2026.md` Part 7 — the GPG key generation + WKD publication record.
|
|
200
|
-
- [Sigstore Cosign docs](https://docs.sigstore.dev/cosign/signing/overview/)
|
|
201
|
-
- [SLSA verifier docs](https://github.com/slsa-framework/slsa-verifier)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
2
|
-
|
|
3
|
-
mDMEagg20hYJKwYBBAHaRw8BAQdAk2HMi5IFTHBGhCtSFzqwsyuVb7mO0iIhoUXR
|
|
4
|
-
mTv/PNK0R1NlYmFzdGllbiBSb3Vzc2VhdSAoRG90ZmlsZXMgU2VjdXJpdHkpIDxz
|
|
5
|
-
ZWN1cml0eUBzZWJhc3RpZW5yb3Vzc2VhdS5jb20+iLUEExYKAF0WIQRVr602T9nb
|
|
6
|
-
OBnmHwyNaI+vqRRGkwUCagg20hsUgAAAAAAEAA5tYW51MiwyLjUrMS4xMiwwLDMC
|
|
7
|
-
GwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQjWiPr6kURpOH
|
|
8
|
-
qQEA4gl4pfhkR9Y3IM6oMHydavrx3CE6mX4YRIkYJ7fYj4UA/iO/54bdjG+wmIrE
|
|
9
|
-
cQ077+ijTTCMnHrosn3E13oQ6NIJuDgEagg20hIKKwYBBAGXVQEFAQEHQKdKJLxe
|
|
10
|
-
xsXBXELbxGHUz2asoTuOnsKk8WEdOyESH3dnAwEIB4iUBBgWCgA8FiEEVa+tNk/Z
|
|
11
|
-
2zgZ5h8MjWiPr6kURpMFAmoINtIbFIAAAAAABAAObWFudTIsMi41KzEuMTIsMCwz
|
|
12
|
-
AhsMAAoJEI1oj6+pFEaTUw0A/14oNMWsx1gcyx9wl/vy+OgEXoOksxSV+FetAI2Q
|
|
13
|
-
Q7qOAP9pohjVAi40dqfBXv3vet7CV0V4p2kQ+qpQTOPTVafkDA==
|
|
14
|
-
=UtsL
|
|
15
|
-
-----END PGP PUBLIC KEY BLOCK-----
|