mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-02 03:35:09 +02:00
feat: V1 upgrade migration — writing-style opt-out prompt
New migration script following existing v0.15.2.0.sh / v0.16.2.0.sh pattern. Writes a .writing-style-prompt-pending flag file on first run post-upgrade. The preamble's migration-prompt block reads the flag and fires a one-time AskUserQuestion offering the user a choice between the new default writing style and restoring V0 prose via \`gstack-config set explain_level terse\`. Idempotent via flag files; if the user has already set explain_level explicitly, counts as answered and skips. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
# Migration: v1.0.0.0 — V1 writing style prompt
|
||||
#
|
||||
# What changed: tier-≥2 skills default to ELI10 writing style (jargon glossed on
|
||||
# first use, outcome-framed questions, short sentences). Power users who prefer
|
||||
# the older V0 prose can set `gstack-config set explain_level terse`.
|
||||
#
|
||||
# What this does: writes a "pending prompt" flag file. On the first tier-≥2 skill
|
||||
# invocation after upgrade, the preamble reads the flag and asks the user once
|
||||
# whether to keep the new default or opt into terse mode. Flag file is deleted
|
||||
# after the user answers. Idempotent — safe to run multiple times.
|
||||
#
|
||||
# Affected: every user on v0.19.x and below who upgrades to v1.x
|
||||
set -euo pipefail
|
||||
|
||||
GSTACK_HOME="${GSTACK_HOME:-$HOME/.gstack}"
|
||||
PROMPTED_FLAG="$GSTACK_HOME/.writing-style-prompted"
|
||||
PENDING_FLAG="$GSTACK_HOME/.writing-style-prompt-pending"
|
||||
|
||||
mkdir -p "$GSTACK_HOME"
|
||||
|
||||
# If the user has already answered the prompt at any point, skip.
|
||||
if [ -f "$PROMPTED_FLAG" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# If the user has already explicitly set explain_level (either way), count that
|
||||
# as an answer — they've made their choice, don't ask again.
|
||||
EXPLAIN_LEVEL_SET="$("${HOME}/.claude/skills/gstack/bin/gstack-config" get explain_level 2>/dev/null || true)"
|
||||
if [ -n "$EXPLAIN_LEVEL_SET" ]; then
|
||||
touch "$PROMPTED_FLAG"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Write the pending flag — preamble will see it on the first tier-≥2 skill invocation.
|
||||
touch "$PENDING_FLAG"
|
||||
|
||||
echo " [v1.0.0.0] V1 writing style: you'll see a one-time prompt on your next skill run asking if you want the new default (glossed jargon, outcome framing) or the older terse prose."
|
||||
Reference in New Issue
Block a user