office-hours
office-hours is a skill in garrytan/gstack, last changed 26 Oct 2026. It can run shell commands, reach the network, name web addresses and pre-approve tools — read the findings before installing. Our pattern check found 1 item to review at commit a50cf58 on 26 Oct 2026.
Pattern check: 1 item to review · commit a50cf58 · 26 Oct 2026
InstallYC Office Hours — two modes. (gstack)
- Licence
- MIT
- Repo stars
- 137.8k
- Folder last changed
- 26 Oct 2026 (opens in a new tab)
- Publisher
- garrytan
- Files
- 9 files
- Checked
- a50cf58 (opens in a new tab) · 26 Oct 2026
Install
Each tab says whether it installs commit a50cf58, the one we checked, or the latest version.
No tab for your agent? Use Any agent for OpenCode, Goose, Windsurf (Devin Desktop), Zed, Roo Code, Factory Droid, Junie, Amp and Antigravity, and Claude Code for Cline. Kiro needs the folder copied by hand.
Pinned to commit a50cf58, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/garrytan/gstack.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin a50cf589656c0dc3f785af9b7c483861b13c8288 &&
git -C "$tmp" sparse-checkout set -- office-hours &&
git -C "$tmp" checkout -q a50cf589656c0dc3f785af9b7c483861b13c8288 &&
mkdir -p .claude/skills &&
mkdir .claude/skills/office-hours &&
cp -R "$tmp"/office-hours/. .claude/skills/office-hours/ &&
rm -rf "$tmp"If Claude Code was already running and this created the skills folder, run /reload-skills.
Pinned to commit a50cf58, the one we checked.
Skills in the Claude apps belong to your account rather than to a project.
Make office-hours.zip, with the skill folder at the top level:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/garrytan/gstack.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin a50cf589656c0dc3f785af9b7c483861b13c8288 &&
git -C "$tmp" sparse-checkout set -- office-hours &&
git -C "$tmp" checkout -q a50cf589656c0dc3f785af9b7c483861b13c8288 &&
out="$(mktemp -d)" &&
cp -R "$tmp"/office-hours "$out"/office-hours &&
(cd "$out" && zip -qr - office-hours) > office-hours.zip &&
rm -rf "$tmp" "$out"In Claude, open Customize > Skills, select +, then + Create skill > Upload a skill, and choose office-hours.zip.
On Free, Pro and Max plans, turn on Code execution and file creation (Create and edit files in newer settings) under Settings > Capabilities.
Pinned to commit a50cf58, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/garrytan/gstack.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin a50cf589656c0dc3f785af9b7c483861b13c8288 &&
git -C "$tmp" sparse-checkout set -- office-hours &&
git -C "$tmp" checkout -q a50cf589656c0dc3f785af9b7c483861b13c8288 &&
mkdir -p .agents/skills &&
mkdir .agents/skills/office-hours &&
cp -R "$tmp"/office-hours/. .agents/skills/office-hours/ &&
rm -rf "$tmp"Codex picks up new skills on its own; restart it if this one does not appear.
Pinned to commit a50cf58, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/garrytan/gstack.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin a50cf589656c0dc3f785af9b7c483861b13c8288 &&
git -C "$tmp" sparse-checkout set -- office-hours &&
git -C "$tmp" checkout -q a50cf589656c0dc3f785af9b7c483861b13c8288 &&
mkdir -p .cursor/skills &&
mkdir .cursor/skills/office-hours &&
cp -R "$tmp"/office-hours/. .cursor/skills/office-hours/ &&
rm -rf "$tmp"Pinned to commit a50cf58, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/garrytan/gstack.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin a50cf589656c0dc3f785af9b7c483861b13c8288 &&
git -C "$tmp" sparse-checkout set -- office-hours &&
git -C "$tmp" checkout -q a50cf589656c0dc3f785af9b7c483861b13c8288 &&
mkdir -p .github/skills &&
mkdir .github/skills/office-hours &&
cp -R "$tmp"/office-hours/. .github/skills/office-hours/ &&
rm -rf "$tmp"In a running Copilot CLI session, run /skills reload.
Or install it with gh skill, which also installs the commit we checked. Needs GitHub CLI 2.90 or later.
gh skill install garrytan/gstack office-hours/SKILL.md@a50cf589656c0dc3f785af9b7c483861b13c8288 --agent github-copilot --scope projectPinned to commit a50cf58, the one we checked.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/garrytan/gstack.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin a50cf589656c0dc3f785af9b7c483861b13c8288 &&
git -C "$tmp" sparse-checkout set -- office-hours &&
git -C "$tmp" checkout -q a50cf589656c0dc3f785af9b7c483861b13c8288 &&
mkdir -p .gemini/skills &&
mkdir .gemini/skills/office-hours &&
cp -R "$tmp"/office-hours/. .gemini/skills/office-hours/ &&
rm -rf "$tmp"In a running session, run /skills reload.
Or use Gemini CLI’s own installer. Installs the latest version, not the one we checked.
gemini skills install https://github.com/garrytan/gstack.git --path office-hours --scope workspacePinned to commit a50cf58, the one we checked.
Codex, Cursor, Copilot, VS Code, Gemini CLI, OpenCode, Goose, Amp and Zed all read .agents/skills; Claude Code and Kiro list only their own folders.
From your project's root folder:
tmp="$(mktemp -d)" &&
git clone -q --depth 1 --filter=blob:none --no-checkout https://github.com/garrytan/gstack.git "$tmp" &&
git -C "$tmp" fetch -q --depth 1 origin a50cf589656c0dc3f785af9b7c483861b13c8288 &&
git -C "$tmp" sparse-checkout set -- office-hours &&
git -C "$tmp" checkout -q a50cf589656c0dc3f785af9b7c483861b13c8288 &&
mkdir -p .agents/skills &&
mkdir .agents/skills/office-hours &&
cp -R "$tmp"/office-hours/. .agents/skills/office-hours/ &&
rm -rf "$tmp"Or use the skills CLI from skills.sh. Installs the latest version, not the one we checked. The skills CLI reports installs to skills.sh unless you set DISABLE_TELEMETRY=1.
npx skills@1.7.4 add garrytan/gstack --skill office-hoursWhat it can touch
From the files and frontmatter at commit a50cf58. This is how much a skill can do, not whether it is risky.
What it can touch: Shell, network or credentials
Runs shell commands
Its instructions or files give the agent commands to run on your computer.
Reaches the network
It sends or fetches data over the internet, for example with curl, an HTTP library or a package install.
Names web addresses
It mentions outside web addresses the agent may visit. We list them but don't follow them.
Pre-approves tools
Its allowed-tools field lists tools the agent may use without asking you first, in agents that honour it.
SKILL.md:7
Pattern check
Pattern check: 1 item to review · commit a50cf58 · 26 Oct 2026
R34 · HighBroad tools pre-approved in allowed-tools
SKILL.md:7 (opens in a new tab)- Bash
We checked every text file in this skill, at commit a50cf58 on 26 Oct 2026, against 45 published patterns such as download-and-run commands, hidden text and credential access. We don't run the skill, we don't read the web pages it points to, and we can't judge everything its instructions might lead an agent to do. In published tests, pattern checks like this one missed most malicious skills. Read the skill before you install it — especially anything it asks you to download or run.
How the check worksReport an incorrect finding
Outside links we did not follow
- https://ycombinator.com/apply?ref=gstack
- https://www.youtube.com/watch?v=dtnG0ELjvcM
- https://www.youtube.com/watch?v=Y4yMc99fpfY
- https://www.youtube.com/watch?v=rWUWfj_PqmM
- https://www.youtube.com/watch?v=xXCBz_8hM9w
- https://www.youtube.com/watch?v=ksGNfd-wQY4
- https://www.youtube.com/watch?v=QKPgBAnbc10
- https://www.youtube.com/watch?v=3N3TnaViyjk
- https://www.youtube.com/watch?v=ShYKkPPhOoc
- https://www.youtube.com/watch?v=HB3l1BPi7zo
Show 26 more
- https://www.youtube.com/watch?v=Hm-ZIiwiN1o
- https://www.youtube.com/watch?v=ASABxNenD_U
- https://www.youtube.com/watch?v=TwDJhUJL-5o
- https://www.youtube.com/watch?v=K4s6Cgicw_A
- https://www.youtube.com/watch?v=IACHfKmZMr8
- https://www.youtube.com/watch?v=TANaRNMbYgk
- https://www.youtube.com/watch?v=CKvo_kQbakU
- https://www.youtube.com/watch?v=BUE-icVYRFU
- https://www.youtube.com/watch?v=Th8JoIan4dg
- https://www.youtube.com/watch?v=CcnwFJqEnxU
- https://www.youtube.com/watch?v=rP7bpYsfa6Q
- https://www.youtube.com/watch?v=Nsx5RDVKZSk
- https://www.youtube.com/watch?v=z1iF1c8w5Lg
- https://www.youtube.com/watch?v=Fk9BCr5pLTU
- https://www.youtube.com/watch?v=chAoH_AeGAg
- https://paulgraham.com/greatwork.html
- https://paulgraham.com/love.html
- https://paulgraham.com/genius.html
- https://paulgraham.com/notnot.html
- https://paulgraham.com/before.html
- https://paulgraham.com/superlinear.html
- https://paulgraham.com/startupideas.html
- https://paulgraham.com/schlep.html
- https://paulgraham.com/boss.html
- https://paulgraham.com/relres.html
- https://gstack.dev/schemas/section-manifest.json
Format check
Each agent reads SKILL.md a little differently. We check the file against each one's published rules; we don't run the skill in any agent.
Agent Skills specPasses with warnings
The open format from agentskills.io, held to what the strictest agents enforce, so one folder loads everywhere.
- Warning
Fields outside the spec: preamble-tier, version, triggers and gbrain. Uploads to the Claude apps and API, and the spec's validator, reject the file; most agents ignore these fields. O1
Fix: Delete them for a portable skill, or keep them if you only target the agents that read them.
- Warning
allowed-tools is a list; the spec defines a space-separated string. gh skill publish rejects a list, though Claude Code accepts one. O5
Fix: Write it on one line: allowed-tools: Bash Read Grep Glob Write Edit AskUserQuestion WebSearch
- Warning
The body is 1300 lines; the spec suggests under 500. B1
Fix: Move detailed sections into reference files and link to them from SKILL.md.
- Warning
The body is about 23,232 tokens (approx.); the spec suggests under 5,000. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Note
The description doesn't say when to use the skill. D6
Fix: Add a sentence such as "Use when …" naming the requests or files that should trigger it.
- Note
There is no license field, so readers can't tell whether they may reuse the skill. O2
Fix: Add license: with an SPDX name such as MIT or Apache-2.0, or the name of a bundled licence file.
- Note
Reference files over 100 lines with no table of contents at the top: sections/design-and-handoff.md (707 lines) and sections/phase-2a-startup-diagnostic.md (164 lines). B5
Fix: Add a short list of the sections at the top of each.
- Warning
Claude CodePasses
Claude Code reads its own extra fields, ignores unknown ones, and still loads a skill whose frontmatter is broken, without its fields.
- Note
Claude Code ignores fields it doesn't know: preamble-tier, version, triggers and gbrain. O1
Fix: Check the spelling against Claude Code's field list, or delete them.
- Note
The body is 1300 lines; the spec suggests under 500. Claude Code's docs say the same. B1
Fix: Move detailed sections into reference files and link to them from SKILL.md.
- Note
The body is about 23,232 tokens (approx.); the spec suggests under 5,000. After compaction Claude Code keeps only the first 5,000 tokens of a skill. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Note
Reference files over 100 lines with no table of contents at the top: sections/design-and-handoff.md (707 lines) and sections/phase-2a-startup-diagnostic.md (164 lines). B5
Fix: Add a short list of the sections at the top of each.
- Note
Claude apps & API uploadFails
Uploading to claude.ai or the Claude API, or packaging with Anthropic's script, accepts only the six spec fields and stops on anything else.
- Error
Upload and packaging fail on fields outside the spec: preamble-tier, version, triggers and gbrain. O1
Fix: Delete them, and keep your own data under metadata as text values.
- Note
allowed-tools is a list; the spec defines a space-separated string. O5
Fix: Write it on one line: allowed-tools: Bash Read Grep Glob Write Edit AskUserQuestion WebSearch
- Note
The body is 1300 lines; the spec suggests under 500. Anthropic's guidance says the same. B1
Fix: Move detailed sections into reference files and link to them from SKILL.md.
- Note
The body is about 23,232 tokens (approx.); the spec suggests under 5,000. Anthropic's guidance says the same. B2
Fix: Move detail into reference files that the agent reads only when needed.
- Note
Reference files over 100 lines with no table of contents at the top: sections/design-and-handoff.md (707 lines) and sections/phase-2a-startup-diagnostic.md (164 lines). B5
Fix: Add a short list of the sections at the top of each.
- Error
OpenAI (Codex & API)Passes with warnings
Codex finds SKILL.md by its exact name and needs a description; OpenAI's Skills API checks the frontmatter against the spec and caps uploads.
- Warning
Fields outside the spec: preamble-tier, version, triggers and gbrain. Codex ignores them; OpenAI doesn't say whether its upload accepts them. O1
Fix: Delete them, or move your own data under metadata as text values.
- Note
allowed-tools is a list; the spec defines a space-separated string. O5
Fix: Write it on one line: allowed-tools: Bash Read Grep Glob Write Edit AskUserQuestion WebSearch
- Warning
VS Code & CopilotPasses
VS Code reads skills one folder below .github/skills, .claude/skills or .agents/skills and falls back to the folder name when the name is missing or differs; GitHub's Copilot docs require the exact name SKILL.md.
- Note
VS Code ignores fields it doesn't support: preamble-tier, version, triggers and gbrain. O1
Fix: Delete them unless another agent you target reads them.
- Note
allowed-tools is a list; the spec defines a space-separated string. O5
Fix: Write it on one line: allowed-tools: Bash Read Grep Glob Write Edit AskUserQuestion WebSearch
- Note
SKILL.md
Files
9 files
More from garrytan/gstack
autoplan
garrytan/gstack
Auto-review pipeline — reads the full CEO, design, eng, and DX review skills from disk and runs them sequentially with auto-decisions using 6 decision principles. (gstack)
Pattern check: Items to reviewWhat it can touch: Adds hooks · Touches credentials +5MIT · 137.8k repo stars · Updated 26 Oct 2026
benchmark
garrytan/gstack
Web performance regression detection. (gstack)
Pattern check: Items to reviewWhat it can touch: Runs shell commands · Pre-approves toolsMIT · 137.8k repo stars · Updated 26 Oct 2026
benchmark-models
garrytan/gstack
Cross-model benchmark for gstack skills. (gstack)
Pattern check: Items to reviewWhat it can touch: Runs shell commands · Pre-approves toolsMIT · 137.8k repo stars · Updated 26 Oct 2026
canary
garrytan/gstack
Post-deploy canary monitoring. (gstack)
Pattern check: Items to reviewWhat it can touch: Runs shell commands · Reaches the network +1MIT · 137.8k repo stars · Updated 26 Oct 2026
captain
garrytan/gstack
Run a crew of coding agents from one controller (also /crew): lanes send READY blocks and never merge; the controller merges through trains, keeps the digest, relays approvals, fixes flakes daily. (gstack)
Pattern check: Items to reviewWhat it can touch: Runs shell commands · Pre-approves toolsMIT · 137.8k repo stars · Updated 26 Oct 2026
codex
garrytan/gstack
OpenAI Codex CLI wrapper — three modes. (gstack)
Pattern check: Items to reviewWhat it can touch: Downloads software · Runs shell commands +3MIT · 137.8k repo stars · Updated 26 Oct 2026