onboarding: remove gstack, point members at agent-skills - #58
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the onboarding documentation to remove the deprecated gstack dependency and instead direct new members to the group-owned agent-skills repo, while also carrying forward a set of onboarding fixes that missed the prior merge (#57).
Changes:
- Replace the “agent-skills & gstack skills” onboarding step with a clone +
~/.claude/skillssymlink flow, and add an explicit migration path for existinggstackinstalls/state. - Remove the stale
# gstack//browsemandates and skill list fromCLAUDE.global.md, replacing it with a self-describing-skills explanation. - Update
MAINTAINING.mdto reflectagent-skillsas the member-facing skills mechanism and to resolve the priorgstackcontradiction.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| onboarding/ONBOARDING.md | Replaces gstack install guidance with agent-skills symlink install + adds gstack migration + updates smoke-test and AGY scheduling guidance. |
| onboarding/MAINTAINING.md | Updates the artifact map and decisions/rationale to remove gstack and standardize on agent-skills. |
| onboarding/CLAUDE.global.md | Removes the gstack skill list and /browse mandate, replacing it with a minimal “skills are self-describing” policy. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| mkdir -p ~/.claude | ||
| # If ~/.claude/skills already exists as a real directory, `ln -s` would create the link | ||
| # INSIDE it rather than replacing it. Move it aside first, then link. | ||
| [ -e ~/.claude/skills ] && [ ! -L ~/.claude/skills ] && mv ~/.claude/skills ~/.claude/skills.bak |
| Before a session goes quiet while waiting on something, the agent must simply set an | ||
| early-termination timer. **This is a tool call the agent makes inside AGY — not a shell command | ||
| you run**; you'd type `/schedule` yourself: | ||
| ```text | ||
| call:default_api:schedule{"DurationSeconds":"2400", "Prompt":"Check on the command status. If it stalled, ping Slack.", "TimerCondition":"any"} |
90ef8b1 to
f4c343d
Compare
|
Both Copilot findings addressed, squashed into their owning commits — head is now C1 ( The irony is the point: that block existed specifically to guard against Fixed with a timestamped backup name, which cannot collide. Re-tested: C2 ( Fix placement was checked, not assumed — |
PR #57 merged at 160bc64 while a second review round was in flight, so these six fixes were force-pushed to the branch but never merged. - ONBOARDING step 11: the systemd comment claimed the backend was chosen "depending on Headroom support" while the command hard-codes --backend google. - ONBOARDING step 12: the schedule example sat in a ```bash fence, but call:default_api:schedule{...} is an AGY tool call, not a shell command a member can paste into a terminal. - ONBOARDING step 12: record why the Slack token lives at ~/.claude/.slack-bot-token in a ~/.gemini world — it is the skill's own default (bin/cc-slack-post.py), overridable via CC_SLACK_TOKEN_FILE. - ONBOARDING smoke test: `!echo $GEMINI_BASE_URL` used Claude Code's shell escape, which means nothing in AGY. - MAINTAINING + CLAUDE.global.md: both still described the four role files as symlinked into ~/.claude/agents/, which step 7 replaced with per-session define_subagent. Name both mechanisms.
The runbook told every new member to clone a 1.6 GB third-party suite we removed in August 2026, and handed them a global CLAUDE.md listing ~35 skills, most of which no longer exist. A member following it built a setup we do not run and inherited rules pointing at dead commands. - ONBOARDING step 5: replace the "natively ported to Antigravity" claim (which was not true — no port existed) with the real install: clone DanaResearchGroup/agent-skills, symlink ~/.claude/skills at it. The symlink is guarded, because `ln -s` onto an existing directory creates the link inside it rather than replacing it. - ONBOARDING step 5: add "Already installed gstack?" for members migrating an existing setup. The state copy comes first and is gated on `diff -r` — ~/.gstack/projects holds accumulated per-project learnings that the skills still read, from a new path. - CLAUDE.global.md: drop the `# gstack` heading, the /browse mandate, and the 35-skill list. Skills are self-describing, so the list bought nothing and went stale — which is how it came to name ~30 skills that do not exist. - MAINTAINING.md: rewrite the gstack row as a Skills row and drop the gstack clause from the settings.json row. - Smoke test: /browse and /ship are gone; name skills that exist. All commands in the new sections were executed in a sandbox first: the symlink guard against a pre-existing real directory, its idempotent re-run, and the migration's copy + diff gate.
f4c343d to
6f7598c
Compare
Follow-up to #57. Two commits: the Copilot fixes that missed that merge, then the gstack removal.
Why
main's onboarding told every new member to run:That suite was removed in August 2026 (agent-skills#49).
CLAUDE.global.mdthen handed them a# gstacksection listing 35 skills and mandating/browsefor all web browsing. A member following the runbook today builds a setup we don't run and inherits global rules pointing at ~30 commands that don't exist.Commit 1 — carry forward the fixes that missed #57
#57 merged at
160bc64while a second Copilot round was in flight. Six fixes were pushed to the branch ase807c30but never merged: the hard-coded--backend googlecomment, a ```bash fence wrapping an AGY tool call, the!echoshell-escape in the smoke test, the Slack token path rationale, and two files still describing the `~/.claude/agents/` symlink that step 7 replaced with `define_subagent`.Commit 2 — remove gstack
agent-skills, symlink~/.claude/skillsat it.diff -r, because~/.gstack/projects/holds accumulated per-project learnings the skills still read from a new path.CLAUDE.global.md— the# gstackheading, the/browsemandate, and the 35-skill list are gone. Skills are self-describing, so the list bought nothing and rotted.MAINTAINING.md— gstack row becomes a Skills row; the settings.json row loses its gstack clause. (This also closes theMAINTAINING.md:48contradiction Copilot raised on Adapt onboarding to Antigravity (AGY) #57, which I deferred to this PR rather than aligning it to a claim that was itself false.)/browseand/shipno longer exist.Verification
Every command in the new sections was executed in a sandbox before shipping:
ln -sonto a pre-existing real directory nests the link inside it instead of replacing it — the naive one-liner would have silently produced~/.claude/skills/agent-skills. The shipped version moves it aside first, verified.diff -rgate passes with learnings intact.I also checked the skills named in the smoke test actually exist. My first draft named
/careful, which doesn't — caught byls, not by review. That's the same failure mode this PR exists to fix.