Skip to content

spec(AST-094): evidence carries across a main merge that touches none of the PR's files, direct imports or shared motion and layer modules (DEC-31) - #10857

Merged
cixzhang merged 3 commits into
meta:mainfrom
vjeux:spec/evidence-carry-main-merge
Nov 9, 2026

Conversation

@vjeux

@vjeux vjeux commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Exact decision needed

Does device or emulator evidence taken at an earlier head still count at a later head that only merges main?

Existing authority searched

Decision

DEC-31: evidence carries to a later head that only merges main, under two conditions. The pull request's own changes are byte-identical between the two heads. The merge changed none of the files the pull request changes or imports directly. It changed none of the shared motion and layer modules the verification row lists either. Otherwise the evidence is taken again at the new head. DEC-31 is an exception to DEC-27's exact-head rule, and Platform support accepts Android emulator evidence carried under it. A new verification row names the check that decides it.

Rejected alternatives

A new take after every merge of main.

Claim scope and non-goals

  • It covers only a head that merges main. Any change to the pull request's own diff still needs new evidence.
  • What evidence each claim needs is otherwise unchanged (Platform support, DEC-27).
  • The row names five shared modules as the check's current list. A refactor that moves them updates the list, not the decision.

Evidence and implementation relationship

Spec owners' ruling, 2026-11-09. This pull request has no implementation: the check compares two diffs and a list of changed files.

Writing rubric results

spec:AST-094: one new decision and one verification row.

  • R1 narration: none; DEC-31 states the rule in the present tense.
  • R2 research in the record: none.
  • R3 evidence naming a change: none.
  • R4 rejected alternatives over one line or outside a decision: none; the one rejected option is one line inside DEC-31.
  • R5 pull request or issue references remaining: none.
  • R6 ruled open questions still listing options: none touched.

Scope

  • This PR contains specification records only.
  • It records observable behavior and preserves equivalent internal implementations.
  • Any named internal mechanism is intentionally public, names its dependent caller/system, and explains why an equivalent implementation would not satisfy the contract.
  • Verification states the evidence layer and failure signal without prescribing CI job/workflow topology.
  • It records one intentional durable decision, not a rescue for a separable tagalong.
  • The canonical knowledge owner, affected current claims, and overlapping open work are named; any ownership collision is resolved or called out for human decision.
  • Adjacent API, visual, accessibility, composition, and implementation facts remain outside scope unless this exact decision depends on them.
  • Public text and artifacts contain no internal Meta context.

Validation

At b2ef438, the head:

  • pnpm check:knowledge
  • Prettier on the record; the verification row fits the table's columns, so no other row changes.
  • node .github/scripts/check-public-text.mjs

DEC-31 records the owner's ruling: evidence taken on a device or in the
emulator at an earlier head still counts at a later head that only
merges main, when the pull request's own changes are byte-identical and
the merge changed none of the files they import directly and none of
the shared motion and layer code the test exercises. Otherwise the
evidence is taken again. A verification row names the check that
decides it.
@vercel

vercel Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
astryx Ready Ready Preview Nov 9, 2026 9:32pm UTC

Request Review

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Nov 9, 2026
@astracat-bot

astracat-bot Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

AI review status for this pull request.

Review status Updated
🟢 Reviewed (for maintainers only) Nov 9, 2026, 9:50 PM UTC

@github-actions github-actions Bot added the needs:spec-owner-review Current knowledge records await owner approval label Nov 9, 2026
@cixzhang

cixzhang commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

/approve-spec 306425f

@github-actions github-actions Bot removed the needs:spec-owner-review Current knowledge records await owner approval label Nov 9, 2026

@astracat-bot astracat-bot Bot 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.

Requesting changes. The direction in DEC-31 is approved for this head; three wording fixes in spec:AST-094 remain, and the fix commit needs a fresh /approve-spec from an engineering owner.

  • The all (DEC-31) verification row and DEC-31 compare the merge's changed files only with the changes' direct imports and the five shared modules, so a main merge that edits another part of a file this pull request changes still lets the evidence carry; add "the files the pull request changes" to that set.
  • The Platform support bullet still requires Android emulator evidence "at the exact head" (citing DEC-27), while DEC-31 says it "applies" DEC-27 and lets earlier-head evidence count; amend that bullet to accept evidence carried under DEC-31, and say DEC-31 narrows DEC-27.
  • The DEC-31 heading and the pull request title say evidence carries "only when nothing it tests changed", but a merge that changes a module reached only through the five (the spring solver that motion/animator imports, for example) still carries; name what the check covers, or extend the list to what those modules import.

Non-blocking: "The owner decided this on 2026-11-09." repeats the Decider line as narration (rubric R1) and can go.

[Automated review]

The overlap set now includes the files the pull request changes, the
heading names what the check compares, and the Platform support bullet
accepts emulator evidence carried under DEC-31, an exception to
DEC-27's exact-head rule for heads that only merge main. The owner
sentence that repeated the Decider line is gone.
@vjeux vjeux changed the title spec(AST-094): device and emulator evidence carries across a main merge when nothing it tests changed (DEC-31) spec(AST-094): evidence carries across a main merge that touches none of the PR's files, direct imports or shared motion and layer modules (DEC-31) Nov 9, 2026
@github-actions github-actions Bot added the needs:spec-owner-review Current knowledge records await owner approval label Nov 9, 2026

@astracat-bot astracat-bot Bot 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.

Approval waits on an engineering owner's decision on DEC-31. The fix commit resolves all three earlier findings: the overlap check now includes the pull request's own files, Platform support accepts evidence carried under DEC-31, and the DEC-31 heading names what the check covers. DEC-31 is an intentional exception to DEC-27's exact-head evidence rule in spec:AST-094, and the earlier /approve-spec named the previous head, so an engineering owner records the decision on this head by commenting /approve-spec <full head SHA>; the author may do so as an engineering owner. That approval also settles these readings:

  • DEC-31 covers real-device and Android-emulator evidence, not iOS Simulator recordings.
  • spec:AST-099's own Android rule ("emulator evidence at the exact head", citing DEC-27) stays exact-head.
  • A merge that changes only a module the five listed modules import, such as motion/spring.ts, still lets the evidence carry.
  • Non-blocking: "DEC-27's text is unchanged" describes the edit rather than the system (writing rubric R1); "DEC-27 holds for every other head" says the same in the present tense.

[Automated review]

@cixzhang

cixzhang commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

/approve-spec 9185130

@github-actions github-actions Bot removed the needs:spec-owner-review Current knowledge records await owner approval label Nov 9, 2026

@astracat-bot astracat-bot Bot 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.

Approved pending CI: CI has not run on this head yet. An engineering owner approved DEC-31, its all (DEC-31) verification row and the amended Platform support bullet in spec:AST-094 at this head, and no blocking issue remains. The pull request is a draft from a fork, so CI starts once a maintainer adds the ci:run label and the pull request is marked ready for review.

  • Non-blocking: "DEC-27's text is unchanged" describes the edit rather than the system (writing rubric R1); "DEC-27 governs every other head" says the same in the present tense.

[Automated review]

The closing clause now states the rule in the present tense instead of
describing the edit.
@github-actions github-actions Bot added the needs:spec-owner-review Current knowledge records await owner approval label Nov 9, 2026

@astracat-bot astracat-bot Bot 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.

Approval waits on an engineering owner approving DEC-31 in spec:AST-094, its all (DEC-31) verification row and the amended Platform support bullet at this head by commenting /approve-spec <full head SHA> (the author may do so as an engineering owner); the earlier approval named the previous head, and the last commit reworded DEC-31's closing clause.

  • The approval also settles that earlier-head real-device iOS evidence, which Platform support binds to no head today, becomes subject to DEC-31's conditions.
  • It also settles that a main merge changing only a file that imports the pull request's changes, such as Slider/Slider.tsx for a change to motion/uikit/slider.ts, still lets the evidence carry.

No other issue remains, and the reworded clause fixes the earlier narration note. CI has not run on this head: the pull request is a draft from a fork, so CI starts once a maintainer adds the ci:run label and the pull request is marked ready for review.

[Automated review]

@cixzhang

cixzhang commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

/approve-spec b2ef438

@github-actions github-actions Bot removed the needs:spec-owner-review Current knowledge records await owner approval label Nov 9, 2026

@astracat-bot astracat-bot Bot 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.

Approved pending CI: CI has not run on this head yet. An engineering owner approved DEC-31 in spec:AST-094, its all (DEC-31) verification row and the amended Platform support bullet at this head, and the earlier wording findings are all fixed.

Next step: CI runs once the pull request is marked ready for review and a maintainer adds the ci:run label, since it is a draft from a fork.

[Automated review]

@cixzhang cixzhang added the ci:run A maintainer lets this outside contributor's pull request run CI (AST-030 FR17) label Nov 9, 2026
@vjeux
vjeux marked this pull request as ready for review November 9, 2026 23:18
@cixzhang
cixzhang merged commit a257f86 into meta:main Nov 9, 2026
117 checks passed
@vjeux
vjeux deleted the spec/evidence-carry-main-merge branch November 9, 2026 23:38

This branch was successfully deployed

1 active deployment
Preview — b2ef4383 Deployed Nov 9, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:run A maintainer lets this outside contributor's pull request run CI (AST-030 FR17) CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants