From 3eab8939e317541e8e681fcdf2c75b6efac4b306 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Wed, 27 May 2026 07:54:59 -0700 Subject: [PATCH] feat(ship): plan-tune discoverability nudge after first successful ship MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plan-tune cathedral T15 (the ship-side surface; the setup-side surface shipped in T8 with explicit hook-install consent UX). Adds Step 21 to ship/SKILL.md.tmpl: after Step 20 (persist metrics) succeeds, surface /plan-tune once per machine via a marker-gated single-line nudge. Behavior: - If ~/.gstack/.plan-tune-nudge-shown exists → no-op. - If question_tuning is already true → no-op (user already on board). - Otherwise: print one nudge line, touch marker. The nudge mentions both the observational substrate AND the hook-installed auto-decide enforcement so users know what they get when they opt in. Non-blocking — never asks a question, doesn't gate ship completion. To re-show: rm ~/.gstack/.plan-tune-nudge-shown before next ship. Setup-side discoverability shipped in T8 via the hook install prompt (explicit consent + diff preview + backup). Together these two surfaces cover first-install AND first-ship moments — the user discovers plan-tune organically rather than needing to know /plan-tune exists. Co-Authored-By: Claude Opus 4.7 (1M context) --- ship/SKILL.md | 23 +++++++++++++++++++++++ ship/SKILL.md.tmpl | 23 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/ship/SKILL.md b/ship/SKILL.md index d4d0039d8..12e4c7799 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -3086,6 +3086,29 @@ This step is automatic — never skip it, never ask for confirmation. --- +## Step 21: Plan-tune discoverability nudge (first-successful-ship only) + +Plan-tune cathedral T15. After a successful ship, surface /plan-tune once +per machine. Single line, non-blocking, marker-gated so it never re-fires. + +```bash +_NUDGE_MARKER="$HOME/.gstack/.plan-tune-nudge-shown" +_QT=$(~/.claude/skills/gstack/bin/gstack-config get question_tuning 2>/dev/null || echo "false") +if [ ! -f "$_NUDGE_MARKER" ] && [ "$_QT" = "false" ]; then + echo "" + echo "gstack can learn from your AskUserQuestion answers. Run /plan-tune to opt in" + echo "— it captures which prompts you find valuable vs noisy and (with hooks installed)" + echo "auto-decides your never-ask preferences." + touch "$_NUDGE_MARKER" +fi +``` + +If the marker exists, OR question_tuning is already on, the nudge is a +no-op. The marker guarantees at-most-once per machine. To re-enable: +`rm ~/.gstack/.plan-tune-nudge-shown` before next ship. + +--- + ## Important Rules - **Never skip tests.** If tests fail, stop. diff --git a/ship/SKILL.md.tmpl b/ship/SKILL.md.tmpl index 304bd6a1d..fcad36aae 100644 --- a/ship/SKILL.md.tmpl +++ b/ship/SKILL.md.tmpl @@ -975,6 +975,29 @@ This step is automatic — never skip it, never ask for confirmation. --- +## Step 21: Plan-tune discoverability nudge (first-successful-ship only) + +Plan-tune cathedral T15. After a successful ship, surface /plan-tune once +per machine. Single line, non-blocking, marker-gated so it never re-fires. + +```bash +_NUDGE_MARKER="$HOME/.gstack/.plan-tune-nudge-shown" +_QT=$(~/.claude/skills/gstack/bin/gstack-config get question_tuning 2>/dev/null || echo "false") +if [ ! -f "$_NUDGE_MARKER" ] && [ "$_QT" = "false" ]; then + echo "" + echo "gstack can learn from your AskUserQuestion answers. Run /plan-tune to opt in" + echo "— it captures which prompts you find valuable vs noisy and (with hooks installed)" + echo "auto-decides your never-ask preferences." + touch "$_NUDGE_MARKER" +fi +``` + +If the marker exists, OR question_tuning is already on, the nudge is a +no-op. The marker guarantees at-most-once per machine. To re-enable: +`rm ~/.gstack/.plan-tune-nudge-shown` before next ship. + +--- + ## Important Rules - **Never skip tests.** If tests fail, stop.