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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,16 @@
1
1
# Changelog
2
2
3
+
## 0.4.3 — 2026-03-16
4
+
5
+
-**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
+
-**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.
7
+
8
+
### For contributors
9
+
10
+
- Merged ELI16 rules into base AskUserQuestion format — one format instead of two, no `_SESSIONS >= 3` conditional.
11
+
- Added `_BRANCH` detection to preamble bash block (`git branch --show-current` with fallback).
12
+
- Added regression guard tests for branch detection and simplification rules.
13
+
3
14
## 0.4.2 — 2026-03-16
4
15
5
16
-**`$B js "await fetch(...)"` now just works.** Any `await` expression in `$B js` or `$B eval` is automatically wrapped in an async context. No more `SyntaxError: await is only valid in async functions`. Single-line eval files return values directly; multi-line files use explicit `return`.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
32
34
33
35
## AskUserQuestion Format
34
36
35
37
**ALWAYS follow this structure for every AskUserQuestion call:**
36
-
1.Context: project name, current branch, what we're working on (1-2 sentences)
37
-
2.The specific question or decision point
38
-
3.`RECOMMENDATION: Choose [X] because [one-line reason]`
39
-
4. Lettered options: `A) ... B) ... C) ...`
38
+
1.**Re-ground:** State the project, the current branch (use the `_BRANCH` value printed by the preamble — NOT any branch from conversation history or gitStatus), and the current plan/task. (1-2 sentences)
39
+
2.**Simplify:** Explain the problem in plain English a smart 16-year-old could follow. No raw function names, no internal jargon, no implementation details. Use concrete examples and analogies. Say what it DOES, not what it's called.
40
+
3.**Recommend:**`RECOMMENDATION: Choose [X] because [one-line reason]`
41
+
4.**Options:**Lettered options: `A) ... B) ... C) ...`
40
42
41
-
If `_SESSIONS` is 3 or more: the user is juggling multiple gstack sessions and context-switching heavily. **ELI16 mode** — they may not remember what this conversation is about. Every AskUserQuestion MUST re-ground them: state the project, the branch, the current plan/task, then the specific problem, THEN the recommendation and options. Be extra clear and self-contained — assume they haven't looked at this window in 20 minutes.
43
+
Assume the user hasn't looked at this window in 20 minutes and doesn't have the code open. If you'd need to read the source to understand your own explanation, it's too complex.
42
44
43
45
Per-skill instructions may add additional formatting rules on top of this baseline.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
32
34
33
35
## AskUserQuestion Format
34
36
35
37
**ALWAYS follow this structure for every AskUserQuestion call:**
36
-
1.Context: project name, current branch, what we're working on (1-2 sentences)
37
-
2.The specific question or decision point
38
-
3.`RECOMMENDATION: Choose [X] because [one-line reason]`
39
-
4. Lettered options: `A) ... B) ... C) ...`
38
+
1.**Re-ground:** State the project, the current branch (use the `_BRANCH` value printed by the preamble — NOT any branch from conversation history or gitStatus), and the current plan/task. (1-2 sentences)
39
+
2.**Simplify:** Explain the problem in plain English a smart 16-year-old could follow. No raw function names, no internal jargon, no implementation details. Use concrete examples and analogies. Say what it DOES, not what it's called.
40
+
3.**Recommend:**`RECOMMENDATION: Choose [X] because [one-line reason]`
41
+
4.**Options:**Lettered options: `A) ... B) ... C) ...`
40
42
41
-
If `_SESSIONS` is 3 or more: the user is juggling multiple gstack sessions and context-switching heavily. **ELI16 mode** — they may not remember what this conversation is about. Every AskUserQuestion MUST re-ground them: state the project, the branch, the current plan/task, then the specific problem, THEN the recommendation and options. Be extra clear and self-contained — assume they haven't looked at this window in 20 minutes.
43
+
Assume the user hasn't looked at this window in 20 minutes and doesn't have the code open. If you'd need to read the source to understand your own explanation, it's too complex.
42
44
43
45
Per-skill instructions may add additional formatting rules on top of this baseline.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
32
34
33
35
## AskUserQuestion Format
34
36
35
37
**ALWAYS follow this structure for every AskUserQuestion call:**
36
-
1.Context: project name, current branch, what we're working on (1-2 sentences)
37
-
2.The specific question or decision point
38
-
3.`RECOMMENDATION: Choose [X] because [one-line reason]`
39
-
4. Lettered options: `A) ... B) ... C) ...`
38
+
1.**Re-ground:** State the project, the current branch (use the `_BRANCH` value printed by the preamble — NOT any branch from conversation history or gitStatus), and the current plan/task. (1-2 sentences)
39
+
2.**Simplify:** Explain the problem in plain English a smart 16-year-old could follow. No raw function names, no internal jargon, no implementation details. Use concrete examples and analogies. Say what it DOES, not what it's called.
40
+
3.**Recommend:**`RECOMMENDATION: Choose [X] because [one-line reason]`
41
+
4.**Options:**Lettered options: `A) ... B) ... C) ...`
40
42
41
-
If `_SESSIONS` is 3 or more: the user is juggling multiple gstack sessions and context-switching heavily. **ELI16 mode** — they may not remember what this conversation is about. Every AskUserQuestion MUST re-ground them: state the project, the branch, the current plan/task, then the specific problem, THEN the recommendation and options. Be extra clear and self-contained — assume they haven't looked at this window in 20 minutes.
43
+
Assume the user hasn't looked at this window in 20 minutes and doesn't have the code open. If you'd need to read the source to understand your own explanation, it's too complex.
42
44
43
45
Per-skill instructions may add additional formatting rules on top of this baseline.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
32
34
33
35
## AskUserQuestion Format
34
36
35
37
**ALWAYS follow this structure for every AskUserQuestion call:**
36
-
1.Context: project name, current branch, what we're working on (1-2 sentences)
37
-
2.The specific question or decision point
38
-
3.`RECOMMENDATION: Choose [X] because [one-line reason]`
39
-
4. Lettered options: `A) ... B) ... C) ...`
38
+
1.**Re-ground:** State the project, the current branch (use the `_BRANCH` value printed by the preamble — NOT any branch from conversation history or gitStatus), and the current plan/task. (1-2 sentences)
39
+
2.**Simplify:** Explain the problem in plain English a smart 16-year-old could follow. No raw function names, no internal jargon, no implementation details. Use concrete examples and analogies. Say what it DOES, not what it's called.
40
+
3.**Recommend:**`RECOMMENDATION: Choose [X] because [one-line reason]`
41
+
4.**Options:**Lettered options: `A) ... B) ... C) ...`
40
42
41
-
If `_SESSIONS` is 3 or more: the user is juggling multiple gstack sessions and context-switching heavily. **ELI16 mode** — they may not remember what this conversation is about. Every AskUserQuestion MUST re-ground them: state the project, the branch, the current plan/task, then the specific problem, THEN the recommendation and options. Be extra clear and self-contained — assume they haven't looked at this window in 20 minutes.
43
+
Assume the user hasn't looked at this window in 20 minutes and doesn't have the code open. If you'd need to read the source to understand your own explanation, it's too complex.
42
44
43
45
Per-skill instructions may add additional formatting rules on top of this baseline.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
31
33
32
34
## AskUserQuestion Format
33
35
34
36
**ALWAYS follow this structure for every AskUserQuestion call:**
35
-
1.Context: project name, current branch, what we're working on (1-2 sentences)
36
-
2.The specific question or decision point
37
-
3.`RECOMMENDATION: Choose [X] because [one-line reason]`
38
-
4. Lettered options: `A) ... B) ... C) ...`
37
+
1.**Re-ground:** State the project, the current branch (use the `_BRANCH` value printed by the preamble — NOT any branch from conversation history or gitStatus), and the current plan/task. (1-2 sentences)
38
+
2.**Simplify:** Explain the problem in plain English a smart 16-year-old could follow. No raw function names, no internal jargon, no implementation details. Use concrete examples and analogies. Say what it DOES, not what it's called.
39
+
3.**Recommend:**`RECOMMENDATION: Choose [X] because [one-line reason]`
40
+
4.**Options:**Lettered options: `A) ... B) ... C) ...`
39
41
40
-
If `_SESSIONS` is 3 or more: the user is juggling multiple gstack sessions and context-switching heavily. **ELI16 mode** — they may not remember what this conversation is about. Every AskUserQuestion MUST re-ground them: state the project, the branch, the current plan/task, then the specific problem, THEN the recommendation and options. Be extra clear and self-contained — assume they haven't looked at this window in 20 minutes.
42
+
Assume the user hasn't looked at this window in 20 minutes and doesn't have the code open. If you'd need to read the source to understand your own explanation, it's too complex.
41
43
42
44
Per-skill instructions may add additional formatting rules on top of this baseline.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
36
38
37
39
## AskUserQuestion Format
38
40
39
41
**ALWAYS follow this structure for every AskUserQuestion call:**
40
-
1.Context: project name, current branch, what we're working on (1-2 sentences)
41
-
2.The specific question or decision point
42
-
3.`RECOMMENDATION: Choose [X] because [one-line reason]`
43
-
4. Lettered options: `A) ... B) ... C) ...`
42
+
1.**Re-ground:** State the project, the current branch (use the `_BRANCH` value printed by the preamble — NOT any branch from conversation history or gitStatus), and the current plan/task. (1-2 sentences)
43
+
2.**Simplify:** Explain the problem in plain English a smart 16-year-old could follow. No raw function names, no internal jargon, no implementation details. Use concrete examples and analogies. Say what it DOES, not what it's called.
44
+
3.**Recommend:**`RECOMMENDATION: Choose [X] because [one-line reason]`
45
+
4.**Options:**Lettered options: `A) ... B) ... C) ...`
44
46
45
-
If `_SESSIONS` is 3 or more: the user is juggling multiple gstack sessions and context-switching heavily. **ELI16 mode** — they may not remember what this conversation is about. Every AskUserQuestion MUST re-ground them: state the project, the branch, the current plan/task, then the specific problem, THEN the recommendation and options. Be extra clear and self-contained — assume they haven't looked at this window in 20 minutes.
47
+
Assume the user hasn't looked at this window in 20 minutes and doesn't have the code open. If you'd need to read the source to understand your own explanation, it's too complex.
46
48
47
49
Per-skill instructions may add additional formatting rules on top of this baseline.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
31
33
32
34
## AskUserQuestion Format
33
35
34
36
**ALWAYS follow this structure for every AskUserQuestion call:**
35
-
1.Context: project name, current branch, what we're working on (1-2 sentences)
36
-
2.The specific question or decision point
37
-
3.`RECOMMENDATION: Choose [X] because [one-line reason]`
38
-
4. Lettered options: `A) ... B) ... C) ...`
37
+
1.**Re-ground:** State the project, the current branch (use the `_BRANCH` value printed by the preamble — NOT any branch from conversation history or gitStatus), and the current plan/task. (1-2 sentences)
38
+
2.**Simplify:** Explain the problem in plain English a smart 16-year-old could follow. No raw function names, no internal jargon, no implementation details. Use concrete examples and analogies. Say what it DOES, not what it's called.
39
+
3.**Recommend:**`RECOMMENDATION: Choose [X] because [one-line reason]`
40
+
4.**Options:**Lettered options: `A) ... B) ... C) ...`
39
41
40
-
If `_SESSIONS` is 3 or more: the user is juggling multiple gstack sessions and context-switching heavily. **ELI16 mode** — they may not remember what this conversation is about. Every AskUserQuestion MUST re-ground them: state the project, the branch, the current plan/task, then the specific problem, THEN the recommendation and options. Be extra clear and self-contained — assume they haven't looked at this window in 20 minutes.
42
+
Assume the user hasn't looked at this window in 20 minutes and doesn't have the code open. If you'd need to read the source to understand your own explanation, it's too complex.
41
43
42
44
Per-skill instructions may add additional formatting rules on top of this baseline.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
32
34
33
35
## AskUserQuestion Format
34
36
35
37
**ALWAYS follow this structure for every AskUserQuestion call:**
36
-
1.Context: project name, current branch, what we're working on (1-2 sentences)
37
-
2.The specific question or decision point
38
-
3.`RECOMMENDATION: Choose [X] because [one-line reason]`
39
-
4. Lettered options: `A) ... B) ... C) ...`
38
+
1.**Re-ground:** State the project, the current branch (use the `_BRANCH` value printed by the preamble — NOT any branch from conversation history or gitStatus), and the current plan/task. (1-2 sentences)
39
+
2.**Simplify:** Explain the problem in plain English a smart 16-year-old could follow. No raw function names, no internal jargon, no implementation details. Use concrete examples and analogies. Say what it DOES, not what it's called.
40
+
3.**Recommend:**`RECOMMENDATION: Choose [X] because [one-line reason]`
41
+
4.**Options:**Lettered options: `A) ... B) ... C) ...`
40
42
41
-
If `_SESSIONS` is 3 or more: the user is juggling multiple gstack sessions and context-switching heavily. **ELI16 mode** — they may not remember what this conversation is about. Every AskUserQuestion MUST re-ground them: state the project, the branch, the current plan/task, then the specific problem, THEN the recommendation and options. Be extra clear and self-contained — assume they haven't looked at this window in 20 minutes.
43
+
Assume the user hasn't looked at this window in 20 minutes and doesn't have the code open. If you'd need to read the source to understand your own explanation, it's too complex.
42
44
43
45
Per-skill instructions may add additional formatting rules on top of this baseline.
0 commit comments