Skip to content

feat(project): bindings.json + agent connectors/apps/skills (MAJ-290) - #142

Merged
josegironn merged 2 commits into
mainfrom
jose/maj-290-full-agent
Jul 27, 2026
Merged

feat(project): bindings.json + agent connectors/apps/skills (MAJ-290)#142
josegironn merged 2 commits into
mainfrom
jose/maj-290-full-agent

Conversation

@josegironn

@josegironn josegironn commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Stacked on #141; companion to mono-builder major-technology/mono-builder#1923.

Compile-side support for full-fledged agents in file-based projects:

  • bindings.json (project root, optional): {slots: {resources: {slot: {type, id}}, applications: {slot: {id}}, skills: {slot: {id}}}} — the resource-client manifest shape, human-authored. Schema-validated (bindings.schema.json, embedded + mapped to the public URL).
  • agent.json gains connectors / apps (each with optional nested permissions) and skills (bare string = project-local skill slug, {slot} = platform skill via bindings); those three leave the reserved list (schedules/toolPermissions/tools/hooks stay reserved).
  • Slots resolve at compile time: compiled agents carry resourceId/applicationId/skillId inline; compiled output has no bindings key and no slot names (asserted by test). A local skill slug stays {slug} — the entity doesn't exist until deploy creates it.
  • Reference validation: every slot/slug must resolve to a binding or a local skill or compile fails; duplicate facet entries rejected. Pre-bindings projects compile byte-identically.
  • Vendored agent.schema.json/bindings.schema.json are byte-identical copies of the mono-builder-generated files; schemas-drift stays red until the server PR deploys (same story as feat(project): compile skill artifacts to tree hashes + bundle zips #141).

Testing

go build ./..., go vet ./..., go test ./... -count=1 green; fixture tests on real temp git repos; live compiles drove the mono-builder e2e (two rounds, 27 assertions).

🤖 Generated with Claude Code

https://claude.ai/code/session_0185ReH8ZKtT8jUjUtT1ci1X

@josegironn
josegironn force-pushed the jose/maj-290-full-agent branch from e1941e6 to 8514a47 Compare July 27, 2026 01:36
@josegironn
josegironn changed the base branch from josegironn/project-skills to main July 27, 2026 01:36
josegironn and others added 2 commits July 26, 2026 20:35
…MAJ-290)

bindings.json (project root) maps slot aliases to platform ids using the shared
manifest shape; agent.json gains connectors/apps (with nested permissions) and
skills (local slug or binding slot). Compile validates every reference against
a binding or a local skill — including slot/slug collisions — and emits the
facets plus normalized bindings in the compiled config. Vendored agent/bindings
schemas match the server-generated bytes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0185ReH8ZKtT8jUjUtT1ci1X

Co-authored-by: Orca <help@stably.ai>
Compiled agents carry resourceId/applicationId/skillId inline; no bindings key in
compiled output; skill slot/slug collision check removed (structurally impossible
now). Authored formats and vendored schemas unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0185ReH8ZKtT8jUjUtT1ci1X

Co-authored-by: Orca <help@stably.ai>
@josegironn
josegironn marked this pull request as ready for review July 27, 2026 03:35
@josegironn
josegironn force-pushed the jose/maj-290-full-agent branch from 8514a47 to c7300f2 Compare July 27, 2026 03:35
@josegironn
josegironn merged commit d1f3cad into main Jul 27, 2026
1 check passed
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