Skip to content

sync: consume the studio's example-expansion governance into the canonical Astryx contract#22

Merged
ryandmonk merged 1 commit into
mainfrom
sync/studio-milestone-contract
Jul 22, 2026
Merged

sync: consume the studio's example-expansion governance into the canonical Astryx contract#22
ryandmonk merged 1 commit into
mainfrom
sync/studio-milestone-contract

Conversation

@ryandmonk

Copy link
Copy Markdown
Contributor

One-time studio → dspack catch-up (PHASE-NEXT P0 in dspack-studio). The example-expansion milestone authored owner-approved governance in the studio's byte-copy through reviewed PRs (dspack-studio #17#20) while this canonical copy stayed at the 3-intent / 9-component edition. This PR restores byte equality by consuming that content:

  • Intents: record-collection, data-collection, transactional-review
  • Components: list, selectable-card, metadata-list (upstream-faithful projections; metadata-list's data-props items carry a documented x-drift note)
  • Rules: 9 new intent-scoped rules; the table rule's choice-set caveat revised to what current rule types can express
  • Examples: ex.support-ticket-triage, ex.signup-basic, ex.plan-comparison
  • Table columns/data gain required: true (the dspack-gen 0.1.2 grammar mechanism; this repo's 0ea1ac2 already typed the item shapes)

Verified superset against pre-sync main (including the just-merged structured-editing work): no upstream-only rules, examples, or components are lost; the only shared-content delta is the two required flags.

Steady state after this merge is upstream-first: canonical changes land here, dspack-studio consumes byte-identical copies, and sync checks stay green in both repos (dspack-studio gains check:sync in its P0 PR; dspack-gen's existing check-sync will flag its fixture for re-sync — the follow-up PR there is queued).

🤖 Generated with Claude Code

…nical Astryx contract

One-time studio -> dspack catch-up (PHASE-NEXT P0 in dspack-studio):
the example-expansion milestone authored owner-approved governance in
the studio's byte-copy through reviewed PRs (dspack-studio #17, #18,
#19, #20) while this canonical copy stayed at the 3-intent, 9-component
edition. This commit restores byte equality by consuming that content:

- intents: record-collection, data-collection, transactional-review
- components: list, selectable-card, metadata-list (upstream-faithful;
  metadata-list items are data-props with a documented x-drift note)
- rules: 9 new intent-scoped rules; the table rule's choice-set caveat
  revised to what current rule types can express
- examples: ex.support-ticket-triage, ex.signup-basic,
  ex.plan-comparison
- table columns/data gain required:true (the dspack-gen 0.1.2 grammar
  mechanism; this repo's 0ea1ac2 already typed the item shapes)

Verified superset: no upstream-only content is lost (the studio copy
differs on shared content only by the two required flags). Steady state
after this commit is upstream-first: canonical changes land here, the
studio consumes byte-identical copies, and both repos' sync checks stay
green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 22, 2026 01:46
@ryandmonk
ryandmonk merged commit c425111 into main Jul 22, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR syncs the canonical Astryx dspack contract with the studio’s expanded governance/content, restoring byte-equality by bringing over additional intents, components, rules, and worked examples (plus marking table columns/data as required in prop descriptors).

Changes:

  • Mark table.columns and table.data prop descriptors as required: true.
  • Add three components (list, selectable-card, metadata-list) and three intents (record-collection, data-collection, transactional-review) with intent-scoped governance rules.
  • Add three new worked examples aligned to the new intents.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

"props": {
"type": "body"
},
"text": "Name and email is all it takes. You can add the rest later."
],
"x-source": "https://github.com/facebook/astryx/blob/v0.1.4/packages/core/src/List/List.doc.mjs",
"composition": {
"notes": "Takes arbitrary children (ReactNode); surfaces express items as child nodes — for a comparison, selectable-card children."
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.

2 participants