Add GEAP Skill Registry integration for local harnesses - #300
Merged
Conversation
zbl94
force-pushed
the
skills-registry-integration
branch
2 times, most recently
from
July 14, 2026 00:00
48f7b5c to
50451c2
Compare
wjjclaud
reviewed
Jul 14, 2026
wjjclaud
left a comment
Collaborator
There was a problem hiding this comment.
For the package name, is it better to use something like skills/geap or skills/geminienterprise to call out it is specific to skills from GEAP?
zbl94
force-pushed
the
skills-registry-integration
branch
from
July 14, 2026 19:05
50451c2 to
c5bbba4
Compare
Collaborator
Author
I moved these to internal/skills/gemini/client.go, and called the package gemini since go prefers short package names |
joycel-github
approved these changes
Jul 14, 2026
zbl94
force-pushed
the
skills-registry-integration
branch
3 times, most recently
from
July 14, 2026 21:59
5c818b0 to
4f8e7f9
Compare
zbl94
force-pushed
the
skills-registry-integration
branch
from
July 14, 2026 23:34
4f8e7f9 to
8c93e91
Compare
zbl94
force-pushed
the
skills-registry-integration
branch
from
July 14, 2026 23:42
8c93e91 to
477f552
Compare
zbl94
force-pushed
the
skills-registry-integration
branch
from
July 14, 2026 23:54
477f552 to
119b6df
Compare
| for _, ref := range refs { | ||
| // First-wins: skip (with a warning) any id already materialized into this | ||
| // dir, rather than overwriting it. | ||
| if won, byRegistry := claimed.claim(targetDir, ref.SkillID, regIdx); !won { |
Collaborator
There was a problem hiding this comment.
should claim happen at the end
Collaborator
Author
There was a problem hiding this comment.
Why it should happen at the end? We are trying to claim a skill before fetching and writing to file to avoid conflicts (and save API calls if there are)
zbl94
force-pushed
the
skills-registry-integration
branch
from
July 15, 2026 00:27
119b6df to
7a18608
Compare
Materialize agentskills.io skills from the Gemini Enterprise Skill Registry (Vertex AI v1beta1) into on-disk folders before the harness starts, so the built-in harnesses can use registry-hosted skills on the local `ax exec` / `ax serve` path. - internal/skills/geminienterprise: harness-agnostic package that reads config.SkillsConfig, drives the registry client (ListSkills / GetSkill / GetSkillRevision / skills:retrieve), safe-unzips payloads to <target_dir>/<skill-id>/, and reports what it wrote. First-wins on duplicate ids with a warning; fail-safe (a registry error never blocks harness startup). - config: top-level `skills.registries[]` (harness-agnostic -- each actor runs a single harness that consumes the materialized folder). Per-registry selection (skills / query / all), required target_dir, and a validated "exactly one selection mode" rule. Also wires the interactions harness's system_instruction from ax.yaml. - cliutil: materializes skills once, up front, at controller construction; for the interactions harness (no SKILLS_DIR concept) it appends a discovery pointer to the system instruction. Scope: local path only; the substrate/pod path does not yet read ax.yaml. Verified end-to-end against a live registry (by-id and by-query).
zbl94
force-pushed
the
skills-registry-integration
branch
from
July 15, 2026 00:29
7a18608 to
bed026a
Compare
rakyll
pushed a commit
that referenced
this pull request
Jul 21, 2026
Previously, ax serve called cfg.Validate() before constructing the controller, but ax exec did not. A misconfigured ax.yaml could pass through runExec and only surface as an obscure error later. Mirror the validation call so both entry points have parity in startup checks. Addresses A8 in TODO.md.
rakyll
pushed a commit
that referenced
this pull request
Jul 21, 2026
…300) Materialize agentskills.io skills from the Gemini Enterprise Skill Registry (Vertex AI v1beta1) into on-disk folders before the harness starts, so the built-in harnesses can use registry-hosted skills on the local `ax exec` / `ax serve` path. - internal/skills/geminienterprise: harness-agnostic package that reads config.SkillsConfig, drives the registry client (ListSkills / GetSkill / GetSkillRevision / skills:retrieve), safe-unzips payloads to <target_dir>/<skill-id>/, and reports what it wrote. First-wins on duplicate ids with a warning; fail-safe (a registry error never blocks harness startup). - config: top-level `skills.registries[]` (harness-agnostic -- each actor runs a single harness that consumes the materialized folder). Per-registry selection (skills / query / all), required target_dir, and a validated "exactly one selection mode" rule. Also wires the interactions harness's system_instruction from ax.yaml. - cliutil: materializes skills once, up front, at controller construction; for the interactions harness (no SKILLS_DIR concept) it appends a discovery pointer to the system instruction. Scope: local path only; the substrate/pod path does not yet read ax.yaml. Verified end-to-end against a live registry (by-id and by-query).
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.
Materialize agentskills.io skills from the GEAP Skill Registry (Vertex AI v1beta1) into an on-disk skills directory before a harness starts, so the Antigravity and Antigravity Interactions harnesses can use registry-hosted skills on the local
ax exec/ax servepath.Scope: local path only; the substrate/pod path does not yet read ax.yaml. Verified end-to-end against a live registry (by-id and by-query).