matrixscroll 0.3.0__tar.gz → 0.4.1__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 (125) hide show
  1. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/CHANGELOG.md +12 -0
  2. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/PKG-INFO +66 -38
  3. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/README.md +57 -32
  4. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/controls/agentic_ai_controls.json +2 -2
  5. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/ADOPTER_KIT.md +3 -3
  6. matrixscroll-0.4.1/docs/ADOPTION.md +13 -0
  7. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/COMPARISON.md +1 -1
  8. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/FIVE_MINUTES.md +2 -2
  9. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/ROADMAP_2026-07.md +2 -2
  10. matrixscroll-0.4.1/docs/SECURITY_PROPERTIES.md +36 -0
  11. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/WHITEPAPER.md +4 -4
  12. matrixscroll-0.4.1/docs/commercial/PLATFORM_PIVOT.md +62 -0
  13. matrixscroll-0.4.1/docs/commercial/SCROLL_GATE_V2.md +82 -0
  14. matrixscroll-0.4.1/docs/commercial/SSX360_SCROLL.md +31 -0
  15. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/hardware-provider.md +1 -1
  16. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/quickstart-agent.md +1 -1
  17. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/quickstart-claude-code.md +1 -1
  18. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/quickstart-git.md +4 -4
  19. matrixscroll-0.4.1/docs/quickstart-mcp.md +62 -0
  20. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/rekor-guac-bridge-design.md +1 -1
  21. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/ci/protected-branch.yml +3 -3
  22. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/__init__.py +1 -1
  23. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/_claim.py +1 -1
  24. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/cli.py +72 -0
  25. matrixscroll-0.4.1/matrixscroll/cloud/__init__.py +19 -0
  26. matrixscroll-0.4.1/matrixscroll/cloud/client.py +118 -0
  27. matrixscroll-0.4.1/matrixscroll/mcp.py +672 -0
  28. matrixscroll-0.4.1/matrixscroll/provenance/__init__.py +24 -0
  29. matrixscroll-0.4.1/matrixscroll/provenance/actions.py +110 -0
  30. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/se050_transport.py +1 -1
  31. matrixscroll-0.4.1/matrixscroll/scroll/README.md +37 -0
  32. matrixscroll-0.4.1/matrixscroll/scroll/__init__.py +94 -0
  33. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/pyproject.toml +11 -8
  34. matrixscroll-0.4.1/schemas/action-envelope.v1.json +152 -0
  35. matrixscroll-0.4.1/tests/test_provenance.py +73 -0
  36. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_release_metadata.py +2 -2
  37. matrixscroll-0.4.1/tests/test_security_properties.py +57 -0
  38. matrixscroll-0.3.0/docs/quickstart-mcp.md +0 -50
  39. matrixscroll-0.3.0/matrixscroll/mcp.py +0 -167
  40. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/.gitignore +0 -0
  41. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/CONTRIBUTING.md +0 -0
  42. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/LICENSE +0 -0
  43. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/SECURITY.md +0 -0
  44. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/SPEC.md +0 -0
  45. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/AGENTIC_AI_SECURITY.md +0 -0
  46. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/CI_HARD_GATE.md +0 -0
  47. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +0 -0
  48. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/HERO_DEMO.md +0 -0
  49. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/SE050_POC_SCOPE.md +0 -0
  50. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/SE050_USB_PROTOCOL.md +0 -0
  51. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/SOFTWARE_PRODUCTS.md +0 -0
  52. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/delegation-attestation-rfc.md +0 -0
  53. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/registries-guide.md +0 -0
  54. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
  55. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
  56. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
  57. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/yubikey-bridge.md +0 -0
  58. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/yubikey-smoke.md +0 -0
  59. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/agentic_ai_evidence_manifest.json +0 -0
  60. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
  61. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/commit-envelope.json +0 -0
  62. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/commit-envelope.signed.json +0 -0
  63. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/demo/agent-commit-demo.sh +0 -0
  64. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/demo/generate_signed_examples.py +0 -0
  65. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/demo/hero-self-attestation-demo.sh +0 -0
  66. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/release-manifest.json +0 -0
  67. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/release-manifest.signed.json +0 -0
  68. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/trusted-keys-policy.json +0 -0
  69. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/_core.py +0 -0
  70. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/_payment.py +0 -0
  71. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/canonical.py +0 -0
  72. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/constants.py +0 -0
  73. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/errors.py +0 -0
  74. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/gate.py +0 -0
  75. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/git.py +0 -0
  76. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/guac_export.py +0 -0
  77. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/hooks/post-commit +0 -0
  78. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/hooks/pre-push +0 -0
  79. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/manifest.py +0 -0
  80. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/mcp_core.py +0 -0
  81. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/policy.py +0 -0
  82. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/__init__.py +0 -0
  83. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/base.py +0 -0
  84. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/emulated.py +0 -0
  85. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/hardware.py +0 -0
  86. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/registry.py +0 -0
  87. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/tpm.py +0 -0
  88. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/yubikey.py +0 -0
  89. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/py.typed +0 -0
  90. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/rekor_publish.py +0 -0
  91. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/schemas/commit-envelope.v1.json +0 -0
  92. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/schemas/evidence-pack.v1.json +0 -0
  93. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/schemas/release-manifest.v1.json +0 -0
  94. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/__init__.py +0 -0
  95. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/fixtures/github-gpgsig-commit.txt +0 -0
  96. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_agentic_guidance.py +0 -0
  97. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_canonical.py +0 -0
  98. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_cli.py +0 -0
  99. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_core.py +0 -0
  100. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_gate.py +0 -0
  101. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_git_envelope.py +0 -0
  102. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_guac_rekor.py +0 -0
  103. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_mcp_core.py +0 -0
  104. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_mcp_server.py +0 -0
  105. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_policy.py +0 -0
  106. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_se050_transport.py +0 -0
  107. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_tpm_provider.py +0 -0
  108. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_vectors.py +0 -0
  109. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_yubikey_provider.py +0 -0
  110. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/README.md +0 -0
  111. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/_fixture_key.json +0 -0
  112. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/_generate.py +0 -0
  113. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_algorithm.json +0 -0
  114. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_device_id.json +0 -0
  115. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_field.json +0 -0
  116. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_nested.json +0 -0
  117. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_public_key.json +0 -0
  118. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_schema.json +0 -0
  119. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_signature.json +0 -0
  120. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/unsigned_empty_block.json +0 -0
  121. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/unsigned_no_block.json +0 -0
  122. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/valid_commit_envelope.json +0 -0
  123. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/valid_nested.json +0 -0
  124. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/valid_simple.json +0 -0
  125. {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/valid_unicode.json +0 -0
@@ -4,6 +4,18 @@ 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.4.1] - 2026-06-29
8
+
9
+ Universal provenance SDK expansion and SSX360 Scroll Phase 1 wrapper.
10
+
11
+ ### Added
12
+ - **`matrixscroll.provenance`** — action envelope builders for `ci_step`, `iac_change`,
13
+ `db_migration`, `api_call`, and `contract_deploy` (`schemas/action-envelope.v1.json`).
14
+ - **`matrixscroll sign-action`** CLI — sign typed action envelopes with Ed25519.
15
+ - **`matrixscroll scroll commit`** — thin Git wrapper (Phase 1; not a Git replacement).
16
+ - **MCP** — `sign_action` validates typed payloads; new `matrixscroll://schema/action-envelope.v1` resource.
17
+ - **Docs** — SSX360 Scroll brief, Scroll Gate v2 SLSA L1–2 honest mapping.
18
+
7
19
  ## [0.3.0] - 2026-06-28
8
20
 
9
21
  Digital Rain removal and provenance-only SDK surface.
@@ -1,23 +1,24 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matrixscroll
3
- Version: 0.3.0
3
+ Version: 0.4.1
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
- Project-URL: Homepage, https://matrixscroll.com
6
- Project-URL: Documentation, https://matrixscroll.com/docs
5
+ Project-URL: Homepage, https://ssx360.com
6
+ Project-URL: Documentation, https://ssx360.com/docs
7
+ Project-URL: Repository, https://github.com/SSX360/matrixscroll
7
8
  Project-URL: Source, https://github.com/SSX360/matrixscroll
8
9
  Project-URL: Issues, https://github.com/SSX360/matrixscroll/issues
9
10
  Project-URL: Specification, https://github.com/SSX360/matrixscroll/blob/main/SPEC.md
10
11
  Project-URL: Whitepaper, https://github.com/SSX360/matrixscroll/blob/main/docs/WHITEPAPER.md
11
- Project-URL: Verifier, https://matrixscroll.com/verify
12
- Project-URL: Compare, https://matrixscroll.com/compare
12
+ Project-URL: Verifier, https://ssx360.com/verify
13
+ Project-URL: Compare, https://ssx360.com/docs
13
14
  Project-URL: Changelog, https://github.com/SSX360/matrixscroll/blob/main/CHANGELOG.md
14
15
  Project-URL: Discussions, https://github.com/SSX360/matrixscroll/discussions
15
16
  Project-URL: Security, https://github.com/SSX360/matrixscroll/blob/main/SECURITY.md
16
17
  Project-URL: GitHub Action, https://github.com/SSX360/matrixscroll-verify-action
17
18
  Project-URL: PyPI Provenance, https://pypi.org/project/matrixscroll/
19
+ Project-URL: Reference Device, https://ssx360.com/hardware
18
20
  Project-URL: Tests, https://github.com/SSX360/matrixscroll/tree/main/tests
19
21
  Project-URL: Public Roadmap, https://github.com/SSX360/matrixscroll/blob/main/docs/ROADMAP_2026-07.md
20
- Project-URL: Reference Device, https://matrixscroll.com/device
21
22
  Author-email: SSX360 <security@matrixscroll.com>
22
23
  License-Expression: Apache-2.0
23
24
  License-File: LICENSE
@@ -40,6 +41,8 @@ Requires-Python: >=3.10
40
41
  Requires-Dist: cryptography>=41.0
41
42
  Provides-Extra: dev
42
43
  Requires-Dist: build>=1.0; extra == 'dev'
44
+ Requires-Dist: hypothesis>=6.100; extra == 'dev'
45
+ Requires-Dist: pytest-cov>=4.1; extra == 'dev'
43
46
  Requires-Dist: pytest>=7.4; extra == 'dev'
44
47
  Provides-Extra: git
45
48
  Provides-Extra: hardware
@@ -53,14 +56,21 @@ Description-Content-Type: text/markdown
53
56
 
54
57
  # Matrix Scroll
55
58
 
59
+ [![ci-unit](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml/badge.svg)](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml)
60
+ [![Scroll Gate v2 (hosted)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml/badge.svg)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
61
+ [![codecov](https://codecov.io/gh/SSX360/matrixscroll/graph/badge.svg)](https://codecov.io/gh/SSX360/matrixscroll)
62
+
63
+ **112 tests** · Hypothesis-verified security properties · [Security properties](docs/SECURITY_PROPERTIES.md)
64
+
56
65
  **Signed proof of who — or what — wrote every commit.** Matrix Scroll is the
57
- open Ed25519 commit-provenance protocol for agent-assisted Git — verified
66
+ **universal provenance SDK** — open Ed25519 envelopes for Git commits, CI steps,
67
+ IaC changes, DB migrations, API calls, and smart-contract deploys — verified
58
68
  offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust
59
69
  upgrade; emulated mode ships today.
60
70
 
61
71
  **Hosted control plane:** identity, billing, and device confirmation live at
62
72
  [ssx360.com](https://ssx360.com/). Teams evaluating protected-branch enforcement should
63
- [book a provenance pilot](mailto:mission@ssx360.com?subject=Provenance%20Pilot%20Inquiry);
73
+ [book a provenance pilot](https://ssx360.com/contact?intent=pilot);
64
74
  Provisioned pilot and team accounts sign in at [ssx360.com/signup](https://ssx360.com/signup).
65
75
 
66
76
  ## Compliance evidence mapping
@@ -74,22 +84,6 @@ Matrix Scroll **maps to** and **produces evidence for** (never “required by”
74
84
 
75
85
  Full matrix: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
76
86
 
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
87
  ## Install — MCP server (headline path)
94
88
 
95
89
  Agents sign commits in-loop via the **provenance-only** MCP server:
@@ -106,17 +100,18 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
106
100
  ```
107
101
 
108
102
  ```bash
109
- pip install "matrixscroll[mcp]==0.3.0"
103
+ pip install "matrixscroll[mcp]==0.4.1"
110
104
  matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
111
105
  ```
112
106
 
113
- **MCP tools (provenance verbs only):** `create_envelope`, `verify_envelope`,
114
- `verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`.
107
+ **MCP tools (provenance verbs only):** `create_envelope`, `sign_action`, `verify_envelope`,
108
+ `verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`, `list_envelopes`,
109
+ `connect_card` (SE050 preview).
115
110
 
116
111
  ## Also available — CLI & hooks
117
112
 
118
113
  ```bash
119
- pip install "matrixscroll==0.3.0"
114
+ pip install "matrixscroll==0.4.1"
120
115
  matrixscroll hook-install
121
116
  export MATRIXSCROLL_ACTOR_TYPE=agent
122
117
  export MATRIXSCROLL_TOOL=agent-runner
@@ -124,6 +119,29 @@ git commit -m "feat: agent-assisted change"
124
119
  matrixscroll envelope-verify "$(git rev-parse HEAD)"
125
120
  ```
126
121
 
122
+ ### Universal action envelopes (Layer 2)
123
+
124
+ Sign provenance for CI, IaC, migrations, API calls, and contract deploys:
125
+
126
+ ```bash
127
+ matrixscroll sign-action --type ci_step \
128
+ --payload ./payloads/ci-step.json \
129
+ --output ./ci-step.signed.json \
130
+ --actor-type ci
131
+ ```
132
+
133
+ Action schema: [`schemas/action-envelope.v1.json`](schemas/action-envelope.v1.json)
134
+
135
+ ### SSX360 Scroll — Git wrapper (Layer 3, Phase 1)
136
+
137
+ Git under the hood; governance on top. **Not a Git replacement.**
138
+
139
+ ```bash
140
+ matrixscroll scroll commit -m "feat: governed commit"
141
+ ```
142
+
143
+ See [`docs/commercial/SSX360_SCROLL.md`](docs/commercial/SSX360_SCROLL.md).
144
+
127
145
  See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
128
146
  [`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
129
147
 
@@ -147,13 +165,22 @@ The reference SDK ships pure Ed25519 over canonical manifest bytes today. The
147
165
  SSX360 / NXP SE050 path is the compatible next trust layer and remains a
148
166
  preview path until device acceptance is complete.
149
167
 
168
+ ## RFC 8032 (Ed25519) alignment
169
+
170
+ Matrix Scroll v1 binds exclusively to [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032)
171
+ Ed25519: 32-byte seeds, 32-byte public keys, 64-byte detached signatures over
172
+ canonical UTF-8 JSON bytes (see [`SPEC.md`](SPEC.md) §4). Verifiers reject any
173
+ `signature.algorithm` other than `"ed25519"`. Conformance vectors live in
174
+ [`vectors/`](vectors/); property tests in [`docs/SECURITY_PROPERTIES.md`](docs/SECURITY_PROPERTIES.md).
175
+
150
176
  ## Honest limits
151
177
 
152
- - Shipping now: PyPI `matrixscroll==0.3.0`, Git post-commit hooks,
153
- `matrixscroll envelope-verify`, Scroll Gate PR verification, browser
178
+ - Shipping now: PyPI `matrixscroll==0.4.1`, Git post-commit hooks,
179
+ `matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
180
+ `matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
154
181
  verifier, the GitHub Action, and a USB CDC host transport preview for the
155
182
  SE050 rollout path. Emulated mode is the default evaluation path.
156
- - In progress: RP2350 + SE050 firmware validation, external Ed25519-capable
183
+ - In progress: nRF52840 + SE050 firmware validation (AP2 Vault Card PoC), external Ed25519-capable
157
184
  hardware key backends, and transparency-log integrations.
158
185
  - Not: IAM, sandboxing, prompt filtering, or an agent runtime.
159
186
 
@@ -194,7 +221,7 @@ alongside your existing scanners, branch protection, and build attestations.
194
221
  ## Quickstart (CLI)
195
222
 
196
223
  ```bash
197
- pip install "matrixscroll==0.3.0"
224
+ pip install "matrixscroll==0.4.1"
198
225
  matrixscroll hook-install
199
226
  matrixscroll hook-status
200
227
 
@@ -221,7 +248,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
221
248
  head-ref: ${{ github.event.pull_request.head.sha }}
222
249
  base-ref: ${{ github.event.pull_request.base.sha }}
223
250
  source: notes
224
- matrixscroll-version: "0.3.0"
251
+ matrixscroll-version: "0.4.1"
225
252
  require-mode: emulated
226
253
  ```
227
254
 
@@ -241,7 +268,7 @@ git push origin refs/notes/matrixscroll
241
268
  head-ref: ${{ github.event.pull_request.head.sha }}
242
269
  base-ref: ${{ github.event.pull_request.base.sha }}
243
270
  source: notes
244
- matrixscroll-version: "0.3.0"
271
+ matrixscroll-version: "0.4.1"
245
272
  summary-output: provenance-summary.json
246
273
  ```
247
274
 
@@ -273,12 +300,12 @@ when they preserve the same pure Ed25519 byte contract.
273
300
  - GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
274
301
  - Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md)
275
302
  - Site: <https://matrixscroll.com>
276
- - Reference device path: [SSX360](https://matrixscroll.com/device)
303
+ - Reference device path: [AP2 Vault Card hardware](https://ssx360.com/hardware)
277
304
 
278
305
  ## Python API
279
306
 
280
307
  ```bash
281
- pip install "matrixscroll==0.3.0"
308
+ pip install "matrixscroll==0.4.1"
282
309
  ```
283
310
 
284
311
  ```python
@@ -388,7 +415,7 @@ The MCP server exposes **provenance verbs only**: `create_envelope`, `verify_env
388
415
  Install and register in Cursor / Claude Desktop / VS Code:
389
416
 
390
417
  ```bash
391
- pip install "matrixscroll[mcp]==0.3.0"
418
+ pip install "matrixscroll[mcp]==0.4.1"
392
419
  matrixscroll-mcp # stdio
393
420
  ```
394
421
 
@@ -402,7 +429,8 @@ the recommended `mcp.json` snippet.
402
429
 
403
430
  ## Security
404
431
 
405
- See [`SECURITY.md`](SECURITY.md). Report vulnerabilities privately to
432
+ See [`SECURITY.md`](SECURITY.md) and [`docs/SECURITY_PROPERTIES.md`](docs/SECURITY_PROPERTIES.md).
433
+ Report vulnerabilities privately to
406
434
  **security@matrixscroll.com** or via a GitHub Security Advisory.
407
435
 
408
436
  ---
@@ -1,13 +1,20 @@
1
1
  # Matrix Scroll
2
2
 
3
+ [![ci-unit](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml/badge.svg)](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml)
4
+ [![Scroll Gate v2 (hosted)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml/badge.svg)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
5
+ [![codecov](https://codecov.io/gh/SSX360/matrixscroll/graph/badge.svg)](https://codecov.io/gh/SSX360/matrixscroll)
6
+
7
+ **112 tests** · Hypothesis-verified security properties · [Security properties](docs/SECURITY_PROPERTIES.md)
8
+
3
9
  **Signed proof of who — or what — wrote every commit.** Matrix Scroll is the
4
- open Ed25519 commit-provenance protocol for agent-assisted Git — verified
10
+ **universal provenance SDK** — open Ed25519 envelopes for Git commits, CI steps,
11
+ IaC changes, DB migrations, API calls, and smart-contract deploys — verified
5
12
  offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust
6
13
  upgrade; emulated mode ships today.
7
14
 
8
15
  **Hosted control plane:** identity, billing, and device confirmation live at
9
16
  [ssx360.com](https://ssx360.com/). Teams evaluating protected-branch enforcement should
10
- [book a provenance pilot](mailto:mission@ssx360.com?subject=Provenance%20Pilot%20Inquiry);
17
+ [book a provenance pilot](https://ssx360.com/contact?intent=pilot);
11
18
  Provisioned pilot and team accounts sign in at [ssx360.com/signup](https://ssx360.com/signup).
12
19
 
13
20
  ## Compliance evidence mapping
@@ -21,22 +28,6 @@ Matrix Scroll **maps to** and **produces evidence for** (never “required by”
21
28
 
22
29
  Full matrix: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
23
30
 
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
31
  ## Install — MCP server (headline path)
41
32
 
42
33
  Agents sign commits in-loop via the **provenance-only** MCP server:
@@ -53,17 +44,18 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
53
44
  ```
54
45
 
55
46
  ```bash
56
- pip install "matrixscroll[mcp]==0.3.0"
47
+ pip install "matrixscroll[mcp]==0.4.1"
57
48
  matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
58
49
  ```
59
50
 
60
- **MCP tools (provenance verbs only):** `create_envelope`, `verify_envelope`,
61
- `verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`.
51
+ **MCP tools (provenance verbs only):** `create_envelope`, `sign_action`, `verify_envelope`,
52
+ `verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`, `list_envelopes`,
53
+ `connect_card` (SE050 preview).
62
54
 
63
55
  ## Also available — CLI & hooks
64
56
 
65
57
  ```bash
66
- pip install "matrixscroll==0.3.0"
58
+ pip install "matrixscroll==0.4.1"
67
59
  matrixscroll hook-install
68
60
  export MATRIXSCROLL_ACTOR_TYPE=agent
69
61
  export MATRIXSCROLL_TOOL=agent-runner
@@ -71,6 +63,29 @@ git commit -m "feat: agent-assisted change"
71
63
  matrixscroll envelope-verify "$(git rev-parse HEAD)"
72
64
  ```
73
65
 
66
+ ### Universal action envelopes (Layer 2)
67
+
68
+ Sign provenance for CI, IaC, migrations, API calls, and contract deploys:
69
+
70
+ ```bash
71
+ matrixscroll sign-action --type ci_step \
72
+ --payload ./payloads/ci-step.json \
73
+ --output ./ci-step.signed.json \
74
+ --actor-type ci
75
+ ```
76
+
77
+ Action schema: [`schemas/action-envelope.v1.json`](schemas/action-envelope.v1.json)
78
+
79
+ ### SSX360 Scroll — Git wrapper (Layer 3, Phase 1)
80
+
81
+ Git under the hood; governance on top. **Not a Git replacement.**
82
+
83
+ ```bash
84
+ matrixscroll scroll commit -m "feat: governed commit"
85
+ ```
86
+
87
+ See [`docs/commercial/SSX360_SCROLL.md`](docs/commercial/SSX360_SCROLL.md).
88
+
74
89
  See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
75
90
  [`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
76
91
 
@@ -94,13 +109,22 @@ The reference SDK ships pure Ed25519 over canonical manifest bytes today. The
94
109
  SSX360 / NXP SE050 path is the compatible next trust layer and remains a
95
110
  preview path until device acceptance is complete.
96
111
 
112
+ ## RFC 8032 (Ed25519) alignment
113
+
114
+ Matrix Scroll v1 binds exclusively to [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032)
115
+ Ed25519: 32-byte seeds, 32-byte public keys, 64-byte detached signatures over
116
+ canonical UTF-8 JSON bytes (see [`SPEC.md`](SPEC.md) §4). Verifiers reject any
117
+ `signature.algorithm` other than `"ed25519"`. Conformance vectors live in
118
+ [`vectors/`](vectors/); property tests in [`docs/SECURITY_PROPERTIES.md`](docs/SECURITY_PROPERTIES.md).
119
+
97
120
  ## Honest limits
98
121
 
99
- - Shipping now: PyPI `matrixscroll==0.3.0`, Git post-commit hooks,
100
- `matrixscroll envelope-verify`, Scroll Gate PR verification, browser
122
+ - Shipping now: PyPI `matrixscroll==0.4.1`, Git post-commit hooks,
123
+ `matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
124
+ `matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
101
125
  verifier, the GitHub Action, and a USB CDC host transport preview for the
102
126
  SE050 rollout path. Emulated mode is the default evaluation path.
103
- - In progress: RP2350 + SE050 firmware validation, external Ed25519-capable
127
+ - In progress: nRF52840 + SE050 firmware validation (AP2 Vault Card PoC), external Ed25519-capable
104
128
  hardware key backends, and transparency-log integrations.
105
129
  - Not: IAM, sandboxing, prompt filtering, or an agent runtime.
106
130
 
@@ -141,7 +165,7 @@ alongside your existing scanners, branch protection, and build attestations.
141
165
  ## Quickstart (CLI)
142
166
 
143
167
  ```bash
144
- pip install "matrixscroll==0.3.0"
168
+ pip install "matrixscroll==0.4.1"
145
169
  matrixscroll hook-install
146
170
  matrixscroll hook-status
147
171
 
@@ -168,7 +192,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
168
192
  head-ref: ${{ github.event.pull_request.head.sha }}
169
193
  base-ref: ${{ github.event.pull_request.base.sha }}
170
194
  source: notes
171
- matrixscroll-version: "0.3.0"
195
+ matrixscroll-version: "0.4.1"
172
196
  require-mode: emulated
173
197
  ```
174
198
 
@@ -188,7 +212,7 @@ git push origin refs/notes/matrixscroll
188
212
  head-ref: ${{ github.event.pull_request.head.sha }}
189
213
  base-ref: ${{ github.event.pull_request.base.sha }}
190
214
  source: notes
191
- matrixscroll-version: "0.3.0"
215
+ matrixscroll-version: "0.4.1"
192
216
  summary-output: provenance-summary.json
193
217
  ```
194
218
 
@@ -220,12 +244,12 @@ when they preserve the same pure Ed25519 byte contract.
220
244
  - GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
221
245
  - Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md)
222
246
  - Site: <https://matrixscroll.com>
223
- - Reference device path: [SSX360](https://matrixscroll.com/device)
247
+ - Reference device path: [AP2 Vault Card hardware](https://ssx360.com/hardware)
224
248
 
225
249
  ## Python API
226
250
 
227
251
  ```bash
228
- pip install "matrixscroll==0.3.0"
252
+ pip install "matrixscroll==0.4.1"
229
253
  ```
230
254
 
231
255
  ```python
@@ -335,7 +359,7 @@ The MCP server exposes **provenance verbs only**: `create_envelope`, `verify_env
335
359
  Install and register in Cursor / Claude Desktop / VS Code:
336
360
 
337
361
  ```bash
338
- pip install "matrixscroll[mcp]==0.3.0"
362
+ pip install "matrixscroll[mcp]==0.4.1"
339
363
  matrixscroll-mcp # stdio
340
364
  ```
341
365
 
@@ -349,7 +373,8 @@ the recommended `mcp.json` snippet.
349
373
 
350
374
  ## Security
351
375
 
352
- See [`SECURITY.md`](SECURITY.md). Report vulnerabilities privately to
376
+ See [`SECURITY.md`](SECURITY.md) and [`docs/SECURITY_PROPERTIES.md`](docs/SECURITY_PROPERTIES.md).
377
+ Report vulnerabilities privately to
353
378
  **security@matrixscroll.com** or via a GitHub Security Advisory.
354
379
 
355
380
  ---
@@ -78,7 +78,7 @@
78
78
  "title": "Supply-chain and dependency management",
79
79
  "guidance": "Understand third-party components, models, tools, integrations, and update exposure.",
80
80
  "matrixscroll_control": "The repo uses minimal runtime dependencies, Dependabot, CI build verification, and a public spec/conformance suite.",
81
- "evidence_paths": ["pyproject.toml", ".github/dependabot.yml", ".github/workflows/test.yml", "vectors/README.md"],
81
+ "evidence_paths": ["pyproject.toml", ".github/dependabot.yml", ".github/workflows/ci-unit.yml", "vectors/README.md"],
82
82
  "goes_beyond": "Third-party implementations can self-test against public vectors before being trusted."
83
83
  },
84
84
  {
@@ -94,7 +94,7 @@
94
94
  "title": "Governance and change control",
95
95
  "guidance": "Integrate agentic AI risk with existing security governance and define ownership before deployment.",
96
96
  "matrixscroll_control": "Spec, core crypto, vectors, security policy, and CI are CODEOWNERS-protected and tested across OS/Python versions.",
97
- "evidence_paths": [".github/CODEOWNERS", ".github/workflows/test.yml", "CONTRIBUTING.md"],
97
+ "evidence_paths": [".github/CODEOWNERS", ".github/workflows/ci-unit.yml", ".github/workflows/ci-integration.yml", "CONTRIBUTING.md"],
98
98
  "goes_beyond": "Protocol-impacting changes require both human review and machine conformance checks."
99
99
  },
100
100
  {
@@ -11,7 +11,7 @@ who want to trial Matrix Scroll without changing their core workflow.
11
11
 
12
12
  ## 15-minute pilot
13
13
 
14
- 1. Install `matrixscroll==0.2.6` in one repo.
14
+ 1. Install `matrixscroll==0.3.0` in one repo.
15
15
  2. Run `matrixscroll hook-install`.
16
16
  3. Make one agent-assisted commit and verify it locally.
17
17
  4. Publish notes with `matrixscroll envelope-publish-notes`.
@@ -38,7 +38,7 @@ jobs:
38
38
  head-ref: ${{ github.event.pull_request.head.sha }}
39
39
  base-ref: ${{ github.event.pull_request.base.sha }}
40
40
  source: notes
41
- matrixscroll-version: "0.2.6"
41
+ matrixscroll-version: "0.3.0"
42
42
  require-mode: emulated
43
43
  ```
44
44
 
@@ -64,7 +64,7 @@ jobs:
64
64
  ## Clean-machine proof status
65
65
 
66
66
  Recorded on `2026-06-21` against the pinned public flow:
67
- `pip install "matrixscroll==0.2.6"` -> `matrixscroll hook-install` ->
67
+ `pip install "matrixscroll==0.3.0"` -> `matrixscroll hook-install` ->
68
68
  `matrixscroll hook-status` -> first agent-assisted commit ->
69
69
  `matrixscroll envelope-verify`.
70
70
 
@@ -0,0 +1,13 @@
1
+ # Adoption signals (internal)
2
+
3
+ Track outbound and registry traction while rolling out. Not published on the public README.
4
+
5
+ | Signal | Counter |
6
+ |--------|---------|
7
+ | PyPI `matrixscroll` | [![PyPI downloads](https://img.shields.io/pypi/dm/matrixscroll)](https://pypi.org/project/matrixscroll/) |
8
+ | PyPI `[mcp]` extra | [![PyPI MCP downloads](https://img.shields.io/pypi/dm/matrixscroll?label=mcp%20extra)](https://pypi.org/project/matrixscroll/) |
9
+ | GitHub stars | [![GitHub stars](https://img.shields.io/github/stars/SSX360/matrixscroll?style=social)](https://github.com/SSX360/matrixscroll/stargazers) |
10
+ | Scroll Gate Action | [![GitHub Action](https://img.shields.io/github/stars/SSX360/matrixscroll-verify-action?style=social)](https://github.com/SSX360/matrixscroll-verify-action) |
11
+ | Glama MCP registry | [matrixscroll on Glama](https://glama.ai/mcp/servers/SSX360/matrixscroll) |
12
+
13
+ Update this file during GTM reviews; keep badges out of user-facing install docs.
@@ -60,7 +60,7 @@ No single competitor listed above combines all four today.
60
60
  - **CI gate:** Scroll Gate ships in **0.2.3+** — PR commit-range verification via `envelope-verify-range`, git notes transport (`refs/notes/matrixscroll`), and filesystem bundles. [`matrixscroll-verify-action`](https://github.com/SSX360/matrixscroll-verify-action) supports `head-ref`/`base-ref` range mode with agent/human counts.
61
61
  - **Owner/delegation attestation:** Optional `delegation` block in commit envelope schema (**0.2.4+**); see [`delegation-attestation-rfc.md`](delegation-attestation-rfc.md). Alien still leads on OIDC/DPoP owner binding.
62
62
  - **Multi-agent commits:** Multiple actors in one envelope — on the roadmap.
63
- - **Rekor / GUAC export:** Dry-run CLI ships in **0.2.6** (`envelope-publish-rekor`, `envelope-export-guac`); full Rekor upload integration still in progress.
63
+ - **Rekor / GUAC export:** Dry-run CLI ships in **0.3.0** (`envelope-publish-rekor`, `envelope-export-guac`); full Rekor upload integration still in progress.
64
64
  - **Hardware:** SSX360 reference device and Scroll Key retail are **in progress**; L1 emulated key is what you can use now.
65
65
 
66
66
  ## When to use what
@@ -12,7 +12,7 @@ five-minute path from `pip install` to a verifiable commit envelope.
12
12
  ## 1. Install the SDK
13
13
 
14
14
  ```bash
15
- pip install "matrixscroll==0.2.6"
15
+ pip install "matrixscroll==0.3.0"
16
16
  matrixscroll hook-install
17
17
  matrixscroll hook-status
18
18
  ```
@@ -61,7 +61,7 @@ git push origin refs/notes/matrixscroll
61
61
  head-ref: ${{ github.event.pull_request.head.sha }}
62
62
  base-ref: ${{ github.event.pull_request.base.sha }}
63
63
  source: notes
64
- matrixscroll-version: "0.2.6"
64
+ matrixscroll-version: "0.3.0"
65
65
  require-mode: emulated
66
66
  ```
67
67
 
@@ -8,13 +8,13 @@ what ships now before widening the story.
8
8
  ## Baseline on June 21, 2026
9
9
 
10
10
  - GitHub: early public repo, product-first docs, and offline verification
11
- - Current public release target: `matrixscroll==0.2.6`
11
+ - Current public release target: `matrixscroll==0.3.0`
12
12
  - Public trust contract: pure Ed25519 over canonical manifest bytes
13
13
  - Hardware path: SSX360 SE050 reference implementation in progress
14
14
 
15
15
  ## Next 7 days
16
16
 
17
- - cut and publish `0.2.6` without widening the manifest or verify surface
17
+ - cut and publish `0.3.0` without widening the manifest or verify surface
18
18
  - make the GitHub Action a real public proof surface
19
19
  - align site, README, action docs, and PyPI around one install flow
20
20
  - remove broken links and stale release drift from public copy
@@ -0,0 +1,36 @@
1
+ # Matrix Scroll security properties
2
+
3
+ Machine-checkable guarantees for the reference SDK (v0.4.0). Properties marked
4
+ **verified** have Hypothesis property tests in `tests/test_security_properties.py`.
5
+ Formal TLA+ models are on the public roadmap.
6
+
7
+ | ID | Property | Statement | Status |
8
+ | -- | -------- | ----------- | ------ |
9
+ | **P1** | Sign–verify roundtrip | For any canonical manifest bytes, `verify(pub, msg, sign(msg, key))` is true when `pub` derives from the same key material. | **Verified** (Hypothesis) |
10
+ | **P2** | Tamper detection | Changing any signed byte (manifest body or signature octet) causes verification to fail. | **Verified** (Hypothesis) |
11
+ | **P3** | Wrong-key rejection | A signature valid under key A MUST NOT verify under key B's public key. | **Verified** (Hypothesis) |
12
+ | **P4** | Canonical determinism | Identical logical manifests produce identical signing input bytes after canonical JSON encoding (sorted keys, ASCII escapes, no NaN). | **Verified** (unit + vectors) |
13
+ | **P5** | Offline verification | Envelope verification requires no network, hosted API, or hardware ping once the envelope and trusted key set are local. | **Verified** (unit) |
14
+ | **P6** | Algorithm binding | Only Ed25519 (RFC 8032) signatures with `algorithm: "ed25519"` are accepted; other algorithms are rejected. | **Verified** (unit + vectors) |
15
+
16
+ ## Standards alignment
17
+
18
+ - **Ed25519:** [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032) — 32-byte seed, 32-byte public key, 64-byte signature.
19
+ - **Canonical JSON:** Deterministic UTF-8 encoding per [`SPEC.md`](../SPEC.md) §4.
20
+ - **Commit envelopes:** `matrixscroll.commit_envelope.v1` schema in [`schemas/commit-envelope.v1.json`](../schemas/commit-envelope.v1.json).
21
+
22
+ ## Trust modes (honest scope)
23
+
24
+ | Mode | Private key location | Shipping status |
25
+ | ---- | -------------------- | --------------- |
26
+ | **Emulated** | Owner-only file (`~/.matrixscroll/device.json`, mode 0600) | **Shipping today** |
27
+ | **Hardware (SE050)** | NXP secure element on AP2 Vault Card pilot | **Pilot / preview** — same verifier contract, key not exportable from chip |
28
+
29
+ ## Roadmap (not claimed today)
30
+
31
+ - TLA+ specification of Scroll Gate merge semantics
32
+ - Third-party cryptographic audit and public threat model
33
+ - npm `@ssx360/verify` browser/Node verifier package
34
+ - IETF informational draft for commit-envelope wire format
35
+
36
+ See [`SECURITY.md`](../SECURITY.md) for vulnerability reporting.
@@ -71,7 +71,7 @@ Full wire format: [`SPEC.md`](../SPEC.md). Schema: [`schemas/commit-envelope.v1.
71
71
  ### 1. Install
72
72
 
73
73
  ```bash
74
- pip install "matrixscroll==0.2.6"
74
+ pip install "matrixscroll==0.3.0"
75
75
  matrixscroll hook-install
76
76
  matrixscroll hook-status
77
77
  ```
@@ -87,7 +87,7 @@ matrixscroll envelope-verify "$(git rev-parse HEAD)"
87
87
 
88
88
  Hooks default to **warn mode**; set `"enforce": true` in `.git/matrixscroll/config.json` to block commits when signing fails. See [`docs/quickstart-git.md`](quickstart-git.md).
89
89
 
90
- **Windows:** support landed in matrixscroll **0.2.1**; pin **0.2.6** or newer in pilot environments.
90
+ **Windows:** support landed in matrixscroll **0.2.1**; pin **0.3.0** or newer in pilot environments.
91
91
 
92
92
  ### 3. CI gate
93
93
 
@@ -95,12 +95,12 @@ Hooks default to **warn mode**; set `"enforce": true` in `.git/matrixscroll/conf
95
95
  - uses: SSX360/matrixscroll-verify-action@v1
96
96
  with:
97
97
  manifest: path/to/signed-manifest.json
98
- matrixscroll-version: "0.2.6"
98
+ matrixscroll-version: "0.3.0"
99
99
  require-mode: emulated
100
100
  trusted-keys: trusted-keys.json
101
101
  ```
102
102
 
103
- Policy flags (`--require-mode`, `--trusted-keys`) are available in the `0.2.x` line; this whitepaper pins `0.2.6` for copy-and-paste examples.
103
+ Policy flags (`--require-mode`, `--trusted-keys`) are available in the `0.2.x` line; this whitepaper pins `0.3.0` for copy-and-paste examples.
104
104
 
105
105
  ### 4. Optional scope manifest
106
106