matrixscroll 0.6.2__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.
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/CHANGELOG.md +43 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/PKG-INFO +47 -46
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/README.md +45 -44
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/SECURITY.md +2 -2
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/ADOPTER_KIT.md +9 -5
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/COMPARISON.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/CRYPTO_ROADMAP.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/FIVE_MINUTES.md +3 -3
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/HERO_DEMO.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/POC2_AUDIT.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/ROADMAP_2026-07.md +2 -2
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/SECURITY_PROPERTIES.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/SOFTWARE_PRODUCTS.md +5 -5
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/WHITEPAPER.md +5 -5
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/commercial/PLATFORM_PIVOT.md +2 -2
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/commercial/SCROLL_GATE_V2.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/commercial/SSX360_SCROLL.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/hardware-provider.md +2 -2
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/how-to/gate-protected-branch.md +3 -3
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/how-to/scan-mcp-server.md +2 -2
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/index.md +2 -2
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/quickstart-agent.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/quickstart-claude-code.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/quickstart-git.md +7 -7
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/quickstart-mcp.md +2 -2
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/tutorial/first-commit.md +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/ci/protected-branch.yml +6 -6
- matrixscroll-0.6.3/examples/mcp/matrixscroll-mcp.signed.json +81 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/__init__.py +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/providers/se050_transport.py +1 -1
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/pyproject.toml +2 -2
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/.gitignore +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/CONTRIBUTING.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/LICENSE +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/SPEC.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/controls/agentic_ai_controls.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/AGENTIC_AI_SECURITY.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/AIMS_INTEROP.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/CI_HARD_GATE.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/CRYPTO_BACKEND.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/DOCTRINE.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/GITTUF_INTEROP.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/GIT_AI_NOTES_INTEROP.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/OPENSSF_SANDBOX_DECISION.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/SE050_POC_SCOPE.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/SE050_USB_PROTOCOL.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/SLSA_SOURCE_TRACK_MAPPING.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/commercial/README.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/delegation-attestation-rfc.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/explanation/actor-attribution.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/explanation/ap2.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/explanation/commit-time-vs-artifact-time.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/explanation/style-supplement.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/explanation/trust-boundaries.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/explanation/writing-workflow.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/how-to/publish-git-notes.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/reference/cli.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/reference/commit-envelope.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/reference/exit-codes.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/reference/python-api.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/registries-guide.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/rekor-guac-bridge-design.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/requirements.txt +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/yubikey-bridge.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/docs/yubikey-smoke.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/agentic_ai_evidence_manifest.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/commit-envelope.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/commit-envelope.signed.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/demo/agent-commit-demo.sh +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/demo/generate_signed_examples.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/demo/hero-self-attestation-demo.sh +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/demo/mcp-rugpull-demo.cast +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/demo/mcp-rugpull-demo.gif +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/demo/mcp-rugpull-demo.sh +0 -0
- /matrixscroll-0.6.2/examples/mcp/matrixscroll-mcp.signed.json → /matrixscroll-0.6.3/examples/mcp/matrixscroll-mcp.baseline.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/mcp/matrixscroll-mcp.manifest.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/release-manifest.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/release-manifest.signed.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/examples/trusted-keys-policy.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/_claim.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/_core.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/_payment.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/agent_trace.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/canonical.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/cli.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/cloud/__init__.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/cloud/client.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/constants.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/crypto_backend.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/errors.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/formal.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/gate.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/git.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/guac_export.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/hooks/post-commit +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/hooks/pre-push +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/manifest.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/mcp.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/mcp_core.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/mcp_trust.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/policy.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/pqc.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/provenance/__init__.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/provenance/actions.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/providers/__init__.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/providers/base.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/providers/emulated.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/providers/hardware.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/providers/registry.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/providers/tpm.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/providers/yubikey.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/py.typed +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/rekor_publish.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/scroll/README.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/scroll/__init__.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/matrixscroll/ssx360_cli.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/schemas/action-envelope.v1.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/schemas/commit-envelope.v1.1.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/schemas/commit-envelope.v1.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/schemas/evidence-pack.v1.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/schemas/pqc-signature.v1.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/schemas/release-manifest.v1.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/schemas/ssx360.mcp-manifest.v1.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/__init__.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/fixtures/github-gpgsig-commit.txt +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/fixtures/mcp-tools-sample.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_agent_trace.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_agentic_guidance.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_canonical.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_canonical_pqc.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_cli.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_core.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_crypto_backend.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_formal_specs.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_gate.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_git_envelope.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_guac_rekor.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_mcp_core.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_mcp_server.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_mcp_trust.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_policy.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_pqc.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_provenance.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_release_metadata.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_se050_transport.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_security_properties.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_ssx360_cli.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_tpm_provider.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_vectors.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/tests/test_yubikey_provider.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/README.md +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/_fixture_key.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/_generate.py +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/tampered_algorithm.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/tampered_device_id.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/tampered_field.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/tampered_nested.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/tampered_public_key.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/tampered_schema.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/tampered_signature.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/unsigned_empty_block.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/unsigned_no_block.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/valid_commit_envelope.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/valid_nested.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/valid_simple.json +0 -0
- {matrixscroll-0.6.2 → matrixscroll-0.6.3}/vectors/valid_unicode.json +0 -0
|
@@ -4,6 +4,47 @@ 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
|
+
|
|
7
48
|
## [0.6.2] - 2026-08-03
|
|
8
49
|
|
|
9
50
|
Documentation and packaging metadata only. No code, CLI or wire-format changes,
|
|
@@ -271,6 +312,8 @@ Initial public release. Extracted from the SSX360 reference implementation.
|
|
|
271
312
|
- Device id format: `MS-XXXX-XXXX` (SHA-256 of the raw public key, first 8 hex
|
|
272
313
|
chars, uppercase).
|
|
273
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
|
|
274
317
|
[0.6.1]: https://github.com/SSX360/matrixscroll/releases/tag/v0.6.1
|
|
275
318
|
[0.6.0]: https://github.com/SSX360/matrixscroll/releases/tag/v0.6.0
|
|
276
319
|
[0.5.1]: https://github.com/SSX360/matrixscroll/releases/tag/v0.5.1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: matrixscroll
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.3
|
|
4
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
5
|
Project-URL: Homepage, https://matrixscroll.com
|
|
6
6
|
Project-URL: Documentation, https://matrixscroll.com/docs/
|
|
@@ -13,7 +13,7 @@ Project-URL: Whitepaper, https://github.com/SSX360/matrixscroll/blob/main/docs/W
|
|
|
13
13
|
Project-URL: Changelog, https://github.com/SSX360/matrixscroll/blob/main/CHANGELOG.md
|
|
14
14
|
Project-URL: Discussions, https://github.com/SSX360/matrixscroll/discussions
|
|
15
15
|
Project-URL: Security, https://github.com/SSX360/matrixscroll/blob/main/SECURITY.md
|
|
16
|
-
Project-URL: GitHub Action, https://github.com/SSX360/matrixscroll
|
|
16
|
+
Project-URL: GitHub Action, https://github.com/SSX360/matrixscroll/tree/main/.github/actions/verify
|
|
17
17
|
Project-URL: Tests, https://github.com/SSX360/matrixscroll/tree/main/tests
|
|
18
18
|
Project-URL: Public Roadmap, https://github.com/SSX360/matrixscroll/blob/main/docs/ROADMAP_2026-07.md
|
|
19
19
|
Project-URL: Hardware Status, https://github.com/SSX360/matrixscroll/blob/main/docs/hardware-provider.md
|
|
@@ -62,7 +62,7 @@ Signed provenance for agent-assisted Git commits, with offline Ed25519 verificat
|
|
|
62
62
|
[](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml)
|
|
63
63
|
[](https://pypi.org/project/matrixscroll/)
|
|
64
64
|
[](https://pypi.org/project/matrixscroll/)
|
|
65
|
-
[](LICENSE)
|
|
65
|
+
[](https://github.com/SSX360/matrixscroll/blob/main/LICENSE)
|
|
66
66
|
|
|
67
67
|
Matrix Scroll is an open protocol for cryptographically signed agent
|
|
68
68
|
authorization: Ed25519 records for Git commits (L1), MCP tool surfaces (L2), and
|
|
@@ -74,10 +74,10 @@ bench-validated proof of concept (Jul 2026) sharing the same verifier contract,
|
|
|
74
74
|
and the Pico 2 W / GMT130 display bring-up is a locked L2 Hardware prototype
|
|
75
75
|
(Jul 2026). Neither is generally available.
|
|
76
76
|
|
|
77
|
-
**Try it:** [matrixscroll.com/
|
|
78
|
-
tamper demo in the browser. **Codebase direction:** [`docs/DOCTRINE.md`](docs/DOCTRINE.md).
|
|
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
79
|
**146 tests**, Hypothesis-verified [security properties](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md),
|
|
80
|
-
and [TLA+ formal models](formal/README.md).
|
|
80
|
+
and [TLA+ formal models](https://github.com/SSX360/matrixscroll/blob/main/formal/README.md).
|
|
81
81
|
|
|
82
82
|
**Authorization ladder:** L1 Code (commits), L2 Tools (MCP manifests), L3 Actions (agent runs), L4 Money (AP2, demo), L5 Silicon (2029+)
|
|
83
83
|
|
|
@@ -96,9 +96,9 @@ Matrix Scroll **maps to** and **produces evidence for** (never “required by”
|
|
|
96
96
|
- **US Treasury FS-AI RMF (Feb 2026)**: traceability for agent actions in financial software.
|
|
97
97
|
- **NIST SSDF**: provenance, change authorization, and release gate review.
|
|
98
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`](controls/agentic_ai_controls.json)
|
|
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)
|
|
100
100
|
|
|
101
|
-
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)
|
|
102
102
|
|
|
103
103
|
## Install the MCP server (headline path)
|
|
104
104
|
|
|
@@ -116,7 +116,7 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
```bash
|
|
119
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
119
|
+
pip install "matrixscroll[mcp]==0.6.3"
|
|
120
120
|
matrixscroll-mcp # stdio. Register in Cursor / Claude Desktop / VS Code
|
|
121
121
|
```
|
|
122
122
|
|
|
@@ -128,15 +128,15 @@ matrixscroll-mcp # stdio. Register in Cursor / Claude Desktop / VS Code
|
|
|
128
128
|
|
|
129
129
|
### MCP Trust Scanner: catch a rug-pull in 60 seconds
|
|
130
130
|
|
|
131
|
-

|
|
131
|
+

|
|
132
132
|
|
|
133
|
-
[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)
|
|
134
134
|
|
|
135
135
|
Sign the tool surface. Verify at install. Offline Ed25519 manifests for MCP rug-pull detection.
|
|
136
136
|
Zero cloud, zero signup, exit code 2 fails your CI.
|
|
137
137
|
|
|
138
138
|
```bash
|
|
139
|
-
pip install "matrixscroll==0.6.
|
|
139
|
+
pip install "matrixscroll==0.6.3"
|
|
140
140
|
|
|
141
141
|
# 1. Scan a live MCP server (stdio). Fingerprints every tool: name, description, input schema
|
|
142
142
|
matrixscroll mcp scan --connect stdio --server-command "npx -y some-mcp-server" \
|
|
@@ -170,22 +170,22 @@ Gate it in CI. Fail the build on unsigned or drifted manifests with the reusable
|
|
|
170
170
|
```yaml
|
|
171
171
|
jobs:
|
|
172
172
|
mcp-gate:
|
|
173
|
-
uses: SSX360/matrixscroll
|
|
173
|
+
uses: SSX360/matrixscroll/.github/workflows/mcp-manifest-gate.yml@action-v1
|
|
174
174
|
with:
|
|
175
175
|
manifest: mcp/my-server.signed.json
|
|
176
176
|
baseline: mcp/my-server.baseline.json
|
|
177
|
-
matrixscroll_version: "0.6.
|
|
177
|
+
matrixscroll_version: "0.6.3"
|
|
178
178
|
```
|
|
179
179
|
|
|
180
|
-
Full scripted demo: [`examples/demo/mcp-rugpull-demo.sh`](examples/demo/mcp-rugpull-demo.sh)
|
|
181
|
-
Golden artifact (this repo's own MCP server, signed): [`examples/mcp/matrixscroll-mcp.signed.json`](examples/mcp/matrixscroll-mcp.signed.json)
|
|
182
|
-
Schema (CC0): [`schemas/ssx360.mcp-manifest.v1.json`](schemas/ssx360.mcp-manifest.v1.json)
|
|
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
183
|
Browser demo: [matrixscroll.com/scan](https://matrixscroll.com/scan/)
|
|
184
184
|
|
|
185
185
|
## Also available: CLI and hooks
|
|
186
186
|
|
|
187
187
|
```bash
|
|
188
|
-
pip install "matrixscroll==0.6.
|
|
188
|
+
pip install "matrixscroll==0.6.3"
|
|
189
189
|
matrixscroll hook-install
|
|
190
190
|
export MATRIXSCROLL_ACTOR_TYPE=agent
|
|
191
191
|
export MATRIXSCROLL_TOOL=agent-runner
|
|
@@ -214,10 +214,10 @@ Git under the hood; governance on top. **Not a Git replacement.**
|
|
|
214
214
|
matrixscroll scroll commit -m "feat: governed commit"
|
|
215
215
|
```
|
|
216
216
|
|
|
217
|
-
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).
|
|
218
218
|
|
|
219
|
-
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
220
|
-
[`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).
|
|
221
221
|
|
|
222
222
|
---
|
|
223
223
|
|
|
@@ -251,7 +251,7 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](https://github.com/SSX360/matrixscro
|
|
|
251
251
|
|
|
252
252
|
## Honest limits
|
|
253
253
|
|
|
254
|
-
- Shipping now: PyPI `matrixscroll==0.6.
|
|
254
|
+
- Shipping now: PyPI `matrixscroll==0.6.3`, Git post-commit hooks,
|
|
255
255
|
`matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
|
|
256
256
|
`matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
|
|
257
257
|
verifier, the GitHub Action, and a USB CDC host transport for the SE050
|
|
@@ -305,14 +305,15 @@ for pilot evaluation, not GA.
|
|
|
305
305
|
|
|
306
306
|
Install the SDK and hooks in your repo, publish commit envelopes to
|
|
307
307
|
`refs/notes/matrixscroll` before PR review, and use
|
|
308
|
-
`SSX360/matrixscroll
|
|
309
|
-
GitHub Actions. Protected branches can then require Matrix
|
|
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
|
|
310
311
|
alongside your existing scanners, branch protection, and build attestations.
|
|
311
312
|
|
|
312
313
|
## Quickstart (CLI)
|
|
313
314
|
|
|
314
315
|
```bash
|
|
315
|
-
pip install "matrixscroll==0.6.
|
|
316
|
+
pip install "matrixscroll==0.6.3"
|
|
316
317
|
matrixscroll hook-install
|
|
317
318
|
matrixscroll hook-status
|
|
318
319
|
|
|
@@ -323,10 +324,10 @@ git commit -m "feat: agent-assisted change"
|
|
|
323
324
|
matrixscroll envelope-verify "$(git rev-parse HEAD)"
|
|
324
325
|
```
|
|
325
326
|
|
|
326
|
-
**Try it in the browser:** [matrixscroll.com/
|
|
327
|
+
**Try it in the browser:** [matrixscroll.com/verify](https://matrixscroll.com/verify/)
|
|
327
328
|
|
|
328
|
-
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
329
|
-
[`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).
|
|
330
331
|
|
|
331
332
|
## CI verify
|
|
332
333
|
|
|
@@ -336,12 +337,12 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
|
336
337
|
- uses: actions/checkout@v4
|
|
337
338
|
with:
|
|
338
339
|
fetch-depth: 0
|
|
339
|
-
- uses: SSX360/matrixscroll
|
|
340
|
+
- uses: SSX360/matrixscroll/.github/actions/verify@action-v1
|
|
340
341
|
with:
|
|
341
342
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
342
343
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
343
344
|
source: notes
|
|
344
|
-
matrixscroll-version: "0.6.
|
|
345
|
+
matrixscroll-version: "0.6.3"
|
|
345
346
|
require-mode: emulated
|
|
346
347
|
```
|
|
347
348
|
|
|
@@ -356,20 +357,20 @@ git push origin refs/notes/matrixscroll
|
|
|
356
357
|
- uses: actions/checkout@v4
|
|
357
358
|
with:
|
|
358
359
|
fetch-depth: 0
|
|
359
|
-
- uses: SSX360/matrixscroll
|
|
360
|
+
- uses: SSX360/matrixscroll/.github/actions/verify@action-v1
|
|
360
361
|
with:
|
|
361
362
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
362
363
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
363
364
|
source: notes
|
|
364
|
-
matrixscroll-version: "0.6.
|
|
365
|
+
matrixscroll-version: "0.6.3"
|
|
365
366
|
summary-output: provenance-summary.json
|
|
366
367
|
```
|
|
367
368
|
|
|
368
|
-
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
369
|
-
[`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).
|
|
370
371
|
|
|
371
372
|
The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
|
|
372
|
-
ship in the current release line; examples in this README pin `0.6.
|
|
373
|
+
ship in the current release line; examples in this README pin `0.6.3`.
|
|
373
374
|
|
|
374
375
|
## Security: Ed25519 via cryptography
|
|
375
376
|
|
|
@@ -377,7 +378,7 @@ Ed25519 signing, verification, and key generation use the [`cryptography`](https
|
|
|
377
378
|
package (required dependency, `>=42.0`). Official wheels ship native crypto
|
|
378
379
|
backends (OpenSSL + Rust components), so no Rust toolchain for users. All
|
|
379
380
|
primitives are centralized in `matrixscroll/crypto_backend.py`; see
|
|
380
|
-
[`docs/CRYPTO_BACKEND.md`](docs/CRYPTO_BACKEND.md).
|
|
381
|
+
[`docs/CRYPTO_BACKEND.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/CRYPTO_BACKEND.md).
|
|
381
382
|
|
|
382
383
|
## Why it is different from Sigstore
|
|
383
384
|
|
|
@@ -393,13 +394,13 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
393
394
|
## Public proof links
|
|
394
395
|
|
|
395
396
|
- Browser verifier: <https://matrixscroll.com/verify/>
|
|
396
|
-
-
|
|
397
|
+
- MCP Trust Scanner (browser, offline): <https://matrixscroll.com/scan/>
|
|
397
398
|
- Documentation: <https://matrixscroll.com/docs/>
|
|
398
399
|
- Specification: [`SPEC.md`](https://github.com/SSX360/matrixscroll/blob/main/SPEC.md)
|
|
399
400
|
- Commit envelope schema: [`schemas/commit-envelope.v1.json`](https://github.com/SSX360/matrixscroll/blob/main/schemas/commit-envelope.v1.json)
|
|
400
|
-
- Whitepaper: [`docs/WHITEPAPER.md`](docs/WHITEPAPER.md)
|
|
401
|
+
- Whitepaper: [`docs/WHITEPAPER.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/WHITEPAPER.md)
|
|
401
402
|
- Conformance vectors: [`vectors/`](https://github.com/SSX360/matrixscroll/tree/main/vectors/)
|
|
402
|
-
- GitHub Action: <https://github.com/SSX360/matrixscroll
|
|
403
|
+
- GitHub Action: <https://github.com/SSX360/matrixscroll/tree/main/.github/actions/verify>
|
|
403
404
|
- Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/AGENTIC_AI_SECURITY.md)
|
|
404
405
|
- Site: <https://matrixscroll.com> · Browser verifier: <https://matrixscroll.com/verify/>
|
|
405
406
|
- Hardware prototype status: [`docs/hardware-provider.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/hardware-provider.md) (bench-validated; not GA)
|
|
@@ -408,7 +409,7 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
408
409
|
## Python API
|
|
409
410
|
|
|
410
411
|
```bash
|
|
411
|
-
pip install "matrixscroll==0.6.
|
|
412
|
+
pip install "matrixscroll==0.6.3"
|
|
412
413
|
```
|
|
413
414
|
|
|
414
415
|
```python
|
|
@@ -507,9 +508,9 @@ implementations in Rust, Go, TypeScript, and embedded C. Run them against
|
|
|
507
508
|
## Agentic AI guidance proof
|
|
508
509
|
|
|
509
510
|
The repo includes a machine-readable control matrix at
|
|
510
|
-
[`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
|
|
511
512
|
example bounded-agent evidence manifest at
|
|
512
|
-
[`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),
|
|
513
514
|
and executable checks in `tests/test_agentic_guidance.py`.
|
|
514
515
|
|
|
515
516
|
## Model Context Protocol (MCP) Server
|
|
@@ -521,7 +522,7 @@ The MCP server exposes **provenance verbs** (`create_envelope`, `verify_envelope
|
|
|
521
522
|
Install and register in Cursor / Claude Desktop / VS Code:
|
|
522
523
|
|
|
523
524
|
```bash
|
|
524
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
525
|
+
pip install "matrixscroll[mcp]==0.6.3"
|
|
525
526
|
matrixscroll-mcp # stdio
|
|
526
527
|
```
|
|
527
528
|
|
|
@@ -544,7 +545,7 @@ Ask PyPI directly:
|
|
|
544
545
|
|
|
545
546
|
```bash
|
|
546
547
|
curl -H "Accept: application/vnd.pypi.integrity.v1+json" \
|
|
547
|
-
https://pypi.org/integrity/matrixscroll/0.6.
|
|
548
|
+
https://pypi.org/integrity/matrixscroll/0.6.3/matrixscroll-0.6.3-py3-none-any.whl/provenance
|
|
548
549
|
```
|
|
549
550
|
|
|
550
551
|
The response names the publisher, and it should say exactly this:
|
|
@@ -559,7 +560,7 @@ publisher, the workflow, or the digest differs from what you expect, do not
|
|
|
559
560
|
install the file.
|
|
560
561
|
|
|
561
562
|
The human-readable view is on the
|
|
562
|
-
[PyPI project page](https://pypi.org/project/matrixscroll/0.6.
|
|
563
|
+
[PyPI project page](https://pypi.org/project/matrixscroll/0.6.3/), where files
|
|
563
564
|
built with attestations are marked as verified.
|
|
564
565
|
|
|
565
566
|
This matters more here than for most packages. A tool that sells offline
|
|
@@ -568,7 +569,7 @@ else.
|
|
|
568
569
|
|
|
569
570
|
## Security
|
|
570
571
|
|
|
571
|
-
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).
|
|
572
573
|
Report vulnerabilities privately to
|
|
573
574
|
**security@matrixscroll.com** or via a GitHub Security Advisory.
|
|
574
575
|
|
|
@@ -5,7 +5,7 @@ Signed provenance for agent-assisted Git commits, with offline Ed25519 verificat
|
|
|
5
5
|
[](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml)
|
|
6
6
|
[](https://pypi.org/project/matrixscroll/)
|
|
7
7
|
[](https://pypi.org/project/matrixscroll/)
|
|
8
|
-
[](LICENSE)
|
|
8
|
+
[](https://github.com/SSX360/matrixscroll/blob/main/LICENSE)
|
|
9
9
|
|
|
10
10
|
Matrix Scroll is an open protocol for cryptographically signed agent
|
|
11
11
|
authorization: Ed25519 records for Git commits (L1), MCP tool surfaces (L2), and
|
|
@@ -17,10 +17,10 @@ bench-validated proof of concept (Jul 2026) sharing the same verifier contract,
|
|
|
17
17
|
and the Pico 2 W / GMT130 display bring-up is a locked L2 Hardware prototype
|
|
18
18
|
(Jul 2026). Neither is generally available.
|
|
19
19
|
|
|
20
|
-
**Try it:** [matrixscroll.com/
|
|
21
|
-
tamper demo in the browser. **Codebase direction:** [`docs/DOCTRINE.md`](docs/DOCTRINE.md).
|
|
20
|
+
**Try it:** [matrixscroll.com/verify](https://matrixscroll.com/verify/) runs an offline
|
|
21
|
+
tamper demo in the browser. **Codebase direction:** [`docs/DOCTRINE.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/DOCTRINE.md).
|
|
22
22
|
**146 tests**, Hypothesis-verified [security properties](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md),
|
|
23
|
-
and [TLA+ formal models](formal/README.md).
|
|
23
|
+
and [TLA+ formal models](https://github.com/SSX360/matrixscroll/blob/main/formal/README.md).
|
|
24
24
|
|
|
25
25
|
**Authorization ladder:** L1 Code (commits), L2 Tools (MCP manifests), L3 Actions (agent runs), L4 Money (AP2, demo), L5 Silicon (2029+)
|
|
26
26
|
|
|
@@ -39,9 +39,9 @@ Matrix Scroll **maps to** and **produces evidence for** (never “required by”
|
|
|
39
39
|
- **US Treasury FS-AI RMF (Feb 2026)**: traceability for agent actions in financial software.
|
|
40
40
|
- **NIST SSDF**: provenance, change authorization, and release gate review.
|
|
41
41
|
- **EU AI Act Article 12**: record-keeping readiness (high-risk obligations Dec 2027), not a live mandate claim.
|
|
42
|
-
- **Five Eyes Agentic AI guidance (Apr 2026)**: linked crosswalk only: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
|
|
42
|
+
- **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)
|
|
43
43
|
|
|
44
|
-
POC 2 audit readiness: [`docs/POC2_AUDIT.md`](docs/POC2_AUDIT.md)
|
|
44
|
+
POC 2 audit readiness: [`docs/POC2_AUDIT.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/POC2_AUDIT.md)
|
|
45
45
|
|
|
46
46
|
## Install the MCP server (headline path)
|
|
47
47
|
|
|
@@ -59,7 +59,7 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
62
|
+
pip install "matrixscroll[mcp]==0.6.3"
|
|
63
63
|
matrixscroll-mcp # stdio. Register in Cursor / Claude Desktop / VS Code
|
|
64
64
|
```
|
|
65
65
|
|
|
@@ -71,15 +71,15 @@ matrixscroll-mcp # stdio. Register in Cursor / Claude Desktop / VS Code
|
|
|
71
71
|
|
|
72
72
|
### MCP Trust Scanner: catch a rug-pull in 60 seconds
|
|
73
73
|
|
|
74
|
-

|
|
74
|
+

|
|
75
75
|
|
|
76
|
-
[Watch on asciinema](https://asciinema.org/a/rbCRkIcZnjNWmqZF) · cast file: [`examples/demo/mcp-rugpull-demo.cast`](examples/demo/mcp-rugpull-demo.cast)
|
|
76
|
+
[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)
|
|
77
77
|
|
|
78
78
|
Sign the tool surface. Verify at install. Offline Ed25519 manifests for MCP rug-pull detection.
|
|
79
79
|
Zero cloud, zero signup, exit code 2 fails your CI.
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
pip install "matrixscroll==0.6.
|
|
82
|
+
pip install "matrixscroll==0.6.3"
|
|
83
83
|
|
|
84
84
|
# 1. Scan a live MCP server (stdio). Fingerprints every tool: name, description, input schema
|
|
85
85
|
matrixscroll mcp scan --connect stdio --server-command "npx -y some-mcp-server" \
|
|
@@ -113,22 +113,22 @@ Gate it in CI. Fail the build on unsigned or drifted manifests with the reusable
|
|
|
113
113
|
```yaml
|
|
114
114
|
jobs:
|
|
115
115
|
mcp-gate:
|
|
116
|
-
uses: SSX360/matrixscroll
|
|
116
|
+
uses: SSX360/matrixscroll/.github/workflows/mcp-manifest-gate.yml@action-v1
|
|
117
117
|
with:
|
|
118
118
|
manifest: mcp/my-server.signed.json
|
|
119
119
|
baseline: mcp/my-server.baseline.json
|
|
120
|
-
matrixscroll_version: "0.6.
|
|
120
|
+
matrixscroll_version: "0.6.3"
|
|
121
121
|
```
|
|
122
122
|
|
|
123
|
-
Full scripted demo: [`examples/demo/mcp-rugpull-demo.sh`](examples/demo/mcp-rugpull-demo.sh)
|
|
124
|
-
Golden artifact (this repo's own MCP server, signed): [`examples/mcp/matrixscroll-mcp.signed.json`](examples/mcp/matrixscroll-mcp.signed.json)
|
|
125
|
-
Schema (CC0): [`schemas/ssx360.mcp-manifest.v1.json`](schemas/ssx360.mcp-manifest.v1.json)
|
|
123
|
+
Full scripted demo: [`examples/demo/mcp-rugpull-demo.sh`](https://github.com/SSX360/matrixscroll/blob/main/examples/demo/mcp-rugpull-demo.sh)
|
|
124
|
+
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)
|
|
125
|
+
Schema (CC0): [`schemas/ssx360.mcp-manifest.v1.json`](https://github.com/SSX360/matrixscroll/blob/main/schemas/ssx360.mcp-manifest.v1.json)
|
|
126
126
|
Browser demo: [matrixscroll.com/scan](https://matrixscroll.com/scan/)
|
|
127
127
|
|
|
128
128
|
## Also available: CLI and hooks
|
|
129
129
|
|
|
130
130
|
```bash
|
|
131
|
-
pip install "matrixscroll==0.6.
|
|
131
|
+
pip install "matrixscroll==0.6.3"
|
|
132
132
|
matrixscroll hook-install
|
|
133
133
|
export MATRIXSCROLL_ACTOR_TYPE=agent
|
|
134
134
|
export MATRIXSCROLL_TOOL=agent-runner
|
|
@@ -157,10 +157,10 @@ Git under the hood; governance on top. **Not a Git replacement.**
|
|
|
157
157
|
matrixscroll scroll commit -m "feat: governed commit"
|
|
158
158
|
```
|
|
159
159
|
|
|
160
|
-
See [`docs/commercial/SSX360_SCROLL.md`](docs/commercial/SSX360_SCROLL.md).
|
|
160
|
+
See [`docs/commercial/SSX360_SCROLL.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/commercial/SSX360_SCROLL.md).
|
|
161
161
|
|
|
162
|
-
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
163
|
-
[`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
|
|
162
|
+
See [`docs/quickstart-git.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/quickstart-git.md) and
|
|
163
|
+
[`examples/demo/agent-commit-demo.sh`](https://github.com/SSX360/matrixscroll/blob/main/examples/demo/agent-commit-demo.sh).
|
|
164
164
|
|
|
165
165
|
---
|
|
166
166
|
|
|
@@ -194,7 +194,7 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](https://github.com/SSX360/matrixscro
|
|
|
194
194
|
|
|
195
195
|
## Honest limits
|
|
196
196
|
|
|
197
|
-
- Shipping now: PyPI `matrixscroll==0.6.
|
|
197
|
+
- Shipping now: PyPI `matrixscroll==0.6.3`, Git post-commit hooks,
|
|
198
198
|
`matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
|
|
199
199
|
`matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
|
|
200
200
|
verifier, the GitHub Action, and a USB CDC host transport for the SE050
|
|
@@ -248,14 +248,15 @@ for pilot evaluation, not GA.
|
|
|
248
248
|
|
|
249
249
|
Install the SDK and hooks in your repo, publish commit envelopes to
|
|
250
250
|
`refs/notes/matrixscroll` before PR review, and use
|
|
251
|
-
`SSX360/matrixscroll
|
|
252
|
-
GitHub Actions. Protected branches can then require Matrix
|
|
251
|
+
`SSX360/matrixscroll/.github/actions/verify@action-v1` to verify the full PR
|
|
252
|
+
commit range in GitHub Actions. Protected branches can then require Matrix
|
|
253
|
+
Scroll proof
|
|
253
254
|
alongside your existing scanners, branch protection, and build attestations.
|
|
254
255
|
|
|
255
256
|
## Quickstart (CLI)
|
|
256
257
|
|
|
257
258
|
```bash
|
|
258
|
-
pip install "matrixscroll==0.6.
|
|
259
|
+
pip install "matrixscroll==0.6.3"
|
|
259
260
|
matrixscroll hook-install
|
|
260
261
|
matrixscroll hook-status
|
|
261
262
|
|
|
@@ -266,10 +267,10 @@ git commit -m "feat: agent-assisted change"
|
|
|
266
267
|
matrixscroll envelope-verify "$(git rev-parse HEAD)"
|
|
267
268
|
```
|
|
268
269
|
|
|
269
|
-
**Try it in the browser:** [matrixscroll.com/
|
|
270
|
+
**Try it in the browser:** [matrixscroll.com/verify](https://matrixscroll.com/verify/)
|
|
270
271
|
|
|
271
|
-
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
272
|
-
[`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
|
|
272
|
+
See [`docs/quickstart-git.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/quickstart-git.md) and run
|
|
273
|
+
[`examples/demo/agent-commit-demo.sh`](https://github.com/SSX360/matrixscroll/blob/main/examples/demo/agent-commit-demo.sh).
|
|
273
274
|
|
|
274
275
|
## CI verify
|
|
275
276
|
|
|
@@ -279,12 +280,12 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
|
279
280
|
- uses: actions/checkout@v4
|
|
280
281
|
with:
|
|
281
282
|
fetch-depth: 0
|
|
282
|
-
- uses: SSX360/matrixscroll
|
|
283
|
+
- uses: SSX360/matrixscroll/.github/actions/verify@action-v1
|
|
283
284
|
with:
|
|
284
285
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
285
286
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
286
287
|
source: notes
|
|
287
|
-
matrixscroll-version: "0.6.
|
|
288
|
+
matrixscroll-version: "0.6.3"
|
|
288
289
|
require-mode: emulated
|
|
289
290
|
```
|
|
290
291
|
|
|
@@ -299,20 +300,20 @@ git push origin refs/notes/matrixscroll
|
|
|
299
300
|
- uses: actions/checkout@v4
|
|
300
301
|
with:
|
|
301
302
|
fetch-depth: 0
|
|
302
|
-
- uses: SSX360/matrixscroll
|
|
303
|
+
- uses: SSX360/matrixscroll/.github/actions/verify@action-v1
|
|
303
304
|
with:
|
|
304
305
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
305
306
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
306
307
|
source: notes
|
|
307
|
-
matrixscroll-version: "0.6.
|
|
308
|
+
matrixscroll-version: "0.6.3"
|
|
308
309
|
summary-output: provenance-summary.json
|
|
309
310
|
```
|
|
310
311
|
|
|
311
|
-
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
312
|
-
[`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
|
|
312
|
+
See [`docs/quickstart-git.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/quickstart-git.md) and
|
|
313
|
+
[`examples/ci/protected-branch.yml`](https://github.com/SSX360/matrixscroll/blob/main/examples/ci/protected-branch.yml).
|
|
313
314
|
|
|
314
315
|
The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
|
|
315
|
-
ship in the current release line; examples in this README pin `0.6.
|
|
316
|
+
ship in the current release line; examples in this README pin `0.6.3`.
|
|
316
317
|
|
|
317
318
|
## Security: Ed25519 via cryptography
|
|
318
319
|
|
|
@@ -320,7 +321,7 @@ Ed25519 signing, verification, and key generation use the [`cryptography`](https
|
|
|
320
321
|
package (required dependency, `>=42.0`). Official wheels ship native crypto
|
|
321
322
|
backends (OpenSSL + Rust components), so no Rust toolchain for users. All
|
|
322
323
|
primitives are centralized in `matrixscroll/crypto_backend.py`; see
|
|
323
|
-
[`docs/CRYPTO_BACKEND.md`](docs/CRYPTO_BACKEND.md).
|
|
324
|
+
[`docs/CRYPTO_BACKEND.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/CRYPTO_BACKEND.md).
|
|
324
325
|
|
|
325
326
|
## Why it is different from Sigstore
|
|
326
327
|
|
|
@@ -336,13 +337,13 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
336
337
|
## Public proof links
|
|
337
338
|
|
|
338
339
|
- Browser verifier: <https://matrixscroll.com/verify/>
|
|
339
|
-
-
|
|
340
|
+
- MCP Trust Scanner (browser, offline): <https://matrixscroll.com/scan/>
|
|
340
341
|
- Documentation: <https://matrixscroll.com/docs/>
|
|
341
342
|
- Specification: [`SPEC.md`](https://github.com/SSX360/matrixscroll/blob/main/SPEC.md)
|
|
342
343
|
- Commit envelope schema: [`schemas/commit-envelope.v1.json`](https://github.com/SSX360/matrixscroll/blob/main/schemas/commit-envelope.v1.json)
|
|
343
|
-
- Whitepaper: [`docs/WHITEPAPER.md`](docs/WHITEPAPER.md)
|
|
344
|
+
- Whitepaper: [`docs/WHITEPAPER.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/WHITEPAPER.md)
|
|
344
345
|
- Conformance vectors: [`vectors/`](https://github.com/SSX360/matrixscroll/tree/main/vectors/)
|
|
345
|
-
- GitHub Action: <https://github.com/SSX360/matrixscroll
|
|
346
|
+
- GitHub Action: <https://github.com/SSX360/matrixscroll/tree/main/.github/actions/verify>
|
|
346
347
|
- Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/AGENTIC_AI_SECURITY.md)
|
|
347
348
|
- Site: <https://matrixscroll.com> · Browser verifier: <https://matrixscroll.com/verify/>
|
|
348
349
|
- Hardware prototype status: [`docs/hardware-provider.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/hardware-provider.md) (bench-validated; not GA)
|
|
@@ -351,7 +352,7 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
351
352
|
## Python API
|
|
352
353
|
|
|
353
354
|
```bash
|
|
354
|
-
pip install "matrixscroll==0.6.
|
|
355
|
+
pip install "matrixscroll==0.6.3"
|
|
355
356
|
```
|
|
356
357
|
|
|
357
358
|
```python
|
|
@@ -450,9 +451,9 @@ implementations in Rust, Go, TypeScript, and embedded C. Run them against
|
|
|
450
451
|
## Agentic AI guidance proof
|
|
451
452
|
|
|
452
453
|
The repo includes a machine-readable control matrix at
|
|
453
|
-
[`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json), an
|
|
454
|
+
[`controls/agentic_ai_controls.json`](https://github.com/SSX360/matrixscroll/blob/main/controls/agentic_ai_controls.json), an
|
|
454
455
|
example bounded-agent evidence manifest at
|
|
455
|
-
[`examples/agentic_ai_evidence_manifest.json`](examples/agentic_ai_evidence_manifest.json),
|
|
456
|
+
[`examples/agentic_ai_evidence_manifest.json`](https://github.com/SSX360/matrixscroll/blob/main/examples/agentic_ai_evidence_manifest.json),
|
|
456
457
|
and executable checks in `tests/test_agentic_guidance.py`.
|
|
457
458
|
|
|
458
459
|
## Model Context Protocol (MCP) Server
|
|
@@ -464,7 +465,7 @@ The MCP server exposes **provenance verbs** (`create_envelope`, `verify_envelope
|
|
|
464
465
|
Install and register in Cursor / Claude Desktop / VS Code:
|
|
465
466
|
|
|
466
467
|
```bash
|
|
467
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
468
|
+
pip install "matrixscroll[mcp]==0.6.3"
|
|
468
469
|
matrixscroll-mcp # stdio
|
|
469
470
|
```
|
|
470
471
|
|
|
@@ -487,7 +488,7 @@ Ask PyPI directly:
|
|
|
487
488
|
|
|
488
489
|
```bash
|
|
489
490
|
curl -H "Accept: application/vnd.pypi.integrity.v1+json" \
|
|
490
|
-
https://pypi.org/integrity/matrixscroll/0.6.
|
|
491
|
+
https://pypi.org/integrity/matrixscroll/0.6.3/matrixscroll-0.6.3-py3-none-any.whl/provenance
|
|
491
492
|
```
|
|
492
493
|
|
|
493
494
|
The response names the publisher, and it should say exactly this:
|
|
@@ -502,7 +503,7 @@ publisher, the workflow, or the digest differs from what you expect, do not
|
|
|
502
503
|
install the file.
|
|
503
504
|
|
|
504
505
|
The human-readable view is on the
|
|
505
|
-
[PyPI project page](https://pypi.org/project/matrixscroll/0.6.
|
|
506
|
+
[PyPI project page](https://pypi.org/project/matrixscroll/0.6.3/), where files
|
|
506
507
|
built with attestations are marked as verified.
|
|
507
508
|
|
|
508
509
|
This matters more here than for most packages. A tool that sells offline
|
|
@@ -511,7 +512,7 @@ else.
|
|
|
511
512
|
|
|
512
513
|
## Security
|
|
513
514
|
|
|
514
|
-
See [`SECURITY.md`](SECURITY.md) and [`docs/SECURITY_PROPERTIES.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md).
|
|
515
|
+
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).
|
|
515
516
|
Report vulnerabilities privately to
|
|
516
517
|
**security@matrixscroll.com** or via a GitHub Security Advisory.
|
|
517
518
|
|
|
@@ -40,8 +40,8 @@ Out of scope:
|
|
|
40
40
|
|
|
41
41
|
| Version | Status |
|
|
42
42
|
| ------- | ------ |
|
|
43
|
-
| 0.
|
|
44
|
-
| 0.
|
|
43
|
+
| 0.6.x | Active development. Security fixes are released as patch versions. The published release is 0.6.3. |
|
|
44
|
+
| 0.5.x and earlier | Legacy. Upgrade to 0.6.x for the post-quantum overlay and the in-repo verify action. |
|
|
45
45
|
|
|
46
46
|
Pre-1.0 there is no extended support window. Pin to a known-good version
|
|
47
47
|
in production until 1.0.
|