You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* docs: update project documentation for v0.4.2
- README: skill count 9→10, added /document-release to skills table,
install/uninstall sections, and dedicated section with example
- CHANGELOG: added /document-release bullet to v0.4.2 entry
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
* feat: add /document-release skill with smart VERSION handling
New skill runs after /ship but before PR merge. Reads every doc file,
cross-references the diff, auto-updates factual changes, asks about
risky edits. CHANGELOG clobber protection: never uses Write tool on
CHANGELOG.md, only Edit with exact old_string matches.
Smart VERSION logic: instead of silently skipping already-bumped
versions, compares CHANGELOG entry scope against full diff and asks
if significant uncovered changes exist.
Also fixes gstack-upgrade/SKILL.md missing from skill-check.ts
SKILL_FILES array (existing inconsistency with gen-skill-docs.ts).
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
* feat: /review Step 5.6 — documentation staleness check
Review skill now cross-references code changes against doc files.
If a doc describes a feature that changed but the doc wasn't updated,
flags it as INFORMATIONAL with a pointer to /document-release.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
* test: /document-release E2E with CHANGELOG clobber guard
E2E test creates a repo with existing CHANGELOG entries, runs
/document-release, and asserts original entries survive. Critical
guardrail against the incident where an agent replaced CHANGELOG
entries during conflict resolution.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
* chore: bump to v0.4.3 — /document-release skill
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
* chore: regenerate SKILL.md files after merge
* chore: regenerate SKILL.md files after merge
---------
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,7 @@
2
2
3
3
## 0.4.3 — 2026-03-16
4
4
5
+
-**New `/document-release` skill.** Run it after `/ship` but before merging — it reads every doc file in your project, cross-references the diff, and updates README, ARCHITECTURE, CONTRIBUTING, CHANGELOG, and TODOS to match what you actually shipped. Risky changes get surfaced as questions; everything else is automatic.
5
6
-**Every question is now crystal clear, every time.** You used to need 3+ sessions running before gstack would give you full context and plain English explanations. Now every question — even in a single session — tells you the project, branch, and what's happening, explained simply enough to understand mid-context-switch. No more "sorry, explain it to me more simply."
6
7
-**Branch name is always correct.** gstack now detects your current branch at runtime instead of relying on the snapshot from when the conversation started. Switch branches mid-session? gstack keeps up.
Copy file name to clipboardExpand all lines: README.md
+28-4Lines changed: 28 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
**gstack turns Claude Code from one generic assistant into a team of specialists you can summon on demand.**
4
4
5
-
Nine opinionated workflow skills for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Plan review, code review, one-command shipping, browser automation, QA testing, and engineering retrospectives — all as slash commands.
5
+
Ten opinionated workflow skills for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Plan review, code review, one-command shipping, browser automation, QA testing, engineering retrospectives, and post-ship documentation — all as slash commands.
6
6
7
7
### Without gstack
8
8
@@ -26,6 +26,7 @@ Nine opinionated workflow skills for [Claude Code](https://docs.anthropic.com/en
26
26
|`/qa-only`| QA reporter | Report-only QA testing. Same methodology as /qa but never fixes anything. Use when you want a pure bug report without code changes. |
27
27
|`/setup-browser-cookies`| Session manager | Import cookies from your real browser (Comet, Chrome, Arc, Brave, Edge) into the headless session. Test authenticated pages without logging in manually. |
28
28
|`/retro`| Engineering manager | Team-aware retro: your deep-dive + per-person praise and growth opportunities for every contributor. |
29
+
|`/document-release`| Technical writer | Update README, ARCHITECTURE, CONTRIBUTING, and project docs to match what you just shipped. |
29
30
30
31
## Demo: one feature, five modes
31
32
@@ -104,11 +105,11 @@ This is the setup I use. One person, ten parallel agents, each with the right co
104
105
105
106
Open Claude Code and paste this. Claude will do the rest.
106
107
107
-
> Install gstack: run `git clone https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup` then add a "gstack" section to CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, and lists the available skills: /plan-ceo-review, /plan-eng-review, /review, /ship, /browse, /qa, /qa-only, /setup-browser-cookies, /retro. Then ask the user if they also want to add gstack to the current project so teammates get it.
108
+
> Install gstack: run `git clone https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup` then add a "gstack" section to CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, and lists the available skills: /plan-ceo-review, /plan-eng-review, /review, /ship, /browse, /qa, /qa-only, /setup-browser-cookies, /retro, /document-release. Then ask the user if they also want to add gstack to the current project so teammates get it.
108
109
109
110
### Step 2: Add to your repo so teammates get it (optional)
110
111
111
-
> Add gstack to this project: run `cp -Rf ~/.claude/skills/gstack .claude/skills/gstack && rm -rf .claude/skills/gstack/.git && cd .claude/skills/gstack && ./setup` then add a "gstack" section to this project's CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, lists the available skills: /plan-ceo-review, /plan-eng-review, /review, /ship, /browse, /qa, /setup-browser-cookies, /retro, and tells Claude that if gstack skills aren't working, run `cd .claude/skills/gstack && ./setup` to build the binary and register skills.
112
+
> Add gstack to this project: run `cp -Rf ~/.claude/skills/gstack .claude/skills/gstack && rm -rf .claude/skills/gstack/.git && cd .claude/skills/gstack && ./setup` then add a "gstack" section to this project's CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, lists the available skills: /plan-ceo-review, /plan-eng-review, /review, /ship, /browse, /qa, /setup-browser-cookies, /retro, /document-release, and tells Claude that if gstack skills aren't working, run `cd .claude/skills/gstack && ./setup` to build the binary and register skills.
112
113
113
114
Real files get committed to your repo (not a submodule), so `git clone` just works. The binary and node\_modules are gitignored — teammates just need to run `cd .claude/skills/gstack && ./setup` once to build (or `/browse` handles it automatically on first use).
114
115
@@ -590,6 +591,29 @@ It saves a JSON snapshot to `.context/retros/` so the next run can show trends.
590
591
591
592
---
592
593
594
+
## `/document-release`
595
+
596
+
This is my **technical writer mode**.
597
+
598
+
After `/ship` creates the PR but before it merges, `/document-release` reads every documentation file in the project and cross-references it against the diff. It updates file paths, command lists, project structure trees, and anything else that drifted. Risky or subjective changes get surfaced as questions — everything else is handled automatically.
599
+
600
+
```
601
+
You: /document-release
602
+
603
+
Claude: Analyzing 21 files changed across 3 commits. Found 8 documentation files.
604
+
605
+
README.md: updated skill count from 9 to 10, added new skill to table
606
+
CLAUDE.md: added new directory to project structure
607
+
CONTRIBUTING.md: current — no changes needed
608
+
TODOS.md: marked 2 items complete, added 1 new item
609
+
610
+
All docs updated and committed. PR body updated with doc diff.
611
+
```
612
+
613
+
It also polishes CHANGELOG voice (without ever overwriting entries), cleans up completed TODOS, checks cross-doc consistency, and asks about VERSION bumps only when appropriate.
614
+
615
+
---
616
+
593
617
## Troubleshooting
594
618
595
619
**Skill not showing up in Claude Code?**
@@ -614,7 +638,7 @@ Or set `auto_upgrade: true` in `~/.gstack/config.yaml` to upgrade automatically
614
638
615
639
Paste this into Claude Code:
616
640
617
-
> Uninstall gstack: remove the skill symlinks by running `for s in browse plan-ceo-review plan-eng-review review ship retro qa qa-only setup-browser-cookies; do rm -f ~/.claude/skills/$s; done` then run `rm -rf ~/.claude/skills/gstack` and remove the gstack section from CLAUDE.md. If this project also has gstack at .claude/skills/gstack, remove it by running `for s in browse plan-ceo-review plan-eng-review review ship retro qa qa-only setup-browser-cookies; do rm -f .claude/skills/$s; done && rm -rf .claude/skills/gstack` and remove the gstack section from the project CLAUDE.md too.
641
+
> Uninstall gstack: remove the skill symlinks by running `for s in browse plan-ceo-review plan-eng-review review ship retro qa qa-only setup-browser-cookies document-release; do rm -f ~/.claude/skills/$s; done` then run `rm -rf ~/.claude/skills/gstack` and remove the gstack section from CLAUDE.md. If this project also has gstack at .claude/skills/gstack, remove it by running `for s in browse plan-ceo-review plan-eng-review review ship retro qa qa-only setup-browser-cookies document-release; do rm -f .claude/skills/$s; done && rm -rf .claude/skills/gstack` and remove the gstack section from the project CLAUDE.md too.
Copy file name to clipboardExpand all lines: TODOS.md
+26Lines changed: 26 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -374,6 +374,32 @@
374
374
**Priority:** P3
375
375
**Depends on:** Ref staleness Parts 1+2 (shipped)
376
376
377
+
## Document-Release
378
+
379
+
### Auto-invoke /document-release from /ship
380
+
381
+
**What:** Add Step 8.5 to /ship that reads document-release/SKILL.md and executes the doc update workflow after creating the PR.
382
+
383
+
**Why:** Zero-friction doc updates — user runs /ship and docs are automatically current. No extra command to remember.
384
+
385
+
**Context:** /ship currently ends at Step 8 (PR URL output). Step 8.5 would continue into the document-release workflow. Same pattern as /ship calling /review's checklist in Step 3.5.
386
+
387
+
**Effort:** S
388
+
**Priority:** P1
389
+
**Depends on:** /document-release shipped
390
+
391
+
### `{{DOC_VOICE}}` shared resolver
392
+
393
+
**What:** Create a placeholder resolver in gen-skill-docs.ts encoding the gstack voice guide (friendly, user-forward, lead with benefits). Inject into /ship Step 5, /document-release Step 5, and reference from CLAUDE.md.
394
+
395
+
**Why:** DRY — voice rules currently live inline in 3 places (CLAUDE.md CHANGELOG style section, /ship Step 5, /document-release Step 5). When the voice evolves, all three drift.
396
+
397
+
**Context:** Same pattern as `{{QA_METHODOLOGY}}` — shared block injected into multiple templates to prevent drift. ~20 lines in gen-skill-docs.ts.
0 commit comments