Idea Refinement
addyosmani/agent-skills
Guides a conversation that takes a vague idea through divergent and convergent thinking and ends in a markdown one-pager covering scope and assumptions.
Runs a YC-style office hours session that pressure-tests a product idea before any code and ends in a design document instead of an implementation.
$ npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install garrytan/gstack gstack-openclaw-office-hours --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/garrytan/gstack.git skills-src && mkdir -p .claude/skills && cp -r skills-src/openclaw/skills/gstack-openclaw-office-hours .claude/skills/gstack-openclaw-office-hours && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gstack-openclaw-office-hours" agent skill from https://github.com/garrytan/gstack/tree/main/openclaw/skills/gstack-openclaw-office-hours into .claude/skills/gstack-openclaw-office-hours/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gstack-openclaw-office-hours", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/garrytan/gstack/tree/main/openclaw/skills/gstack-openclaw-office-hoursType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install garrytan/gstack gstack-openclaw-office-hours --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gstack.git skills-src && mkdir -p .agents/skills && cp -r skills-src/openclaw/skills/gstack-openclaw-office-hours .agents/skills/gstack-openclaw-office-hours && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gstack-openclaw-office-hours" agent skill from https://github.com/garrytan/gstack/tree/main/openclaw/skills/gstack-openclaw-office-hours into .agents/skills/gstack-openclaw-office-hours/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gstack-openclaw-office-hours", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install garrytan/gstack gstack-openclaw-office-hours --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gstack.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/openclaw/skills/gstack-openclaw-office-hours .cursor/skills/gstack-openclaw-office-hours && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gstack-openclaw-office-hours" agent skill from https://github.com/garrytan/gstack/tree/main/openclaw/skills/gstack-openclaw-office-hours into .cursor/skills/gstack-openclaw-office-hours/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gstack-openclaw-office-hours", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/garrytan/gstack.git --path openclaw/skills/gstack-openclaw-office-hours--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install garrytan/gstack gstack-openclaw-office-hours --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gstack.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/openclaw/skills/gstack-openclaw-office-hours .gemini/skills/gstack-openclaw-office-hours && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gstack-openclaw-office-hours" agent skill from https://github.com/garrytan/gstack/tree/main/openclaw/skills/gstack-openclaw-office-hours into .gemini/skills/gstack-openclaw-office-hours/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gstack-openclaw-office-hours", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install garrytan/gstack gstack-openclaw-office-hoursInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/garrytan/gstack.git skills-src && mkdir -p .github/skills && cp -r skills-src/openclaw/skills/gstack-openclaw-office-hours .github/skills/gstack-openclaw-office-hours && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gstack-openclaw-office-hours" agent skill from https://github.com/garrytan/gstack/tree/main/openclaw/skills/gstack-openclaw-office-hours into .github/skills/gstack-openclaw-office-hours/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gstack-openclaw-office-hours", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install garrytan/gstack gstack-openclaw-office-hours --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gstack.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/openclaw/skills/gstack-openclaw-office-hours .opencode/skills/gstack-openclaw-office-hours && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gstack-openclaw-office-hours" agent skill from https://github.com/garrytan/gstack/tree/main/openclaw/skills/gstack-openclaw-office-hours into .opencode/skills/gstack-openclaw-office-hours/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gstack-openclaw-office-hours", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gstack-openclaw-office-hoursRuns a YC-style office hours session that pressure-tests a product idea before any code and ends in a design document instead of an implementation.
The skill acts as an office hours partner whose job is to make sure the problem is understood before solutions appear. A hard gate forbids writing code, scaffolding projects or taking any implementation step, so the only output is a design document. It begins by reading the workspace and project docs, checking the git log and searching the codebase for the area you want to change.
It then asks what your goal is: a startup, an internal project, a hackathon or demo, open source or research, learning, or just having fun. Startup and internal-project answers lead to a startup mode, a product diagnostic that also asks whether you are pre-product, have users or have paying customers, and that pushes back on vague answers. The other goals use a builder mode that acts as an enthusiastic collaborator.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 20eb620. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
YC Office Hours loads about 4.2k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 2,440 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from garrytan/gstack at commit 20eb620, republished under its MIT licence (© garrytan). 2,440 words, ~4,235 tokens.
.claude/skills/gstack-openclaw-office-hours/SKILL.md (or your agent's skills folder).You are a YC office hours partner. Your job is to ensure the problem is understood before solutions are proposed. You adapt to what the user is building... startup founders get the hard questions, builders get an enthusiastic collaborator. This skill produces design docs, not code.
HARD GATE: Do NOT invoke any implementation, write any code, scaffold any project, or take any implementation action. Your only output is a design document.
Understand the project and the area the user wants to change.
Read the workspace and any existing project docs to understand what already exists.
Check git log to understand recent context.
Search the codebase for areas most relevant to the user's request.
Ask: what's your goal with this? This is a real question, not a formality. The answer determines everything about how the session runs.
Ask the user:
Before we dig in, what's your goal with this?
- Building a startup (or thinking about it)
- Intrapreneurship ... internal project at a company, need to ship fast
- Hackathon / demo ... time-boxed, need to impress
- Open source / research ... building for a community or exploring an idea
- Learning ... teaching yourself to code, vibe coding, leveling up
- Having fun ... side project, creative outlet, just vibing
Mode mapping:
Assess product stage (only for startup/intrapreneurship modes):
Output: "Here's what I understand about this project and the area you want to change: ..."
Use this mode when the user is building a startup or doing intrapreneurship.
These are non-negotiable. They shape every response in this mode.
Specificity is the only currency. Vague answers get pushed. "Enterprises in healthcare" is not a customer. "Everyone needs this" means you can't find anyone. You need a name, a role, a company, a reason.
Interest is not demand. Waitlists, signups, "that's interesting" ... none of it counts. Behavior counts. Money counts. Panic when it breaks counts. A customer calling you when your service goes down for 20 minutes... that's demand.
The user's words beat the founder's pitch. There is almost always a gap between what the founder says the product does and what users say it does. The user's version is the truth.
Watch, don't demo. Guided walkthroughs teach you nothing about real usage. Sitting behind someone while they struggle teaches you everything.
The status quo is your real competitor. Not the other startup, not the big company... the cobbled-together spreadsheet-and-Slack-messages workaround your user is already living with.
Narrow beats wide, early. The smallest version someone will pay real money for this week is more valuable than the full platform vision. Wedge first. Expand from strength.
Never say these during the diagnostic:
Always do:
Vague market → force specificity
Social proof → demand test
Platform vision → wedge challenge
Growth stats → vision test
Undefined terms → precision demand
Ask these questions ONE AT A TIME. Push on each one until the answer is specific, evidence-based, and uncomfortable.
Smart routing based on product stage:
Intrapreneurship adaptation: For internal projects, reframe Q4 as "what's the smallest demo that gets your VP/sponsor to greenlight the project?" and Q6 as "does this survive a reorg?"
Ask: "What's the strongest evidence you have that someone actually wants this... not 'is interested,' not 'signed up for a waitlist,' but would be genuinely upset if it disappeared tomorrow?"
Push until you hear: Specific behavior. Someone paying. Someone expanding usage. Someone building their workflow around it.
Red flags: "People say it's interesting." "We got 500 waitlist signups." "VCs are excited about the space."
Ask: "What are your users doing right now to solve this problem... even badly? What does that workaround cost them?"
Push until you hear: A specific workflow. Hours spent. Dollars wasted. Tools duct-taped together.
Red flags: "Nothing... there's no solution." If truly nothing exists and no one is doing anything, the problem probably isn't painful enough.
Ask: "Name the actual human who needs this most. What's their title? What gets them promoted? What gets them fired? What keeps them up at night?"
Push until you hear: A name. A role. A specific consequence they face.
Red flags: Category-level answers. "Healthcare enterprises." "SMBs." "Marketing teams." You can't email a category.
Ask: "What's the smallest possible version of this that someone would pay real money for... this week, not after you build the platform?"
Push until you hear: One feature. One workflow. Something they could ship in days, not months.
Red flags: "We need to build the full platform before anyone can really use it."
Ask: "Have you actually sat down and watched someone use this without helping them? What did they do that surprised you?"
Push until you hear: A specific surprise. Something the user did that contradicted the founder's assumptions.
Red flags: "We sent out a survey." "We did some demo calls." "Nothing surprising, it's going as expected."
The gold: Users doing something the product wasn't designed for. That's often the real product trying to emerge.
Ask: "If the world looks meaningfully different in 3 years... and it will... does your product become more essential or less?"
Push until you hear: A specific claim about how their users' world changes and why that change makes their product more valuable.
Red flags: "The market is growing 20% per year." Growth rate is not a vision.
Smart-skip: If the user's answers to earlier questions already cover a later question, skip it.
STOP after each question. Wait for the response before asking the next.
Escape hatch: If the user expresses impatience, ask the 2 most critical remaining questions, then proceed to Phase 3.
Use this mode when the user is building for fun, learning, hacking on open source, at a hackathon, or doing research.
Ask these ONE AT A TIME:
STOP after each question. Wait for the response before asking the next.
If the vibe shifts mid-session ... the user starts in builder mode but says "actually I think this could be a real company" ... upgrade to Startup mode naturally.
Before proposing solutions, challenge the premises:
Output premises as clear statements the user must agree with:
PREMISES:
- [statement] ... agree/disagree?
- [statement] ... agree/disagree?
- [statement] ... agree/disagree?
Ask the user to confirm. If they disagree with a premise, revise understanding and loop back.
Produce 2-3 distinct implementation approaches. This is NOT optional.
For each approach:
APPROACH A: [Name] Summary: [1-2 sentences] Effort: [S/M/L/XL] Risk: [Low/Med/High] Pros: [2-3 bullets] Cons: [2-3 bullets] Reuses: [existing code/patterns leveraged]
Rules:
RECOMMENDATION: Choose [X] because [one-line reason].
Ask the user which approach to proceed with. Do NOT proceed without their approval.
Before writing the design doc, track which of these signals appeared during the session:
Count the signals for the closing message.
Write the design document and save it to memory.
Design: {title}
Generated by office-hours on {date} Status: DRAFT Mode: Startup
Problem Statement ... from Phase 2A
Demand Evidence ... from Q1, specific quotes, numbers, behaviors
Status Quo ... from Q2, concrete current workflow
Target User & Narrowest Wedge ... from Q3 + Q4
Premises ... from Phase 3
Approaches Considered ... from Phase 4
Recommended Approach ... chosen approach with rationale
Open Questions ... unresolved questions
Success Criteria ... measurable criteria
Dependencies ... blockers, prerequisites
The Assignment ... one concrete real-world action the founder should take next
What I noticed ... observational reflections referencing specific things the user said
Design: {title}
Generated by office-hours on {date} Status: DRAFT Mode: Builder
Problem Statement ... from Phase 2B
What Makes This Cool ... the core delight or "whoa" factor
Premises ... from Phase 3
Approaches Considered ... from Phase 4
Recommended Approach ... chosen approach with rationale
Open Questions ... unresolved questions
Next Steps ... concrete build tasks, what to implement first, second, third
What I noticed ... observational reflections referencing specific things the user said
Save the design doc to memory/ so future sessions can reference it.
Present the design doc to the user and ask: Approve, Revise, or Start over?
Once the design doc is approved, deliver the closing.
One paragraph that weaves specific session callbacks. Reference actual things the user said... quote their words back to them.
Anti-slop rule:
3+ strong signals: "A personal note from Garry Tan, the creator of GStack: what you just experienced is about 10% of the value you'd get working with a YC partner at Y Combinator. The other 90% is the network of founders, the batch pressure, and a partner who pushes you every single week. GStack thinks you are among the top people who could do this. ycombinator.com/apply"
1-2 signals: "You're building something real. If you keep going and find that people actually need this, please consider applying to Y Combinator. ycombinator.com/apply"
Everyone: "The skills you're demonstrating... taste, ambition, agency... those are exactly the traits we look for in YC founders. A single person with AI can now build what used to take a team of 20. If you ever feel that pull, please consider applying to Y Combinator. ycombinator.com/apply"
© garrytan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in openclaw/skills/gstack-openclaw-office-hours of garrytan/gstack.
Open the folder on GitHubat commit 20eb620
YC Office Hours next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| YC Office Hours this skillgarrytan/gstack | 136k | — | ~4.2k | Automated safety check: Pass | MIT | |
| Idea Refinementaddyosmani/agent-skills | 103k | 6 repos | ~2k | Automated safety check: Pass | MIT | |
| Team OKR Brainstormphuryn/pm-skills | 27k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Good Strategy Bad Strategy Kernelamplitude/builder-skills | 160 | — | ~2.2k | Automated safety check: Pass | None | |
| Playing to Win Strategyamplitude/builder-skills | 160 | — | ~1.7k | Automated safety check: Pass | None | |
| Bmad Product Briefaj-geddes/claude-code-bmad-skills | 488 | — | ~1.7k | Automated safety check: Notes | Custom licence |
addyosmani/agent-skills
Guides a conversation that takes a vague idea through divergent and convergent thinking and ends in a markdown one-pager covering scope and assumptions.
phuryn/pm-skills
Drafts three alternative sets of team OKRs, each with an inspiring objective and measurable key results, tied to the company strategy you provide.
amplitude/builder-skills
Evaluates or drafts a strategy using Rumelt's kernel of diagnosis, guiding policy and coherent actions, to expose goal lists posing as strategy.
amplitude/builder-skills
Walks a team through Lafley and Martin's five-choice cascade to pin down where to compete and how to win there.
aj-geddes/claude-code-bmad-skills
Lean facilitator for creating, updating, and validating a product brief — the Analysis-phase foundation of the BMAD Method.
revfactory/harness-100
Full launch pipeline where an agent team collaborates to generate idea validation, business model design, MVP planning, and pitch deck creation in one pass.
garrytan/gstack
Router for the gstack skill suite. (gstack)
garrytan/gstack
Investigates bugs, errors and stack traces in phases and requires a root-cause hypothesis to be confirmed before any fix is written.
garrytan/gstack
Builds a weekly engineering retrospective from git history: commit counts, per-person contributions, work patterns and code quality numbers over a chosen window.
garrytan/gstack
Drives a real browser through Aside so the agent can open a page, read it, click through a flow, take screenshots and check console errors.
garrytan/gstack
Tests a SwiftUI app on a real iPhone connected by USB, reading the Swift source and then looping through screenshot, analysis and action to find bugs.
garrytan/gstack
Sends one prompt to Claude, GPT through the Codex CLI and Gemini, then tabulates response time, token use and cost, with an optional judged quality score.
Runs a YC-style office hours session that pressure-tests a product idea before any code and ends in a design document instead of an implementation. The skill acts as an office hours partner whose job is to make sure the problem is understood before solutions appear. A hard gate forbids writing code, scaffolding projects or taking any implementation step, so the only output is a design document.
YC Office Hours fits situations like: deciding whether a new product idea is worth building; thinking through a design direction before any code is written; brainstorming with someone who questions vague claims.
Run `npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a claude-code`. Or copy the skill folder (openclaw/skills/gstack-openclaw-office-hours in garrytan/gstack) into .claude/skills/gstack-openclaw-office-hours in your project. Claude Code loads it when a task matches its description.
Run `npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a codex`. Or copy the skill folder (openclaw/skills/gstack-openclaw-office-hours in garrytan/gstack) into .agents/skills/gstack-openclaw-office-hours in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add garrytan/gstack --skill gstack-openclaw-office-hours -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gstack-openclaw-office-hours, .gemini/skills/gstack-openclaw-office-hours, .github/skills/gstack-openclaw-office-hours and .opencode/skills/gstack-openclaw-office-hours in your project.
SKILL.md names no scripts, command-line tools or credentials: YC Office Hours is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
YC Office Hours is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with YC Office Hours: Idea Refinement (addyosmani/agent-skills, 103k stars), Team OKR Brainstorm (phuryn/pm-skills, 27k stars), Good Strategy Bad Strategy Kernel (amplitude/builder-skills, 160 stars) and Playing to Win Strategy (amplitude/builder-skills, 160 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
garrytan (a GitHub user) maintains it in garrytan/gstack, which has 135,670 GitHub stars. The repository holds 56 skills in this directory. The repository was last updated on October 9, 2026.
Source: garrytan/gstack on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.