plan-ceo-review
Skill2 starsChanged 30 days agoMITView on GitHub
Challenges premise, scope and ambition of a pitch or a milestone through the installed gstack plan-ceo-review skill. Use right after office-hours on OFFICE-HOURS.md, or after plan-milestone and before slice-milestone on M###-CONTEXT.md and M###-ROADMAP.md; also when the user says CEO review, scope review, is this too big, is this too small. Not for technical feasibility (plan-eng-review).
49 other projects use a version of this, 7 of them edited.
Adopted by
Most recently taken up by
- timurgaleev/vibestacktheir own version, first seen Nov 8, 2026
- 0xUrsanomics/utopia-ostheir own version, first seen Nov 1, 2026
- trungtm78/ClaudeSkillstheir own version, first seen Oct 25, 2026
- Marco-Satis/claude-setuptheir own version, first seen Oct 20, 2026
- GusevV1987/ai-workspace-kittheir own version, first seen Oct 15, 2026
- matthewharrilal/claude-skillstheir own version, first seen Oct 13, 2026
Used with
Projects with it also use plan-tune, ios-clean and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ShreyRaviSkillplan-tune
Self-tuning question sensitivity + developer psychographic for gstack (v1: observational). Review which AskUserQuestion prompts fire across gstack skills, set per-question preferences (never-ask / always-ask / ask-only-for-one-way), inspect the dual-track profile (what you declared vs what your behavior suggests), and enable/disable question tuning. Conversational interface — no CLI syntax required.
Also in 9 projects that use this
Saqlain-811Skillios-clean
Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)
Also in 5 projects that use this
Saqlain-811Skillios-fix
Autonomous iOS bug fixer. (gstack)
Also in 5 projects that use this
ShreyRaviSkilllanding-report
Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots are currently claimed by open PRs, which sibling Conductor workspaces have WIP work likely to ship soon, and what slot /ship would pick next. No mutations — just a snapshot. Use when asked to "landing report", "what's in the queue", "show me open PRs", or "which version do I claim next". (gstack)
Also in 8 projects that use this
timurgaleevSkilldocument-generate
Generate missing docs for a feature, module or project as tutorials, how-tos, reference and explanation.
Also in 7 projects that use this
seek888Skillpair-agent
Pair a remote AI agent with your browser. One command generates a setup key and prints instructions the other agent can follow to connect. Works with OpenClaw, Hermes, Codex, Cursor, or any agent that can make HTTP requests. The remote agent gets its own tab with scoped access (read+write by default, admin on request). Use when asked to "pair agent", "connect agent", "share browser", "remote browser", "let another agent use my browser", or "give browser access". (gstack) Voice triggers (speech-to-text aliases): "pair agent", "connect agent", "share my browser", "remote browser access".
Also in 10 projects that use this
- +1 more from Saqlain-811
- +2 more from ShreyRavi
Other versions49 projects use a version of this.
Word for word · 0
None found.
Edited · 7
- aryaniyaps/dot-ai★ 150% same
- nileshteji/skills★ 129% same
- Biznomad/claude-skills★ 050% same
- chriswestt/claude-skills★ 050% same
- greenharborlabs/claude-skills★ 025% same
- ignavm1/claude-skills★ 050% same
- Wyx1105170322/claude-skills★ 050% same
Wrote their own version · 42
- garrytan/gstack★ 141ksame name
- DenchHQ/DenchClaw★ 1.7ksame name
- DenchHQ/ironclaw★ 1.7ksame name
- mr-daedalium/ostack-saas★ 108same name
- no-session/pstack★ 96same name
- lucas-flatwhite/gstack-ko★ 45same name
- AICreator-Wind/gstack-openclaw-skills★ 44same name
- WillNigri/Agentic-Tool-Optimization★ 34same name
- CarbeneAI/Forge★ 9same name
- Samin12/skills★ 8same name
32 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository32 other files it gives its agents.
- AGENTS.mdAGENTS.md
- check-consistencySkill
- adopt-brownfieldSkill
- atomic-designSkill
- code-reviewSkill
- deutschland-stack-apiSkill
- document-releaseSkill
- european-alternatives-apiSkill
- finish-branchSkill
- grillSkill
- handoff-sessionSkill
- init-projectSkill
- minimal-codeSkill
- office-hoursSkill
- oss-projectSkill
- plan-eng-reviewSkill
- plan-milestoneSkill
- plan-taskSkill
- quick-taskSkill
- reassess-roadmapSkill
- reconcileSkill
- resume-sessionSkill
- retroSkill
- shipSkill
- slice-milestoneSkill
- software-craftsmanshipSkill
- spawn-milestone-teamSkill
- summarize-taskSkill
- systematic-debuggingSkill
- test-driven-developmentSkill
- using-ytstackSkill
- verification-before-completionSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 0 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 41 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 81
Mode = abort: If neither a milestone plan nor a pitch artifact exists, abort with: "Run ytstack:office-hours first to produce a pitch, or …
- Very specific: line 83
After the installed gstack plan-ceo-review skill completes:
- Very specific: line 92
If MODE is abort: stop with the abort message from the invocation notes (this gate comes first because it needs no gstack).
- Very specific: line 93
If GSTACK_AVAILABLE is no (or unknown): stop.
- Very specific: line 94
If GSTACK_PIN_OK is no: continue, but say once that the installed gstack (GSTACK_VERSION) is older than the version ytstack was tested with.
- Very specific: line 95
If BUN_OK is no: continue, but warn that gstack's helpers need bun >= 1.4.2 and may fail.
“Common” is measured: kept by at least 6 in 10 of the 41 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
ytstack:plan-ceo-review
Thin wrapper around the installed gstack plan-ceo-review skill (~/.claude/skills/gstack/plan-ceo-review, ytstack tested against v1.96.0.0). Detects the ytstack mode (milestone vs concept), checks the install, invokes the gstack skill through the Skill tool so its procedure runs natively, then applies the outcome to ytstack artifacts. gstack is the single source of truth for the procedure; upstream updates arrive with the install.
ytstack context (resolved at render time)
# ytstack resolver (M016): checkout = where this shell runs, via the shared lib.
_LIB="${CLAUDE_SKILL_DIR}/../../hooks/lib/git-ctx.sh"
if [ -f "$_LIB" ]; then
. "$_LIB"; yt_git_ctx "$PWD"; yt_resolve_yt_dir >/dev/null
_PROJECT_DIR="$YT_TOPLEVEL"; _YT_DIR="$YT_DIR"; _YT_SCOPE="$YT_SCOPE"; _IS_GIT="$YT_IS_GIT"; _PROJECT_KEY="$YT_REPO_KEY"
else
# Host did not substitute CLAUDE_SKILL_DIR (e.g. Codex adapter): project scope only.
_IS_GIT=$([ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = true ] && echo yes || echo no)
_PROJECT_DIR=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
_YT_DIR=""; _YT_SCOPE=none; _PROJECT_KEY=""
[ -d "$_PROJECT_DIR/.ytstack" ] && { _YT_DIR="$_PROJECT_DIR/.ytstack"; _YT_SCOPE=project; }
fi
cd "$_PROJECT_DIR" 2>/dev/null || true
_PROJECT_SLUG=$(basename "$_PROJECT_DIR")
_CURRENT_MILESTONE=none
if [ -n "$_YT_DIR" ] && [ -f "$_YT_DIR/STATE.md" ]; then
_CURRENT_MILESTONE=$(sed -n 's/^current_milestone: *//p' "$_YT_DIR/STATE.md" | head -1)
fi
_CONTEXT_FILE="$_YT_DIR/$_CURRENT_MILESTONE-CONTEXT.md"
_ROADMAP_FILE="$_YT_DIR/$_CURRENT_MILESTONE-ROADMAP.md"
# Concept-mode pitch discovery: greenfield OFFICE-HOURS.md, or brownfield .ytstack/OFFICE-HOURS-*.md
_PITCH=""
if [ -f "./OFFICE-HOURS.md" ]; then
_PITCH="./OFFICE-HOURS.md"
elif [ -n "$_YT_DIR" ]; then
_PITCH=$(ls "$_YT_DIR"/OFFICE-HOURS-*.md 2>/dev/null | head -1)
fi
# Mode detection
if [ "$_CURRENT_MILESTONE" != "none" ] && [ -f "$_CONTEXT_FILE" ] && [ -f "$_ROADMAP_FILE" ]; then
_MODE=milestone
elif [ -n "$_PITCH" ] && [ -f "$_PITCH" ]; then
_MODE=concept
else
_MODE=abort
fi
# gstack precheck (M017): installed dependency, not vendored
if command -v yt_gstack_ctx >/dev/null 2>&1; then
yt_gstack_ctx >/dev/null
echo "GSTACK_AVAILABLE: $YT_GSTACK_AVAILABLE"; echo "GSTACK_DIR: $YT_GSTACK_DIR"; echo "GSTACK_VERSION: ${YT_GSTACK_VERSION:-none}"
echo "GSTACK_PIN_OK: $YT_GSTACK_PIN_OK (pin v$YT_GSTACK_PIN)"; echo "GSTACK_SKILL_OK: $(yt_gstack_skill_ok plan-ceo-review)"
echo "BUN_OK: $YT_BUN_OK (${YT_BUN_VERSION:-none})"; echo "GSTACK_INSTALL_CMD: $YT_GSTACK_INSTALL_CMD"
else
echo "GSTACK_AVAILABLE: unknown (shared lib not loaded)"
fi
echo "HAS_YTSTACK: $([ -n "$_YT_DIR" ] && echo yes || echo no)"
echo "MODE: $_MODE"
echo "CURRENT_MILESTONE: $_CURRENT_MILESTONE"
echo "CONTEXT_FILE: $_CONTEXT_FILE ($([ -f "$_CONTEXT_FILE" ] && echo yes || echo no))"
echo "ROADMAP_FILE: $_ROADMAP_FILE ($([ -f "$_ROADMAP_FILE" ] && echo yes || echo no))"
echo "PITCH: ${_PITCH:-none}"ytstack invocation notes
This wrapper runs in one of two modes, auto-detected above:
Mode = milestone (a ytstack milestone exists). The "plan" being CEO-reviewed is the current milestone's CONTEXT + ROADMAP. Read _CONTEXT_FILE and _ROADMAP_FILE when the gstack skill asks what plan to review. Do NOT prompt the user to identify the plan.
Mode = concept (no milestone yet; pitch artifact produced by ytstack:office-hours exists). The "plan" being CEO-reviewed is the pitch at _PITCH. Treat it as a project-concept: challenge premise, scope, target user, differentiation. Output the decision to proceed / rescope / kill. Concept-mode CEO review runs BEFORE init-project, per the locked greenfield flow (DECISIONS 2026-04-24 "Greenfield-flow reorder").
Mode = abort. If neither a milestone plan nor a pitch artifact exists, abort with: "Run ytstack:office-hours first to produce a pitch, or run ytstack:plan-milestone to produce a milestone plan. plan-ceo-review reviews an existing plan; it does not produce one." Do NOT invoke the gstack skill.
After the installed gstack plan-ceo-review skill completes:
- Milestone mode: apply the review outcome by editing
_ROADMAP_FILE(add / reorder / remove slices per approval). Append any locked scope decision toDECISIONS.mdin append-only format. UpdateSTATE.mdlast_updatedand next-action if slicing changed. - Concept mode: write the review outcome as an annotation block at the top of
_PITCH(e.g.## CEO review 2026-04-24: hold / expand / reduce, with reasoning). If the decision is "proceed", recommendytstack:plan-eng-review(if not yet run) orytstack:init-projectto scaffold. If "kill" or "rescope", recommend re-running office-hours on the affected questions before any commit.
HARD-GATE: gstack installed?
This wrapper runs the gstack plan-ceo-review skill that is installed on this machine (GSTACK_DIR above; ytstack is tested against gstack v1.96.0.0, bun >= 1.4.2). gstack is not vendored any more (DECISIONS 2026-11-07 "Vendor strategy").
- If
MODEisabort: stop with the abort message from the invocation notes (this gate comes first because it needs no gstack). - If
GSTACK_AVAILABLEisno(orunknown): stop. Tell the user thatytstack:plan-ceo-reviewneeds gstack and print the one-line install command fromGSTACK_INSTALL_CMD. Do not improvise the CEO review from memory. - If
GSTACK_PIN_OKisno: continue, but say once that the installed gstack (GSTACK_VERSION) is older than the version ytstack was tested with. - If
BUN_OKisno: continue, but warn that gstack's helpers need bun >= 1.4.2 and may fail.
Procedure
- Invoke the Skill tool with
plan-ceo-review(the installed gstack skill, notytstack:plan-ceo-review). When it asks which plan to review, answer fromMODE: milestone ->CONTEXT_FILE+ROADMAP_FILE; concept ->PITCH. Follow it to completion. - Apply the ytstack post-processing for the detected mode from "ytstack invocation notes" above.
- Report the outcome and the recommended next skill. Do NOT auto-invoke any downstream skill.
Checklist
You MUST create a TodoWrite task for each of these items:
- Run preamble -- resolver, mode detection, gstack precheck flags
- HARD-GATE -- abort without a plan; stop with the install command when gstack is missing
- Invoke installed
plan-ceo-reviewvia the Skill tool, pointing it at the mode's plan files - Post-process -- roadmap edits + DECISIONS (milestone) or pitch annotation (concept)
- Report + return -- outcome + next step, no auto-chaining
Terminal State
Return control after reporting the review outcome (hold / expand / reduce / kill) and the recommended next skill: milestone mode -> ytstack:slice-milestone (or re-slice); concept mode -> ytstack:plan-eng-review or ytstack:init-project on "proceed", ytstack:office-hours on "kill / rescope". Abort paths (no plan, no gstack) return with the message only. Do NOT auto-invoke any downstream skill.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

