schemas: MeshActionRegistry adds implementsAbb — participants declare their ABB slots - #224
Merged
Conversation
… their ABB slots Second move in the Michael-agent capability-integration work. #223 (ArchitecturalBuildingBlock) gave us role-named components; this lets a participant CLAIM the roles it fills. participants[*].implementsAbb: ["ABB.03", "ABB.07"] A consumer walking the registry for an ABB (Michael's `route_by_abb`, or solution-ranker's candidate shortlist) filters on this. Absent/empty means the participant is not claimed as a slot filler — the consumer won't consider it. This field only establishes the CLAIM, not its truth. Verification is the consumer's job: walk the ABB's protocol + requiredCapabilities, confirm the participant delivers each. That split is deliberate — a validator here can reject unknown `ABB.NN` patterns but cannot know whether a participant actually satisfies the protocol without running the caller. Making that split explicit stops any misplaced trust in "the registry validated this so it must work." Enforced by 7 new validator cases (unknown pattern, bare number, three-digit, wrong namespace, duplicates, empty ⇒ absent-shaped, present ⇒ well-shaped). Existing 15 shape cases still pass. `make validate` green. The example receipt now shows two participants claiming ABB.01/02 — so a consumer can already dry-run the walk and get a non-trivial shortlist.
There was a problem hiding this comment.
Pull request overview
This PR extends the MeshActionRegistry participant schema to let participants declare which Architectural Building Blocks (ABBs) they claim to implement via participants[*].implementsAbb, enabling ABB-based candidate discovery by consumers.
Changes:
- Added
implementsAbb(array ofABB.NNidentifiers) toschemas/MeshActionRegistry.jsonparticipant objects. - Updated
examples/mesh-action-registry.example.jsonto include ABB claims for sample participants. - Extended
tools/validate_mesh_action_registry.pywith new positive/negative validation cases forimplementsAbb.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| tools/validate_mesh_action_registry.py | Adds validator cases for the new implementsAbb participant field. |
| schemas/MeshActionRegistry.json | Introduces the implementsAbb field with pattern + uniqueness constraints. |
| examples/mesh-action-registry.example.json | Demonstrates implementsAbb usage in the canonical example registry. |
Comment on lines
+106
to
+112
| # implementsAbb — new field. Absent is fine (participant claims no ABB slots); present must be | ||
| # non-empty when set, and each entry must match the ABB.NN pattern. | ||
| print(" implementsAbb") | ||
| case("implementsAbb absent (participant claims no ABB slots)", | ||
| broken(lambda b: b["participants"][0].pop("implementsAbb", None)), True) | ||
| case("implementsAbb with a valid ABB claim", | ||
| broken(lambda b: b["participants"][0].__setitem__("implementsAbb", ["ABB.03"])), True) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Second move in the Michael-agent capability-integration work. #223 gave us role-named components; this lets a participant claim the roles it fills.
A consumer walking the registry for an ABB (Michael's
route_by_abb, solution-ranker's candidate shortlist) filters on this. Absent/empty means the participant is not claimed as a slot filler — the consumer won't consider it.The field only establishes the CLAIM, not its truth. Verification is the consumer's job: walk the ABB's protocol + requiredCapabilities, confirm the participant delivers each. That split is deliberate — a validator here can reject unknown
ABB.NNpatterns but cannot know whether a participant actually satisfies the protocol without running the caller.Verification
make validategreen