$npx -y skills add thanh-abaii/gstack-windows-port --skill gstack-learnManage project learnings. Review, search, prune, and export what gstack has learned across sessions. Use when asked to "what have we learned", "show learnings", "prune stale learnings", or "export learnings". Proactively suggest when the user asks about past patterns or wonders "
| 1 | <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> |
| 2 | <!-- Regenerate: bun run gen:skill-docs --> |
| 3 | |
| 4 | ## Preamble (run first) |
| 5 | |
| 6 | ```bash |
| 7 | python "bin/gstack-boot.py" --skill learn | iex |
| 8 | ``` |
| 9 | |
| 10 | If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not |
| 11 | auto-invoke skills based on conversation context. Only run skills the user explicitly |
| 12 | types (e.g., /gs:qa, /gs:ship). If you would have auto-invoked a skill, instead briefly say: |
| 13 | "I think /skillname might help here — want me to run it?" and wait for confirmation. |
| 14 | The user opted out of proactive behavior. |
| 15 | |
| 16 | If `SKILL_PREFIX` is `"true"`, the user has namespaced skill names. When suggesting |
| 17 | or invoking other gstack skills, use the `/gstack-` prefix (e.g., `/gstack-qa` instead |
| 18 | of `/qa`, `/gstack-ship` instead of `/ship`). Disk paths are unaffected — always use |
| 19 | `$GSTACK_ROOT/[skill-name]/SKILL.md` for reading skill files. |
| 20 | |
| 21 | If output shows `UPGRADE_AVAILABLE <old> <new>`: read `$GSTACK_ROOT/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. |
| 22 | |
| 23 | If `WRITING_STYLE_PENDING` is `yes`: You're on the first skill run after upgrading |
| 24 | to gstack v1. Ask the user once about the new default writing style. Use AskUserQuestion: |
| 25 | |
| 26 | > v1 prompts = simpler. Technical terms get a one-sentence gloss on first use, |
| 27 | > questions are framed in outcome terms, sentences are shorter. |
| 28 | > |
| 29 | > Keep the new default, or prefer the older tighter prose? |
| 30 | |
| 31 | Options: |
| 32 | |
| 33 | - A) Keep the new default (recommended — good writing helps everyone) |
| 34 | - B) Restore V0 prose — set `explain_level: terse` |
| 35 | |
| 36 | If A: leave `explain_level` unset (defaults to `default`). |
| 37 | If B: run `$GSTACK_BIN/gstack-config set explain_level terse`. |
| 38 | |
| 39 | Always run (regardless of choice): |
| 40 | |
| 41 | ```bash |
| 42 | Remove-Item -Force ~/.gstack/.writing-style-prompt-pending |
| 43 | touch ~/.gstack/.writing-style-prompted |
| 44 | ``` |
| 45 | |
| 46 | This only happens once. If `WRITING_STYLE_PENDING` is `no`, skip this entirely. |
| 47 | |
| 48 | If `LAKE_INTRO` is `no`: Before continuing, introduce the Completeness Principle. |
| 49 | Tell the user: "gstack follows the **Boil the Lake** principle — always do the complete |
| 50 | thing when AI makes the marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" |
| 51 | Then offer to open the essay in their default browser: |
| 52 | |
| 53 | ```bash |
| 54 | open https://garryslist.org/posts/boil-the-ocean |
| 55 | touch ~/.gstack/.completeness-intro-seen |
| 56 | ``` |
| 57 | |
| 58 | Only run `open` if the user says yes. Always run `touch` to mark as seen. This only happens once. |
| 59 | |
| 60 | If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, |
| 61 | ask the user about telemetry. Use AskUserQuestion: |
| 62 | |
| 63 | > Help gstack get better! Community mode shares usage data (which skills you use, how long |
| 64 | > they take, crash info) with a stable device ID so we can track trends and fix bugs faster. |
| 65 | > No code, file paths, or repo names are ever sent. |
| 66 | > Change anytime with `gstack-config set telemetry off`. |
| 67 | |
| 68 | Options: |
| 69 | |
| 70 | - A) Help gstack get better! (recommended) |
| 71 | - B) No thanks |
| 72 | |
| 73 | If A: run `$GSTACK_BIN/gstack-config set telemetry community` |
| 74 | |
| 75 | If B: ask a follow-up AskUserQuestion: |
| 76 | |
| 77 | > How about anonymous mode? We just learn that *someone* used gstack — no unique ID, |
| 78 | > no way to connect sessions. Just a counter that helps us know if anyone's out there. |
| 79 | |
| 80 | Options: |
| 81 | |
| 82 | - A) Sure, anonymous is fine |
| 83 | - B) No thanks, fully off |
| 84 | |
| 85 | If B→A: run `$GSTACK_BIN/gstack-config set telemetry anonymous` |
| 86 | If B→B: run `$GSTACK_BIN/gstack-config set telemetry off` |
| 87 | |
| 88 | Always run: |
| 89 | |
| 90 | ```bash |
| 91 | touch ~/.gstack/.telemetry-prompted |
| 92 | ``` |
| 93 | |
| 94 | This only happens once. If `TEL_PROMPTED` is `yes`, skip this entirely. |
| 95 | |
| 96 | If `PROACTIVE_PROMPTED` is `no` AND `TEL_PROMPTED` is `yes`: After telemetry is handled, |
| 97 | ask the user about proactive behavior. Use AskUserQuestion: |
| 98 | |
| 99 | > gstack can proactively figure out when you might need a skill while you work — |
| 100 | > like suggesting /gs:qa when you say "does this work?" or /gs:investigate when you hit |
| 101 | > a bug. We recommend keeping this on — it speeds up every part of your workflow. |
| 102 | |
| 103 | Options: |
| 104 | |
| 105 | - A) Keep it on (recommended) |
| 106 | - B) Turn it off — I'll type /commands myself |
| 107 | |
| 108 | If A: run `$GSTACK_BIN/gstack-config set proactive true` |
| 109 | If B: run `$GSTACK_BIN/gstack-config set proactive false` |
| 110 | |
| 111 | Always run: |
| 112 | |
| 113 | ```bash |
| 114 | touch ~/.gstack/.proactive-prompted |
| 115 | ``` |
| 116 | |
| 117 | This only happens once. If `PROACTIVE_PRO |