forbotsake-cmo-check/SKILL.md
Stage 2: CHALLENGE. Reads your strategy.md and ruthlessly evaluates it section by section. Rates positioning, ICP, channels, and messaging as weak/adequate/strong. Forces you to consider 2 alternative approaches you haven't explored. Scores overall readiness and suggests specific revisions. Use when: "review my strategy", "is my strategy good", "challenge my marketing", "CMO review", "strategy check", "poke holes in my plan", "what am I missing". Proactively invoke when the user has a strategy.md and asks for feedback or wants to improve their marketing approach.
npx skillsauth add forbotsake/forbotsake forbotsake-cmo-checkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The challenge step. A skeptical CMO reading your strategy before you waste time executing a weak plan.
FORBOTSAKE_HOME="${FORBOTSAKE_HOME:-$HOME/.forbotsake}"
mkdir -p "$FORBOTSAKE_HOME"
# Check for updates
_SKILL_DIR=$(dirname "$(find ~/.claude/skills -path "*/forbotsake-marketing-start/SKILL.md" -type f 2>/dev/null | head -1)" 2>/dev/null)
_FBS_ROOT=$(cd "${_SKILL_DIR}/.." 2>/dev/null && pwd || true)
_UPD=""
[ -n "$_FBS_ROOT" ] && [ -x "$_FBS_ROOT/bin/forbotsake-update-check" ] && _UPD=$("$_FBS_ROOT/bin/forbotsake-update-check" 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "BRANCH: $_BRANCH"
# Check for strategy.md
if [ -f strategy.md ]; then
echo "STRATEGY_FOUND: yes"
head -20 strategy.md
elif [ -f forbotsake-strategy.md ]; then
echo "STRATEGY_FOUND: yes"
echo "STRATEGY_FILE: forbotsake-strategy.md"
head -20 forbotsake-strategy.md
else
echo "STRATEGY_FOUND: no"
fi
# Check for session resume file
_SESSION_FILE="$FORBOTSAKE_HOME/cmo-check-$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)").json"
if [ -f "$_SESSION_FILE" ]; then
echo "RESUME_AVAILABLE: yes"
echo "SESSION_FILE: $_SESSION_FILE"
else
echo "RESUME_AVAILABLE: no"
fi
If output shows UPGRADE_AVAILABLE <old> <new>: read the forbotsake-upgrade SKILL.md
at $_FBS_ROOT/forbotsake-upgrade/SKILL.md (where _FBS_ROOT is the variable already
resolved in the preamble bash above) and follow the "Inline upgrade flow" section Step 1
only. If Step 1 results in "Yes" or "Always" (proceed with upgrade), continue through
Steps 2-7 of the inline flow. If Step 1 results in "Not now" or "Never" (declined),
skip Steps 2-7 entirely and continue with this skill immediately.
If output shows JUST_UPGRADED <old> <new>: tell user
"Running forbotsake v{new} (just updated from v{old})!" and continue.
If STRATEGY_FOUND is no:
"No strategy.md found. Run
/forbotsake-marketing-startfirst to generate your strategy. I need something to challenge."
Stop here. Do not proceed without a strategy.
If RESUME_AVAILABLE is yes: "Found a previous CMO check in progress. Resume where you left off?"
Use AskUserQuestion with options: A) Resume, B) Start fresh.
Read the entire strategy.md (or forbotsake-strategy.md). Parse out these sections:
If any section is missing, note it as a gap. A missing section automatically scores "weak."
Also read the codebase context:
README.md (if exists)package.json, Cargo.toml, go.mod, pyproject.toml, or equivalentgit log --oneline -10 for recent activity contextThis context lets you validate claims in the strategy against what the product actually does.
Rate each section as WEAK, ADEQUATE, or STRONG with specific rationale.
Present each rating ONE AT A TIME. After presenting, ask for the user's reaction before moving to the next.
Evaluate against these criteria:
Rate and explain:
Positioning: [WEAK/ADEQUATE/STRONG]
[2-3 sentences explaining the rating with specific examples from their text. Quote their words back to them when pointing out vagueness.]
Save rating to session file:
echo '{"section": "positioning", "rating": "RATING", "rationale": "RATIONALE"}' >> "$_SESSION_FILE"
Evaluate against these criteria:
Rate and explain, same format as 2a.
Evaluate against these criteria:
Rate and explain, same format as 2a.
Evaluate against these criteria:
Rate and explain, same format as 2a.
This is the hardest part. The user is anchored on their current strategy. Break the anchor.
Present TWO alternative approaches the user has NOT considered. Each alternative should change at least one major axis (ICP, channel, or positioning).
Use AskUserQuestion to present them:
"Before I give you an overall score, I want you to sit with two roads not taken. You don't have to change anything. But if you can't explain why your current approach is better than these, your strategy isn't ready.
Alternative A: [Different ICP or Channel] What if instead of targeting [their ICP], you targeted [alternative ICP]? [2-3 sentences explaining why this could work, with specific reasoning.]
Alternative B: [Different Positioning or Channel] What if instead of [their positioning/channel], you [alternative approach]? [2-3 sentences explaining why this could work, with specific reasoning.]
Which of these (if either) makes you nervous? Nervousness usually means there's something worth exploring."
Wait for the user's response. Their reaction reveals conviction vs. default thinking.
Save their response:
echo '{"phase": "alternatives", "response": "USER_RESPONSE"}' >> "$_SESSION_FILE"
Score the strategy on a scale of 1-10:
/forbotsake-marketing-start and redo.Present the score with a summary:
Overall Readiness: [X]/10
| Section | Rating | Key Issue | |---------|--------|-----------| | Positioning | [rating] | [one-line summary] | | ICP | [rating] | [one-line summary] | | Channels | [rating] | [one-line summary] | | Messaging | [rating] | [one-line summary] |
What's working: [1-2 sentences on strongest elements]
What needs fixing before you execute: [numbered list of specific revisions]
If the score is 6 or below, offer to update strategy.md directly:
"Want me to apply the suggested revisions to strategy.md? I'll mark the changes so you can see what I modified."
Use AskUserQuestion with options: A) Apply revisions, B) I'll do it myself, C) Let's discuss first.
If they choose A, edit strategy.md with the specific improvements. Add a revision note in the frontmatter:
---
schema_version: 1
generated_by: forbotsake
generated_at: {original timestamp}
cmo_check_at: {current ISO timestamp}
cmo_check_score: {X}/10
---
If the score is 7+, skip the revision offer and go directly to next steps.
Tell the user:
"Your strategy has been challenged. Here's where to go next:
If you want deeper research:
/forbotsake-spyto analyze competitors and find messaging whitespace/forbotsake-icpto build a detailed audience profile with real researchIf you're ready to execute:
/forbotsake-content-planto build your content calendarThe strongest move is usually research first, execute second. But if your score was 7+ and you're itching to ship, go straight to content planning."
Remove the session file on successful completion:
rm -f "$_SESSION_FILE" 2>/dev/null
testing
Upgrade forbotsake to the latest version. Detects install type (git clone vs vendored), runs the upgrade, and shows what's new. Use when: "upgrade forbotsake", "update forbotsake", "get latest version", "forbotsake update".
research
Stage 3: RESEARCH (competitors). Analyzes 3-5 competitors to find messaging whitespace and positioning gaps. Produces competitor-analysis.md with a messaging matrix showing what each competitor says, what's missing, and where you can win. Use when: "competitor analysis", "competitive research", "what are others doing", "market landscape", "who am I competing with", "spy on competitors", "messaging whitespace", "differentiation research". Proactively invoke when the user mentions competitors or asks how to differentiate.
development
Stage 4.5: SHARPEN. Takes a specific outreach target (person or organization) and produces a deep execution plan with contextual research, relationship mapping, angle selection, and a multi-touch sequence. Reads your founder profile and strategy to leverage warm paths and unfair advantages. Use when: "refine this plan", "go deeper on this", "sharpen execution", "how do I approach [person]", "outreach to [person]", "target [person/org]", "approach [person]", "engage [org]". Proactively invoke when the user mentions approaching a specific person or organization as part of their marketing strategy. Requires: strategy.md (from /forbotsake-marketing-start).
data-ai
Stage 9: MEASURE. Reviews what you published, analyzes performance data, and produces a retro report with evidence-based recommendations. Tells you what to double down on, what to drop, and what to try next. Use when: "what worked", "marketing retro", "measure results", "review performance", "which content performed best", "should I keep doing this". Proactively invoke one week after /forbotsake-publish was last run.