opengstack 0.14.0 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/AGENTS.md +4 -4
  2. package/CLAUDE.md +127 -110
  3. package/README.md +10 -5
  4. package/SKILL.md +500 -70
  5. package/bin/opengstack.js +69 -69
  6. package/commands/autoplan.md +7 -9
  7. package/commands/benchmark.md +84 -91
  8. package/commands/browse.md +60 -64
  9. package/commands/canary.md +7 -9
  10. package/commands/careful.md +2 -2
  11. package/commands/codex.md +7 -9
  12. package/commands/connect-chrome.md +7 -9
  13. package/commands/cso.md +7 -9
  14. package/commands/design-consultation.md +7 -9
  15. package/commands/design-review.md +7 -9
  16. package/commands/design-shotgun.md +7 -9
  17. package/commands/document-release.md +7 -9
  18. package/commands/freeze.md +3 -3
  19. package/commands/guard.md +4 -4
  20. package/commands/investigate.md +7 -9
  21. package/commands/land-and-deploy.md +7 -9
  22. package/commands/office-hours.md +7 -9
  23. package/commands/{gstack-upgrade.md → opengstack-upgrade.md} +64 -65
  24. package/commands/plan-ceo-review.md +7 -9
  25. package/commands/plan-design-review.md +7 -9
  26. package/commands/plan-eng-review.md +7 -9
  27. package/commands/qa-only.md +7 -9
  28. package/commands/qa.md +7 -9
  29. package/commands/retro.md +7 -9
  30. package/commands/review.md +7 -9
  31. package/commands/setup-browser-cookies.md +22 -26
  32. package/commands/setup-deploy.md +7 -9
  33. package/commands/ship.md +7 -9
  34. package/commands/unfreeze.md +7 -7
  35. package/docs/designs/CHROME_VS_CHROMIUM_EXPLORATION.md +9 -9
  36. package/docs/designs/CONDUCTOR_CHROME_SIDEBAR_INTEGRATION.md +2 -2
  37. package/docs/designs/CONDUCTOR_SESSION_API.md +16 -16
  38. package/docs/designs/DESIGN_SHOTGUN.md +74 -74
  39. package/docs/designs/DESIGN_TOOLS_V1.md +111 -111
  40. package/docs/skills.md +483 -202
  41. package/package.json +42 -43
  42. package/scripts/analytics.ts +188 -0
  43. package/scripts/dev-skill.ts +83 -0
  44. package/scripts/discover-skills.ts +39 -0
  45. package/scripts/eval-compare.ts +97 -0
  46. package/scripts/eval-list.ts +117 -0
  47. package/scripts/eval-select.ts +86 -0
  48. package/scripts/eval-summary.ts +188 -0
  49. package/scripts/eval-watch.ts +172 -0
  50. package/scripts/gen-skill-docs.ts +473 -0
  51. package/scripts/resolvers/browse.ts +129 -0
  52. package/scripts/resolvers/codex-helpers.ts +133 -0
  53. package/scripts/resolvers/composition.ts +48 -0
  54. package/scripts/resolvers/confidence.ts +37 -0
  55. package/scripts/resolvers/constants.ts +50 -0
  56. package/scripts/resolvers/design.ts +950 -0
  57. package/scripts/resolvers/index.ts +59 -0
  58. package/scripts/resolvers/learnings.ts +96 -0
  59. package/scripts/resolvers/preamble.ts +505 -0
  60. package/scripts/resolvers/review.ts +884 -0
  61. package/scripts/resolvers/testing.ts +573 -0
  62. package/scripts/resolvers/types.ts +45 -0
  63. package/scripts/resolvers/utility.ts +421 -0
  64. package/scripts/skill-check.ts +190 -0
  65. package/scripts/cleanup.py +0 -100
  66. package/scripts/filter-skills.sh +0 -114
  67. package/scripts/filter_skills.py +0 -164
  68. package/scripts/install-commands.js +0 -45
  69. package/scripts/install-skills.js +0 -60
package/AGENTS.md CHANGED
@@ -1,10 +1,10 @@
1
- # OpenGStack — AI Engineering Workflow
1
+ # opengstack — AI Engineering Workflow
2
2
 
3
- OpenGStack is a collection of SKILL.md files that give AI agents structured roles for
3
+ opengstack is a collection of SKILL.md files that give AI agents structured roles for
4
4
  software development. Each skill is a specialist: CEO reviewer, eng manager,
5
5
  designer, QA lead, release engineer, debugger, and more.
6
6
 
7
- Forked from garrytan/gstack with telemetry removed.
7
+ Forked from with telemetry removed.
8
8
 
9
9
  ## Available skills
10
10
 
@@ -44,4 +44,4 @@ This fork has all telemetry, analytics, and tracking removed. Your usage stays l
44
44
 
45
45
  ## Sync from Upstream
46
46
 
47
- This repo syncs daily from garrytan/gstack via GitHub Actions.
47
+ This repo syncs daily from via GitHub Actions.
package/CLAUDE.md CHANGED
@@ -1,23 +1,23 @@
1
- # gstack development
1
+ # opengstack development
2
2
 
3
3
  ## Commands
4
4
 
5
5
  ```bash
6
- bun install # install dependencies
7
- bun test # run free tests (browse + snapshot + skill validation)
8
- bun run test:evals # run paid evals: LLM judge + E2E (diff-based, ~$4/run max)
9
- bun run test:evals:all # run ALL paid evals regardless of diff
10
- bun run test:gate # run gate-tier tests only (CI default, blocks merge)
11
- bun run test:periodic # run periodic-tier tests only (weekly cron / manual)
12
- bun run test:e2e # run E2E tests only (diff-based, ~$3.85/run max)
6
+ bun install # install dependencies
7
+ bun test # run free tests (browse + snapshot + skill validation)
8
+ bun run test:evals # run paid evals: LLM judge + E2E (diff-based, ~$4/run max)
9
+ bun run test:evals:all # run ALL paid evals regardless of diff
10
+ bun run test:gate # run gate-tier tests only (CI default, blocks merge)
11
+ bun run test:periodic # run periodic-tier tests only (weekly cron / manual)
12
+ bun run test:e2e # run E2E tests only (diff-based, ~$3.85/run max)
13
13
  bun run test:e2e:all # run ALL E2E tests regardless of diff
14
- bun run eval:select # show which tests would run based on current diff
15
- bun run dev <cmd> # run CLI in dev mode, e.g. bun run dev goto https://example.com
16
- bun run build # gen docs + compile binaries
17
- bun run gen:skill-docs # regenerate SKILL.md files from templates
18
- bun run skill:check # health dashboard for all skills
19
- bun run dev:skill # watch mode: auto-regen + validate on change
20
- bun run eval:list # list all eval runs from ~/.gstack-dev/evals/
14
+ bun run eval:select # show which tests would run based on current diff
15
+ bun run dev <cmd> # run CLI in dev mode, e.g. bun run dev goto https://example.com
16
+ bun run build # gen docs + compile binaries
17
+ bun run gen:skill-docs # regenerate SKILL.md files from templates
18
+ bun run skill:check # health dashboard for all skills
19
+ bun run dev:skill # watch mode: auto-regen + validate on change
20
+ bun run eval:list # list all eval runs from ~/.opengstack-dev/evals/
21
21
  bun run eval:compare # compare two eval runs (auto-picks most recent)
22
22
  bun run eval:summary # aggregate stats across all eval runs
23
23
  ```
@@ -25,7 +25,7 @@ bun run eval:summary # aggregate stats across all eval runs
25
25
  `test:evals` requires `ANTHROPIC_API_KEY`. Codex E2E tests (`test/codex-e2e.test.ts`)
26
26
  use Codex's own auth from `~/.codex/` config — no `OPENAI_API_KEY` env var needed.
27
27
  E2E tests stream progress in real-time (tool-by-tool via `--output-format stream-json
28
- --verbose`). Results are persisted to `~/.gstack-dev/evals/` with auto-comparison
28
+ --verbose`). Results are persisted to `~/.opengstack-dev/evals/` with auto-comparison
29
29
  against the previous run.
30
30
 
31
31
  **Diff-based test selection:** `test:evals` and `test:e2e` auto-select tests based
@@ -45,8 +45,8 @@ periodic tests run weekly via cron or manually. Use `EVALS_TIER=gate` or
45
45
  ## Testing
46
46
 
47
47
  ```bash
48
- bun test # run before every commit — free, <2s
49
- bun run test:evals # run before shipping — paid, diff-based (~$4/run max)
48
+ bun test # run before every commit — free, <2s
49
+ bun run test:evals # run before shipping — paid, diff-based (~$4/run max)
50
50
  ```
51
51
 
52
52
  `bun test` runs skill validation, gen-skill-docs quality checks, and browse
@@ -56,62 +56,62 @@ tests via `claude -p`. Both must pass before creating a PR.
56
56
  ## Project structure
57
57
 
58
58
  ```
59
- gstack/
60
- ├── browse/ # Headless browser CLI (Playwright)
61
- ├── src/ # CLI + server + commands
62
- ├── commands.ts # Command registry (single source of truth)
63
- └── snapshot.ts # SNAPSHOT_FLAGS metadata array
64
- ├── test/ # Integration tests + fixtures
65
- └── dist/ # Compiled binary
66
- ├── scripts/ # Build + DX tooling
67
- ├── gen-skill-docs.ts # Template → SKILL.md generator
68
- ├── resolvers/ # Template resolver modules (preamble, design, review, etc.)
69
- ├── skill-check.ts # Health dashboard
70
- └── dev-skill.ts # Watch mode
71
- ├── test/ # Skill validation + eval tests
72
- ├── helpers/ # skill-parser.ts, session-runner.ts, llm-judge.ts, eval-store.ts
73
- ├── fixtures/ # Ground truth JSON, planted-bug fixtures, eval baselines
74
- ├── skill-validation.test.ts # Tier 1: static validation (free, <1s)
75
- ├── gen-skill-docs.test.ts # Tier 1: generator quality (free, <1s)
76
- ├── skill-llm-eval.test.ts # Tier 3: LLM-as-judge (~$0.15/run)
77
- └── skill-e2e-*.test.ts # Tier 2: E2E via claude -p (~$3.85/run, split by category)
78
- ├── qa-only/ # /qa-only skill (report-only QA, no fixes)
79
- ├── plan-design-review/ # /plan-design-review skill (report-only design audit)
80
- ├── design-review/ # /design-review skill (design audit + fix loop)
81
- ├── ship/ # Ship workflow skill
82
- ├── review/ # PR review skill
59
+ OpenGStack/
60
+ ├── browse/ # Headless browser CLI (Playwright)
61
+ ├── src/ # CLI + server + commands
62
+ ├── commands.ts # Command registry (single source of truth)
63
+ └── snapshot.ts # SNAPSHOT_FLAGS metadata array
64
+ ├── test/ # Integration tests + fixtures
65
+ └── dist/ # Compiled binary
66
+ ├── scripts/ # Build + DX tooling
67
+ ├── gen-skill-docs.ts # Template → SKILL.md generator
68
+ ├── resolvers/ # Template resolver modules (preamble, design, review, etc.)
69
+ ├── skill-check.ts # Health dashboard
70
+ └── dev-skill.ts # Watch mode
71
+ ├── test/ # Skill validation + eval tests
72
+ ├── helpers/ # skill-parser.ts, session-runner.ts, llm-judge.ts, eval-store.ts
73
+ ├── fixtures/ # Ground truth JSON, planted-bug fixtures, eval baselines
74
+ ├── skill-validation.test.ts # Tier 1: static validation (free, <1s)
75
+ ├── gen-skill-docs.test.ts # Tier 1: generator quality (free, <1s)
76
+ ├── skill-llm-eval.test.ts # Tier 3: LLM-as-judge (~$0.15/run)
77
+ └── skill-e2e-*.test.ts # Tier 2: E2E via claude -p (~$3.85/run, split by category)
78
+ ├── qa-only/ # /qa-only skill (report-only QA, no fixes)
79
+ ├── plan-design-review/ # /plan-design-review skill (report-only design audit)
80
+ ├── design-review/ # /design-review skill (design audit + fix loop)
81
+ ├── ship/ # Ship workflow skill
82
+ ├── review/ # PR review skill
83
83
  ├── plan-ceo-review/ # /plan-ceo-review skill
84
84
  ├── plan-eng-review/ # /plan-eng-review skill
85
- ├── autoplan/ # /autoplan skill (auto-review pipeline: CEO → design → eng)
86
- ├── benchmark/ # /benchmark skill (performance regression detection)
87
- ├── canary/ # /canary skill (post-deploy monitoring loop)
88
- ├── codex/ # /codex skill (multi-AI second opinion via OpenAI Codex CLI)
85
+ ├── autoplan/ # /autoplan skill (auto-review pipeline: CEO → design → eng)
86
+ ├── benchmark/ # /benchmark skill (performance regression detection)
87
+ ├── canary/ # /canary skill (post-deploy monitoring loop)
88
+ ├── codex/ # /codex skill (multi-AI second opinion via OpenAI Codex CLI)
89
89
  ├── land-and-deploy/ # /land-and-deploy skill (merge → deploy → canary verify)
90
- ├── office-hours/ # /office-hours skill (YC Office Hours — startup diagnostic + builder brainstorm)
91
- ├── investigate/ # /investigate skill (systematic root-cause debugging)
92
- ├── retro/ # Retrospective skill (includes /retro global cross-project mode)
93
- ├── bin/ # CLI utilities (gstack-repo-mode, gstack-slug, gstack-config, etc.)
90
+ ├── office-hours/ # /office-hours skill (YC Office Hours — startup diagnostic + builder brainstorm)
91
+ ├── investigate/ # /investigate skill (systematic root-cause debugging)
92
+ ├── retro/ # Retrospective skill (includes /retro global cross-project mode)
93
+ ├── bin/ # CLI utilities (opengstack-repo-mode, opengstack-slug, opengstack-config, etc.)
94
94
  ├── document-release/ # /document-release skill (post-ship doc updates)
95
- ├── cso/ # /cso skill (OWASP Top 10 + STRIDE security audit)
95
+ ├── cso/ # /cso skill (OWASP Top 10 + STRIDE security audit)
96
96
  ├── design-consultation/ # /design-consultation skill (design system from scratch)
97
- ├── design-shotgun/ # /design-shotgun skill (visual design exploration)
98
- ├── connect-chrome/ # /connect-chrome skill (headed Chrome with side panel)
99
- ├── design/ # Design binary CLI (GPT Image API)
100
- ├── src/ # CLI + commands (generate, variants, compare, serve, etc.)
101
- ├── test/ # Integration tests
102
- └── dist/ # Compiled binary
103
- ├── extension/ # Chrome extension (side panel + activity feed)
104
- ├── lib/ # Shared libraries (worktree.ts)
105
- ├── docs/designs/ # Design documents
106
- ├── setup-deploy/ # /setup-deploy skill (one-time deploy config)
107
- ├── .github/ # CI workflows + Docker image
108
- ├── workflows/ # evals.yml (E2E on Ubicloud), skill-docs.yml, actionlint.yml
109
- └── docker/ # Dockerfile.ci (pre-baked toolchain + Playwright/Chromium)
110
- ├── setup # One-time setup: build binary + symlink skills
111
- ├── SKILL.md # Generated from SKILL.md.tmpl (don't edit directly)
112
- ├── SKILL.md.tmpl # Template: edit this, run gen:skill-docs
113
- ├── ETHOS.md # Builder philosophy (Boil the Lake, Search Before Building)
114
- └── package.json # Build scripts for browse
97
+ ├── design-shotgun/ # /design-shotgun skill (visual design exploration)
98
+ ├── connect-chrome/ # /connect-chrome skill (headed Chrome with side panel)
99
+ ├── design/ # Design binary CLI (GPT Image API)
100
+ ├── src/ # CLI + commands (generate, variants, compare, serve, etc.)
101
+ ├── test/ # Integration tests
102
+ └── dist/ # Compiled binary
103
+ ├── extension/ # Chrome extension (side panel + activity feed + CSS inspector)
104
+ ├── lib/ # Shared libraries (worktree.ts)
105
+ ├── docs/designs/ # Design documents
106
+ ├── setup-deploy/ # /setup-deploy skill (one-time deploy config)
107
+ ├── .github/ # CI workflows + Docker image
108
+ ├── workflows/ # evals.yml (E2E on Ubicloud), skill-docs.yml, actionlint.yml
109
+ └── docker/ # Dockerfile.ci (pre-baked toolchain + Playwright/Chromium)
110
+ ├── setup # One-time setup: build binary + symlink skills
111
+ ├── SKILL.md # Generated from SKILL.md.tmpl (don't edit directly)
112
+ ├── SKILL.md.tmpl # Template: edit this, run gen:skill-docs
113
+ ├── ETHOS.md # Builder philosophy (Boil the Lake, Search Before Building)
114
+ └── package.json # Build scripts for browse
115
115
  ```
116
116
 
117
117
  ## SKILL.md workflow
@@ -137,11 +137,11 @@ Skills must NEVER hardcode framework-specific commands, file patterns, or direct
137
137
  structures. Instead:
138
138
 
139
139
  1. **Read CLAUDE.md** for project-specific config (test commands, eval commands, etc.)
140
- 2. **If missing, AskUserQuestion** — let the user tell you or let gstack search the repo
140
+ 2. **If missing, AskUserQuestion** — let the user tell you or let opengstack search the repo
141
141
  3. **Persist the answer to CLAUDE.md** so we never have to ask again
142
142
 
143
143
  This applies to test commands, eval commands, deploy commands, and any other
144
- project-specific behavior. The project owns its config; gstack reads it.
144
+ project-specific behavior. The project owns its config; opengstack reads it.
145
145
 
146
146
  ## Writing SKILL templates
147
147
 
@@ -150,15 +150,15 @@ Each bash code block runs in a separate shell — variables do not persist betwe
150
150
 
151
151
  Rules:
152
152
  - **Use natural language for logic and state.** Don't use shell variables to pass
153
- state between code blocks. Instead, tell Claude what to remember and reference
154
- it in prose (e.g., "the base branch detected in Step 0").
153
+ state between code blocks. Instead, tell Claude what to remember and reference
154
+ it in prose (e.g., "the base branch detected in Step 0").
155
155
  - **Don't hardcode branch names.** Detect `main`/`master`/etc dynamically via
156
- `gh pr view` or `gh repo view`. Use `{{BASE_BRANCH_DETECT}}` for PR-targeting
157
- skills. Use "the base branch" in prose, `<base>` in code block placeholders.
156
+ `gh pr view` or `gh repo view`. Use `{{BASE_BRANCH_DETECT}}` for PR-targeting
157
+ skills. Use "the base branch" in prose, `<base>` in code block placeholders.
158
158
  - **Keep bash blocks self-contained.** Each code block should work independently.
159
- If a block needs context from a previous step, restate it in the prose above.
159
+ If a block needs context from a previous step, restate it in the prose above.
160
160
  - **Express conditionals as English.** Instead of nested `if/elif/else` in bash,
161
- write numbered decision steps: "1. If X, do Y. 2. Otherwise, do Z."
161
+ write numbered decision steps: "1. If X, do Y. 2. Otherwise, do Z."
162
162
 
163
163
  ## Browser interaction
164
164
 
@@ -169,27 +169,27 @@ project uses.
169
169
 
170
170
  ## Vendored symlink awareness
171
171
 
172
- When developing gstack, `.claude/skills/gstack` may be a symlink back to this
172
+ When developing OpenGStack, `.claude/skills/opengstack` may be a symlink back to this
173
173
  working directory (gitignored). This means skill changes are **live immediately** —
174
174
  great for rapid iteration, risky during big refactors where half-written skills
175
- could break other Claude Code sessions using gstack concurrently.
175
+ could break other Claude Code sessions using opengstack concurrently.
176
176
 
177
- **Check once per session:** Run `ls -la .claude/skills/gstack` to see if it's a
177
+ **Check once per session:** Run `ls -la .claude/skills/opengstack` to see if it's a
178
178
  symlink or a real copy. If it's a symlink to your working directory, be aware that:
179
- - Template changes + `bun run gen:skill-docs` immediately affect all gstack invocations
180
- - Breaking changes to SKILL.md.tmpl files can break concurrent gstack sessions
181
- - During large refactors, remove the symlink (`rm .claude/skills/gstack`) so the
182
- global install at `~/.claude/skills/gstack/` is used instead
183
-
184
- **Prefix setting:** Skill symlinks use either short names (`qa -> gstack/qa`) or
185
- namespaced (`gstack-qa -> gstack/qa`), controlled by `skill_prefix` in
186
- `~/.gstack/config.yaml`. When vendoring into a project, run `./setup` after
179
+ - Template changes + `bun run gen:skill-docs` immediately affect all opengstack invocations
180
+ - Breaking changes to SKILL.md.tmpl files can break concurrent opengstack sessions
181
+ - During large refactors, remove the symlink (`rm .claude/skills/opengstack`) so the
182
+ global install at `~/.claude/skills/opengstack/` is used instead
183
+
184
+ **Prefix setting:** Skill symlinks use either short names (`qa -> OpenGStack/qa`) or
185
+ namespaced (`opengstack-qa -> OpenGStack/qa`), controlled by `skill_prefix` in
186
+ `~/.opengstack/config.yaml`. When vendoring into a project, run `./setup` after
187
187
  symlinking to create the per-skill symlinks with your preferred naming. Pass
188
188
  `--no-prefix` or `--prefix` to skip the interactive prompt.
189
189
 
190
190
  **For plan reviews:** When reviewing plans that modify skill templates or the
191
191
  gen-skill-docs pipeline, consider whether the changes should be tested in isolation
192
- before going live (especially if the user is actively using gstack in other windows).
192
+ before going live (especially if the user is actively using opengstack in other windows).
193
193
 
194
194
  ## Compiled binaries — NEVER commit browse/dist/ or design/dist/
195
195
 
@@ -226,14 +226,14 @@ changes into logical commits and push.
226
226
  When reviewing or merging community PRs, **always AskUserQuestion** before accepting
227
227
  any commit that:
228
228
 
229
- 1. **Touches ETHOS.md** — this file is Garry's personal builder philosophy. No edits
230
- from external contributors or AI agents, period.
229
+ 1. **Touches ETHOS.md** — this file is The project's builder philosophy. No edits
230
+ from external contributors or AI agents, period.
231
231
  2. **Removes or softens promotional material** — YC references, founder perspective,
232
- and product voice are intentional. PRs that frame these as "unnecessary" or
233
- "too promotional" must be rejected.
234
- 3. **Changes Garry's voice** — the tone, humor, directness, and perspective in skill
235
- templates, CHANGELOG, and docs are not generic. PRs that rewrite voice to be
236
- more "neutral" or "professional" must be rejected.
232
+ and product voice are intentional. PRs that frame these as "unnecessary" or
233
+ "too promotional" must be rejected.
234
+ 3. **Changes The author's voice** — the tone, humor, directness, and perspective in skill
235
+ templates, CHANGELOG, and docs are not generic. PRs that rewrite voice to be
236
+ more "neutral" or "professional" must be rejected.
237
237
 
238
238
  Even if the agent strongly believes a change improves the project, these three
239
239
  categories require explicit user approval via AskUserQuestion. No exceptions.
@@ -249,31 +249,48 @@ not what was already on main.
249
249
  - At `/ship` time (Step 5), not during development or mid-branch.
250
250
  - The entry covers ALL commits on this branch vs the base branch.
251
251
  - Never fold new work into an existing CHANGELOG entry from a prior version that
252
- already landed on main. If main has v0.10.0.0 and your branch adds features,
253
- bump to v0.10.1.0 with a new entry — don't edit the v0.10.0.0 entry.
252
+ already landed on main. If main has v0.10.0.0 and your branch adds features,
253
+ bump to v0.10.1.0 with a new entry — don't edit the v0.10.0.0 entry.
254
254
 
255
255
  **Key questions before writing:**
256
256
  1. What branch am I on? What did THIS branch change?
257
257
  2. Is the base branch version already released? (If yes, bump and create new entry.)
258
258
  3. Does an existing entry on this branch already cover earlier work? (If yes, replace
259
- it with one unified entry for the final version.)
259
+ it with one unified entry for the final version.)
260
+
261
+ **Merging main does NOT mean adopting main's version.** When you merge origin/main into
262
+ a feature branch, main may bring new CHANGELOG entries and a higher VERSION. Your branch
263
+ still needs its OWN version bump on top. If main is at v0.13.8.0 and your branch adds
264
+ features, bump to v0.13.9.0 with a new entry. Never jam your changes into an entry that
265
+ already landed on main. Your entry goes on top because your branch lands next.
266
+
267
+ **After merging main, always check:**
268
+ - Does CHANGELOG have your branch's own entry separate from main's entries?
269
+ - Is VERSION higher than main's VERSION?
270
+ - Is your entry the topmost entry in CHANGELOG (above main's latest)?
271
+ If any answer is no, fix it before continuing.
272
+
273
+ **After any CHANGELOG edit that moves, adds, or removes entries,** immediately run
274
+ `grep "^## \[" CHANGELOG.md` and verify the full version sequence is contiguous
275
+ with no gaps or duplicates before committing. If a version is missing, the edit
276
+ broke something. Fix it before moving on.
260
277
 
261
278
  CHANGELOG.md is **for users**, not contributors. Write it like product release notes:
262
279
 
263
280
  - Lead with what the user can now **do** that they couldn't before. Sell the feature.
264
281
  - Use plain language, not implementation details. "You can now..." not "Refactored the..."
265
282
  - **Never mention TODOS.md, internal tracking, eval infrastructure, or contributor-facing
266
- details.** These are invisible to users and meaningless to them.
283
+ details.** These are invisible to users and meaningless to them.
267
284
  - Put contributor/internal changes in a separate "For contributors" section at the bottom.
268
285
  - Every entry should make someone think "oh nice, I want to try that."
269
286
  - No jargon: say "every question now tells you which project and branch you're in" not
270
- "AskUserQuestion format standardized across skill templates via preamble resolver."
287
+ "AskUserQuestion format standardized across skill templates via preamble resolver."
271
288
 
272
289
  ## AI effort compression
273
290
 
274
- When estimating or discussing effort, always show both human-team and CC+gstack time:
291
+ When estimating or discussing effort, always show both human-team and CC+opengstack time:
275
292
 
276
- | Task type | Human team | CC+gstack | Compression |
293
+ | Task type | Human team | CC+opengstack | Compression |
277
294
  |-----------|-----------|-----------|-------------|
278
295
  | Boilerplate / scaffolding | 2 days | 15 min | ~100x |
279
296
  | Test writing | 1 day | 15 min | ~50x |
@@ -301,7 +318,7 @@ builder philosophy.
301
318
 
302
319
  ## Local plans
303
320
 
304
- Contributors can store long-range vision docs and design documents in `~/.gstack-dev/plans/`.
321
+ Contributors can store long-range vision docs and design documents in `~/.opengstack-dev/plans/`.
305
322
  These are local-only (not checked in). When reviewing TODOS.md, check `plans/` for candidates
306
323
  that may be ready to promote to TODOs or implement.
307
324
 
@@ -316,7 +333,7 @@ regenerated SKILL.md shifts prompt context.
316
333
  1. Run the same eval on main (or base branch) and show it fails there too
317
334
  2. If it passes on main but fails on the branch — it IS your change. Trace the blame.
318
335
  3. If you can't run on main, say "unverified — may or may not be related" and flag it
319
- as a risk in the PR body
336
+ as a risk in the PR body
320
337
 
321
338
  "Pre-existing" without receipts is a lazy claim. Prove it or don't say it.
322
339
 
@@ -359,12 +376,12 @@ Also when running targeted E2E tests to debug failures:
359
376
 
360
377
  ## Deploying to the active skill
361
378
 
362
- The active skill lives at `~/.claude/skills/gstack/`. After making changes:
379
+ The active skill lives at `~/.claude/skills/opengstack/`. After making changes:
363
380
 
364
381
  1. Push your branch
365
- 2. Fetch and reset in the skill directory: `cd ~/.claude/skills/gstack && git fetch origin && git reset --hard origin/main`
366
- 3. Rebuild: `cd ~/.claude/skills/gstack && bun run build`
382
+ 2. Fetch and reset in the skill directory: `cd ~/.claude/skills/opengstack && git fetch origin && git reset --hard origin/main`
383
+ 3. Rebuild: `cd ~/.claude/skills/opengstack && bun run build`
367
384
 
368
385
  Or copy the binaries directly:
369
- - `cp browse/dist/browse ~/.claude/skills/gstack/browse/dist/browse`
370
- - `cp design/dist/design ~/.claude/skills/gstack/design/dist/design`
386
+ - `cp browse/dist/browse ~/.claude/skills/opengstack/browse/dist/browse`
387
+ - `cp design/dist/design ~/.claude/skills/opengstack/design/dist/design`
package/README.md CHANGED
@@ -13,9 +13,9 @@ Skills auto-install to `~/.claude/skills/` via symlink.
13
13
  ## CLI
14
14
 
15
15
  ```bash
16
- opengstack --help # Show all commands
17
- opengstack --list # List available skills
18
- opengstack --install # Re-install skills (if needed)
16
+ opengstack --help # Show all commands
17
+ opengstack --list # List available skills
18
+ opengstack --install # Re-install skills (if needed)
19
19
  ```
20
20
 
21
21
  ## Usage
@@ -29,6 +29,8 @@ In opencode/Claude, type any skill name with `/`:
29
29
  | `/plan-eng-review` | Lock architecture & edge cases |
30
30
  | `/plan-design-review` | Rate design decisions 0-10 |
31
31
  | `/design-consultation` | Build a design system from scratch |
32
+ | `/design-shotgun` | Generate multiple design variants |
33
+ | `/design-html` | Production HTML with Pretext |
32
34
  | `/design-review` | Design audit + fix loop |
33
35
  | `/review` | Pre-landing PR review |
34
36
  | `/investigate` | Root-cause debugging |
@@ -40,6 +42,8 @@ In opencode/Claude, type any skill name with `/`:
40
42
  | `/retro` | Weekly engineering retrospective |
41
43
  | `/browse` | Headless browser (real Chromium) |
42
44
  | `/setup-browser-cookies` | Import cookies for auth testing |
45
+ | `/setup-deploy` | One-time deploy configurator |
46
+ | `/connect-chrome` | Launch Chrome with side panel |
43
47
  | `/careful` | Warn before destructive ops |
44
48
  | `/freeze` | Lock edits to one directory |
45
49
  | `/guard` | Activate careful + freeze |
@@ -49,10 +53,11 @@ In opencode/Claude, type any skill name with `/`:
49
53
  | `/canary` | Post-deploy monitoring |
50
54
  | `/benchmark` | Performance regression detection |
51
55
  | `/cso` | Security audit |
56
+ | `/learn` | Manage project learnings |
52
57
 
53
- ## Why OpenGStack?
58
+ ## Why opengstack?
54
59
 
55
- Forked from [garrytan/gstack](https://github.com/garrytan/gstack) with telemetry and vendor references removed. Your usage stays local.
60
+ Forked from gstack with telemetry and vendor references removed. Your usage stays local.
56
61
 
57
62
  ## License
58
63