mirror of https://github.com/garrytan/gstack.git
feat(installer): clearer wizard labels for install vs team mode
"Add to this project (team mode)" implied team mode replaces the global install when it actually stacks on top of it. Relabels the wizard so the relationship is explicit: - "Install gstack on this machine" (was "Install globally (on this machine)") - "Enable team mode for this repo" (was "Add to this project (team mode)") with hint: "global install + commits team-sync config to this repo so teammates auto-update" Pre-select intro note now says upfront that there are two install modes and that team mode is a superset of the machine install. Required/optional tier hints now say what each actually does (PreToolUse hook block vs CLAUDE.md nudge) instead of vague "block sessions" / "nudge teammates". No behavior changes — labels and hint text only. 77 tests still pass.
This commit is contained in:
parent
714e968d69
commit
f6299c4d67
|
|
@ -23,11 +23,18 @@ export async function runWizard(): Promise<void> {
|
|||
if (!alreadyInstalled) {
|
||||
p.note(
|
||||
"gstack turns Claude Code into a virtual engineering team.\n" +
|
||||
"CEO review, eng manager, designer, QA, release engineer — all /commands.",
|
||||
"CEO review, eng manager, designer, QA, release engineer — all /commands.\n\n" +
|
||||
"Two install modes:\n" +
|
||||
" • Machine install — just for you, manual upgrades\n" +
|
||||
" • Team mode — machine install + repo config so teammates auto-update",
|
||||
"about",
|
||||
);
|
||||
} else {
|
||||
p.note(`Already installed at ${paths.gstackDir}.`, "detected");
|
||||
p.note(
|
||||
`Already installed at ${paths.gstackDir}.\n\n` +
|
||||
"Team mode adds auto-update + repo-level config on top of this install.",
|
||||
"detected",
|
||||
);
|
||||
}
|
||||
|
||||
type Mode = "install" | "init" | "uninstall" | "doctor";
|
||||
|
|
@ -36,13 +43,15 @@ export async function runWizard(): Promise<void> {
|
|||
options: [
|
||||
{
|
||||
value: "install",
|
||||
label: alreadyInstalled ? "Update global install" : "Install globally (on this machine)",
|
||||
hint: "~/.claude/skills/gstack",
|
||||
label: alreadyInstalled ? "Update global install" : "Install gstack on this machine",
|
||||
hint: "installs to ~/.claude/skills/gstack — just you, manual upgrades",
|
||||
},
|
||||
{
|
||||
value: "init",
|
||||
label: "Add to this project (team mode)",
|
||||
hint: inRepo ? "teammates auto-update on session start" : "must be inside a git repo",
|
||||
label: "Enable team mode for this repo",
|
||||
hint: inRepo
|
||||
? "global install + commits team-sync config to this repo so teammates auto-update"
|
||||
: "must be inside a git repo",
|
||||
},
|
||||
{ value: "uninstall", label: "Uninstall", hint: "remove gstack" },
|
||||
{ value: "doctor", label: "Doctor", hint: "diagnose install issues" },
|
||||
|
|
@ -130,12 +139,12 @@ export async function runWizard(): Promise<void> {
|
|||
{
|
||||
value: "required",
|
||||
label: "Required",
|
||||
hint: "block sessions without gstack",
|
||||
hint: "PreToolUse hook blocks Claude Code work until teammate runs gstack install",
|
||||
},
|
||||
{
|
||||
value: "optional",
|
||||
label: "Optional",
|
||||
hint: "nudge teammates, don't block",
|
||||
hint: "CLAUDE.md nudge only — teammate can ignore",
|
||||
},
|
||||
],
|
||||
initialValue: "required",
|
||||
|
|
|
|||
Loading…
Reference in New Issue