Skip to content

scaffold canonical-samples + ship v1 corpus (20 schemas, 340 rows) - #1

Merged
shiba4life merged 3 commits into
mainfrom
scaffold-v1
May 26, 2026
Merged

scaffold canonical-samples + ship v1 corpus (20 schemas, 340 rows)#1
shiba4life merged 3 commits into
mainfrom
scaffold-v1

Conversation

@shiba4life

Copy link
Copy Markdown
Contributor

Summary

Stands up the EdgeVector/canonical-samples repo: layout, a Bun-based
generator + validator, CI, and the first 20-schema corpus of
LLM-generated sample rows.

This is the data backbone that folddb-dev new --from-prod (separate
follow-up task) will fetch from.

What ships

  • Layout: samples/<descriptive_name>.json per schema, plus
    manifest.json, tools/ for the generator/validator, and a GitHub
    Actions workflow that runs shape validation on every PR.

  • tools/generate.ts — Bun script that fetches schema_service's
    /v1/snapshot, drives Claude Haiku 4.5 to author plausible
    anonymized rows per schema, shape-validates each row, and writes the
    file plus a manifest entry. CLI: --schemas <names> or --all.

  • tools/validate.ts — pure shape validator (reused by the
    generator and CI). Type-only — does not police semantic content.

  • v1 corpus — 20 schemas, 340 total rows, all passing strict
    shape validation against the live snapshot:

    Schema Rows Schema Rows
    Action 24 ImageObject 15
    Article 19 Message 20
    Book 10 Movie 22
    Brand 15 NewsArticle 16
    Comment 8 PostalAddress 18
    ContactPoint 21 Recipe 21
    Course 21 Review 19
    Dataset 12 SportsEvent 16
    Episode 22 VideoObject 20
    Game 16 GeoCoordinates 17

What's out of scope

  • Coverage for all 956 canonical schemas — future PRs.
  • Larger schemas (Person 69 fields, Place 48, CreativeWork 117) —
    deferred to keep v1 cheap to generate and easy to review.
  • folddb-dev new --from-prod integration — the next kanban task.
  • Live regen webhooks — on-demand only.

Notes

  • Generation cost ≈ $0.10 on Haiku 4.5.
  • CI is gated on a repository EXEMEM_DEV_API_KEY secret — until that
    is wired, CI will pass with a warning rather than fail. Add the
    secret in Settings → Secrets and variables → Actions to enable
    full validation.

Test plan

  • bun tools/validate.ts samples/ — all 20 files pass shape validation
  • Manifest reflects what's on disk (20 entries, sorted alphabetically)
  • Spot-check rows in Message.json, Recipe.json, PostalAddress.json — anonymized, plausible, varied
  • Configure the EXEMEM_DEV_API_KEY secret in repo settings so CI runs full validation

Closes the v1 deliverable of the canonical-samples kanban task.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

shiba4life and others added 2 commits May 26, 2026 14:20
The data backbone that folddb-dev new --from-prod will fetch sample rows
from. Per-schema files at samples/<descriptive_name>.json; the generator
fetches schema_service's /v1/snapshot, drafts plausible anonymized rows
via Claude Haiku 4.5, validates each row's shape against field_types, and
writes the file plus a manifest entry. CI runs validate.ts on every PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
LLM-generated against schema_service-dev snapshot 2026-05-26T21:11Z via
Claude Haiku 4.5. Curated set covers commonly-encountered canonical
types (Message, Recipe, Movie, Book, Article, Review, NewsArticle,
PostalAddress, ContactPoint, ImageObject, VideoObject, Episode, Game,
SportsEvent, Course, Action, Brand, Dataset, GeoCoordinates, Comment).
Every row passes tools/validate.ts shape validation against the
schemas' declared field_types. Larger schemas (Person 69 fields, Place
48, CreativeWork 117) deferred to follow-up PRs — v1 picks tractable
field counts (5-14) so generation stays cheap and reviewable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shiba4life
shiba4life enabled auto-merge (squash) May 26, 2026 21:21
The EdgeVector org default-branch-protection ruleset requires every PR
to have a green status check whose context is exactly "ci-required".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shiba4life
shiba4life merged commit 4c9b979 into main May 26, 2026
1 check 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