Skip to content

Commit 4f614f0

Browse files
chore: refresh gstack resources
1 parent 39b82a2 commit 4f614f0

29 files changed

Lines changed: 192 additions & 35 deletions

.github-gstack-intelligence/ETHOS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
66

77
> [!CAUTION]
88
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
9-
> Imported from `garrytan/gstack` @ `6169273d16b7` from `ETHOS.md`.
9+
> Imported from `garrytan/gstack` @ `cf73db5f1904` from `ETHOS.md`.
1010
> Re-run `run-refresh-gstack` to copy upstream gstack changes back into this repository.
1111
# gstack Builder Ethos
1212

.github-gstack-intelligence/skills/autoplan.md

Lines changed: 142 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ name: autoplan
33
preamble-tier: 3
44
version: 1.0.0
55
description: |
6-
Auto-review pipeline — reads the full CEO, design, and eng review skills from disk
6+
Auto-review pipeline — reads the full CEO, design, eng, and DX review skills from disk
77
and runs them sequentially with auto-decisions using 6 decision principles. Surfaces
88
taste decisions (close approaches, borderline scope, codex disagreements) at a final
99
approval gate. One command, fully reviewed plan out.
1010
Use when asked to "auto review", "autoplan", "run all reviews", "review this plan
1111
automatically", or "make the decisions for me".
1212
Proactively suggest when the user has a plan file and wants to run the full review
1313
gauntlet without answering 15-30 intermediate questions. (gstack)
14+
voice-triggers:
15+
- "auto plan"
16+
- "automatic review"
1417
benefits-from: [office-hours]
1518
allowed-tools:
1619
- Bash
@@ -31,7 +34,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
3134
> [!CAUTION]
3235
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
3336
> Generated by `.github-gstack-intelligence/lifecycle/refresh.ts`.
34-
> Source: `garrytan/gstack` @ `6169273d16b7` from `autoplan/SKILL.md.tmpl`.
37+
> Source: `garrytan/gstack` @ `cf73db5f1904` from `autoplan/SKILL.md.tmpl`.
3538
> This copy is adapted for GitHub-native execution and refresh-time extraction.
3639
> Re-run `run-refresh-gstack` to pull upstream gstack changes back into this repository.
3740
@@ -51,7 +54,7 @@ Check for prior skill outputs in `.github-gstack-intelligence/state/results/` th
5154

5255
One command. Rough plan in, fully reviewed plan out.
5356

54-
/autoplan reads the full CEO, design, and eng review skill files from disk and follows
57+
/autoplan reads the full CEO, design, eng, and DX review skill files from disk and follows
5558
them at full depth — same rigor, same sections, same methodology as running each skill
5659
manually. The only difference: intermediate GitHub follow-up comment calls are auto-decided using
5760
the 6 principles below. Taste decisions (where reasonable people could disagree) are
@@ -115,7 +118,7 @@ preference." The user still decides, but the framing is appropriately urgent.
115118

116119
## Sequential Execution — MANDATORY
117120

118-
Phases MUST execute in strict order: CEO → Design → Eng.
121+
Phases MUST execute in strict order: CEO → Design → Eng → DX.
119122
Each phase MUST complete fully before the next begins.
120123
NEVER run phases in parallel — each builds on the previous.
121124

@@ -207,13 +210,22 @@ Then prepend a one-line HTML comment to the plan file:
207210
- Detect UI scope: grep the plan for view/rendering terms (component, screen, form,
208211
button, modal, layout, dashboard, sidebar, nav, dialog). Require 2+ matches. Exclude
209212
false positives ("page" alone, "UI" in acronyms).
213+
- Detect DX scope: grep the plan for developer-facing terms (API, endpoint, REST,
214+
GraphQL, gRPC, webhook, CLI, command, flag, argument, terminal, shell, SDK, library,
215+
package, npm, pip, import, require, SKILL.md, skill template, Claude Code, MCP, agent,
216+
OpenClaw, action, developer docs, getting started, onboarding, integration, debug,
217+
implement, error message). Require 2+ matches. Also trigger DX scope if the product IS
218+
a developer tool (the plan describes something developers install, integrate, or build
219+
on top of) or if an AI agent is the primary user (OpenClaw actions, Claude Code skills,
220+
MCP servers).
210221

211222
### Step 3: Load skill files from disk
212223

213224
Read each file using the Read tool:
214225
- `.github-gstack-intelligence/skills/plan-ceo-review/SKILL.md`
215226
- `.github-gstack-intelligence/skills/plan-design-review/SKILL.md` (only if UI scope detected)
216227
- `.github-gstack-intelligence/skills/plan-eng-review/SKILL.md`
228+
- `.github-gstack-intelligence/skills/plan-devex-review/SKILL.md` (only if DX scope detected)
217229

218230
**Section skip list — when following a loaded skill file, SKIP these sections
219231
(they are already handled by /autoplan):**
@@ -232,7 +244,7 @@ Read each file using the Read tool:
232244

233245
Follow ONLY the review-specific methodology, sections, and required outputs.
234246

235-
Output: "Here's what I'm working with: [plan summary]. UI scope: [yes/no].
247+
Output: "Here's what I'm working with: [plan summary]. UI scope: [yes/no]. DX scope: [yes/no].
236248
Loaded review skills from disk. Starting full review pipeline with auto-decisions."
237249

238250
---
@@ -532,6 +544,109 @@ Missing voice = N/A (not CONFIRMED). Single critical finding from one voice = fl
532544
- Completion Summary (the full summary from the Eng skill)
533545
- TODOS.md updates (collected from all phases)
534546

547+
**PHASE 3 COMPLETE.** Emit phase-transition summary:
548+
> **Phase 3 complete.** Codex: [N concerns]. Claude subagent: [N issues].
549+
> Consensus: [X/6 confirmed, Y disagreements → surfaced at gate].
550+
> Passing to Phase 3.5 (DX Review) or Phase 4 (Final Gate).
551+
552+
---
553+
554+
## Phase 3.5: DX Review (conditional — skip if no developer-facing scope)
555+
556+
Follow plan-devex-review/SKILL.md — all 8 DX dimensions, full depth.
557+
Override: every GitHub follow-up comment → auto-decide using the 6 principles.
558+
559+
**Skip condition:** If DX scope was NOT detected in Phase 0, skip this phase entirely.
560+
Log: "Phase 3.5 skipped — no developer-facing scope detected."
561+
562+
**Override rules:**
563+
- Focus areas: all relevant DX dimensions (P1)
564+
- Getting started friction: always optimize toward fewer steps (P5, simpler over clever)
565+
- Error message quality: always require problem + cause + fix (P1, completeness)
566+
- API/CLI naming: consistency wins over cleverness (P5)
567+
- DX taste decisions (e.g., opinionated defaults vs flexibility): mark TASTE DECISION
568+
- Dual voices: always run BOTH Claude subagent AND Codex if available (P6).
569+
570+
**Codex DX voice** (via Bash):
571+
```bash
572+
_REPO_ROOT=$(git rev-parse --show-toplevel) || { echo "ERROR: not in a git repo" >&2; exit 1; }
573+
codex exec "IMPORTANT: Do NOT read or execute any SKILL.md files or files in skill definition directories (paths containing skills/gstack). These are AI assistant skill definitions meant for a different system. Stay focused on repository code only.
574+
575+
Read the plan file at <plan_path>. Evaluate this plan's developer experience.
576+
577+
Also consider these findings from prior review phases:
578+
CEO: <insert CEO consensus summary>
579+
Eng: <insert Eng consensus summary>
580+
581+
You are a developer who has never seen this product. Evaluate:
582+
1. Time to hello world: how many steps from zero to working? Target is under 5 minutes.
583+
2. Error messages: when something goes wrong, does the dev know what, why, and how to fix?
584+
3. API/CLI design: are names guessable? Are defaults sensible? Is it consistent?
585+
4. Docs: can a dev find what they need in under 2 minutes? Are examples copy-paste-complete?
586+
5. Upgrade path: can devs upgrade without fear? Migration guides? Deprecation warnings?
587+
Be adversarial. Think like a developer who is evaluating this against 3 competitors." -C "$_REPO_ROOT" -s read-only --enable web_search_cached
588+
```
589+
Timeout: 10 minutes
590+
591+
**Claude DX subagent** (via Agent tool):
592+
"Read the plan file at <plan_path>. You are an independent DX engineer
593+
reviewing this plan. You have NOT seen any prior review. Evaluate:
594+
1. Getting started: how many steps from zero to hello world? What's the TTHW?
595+
2. API/CLI ergonomics: naming consistency, sensible defaults, progressive disclosure?
596+
3. Error handling: does every error path specify problem + cause + fix + docs link?
597+
4. Documentation: copy-paste examples? Information architecture? Interactive elements?
598+
5. Escape hatches: can developers override every opinionated default?
599+
For each finding: what's wrong, severity (critical/high/medium), and the fix."
600+
NO prior-phase context — subagent must be truly independent.
601+
602+
Error handling: same as Phase 1 (both foreground/blocking, degradation matrix applies).
603+
604+
- DX choices: if codex disagrees with a DX decision with valid developer empathy reasoning
605+
→ TASTE DECISION. Scope changes both models agree on → USER CHALLENGE.
606+
607+
**Required execution checklist (DX):**
608+
609+
1. Step 0 (DX Scope Assessment): Auto-detect product type. Map the developer journey.
610+
Rate initial DX completeness 0-10. Assess TTHW.
611+
612+
2. Step 0.5 (Dual Voices): Run Claude subagent (foreground) first, then Codex. Present
613+
under CODEX SAYS (DX — developer experience challenge) and CLAUDE SUBAGENT
614+
(DX — independent review) headers. Produce DX consensus table:
615+
616+
```
617+
DX DUAL VOICES — CONSENSUS TABLE:
618+
═══════════════════════════════════════════════════════════════
619+
Dimension Claude Codex Consensus
620+
──────────────────────────────────── ─────── ─────── ─────────
621+
1. Getting started < 5 min? — — —
622+
2. API/CLI naming guessable? — — —
623+
3. Error messages actionable? — — —
624+
4. Docs findable & complete? — — —
625+
5. Upgrade path safe? — — —
626+
6. Dev environment friction-free? — — —
627+
═══════════════════════════════════════════════════════════════
628+
CONFIRMED = both agree. DISAGREE = models differ (→ taste decision).
629+
Missing voice = N/A (not CONFIRMED). Single critical finding from one voice = flagged regardless.
630+
```
631+
632+
3. Passes 1-8: Run each from loaded skill. Rate 0-10. Auto-decide each issue.
633+
DISAGREE items from consensus table → raised in the relevant pass with both perspectives.
634+
635+
4. DX Scorecard: Produce the full scorecard with all 8 dimensions scored.
636+
637+
**Mandatory outputs from Phase 3.5:**
638+
- Developer journey map (9-stage table)
639+
- Developer empathy narrative (first-person perspective)
640+
- DX Scorecard with all 8 dimension scores
641+
- DX Implementation Checklist
642+
- TTHW assessment with target
643+
644+
**PHASE 3.5 COMPLETE.** Emit phase-transition summary:
645+
> **Phase 3.5 complete.** DX overall: [N]/10. TTHW: [N] min → [target] min.
646+
> Codex: [N concerns]. Claude subagent: [N issues].
647+
> Consensus: [X/6 confirmed, Y disagreements → surfaced at gate].
648+
> Passing to Phase 4 (Final Gate).
649+
535650
---
536651

537652
## Decision Audit Trail
@@ -586,6 +701,15 @@ produced. Check the plan file and conversation for each item.
586701
- [ ] Dual voices ran (Codex + Claude subagent, or noted unavailable)
587702
- [ ] Eng consensus table produced
588703

704+
**Phase 3.5 (DX) outputs — only if DX scope detected:**
705+
- [ ] All 8 DX dimensions evaluated with scores
706+
- [ ] Developer journey map produced
707+
- [ ] Developer empathy narrative written
708+
- [ ] TTHW assessment with target
709+
- [ ] DX Implementation Checklist produced
710+
- [ ] Dual voices ran (or noted unavailable/skipped with phase)
711+
- [ ] DX consensus table produced
712+
589713
**Cross-phase:**
590714
- [ ] Cross-phase themes section written
591715

@@ -640,6 +764,8 @@ I recommend [X] — [principle]. But [Y] is also viable:
640764
- Design Voices: Codex [summary], Claude subagent [summary], Consensus [X/7 confirmed] (or "skipped")
641765
- Eng: [summary]
642766
- Eng Voices: Codex [summary], Claude subagent [summary], Consensus [X/6 confirmed]
767+
- DX: [summary or "skipped, no developer-facing scope"]
768+
- DX Voices: Codex [summary], Claude subagent [summary], Consensus [X/6 confirmed] (or "skipped")
643769
644770
### Cross-Phase Themes
645771
[For any concern that appeared in 2+ phases' dual voices independently:]
@@ -693,6 +819,11 @@ If Phase 2 ran (UI scope):
693819
.github-gstack-intelligence/state/results/review/review-log.json '{"skill":"plan-design-review","timestamp":"'"$TIMESTAMP"'","status":"STATUS","unresolved":N,"via":"autoplan","commit":"'"$COMMIT"'"}'
694820
```
695821

822+
If Phase 3.5 ran (DX scope):
823+
```bash
824+
.github-gstack-intelligence/state/results/review/review-log.json '{"skill":"plan-devex-review","timestamp":"'"$TIMESTAMP"'","status":"STATUS","initial_score":N,"overall_score":N,"product_type":"TYPE","tthw_current":"TTHW","tthw_target":"TARGET","unresolved":N,"via":"autoplan","commit":"'"$COMMIT"'"}'
825+
```
826+
696827
Dual voice logs (one per phase that ran):
697828
```bash
698829
.github-gstack-intelligence/state/results/review/review-log.json '{"skill":"autoplan-voices","timestamp":"'"$TIMESTAMP"'","status":"STATUS","source":"SOURCE","phase":"ceo","via":"autoplan","consensus_confirmed":N,"consensus_disagree":N,"commit":"'"$COMMIT"'"}'
@@ -705,6 +836,11 @@ If Phase 2 ran (UI scope), also log:
705836
.github-gstack-intelligence/state/results/review/review-log.json '{"skill":"autoplan-voices","timestamp":"'"$TIMESTAMP"'","status":"STATUS","source":"SOURCE","phase":"design","via":"autoplan","consensus_confirmed":N,"consensus_disagree":N,"commit":"'"$COMMIT"'"}'
706837
```
707838

839+
If Phase 3.5 ran (DX scope), also log:
840+
```bash
841+
.github-gstack-intelligence/state/results/review/review-log.json '{"skill":"autoplan-voices","timestamp":"'"$TIMESTAMP"'","status":"STATUS","source":"SOURCE","phase":"dx","via":"autoplan","consensus_confirmed":N,"consensus_disagree":N,"commit":"'"$COMMIT"'"}'
842+
```
843+
708844
SOURCE = "codex+subagent", "codex-only", "subagent-only", or "unavailable".
709845
Replace N values with actual consensus counts from the tables.
710846

@@ -719,4 +855,4 @@ Suggest next step: `/ship` when ready to create the PR.
719855
- **Log every decision.** No silent auto-decisions. Every choice gets a row in the audit trail.
720856
- **Full depth means full depth.** Do not compress or skip sections from the loaded skill files (except the skip list in Phase 0). "Full depth" means: read the code the section asks you to read, produce the outputs the section requires, identify every issue, and decide each one. A one-sentence summary of a section is not "full depth" — it is a skip. If you catch yourself writing fewer than 3 sentences for any review section, you are likely compressing.
721857
- **Artifacts are deliverables.** Test plan artifact, failure modes registry, error/rescue table, ASCII diagrams — these must exist on disk or in the plan file when the review completes. If they don't exist, the review is incomplete.
722-
- **Sequential order.** CEO → Design → Eng. Each phase builds on the last.
858+
- **Sequential order.** CEO → Design → Eng → DX. Each phase builds on the last.

.github-gstack-intelligence/skills/benchmark.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ description: |
88
Compares before/after on every PR. Tracks performance trends over time.
99
Use when: "performance", "benchmark", "page speed", "lighthouse", "web vitals",
1010
"bundle size", "load time". (gstack)
11+
voice-triggers:
12+
- "speed test"
13+
- "check performance"
1114
allowed-tools:
1215
- Bash
1316
- Read
@@ -24,7 +27,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
2427
> [!CAUTION]
2528
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
2629
> Generated by `.github-gstack-intelligence/lifecycle/refresh.ts`.
27-
> Source: `garrytan/gstack` @ `6169273d16b7` from `benchmark/SKILL.md.tmpl`.
30+
> Source: `garrytan/gstack` @ `cf73db5f1904` from `benchmark/SKILL.md.tmpl`.
2831
> This copy is adapted for GitHub-native execution and refresh-time extraction.
2932
> Re-run `run-refresh-gstack` to pull upstream gstack changes back into this repository.
3033

.github-gstack-intelligence/skills/canary.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
2424
> [!CAUTION]
2525
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
2626
> Generated by `.github-gstack-intelligence/lifecycle/refresh.ts`.
27-
> Source: `garrytan/gstack` @ `6169273d16b7` from `canary/SKILL.md.tmpl`.
27+
> Source: `garrytan/gstack` @ `cf73db5f1904` from `canary/SKILL.md.tmpl`.
2828
> This copy is adapted for GitHub-native execution and refresh-time extraction.
2929
> Re-run `run-refresh-gstack` to pull upstream gstack changes back into this repository.
3030

.github-gstack-intelligence/skills/cso.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ description: |
99
Two modes: daily (zero-noise, 8/10 confidence gate) and comprehensive (monthly deep
1010
scan, 2/10 bar). Trend tracking across audit runs.
1111
Use when: "security audit", "threat model", "pentest review", "OWASP", "CSO review". (gstack)
12+
voice-triggers:
13+
- "see-so"
14+
- "see so"
15+
- "security review"
16+
- "security check"
17+
- "vulnerability scan"
18+
- "run security"
1219
allowed-tools:
1320
- Bash
1421
- Read
@@ -28,7 +35,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
2835
> [!CAUTION]
2936
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
3037
> Generated by `.github-gstack-intelligence/lifecycle/refresh.ts`.
31-
> Source: `garrytan/gstack` @ `6169273d16b7` from `cso/SKILL.md.tmpl`.
38+
> Source: `garrytan/gstack` @ `cf73db5f1904` from `cso/SKILL.md.tmpl`.
3239
> This copy is adapted for GitHub-native execution and refresh-time extraction.
3340
> Re-run `run-refresh-gstack` to pull upstream gstack changes back into this repository.
3441

.github-gstack-intelligence/skills/design-consultation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
2929
> [!CAUTION]
3030
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
3131
> Generated by `.github-gstack-intelligence/lifecycle/refresh.ts`.
32-
> Source: `garrytan/gstack` @ `6169273d16b7` from `design-consultation/SKILL.md.tmpl`.
32+
> Source: `garrytan/gstack` @ `cf73db5f1904` from `design-consultation/SKILL.md.tmpl`.
3333
> This copy is adapted for GitHub-native execution and refresh-time extraction.
3434
> Re-run `run-refresh-gstack` to pull upstream gstack changes back into this repository.
3535

.github-gstack-intelligence/skills/design-review.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
2929
> [!CAUTION]
3030
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
3131
> Generated by `.github-gstack-intelligence/lifecycle/refresh.ts`.
32-
> Source: `garrytan/gstack` @ `6169273d16b7` from `design-review/SKILL.md.tmpl`.
32+
> Source: `garrytan/gstack` @ `cf73db5f1904` from `design-review/SKILL.md.tmpl`.
3333
> This copy is adapted for GitHub-native execution and refresh-time extraction.
3434
> Re-run `run-refresh-gstack` to pull upstream gstack changes back into this repository.
3535

.github-gstack-intelligence/skills/document-release.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
2626
> [!CAUTION]
2727
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
2828
> Generated by `.github-gstack-intelligence/lifecycle/refresh.ts`.
29-
> Source: `garrytan/gstack` @ `6169273d16b7` from `document-release/SKILL.md.tmpl`.
29+
> Source: `garrytan/gstack` @ `cf73db5f1904` from `document-release/SKILL.md.tmpl`.
3030
> This copy is adapted for GitHub-native execution and refresh-time extraction.
3131
> Re-run `run-refresh-gstack` to pull upstream gstack changes back into this repository.
3232

.github-gstack-intelligence/skills/investigate.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Do not edit this file unless you intentionally forfeit clean upgrades and re-imp
4141
> [!CAUTION]
4242
> **Do not touch** — imported from gstack. Editing this file forfeits clean upgrades.
4343
> Generated by `.github-gstack-intelligence/lifecycle/refresh.ts`.
44-
> Source: `garrytan/gstack` @ `6169273d16b7` from `investigate/SKILL.md.tmpl`.
44+
> Source: `garrytan/gstack` @ `cf73db5f1904` from `investigate/SKILL.md.tmpl`.
4545
> This copy is adapted for GitHub-native execution and refresh-time extraction.
4646
> Re-run `run-refresh-gstack` to pull upstream gstack changes back into this repository.
4747

0 commit comments

Comments
 (0)