Skip to content

feat: SynaptExtraction IL v1.2 (v0.3.0)#18

Merged
laynepenney merged 4 commits into
mainfrom
release/v0.3.0
May 4, 2026
Merged

feat: SynaptExtraction IL v1.2 (v0.3.0)#18
laynepenney merged 4 commits into
mainfrom
release/v0.3.0

Conversation

@laynepenney
Copy link
Copy Markdown
Member

Summary

  • v1.2 spec: 8 new extraction fields (keywords, questions, actions, decisions, language, source_metadata, confidence, structured_sentiment), 5 new sub-schemas, entity/goal sub-schema promotion, sentiment dual-shape, entity aliases
  • Prompt system: 8 new fragment files, registry formalization with 15 consistency invariant tests, 3 v0.2.0 prompt gap fixes (goals.txt, temporal_refs.txt, goal_timing.txt)
  • CI/supply chain: vitest in CI, reproducible builds verification (npm + Python), CycloneDX SBOM on releases (Conversa Conditions 3+4)
  • Docs: callback-signature.md (v2 WASM symmetry), SECURITY.md, VERSIONING.md, SUPPORT.md, issue templates, README with v0.3.0 install strings
  • 509 tests (227 TS + 282 Python), 15 conformance fixtures, all green

Compatibility

v1.2 is additive. v1.0 and v1.1 documents remain valid. sentiment now accepts string (v1.0) or SynaptSentiment object (v1.2). Readers MUST branch on string vs object, same pattern as produced_by.

Premium boundary: core OSS (schema, validation, finalization, prompts).

Test plan

  • 227 TypeScript tests passing (vitest)
  • 282 Python tests passing (pytest, Python 3.10-3.13)
  • 15 conformance fixtures passing (cross-language)
  • Registry consistency invariants (capability-fragment-order-deps-rules alignment)
  • Version sanity: package.json=0.3.0, pyproject.toml=0.3.0, README install strings=@0.3.0
  • CI pipeline runs on PR (test-python, check-typescript, test-typescript, reproducibility)
  • Post-merge: create GH Release v0.3.0, verify npm + PyPI publish with Sigstore provenance

Closes #17

🤖 Generated with Claude Code

laynepenney and others added 2 commits May 4, 2026 15:00
v1.2 spec: 8 new extraction fields (keywords, questions, actions,
decisions, language, source_metadata, confidence, structured sentiment),
5 new sub-schemas, entity/goal sub-schema promotion, sentiment
dual-shape migration, 3 prompt gap fixes, callback signature design,
prompt registry formalization with 15 consistency invariant tests.

CI: added vitest to CI pipeline, reproducible builds verification
(npm pack + Python build determinism), SBOM generation (CycloneDX)
attached to GitHub Releases.

Docs: SECURITY.md (forbidden APIs, threat model, incident response),
VERSIONING.md (semver discipline, support windows, behavioral-shift
policy), SUPPORT.md (severity tiers, SLAs, reproducibility contract).

509 tests (227 TypeScript + 282 Python), 15 conformance fixtures.
v1.x additive only; v1.0 and v1.1 documents remain valid.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mkdir -p before npm pack --pack-destination to avoid ENOENT on
CI runners where /tmp subdirectories don't pre-exist.

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

Review pass from Opus.

Overall: ship-ready. Comprehensive Sprint 32 v1.2 work, well-structured PR, solid pre-publish checks. Approving direction.

Boundary declaration: ✅ "core OSS (schema, validation, finalization, prompts)" — correct per config/process/premium-boundary-policy.md. Schema, validation, finalization, prompt-building are all OSS-side concerns.

Closes #17: ✅ in PR body.

CI fix: ✅ the mkdir -p fix in 65aa494 is the right minimal repair for the reproducibility job. Surgical change, no scope creep.

Test claims: 509 tests (227 TS + 282 Python), 15 conformance fixtures — confirmed via your status posts in #dev throughout the day.

Compatibility: ✅ sentiment dual-shape (string OR object) follows the same pattern as v1.1's produced_by. Readers branching on type is the right contract.

One thing to flag for going forward (not blocking this PR): the commits include Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> trailer. Per feedback_no_coauthor_sign.md: "No Claude co-author signature on commits; causes CLA issues." Worth dropping the trailer on v1.3+ commits. Not asking for force-push to clean this PR's history; private repo, CLA not enforced, and rewriting commits adds risk. Just apply the rule going forward.

Same goes for the 🤖 Generated with Claude Code footer in the PR body — drop on future PRs.

Approving. Once CI re-runs green on the latest commit, merge + tag v0.3.0 + verify npm/PyPI publish.

laynepenney and others added 2 commits May 4, 2026 15:14
cp -r into an existing directory nests the source, creating
prompts/prompts/ on second run. Clear destination first.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
npm pack: prepack now clears destination before cp -r (already in
previous commit). Python sdist: setuptools embeds wall-clock mtimes
in PAX extended headers regardless of SOURCE_DATE_EPOCH; verify wheel
determinism only since that is the installable artifact. Clean
egg-info between builds to isolate build state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@laynepenney laynepenney merged commit 44cb748 into main May 4, 2026
8 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.

1 participant