mirror of https://github.com/garrytan/gstack.git
chore: regenerate gstack-submit/SKILL.md after merge
Picks up preamble changes from main: conditional telemetry calls, SKILL_PREFIX awareness, and local JSONL always-log. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
5ff9926353
commit
3f00c0852c
|
|
@ -34,8 +34,10 @@ _PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null
|
||||||
_PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no")
|
_PROACTIVE_PROMPTED=$([ -f ~/.gstack/.proactive-prompted ] && echo "yes" || echo "no")
|
||||||
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
|
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
|
||||||
echo "BRANCH: $_BRANCH"
|
echo "BRANCH: $_BRANCH"
|
||||||
|
_SKILL_PREFIX=$(~/.claude/skills/gstack/bin/gstack-config get skill_prefix 2>/dev/null || echo "false")
|
||||||
echo "PROACTIVE: $_PROACTIVE"
|
echo "PROACTIVE: $_PROACTIVE"
|
||||||
echo "PROACTIVE_PROMPTED: $_PROACTIVE_PROMPTED"
|
echo "PROACTIVE_PROMPTED: $_PROACTIVE_PROMPTED"
|
||||||
|
echo "SKILL_PREFIX: $_SKILL_PREFIX"
|
||||||
source <(~/.claude/skills/gstack/bin/gstack-repo-mode 2>/dev/null) || true
|
source <(~/.claude/skills/gstack/bin/gstack-repo-mode 2>/dev/null) || true
|
||||||
REPO_MODE=${REPO_MODE:-unknown}
|
REPO_MODE=${REPO_MODE:-unknown}
|
||||||
echo "REPO_MODE: $REPO_MODE"
|
echo "REPO_MODE: $REPO_MODE"
|
||||||
|
|
@ -50,7 +52,15 @@ echo "TEL_PROMPTED: $_TEL_PROMPTED"
|
||||||
mkdir -p ~/.gstack/analytics
|
mkdir -p ~/.gstack/analytics
|
||||||
echo '{"skill":"gstack-submit","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
|
echo '{"skill":"gstack-submit","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
|
||||||
# zsh-compatible: use find instead of glob to avoid NOMATCH error
|
# zsh-compatible: use find instead of glob to avoid NOMATCH error
|
||||||
for _PF in $(find ~/.gstack/analytics -maxdepth 1 -name '.pending-*' 2>/dev/null); do [ -f "$_PF" ] && ~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true; break; done
|
for _PF in $(find ~/.gstack/analytics -maxdepth 1 -name '.pending-*' 2>/dev/null); do
|
||||||
|
if [ -f "$_PF" ]; then
|
||||||
|
if [ "$_TEL" != "off" ] && [ -x "~/.claude/skills/gstack/bin/gstack-telemetry-log" ]; then
|
||||||
|
~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
rm -f "$_PF" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
done
|
||||||
```
|
```
|
||||||
|
|
||||||
If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not
|
If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not
|
||||||
|
|
@ -59,6 +69,11 @@ types (e.g., /qa, /ship). If you would have auto-invoked a skill, instead briefl
|
||||||
"I think /skillname might help here — want me to run it?" and wait for confirmation.
|
"I think /skillname might help here — want me to run it?" and wait for confirmation.
|
||||||
The user opted out of proactive behavior.
|
The user opted out of proactive behavior.
|
||||||
|
|
||||||
|
If `SKILL_PREFIX` is `"true"`, the user has namespaced skill names. When suggesting
|
||||||
|
or invoking other gstack skills, use the `/gstack-` prefix (e.g., `/gstack-qa` instead
|
||||||
|
of `/qa`, `/gstack-ship` instead of `/ship`). Disk paths are unaffected — always use
|
||||||
|
`~/.claude/skills/gstack/[skill-name]/SKILL.md` for reading skill files.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
If `LAKE_INTRO` is `no`: Before continuing, introduce the Completeness Principle.
|
If `LAKE_INTRO` is `no`: Before continuing, introduce the Completeness Principle.
|
||||||
|
|
@ -277,15 +292,20 @@ Run this bash:
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
_TEL_DUR=$(( _TEL_END - _TEL_START ))
|
_TEL_DUR=$(( _TEL_END - _TEL_START ))
|
||||||
rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true
|
rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true
|
||||||
~/.claude/skills/gstack/bin/gstack-telemetry-log \
|
# Local analytics (always available, no binary needed)
|
||||||
--skill "SKILL_NAME" --duration "$_TEL_DUR" --outcome "OUTCOME" \
|
echo '{"skill":"SKILL_NAME","duration_s":"'"$_TEL_DUR"'","outcome":"OUTCOME","browse":"USED_BROWSE","session":"'"$_SESSION_ID"'","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
|
||||||
--used-browse "USED_BROWSE" --session-id "$_SESSION_ID" 2>/dev/null &
|
# Remote telemetry (opt-in, requires binary)
|
||||||
|
if [ "$_TEL" != "off" ] && [ -x ~/.claude/skills/gstack/bin/gstack-telemetry-log ]; then
|
||||||
|
~/.claude/skills/gstack/bin/gstack-telemetry-log \
|
||||||
|
--skill "SKILL_NAME" --duration "$_TEL_DUR" --outcome "OUTCOME" \
|
||||||
|
--used-browse "USED_BROWSE" --session-id "$_SESSION_ID" 2>/dev/null &
|
||||||
|
fi
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace `SKILL_NAME` with the actual skill name from frontmatter, `OUTCOME` with
|
Replace `SKILL_NAME` with the actual skill name from frontmatter, `OUTCOME` with
|
||||||
success/error/abort, and `USED_BROWSE` with true/false based on whether `$B` was used.
|
success/error/abort, and `USED_BROWSE` with true/false based on whether `$B` was used.
|
||||||
If you cannot determine the outcome, use "unknown". This runs in the background and
|
If you cannot determine the outcome, use "unknown". The local JSONL always logs. The
|
||||||
never blocks the user.
|
remote binary only runs if telemetry is not off and the binary exists.
|
||||||
|
|
||||||
## Plan Status Footer
|
## Plan Status Footer
|
||||||
|
|
||||||
|
|
@ -340,7 +360,12 @@ fi
|
||||||
If `NEEDS_SETUP`:
|
If `NEEDS_SETUP`:
|
||||||
1. Tell the user: "gstack browse needs a one-time build (~10 seconds). OK to proceed?" Then STOP and wait.
|
1. Tell the user: "gstack browse needs a one-time build (~10 seconds). OK to proceed?" Then STOP and wait.
|
||||||
2. Run: `cd <SKILL_DIR> && ./setup`
|
2. Run: `cd <SKILL_DIR> && ./setup`
|
||||||
3. If `bun` is not installed: `curl -fsSL https://bun.sh/install | bash`
|
3. If `bun` is not installed:
|
||||||
|
```bash
|
||||||
|
if ! command -v bun >/dev/null 2>&1; then
|
||||||
|
curl -fsSL https://bun.sh/install | BUN_VERSION=1.3.10 bash
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
# /gstack-submit — Showcase Your Build
|
# /gstack-submit — Showcase Your Build
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue