Skip to content

Graduate the KirkpatrickBaez focusing-pair Assembly into the catalog#541

Merged
xmap merged 1 commit into
mainfrom
worktree-kb-assembly
Jul 4, 2026
Merged

Graduate the KirkpatrickBaez focusing-pair Assembly into the catalog#541
xmap merged 1 commit into
mainfrom
worktree-kb-assembly

Conversation

@xmap

@xmap xmap commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds a reusable KirkpatrickBaez Assembly to catalog/catalog.yaml (a Kirkpatrick-Baez focusing mirror pair), earned by the fleet past the rule-of-three that graduated Diffractometer.
  • Two Exactly1 Mirror slots (vertical_mirror, horizontal_mirror): the pair is physically two mirrors everywhere in the fleet, with distinct focusing direction, axis maps, and addressing. Beamlines that carry the pair as one collapsed Mirror Asset split it into the two mirrors that physically exist when they materialize the Fixture.
  • presents_as: [], matching the Optics sub-assembly: a KB pair focuses the beam and none of the six catalog Roles names that function.
  • Additive catalog data only; the descriptor schema and fixture aggregate already support arbitrary slot blueprints.

Why two slots, not OneOrMore

The fleet models KB three ways today (two Assets V+H; one collapsed Asset; per-station Assets), but the V/H split is physically real in every case. A single OneOrMore mirrors slot would re-enshrine the collapse-for-authoring-convenience shortcut in cross-facility vocabulary and hide a distinction the hardware always has.

Gate review

Passed: 3 baseline reviewers (correctness/schema, modeling fidelity, conventions/docs) + naming-r3 specialist, all clean. Two findings folded in before commit: dropped a fleet-count from the note (kept specific earn-in beamlines) and recorded the p13/p14 re-model-on-adopt caveat (they model KB as a LinearStage stage with no Mirror Asset).

Test plan

  • test_catalog_descriptor + test_catalog_markers green
  • full unit suite (3040) green
  • make docs-build (mkdocs --strict) green; KB renders into the generated assemblies page
  • pre-commit hooks (ruff full-tree, yaml) green

Generated with Claude Code

The 81-beamline fleet earns a reusable Kirkpatrick-Baez mirror-pair
blueprint past the rule-of-three that graduated Diffractometer: many
beamlines compose the same crossed vertical/horizontal focusing mirrors,
yet each binds loose Mirror Assets with no shared composition.

Model it as two Exactly1 Mirror slots (vertical_mirror, horizontal_mirror)
because the pair is physically two mirrors everywhere in the fleet, with
distinct focusing direction, axis maps, and addressing. Beamlines that
carry the pair as one collapsed Mirror Asset split it into the two mirrors
that physically exist when they materialize the Fixture. It presents no
Role, matching the Optics sub-assembly: a KB pair focuses the beam and
none of the six catalog Roles names that function.

Additive catalog data only; the descriptor schema and fixture aggregate
already support arbitrary slot blueprints. Gate-reviewed (three baseline
plus naming-r3, all clean).
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown

Coverage report

This PR does not seem to contain any modification to coverable code.

@xmap xmap merged commit e8f6c25 into main Jul 4, 2026
16 checks passed
@xmap xmap deleted the worktree-kb-assembly branch July 4, 2026 06:45
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