Skip to content

onboarding: remove gstack, point members at agent-skills - #58

Merged
alongd merged 2 commits into
mainfrom
degstack-onboarding
Aug 5, 2026
Merged

onboarding: remove gstack, point members at agent-skills#58
alongd merged 2 commits into
mainfrom
degstack-onboarding

Conversation

@alongd

@alongd alongd commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

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:

git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && ./setup

That suite was removed in August 2026 (agent-skills#49). CLAUDE.global.md then handed them a # gstack section listing 35 skills and mandating /browse for 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 160bc64 while a second Copilot round was in flight. Six fixes were pushed to the branch as e807c30 but never merged: the hard-coded --backend google comment, a ```bash fence wrapping an AGY tool call, the !echo shell-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

  • Step 5 — the "natively ported to Antigravity" claim was not true; no port existed. Replaced with the real install: clone agent-skills, symlink ~/.claude/skills at it.
  • New: Already installed gstack? — the migration path for members who followed the old runbook. State copy first, gated on diff -r, because ~/.gstack/projects/ holds accumulated per-project learnings the skills still read from a new path.
  • CLAUDE.global.md — the # gstack heading, the /browse mandate, 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 the MAINTAINING.md:48 contradiction 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.)
  • Smoke test/browse and /ship no longer exist.

Verification

Every command in the new sections was executed in a sandbox before shipping:

  • ln -s onto 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.
  • Re-running the symlink step is idempotent.
  • The migration's copy + diff -r gate 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 by ls, not by review. That's the same failure mode this PR exists to fix.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/skills symlink flow, and add an explicit migration path for existing gstack installs/state.
  • Remove the stale # gstack//browse mandates and skill list from CLAUDE.global.md, replacing it with a self-describing-skills explanation.
  • Update MAINTAINING.md to reflect agent-skills as the member-facing skills mechanism and to resolve the prior gstack contradiction.

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.

Comment thread onboarding/ONBOARDING.md Outdated
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
Comment thread onboarding/ONBOARDING.md
Comment on lines +240 to 244
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"}
@alongd
alongd force-pushed the degstack-onboarding branch from 90ef8b1 to f4c343d Compare August 4, 2026 20:48
@alongd

alongd commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

Both Copilot findings addressed, squashed into their owning commits — head is now f4c343d.

C1 (ONBOARDING.md:55) was real, and worse than it reads. I confirmed it by execution rather than inspection:

--- precondition: both skills/ and skills.bak/ exist ---
--- run the SHIPPED lines verbatim ---
skills.bak now contains: older skills
VERDICT: NESTED -> ~/.claude/skills.bak/skills

The irony is the point: that block existed specifically to guard against ln -s nesting into an existing directory, and its own mv reproduced the identical bug one line up. A member who had ever backed up before would have their skills buried inside the old backup, at which point the symlink is created over a path whose contents just moved somewhere the runbook doesn't mention.

Fixed with a timestamped backup name, which cannot collide. Re-tested:

--- case: a stale skills.bak/ ALREADY exists (what broke before) ---
old .bak intact:   older
contents saved:    mine
PASS: no nesting
--- case: re-run when skills is already the symlink ---
backup dirs:       1 (must still be 1)

C2 (ONBOARDING.md:244) also real. The paragraph claimed you'd type /schedule while showing only the call:default_api:schedule{…} form, so the one thing a reader could copy was the one thing they must not paste. Now both forms appear, labelled: what you type versus what the agent emits internally.

Fix placement was checked, not assumed — git blame put the schedule paragraph in commit 1 and the symlink block in commit 2, and each fix squashed into its own commit with no leakage between them.

alongd added 2 commits August 5, 2026 06:04
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.
@alongd
alongd force-pushed the degstack-onboarding branch from f4c343d to 6f7598c Compare August 5, 2026 03:04
@alongd
alongd merged commit 6bc4617 into main Aug 5, 2026
4 checks passed
@alongd
alongd deleted the degstack-onboarding branch August 5, 2026 03:09
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.

2 participants