Add versioned document conformance profiles and fixtures #63

Merged
lost-rob0t merged 24 commits from agent/issue-11-document-conformance into agent/schema-org-v0.9 2026-07-26 13:45:13 +00:00
lost-rob0t commented 2026-07-26 13:02:38 +00:00 (Migrated from github.com)

Summary

  • make StarIntel v0.9.0 the sole read/write contract
  • retain v0.8.0 as a read/index-only schema profile
  • implement schema selection with CLOS strategy objects and a version registry
  • derive legacy flat-field to v0.9 data mappings from active document classes through closer-mop
  • preserve source schema identity in v0.8 index projections instead of silently rewriting stored documents
  • add a language-neutral fixture corpus covering all 49 v0.9 dtypes, v0.8 index cases, malformed documents, CouchDB revisions, and null/false/empty-array/empty-string/nested-object distinctions
  • add Python corpus validation and executable Common Lisp encode/decode plus MOP adapter tests
  • make the conformance Docker stage a required CI job

Design

This uses Strategy + Registry + Anti-Corruption Adapter:

  • v09-schema-profile: canonical read/write behavior
  • v08-schema-profile: legacy read/index projection only
  • MOP inspection derives key mappings such as isReply → is_reply from CLOS slot definitions
  • v0.8 projections retain schema_version: 0.8.0 and declare extensions.index_schema_version: 0.9.0
  • write admission rejects v0.8 and unknown schema profiles

Validation

  • fixture-contract: passed
    • all 49 canonical v0.9 dtypes covered exactly once
    • malformed and renamed-key cases rejected
    • semantic JSON round trips pass
    • null, false, empty array, empty string, absent, and nested object remain distinct
  • clos-conformance: passed
    • server and pinned star-cl compile
    • v0.9 CLOS decode/encode checks pass
    • v0.8 MOP-derived index projection checks pass
    • legacy writes are rejected
  • companion star-cl v0.9 contract workflow: passed

The first conformance run exposed and fixed an unbalanced form in star-cl/src/json-v09.lisp; the server lock now pins the repaired dependency SHA.

Stack

  • base: server v0.9 branch from draft PR #54
  • dependency: lost-rob0t/star-cl draft PR #1

This remains draft until the stacked v0.9 runtime/server PRs are approved.

Refs #11

## Summary - make StarIntel v0.9.0 the sole read/write contract - retain v0.8.0 as a read/index-only schema profile - implement schema selection with CLOS strategy objects and a version registry - derive legacy flat-field to v0.9 `data` mappings from active document classes through `closer-mop` - preserve source schema identity in v0.8 index projections instead of silently rewriting stored documents - add a language-neutral fixture corpus covering all 49 v0.9 dtypes, v0.8 index cases, malformed documents, CouchDB revisions, and null/false/empty-array/empty-string/nested-object distinctions - add Python corpus validation and executable Common Lisp encode/decode plus MOP adapter tests - make the conformance Docker stage a required CI job ## Design This uses **Strategy + Registry + Anti-Corruption Adapter**: - `v09-schema-profile`: canonical read/write behavior - `v08-schema-profile`: legacy read/index projection only - MOP inspection derives key mappings such as `isReply` → `is_reply` from CLOS slot definitions - v0.8 projections retain `schema_version: 0.8.0` and declare `extensions.index_schema_version: 0.9.0` - write admission rejects v0.8 and unknown schema profiles ## Validation - `fixture-contract`: **passed** - all 49 canonical v0.9 dtypes covered exactly once - malformed and renamed-key cases rejected - semantic JSON round trips pass - null, false, empty array, empty string, absent, and nested object remain distinct - `clos-conformance`: **passed** - server and pinned star-cl compile - v0.9 CLOS decode/encode checks pass - v0.8 MOP-derived index projection checks pass - legacy writes are rejected - companion `star-cl` v0.9 contract workflow: **passed** The first conformance run exposed and fixed an unbalanced form in `star-cl/src/json-v09.lisp`; the server lock now pins the repaired dependency SHA. ## Stack - base: server v0.9 branch from draft PR #54 - dependency: `lost-rob0t/star-cl` draft PR #1 This remains draft until the stacked v0.9 runtime/server PRs are approved. Refs #11
Sign in to join this conversation.
No description provided.