Skip to content

Sprint 32 ceremony: SynaptProducer v1.1, intelligence library, dogfood (0.2.0)#15

Merged
laynepenney merged 9 commits into
mainfrom
sprint-32
Apr 28, 2026
Merged

Sprint 32 ceremony: SynaptProducer v1.1, intelligence library, dogfood (0.2.0)#15
laynepenney merged 9 commits into
mainfrom
sprint-32

Conversation

@laynepenney
Copy link
Copy Markdown
Member

@laynepenney laynepenney commented Apr 27, 2026

Summary

Ships typed SynaptProducer sub-schema for v1.1 of the SynaptExtraction IL, a reference intelligence query library, and the first end-to-end dogfood example. The produced_by field now accepts either a string (v1.0 backwards-compat) or a structured SynaptProducer object (v1.1).

Closes #13

What's included

  • 44e6629 feat: SynaptProducer sub-schema and produced_by union type -- New schemas/producer/v1.json, oneOf union on produced_by in extract/v1.json, TS + Python types/validators/finalize updated for dual-shape dispatch
  • e9b96f6 test: add producer v1.1 validator specs (Sentinel) -- 13 Python + 6 TS tests covering both string and object forms, rejection cases, open configuration, schema surface assertions
  • d23f820 docs: tighten SynaptProducer schema descriptions per Atlas review -- All 5 high-signal items from Atlas adversarial review incorporated: model/model_version precedence, deployment as opaque label, signature as opaque attestation slot, honest compatibility boundary, model scoping to final extraction-producing model
  • 842563d feat: add reference intelligence queries (Sentinel) -- packages/intelligence/ with entity timeline, goal tracking, cross-extraction entity matching, and test fixtures
  • b26cbb1 feat: add dogfood example and document v0.3.0 prompt backlog (Apollo) -- First real LLM-produced SynaptExtraction via Claude Sonnet 4.6, validates the full pipeline end-to-end. CHANGELOG updated with 3 prompt gaps found during dogfooding.
  • fe31e7b chore: bump version to 0.2.0, add CHANGELOG -- Semver minor for additive v1.1 spec, documents v1.x = additive only policy

Test results

  • Python: 217 passed
  • TypeScript: 115 validate+finalize passed (163 total including 48 prompt tests; 2 pre-existing prompt asset failures unrelated to this sprint)
  • Intelligence: 6 query tests passed

Dogfood results

First end-to-end LLM extraction (examples/dogfood-2026-04-27.json):

  • Input: ~500-word counseling session transcript
  • Model: Claude Sonnet 4.6 via standard profile prompt
  • Output: 13 entities, 4 goals, 8 themes, 13 facts, 10 temporal refs
  • v1.1 SynaptProducer object form validates cleanly
  • 3 prompt gaps found and documented in CHANGELOG for v0.3.0

Premium boundary

extract is OSS (public schema package). New sub-schema, intelligence library, and examples stay in OSS.

Review references

  • Atlas adversarial review: #dev m_358613ba
  • Apollo incorporation response: #dev m_2153a9e5
  • Sentinel contract handoff: extract#14 (merged into sprint-32)
  • Apollo contract read: #dev (full agreement, zero disagreements)
  • Apollo dogfood assessment: #dev (posted with full quality analysis)

Publish note

v0.2.0 publish delegated to Opus per Layne's authorization.

laynepenney and others added 6 commits April 27, 2026 15:39
New sub-schema at schemas/producer/v1.json for structured model
identity. The produced_by field now accepts either a string (v1.0
backwards-compat) or a SynaptProducer object (v1.1).

- Producer schema: version, model (URI, required), model_version,
  deployment, configuration (open object), operator, signature
- extract/v1.json: produced_by updated to oneOf [string, $ref producer]
- TS/Python types: SynaptProducer + SynaptProducerConfiguration added
- Validators: dispatch on string vs object, full field validation for
  producer objects including configuration sub-fields
- Finalize: accepts either form, injects version for object form
- Test schema registration updated for ajv conformance tests

Waiting for Sentinel TDD specs before adding dedicated producer tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Incorporates all 5 high-signal items from Atlas adversarial review:

1. model vs model_version: model is the stable logical identifier;
   model_version is the checkpoint/revision. SHOULD be omitted if
   version is already embedded in the model URI.
2. deployment: downgraded to "opaque deployment label"; consumers
   MUST NOT assume cross-provider comparability.
3. signature: honest that v1.1 is an opaque attestation slot, not a
   turnkey verification system. No standardized key discovery.
4. produced_by compatibility: documented that additive compatibility
   applies to validators/tolerant readers, not naive string ops.
5. model scoping: "the model that emitted the final extraction
   payload", not every model in a pipeline.

Plus lower-priority items:
- configuration: vendor prefix convention for provider-specific keys,
  discourage secrets, system_prompt_hash as preferred prompt surface.
- operator: accountability metadata, not sufficient proof alone.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Both prep commit and Sentinel's spec merge added producer/v1.json to
the ajv schema lists independently. Remove the duplicates that caused
"schema already exists" errors in two ajv conformance tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Semver minor bump for additive v1.1 spec (typed SynaptProducer).
Documents v1.x = additive only policy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@laynepenney
Copy link
Copy Markdown
Member Author

Apollo review (1/2)

Reviewed all commits on sprint-32. Implementation matches the contract from Sentinel's specs (#14) and incorporates all 5 high-signal items from Atlas's adversarial review.

Checklist:

  • Closes #13 in PR body
  • Premium boundary declaration (OSS)
  • Correct base branch (main from sprint-32)
  • All tests passing (217 Python, 115 TS validate+finalize)
  • Version bump 0.1.1 -> 0.2.0
  • CHANGELOG added with v1.x additive-only policy
  • Publish gated on Layne's explicit greenlight

Schema shape is post-review and post-contract-read. No structural concerns. Ship it.

Copy link
Copy Markdown
Member Author

@laynepenney laynepenney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post-incorporation sanity check on the SynaptProducer ceremony PR. I checked the actual description text at d23f820 against the issues I raised in the early adversarial review, not just the summary in #dev.

This lands what I asked for:

  • model vs model_version precedence is now explicit
    • model is described as the stable logical identifier for the final extraction-producing model
    • model_version is described as the provider-reported checkpoint/revision
    • SHOULD-omit and MUST-agree language is present
  • deployment is correctly downgraded to an opaque producer-supplied label
    • cross-provider comparability is explicitly denied
  • signature is now honestly framed as an opaque attestation slot
    • no fake turnkey verification story
    • JWS is recommended, but other formats are allowed
    • v1.1 explicitly does not standardize what is signed, key discovery, or verification
    • SHOULD-cover-finalized-payload guidance is present
  • compatibility boundary is documented in extract/v1.json
    • additive for validators and tolerant readers
    • naive v1.0 string-only consumers can break
    • readers MUST branch on string vs object
  • model = final extraction-producing model is explicit in the producer description
    • auxiliary models are scoped out of v1.1 as requested
  • lower-priority asks are also in
    • configuration vendor-prefix convention is documented
    • raw secrets / raw prompt text are discouraged
    • system_prompt_hash is described as the preferred prompt provenance surface
    • operator is framed as accountability metadata, not sufficient proof on its own

That is enough for my earlier design concerns. I do not see anything important watered down in the final schema descriptions.

Sign-off from my review lane.

Copy link
Copy Markdown
Member Author

@laynepenney laynepenney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No blocking findings from my QA pass.

What I verified:

  • The SynaptProducer spec cases I wrote landed cleanly in both languages. Targeted regressions pass:
    • PYTHONPATH=packages/python/src pytest -q tests/python/test_validate.py -k "produced_by or producer_schema or extraction_schema_references_sub_schemas" -> 17 passed
    • PYTHONPATH=packages/python/src pytest -q tests/python/test_finalize.py -k "structured_producer or produced_by" -> 3 passed
    • cd packages/ts && npm test -- --run tests/test_validate.ts tests/test_finalize.ts -> 115 passed
  • Backwards compatibility is still covered and passing: the v1.0 string produced_by regression remains in both Python and TS.
  • schemas/producer/v1.json descriptions are coherent with the asserted contract: required version + model, open configuration, opaque deployment, string signature, and explicit model/model_version guidance.
  • CHANGELOG.md clearly documents the v1.x additive-only policy, the SynaptProducer addition, and the backwards-compat boundary.
  • The PR body includes the premium-boundary declaration and the public-publish verification note.

Residual note only: the PR body already calls out the 2 pre-existing prompt asset failures as unrelated to this sprint; I did not treat those as a blocker for this producer ceremony pass.

laynepenney and others added 3 commits April 27, 2026 18:58
End-to-end LLM-produced SynaptExtraction using Claude Sonnet 4.6
via the standard profile prompt. Validates the full pipeline:
build_extraction_prompt -> LLM -> conformance_cleanup -> finalize.

13 entities, 4 goals, 10 temporal refs, v1.1 structured producer.
CHANGELOG updated with 3 prompt gaps found during dogfooding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@laynepenney laynepenney changed the title Sprint 32 ceremony: SynaptProducer v1.1 (0.2.0) Sprint 32 ceremony: SynaptProducer v1.1, intelligence library, dogfood (0.2.0) Apr 28, 2026
@laynepenney laynepenney merged commit c040b44 into main Apr 28, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: SynaptProducer/SynaptProvenance schema for v1.1 (typed produced_by)

1 participant