feat(a2a): FuzeAgent agent-orchestrator serving role (+ role-schema a2a block) - #94
Merged
Merged
Conversation
…a block FuzeAgent had only _base under agent-templates/roles/, so it projected an EMPTY A2A card and could not be the first tenant. Adds: - agent-templates/roles/agent-orchestrator/role.json — the serving role (caller hands a goal; FuzeAgent dispatches a managed agent and returns the result + artifacts), with a2a.examples for discoverability. - an OPTIONAL `a2a` property on agent-templates/schema/role-manifest.schema.json mirroring contracts/a2a/v1/schema/role-a2a-extension.schema.json — the schema follow-on the A2A contract flagged (card_generator.py already reads role.a2a.*). additionalProperties stays false; no existing constraint weakened. Unblocks the FuzeAgent-first prod rollout (#93 sets entryRole: agent-orchestrator). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session-Id: 17fb89fd-3579-433b-a6c4-9c9e7f3ec549
izzywdev
added a commit
that referenced
this pull request
Jul 23, 2026
…ator role (#94) Only the oidcIssuerUrl placeholder remains owner-supplied; entryRole now points at the serving role added in #94. Still DRAFT — do not merge until GO-LIVE.md is satisfied. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session-Id: 17fb89fd-3579-433b-a6c4-9c9e7f3ec549
…n a2a-unit paths - test_repo_cards.py: loads THIS repo's .fuze/manifest.json + agent-templates/roles/ and asserts generate_cards() yields a schema-valid FuzeAgent card whose skills include agent-orchestrator (with examples) and never _base. Guards the actual serving-role set, not just fixtures. - a2a-unit.yml: add agent-templates/roles/** and schema/role-manifest.schema.json to the path filters — a role/schema change changes the projected card, so it must run a2a-unit (previously it did not, so #94's role addition would have gone unvalidated). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session-Id: 17fb89fd-3579-433b-a6c4-9c9e7f3ec549
…res field) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session-Id: 17fb89fd-3579-433b-a6c4-9c9e7f3ec549
izzywdev
marked this pull request as ready for review
July 23, 2026 15:12
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.
Unblocks the FuzeAgent-first A2A rollout. FuzeAgent had only
_baseunderagent-templates/roles/, so it projected an empty card and couldn't be the first tenant.Changes
agent-templates/roles/agent-orchestrator/role.json— FuzeAgent's serving role: a caller hands over a goal, FuzeAgent dispatches a managed Claude agent to accomplish it and returns the outcome + artifacts (caller needs no agent-runtime knowledge/creds). Carriesa2a.examplesfor discoverability. Not a coordinator, so it projects into the card.agent-templates/schema/role-manifest.schema.json— adds the OPTIONALa2aproperty mirroringcontracts/a2a/v1/schema/role-a2a-extension.schema.json(the schema follow-on the contract flagged;card_generator.pyalready readsrole.a2a.*).additionalPropertiesstaysfalse; no existing constraint weakened.Verified
card_generator.pyprojectsagent-orchestrator→ a schema-validAgentSkill(id/name/description/tags/examples) — confirmed bya2a-uniton CI.Then #93 sets the prod tenant
entryRole: agent-orchestrator. Draft — not self-merged.🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com