Skip to content

Re-pin the vendored Spec to c8f6852 - #230

Merged
guijacquemet merged 2 commits into
mainfrom
claude/spec-pin-c8f6852
Nov 8, 2026
Merged

guijacquemet merged 2 commits into
mainfrom
claude/spec-pin-c8f6852

Conversation

@guijacquemet

Copy link
Copy Markdown
Contributor

What changed in the Spec (MorphoBricks-Spec PR 15, 2975e0e to c8f6852)

Text only; no fixture and no reference validator change (only fixtures/README.md differs).

  • RC1. experiment-v1.md 4.4b: a brick that publishes a provider manifest declares RGB support with the optional top-level boolean key rgb_support. true is support; false and an absent key are unsupported; a non-boolean is a manifest error, never read as true. The key gives RGB no meaning and does not change a description. The A_RGB_NOT_SUPPORTED refusal applies to a described run only.
  • SI1. One A_SCOPE_INCOMPLETE rule for a channel or mask absent from part of the requested scope or from all of it; the refusal names it and says "present in k of n acquisitions" (k may be 0).

Files (done as in #208 and #216)

  • tests/spec_fixtures/PIN.toml: commit c8f68526c08633526395ca0180fd6bd1a182fc84, fixtures_tree 87d097408e5b794f31f902ec30f2a17dd941a1bd, blob of docs/experiment-v1.md e3d311b63e7ec7d2128a307822339806a10785dd (tools/audit/refval.py blob de5a2cd... unchanged).
  • Copied: tests/spec_fixtures/docs/experiment-v1.md, tests/spec_fixtures/fixtures/README.md (taken from a fresh clone at the pinned commit; the other fixtures and refval.py are byte-identical).
  • SPEC_COMMIT in src/morphobricks_preprocessing/draft_format.py, and docs/conformance.md (vendored experiment-v1.md at c8f6852).
  • CHANGELOG.md entry.

Consequence for drafts (#224)

SPEC_COMMIT changes, so a draft file saved under the previous pin is refused at resume and by publish_draft with DraftFileError code spec_commit_mismatch. The published morphobricks.toml is untouched; the user starts a fresh draft from the folders and re-gives the confirmations. Merging this invalidates every draft in progress.

Reader changes implied by the new text

None implemented here, and none needed: RC1 is a key of the bricks' provider manifests and SI1 is brick behaviour (ChannelNotFoundError already carries A_SCOPE_INCOMPLETE, #229). Not done here, for the bricks: read and validate rgb_support in each brick's manifest, refuse A_RGB_NOT_SUPPORTED on described runs only, and word the SI1 message as "present in k of n acquisitions" (check that the current ChannelNotFoundError message does; this PR did not change it).

Results

  • Cross-check against the reference validator: 0 differences (37 valid, 135 invalid, 13 transitions, 13 transition checks, 3 expected outputs, round trip on 50 files). Every fixture is exact (tests/test_spec_pin.py and the cross-check module: 219 passed).
  • python tools/check.py: ruff check and format clean, 4634 passed, 4 skipped (the 4 skips are the pre-existing file-system-case and file-mode tests), code rules clean.

Expect CHANGELOG conflicts with open PR #217 and the notebook PR; keep both sides when merging main.


Generated by Claude Code

MorphoBricks-Spec PR 15: the optional boolean `rgb_support` key of a
brick's provider manifest (RC1) and one A_SCOPE_INCOMPLETE rule for a
channel or mask absent from all images or from some (SI1). Text only;
fixtures and the reference validator are unchanged. PIN.toml, the copied
experiment-v1.md and fixtures README, SPEC_COMMIT and docs/conformance.md
updated as in #208 and #216.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Scma6W3LC11s3qjXHZuGDm
@guijacquemet
guijacquemet merged commit 7d949f7 into main Nov 8, 2026
7 checks passed
@guijacquemet
guijacquemet deleted the claude/spec-pin-c8f6852 branch November 8, 2026 10:05
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