From ba3f1836af0c68763817b5635a564c15eb2ebdb4 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sun, 5 Apr 2026 01:44:00 -0700 Subject: [PATCH] docs: OpenClaw architecture doc + regenerate all SKILL.md with spawned session detection Add docs/OPENCLAW.md with 4-tier dispatch routing and integration architecture. Generate gstack-lite and gstack-full prompt templates. Regenerate all SKILL.md files with OPENCLAW_SESSION env var check in preamble. --- SKILL.md | 9 +++ autoplan/SKILL.md | 9 +++ benchmark/SKILL.md | 9 +++ browse/SKILL.md | 9 +++ canary/SKILL.md | 9 +++ checkpoint/SKILL.md | 9 +++ codex/SKILL.md | 9 +++ cso/SKILL.md | 9 +++ design-consultation/SKILL.md | 9 +++ design-html/SKILL.md | 9 +++ design-review/SKILL.md | 9 +++ design-shotgun/SKILL.md | 9 +++ devex-review/SKILL.md | 9 +++ docs/OPENCLAW.md | 141 +++++++++++++++++++++++++++++++++ document-release/SKILL.md | 9 +++ health/SKILL.md | 9 +++ investigate/SKILL.md | 9 +++ land-and-deploy/SKILL.md | 9 +++ learn/SKILL.md | 9 +++ office-hours/SKILL.md | 9 +++ open-gstack-browser/SKILL.md | 9 +++ openclaw/gstack-full-CLAUDE.md | 12 +++ openclaw/gstack-lite-CLAUDE.md | 12 +++ plan-ceo-review/SKILL.md | 9 +++ plan-design-review/SKILL.md | 9 +++ plan-devex-review/SKILL.md | 9 +++ plan-eng-review/SKILL.md | 9 +++ qa-only/SKILL.md | 9 +++ qa/SKILL.md | 9 +++ retro/SKILL.md | 9 +++ review/SKILL.md | 9 +++ setup-browser-cookies/SKILL.md | 9 +++ setup-deploy/SKILL.md | 9 +++ ship/SKILL.md | 9 +++ 34 files changed, 444 insertions(+) create mode 100644 docs/OPENCLAW.md create mode 100644 openclaw/gstack-full-CLAUDE.md create mode 100644 openclaw/gstack-lite-CLAUDE.md diff --git a/SKILL.md b/SKILL.md index 258a7e4a..4d51adad 100644 --- a/SKILL.md +++ b/SKILL.md @@ -80,6 +80,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -206,6 +208,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice **Tone:** direct, concrete, sharp, never corporate, never academic. Sound like a builder, not a consultant. Name the file, the function, the command. No filler, no throat-clearing. diff --git a/autoplan/SKILL.md b/autoplan/SKILL.md index bcfb6224..b50ff143 100644 --- a/autoplan/SKILL.md +++ b/autoplan/SKILL.md @@ -90,6 +90,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -216,6 +218,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/benchmark/SKILL.md b/benchmark/SKILL.md index 156ae8cf..9dd93947 100644 --- a/benchmark/SKILL.md +++ b/benchmark/SKILL.md @@ -83,6 +83,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -209,6 +211,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice **Tone:** direct, concrete, sharp, never corporate, never academic. Sound like a builder, not a consultant. Name the file, the function, the command. No filler, no throat-clearing. diff --git a/browse/SKILL.md b/browse/SKILL.md index d224b309..fd541e5e 100644 --- a/browse/SKILL.md +++ b/browse/SKILL.md @@ -82,6 +82,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -208,6 +210,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice **Tone:** direct, concrete, sharp, never corporate, never academic. Sound like a builder, not a consultant. Name the file, the function, the command. No filler, no throat-clearing. diff --git a/canary/SKILL.md b/canary/SKILL.md index e7153e93..ae20bb38 100644 --- a/canary/SKILL.md +++ b/canary/SKILL.md @@ -82,6 +82,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -208,6 +210,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/checkpoint/SKILL.md b/checkpoint/SKILL.md index 2967f14c..dd8c29cf 100644 --- a/checkpoint/SKILL.md +++ b/checkpoint/SKILL.md @@ -85,6 +85,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -211,6 +213,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/codex/SKILL.md b/codex/SKILL.md index 5706dd8c..bbd08ac1 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -84,6 +84,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -210,6 +212,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/cso/SKILL.md b/cso/SKILL.md index 20efe14b..362e0309 100644 --- a/cso/SKILL.md +++ b/cso/SKILL.md @@ -87,6 +87,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -213,6 +215,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/design-consultation/SKILL.md b/design-consultation/SKILL.md index 92067d74..3d96597a 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -87,6 +87,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -213,6 +215,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/design-html/SKILL.md b/design-html/SKILL.md index c50b37ed..658179b8 100644 --- a/design-html/SKILL.md +++ b/design-html/SKILL.md @@ -89,6 +89,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -215,6 +217,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/design-review/SKILL.md b/design-review/SKILL.md index 9b78080e..c2cc0e18 100644 --- a/design-review/SKILL.md +++ b/design-review/SKILL.md @@ -87,6 +87,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -213,6 +215,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/design-shotgun/SKILL.md b/design-shotgun/SKILL.md index 7de41cf3..1e89e161 100644 --- a/design-shotgun/SKILL.md +++ b/design-shotgun/SKILL.md @@ -84,6 +84,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -210,6 +212,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/devex-review/SKILL.md b/devex-review/SKILL.md index 18ba792f..f07caa70 100644 --- a/devex-review/SKILL.md +++ b/devex-review/SKILL.md @@ -87,6 +87,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -213,6 +215,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/docs/OPENCLAW.md b/docs/OPENCLAW.md new file mode 100644 index 00000000..619eff7a --- /dev/null +++ b/docs/OPENCLAW.md @@ -0,0 +1,141 @@ +# gstack x OpenClaw Integration + +gstack integrates with OpenClaw as a methodology source, not a ported codebase. +OpenClaw's ACP runtime spawns Claude Code sessions natively. gstack provides the +planning discipline and methodology that makes those sessions better. + +This is a lightweight protocol encoded as prompt text. No daemon. No JSON-RPC. +No compatibility matrices. The prompt is the bridge. + +## Architecture + +``` + OpenClaw (Wintermute) gstack repo + ───────────────────── ────────────── + Orchestrator: messaging, Source of truth for + calendar, memory, EA methodology + planning + │ │ + ├── Native skills (conversational) ├── Generates native skills + │ office-hours, ceo-review, │ via gen-skill-docs pipeline + │ investigate, retro │ + │ ├── Generates gstack-lite + ├── sessions_spawn(runtime: "acp") │ (planning discipline) + │ │ │ + │ └── Claude Code ├── Generates gstack-full + │ └── gstack installed at │ (complete pipeline) + │ ~/.claude/skills/gstack │ + │ └── docs/OPENCLAW.md (this file) + └── Dispatch routing (AGENTS.md) +``` + +## Dispatch Routing + +Wintermute decides at spawn time which tier of gstack support to use: + +| Tier | When | Prompt prefix | +|------|------|---------------| +| **Simple** | One-file edits, typos, config changes | No gstack context injected | +| **Medium** | Multi-file features, refactors | gstack-lite CLAUDE.md appended | +| **Heavy** | Specific gstack skill needed | "Load gstack. Run /X" | +| **Full** | Complete features, objectives, projects | gstack-full pipeline appended | + +### Decision heuristic + +- Can it be done in <10 lines of code? -> **Simple** +- Does it touch multiple files but the approach is obvious? -> **Medium** +- Does the user name a specific skill (/cso, /review, /qa)? -> **Heavy** +- Is it a feature, project, or objective (not a task)? -> **Full** + +### Dispatch routing guide (for AGENTS.md) + +Add this to Wintermute's AGENTS.md: + +```markdown +## Coding Task Dispatch + +When asked for coding work, pick the dispatch tier: + +SIMPLE: "fix this typo," "update that config," single-file changes +-> sessions_spawn(runtime: "acp", prompt: "") + +MEDIUM: multi-file features, refactors, skill edits +-> sessions_spawn(runtime: "acp", prompt: "\n\n") + +HEAVY: needs a specific gstack methodology +-> sessions_spawn(runtime: "acp", prompt: "Load gstack. Run /qa https://...") + Skills: /cso, /review, /qa, /ship, /investigate, /design-review, /benchmark + +FULL: build a complete feature, multi-day scope, needs planning + review +-> sessions_spawn(runtime: "acp", prompt: "\n\n") + Claude Code runs: /autoplan -> implement -> /ship -> report back +``` + +### CLAUDE.md collision handling + +When spawning Claude Code in a repo that already has a CLAUDE.md, APPEND +gstack-lite/full as a new section. Do not replace the repo's existing instructions. + +## What gstack generates for OpenClaw + +All artifacts live in the `openclaw/` directory and are generated by +`bun run gen:skill-docs --host openclaw`: + +### gstack-lite (Medium tier) +`openclaw/gstack-lite-CLAUDE.md` — ~15 lines of planning discipline: +1. Read every file before modifying +2. Write a 5-line plan: what, why, which files, test case, risk +3. Resolve ambiguity using decision principles +4. Self-review before reporting done +5. Completion report: what shipped, decisions made, anything uncertain + +A/B tested: 2x time, meaningfully better output. + +### gstack-full (Full tier) +`openclaw/gstack-full-CLAUDE.md` — chains existing gstack skills: +1. Read CLAUDE.md and understand the project +2. Run /autoplan (CEO + eng + design review) +3. Implement the approved plan +4. Run /ship to create a PR +5. Report back with PR URL and decisions + +### Native methodology skills +Conversational skills for non-coding work, generated from gstack source templates: +- `openclaw/office-hours.md` — Product interrogation (6 forcing questions) +- `openclaw/ceo-review.md` — Strategic challenge (10-section review, 4 modes) +- `openclaw/investigate.md` — Operational debugging (4-phase methodology) +- `openclaw/retro.md` — Operational retrospective (weekly review) + +These are lean adaptations. They contain the methodology, not the full gstack +skill infrastructure (no browse, no telemetry, no preamble). + +## Spawned session detection + +When Claude Code runs inside a session spawned by OpenClaw, the `OPENCLAW_SESSION` +environment variable should be set. gstack detects this and adjusts: +- Skips interactive prompts (auto-chooses recommended options) +- Skips upgrade checks and telemetry prompts +- Focuses on task completion and prose reporting + +Set the env var in sessions_spawn: `env: { OPENCLAW_SESSION: "1" }` + +## Installation + +For OpenClaw users: tell your OpenClaw agent "install gstack for openclaw." + +The agent should: +1. Install gstack-lite CLAUDE.md into its coding session templates +2. Install the 4 native methodology skills +3. Add dispatch routing to AGENTS.md +4. Verify with a test spawn + +For gstack developers: `./setup --host openclaw` outputs this documentation. +The actual artifacts are generated by `bun run gen:skill-docs --host openclaw`. + +## What we don't do + +- No dispatch daemon (ACP handles session spawning) +- No Clawvisor relay (no security layer needed) +- No bidirectional learnings bridge (brain repo is the knowledge store) +- No JSON schemas or protocol versioning +- No SOUL.md from gstack (Wintermute has its own) +- No full skill porting (coding skills stay native to Claude Code) diff --git a/document-release/SKILL.md b/document-release/SKILL.md index a4f2617e..5f3aa6fb 100644 --- a/document-release/SKILL.md +++ b/document-release/SKILL.md @@ -84,6 +84,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -210,6 +212,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/health/SKILL.md b/health/SKILL.md index ee42db1f..779b95c5 100644 --- a/health/SKILL.md +++ b/health/SKILL.md @@ -84,6 +84,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -210,6 +212,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/investigate/SKILL.md b/investigate/SKILL.md index f69914a1..2a35ec59 100644 --- a/investigate/SKILL.md +++ b/investigate/SKILL.md @@ -99,6 +99,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -225,6 +227,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/land-and-deploy/SKILL.md b/land-and-deploy/SKILL.md index b1e75902..49924865 100644 --- a/land-and-deploy/SKILL.md +++ b/land-and-deploy/SKILL.md @@ -81,6 +81,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -207,6 +209,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/learn/SKILL.md b/learn/SKILL.md index 9afca4c4..f49a69b9 100644 --- a/learn/SKILL.md +++ b/learn/SKILL.md @@ -84,6 +84,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -210,6 +212,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index c3cceba3..d1e4a87e 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -91,6 +91,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -217,6 +219,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/open-gstack-browser/SKILL.md b/open-gstack-browser/SKILL.md index 31757899..92897c06 100644 --- a/open-gstack-browser/SKILL.md +++ b/open-gstack-browser/SKILL.md @@ -81,6 +81,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -207,6 +209,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/openclaw/gstack-full-CLAUDE.md b/openclaw/gstack-full-CLAUDE.md new file mode 100644 index 00000000..e7e1681e --- /dev/null +++ b/openclaw/gstack-full-CLAUDE.md @@ -0,0 +1,12 @@ +# gstack-full Pipeline + +Injected by Wintermute for complete feature builds. Append to existing CLAUDE.md. + +## Full Pipeline +1. Read CLAUDE.md and understand the project context. +2. Run /autoplan to review your approach (CEO + eng + design review pipeline). +3. Implement the approved plan. Follow the planning discipline above. +4. Run /ship to create a PR with tests, changelog, and version bump. +5. Report back: PR URL, what shipped, decisions made, anything uncertain. + +Do not ask for human input until the PR is ready for review. diff --git a/openclaw/gstack-lite-CLAUDE.md b/openclaw/gstack-lite-CLAUDE.md new file mode 100644 index 00000000..ded02429 --- /dev/null +++ b/openclaw/gstack-lite-CLAUDE.md @@ -0,0 +1,12 @@ +# gstack-lite Planning Discipline + +Injected by Wintermute into spawned Claude Code sessions. Append to existing CLAUDE.md. + +## Planning Discipline +1. Read every file you will modify. Understand existing patterns first. +2. Before writing code, state your plan: what, why, which files, test case, risk. +3. When ambiguous, prefer: completeness over shortcuts, existing patterns over new ones, + reversible choices over irreversible ones, safe defaults over clever ones. +4. Self-review your changes before reporting done. Check for: missed files, broken + imports, untested paths, style inconsistencies. +5. Report when done: what shipped, what decisions you made, anything uncertain. diff --git a/plan-ceo-review/SKILL.md b/plan-ceo-review/SKILL.md index 3cafdb6f..23037f9f 100644 --- a/plan-ceo-review/SKILL.md +++ b/plan-ceo-review/SKILL.md @@ -87,6 +87,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -213,6 +215,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/plan-design-review/SKILL.md b/plan-design-review/SKILL.md index 7d24477b..46e8d145 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -85,6 +85,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -211,6 +213,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/plan-devex-review/SKILL.md b/plan-devex-review/SKILL.md index 6c2547ca..e4e1a842 100644 --- a/plan-devex-review/SKILL.md +++ b/plan-devex-review/SKILL.md @@ -89,6 +89,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -215,6 +217,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/plan-eng-review/SKILL.md b/plan-eng-review/SKILL.md index 32f3d979..3da2e6ff 100644 --- a/plan-eng-review/SKILL.md +++ b/plan-eng-review/SKILL.md @@ -87,6 +87,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -213,6 +215,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/qa-only/SKILL.md b/qa-only/SKILL.md index e49088c7..07c908b7 100644 --- a/qa-only/SKILL.md +++ b/qa-only/SKILL.md @@ -83,6 +83,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -209,6 +211,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/qa/SKILL.md b/qa/SKILL.md index 06e23e6f..430177fa 100644 --- a/qa/SKILL.md +++ b/qa/SKILL.md @@ -89,6 +89,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -215,6 +217,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/retro/SKILL.md b/retro/SKILL.md index 6b059aee..bd43ba41 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -82,6 +82,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -208,6 +210,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/review/SKILL.md b/review/SKILL.md index 8c88d0e2..14083cd7 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -85,6 +85,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -211,6 +213,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/setup-browser-cookies/SKILL.md b/setup-browser-cookies/SKILL.md index 549c4d25..5a20f758 100644 --- a/setup-browser-cookies/SKILL.md +++ b/setup-browser-cookies/SKILL.md @@ -79,6 +79,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -205,6 +207,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice **Tone:** direct, concrete, sharp, never corporate, never academic. Sound like a builder, not a consultant. Name the file, the function, the command. No filler, no throat-clearing. diff --git a/setup-deploy/SKILL.md b/setup-deploy/SKILL.md index 0dfd1df4..353efa3e 100644 --- a/setup-deploy/SKILL.md +++ b/setup-deploy/SKILL.md @@ -85,6 +85,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -211,6 +213,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography. diff --git a/ship/SKILL.md b/ship/SKILL.md index 25afbb03..0c8512f5 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -86,6 +86,8 @@ fi _ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false") echo "HAS_ROUTING: $_HAS_ROUTING" echo "ROUTING_DECLINED: $_ROUTING_DECLINED" +# Detect spawned session (OpenClaw or other orchestrator) +[ -n "$OPENCLAW_SESSION" ] && echo "SPAWNED_SESSION: true" || true ``` If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not @@ -212,6 +214,13 @@ Say "No problem. You can add routing rules later by running `gstack-config set r This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely. +If `SPAWNED_SESSION` is `"true"`, you are running inside a session spawned by an +AI orchestrator (e.g., OpenClaw/Wintermute). In spawned sessions: +- Do NOT use AskUserQuestion for interactive prompts. Auto-choose the recommended option. +- Do NOT run upgrade checks, telemetry prompts, routing injection, or lake intro. +- Focus on completing the task and reporting results via prose output. +- End with a completion report: what shipped, decisions made, anything uncertain. + ## Voice You are GStack, an open source AI builder framework shaped by Garry Tan's product, startup, and engineering judgment. Encode how he thinks, not his biography.