matrixscroll 0.2.6__tar.gz → 0.3.0__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 (109) hide show
  1. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/CHANGELOG.md +13 -0
  2. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/PKG-INFO +155 -11
  3. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/README.md +152 -10
  4. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/ADOPTER_KIT.md +20 -0
  5. matrixscroll-0.3.0/docs/HERO_DEMO.md +45 -0
  6. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/SOFTWARE_PRODUCTS.md +3 -3
  7. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/quickstart-git.md +24 -0
  8. matrixscroll-0.3.0/docs/quickstart-mcp.md +50 -0
  9. matrixscroll-0.3.0/docs/registries-guide.md +51 -0
  10. matrixscroll-0.3.0/examples/demo/hero-self-attestation-demo.sh +110 -0
  11. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/__init__.py +1 -1
  12. matrixscroll-0.3.0/matrixscroll/_claim.py +96 -0
  13. matrixscroll-0.3.0/matrixscroll/_payment.py +31 -0
  14. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/cli.py +52 -4
  15. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/gate.py +0 -2
  16. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/git.py +8 -5
  17. matrixscroll-0.3.0/matrixscroll/mcp.py +167 -0
  18. matrixscroll-0.3.0/matrixscroll/mcp_core.py +215 -0
  19. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/pyproject.toml +5 -1
  20. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_cli.py +2 -2
  21. matrixscroll-0.3.0/tests/test_mcp_core.py +79 -0
  22. matrixscroll-0.3.0/tests/test_mcp_server.py +114 -0
  23. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/.gitignore +0 -0
  24. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/CONTRIBUTING.md +0 -0
  25. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/LICENSE +0 -0
  26. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/SECURITY.md +0 -0
  27. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/SPEC.md +0 -0
  28. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/controls/agentic_ai_controls.json +0 -0
  29. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/AGENTIC_AI_SECURITY.md +0 -0
  30. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/CI_HARD_GATE.md +0 -0
  31. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +0 -0
  32. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/COMPARISON.md +0 -0
  33. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/FIVE_MINUTES.md +0 -0
  34. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/ROADMAP_2026-07.md +0 -0
  35. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/SE050_POC_SCOPE.md +0 -0
  36. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/SE050_USB_PROTOCOL.md +0 -0
  37. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/WHITEPAPER.md +0 -0
  38. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/delegation-attestation-rfc.md +0 -0
  39. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/hardware-provider.md +0 -0
  40. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/quickstart-agent.md +0 -0
  41. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/quickstart-claude-code.md +0 -0
  42. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/rekor-guac-bridge-design.md +0 -0
  43. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
  44. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
  45. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
  46. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/yubikey-bridge.md +0 -0
  47. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/docs/yubikey-smoke.md +0 -0
  48. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/agentic_ai_evidence_manifest.json +0 -0
  49. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
  50. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/ci/protected-branch.yml +0 -0
  51. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/commit-envelope.json +0 -0
  52. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/commit-envelope.signed.json +0 -0
  53. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/demo/agent-commit-demo.sh +0 -0
  54. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/demo/generate_signed_examples.py +0 -0
  55. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/release-manifest.json +0 -0
  56. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/release-manifest.signed.json +0 -0
  57. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/examples/trusted-keys-policy.json +0 -0
  58. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/_core.py +0 -0
  59. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/canonical.py +0 -0
  60. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/constants.py +0 -0
  61. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/errors.py +0 -0
  62. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/guac_export.py +0 -0
  63. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/hooks/post-commit +0 -0
  64. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/hooks/pre-push +0 -0
  65. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/manifest.py +0 -0
  66. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/policy.py +0 -0
  67. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/providers/__init__.py +0 -0
  68. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/providers/base.py +0 -0
  69. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/providers/emulated.py +0 -0
  70. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/providers/hardware.py +0 -0
  71. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/providers/registry.py +0 -0
  72. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/providers/se050_transport.py +0 -0
  73. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/providers/tpm.py +0 -0
  74. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/providers/yubikey.py +0 -0
  75. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/py.typed +0 -0
  76. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/matrixscroll/rekor_publish.py +0 -0
  77. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/schemas/commit-envelope.v1.json +0 -0
  78. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/schemas/evidence-pack.v1.json +0 -0
  79. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/schemas/release-manifest.v1.json +0 -0
  80. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/__init__.py +0 -0
  81. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/fixtures/github-gpgsig-commit.txt +0 -0
  82. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_agentic_guidance.py +0 -0
  83. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_canonical.py +0 -0
  84. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_core.py +0 -0
  85. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_gate.py +0 -0
  86. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_git_envelope.py +0 -0
  87. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_guac_rekor.py +0 -0
  88. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_policy.py +0 -0
  89. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_release_metadata.py +0 -0
  90. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_se050_transport.py +0 -0
  91. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_tpm_provider.py +0 -0
  92. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_vectors.py +0 -0
  93. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/tests/test_yubikey_provider.py +0 -0
  94. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/README.md +0 -0
  95. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/_fixture_key.json +0 -0
  96. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/_generate.py +0 -0
  97. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/tampered_algorithm.json +0 -0
  98. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/tampered_device_id.json +0 -0
  99. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/tampered_field.json +0 -0
  100. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/tampered_nested.json +0 -0
  101. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/tampered_public_key.json +0 -0
  102. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/tampered_schema.json +0 -0
  103. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/tampered_signature.json +0 -0
  104. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/unsigned_empty_block.json +0 -0
  105. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/unsigned_no_block.json +0 -0
  106. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/valid_commit_envelope.json +0 -0
  107. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/valid_nested.json +0 -0
  108. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/valid_simple.json +0 -0
  109. {matrixscroll-0.2.6 → matrixscroll-0.3.0}/vectors/valid_unicode.json +0 -0
@@ -4,6 +4,19 @@ 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
+ ## [0.3.0] - 2026-06-28
8
+
9
+ Digital Rain removal and provenance-only SDK surface.
10
+
11
+ ### Removed
12
+ - **Workspace intelligence modules** — deleted unused Digital Rain-era helpers
13
+ (`benchmark`, `brainstorm`, `scanner`, `vault`, radar modules, and related tests).
14
+
15
+ ### Changed
16
+ - **Public copy** — removed Digital Rain funnel language from README, MCP docs,
17
+ and hero demo script; SSX360 remains the hosted control plane reference.
18
+ - **Version pins** — bumped public quickstart and product docs to `0.3.0`.
19
+
7
20
  ## [0.2.6] - 2026-06-21
8
21
 
9
22
  SDK rollout hardening: generic public attribution, SE050 host transport preview,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matrixscroll
3
- Version: 0.2.6
3
+ Version: 0.3.0
4
4
  Summary: Signed provenance for agent-assisted Git commits with offline verification; emulated Ed25519 ships today and the SE050 hardware path remains an optional preview.
5
5
  Project-URL: Homepage, https://matrixscroll.com
6
6
  Project-URL: Documentation, https://matrixscroll.com/docs
@@ -44,6 +44,8 @@ Requires-Dist: pytest>=7.4; extra == 'dev'
44
44
  Provides-Extra: git
45
45
  Provides-Extra: hardware
46
46
  Requires-Dist: pyserial>=3.5; extra == 'hardware'
47
+ Provides-Extra: mcp
48
+ Requires-Dist: mcp<2.0.0,>=1.0.0; extra == 'mcp'
47
49
  Provides-Extra: tpm
48
50
  Provides-Extra: yubikey
49
51
  Requires-Dist: python-pkcs11>=0.7; extra == 'yubikey'
@@ -51,7 +53,84 @@ Description-Content-Type: text/markdown
51
53
 
52
54
  # Matrix Scroll
53
55
 
54
- Signed provenance for agent-assisted Git commits with offline verification.
56
+ **Signed proof of who or what wrote every commit.** Matrix Scroll is the
57
+ open Ed25519 commit-provenance protocol for agent-assisted Git — verified
58
+ offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust
59
+ upgrade; emulated mode ships today.
60
+
61
+ **Hosted control plane:** identity, billing, and device confirmation live at
62
+ [ssx360.com](https://ssx360.com/). Teams evaluating protected-branch enforcement should
63
+ [book a provenance pilot](mailto:mission@ssx360.com?subject=Provenance%20Pilot%20Inquiry);
64
+ Provisioned pilot and team accounts sign in at [ssx360.com/signup](https://ssx360.com/signup).
65
+
66
+ ## Compliance evidence mapping
67
+
68
+ Matrix Scroll **maps to** and **produces evidence for** (never “required by”):
69
+
70
+ - **Five Eyes · Agentic AI (Apr 2026)** — cryptographic attestation that agents
71
+ run expected, unmodified code.
72
+ - **EU AI Act · high-risk traceability** — verifiable commit-time audit artifacts.
73
+ - **US federal SSDF · self-attestation** — evidence packs for supply-chain review.
74
+
75
+ Full matrix: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
76
+
77
+ ## Adoption signals
78
+
79
+ Track outbound and registry traction while rolling out:
80
+
81
+ | Signal | Counter |
82
+ |--------|---------|
83
+ | PyPI `matrixscroll` | [![PyPI downloads](https://img.shields.io/pypi/dm/matrixscroll)](https://pypi.org/project/matrixscroll/) |
84
+ | PyPI `[mcp]` extra | [![PyPI MCP downloads](https://img.shields.io/pypi/dm/matrixscroll?label=mcp%20extra)](https://pypi.org/project/matrixscroll/) |
85
+ | GitHub stars | [![GitHub stars](https://img.shields.io/github/stars/SSX360/matrixscroll?style=social)](https://github.com/SSX360/matrixscroll/stargazers) |
86
+ | Scroll Gate Action | [![GitHub Action](https://img.shields.io/github/stars/SSX360/matrixscroll-verify-action?style=social)](https://github.com/SSX360/matrixscroll-verify-action) |
87
+ | Glama MCP registry | [matrixscroll on Glama](https://glama.ai/mcp/servers/SSX360/matrixscroll) |
88
+
89
+ ## Hero demo (post–MCP merge)
90
+
91
+ Record the 60–90s provenance flow in [`docs/HERO_DEMO.md`](docs/HERO_DEMO.md) — Scroll Gate + browser verifier + MCP verbs only.
92
+
93
+ ## Install — MCP server (headline path)
94
+
95
+ Agents sign commits in-loop via the **provenance-only** MCP server:
96
+
97
+ ```json
98
+ {
99
+ "mcpServers": {
100
+ "matrixscroll-mcp": {
101
+ "command": "matrixscroll-mcp",
102
+ "args": []
103
+ }
104
+ }
105
+ }
106
+ ```
107
+
108
+ ```bash
109
+ pip install "matrixscroll[mcp]==0.3.0"
110
+ matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
111
+ ```
112
+
113
+ **MCP tools (provenance verbs only):** `create_envelope`, `verify_envelope`,
114
+ `verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`.
115
+
116
+ ## Also available — CLI & hooks
117
+
118
+ ```bash
119
+ pip install "matrixscroll==0.3.0"
120
+ matrixscroll hook-install
121
+ export MATRIXSCROLL_ACTOR_TYPE=agent
122
+ export MATRIXSCROLL_TOOL=agent-runner
123
+ git commit -m "feat: agent-assisted change"
124
+ matrixscroll envelope-verify "$(git rev-parse HEAD)"
125
+ ```
126
+
127
+ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
128
+ [`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
129
+
130
+ ---
131
+
132
+ This repository is the canonical SDK, verifier contract, fixture set, and
133
+ release surface for the product.
55
134
 
56
135
  Matrix Scroll is a cryptographic evidence layer for Git. When an agent, CI
57
136
  workflow, or human operator produces a commit, a signed commit envelope can
@@ -59,25 +138,65 @@ record the actor, tool, and optional bounded scope. Anyone can verify that
59
138
  envelope locally, in CI, or in the browser without trusting the editor session
60
139
  that produced it.
61
140
 
141
+ Keep GitHub Advanced Security, Semgrep, Snyk, branch protection, and artifact
142
+ attestations. Matrix Scroll adds signed commit-time authorship proof before
143
+ merge, and it keeps the same offline verification contract across the CLI,
144
+ browser, CI, and the SE050 preview path.
145
+
62
146
  The reference SDK ships pure Ed25519 over canonical manifest bytes today. The
63
147
  SSX360 / NXP SE050 path is the compatible next trust layer and remains a
64
148
  preview path until device acceptance is complete.
65
149
 
66
150
  ## Honest limits
67
151
 
68
- - Shipping now: PyPI `matrixscroll==0.2.6`, Git post-commit hooks,
152
+ - Shipping now: PyPI `matrixscroll==0.3.0`, Git post-commit hooks,
69
153
  `matrixscroll envelope-verify`, Scroll Gate PR verification, browser
70
154
  verifier, the GitHub Action, and a USB CDC host transport preview for the
71
- SE050 rollout path.
155
+ SE050 rollout path. Emulated mode is the default evaluation path.
72
156
  - In progress: RP2350 + SE050 firmware validation, external Ed25519-capable
73
157
  hardware key backends, and transparency-log integrations.
74
158
  - Not: IAM, sandboxing, prompt filtering, or an agent runtime.
75
159
 
76
- ## Quickstart
160
+ ## Where it fits
161
+
162
+ - Scanners and branch protection catch code and policy issues; Matrix Scroll
163
+ records who or what signed the change before push.
164
+ - Hardware keys and build attestations remain complementary roots and downstream
165
+ proofs; Matrix Scroll covers commit-time provenance.
166
+ - The public contract stays pure Ed25519 over canonical manifest bytes,
167
+ whether the signer is emulated today or hardware-backed later.
168
+
169
+ ## Common questions
170
+
171
+ ### What is Matrix Scroll and how does it secure Git?
172
+
173
+ Matrix Scroll is signed commit-time provenance for agent-assisted Git. It
174
+ secures Git by attaching an Ed25519-signed commit envelope to a commit,
175
+ recording the actor, tool, and optional bounded scope, then letting reviewers
176
+ verify that proof offline in the CLI, browser, or CI before merge.
177
+
178
+ ### How do hardware and emulated modes differ in Matrix Scroll?
179
+
180
+ Emulated mode ships today and keeps the signing key on disk with owner-only
181
+ permissions so teams can evaluate the full workflow now. Hardware mode keeps
182
+ the same verifier contract and commit envelope schema, but moves the private
183
+ key into the SE050 secure element so the host cannot export it; that path
184
+ remains preview-only until device acceptance is complete.
185
+
186
+ ### How can I integrate Matrix Scroll into a CI/CD workflow?
187
+
188
+ Install the SDK and hooks in your repo, publish commit envelopes to
189
+ `refs/notes/matrixscroll` before PR review, and use
190
+ `SSX360/matrixscroll-verify-action@v1` to verify the full PR commit range in
191
+ GitHub Actions. Protected branches can then require Matrix Scroll proof
192
+ alongside your existing scanners, branch protection, and build attestations.
193
+
194
+ ## Quickstart (CLI)
77
195
 
78
196
  ```bash
79
- pip install "matrixscroll==0.2.6"
197
+ pip install "matrixscroll==0.3.0"
80
198
  matrixscroll hook-install
199
+ matrixscroll hook-status
81
200
 
82
201
  export MATRIXSCROLL_ACTOR_TYPE=agent
83
202
  export MATRIXSCROLL_TOOL=agent-runner
@@ -102,7 +221,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
102
221
  head-ref: ${{ github.event.pull_request.head.sha }}
103
222
  base-ref: ${{ github.event.pull_request.base.sha }}
104
223
  source: notes
105
- matrixscroll-version: "0.2.6"
224
+ matrixscroll-version: "0.3.0"
106
225
  require-mode: emulated
107
226
  ```
108
227
 
@@ -122,7 +241,7 @@ git push origin refs/notes/matrixscroll
122
241
  head-ref: ${{ github.event.pull_request.head.sha }}
123
242
  base-ref: ${{ github.event.pull_request.base.sha }}
124
243
  source: notes
125
- matrixscroll-version: "0.2.6"
244
+ matrixscroll-version: "0.3.0"
126
245
  summary-output: provenance-summary.json
127
246
  ```
128
247
 
@@ -130,7 +249,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
130
249
  [`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
131
250
 
132
251
  The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
133
- are available in the `0.2.x` line; the examples in this README pin `0.2.6`.
252
+ are available in the `0.2.x` line; the examples in this README pin `0.3.0`.
134
253
 
135
254
  ## Why it is different from Sigstore
136
255
 
@@ -154,12 +273,12 @@ when they preserve the same pure Ed25519 byte contract.
154
273
  - GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
155
274
  - Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md)
156
275
  - Site: <https://matrixscroll.com>
157
- - Reference device path: <https://matrixscroll.com/device/>
276
+ - Reference device path: [SSX360](https://matrixscroll.com/device)
158
277
 
159
278
  ## Python API
160
279
 
161
280
  ```bash
162
- pip install "matrixscroll==0.2.6"
281
+ pip install "matrixscroll==0.3.0"
163
282
  ```
164
283
 
165
284
  ```python
@@ -221,6 +340,11 @@ host transport preview and a mock path for CI; real SE050 signing still
221
340
  depends on device firmware validation. External-key backends stay out of the
222
341
  mainline until they can sign the same canonical bytes with Ed25519.
223
342
 
343
+ For rollout order, start with `MATRIXSCROLL_MODE=emulated` for evaluation,
344
+ layer in external Ed25519-capable signers only when they stay verifier
345
+ compatible, and treat `hardware` as the SE050 preview path until device
346
+ acceptance is complete.
347
+
224
348
  ## Compliance levels
225
349
 
226
350
  | Level | Provider | Backed by | Status |
@@ -256,6 +380,21 @@ example bounded-agent evidence manifest at
256
380
  [`examples/agentic_ai_evidence_manifest.json`](examples/agentic_ai_evidence_manifest.json),
257
381
  and executable checks in `tests/test_agentic_guidance.py`.
258
382
 
383
+ ## Model Context Protocol (MCP) Server
384
+
385
+ The MCP server exposes **provenance verbs only**: `create_envelope`, `verify_envelope`,
386
+ `verify_pr_range`, `publish_notes`, `status`, and `audit_export`.
387
+
388
+ Install and register in Cursor / Claude Desktop / VS Code:
389
+
390
+ ```bash
391
+ pip install "matrixscroll[mcp]==0.3.0"
392
+ matrixscroll-mcp # stdio
393
+ ```
394
+
395
+ See the [Install — MCP server](#install--mcp-server-headline-path) section above for
396
+ the recommended `mcp.json` snippet.
397
+
259
398
  ## License
260
399
 
261
400
  - Code: **Apache-2.0** (`LICENSE`).
@@ -265,3 +404,8 @@ and executable checks in `tests/test_agentic_guidance.py`.
265
404
 
266
405
  See [`SECURITY.md`](SECURITY.md). Report vulnerabilities privately to
267
406
  **security@matrixscroll.com** or via a GitHub Security Advisory.
407
+
408
+ ---
409
+
410
+ **Protocol:** https://matrixscroll.com · **Verify:** https://matrixscroll.com/verify/
411
+ **Control plane:** https://ssx360.com · **Pilot:** mission@ssx360.com · **Sign in:** https://ssx360.com/signup
@@ -1,6 +1,83 @@
1
1
  # Matrix Scroll
2
2
 
3
- Signed provenance for agent-assisted Git commits with offline verification.
3
+ **Signed proof of who or what wrote every commit.** Matrix Scroll is the
4
+ open Ed25519 commit-provenance protocol for agent-assisted Git — verified
5
+ offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust
6
+ upgrade; emulated mode ships today.
7
+
8
+ **Hosted control plane:** identity, billing, and device confirmation live at
9
+ [ssx360.com](https://ssx360.com/). Teams evaluating protected-branch enforcement should
10
+ [book a provenance pilot](mailto:mission@ssx360.com?subject=Provenance%20Pilot%20Inquiry);
11
+ Provisioned pilot and team accounts sign in at [ssx360.com/signup](https://ssx360.com/signup).
12
+
13
+ ## Compliance evidence mapping
14
+
15
+ Matrix Scroll **maps to** and **produces evidence for** (never “required by”):
16
+
17
+ - **Five Eyes · Agentic AI (Apr 2026)** — cryptographic attestation that agents
18
+ run expected, unmodified code.
19
+ - **EU AI Act · high-risk traceability** — verifiable commit-time audit artifacts.
20
+ - **US federal SSDF · self-attestation** — evidence packs for supply-chain review.
21
+
22
+ Full matrix: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
23
+
24
+ ## Adoption signals
25
+
26
+ Track outbound and registry traction while rolling out:
27
+
28
+ | Signal | Counter |
29
+ |--------|---------|
30
+ | PyPI `matrixscroll` | [![PyPI downloads](https://img.shields.io/pypi/dm/matrixscroll)](https://pypi.org/project/matrixscroll/) |
31
+ | PyPI `[mcp]` extra | [![PyPI MCP downloads](https://img.shields.io/pypi/dm/matrixscroll?label=mcp%20extra)](https://pypi.org/project/matrixscroll/) |
32
+ | GitHub stars | [![GitHub stars](https://img.shields.io/github/stars/SSX360/matrixscroll?style=social)](https://github.com/SSX360/matrixscroll/stargazers) |
33
+ | Scroll Gate Action | [![GitHub Action](https://img.shields.io/github/stars/SSX360/matrixscroll-verify-action?style=social)](https://github.com/SSX360/matrixscroll-verify-action) |
34
+ | Glama MCP registry | [matrixscroll on Glama](https://glama.ai/mcp/servers/SSX360/matrixscroll) |
35
+
36
+ ## Hero demo (post–MCP merge)
37
+
38
+ Record the 60–90s provenance flow in [`docs/HERO_DEMO.md`](docs/HERO_DEMO.md) — Scroll Gate + browser verifier + MCP verbs only.
39
+
40
+ ## Install — MCP server (headline path)
41
+
42
+ Agents sign commits in-loop via the **provenance-only** MCP server:
43
+
44
+ ```json
45
+ {
46
+ "mcpServers": {
47
+ "matrixscroll-mcp": {
48
+ "command": "matrixscroll-mcp",
49
+ "args": []
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ ```bash
56
+ pip install "matrixscroll[mcp]==0.3.0"
57
+ matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
58
+ ```
59
+
60
+ **MCP tools (provenance verbs only):** `create_envelope`, `verify_envelope`,
61
+ `verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`.
62
+
63
+ ## Also available — CLI & hooks
64
+
65
+ ```bash
66
+ pip install "matrixscroll==0.3.0"
67
+ matrixscroll hook-install
68
+ export MATRIXSCROLL_ACTOR_TYPE=agent
69
+ export MATRIXSCROLL_TOOL=agent-runner
70
+ git commit -m "feat: agent-assisted change"
71
+ matrixscroll envelope-verify "$(git rev-parse HEAD)"
72
+ ```
73
+
74
+ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
75
+ [`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
76
+
77
+ ---
78
+
79
+ This repository is the canonical SDK, verifier contract, fixture set, and
80
+ release surface for the product.
4
81
 
5
82
  Matrix Scroll is a cryptographic evidence layer for Git. When an agent, CI
6
83
  workflow, or human operator produces a commit, a signed commit envelope can
@@ -8,25 +85,65 @@ record the actor, tool, and optional bounded scope. Anyone can verify that
8
85
  envelope locally, in CI, or in the browser without trusting the editor session
9
86
  that produced it.
10
87
 
88
+ Keep GitHub Advanced Security, Semgrep, Snyk, branch protection, and artifact
89
+ attestations. Matrix Scroll adds signed commit-time authorship proof before
90
+ merge, and it keeps the same offline verification contract across the CLI,
91
+ browser, CI, and the SE050 preview path.
92
+
11
93
  The reference SDK ships pure Ed25519 over canonical manifest bytes today. The
12
94
  SSX360 / NXP SE050 path is the compatible next trust layer and remains a
13
95
  preview path until device acceptance is complete.
14
96
 
15
97
  ## Honest limits
16
98
 
17
- - Shipping now: PyPI `matrixscroll==0.2.6`, Git post-commit hooks,
99
+ - Shipping now: PyPI `matrixscroll==0.3.0`, Git post-commit hooks,
18
100
  `matrixscroll envelope-verify`, Scroll Gate PR verification, browser
19
101
  verifier, the GitHub Action, and a USB CDC host transport preview for the
20
- SE050 rollout path.
102
+ SE050 rollout path. Emulated mode is the default evaluation path.
21
103
  - In progress: RP2350 + SE050 firmware validation, external Ed25519-capable
22
104
  hardware key backends, and transparency-log integrations.
23
105
  - Not: IAM, sandboxing, prompt filtering, or an agent runtime.
24
106
 
25
- ## Quickstart
107
+ ## Where it fits
108
+
109
+ - Scanners and branch protection catch code and policy issues; Matrix Scroll
110
+ records who or what signed the change before push.
111
+ - Hardware keys and build attestations remain complementary roots and downstream
112
+ proofs; Matrix Scroll covers commit-time provenance.
113
+ - The public contract stays pure Ed25519 over canonical manifest bytes,
114
+ whether the signer is emulated today or hardware-backed later.
115
+
116
+ ## Common questions
117
+
118
+ ### What is Matrix Scroll and how does it secure Git?
119
+
120
+ Matrix Scroll is signed commit-time provenance for agent-assisted Git. It
121
+ secures Git by attaching an Ed25519-signed commit envelope to a commit,
122
+ recording the actor, tool, and optional bounded scope, then letting reviewers
123
+ verify that proof offline in the CLI, browser, or CI before merge.
124
+
125
+ ### How do hardware and emulated modes differ in Matrix Scroll?
126
+
127
+ Emulated mode ships today and keeps the signing key on disk with owner-only
128
+ permissions so teams can evaluate the full workflow now. Hardware mode keeps
129
+ the same verifier contract and commit envelope schema, but moves the private
130
+ key into the SE050 secure element so the host cannot export it; that path
131
+ remains preview-only until device acceptance is complete.
132
+
133
+ ### How can I integrate Matrix Scroll into a CI/CD workflow?
134
+
135
+ Install the SDK and hooks in your repo, publish commit envelopes to
136
+ `refs/notes/matrixscroll` before PR review, and use
137
+ `SSX360/matrixscroll-verify-action@v1` to verify the full PR commit range in
138
+ GitHub Actions. Protected branches can then require Matrix Scroll proof
139
+ alongside your existing scanners, branch protection, and build attestations.
140
+
141
+ ## Quickstart (CLI)
26
142
 
27
143
  ```bash
28
- pip install "matrixscroll==0.2.6"
144
+ pip install "matrixscroll==0.3.0"
29
145
  matrixscroll hook-install
146
+ matrixscroll hook-status
30
147
 
31
148
  export MATRIXSCROLL_ACTOR_TYPE=agent
32
149
  export MATRIXSCROLL_TOOL=agent-runner
@@ -51,7 +168,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
51
168
  head-ref: ${{ github.event.pull_request.head.sha }}
52
169
  base-ref: ${{ github.event.pull_request.base.sha }}
53
170
  source: notes
54
- matrixscroll-version: "0.2.6"
171
+ matrixscroll-version: "0.3.0"
55
172
  require-mode: emulated
56
173
  ```
57
174
 
@@ -71,7 +188,7 @@ git push origin refs/notes/matrixscroll
71
188
  head-ref: ${{ github.event.pull_request.head.sha }}
72
189
  base-ref: ${{ github.event.pull_request.base.sha }}
73
190
  source: notes
74
- matrixscroll-version: "0.2.6"
191
+ matrixscroll-version: "0.3.0"
75
192
  summary-output: provenance-summary.json
76
193
  ```
77
194
 
@@ -79,7 +196,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
79
196
  [`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
80
197
 
81
198
  The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
82
- are available in the `0.2.x` line; the examples in this README pin `0.2.6`.
199
+ are available in the `0.2.x` line; the examples in this README pin `0.3.0`.
83
200
 
84
201
  ## Why it is different from Sigstore
85
202
 
@@ -103,12 +220,12 @@ when they preserve the same pure Ed25519 byte contract.
103
220
  - GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
104
221
  - Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md)
105
222
  - Site: <https://matrixscroll.com>
106
- - Reference device path: <https://matrixscroll.com/device/>
223
+ - Reference device path: [SSX360](https://matrixscroll.com/device)
107
224
 
108
225
  ## Python API
109
226
 
110
227
  ```bash
111
- pip install "matrixscroll==0.2.6"
228
+ pip install "matrixscroll==0.3.0"
112
229
  ```
113
230
 
114
231
  ```python
@@ -170,6 +287,11 @@ host transport preview and a mock path for CI; real SE050 signing still
170
287
  depends on device firmware validation. External-key backends stay out of the
171
288
  mainline until they can sign the same canonical bytes with Ed25519.
172
289
 
290
+ For rollout order, start with `MATRIXSCROLL_MODE=emulated` for evaluation,
291
+ layer in external Ed25519-capable signers only when they stay verifier
292
+ compatible, and treat `hardware` as the SE050 preview path until device
293
+ acceptance is complete.
294
+
173
295
  ## Compliance levels
174
296
 
175
297
  | Level | Provider | Backed by | Status |
@@ -205,6 +327,21 @@ example bounded-agent evidence manifest at
205
327
  [`examples/agentic_ai_evidence_manifest.json`](examples/agentic_ai_evidence_manifest.json),
206
328
  and executable checks in `tests/test_agentic_guidance.py`.
207
329
 
330
+ ## Model Context Protocol (MCP) Server
331
+
332
+ The MCP server exposes **provenance verbs only**: `create_envelope`, `verify_envelope`,
333
+ `verify_pr_range`, `publish_notes`, `status`, and `audit_export`.
334
+
335
+ Install and register in Cursor / Claude Desktop / VS Code:
336
+
337
+ ```bash
338
+ pip install "matrixscroll[mcp]==0.3.0"
339
+ matrixscroll-mcp # stdio
340
+ ```
341
+
342
+ See the [Install — MCP server](#install--mcp-server-headline-path) section above for
343
+ the recommended `mcp.json` snippet.
344
+
208
345
  ## License
209
346
 
210
347
  - Code: **Apache-2.0** (`LICENSE`).
@@ -214,3 +351,8 @@ and executable checks in `tests/test_agentic_guidance.py`.
214
351
 
215
352
  See [`SECURITY.md`](SECURITY.md). Report vulnerabilities privately to
216
353
  **security@matrixscroll.com** or via a GitHub Security Advisory.
354
+
355
+ ---
356
+
357
+ **Protocol:** https://matrixscroll.com · **Verify:** https://matrixscroll.com/verify/
358
+ **Control plane:** https://ssx360.com · **Pilot:** mission@ssx360.com · **Sign in:** https://ssx360.com/signup
@@ -61,6 +61,26 @@ jobs:
61
61
  - Matrix Scroll does not replace IAM or sandboxing
62
62
  - Matrix Scroll does not replace release-signing or artifact attestations
63
63
 
64
+ ## Clean-machine proof status
65
+
66
+ Recorded on `2026-06-21` against the pinned public flow:
67
+ `pip install "matrixscroll==0.2.6"` -> `matrixscroll hook-install` ->
68
+ `matrixscroll hook-status` -> first agent-assisted commit ->
69
+ `matrixscroll envelope-verify`.
70
+
71
+ Hosted source of truth: GitHub Actions run
72
+ `27904509800` on `codex/trust-layer-rollout`.
73
+
74
+ | Platform | Result | Notes |
75
+ | --- | --- | --- |
76
+ | Windows | PASS | GitHub-hosted smoke completed with `1.0s` to first verified commit. Local temp-venv proof also passed in `8.7s`. |
77
+ | Ubuntu | PASS | GitHub-hosted smoke completed with `0.4s` to first verified commit. |
78
+ | macOS | PASS | GitHub-hosted smoke completed with `0.3s` to first verified commit. |
79
+
80
+ Local environment note: the workspace WSL image is still missing `python3-pip`
81
+ and `python3-venv`, so local Ubuntu reproduction remains under-provisioned even
82
+ though launch evidence is now covered by the hosted workflow.
83
+
64
84
  ## Public follow-through
65
85
 
66
86
  If a pilot works, publish one of these:
@@ -0,0 +1,45 @@
1
+ # Hero demo script (60–90 seconds)
2
+
3
+ Record this flow once. It is the highest-value GTM asset for the quarter.
4
+
5
+ ## Cast
6
+
7
+ - **Agent:** Cursor or Claude Code in a bound workspace
8
+ - **Producer:** `matrixscroll` hooks / MCP `create_envelope`
9
+ - **Enforcer:** Scroll Gate (`SSX360/matrixscroll-verify-action@v1`)
10
+ - **Verifier:** [matrixscroll.com/verify/](https://matrixscroll.com/verify/) (offline, no portal trust)
11
+
12
+ ## Beat sheet
13
+
14
+ | Time | Screen | Narration hook |
15
+ |------|--------|----------------|
16
+ | 0:00 | Terminal / IDE | "An agent just committed. Who — or what — wrote it?" |
17
+ | 0:10 | `git log -1` + hook output | "Matrix Scroll signs an Ed25519 envelope at commit time — actor, tool, scope." |
18
+ | 0:25 | Envelope JSON (redacted keys OK) | "This is the proof object. Repo contents never left the machine." |
19
+ | 0:35 | GitHub PR + Scroll Gate check | "Scroll Gate verifies the full PR range — signed vs unsigned, trusted vs untrusted." |
20
+ | 0:50 | Browser verifier paste | "Anyone verifies offline at matrixscroll.com/verify — no SSX360 login required." |
21
+ | 1:05 | SSX360 portal flash (optional) | "Identity, billing, and audit live on the control plane — verification does not." |
22
+ | 1:15 | CTA slate | "Verify → Install → Pilot." |
23
+
24
+ ## Commands (copy-paste)
25
+
26
+ ```bash
27
+ export MATRIXSCROLL_ACTOR_TYPE=agent
28
+ export MATRIXSCROLL_TOOL=cursor
29
+ git commit -m "feat: demo agent change"
30
+ matrixscroll envelope-verify "$(git rev-parse HEAD)"
31
+ matrixscroll envelope-publish-notes --base origin/main --head HEAD
32
+ git push origin refs/notes/matrixscroll
33
+ ```
34
+
35
+ Open PR → show **Scroll Gate** check green → paste envelope into browser verifier.
36
+
37
+ ## Do not say
38
+
39
+ - "Required by" / "mandated" / regulation names as requirements
40
+ - Repo intelligence / scanner as the lead story
41
+
42
+ ## Do say
43
+
44
+ - "Maps to" / "produces evidence for" compliance frameworks
45
+ - "Signed before merge" / "offline-verifiable" / "Scroll Gate"
@@ -5,7 +5,7 @@ manifest bytes today.
5
5
 
6
6
  | Product | Status | Access | Notes |
7
7
  |---------|--------|--------|-------|
8
- | **Matrix Scroll SDK** | GA | PyPI `matrixscroll==0.2.6` | Hooks, envelopes, Scroll Gate, policy CLI |
8
+ | **Matrix Scroll SDK** | GA | PyPI `matrixscroll==0.3.0` | Hooks, envelopes, Scroll Gate, policy CLI |
9
9
  | **Scroll Gate CI** | GA | [`matrixscroll-verify-action@v1`](https://github.com/SSX360/matrixscroll-verify-action) | PR range + manifest verify |
10
10
  | **Browser verifier** | GA | [matrixscroll.com/verify](https://matrixscroll.com/verify/) | Offline paste-and-verify |
11
11
  | **Protocol docs** | GA | [matrixscroll.com/docs](https://matrixscroll.com/docs/) | SPEC mirror, whitepaper, quickstarts |
@@ -18,7 +18,7 @@ manifest bytes today.
18
18
  ## Developer install
19
19
 
20
20
  ```bash
21
- pip install "matrixscroll==0.2.6"
21
+ pip install "matrixscroll==0.3.0"
22
22
  matrixscroll hook-install
23
23
  export MATRIXSCROLL_ACTOR_TYPE=agent
24
24
  export MATRIXSCROLL_TOOL=agent-runner
@@ -34,7 +34,7 @@ matrixscroll envelope-verify "$(git rev-parse HEAD)"
34
34
  head-ref: ${{ github.event.pull_request.head.sha }}
35
35
  base-ref: ${{ github.event.pull_request.base.sha }}
36
36
  source: notes
37
- matrixscroll-version: "0.2.6"
37
+ matrixscroll-version: "0.3.0"
38
38
  summary-output: provenance-summary.json
39
39
  ```
40
40
 
@@ -2,6 +2,13 @@
2
2
 
3
3
  Matrix Scroll Git hooks attach a signed **commit envelope** to every local commit.
4
4
 
5
+ ## What is Matrix Scroll and how does it secure Git?
6
+
7
+ Matrix Scroll is signed commit-time provenance for agent-assisted Git. It
8
+ secures Git by attaching an Ed25519-signed commit envelope to each commit,
9
+ recording the actor, tool, and optional bounded scope, then letting reviewers
10
+ verify that proof offline before merge.
11
+
5
12
  ## Install hooks
6
13
 
7
14
  ```bash
@@ -80,6 +87,15 @@ matrixscroll envelope-verify-range --base origin/main --head HEAD --source bundl
80
87
 
81
88
  Use [`SSX360/matrixscroll-verify-action@v1`](https://github.com/SSX360/matrixscroll-verify-action) for GitHub Actions.
82
89
 
90
+ ## How can I integrate Matrix Scroll into a CI/CD workflow?
91
+
92
+ 1. Install `matrixscroll==0.2.6` and `matrixscroll hook-install` in the repo.
93
+ 2. Publish commit envelopes to `refs/notes/matrixscroll` before PR review.
94
+ 3. Run `SSX360/matrixscroll-verify-action@v1` in GitHub Actions to verify the
95
+ full PR commit range from notes.
96
+ 4. Require that job on protected branches so CI blocks unsigned or unverifiable
97
+ PR commits before merge.
98
+
83
99
  **Time anchoring:** envelope `signed_at` is informational only. Use Git commit
84
100
  graph order or ledger insertion order for chronology — not self-reported timestamps.
85
101
 
@@ -115,6 +131,14 @@ graph order or ledger insertion order for chronology — not self-reported times
115
131
  ```
116
132
  5. Fail-closed: CI fetches `refs/notes/matrixscroll` from origin; missing notes fail the gate.
117
133
 
134
+ ## How do hardware and emulated modes differ in Matrix Scroll?
135
+
136
+ Emulated mode ships today and stores the signing key on disk with owner-only
137
+ permissions so teams can trial the entire workflow immediately. Hardware mode
138
+ keeps the same commit envelope schema and verifier behavior, but moves the
139
+ private key into the SE050 secure element so the host cannot export it; that
140
+ path stays preview-only until device acceptance is complete.
141
+
118
142
  `MATRIXSCROLL_TOOL` is free-form provenance metadata. Use the label you want
119
143
  auditors and CI reviewers to see, such as `agent-runner`, `git-cli`, or your
120
144
  internal tool name.