Open recordkeeping protocol for fact-specific written interpretations between two parties: JIAs, RMAs, no-action letters, private letter rulings, advisory opinions. Drafting in public.
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !Licence file present but not machine-readable
- !Install pipes a remote script into a shell (curl | sh)
git clone https://github.com/snapsynapse/publedge{
"mcpServers": {
"publedge": {
"command": "node",
"args": ["/path/to/publedge/dist/index.js"]
}
}
}Resumen de MCP Servers
# PubLedge
[](https://github.com/snapsynapse/publedge/actions/workflows/build.yml)
[](PROTOCOL.md)
[](data/examples/instruments/)
[](LICENSE-CC-BY-4.0)
[](LICENSE-APACHE)
[](https://semanticarts.com/gist/)
Open recordkeeping protocol for fact-specific written interpretations between two parties — Joint Interpretation Agreements (JIAs), Regulatory Mitigation Agreements (RMAs), no-action letters, private letter rulings, advisory opinions, and analogous civic instruments (HOA decision logs, co-op governance records, flying-club asset agreements, and the like).
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. Package v0.2.5; protocol specification v0.2.0. The MCP server supports the MCP 2026-07-28 stateless core plus the legacy 2024-11-05 handshake. Current npm, MCP Registry, GitHub tag, and GitHub Release observations are recorded in the [publication state](https://publedge.org/design/publication-state.json). Standalone product expansion is parked pending a concrete legal-graph or adopter demand signal.**
## Who this is for
Regulators, regulated parties, and civic bodies that issue or rely on fact-specific written interpretations and need them recorded in a portable, queryable form.
## What problem it solves
Fact-specific interpretations (no-action letters, private rulings, JIAs, HOA decisions) live in scattered, unstructured records that can't be compared across authorities. PubLedge is an open protocol that records them as manifest-checked markdown bound to a shared ontology.
## Canonical URL
https://publedge.org/
## Part of the PAICE legal graph
PubLedge is one component of the PAICE legal graph (with EveryAILaw, AI Incident Law, and Obligation First). It is intentionally open: code under Apache 2.0, protocol and content under CC BY 4.0, commercial use permitted with attribution. The open siblings are funded by EveryAILaw Pro, the graph's single restricted layer; openness here is a deliberate PBC-charter choice. The canonical model is in the PAICE Foundation INTENT.
## What this repo is
Three things in one place:
1. **The protocol** — the [PROTOCOL.md](PROTOCOL.md) specification and the [PRIOR-ART.md](PRIOR-ART.md) survey that motivates it.
2. **Utah-shaped reference content** — 5 JIA/RMA templates anchored to Utah's AI Policy Act (Utah Code §13-72a) and GenAI safe-harbor (§13-75-104), plus 18 demonstration instruments under `data/examples/instruments/` spanning 8 authorities (Utah OAIP, Utah Legislature, Colorado Legislature, SEC, CFPB, IRS Chief Counsel, IRS TEGE, CFTC) and 7 instrument types (JIA, RMA, no-action letter, advisory opinion, private letter ruling, interpretive letter, statute). 35 first-class obligation records under `data/examples/obligations/` are mapped to the instruments via `data/examples/mapping/index.yml`; legal lifecycle is tracked separately from editorial maturity.
3. **The published site** — rendered HTML under `docs/`, served by GitHub Pages from `main /docs`. Regenerate with `node scripts/build.js && node scripts/build-extras.js` before committing; CI fails if `docs/` drifts from sources.
## Maintenance scope
Weekly checks flag overdue records and temporal inconsistencies for human review. A separate manual pilot observes three selected official sources and retains inaccessible sources and unresolved findings. It does not renew verification dates, legal statuses, or the wider corpus. Independent missing-run monitoring and recovery email acceptance remain open. See [the maintenance pilot](ops/MAINTENANCE-PILOT.md) for dated evidence and review boundaries.
## Machine-readable endpoints
Every record and index is published in parallel HTML + structured form so agents can walk the registry without scraping:
| Surface | Shape |
|---|---|
| `/` | `WebSite` + `Organization` + `DataCatalog` JSON-LD (`@graph`); links to every dataset distribution |
| `/us/{jurisdiction}/{authority}/{type}/{instance}/` | Canonical hierarchical URL per record; inline `Schema.org` `LegalDocument` JSON-LD; PDF + OCR text co-located |
| `/us/{jurisdiction}/{authority}/{type}/{instance}/record.json` | Same record as JSON; shape validated by `/schema/json/record.schema.json`; includes `authority_response` annotations when present |
| `/instruments.html`, `/obligations.html`, `/authorities.html` | `ItemList` JSON-LD; human-readable filter + sort |
| `/matrix.html` | `Dataset` JSON-LD + coverage matrix; `DataDownload` distribution at `/api/v1/matrix.json` |
| `/definitions/` | `DefinedTermSet` with instrument types + statuses as `DefinedTerm`s |
| `/api/v1/*.json` | Machine manifests: containers, primaries, authorities, mappings, matrix, upcoming, recently-changed |
| `/api/v1/of/*.json` | Obligation-First binding records for authorities, instruments, terms, obligations, and administrative issuance determinations |
| `/calendar.ics` | Enforcement calendar (iCal) |
| `/feed.xml`, `/atom.xml`, `/feed.json` | RSS 2.0, Atom 1.0, JSON Feed 1.1 |
| `/sitemap.xml` | Sitemap index → per-section sitemaps (`records`, `authorities`, `statutes`, `reference`, `templates`, `bridges`, `meta`) |
| `/llms.txt`, `/agents.json` | Agent-discovery briefing + capabilities |
| `/.well-known/mcp.json` | Installable MCP server discovery; its exact package identity and provider observations are recorded in the [publication state](https://publedge.org/design/publication-state.json) |
| `/robots.txt` | Explicit allow for 17 AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Applebot-Extended, etc.) |
| `mcp-server.js` | MCP server exposing 13 read-only tools: `list_<legal-instruments>` (with jurisdiction/authority/type/status filters), `get_<legal-instrument>`, `list_obligations`, `get_obligation`, `list_authorities`, `get_authority`, `search`, `search_obligations`, `get_matrix`, `get_mappings`, `fetch_by_url`, `get_upcoming`, `get_recently_changed` |
## What this repo is not
- Not a regulator. PubLedge does not issue rulings.
- Not a law firm. Templates here are prior art, not legal advice.
- Not a CMS. Editors edit markdown in git.
- Not a blockchain. The integrity layer is plain SHA-256 over plain files.
## Quickstart
```bash
git clone https://github.com/snapsynapse/publedge.git
cd publedge
./scripts/validate-hashes.sh # verify integrity
node scripts/validate.js # cross-reference checks
node scripts/build.js # regenerate docs/ entity pages + API
node scripts/build-extras.js # copy reference HTML, feeds, discovery files
```
To validate the Obligation-First binding, check out `snapsynapse/obligation-first` beside this repo or set `OBLIGATION_FIRST_DIR`, then run `npm run validate:of`.
After intentional content edits, refresh hashes:
```bash
./scripts/validate-hashes.sh --update
```
CI runs all of the above, plus a pa11y-ci WCAG 2.1 AA pass across every URL in the sitemap, on every push and pull request.
## Use PubLedge in five minutes
Choose the surface that matches the job:
1. Browse the [instrument registry](https://publedge.org/instruments.html) or open a canonical record such as the [SEC CorpFin no-action letter](https://publedge.org/us/federal/sec-corpfin/nal/2025-001/).
2. Query an index without scraping HTML:
```bash
curl -sS https://publedge.org/api/v1/containers.json | jq '.[0]'
```
3. Fetch a record-shaped JSON representation by appending `record.json` to its canonical record URL:
```bash
curl -sS https://publedge.org/us/federal/sec-corpfin/nal/2025-001/record.json | jq '.id, .status'
```
4. Check the [publication state](https://publedge.org/design/publication-state.json) for a provider-verified npm version, then add that package version to any stdio-capable client. The example below is for this package version:
```json
{
"mcpServers": {
"publedge": {
"command": "npx",
"args": ["-y", "publedge@0.2.5"]
}
}
}
```
5. Use `search` to discover records and `fetch_by_url` when you already have a canonical PubLedge URL. The package exposes the 13 tools listed above. The complete endpoint and capability inventories are at [api/v1/index.json](https://publedge.org/api/v1/index.json), [agents.json](https://publedge.org/agents.json), and [the source-controlled publication state](https://publedge.org/design/publication-state.json).
Canonical markdown under `data/examples/` is the maintained source. Published HTML, API indexes, and each `record.json` are generated representations and should not be edited directly. Repository checkout instructions operate source code; they are not an install claim. Use the canonical publication state to select a provider-verified package.
## Repository layout
| Path | Purpose |
|---|---|
| `PROTOCOL.md` | The PubLedge specification |
| `INTENT.md` | Authoritative repository disposition, active work, and revisit triggers |
| `PRIOR-ART.md` | Survey of analogous instrument programs |
| `DEFINITIONS.md` | Canonical vocabulary (status values, instrument types, obligation kinds) |
| `MANIFEST.yaml` | SHA-256 hashes for every canonical file |
| `_templates/jia/`, `_templates/rma/` | Fill-in templates with `{{variable}}` placeholders |
| `data/examples/instruments/` | 18 demonstration instruments; filename = stable id (e.g. `us-ut-oaip-rma-2025-001.md`) |
| `data/examples/Lo que la gente pregunta sobre publedge
¿Qué es snapsynapse/publedge?
+
snapsynapse/publedge es mcp servers para el ecosistema de Claude AI. Open recordkeeping protocol for fact-specific written interpretations between two parties: JIAs, RMAs, no-action letters, private letter rulings, advisory opinions. Drafting in public. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-09-12.
¿Cómo se instala publedge?
+
Puedes instalar publedge clonando el repositorio (https://github.com/snapsynapse/publedge) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar snapsynapse/publedge?
+
Nuestro agente de seguridad ha analizado snapsynapse/publedge y le ha asignado un Trust Score de 72/100 (tier: OK). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene snapsynapse/publedge?
+
snapsynapse/publedge es mantenido por snapsynapse. La última actividad registrada en GitHub es del 2026-09-12, con 1 issues abiertos.
¿Hay alternativas a publedge?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega publedge en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/snapsynapse-publedge)<a href="https://claudewave.com/repo/snapsynapse-publedge"><img src="https://claudewave.com/api/badge/snapsynapse-publedge" alt="Featured on ClaudeWave: snapsynapse/publedge" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
The fastest path to AI-powered full stack observability, even for lean teams.