Skip to content

Serve the DPP steel content specification as a reference example at /examples/ - #131

Merged
stiebitzhofer merged 2 commits into
mainfrom
feat/examples-content-spec
Oct 2, 2026
Merged

stiebitzhofer merged 2 commits into
mainfrom
feat/examples-content-spec

Conversation

@stiebitzhofer

Copy link
Copy Markdown
Member

Closes #130

Not a dictionary request: nothing under published/ changes, so the two-yes gate does not apply.

What

  • examples/content-specifications/dpp-steel-v0.0.2.lock.json: a byte-identical copy of material-identity/schema dpp/v0.0.2/specifications/steel.lock.json at 89be4d77a2692af09e51daecd7558d3bd327a411. It is pre-publication, from material-identity/schema#380, which is not merged yet. SHA-256 b94be652ae86178d1d371a9df5d1bfc3cba3b86afcd1b8f8aa257ef4ac021a3f. It pins dictionary release v2026.10.01.
  • examples/README.md covers what a content specification is (layer 1), its provenance, how the memberships use the dictionary (dictionaryReference, objectType, isMandatory, accessCategory, granularity, condition) and its licence. The file keeps CC-BY-4.0; the dictionary's CC0 does not cover it.
  • Build: examples/ is copied into site/examples/ unchanged, the same way .well-known is (Serve the security contact's PGP key at /.well-known/pgp-security.asc #107). A derived /examples/ page reads everything from the file itself: the specification id, the release, the licence from its SPDX tag, the SHA-256 of the served bytes, and every membership with its entry label resolved. No scripts.
  • Worker: /examples/*.json is served as application/json; charset=utf-8 with a 5-minute cache, never immutable.
  • test/examples.test.ts: every dictionaryReference in examples/content-specifications/*.json must resolve to published/<uuid>.yaml. All 54 distinct references in the steel spec resolve today.
  • Links from the footer, /about, the README "What the site serves" table and CLAUDE.md.

Served at

Verification

npm run validate -- --base origin/main OK. npm test: 87/87 pass, 97.29% line coverage. In npm run build, site/examples/ holds index.html, README.md and the lock, and the lock is byte-identical to its source (cmp).

🤖 Generated with Claude Code

…examples/

A new top-level examples/ directory, outside published/: the example is
not an entry, so the add-only tree and the two-yes gate do not apply.
examples/content-specifications/dpp-steel-v0.0.2.lock.json is a
byte-identical copy of material-identity/schema
dpp/v0.0.2/specifications/steel.lock.json at 89be4d7 (pre-publication,
PR material-identity/schema#380), SHA-256 b94be652...a021a3f. It keeps
its own licence, CC-BY-4.0.

- build copies examples/ into site/examples/ unchanged (like
  .well-known) and renders /examples/ from the files: specification id,
  pinned release, licence from the SPDX tag, SHA-256 and every membership
- Worker types /examples/*.json as application/json with a short cache
- test/examples.test.ts fails if any dictionaryReference does not
  resolve to published/<uuid>.yaml
- footer and /about link to /examples/

Refs #130

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stiebitzhofer stiebitzhofer added the type:enhancement Improvement of an existing capability label Oct 2, 2026
material-identity/schema#380 merged as eb99ea2; the lock on schema main
is byte-identical to the copy here (SHA-256 unchanged).

Refs #130

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stiebitzhofer
stiebitzhofer merged commit ab587ec into main Oct 2, 2026
1 check passed
@stiebitzhofer
stiebitzhofer deleted the feat/examples-content-spec branch October 2, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:enhancement Improvement of an existing capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Serve a content specification as a reference example at /examples/

1 participant