Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),

Not all v0.1.0-pre history is versioned separately; early drafting work was compressed into a single prerelease entry below. Subsequent releases are tracked individually.

## [Unreleased]
## [0.1.3] - 2026-07-25

Adopter-conformance release. Brings PubLedge to Obligation-First Level 2 by publishing the naming profile the spec has required since obligation-first 0.4.0, and picks up the Colorado ADMT obligation work.

### Added

- **Obligation-First naming profile** at `/.well-known/obligation-first-naming-profile.jsonld`, with the tamper-evidence sidecar at `/.well-known/obligation-first-naming-profile-manifest.txt`. EveryAILaw and AI Incident Law have published one since obligation-first 0.4.0; PubLedge had not, despite being the adopter whose `@id` grammar diverges most from the spec's opacity guidance, so there was nothing to check that divergence against. Generated in `build-extras.js` rather than hand-placed, because `docs/` is build output. Declarations are descriptive: each `void:uriRegexPattern` is verified against all 112 published records, and `crosswalks` states what each entity type actually supplies (Obligation and Determination supply none today). Proceeding and Allegation are absent because PubLedge mints neither.
- **`npm run check:of`** asserts the obligation-first checkout in use satisfies the profile's declared range, delegating to the spec's shared `check-adopter-of-version.mjs` so the rule is not reimplemented here. The profile declares `obligation-first >=0.4.0 <0.6.0`: PubLedge publishes no `ObligationCategory` records, so it has no reason to floor at 0.5.0 and rides that additive release unchanged.

- Six Colorado ADMT obligation records extracted from SB 26-189 (C.R.S. §§6-1-1702 through 6-1-1706) and mapped to the statute: developer documentation to deployer, pre-decision consumer notice, 30-day post-adverse explanation, data correction and human review, three-year record retention, and the 60-day cure period. Registry obligations 26 → 32; mappings 14 → 15.

### Changed

- `RELEASE_NOTES-v0.1.2.md` renamed to `RELEASE_NOTES-v0.1.3.md`; version strings synced across `package.json`, `server.json`, `MANIFEST.yaml`, `PROTOCOL.md`, `README.md`, `PROJECT_CONTEXT.md`, and the generated site footer. The npm publish and MCP registry update for `0.1.3` are a separate manual step and have not been performed.
- Dropped the pre-release suffix from the protocol version: the spec is now `v0.1.2`, aligned with the stable MCP/npm package version. `RELEASE_NOTES-v0.1.2-pre.md` renamed to `RELEASE_NOTES-v0.1.2.md`.
- Removed SB 26-189 from `verification.allowed_unmapped_instruments`; it is the operative Colorado statute, not a relationship-only chain member. The allowlist now states its admission rule and a per-entry reason, and `eval-verification-allowlist` asserts that operative instruments stay out of it.
- Recorded the 2026-05 Colorado ingestion, the 2026-06/07 authority-response and release work, and this session in `ROADMAP.md`; corrected the registry totals attributed to the 2026-04-21 session.
Expand Down
27 changes: 16 additions & 11 deletions MANIFEST.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
# - Workshop scratchpad (_workshop/)

bundle: publedge
bundle_version: 0.1.2
bundle_version: 0.1.3
bundle_date: 2026-07-21
description: >
PubLedge open recordkeeping protocol for fact-specific written
Expand Down Expand Up @@ -118,12 +118,12 @@ files:

- path: server.json
role: config
hash: sha256:3698c909e95ffbbb70241d1e95a82cfb0564b798d6839c84323b4a3501fcbd60
hash: sha256:4cddf89b7f62d1bf3b465f12a5d35e9ca41738ef9cfbd75fb1437d7d56fdf2f0
note: server.json

- path: package.json
role: config
hash: sha256:b302af89e1876a34c59977b527f42eeec0aadfb444344f50598136af120dab1d
hash: sha256:2de16f11d7c171453132f2d663468c2e28b7d9ca225df8c607d7e51c3394b71b
note: package.json

- path: package-lock.json
Expand Down Expand Up @@ -413,7 +413,7 @@ files:

- path: CHANGELOG.md
role: protocol
hash: sha256:4b972451b32637635736f51d62c50d659e36f0c44a53455ad9e57980f21893c9
hash: sha256:6b30dd414bbe1a360c42384e31c472dcc6b04b1a1f67560ee0f68734c5acb2ff
note: CHANGELOG.md

- path: CONTRIBUTING.md
Expand All @@ -433,18 +433,18 @@ files:

- path: PROTOCOL.md
role: protocol
hash: sha256:6105fb39fbf1a223a3d4a91b7c356086d4b9ee100da4aeaf1edbf042886e6330
hash: sha256:f36278b7f6be632363f5ea2610bc126759d5cd4529af8475cbe39fda1cce9147
note: PROTOCOL.md

- path: README.md
role: protocol
hash: sha256:c2aff68749ef52c4ba9358014d6129633ed6b5735aa8a070ed577de845b538c6
hash: sha256:c3cf9aacf2e15d527e3707f69053f7e8bf052a0710ef444ba7958225e2070e29
note: README.md

- path: RELEASE_NOTES-v0.1.2.md
- path: RELEASE_NOTES-v0.1.3.md
role: release-notes
hash: sha256:33a24fae7e95d96e7bdc8b88c63aebcf86290ea224e9e9498417506a06b07920
note: RELEASE_NOTES-v0.1.2.md
note: RELEASE_NOTES-v0.1.3.md

- path: ROADMAP.md
role: protocol
Expand Down Expand Up @@ -518,7 +518,7 @@ files:

- path: scripts/build-extras.js
role: tooling
hash: sha256:dbdc8f24ab7aa0ff3c6a58bcff6f78506dca066b8569feb21273db00e509ace7
hash: sha256:0616e941907cf6fd8d63a6a4a0abd4e88904fd56a876e74af0a8514ed2fed26c
note: scripts/build-extras.js

- path: scripts/build.js
Expand All @@ -531,6 +531,11 @@ files:
hash: sha256:62d2f15099cf1c010af987cdb115737120f60a6acfb918ed08017b4486168860
note: scripts/check-links.js

- path: scripts/check-of-version.js
role: tooling
hash: sha256:050ecafec52063c2aa7bf9995492f6d37a066cece15400b1b4586288a3d16a7d
note: scripts/check-of-version.js

- path: scripts/eval-authority-response.js
role: tooling
hash: sha256:37f06d0c545ad3b1b49504ff67647debb66c6dafecf68143a4685d07cca0054d
Expand Down Expand Up @@ -583,7 +588,7 @@ files:

- path: scripts/eval-manifest-scope.js
role: tooling
hash: sha256:1c1d77bd09c1757a0e4fa4f3f92a9af3e500d3960f584ee35f9f1baae5609494
hash: sha256:aa159569beddc01d6125226c809bbb556afbfc326c5644460ead68954a12dde6
note: scripts/eval-manifest-scope.js

- path: scripts/eval-mcp-contract.js
Expand Down Expand Up @@ -723,7 +728,7 @@ files:

- path: PROJECT_CONTEXT.md
role: agent-guidance
hash: sha256:2a65d9036f9458e8c59b74decbdb010746975770c15e137eeb5d057d16089697
hash: sha256:aa18f4b6ca18716d75726f8b9b45437bddc03edde42037c17dcddf95916ea1f8
note: PROJECT_CONTEXT.md

- path: about/index.html
Expand Down
2 changes: 1 addition & 1 deletion PROJECT_CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ registry through structured endpoints and the MCP server.

## Current status (2026-07)

Public and maintained. Spec at `v0.1.2`; MCP server published stable (npm +
Public and maintained. Spec at `v0.1.3`; MCP server published stable (npm +
Official MCP Registry). PubLedge is the thin recordkeeping convention of the
PAICE legal graph. Standalone product expansion is parked pending a concrete
legal-graph, regulator, court, civic-body, or adopter demand signal. See
Expand Down
4 changes: 2 additions & 2 deletions PROTOCOL.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
"@type": "https://w3id.org/semanticarts/ns/ontology/gist/Specification"
title: "PubLedge Protocol"
version: "0.1.2"
version: "0.1.3"
license: "CC-BY-4.0"
created: 2026-04-18
modified: 2026-04-18
modified: 2026-07-25
---

# PubLedge Protocol
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# PubLedge

[![CI](https://github.com/snapsynapse/publedge/actions/workflows/build.yml/badge.svg)](https://github.com/snapsynapse/publedge/actions/workflows/build.yml)
[![Spec](https://img.shields.io/badge/spec-v0.1.2-blue)](PROTOCOL.md)
[![Spec](https://img.shields.io/badge/spec-v0.1.3-blue)](PROTOCOL.md)
[![Registry](https://img.shields.io/badge/registry-18%20instruments%20%C2%B7%2032%20obligations%20%C2%B7%208%20authorities-informational)](data/examples/instruments/)
[![Content license: CC BY 4.0](https://img.shields.io/badge/content-CC%20BY%204.0-lightgrey)](LICENSE-CC-BY-4.0)
[![Code license: Apache 2.0](https://img.shields.io/badge/code-Apache%202.0-lightgrey)](LICENSE-APACHE)
Expand All @@ -11,7 +11,7 @@ Open recordkeeping protocol for fact-specific written interpretations between tw

Plain markdown with structured frontmatter. SHA-256 manifest checks provide source-to-manifest consistency. Bound to the [Semantic Arts gist](https://semanticarts.com/gist/) upper ontology so records from different authorities can be queried together.

**Public and maintained. Protocol specification v0.1.2; stable MCP server v0.1.2. Standalone product expansion is parked pending a concrete legal-graph or adopter demand signal.**
**Public and maintained. Protocol specification v0.1.3; stable MCP server v0.1.3. Standalone product expansion is parked pending a concrete legal-graph or adopter demand signal.**

## Who this is for

Expand Down
File renamed without changes.
8 changes: 8 additions & 0 deletions docs/.well-known/obligation-first-naming-profile-manifest.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
profile-path: /.well-known/obligation-first-naming-profile.jsonld
profile-version: 1.0.0
profile-sha256: 5cc51c60365b0cdd2d4af01b3f042693f9ac0dc9df3c0738679e13a5f77d43b8
profile-bytes: 1599
adopter: https://publedge.org/
spec: obligation-first
spec-version-range: >=0.4.0, <0.6.0
canonical-url: https://publedge.org/.well-known/obligation-first-naming-profile.jsonld
45 changes: 45 additions & 0 deletions docs/.well-known/obligation-first-naming-profile.jsonld
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"@context": "https://obligationfirst.org/v1/",
"@type": "of:NamingProfile",
"profileVersion": "1.0.0",
"appliesTo": "obligation-first >=0.4.0 <0.6.0",
"adopter": "https://publedge.org/",
"entities": {
"Authority": {
"void:uriSpace": "https://publedge.org/authority/",
"void:uriRegexPattern": "^https://publedge\\.org/authority/[a-z0-9-]+\\.json$",
"uriTemplate": "https://publedge.org/authority/{slug}.json",
"crosswalks": [
"sameAs"
]
},
"Instrument": {
"void:uriSpace": "https://publedge.org/instrument/",
"void:uriRegexPattern": "^https://publedge\\.org/instrument/[a-z0-9-]+\\.json$",
"uriTemplate": "https://publedge.org/instrument/{slug}.json",
"crosswalks": [
"citation"
]
},
"Term": {
"void:uriSpace": "https://publedge.org/term/",
"void:uriRegexPattern": "^https://publedge\\.org/term/[a-z0-9-]+\\.json$",
"uriTemplate": "https://publedge.org/term/{slug}.json",
"crosswalks": [
"section"
]
},
"Obligation": {
"void:uriSpace": "https://publedge.org/obligation/",
"void:uriRegexPattern": "^https://publedge\\.org/obligation/[a-z0-9-]+\\.json$",
"uriTemplate": "https://publedge.org/obligation/{slug}.json",
"crosswalks": []
},
"Determination": {
"void:uriSpace": "https://publedge.org/determination/",
"void:uriRegexPattern": "^https://publedge\\.org/determination/[a-z0-9-]+\\.json$",
"uriTemplate": "https://publedge.org/determination/{slug}.json",
"crosswalks": []
}
}
}
2 changes: 1 addition & 1 deletion docs/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ <h1 style="margin-top:2rem;">404 — Page Not Found</h1>
</nav>
<footer class="site-footer">
<p class="footer-meta">&copy; 2026 <a href="https://paice.foundation">PAICE.work PBC</a> · <a href="reference/disclaimer/">Not legal advice</a> · <a href="MANIFEST.yaml">MANIFEST.yaml</a> · <a href="https://github.com/snapsynapse/publedge">GitHub</a></p>
<p class="footer-built">PubLedge v0.1.2</p>
<p class="footer-built">PubLedge v0.1.3</p>
</footer>
<script>
function toggleTheme() {
Expand Down
27 changes: 16 additions & 11 deletions docs/MANIFEST.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
# - Workshop scratchpad (_workshop/)

bundle: publedge
bundle_version: 0.1.2
bundle_version: 0.1.3
bundle_date: 2026-07-21
description: >
PubLedge open recordkeeping protocol for fact-specific written
Expand Down Expand Up @@ -118,12 +118,12 @@ files:

- path: server.json
role: config
hash: sha256:3698c909e95ffbbb70241d1e95a82cfb0564b798d6839c84323b4a3501fcbd60
hash: sha256:4cddf89b7f62d1bf3b465f12a5d35e9ca41738ef9cfbd75fb1437d7d56fdf2f0
note: server.json

- path: package.json
role: config
hash: sha256:b302af89e1876a34c59977b527f42eeec0aadfb444344f50598136af120dab1d
hash: sha256:2de16f11d7c171453132f2d663468c2e28b7d9ca225df8c607d7e51c3394b71b
note: package.json

- path: package-lock.json
Expand Down Expand Up @@ -413,7 +413,7 @@ files:

- path: CHANGELOG.md
role: protocol
hash: sha256:4b972451b32637635736f51d62c50d659e36f0c44a53455ad9e57980f21893c9
hash: sha256:6b30dd414bbe1a360c42384e31c472dcc6b04b1a1f67560ee0f68734c5acb2ff
note: CHANGELOG.md

- path: CONTRIBUTING.md
Expand All @@ -433,18 +433,18 @@ files:

- path: PROTOCOL.md
role: protocol
hash: sha256:6105fb39fbf1a223a3d4a91b7c356086d4b9ee100da4aeaf1edbf042886e6330
hash: sha256:f36278b7f6be632363f5ea2610bc126759d5cd4529af8475cbe39fda1cce9147
note: PROTOCOL.md

- path: README.md
role: protocol
hash: sha256:c2aff68749ef52c4ba9358014d6129633ed6b5735aa8a070ed577de845b538c6
hash: sha256:c3cf9aacf2e15d527e3707f69053f7e8bf052a0710ef444ba7958225e2070e29
note: README.md

- path: RELEASE_NOTES-v0.1.2.md
- path: RELEASE_NOTES-v0.1.3.md
role: release-notes
hash: sha256:33a24fae7e95d96e7bdc8b88c63aebcf86290ea224e9e9498417506a06b07920
note: RELEASE_NOTES-v0.1.2.md
note: RELEASE_NOTES-v0.1.3.md

- path: ROADMAP.md
role: protocol
Expand Down Expand Up @@ -518,7 +518,7 @@ files:

- path: scripts/build-extras.js
role: tooling
hash: sha256:dbdc8f24ab7aa0ff3c6a58bcff6f78506dca066b8569feb21273db00e509ace7
hash: sha256:0616e941907cf6fd8d63a6a4a0abd4e88904fd56a876e74af0a8514ed2fed26c
note: scripts/build-extras.js

- path: scripts/build.js
Expand All @@ -531,6 +531,11 @@ files:
hash: sha256:62d2f15099cf1c010af987cdb115737120f60a6acfb918ed08017b4486168860
note: scripts/check-links.js

- path: scripts/check-of-version.js
role: tooling
hash: sha256:050ecafec52063c2aa7bf9995492f6d37a066cece15400b1b4586288a3d16a7d
note: scripts/check-of-version.js

- path: scripts/eval-authority-response.js
role: tooling
hash: sha256:37f06d0c545ad3b1b49504ff67647debb66c6dafecf68143a4685d07cca0054d
Expand Down Expand Up @@ -583,7 +588,7 @@ files:

- path: scripts/eval-manifest-scope.js
role: tooling
hash: sha256:1c1d77bd09c1757a0e4fa4f3f92a9af3e500d3960f584ee35f9f1baae5609494
hash: sha256:aa159569beddc01d6125226c809bbb556afbfc326c5644460ead68954a12dde6
note: scripts/eval-manifest-scope.js

- path: scripts/eval-mcp-contract.js
Expand Down Expand Up @@ -723,7 +728,7 @@ files:

- path: PROJECT_CONTEXT.md
role: agent-guidance
hash: sha256:2a65d9036f9458e8c59b74decbdb010746975770c15e137eeb5d057d16089697
hash: sha256:aa18f4b6ca18716d75726f8b9b45437bddc03edde42037c17dcddf95916ea1f8
note: PROJECT_CONTEXT.md

- path: about/index.html
Expand Down
4 changes: 2 additions & 2 deletions docs/PROTOCOL.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
"@type": "https://w3id.org/semanticarts/ns/ontology/gist/Specification"
title: "PubLedge Protocol"
version: "0.1.2"
version: "0.1.3"
license: "CC-BY-4.0"
created: 2026-04-18
modified: 2026-04-18
modified: 2026-07-25
---

# PubLedge Protocol
Expand Down
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# PubLedge

[![CI](https://github.com/snapsynapse/publedge/actions/workflows/build.yml/badge.svg)](https://github.com/snapsynapse/publedge/actions/workflows/build.yml)
[![Spec](https://img.shields.io/badge/spec-v0.1.2-blue)](PROTOCOL.md)
[![Spec](https://img.shields.io/badge/spec-v0.1.3-blue)](PROTOCOL.md)
[![Registry](https://img.shields.io/badge/registry-18%20instruments%20%C2%B7%2032%20obligations%20%C2%B7%208%20authorities-informational)](data/examples/instruments/)
[![Content license: CC BY 4.0](https://img.shields.io/badge/content-CC%20BY%204.0-lightgrey)](LICENSE-CC-BY-4.0)
[![Code license: Apache 2.0](https://img.shields.io/badge/code-Apache%202.0-lightgrey)](LICENSE-APACHE)
Expand All @@ -11,7 +11,7 @@ Open recordkeeping protocol for fact-specific written interpretations between tw

Plain markdown with structured frontmatter. SHA-256 manifest checks provide source-to-manifest consistency. Bound to the [Semantic Arts gist](https://semanticarts.com/gist/) upper ontology so records from different authorities can be queried together.

**Public and maintained. Protocol specification v0.1.2; stable MCP server v0.1.2. Standalone product expansion is parked pending a concrete legal-graph or adopter demand signal.**
**Public and maintained. Protocol specification v0.1.3; stable MCP server v0.1.3. Standalone product expansion is parked pending a concrete legal-graph or adopter demand signal.**

## Who this is for

Expand Down
2 changes: 1 addition & 1 deletion docs/about/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ <h2>See also</h2>
</nav>
<footer class="site-footer">
<p class="footer-meta">&copy; 2026 <a href="https://paice.foundation">PAICE.work PBC</a> · <a href="../reference/disclaimer/">Not legal advice</a> · <a href="../MANIFEST.yaml">MANIFEST.yaml</a> · <a href="https://github.com/snapsynapse/publedge">GitHub</a></p>
<p class="footer-built">PubLedge v0.1.2</p>
<p class="footer-built">PubLedge v0.1.3</p>
</footer>
</body>
</html>
2 changes: 1 addition & 1 deletion docs/api/v1/authorities.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"meta": {
"generated": "2026-07-25T03:22:59.387Z",
"generated": "2026-07-25T20:43:24.252Z",
"count": 8
},
"items": [
Expand Down
2 changes: 1 addition & 1 deletion docs/api/v1/comparisons.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"meta": {
"generated": "2026-07-25T03:22:59.387Z"
"generated": "2026-07-25T20:43:24.253Z"
},
"comparisons": [
{
Expand Down
2 changes: 1 addition & 1 deletion docs/api/v1/containers.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"meta": {
"generated": "2026-07-25T03:22:59.387Z",
"generated": "2026-07-25T20:43:24.252Z",
"count": 18
},
"items": [
Expand Down
2 changes: 1 addition & 1 deletion docs/api/v1/index.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"meta": {
"generated": "2026-07-25T03:22:59.418Z",
"generated": "2026-07-25T20:43:24.283Z",
"version": "1.0",
"project": "publedge"
},
Expand Down
2 changes: 1 addition & 1 deletion docs/api/v1/mappings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"meta": {
"generated": "2026-07-25T03:22:59.387Z",
"generated": "2026-07-25T20:43:24.252Z",
"count": 15
},
"items": [
Expand Down
Loading
Loading