palladius / palladius/antigravity-ruby-sdk
✨ [P2] Better skills loading mechanism
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 0
- Forks
- 0
- Avg merge
- 4m
- Merged PRs (30d)
- 1
Description
Feature Request
Make adding skills to agents feel natural and Rubyesque. Currently we pass skills in the constructor or call add_skill(). We should support more idiomatic patterns.
Proposed Syntax Options
Option 1: Array-like << and +=
agent = Antigravity::Agent.new
agent.skills << "https://github.com/gemini-cli-extensions/sre"
agent.skills += ["./skills/code-review", "./skills/security-audit"]
Option 2: Block DSL (tap-style)
agent.skills do |s|
s << "https://github.com/gemini-cli-extensions/sre"
s << "./skills/code-review"
end
Option 3: Chainable / Builder pattern
agent
.with_skill("https://github.com/gemini-cli-extensions/sre")
.with_skill("./skills/code-review")
.connect!
Option 4: Varargs (Python p() stacking equivalent)
agent.add_skills(
"https://github.com/gemini-cli-extensions/sre",
"./skills/code-review",
"./skills/security-audit"
)
Option 5: Constructor DSL (RubyLLM-inspired)
Antigravity::Agent.new do |a|
a.model = "gemini-2.5-pro"
a.skills << "https://github.com/gemini-cli-extensions/sre"
a.skills << "./skills/code-review"
a.workspace = "."
end
Option 6: Method missing magic (Rails-style)
agent.skill "https://github.com/gemini-cli-extensions/sre"
agent.skill "./skills/code-review"
# singular = add one, plural = list all
agent.skills # => [Skill<sre>, Skill<code-review>]
Discussion
The most idiomatic Ruby approach is probably a combination of Options 1 + 5:
agent.skillsreturns aSkillSet(custom Array-like class with<<,+=,each)- Constructor accepts a block for initial config
SkillSet#<<auto-resolves URLs (GitHub clone) and local paths
This mirrors how Rails does config.middleware, Bundler does gem, and RSpec does config.include.
Current API (for reference)
# Constructor
agent = Antigravity::Agent.new(skills: ["./path", "https://github.com/..."])
# Post-construction
agent.add_skill("./path")
agent.add_skill("https://github.com/...")
agent.add_skills(["./a", "./b"])
agent.add_inline_skill(name: "x", description: "y", instructions: "z")
Priority
P4 -- nice-to-have DX improvement. Current API works fine.
Labels
enhancement, ruby-dx, P4
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the current Antigravity::Agent.new API and the add_skill, add_skills, and add_inline_skill entry points described in the issue. The proposal lists six alternatives without selecting one, so first confirm the intended syntax and SkillSet behavior. Done means the chosen API is implemented while preserving the current API, with tests for the agreed usage patterns.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100