matrixscroll 0.6.1__tar.gz → 0.6.3__tar.gz

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.
Files changed (174) hide show
  1. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/.gitignore +27 -0
  2. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/CHANGELOG.md +69 -0
  3. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/CONTRIBUTING.md +16 -2
  4. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/PKG-INFO +141 -99
  5. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/README.md +132 -89
  6. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/SECURITY.md +2 -2
  7. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/ADOPTER_KIT.md +9 -5
  8. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +1 -1
  9. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/COMPARISON.md +1 -2
  10. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/CRYPTO_ROADMAP.md +1 -1
  11. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/DOCTRINE.md +60 -60
  12. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/FIVE_MINUTES.md +3 -3
  13. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/HERO_DEMO.md +3 -3
  14. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/POC2_AUDIT.md +2 -2
  15. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/ROADMAP_2026-07.md +2 -2
  16. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/SECURITY_PROPERTIES.md +1 -1
  17. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/SOFTWARE_PRODUCTS.md +5 -5
  18. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/WHITEPAPER.md +5 -5
  19. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/commercial/PLATFORM_PIVOT.md +2 -2
  20. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/commercial/SCROLL_GATE_V2.md +1 -1
  21. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/commercial/SSX360_SCROLL.md +1 -1
  22. matrixscroll-0.6.3/docs/explanation/actor-attribution.md +77 -0
  23. matrixscroll-0.6.3/docs/explanation/ap2.md +74 -0
  24. matrixscroll-0.6.3/docs/explanation/commit-time-vs-artifact-time.md +78 -0
  25. matrixscroll-0.6.3/docs/explanation/style-supplement.md +123 -0
  26. matrixscroll-0.6.3/docs/explanation/trust-boundaries.md +85 -0
  27. matrixscroll-0.6.3/docs/explanation/writing-workflow.md +100 -0
  28. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/hardware-provider.md +2 -2
  29. matrixscroll-0.6.3/docs/how-to/gate-protected-branch.md +109 -0
  30. matrixscroll-0.6.3/docs/how-to/publish-git-notes.md +53 -0
  31. matrixscroll-0.6.3/docs/how-to/scan-mcp-server.md +57 -0
  32. matrixscroll-0.6.3/docs/index.md +70 -0
  33. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/quickstart-agent.md +1 -1
  34. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/quickstart-claude-code.md +1 -1
  35. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/quickstart-git.md +9 -9
  36. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/quickstart-mcp.md +2 -2
  37. matrixscroll-0.6.3/docs/reference/cli.md +82 -0
  38. matrixscroll-0.6.3/docs/reference/commit-envelope.md +45 -0
  39. matrixscroll-0.6.3/docs/reference/exit-codes.md +38 -0
  40. matrixscroll-0.6.3/docs/reference/python-api.md +56 -0
  41. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/registries-guide.md +13 -14
  42. matrixscroll-0.6.3/docs/requirements.txt +9 -0
  43. matrixscroll-0.6.3/docs/tutorial/first-commit.md +133 -0
  44. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/yubikey-bridge.md +5 -5
  45. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/yubikey-smoke.md +1 -1
  46. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/ci/protected-branch.yml +6 -6
  47. matrixscroll-0.6.3/examples/mcp/matrixscroll-mcp.signed.json +81 -0
  48. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/__init__.py +1 -1
  49. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/agent_trace.py +90 -90
  50. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/formal.py +11 -4
  51. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/git.py +51 -2
  52. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/providers/se050_transport.py +1 -1
  53. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/pyproject.toml +13 -10
  54. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_agent_trace.py +55 -55
  55. matrixscroll-0.6.3/tests/test_formal_specs.py +84 -0
  56. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_git_envelope.py +62 -1
  57. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_release_metadata.py +21 -3
  58. matrixscroll-0.6.1/docs/ADOPTION.md +0 -13
  59. matrixscroll-0.6.1/docs/SHOW-HN-MCP-TRUST-LAUNCH.md +0 -151
  60. matrixscroll-0.6.1/tests/test_formal_specs.py +0 -40
  61. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/LICENSE +0 -0
  62. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/SPEC.md +0 -0
  63. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/controls/agentic_ai_controls.json +0 -0
  64. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/AGENTIC_AI_SECURITY.md +0 -0
  65. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/AIMS_INTEROP.md +0 -0
  66. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/CI_HARD_GATE.md +0 -0
  67. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/CRYPTO_BACKEND.md +0 -0
  68. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/GITTUF_INTEROP.md +0 -0
  69. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/GIT_AI_NOTES_INTEROP.md +0 -0
  70. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/OPENSSF_SANDBOX_DECISION.md +0 -0
  71. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/SE050_POC_SCOPE.md +0 -0
  72. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/SE050_USB_PROTOCOL.md +0 -0
  73. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/SLSA_SOURCE_TRACK_MAPPING.md +0 -0
  74. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/commercial/README.md +0 -0
  75. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/delegation-attestation-rfc.md +0 -0
  76. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/rekor-guac-bridge-design.md +0 -0
  77. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
  78. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
  79. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
  80. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/agentic_ai_evidence_manifest.json +0 -0
  81. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
  82. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/commit-envelope.json +0 -0
  83. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/commit-envelope.signed.json +0 -0
  84. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/demo/agent-commit-demo.sh +0 -0
  85. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/demo/generate_signed_examples.py +0 -0
  86. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/demo/hero-self-attestation-demo.sh +0 -0
  87. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/demo/mcp-rugpull-demo.cast +0 -0
  88. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/demo/mcp-rugpull-demo.gif +0 -0
  89. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/demo/mcp-rugpull-demo.sh +0 -0
  90. /matrixscroll-0.6.1/examples/mcp/matrixscroll-mcp.signed.json → /matrixscroll-0.6.3/examples/mcp/matrixscroll-mcp.baseline.json +0 -0
  91. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/mcp/matrixscroll-mcp.manifest.json +0 -0
  92. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/release-manifest.json +0 -0
  93. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/release-manifest.signed.json +0 -0
  94. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/examples/trusted-keys-policy.json +0 -0
  95. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/_claim.py +0 -0
  96. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/_core.py +0 -0
  97. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/_payment.py +0 -0
  98. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/canonical.py +0 -0
  99. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/cli.py +0 -0
  100. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/cloud/__init__.py +0 -0
  101. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/cloud/client.py +0 -0
  102. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/constants.py +0 -0
  103. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/crypto_backend.py +0 -0
  104. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/errors.py +0 -0
  105. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/gate.py +0 -0
  106. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/guac_export.py +0 -0
  107. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/hooks/post-commit +0 -0
  108. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/hooks/pre-push +0 -0
  109. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/manifest.py +0 -0
  110. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/mcp.py +0 -0
  111. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/mcp_core.py +0 -0
  112. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/mcp_trust.py +0 -0
  113. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/policy.py +0 -0
  114. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/pqc.py +0 -0
  115. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/provenance/__init__.py +0 -0
  116. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/provenance/actions.py +0 -0
  117. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/providers/__init__.py +0 -0
  118. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/providers/base.py +0 -0
  119. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/providers/emulated.py +0 -0
  120. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/providers/hardware.py +0 -0
  121. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/providers/registry.py +0 -0
  122. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/providers/tpm.py +0 -0
  123. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/providers/yubikey.py +0 -0
  124. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/py.typed +0 -0
  125. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/rekor_publish.py +0 -0
  126. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/scroll/README.md +0 -0
  127. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/scroll/__init__.py +0 -0
  128. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/matrixscroll/ssx360_cli.py +0 -0
  129. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/schemas/action-envelope.v1.json +0 -0
  130. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/schemas/commit-envelope.v1.1.json +0 -0
  131. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/schemas/commit-envelope.v1.json +0 -0
  132. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/schemas/evidence-pack.v1.json +0 -0
  133. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/schemas/pqc-signature.v1.json +0 -0
  134. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/schemas/release-manifest.v1.json +0 -0
  135. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/schemas/ssx360.mcp-manifest.v1.json +0 -0
  136. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/__init__.py +0 -0
  137. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/fixtures/github-gpgsig-commit.txt +0 -0
  138. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/fixtures/mcp-tools-sample.json +0 -0
  139. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_agentic_guidance.py +0 -0
  140. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_canonical.py +0 -0
  141. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_canonical_pqc.py +0 -0
  142. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_cli.py +0 -0
  143. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_core.py +0 -0
  144. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_crypto_backend.py +0 -0
  145. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_gate.py +0 -0
  146. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_guac_rekor.py +0 -0
  147. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_mcp_core.py +0 -0
  148. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_mcp_server.py +0 -0
  149. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_mcp_trust.py +0 -0
  150. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_policy.py +0 -0
  151. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_pqc.py +0 -0
  152. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_provenance.py +0 -0
  153. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_se050_transport.py +0 -0
  154. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_security_properties.py +0 -0
  155. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_ssx360_cli.py +0 -0
  156. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_tpm_provider.py +0 -0
  157. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_vectors.py +0 -0
  158. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/tests/test_yubikey_provider.py +0 -0
  159. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/README.md +0 -0
  160. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/_fixture_key.json +0 -0
  161. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/_generate.py +0 -0
  162. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/tampered_algorithm.json +0 -0
  163. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/tampered_device_id.json +0 -0
  164. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/tampered_field.json +0 -0
  165. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/tampered_nested.json +0 -0
  166. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/tampered_public_key.json +0 -0
  167. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/tampered_schema.json +0 -0
  168. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/tampered_signature.json +0 -0
  169. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/unsigned_empty_block.json +0 -0
  170. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/unsigned_no_block.json +0 -0
  171. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/valid_commit_envelope.json +0 -0
  172. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/valid_nested.json +0 -0
  173. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/valid_simple.json +0 -0
  174. {matrixscroll-0.6.1 → matrixscroll-0.6.3}/vectors/valid_unicode.json +0 -0
@@ -32,9 +32,36 @@ env/
32
32
  *.swp
33
33
  .DS_Store
34
34
 
35
+ # Secrets and credentials (never commit)
36
+ .env
37
+ .env.*
38
+ !.env.example
39
+ *.pem
40
+ *.key
41
+ credentials.json
42
+ credentials/
43
+
44
+ # Editor / agent local state
45
+ .cursor/
46
+ .playwright-cli/
47
+
35
48
  # Matrix Scroll local store (never commit a private key)
36
49
  .matrixscroll/
37
50
  device.json
38
51
 
39
52
  # TLA+ tools (download locally or in CI)
40
53
  tla2tools.jar
54
+
55
+ # TLC run artifacts
56
+ formal/tla/states/
57
+ formal/tla/*_TTrace_*.tla
58
+ formal/tla/*_TTrace_*.bin
59
+
60
+ # MkDocs build output
61
+ site/
62
+
63
+ # Vale packages fetched by `vale sync`; do not commit
64
+ .vale/styles/Google/
65
+ .vale/styles/write-good/
66
+ .vale/styles/ai-tells/
67
+ .vale/styles/ai-tells-commits/
@@ -4,6 +4,73 @@ All notable changes to the Matrix Scroll Python SDK are documented here. The
4
4
  format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
5
5
  this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [Unreleased]
8
+
9
+ ## [0.6.3] - 2026-08-10
10
+
11
+ Repository layout and documentation. No code, CLI or wire-format changes.
12
+
13
+ ### Added
14
+ - **The Matrix Scroll Verify action now lives in this repo** at
15
+ [`.github/actions/verify`](.github/actions/verify), and the reusable MCP
16
+ manifest gate at `.github/workflows/mcp-manifest-gate.yml`. Both were
17
+ published from the separate `SSX360/matrixscroll-verify-action` repository,
18
+ which is now archived. Inputs, outputs and exit codes are unchanged.
19
+
20
+ ### Changed
21
+ - **Call sites move to the new reference.** Replace
22
+ `SSX360/matrixscroll-verify-action@v1` with
23
+ `SSX360/matrixscroll/.github/actions/verify@action-v1`, and
24
+ `SSX360/matrixscroll-verify-action/.github/workflows/mcp-manifest-gate.yml@main`
25
+ with `SSX360/matrixscroll/.github/workflows/mcp-manifest-gate.yml@action-v1`.
26
+ The `action-v1` tag tracks the current action release line and is separate
27
+ from the SDK's `v0.6.x` tags.
28
+ - The reusable MCP gate now defaults `matrixscroll_version` to `0.6.3`, matching
29
+ the action default and the published PyPI release. It runs on `workflow_call`
30
+ and `workflow_dispatch` only, so it does not add a job to every SDK pull
31
+ request.
32
+
33
+ ### Fixed
34
+ - **PyPI dropped every relative link in the README.** Its sanitiser removes any
35
+ `href` it cannot resolve, so 17 documentation links arrived on the project
36
+ page as plain text and the MCP rug-pull demo GIF arrived as its alt text,
37
+ leaving that section without its only visual. All of them are absolute
38
+ `github.com` and `raw.githubusercontent.com` URLs now.
39
+ - **Three README links promised a tamper demo at a page that redirects.**
40
+ `matrixscroll.com/try` routes to `/docs/`. The demo is the browser verifier
41
+ at `/verify/`, which carries the Tamper sample control, so the inline links
42
+ point there. The `Try it` entry under Public proof links repeated the
43
+ verifier line above it and is now the MCP Trust Scanner at `/scan/`.
44
+ - **`SECURITY.md` offered support for 0.2.x and 0.1.x.** A reader installing
45
+ the published release found their version missing from the table on the page
46
+ the PyPI sidebar links as the security policy.
47
+
48
+ ## [0.6.2] - 2026-08-03
49
+
50
+ Documentation and packaging metadata only. No code, CLI or wire-format changes,
51
+ and no new dependencies.
52
+
53
+ ### Fixed
54
+ - **Packaging URLs pointed at pages that had moved or gone.** `Documentation` and
55
+ `Verifier` routed through `ssx360.com` redirects that land on
56
+ `matrixscroll.com`, `Reference Device` pointed at a culled `/hardware` page,
57
+ and `Compare` duplicated `Documentation`. Every link now resolves directly, and
58
+ `Homepage` is the protocol site rather than the maintainer's.
59
+ - **The README described a hosted control plane with billing.** SSX360 is an
60
+ independent audit practice that sells assessments, not a platform, so the
61
+ README now says who maintains the protocol and why that separation exists. The
62
+ links to the retired `/enterprise`, `/signup` and `/compare` pages are gone.
63
+
64
+ ### Documentation
65
+ - **State the post-quantum limit where people actually read it.** The summary and
66
+ keywords claim FIPS 204 and FIPS 205, but nothing on the PyPI page said the
67
+ overlay is an algorithm implementation through liboqs rather than a
68
+ CMVP-validated module, or repeated liboqs's own warning against production use.
69
+ Honest limits now carries both.
70
+ - Summary rewritten to lead with what the protocol does rather than the hardware
71
+ signing path, which is a bench prototype and not a product.
72
+ - Install pin `matrixscroll==0.6.2`.
73
+
7
74
  ## [0.6.1] - 2026-07-22
8
75
 
9
76
  ### Documentation
@@ -245,6 +312,8 @@ Initial public release. Extracted from the SSX360 reference implementation.
245
312
  - Device id format: `MS-XXXX-XXXX` (SHA-256 of the raw public key, first 8 hex
246
313
  chars, uppercase).
247
314
 
315
+ [0.6.3]: https://github.com/SSX360/matrixscroll/releases/tag/v0.6.3
316
+ [0.6.2]: https://github.com/SSX360/matrixscroll/releases/tag/v0.6.2
248
317
  [0.6.1]: https://github.com/SSX360/matrixscroll/releases/tag/v0.6.1
249
318
  [0.6.0]: https://github.com/SSX360/matrixscroll/releases/tag/v0.6.0
250
319
  [0.5.1]: https://github.com/SSX360/matrixscroll/releases/tag/v0.5.1
@@ -35,13 +35,27 @@ For PRs that include agent-assisted commits, publish signed commit envelopes to
35
35
 
36
36
  ```bash
37
37
  matrixscroll hook-install
38
- export MATRIXSCROLL_ACTOR_TYPE=agent # or human / ci as appropriate
39
- export MATRIXSCROLL_TOOL=agent-runner # or your editor / agent tool name
40
38
  git commit -m "feat: your change"
41
39
  matrixscroll envelope-publish-notes --base origin/main --head HEAD
42
40
  git push origin refs/notes/matrixscroll
43
41
  ```
44
42
 
43
+ `actor_type` and `tool` are detected from the environment. A commit made in a
44
+ Cursor, Claude Code, Aider, Codex, or Devin session is recorded as `agent` with
45
+ that tool; a commit made by a CI runner is recorded as `ci`. Everything else is
46
+ `human` and `git-cli`.
47
+
48
+ Set `MATRIXSCROLL_ACTOR_TYPE` and `MATRIXSCROLL_TOOL` only when the detection
49
+ list does not cover your agent runner, and only to describe what actually made
50
+ the commit. Never set `MATRIXSCROLL_ACTOR_TYPE=human` inside an agent session.
51
+ The envelope exists to record who wrote a change. A signed envelope carrying the
52
+ wrong actor is the exact falsification this project detects.
53
+
54
+ Detection and its limits are covered in
55
+ [`docs/explanation/actor-attribution.md`](docs/explanation/actor-attribution.md),
56
+ which also explains why envelopes already published with the wrong actor are
57
+ left in place.
58
+
45
59
  CI verifies the PR range with `matrixscroll envelope-verify-range --source notes`.
46
60
  Until repository variable `ENFORCE_PROVENANCE=true` is set, missing notes produce a **warning**
47
61
  in the GitHub Step Summary rather than a hard failure.
@@ -1,24 +1,23 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matrixscroll
3
- Version: 0.6.1
4
- Summary: Signed provenance for agent-assisted Git commits with offline Ed25519 verification; optional ML-DSA/SLH-DSA software overlay (FIPS 204/205). USB/NFC/SE050 hardware remains Ed25519.
5
- Project-URL: Homepage, https://ssx360.com
6
- Project-URL: Documentation, https://ssx360.com/docs
3
+ Version: 0.6.3
4
+ Summary: Sign who authorized an AI agent's actions and verify it offline. Ed25519 envelopes for Git commits and MCP tool surfaces, with an optional ML-DSA/SLH-DSA overlay (FIPS 204/205).
5
+ Project-URL: Homepage, https://matrixscroll.com
6
+ Project-URL: Documentation, https://matrixscroll.com/docs/
7
+ Project-URL: Specification, https://matrixscroll.com/spec/
8
+ Project-URL: Verifier, https://matrixscroll.com/verify/
7
9
  Project-URL: Repository, https://github.com/SSX360/matrixscroll
8
10
  Project-URL: Source, https://github.com/SSX360/matrixscroll
9
11
  Project-URL: Issues, https://github.com/SSX360/matrixscroll/issues
10
- Project-URL: Specification, https://github.com/SSX360/matrixscroll/blob/main/SPEC.md
11
12
  Project-URL: Whitepaper, https://github.com/SSX360/matrixscroll/blob/main/docs/WHITEPAPER.md
12
- Project-URL: Verifier, https://ssx360.com/verify
13
- Project-URL: Compare, https://ssx360.com/docs
14
13
  Project-URL: Changelog, https://github.com/SSX360/matrixscroll/blob/main/CHANGELOG.md
15
14
  Project-URL: Discussions, https://github.com/SSX360/matrixscroll/discussions
16
15
  Project-URL: Security, https://github.com/SSX360/matrixscroll/blob/main/SECURITY.md
17
- Project-URL: GitHub Action, https://github.com/SSX360/matrixscroll-verify-action
18
- Project-URL: PyPI Provenance, https://pypi.org/project/matrixscroll/0.6.1/
19
- Project-URL: Reference Device, https://ssx360.com/hardware
16
+ Project-URL: GitHub Action, https://github.com/SSX360/matrixscroll/tree/main/.github/actions/verify
20
17
  Project-URL: Tests, https://github.com/SSX360/matrixscroll/tree/main/tests
21
18
  Project-URL: Public Roadmap, https://github.com/SSX360/matrixscroll/blob/main/docs/ROADMAP_2026-07.md
19
+ Project-URL: Hardware Status, https://github.com/SSX360/matrixscroll/blob/main/docs/hardware-provider.md
20
+ Project-URL: Maintainer, https://ssx360.com/about
22
21
  Author-email: SSX360 <security@matrixscroll.com>
23
22
  License-Expression: Apache-2.0
24
23
  License-File: LICENSE
@@ -58,47 +57,50 @@ Description-Content-Type: text/markdown
58
57
 
59
58
  # Matrix Scroll
60
59
 
61
- **Try it:** [matrixscroll.com/try](https://matrixscroll.com/try) — offline tamper demo and ten-line quickstart.
62
-
63
- **Codebase direction:** [`docs/DOCTRINE.md`](docs/DOCTRINE.md)
60
+ Signed provenance for agent-assisted Git commits, with offline Ed25519 verification.
64
61
 
65
62
  [![ci-unit](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml/badge.svg)](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml)
66
- [![Scroll Gate v2 (hosted)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml/badge.svg)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
67
- [![codecov](https://codecov.io/gh/SSX360/matrixscroll/graph/badge.svg)](https://codecov.io/gh/SSX360/matrixscroll)
63
+ [![PyPI](https://img.shields.io/pypi/v/matrixscroll)](https://pypi.org/project/matrixscroll/)
64
+ [![Python](https://img.shields.io/pypi/pyversions/matrixscroll)](https://pypi.org/project/matrixscroll/)
65
+ [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/SSX360/matrixscroll/blob/main/LICENSE)
68
66
 
69
- **146 tests** · Hypothesis-verified security properties · [Security properties](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md) · [TLA+ formal models](formal/README.md)
67
+ Matrix Scroll is an open protocol for cryptographically signed agent
68
+ authorization: Ed25519 records for Git commits (L1), MCP tool surfaces (L2), and
69
+ agent runs and non-human-identity actions (L3), verified offline in the CLI, the
70
+ browser, and CI. It is free, permanently, and is not monetized.
70
71
 
71
- **Agent Authorization Authority — offline-verifiable proof for every machine action.** Matrix Scroll is an
72
- **open protocol for cryptographically signed agent authorization** — Ed25519 records for Git commits (L1),
73
- MCP tool surfaces (L2), and agent runs / NHI actions (L3), verified offline in CLI, browser, and CI.
74
- Software emulated keys ship today; NXP SE050 secure-element signing is a
75
- bench-validated PoC (Jul 2026) with the same verifier contract. The Pico 2 W /
76
- GMT130 display bring-up is a locked L2 Hardware prototype (Jul 2026) — not GA.
72
+ Software emulated keys ship today. NXP SE050 secure-element signing is a
73
+ bench-validated proof of concept (Jul 2026) sharing the same verifier contract,
74
+ and the Pico 2 W / GMT130 display bring-up is a locked L2 Hardware prototype
75
+ (Jul 2026). Neither is generally available.
77
76
 
78
- *They receipt the model call. We receipt everything the machine does.*
77
+ **Try it:** [matrixscroll.com/verify](https://matrixscroll.com/verify/) runs an offline
78
+ tamper demo in the browser. **Codebase direction:** [`docs/DOCTRINE.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/DOCTRINE.md).
79
+ **146 tests**, Hypothesis-verified [security properties](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md),
80
+ and [TLA+ formal models](https://github.com/SSX360/matrixscroll/blob/main/formal/README.md).
79
81
 
80
- **Authorization ladder:** L1 Code (commits) · L2 Tools (MCP manifests) · L3 Actions (agent runs) · L4 Money (AP2 — demo) · L5 Silicon (2029+)
82
+ **Authorization ladder:** L1 Code (commits), L2 Tools (MCP manifests), L3 Actions (agent runs), L4 Money (AP2, demo), L5 Silicon (2029+)
81
83
 
82
- **Hosted control plane:** identity, billing, authorization ledger, and Scroll Gate live at
83
- [ssx360.com](https://ssx360.com/). Enterprise teams evaluating protected-branch enforcement should
84
- [book a provenance pilot](https://ssx360.com/contact?intent=pilot) or visit
85
- [ssx360.com/enterprise](https://ssx360.com/enterprise).
86
- Provisioned pilot and team accounts sign in at [ssx360.com/signup](https://ssx360.com/signup).
84
+ **Who maintains it:** [SSX360](https://ssx360.com/about), an independent audit
85
+ practice for agent authorization. It sells assessments and never sells this
86
+ protocol, because gating the protocol would remove the reason anyone trusts the
87
+ audit built beside it. Teams that want an independent assessment of their own
88
+ mandate chain can [request a call](https://ssx360.com/contact).
87
89
 
88
90
  ## Compliance evidence mapping
89
91
 
90
92
  Matrix Scroll **maps to** and **produces evidence for** (never “required by”; not a certification claim):
91
93
 
92
- - **DORA (Jan 2025)** — ICT change-management evidence for software changes.
93
- - **PCI DSS 4.0 Req 6.5 (Mar 2025)** — change-control evidence for custom software.
94
- - **US Treasury FS-AI RMF (Feb 2026)** — traceability for agent actions in financial software.
95
- - **NIST SSDF** — provenance, change authorization, and release gate review.
96
- - **EU AI Act Article 12** — record-keeping readiness (high-risk obligations Dec 2027), not a live mandate claim.
97
- - **Five Eyes Agentic AI guidance (Apr 2026)** — linked crosswalk only: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
94
+ - **DORA (Jan 2025)**: ICT change-management evidence for software changes.
95
+ - **PCI DSS 4.0 Req 6.5 (Mar 2025)**: change-control evidence for custom software.
96
+ - **US Treasury FS-AI RMF (Feb 2026)**: traceability for agent actions in financial software.
97
+ - **NIST SSDF**: provenance, change authorization, and release gate review.
98
+ - **EU AI Act Article 12**: record-keeping readiness (high-risk obligations Dec 2027), not a live mandate claim.
99
+ - **Five Eyes Agentic AI guidance (Apr 2026)**: linked crosswalk only: [`controls/agentic_ai_controls.json`](https://github.com/SSX360/matrixscroll/blob/main/controls/agentic_ai_controls.json)
98
100
 
99
- POC 2 audit readiness: [`docs/POC2_AUDIT.md`](docs/POC2_AUDIT.md)
101
+ POC 2 audit readiness: [`docs/POC2_AUDIT.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/POC2_AUDIT.md)
100
102
 
101
- ## Install — MCP server (headline path)
103
+ ## Install the MCP server (headline path)
102
104
 
103
105
  Agents sign commits in-loop via the **provenance-only** MCP server:
104
106
 
@@ -114,29 +116,29 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
114
116
  ```
115
117
 
116
118
  ```bash
117
- pip install "matrixscroll[mcp]==0.6.1"
118
- matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
119
+ pip install "matrixscroll[mcp]==0.6.3"
120
+ matrixscroll-mcp # stdio. Register in Cursor / Claude Desktop / VS Code
119
121
  ```
120
122
 
121
123
  **MCP tools (provenance verbs only):** `create_envelope`, `sign_action`, `verify_envelope`,
122
124
  `verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`, `list_envelopes`,
123
- `connect_card` (SE050 hardware prototype — pilot evaluation; not GA).
125
+ `connect_card` (SE050 hardware prototype, pilot evaluation, not GA).
124
126
 
125
127
  **MCP trust tools (manifest surface):** `scan_mcp_server`, `sign_mcp_manifest`, `verify_mcp_manifest`.
126
128
 
127
- ### MCP Trust Scanner — catch a rug-pull in 60 seconds
129
+ ### MCP Trust Scanner: catch a rug-pull in 60 seconds
128
130
 
129
- ![MCP rug-pull detection demo](examples/demo/mcp-rugpull-demo.gif)
131
+ ![MCP rug-pull detection demo](https://raw.githubusercontent.com/SSX360/matrixscroll/main/examples/demo/mcp-rugpull-demo.gif)
130
132
 
131
- [Watch on asciinema](https://asciinema.org/a/rbCRkIcZnjNWmqZF) · cast file: [`examples/demo/mcp-rugpull-demo.cast`](examples/demo/mcp-rugpull-demo.cast)
133
+ [Watch on asciinema](https://asciinema.org/a/rbCRkIcZnjNWmqZF) · cast file: [`examples/demo/mcp-rugpull-demo.cast`](https://github.com/SSX360/matrixscroll/blob/main/examples/demo/mcp-rugpull-demo.cast)
132
134
 
133
- Sign the tool surface. Verify at install. Offline Ed25519 manifests for MCP rug-pull detection —
134
- zero cloud, zero signup, exit code 2 fails your CI.
135
+ Sign the tool surface. Verify at install. Offline Ed25519 manifests for MCP rug-pull detection.
136
+ Zero cloud, zero signup, exit code 2 fails your CI.
135
137
 
136
138
  ```bash
137
- pip install "matrixscroll==0.6.1"
139
+ pip install "matrixscroll==0.6.3"
138
140
 
139
- # 1. Scan a live MCP server (stdio) — fingerprints every tool: name, description, input schema
141
+ # 1. Scan a live MCP server (stdio). Fingerprints every tool: name, description, input schema
140
142
  matrixscroll mcp scan --connect stdio --server-command "npx -y some-mcp-server" \
141
143
  -o manifest.json --pretty
142
144
 
@@ -160,31 +162,30 @@ A mutated tool description or input schema fails loudly:
160
162
  FAIL surface_drift — do not trust this server until you review the diff
161
163
  ```
162
164
 
163
- Offline mode works too — no server needed: `matrixscroll mcp scan --tools ./tools.json`
165
+ Offline mode works too, no server needed: `matrixscroll mcp scan --tools ./tools.json`
164
166
  accepts a plain JSON tool array or `{"tools": [...]}` (paste from any `tools/list` response).
165
167
 
166
- Gate it in CI — fail the build on unsigned or drifted manifests with the reusable workflow:
168
+ Gate it in CI. Fail the build on unsigned or drifted manifests with the reusable workflow:
167
169
 
168
170
  ```yaml
169
171
  jobs:
170
172
  mcp-gate:
171
- uses: SSX360/matrixscroll-verify-action/.github/workflows/mcp-manifest-gate.yml@main
173
+ uses: SSX360/matrixscroll/.github/workflows/mcp-manifest-gate.yml@action-v1
172
174
  with:
173
175
  manifest: mcp/my-server.signed.json
174
176
  baseline: mcp/my-server.baseline.json
175
- matrixscroll_version: "0.6.1"
177
+ matrixscroll_version: "0.6.3"
176
178
  ```
177
179
 
178
- Full scripted demo: [`examples/demo/mcp-rugpull-demo.sh`](examples/demo/mcp-rugpull-demo.sh)
179
- Golden artifact (this repo's own MCP server, signed): [`examples/mcp/matrixscroll-mcp.signed.json`](examples/mcp/matrixscroll-mcp.signed.json)
180
- Schema (CC0): [`schemas/ssx360.mcp-manifest.v1.json`](schemas/ssx360.mcp-manifest.v1.json)
181
- Browser demo: [matrixscroll.com/scan](https://matrixscroll.com/scan)
182
- Launch checklist: [`docs/SHOW-HN-MCP-TRUST-LAUNCH.md`](docs/SHOW-HN-MCP-TRUST-LAUNCH.md)
180
+ Full scripted demo: [`examples/demo/mcp-rugpull-demo.sh`](https://github.com/SSX360/matrixscroll/blob/main/examples/demo/mcp-rugpull-demo.sh)
181
+ Golden artifact (this repo's own MCP server, signed): [`examples/mcp/matrixscroll-mcp.signed.json`](https://github.com/SSX360/matrixscroll/blob/main/examples/mcp/matrixscroll-mcp.signed.json)
182
+ Schema (CC0): [`schemas/ssx360.mcp-manifest.v1.json`](https://github.com/SSX360/matrixscroll/blob/main/schemas/ssx360.mcp-manifest.v1.json)
183
+ Browser demo: [matrixscroll.com/scan](https://matrixscroll.com/scan/)
183
184
 
184
- ## Also available — CLI & hooks
185
+ ## Also available: CLI and hooks
185
186
 
186
187
  ```bash
187
- pip install "matrixscroll==0.6.1"
188
+ pip install "matrixscroll==0.6.3"
188
189
  matrixscroll hook-install
189
190
  export MATRIXSCROLL_ACTOR_TYPE=agent
190
191
  export MATRIXSCROLL_TOOL=agent-runner
@@ -205,7 +206,7 @@ matrixscroll sign-action --type ci_step \
205
206
 
206
207
  Action schema: [`schemas/action-envelope.v1.json`](https://github.com/SSX360/matrixscroll/blob/main/schemas/action-envelope.v1.json)
207
208
 
208
- ### SSX360 Scroll — Git wrapper (Layer 3, Phase 1)
209
+ ### SSX360 Scroll: Git wrapper (Layer 3, Phase 1)
209
210
 
210
211
  Git under the hood; governance on top. **Not a Git replacement.**
211
212
 
@@ -213,10 +214,10 @@ Git under the hood; governance on top. **Not a Git replacement.**
213
214
  matrixscroll scroll commit -m "feat: governed commit"
214
215
  ```
215
216
 
216
- See [`docs/commercial/SSX360_SCROLL.md`](docs/commercial/SSX360_SCROLL.md).
217
+ See [`docs/commercial/SSX360_SCROLL.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/commercial/SSX360_SCROLL.md).
217
218
 
218
- See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
219
- [`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
219
+ See [`docs/quickstart-git.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/quickstart-git.md) and
220
+ [`examples/demo/agent-commit-demo.sh`](https://github.com/SSX360/matrixscroll/blob/main/examples/demo/agent-commit-demo.sh).
220
221
 
221
222
  ---
222
223
 
@@ -250,16 +251,23 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](https://github.com/SSX360/matrixscro
250
251
 
251
252
  ## Honest limits
252
253
 
253
- - Shipping now: PyPI `matrixscroll==0.6.1`, Git post-commit hooks,
254
+ - Shipping now: PyPI `matrixscroll==0.6.3`, Git post-commit hooks,
254
255
  `matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
255
256
  `matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
256
257
  verifier, the GitHub Action, and a USB CDC host transport for the SE050
257
258
  hardware prototype path. Emulated mode is the default evaluation path.
258
259
  - Prototype (bench): Pico 2 W / RP2350 + GMT130 ST7789 LCD/LED bring-up locked
259
260
  (2026-07-21); NXP SE050 M1 signing PoC accepted (Jul 2026) on contractor
260
- firmware — not GA; display bring-up UF2 keeps `pubkey`/`sign` fail-closed
261
+ firmware, not GA; display bring-up UF2 keeps `pubkey`/`sign` fail-closed
261
262
  until Plug & Trust restore. External Ed25519-capable hardware key backends
262
263
  and transparency-log integrations remain roadmap.
264
+ - The post-quantum overlay implements the ML-DSA and SLH-DSA algorithms specified
265
+ in FIPS 204 and FIPS 205, through liboqs. That is an algorithm implementation,
266
+ not a CMVP-validated cryptographic module, and it is never described as FIPS
267
+ validated, certified or compliant. liboqs itself states that it should not be
268
+ relied on in production or to protect sensitive data, which is a limit worth
269
+ repeating rather than burying. The overlay is attached alongside the Ed25519
270
+ signature and never replaces it.
263
271
  - Compliance language is evidence mapping (DORA, PCI DSS 4.0, Treasury FS-AI RMF, SSDF, EU AI Act Article 12 readiness, Five Eyes agentic-AI guidance), not certification or customer endorsement.
264
272
  - Illustrative deployment profiles are not endorsements or existing customer relationships.
265
273
  - Not: IAM, sandboxing, prompt filtering, or an agent runtime.
@@ -271,7 +279,7 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](https://github.com/SSX360/matrixscro
271
279
  - Hardware keys and build attestations remain complementary roots and downstream
272
280
  proofs; Matrix Scroll covers commit-time provenance.
273
281
  - The public contract stays pure Ed25519 over canonical manifest bytes for the
274
- required `signature` block — whether the signer is emulated today or
282
+ required `signature` block, whether the signer is emulated today or
275
283
  SE050 secure-element signing later. Software signers may optionally attach ML-DSA/SLH-DSA
276
284
  overlays (FIPS 204/205) via `matrixscroll[pqc]` without changing hardware firmware.
277
285
 
@@ -291,20 +299,21 @@ permissions so teams can evaluate the full workflow now. Hardware mode keeps
291
299
  the same verifier contract and commit envelope schema, but moves the private
292
300
  key into the SE050 secure element so the host cannot export it. That path is
293
301
  a bench-validated L2 Hardware prototype (Pico 2 W + SE050 M1 PoC) available
294
- for pilot evaluation — not GA.
302
+ for pilot evaluation, not GA.
295
303
 
296
304
  ### How can I integrate Matrix Scroll into a CI/CD workflow?
297
305
 
298
306
  Install the SDK and hooks in your repo, publish commit envelopes to
299
307
  `refs/notes/matrixscroll` before PR review, and use
300
- `SSX360/matrixscroll-verify-action@v1` to verify the full PR commit range in
301
- GitHub Actions. Protected branches can then require Matrix Scroll proof
308
+ `SSX360/matrixscroll/.github/actions/verify@action-v1` to verify the full PR
309
+ commit range in GitHub Actions. Protected branches can then require Matrix
310
+ Scroll proof
302
311
  alongside your existing scanners, branch protection, and build attestations.
303
312
 
304
313
  ## Quickstart (CLI)
305
314
 
306
315
  ```bash
307
- pip install "matrixscroll==0.6.1"
316
+ pip install "matrixscroll==0.6.3"
308
317
  matrixscroll hook-install
309
318
  matrixscroll hook-status
310
319
 
@@ -315,10 +324,10 @@ git commit -m "feat: agent-assisted change"
315
324
  matrixscroll envelope-verify "$(git rev-parse HEAD)"
316
325
  ```
317
326
 
318
- **Try it in the browser:** [matrixscroll.com/try](https://matrixscroll.com/try)
327
+ **Try it in the browser:** [matrixscroll.com/verify](https://matrixscroll.com/verify/)
319
328
 
320
- See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
321
- [`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
329
+ See [`docs/quickstart-git.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/quickstart-git.md) and run
330
+ [`examples/demo/agent-commit-demo.sh`](https://github.com/SSX360/matrixscroll/blob/main/examples/demo/agent-commit-demo.sh).
322
331
 
323
332
  ## CI verify
324
333
 
@@ -328,12 +337,12 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
328
337
  - uses: actions/checkout@v4
329
338
  with:
330
339
  fetch-depth: 0
331
- - uses: SSX360/matrixscroll-verify-action@v1
340
+ - uses: SSX360/matrixscroll/.github/actions/verify@action-v1
332
341
  with:
333
342
  head-ref: ${{ github.event.pull_request.head.sha }}
334
343
  base-ref: ${{ github.event.pull_request.base.sha }}
335
344
  source: notes
336
- matrixscroll-version: "0.6.1"
345
+ matrixscroll-version: "0.6.3"
337
346
  require-mode: emulated
338
347
  ```
339
348
 
@@ -348,28 +357,28 @@ git push origin refs/notes/matrixscroll
348
357
  - uses: actions/checkout@v4
349
358
  with:
350
359
  fetch-depth: 0
351
- - uses: SSX360/matrixscroll-verify-action@v1
360
+ - uses: SSX360/matrixscroll/.github/actions/verify@action-v1
352
361
  with:
353
362
  head-ref: ${{ github.event.pull_request.head.sha }}
354
363
  base-ref: ${{ github.event.pull_request.base.sha }}
355
364
  source: notes
356
- matrixscroll-version: "0.6.1"
365
+ matrixscroll-version: "0.6.3"
357
366
  summary-output: provenance-summary.json
358
367
  ```
359
368
 
360
- See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
361
- [`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
369
+ See [`docs/quickstart-git.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/quickstart-git.md) and
370
+ [`examples/ci/protected-branch.yml`](https://github.com/SSX360/matrixscroll/blob/main/examples/ci/protected-branch.yml).
362
371
 
363
372
  The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
364
- ship in the current release line; examples in this README pin `0.6.1`.
373
+ ship in the current release line; examples in this README pin `0.6.3`.
365
374
 
366
375
  ## Security: Ed25519 via cryptography
367
376
 
368
377
  Ed25519 signing, verification, and key generation use the [`cryptography`](https://pypi.org/project/cryptography/)
369
378
  package (required dependency, `>=42.0`). Official wheels ship native crypto
370
- backends (OpenSSL + Rust components) — no Rust toolchain for users. All
379
+ backends (OpenSSL + Rust components), so no Rust toolchain for users. All
371
380
  primitives are centralized in `matrixscroll/crypto_backend.py`; see
372
- [`docs/CRYPTO_BACKEND.md`](docs/CRYPTO_BACKEND.md).
381
+ [`docs/CRYPTO_BACKEND.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/CRYPTO_BACKEND.md).
373
382
 
374
383
  ## Why it is different from Sigstore
375
384
 
@@ -384,23 +393,23 @@ when they preserve the same pure Ed25519 byte contract.
384
393
 
385
394
  ## Public proof links
386
395
 
387
- - Browser verifier: <https://matrixscroll.com/verify>
388
- - Try it (quickstart + tamper demo): <https://matrixscroll.com/try>
389
- - Compare page: <https://matrixscroll.com/compare>
390
- - Documentation: <https://matrixscroll.com/docs>
396
+ - Browser verifier: <https://matrixscroll.com/verify/>
397
+ - MCP Trust Scanner (browser, offline): <https://matrixscroll.com/scan/>
398
+ - Documentation: <https://matrixscroll.com/docs/>
391
399
  - Specification: [`SPEC.md`](https://github.com/SSX360/matrixscroll/blob/main/SPEC.md)
392
400
  - Commit envelope schema: [`schemas/commit-envelope.v1.json`](https://github.com/SSX360/matrixscroll/blob/main/schemas/commit-envelope.v1.json)
393
- - Whitepaper: [`docs/WHITEPAPER.md`](docs/WHITEPAPER.md)
401
+ - Whitepaper: [`docs/WHITEPAPER.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/WHITEPAPER.md)
394
402
  - Conformance vectors: [`vectors/`](https://github.com/SSX360/matrixscroll/tree/main/vectors/)
395
- - GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
403
+ - GitHub Action: <https://github.com/SSX360/matrixscroll/tree/main/.github/actions/verify>
396
404
  - Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/AGENTIC_AI_SECURITY.md)
397
- - Site: <https://matrixscroll.com> · Control plane: <https://ssx360.com> · Enterprise: <https://ssx360.com/enterprise>
398
- - SE050 hardware prototype: <https://ssx360.com/enterprise#roadmap> (bench-validated; not GA)
405
+ - Site: <https://matrixscroll.com> · Browser verifier: <https://matrixscroll.com/verify/>
406
+ - Hardware prototype status: [`docs/hardware-provider.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/hardware-provider.md) (bench-validated; not GA)
407
+ - Maintainer, and how independence is kept: <https://ssx360.com/about>
399
408
 
400
409
  ## Python API
401
410
 
402
411
  ```bash
403
- pip install "matrixscroll==0.6.1"
412
+ pip install "matrixscroll==0.6.3"
404
413
  ```
405
414
 
406
415
  ```python
@@ -450,7 +459,7 @@ matrixscroll.sign_manifest(...) / post-commit hook
450
459
  v
451
460
  IdentityProvider --> Ed25519 signature
452
461
  (L1 emulated today,
453
- SSX360 / SE050 prototype — bench-validated)
462
+ SSX360 / SE050 prototype, bench-validated)
454
463
  |
455
464
  v
456
465
  signed document --> matrixscroll.verify_manifest(...)
@@ -467,7 +476,7 @@ canonical bytes with Ed25519.
467
476
  For rollout order, start with `MATRIXSCROLL_MODE=emulated` for evaluation,
468
477
  layer in external Ed25519-capable signers only when they stay verifier
469
478
  compatible, and treat `hardware` as the SE050 prototype path for pilot
470
- evaluation — not GA.
479
+ evaluation, not GA.
471
480
 
472
481
  ## Compliance levels
473
482
 
@@ -499,9 +508,9 @@ implementations in Rust, Go, TypeScript, and embedded C. Run them against
499
508
  ## Agentic AI guidance proof
500
509
 
501
510
  The repo includes a machine-readable control matrix at
502
- [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json), an
511
+ [`controls/agentic_ai_controls.json`](https://github.com/SSX360/matrixscroll/blob/main/controls/agentic_ai_controls.json), an
503
512
  example bounded-agent evidence manifest at
504
- [`examples/agentic_ai_evidence_manifest.json`](examples/agentic_ai_evidence_manifest.json),
513
+ [`examples/agentic_ai_evidence_manifest.json`](https://github.com/SSX360/matrixscroll/blob/main/examples/agentic_ai_evidence_manifest.json),
505
514
  and executable checks in `tests/test_agentic_guidance.py`.
506
515
 
507
516
  ## Model Context Protocol (MCP) Server
@@ -513,11 +522,11 @@ The MCP server exposes **provenance verbs** (`create_envelope`, `verify_envelope
513
522
  Install and register in Cursor / Claude Desktop / VS Code:
514
523
 
515
524
  ```bash
516
- pip install "matrixscroll[mcp]==0.6.1"
525
+ pip install "matrixscroll[mcp]==0.6.3"
517
526
  matrixscroll-mcp # stdio
518
527
  ```
519
528
 
520
- See the [Install — MCP server](#install--mcp-server-headline-path) section above for
529
+ See the [Install the MCP server](#install-the-mcp-server-headline-path) section above for
521
530
  the recommended `mcp.json` snippet.
522
531
 
523
532
  ## License
@@ -525,13 +534,46 @@ the recommended `mcp.json` snippet.
525
534
  - Code: **Apache-2.0** (`LICENSE`).
526
535
  - Specification text (`SPEC.md`, `vectors/`): **CC0 1.0** - public domain.
527
536
 
537
+ ## Verify this release
538
+
539
+ Every release is published from GitHub Actions through PyPI Trusted Publishing,
540
+ and every file carries a PEP 740 attestation recorded in the Sigstore
541
+ transparency log. You do not have to take our word for who built the wheel; you
542
+ can check it.
543
+
544
+ Ask PyPI directly:
545
+
546
+ ```bash
547
+ curl -H "Accept: application/vnd.pypi.integrity.v1+json" \
548
+ https://pypi.org/integrity/matrixscroll/0.6.3/matrixscroll-0.6.3-py3-none-any.whl/provenance
549
+ ```
550
+
551
+ The response names the publisher, and it should say exactly this:
552
+
553
+ ```json
554
+ {"kind": "GitHub", "repository": "SSX360/matrixscroll",
555
+ "workflow": "publish.yml", "environment": "pypi"}
556
+ ```
557
+
558
+ Transparency-log entry for the 0.6.2 wheel: log index `2215985472`. If the
559
+ publisher, the workflow, or the digest differs from what you expect, do not
560
+ install the file.
561
+
562
+ The human-readable view is on the
563
+ [PyPI project page](https://pypi.org/project/matrixscroll/0.6.3/), where files
564
+ built with attestations are marked as verified.
565
+
566
+ This matters more here than for most packages. A tool that sells offline
567
+ verifiability should be verifiable by the same standard it asks of everyone
568
+ else.
569
+
528
570
  ## Security
529
571
 
530
- See [`SECURITY.md`](SECURITY.md) and [`docs/SECURITY_PROPERTIES.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md).
572
+ See [`SECURITY.md`](https://github.com/SSX360/matrixscroll/blob/main/SECURITY.md) and [`docs/SECURITY_PROPERTIES.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md).
531
573
  Report vulnerabilities privately to
532
574
  **security@matrixscroll.com** or via a GitHub Security Advisory.
533
575
 
534
576
  ---
535
577
 
536
- **Protocol:** https://ssx360.com/docs · **Verify:** https://ssx360.com/verify
537
- **Control plane:** https://ssx360.com · **Pilot:** mission@ssx360.com · **Sign in:** https://ssx360.com/signup
578
+ **Docs:** https://matrixscroll.com/docs/ · **Spec:** https://matrixscroll.com/spec/ · **Verify:** https://matrixscroll.com/verify/
579
+ **Maintainer:** https://ssx360.com/about · **Contact:** mission@ssx360.com