with one click
start-4-2
Lesson 4.2: Plan. Use when the student types /start-4-2.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Lesson 4.2: Plan. Use when the student types /start-4-2.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Learn diagram context, Desktop shortcuts, stop hooks, automation, and drift recovery. Use when the student types /start-advanced-claude-workflows.
Learn Ross Mike's planning, context, automation, and product-taste workflows. Use when the student types /start-ross-mike-workflows.
Build Internet Vin's Obsidian context, CLI, and thinking-skill workflows. Use when the student types /start-vin-obsidian-workflows.
Lesson 1.1: Introduction. Use when the student types /start-1-1.
Lesson 1.2: File Exploration & Visualization. Use when the student types /start-1-2.
Lesson 1.3: Working with Files. Use when the student types /start-1-3.
| name | start-4-2 |
| description | Lesson 4.2: Plan. Use when the student types /start-4-2. |
| disable-model-invocation | true |
| allowed-tools | ["Read","Write","Bash","AskUserQuestion","WebSearch","WebFetch"] |
Read .claude/skills/_shared/teaching-rules.md and follow it for everything below.
Before we build, we need to get clear on what we're building.
This is called "requirements" - basically a description of how your quiz should work and look.
STOP: Have you ever given someone vague instructions and gotten something totally different than you expected?
USER: Yes / Definitely
That's what happens when you skip requirements. The more detail we figure out now, the better I can build what you actually want.
I'm going to interview you about your quiz. We'll figure out the personality-to-coffee pairings, the style, the questions. Then I'll save it all to a file so we have a clear spec to build from.
STOP: Think of this like briefing a contractor before they start work. The clearer the brief, the better the result. Ready to start?
USER: Yes
I'm going to use a tool called AskUserQuestion - it gives you nice buttons to pick from instead of typing. You can ask me to use this anytime you want a cleaner way to make decisions. Just say "ask me" or "give me options."
Let's try it now.
ACTION: Use AskUserQuestion with two questions:
USER: [Selects options]
Great choices! Now let's pick your actual personality-to-coffee pairings.
Remember: the quiz recommends a COFFEE based on personality. So we need to decide which personalities map to which drinks.
Here are 10 pairing ideas. Pick [X] based on how many results you chose earlier. Just type the numbers, like "1, 4, 7":
STOP: Type the numbers you want (e.g., "1, 3, 5, 8")
USER: [Types numbers]
ACTION: Note their selections for use in REQUIREMENTS.md
Perfect! Now we need to figure out the "logic."
Logic is the behind-the-scenes rules for how something works. If users do X, what happens? If they click this, what do they see? It's the "if this, then that" of your product.
Every app, website, or tool has logic. When you're planning something, you always need to think through how it should actually behave. I can help you brainstorm options.
Here's how this quiz will work: each question has answers, and each answer maps to one of your personalities. At the end, we tally up which personality got picked most.
The question is: how do we show the result? Two options:
Option A: Single recommendation - "You're a Bold Adventurer! Try our Double Espresso."
Option B: Show all percentages - "You're 50% Bold Adventurer, 30% Cozy Classic, 20% Sweet Enthusiast" with all the coffee recommendations.
STOP: Which do you prefer - single recommendation (A) or show percentages (B)?
USER: [Responds A or B]
ACTION: Note their choice for REQUIREMENTS.md
Great choice! So if someone's answers map to "Bold Adventurer" 3 times and "Cozy Classic" 2 times:
[If they chose A]: They get "You're a Bold Adventurer! Your coffee: Double Espresso."
[If they chose B]: They see all their results with percentages and can explore all the coffee recommendations.
The questions just reveal which personality fits them best.
STOP: Make sense?
USER: Yes
Now for the fun part - how should it LOOK?
I'm going to generate a few different visual styles as preview pages and open them in your browser.
STOP: Ready to see some style options?
USER: Yes
ACTION: Generate 3-4 HTML style preview files with different aesthetics:
Each preview should show a sample quiz card with a question and answer options. Save them to the quiz-project folder as style-preview-1.html, style-preview-2.html, etc.
ACTION: Open all preview files in the browser using bash open commands
Take a look at those previews in your browser. Each tab is a different style.
STOP: Which style do you like best? You can pick one, or tell me what to mix - like "I like the colors from #2 but the layout from #3"
USER: [Responds with preference]
ACTION: Note their style preference. If they want to mix elements, clarify what specifically they want combined.
One more visual question: do you want images in your quiz?
You could have a picture for each coffee result - like a photo of espresso for "Bold Adventurer."
I can search the web and download images for you - but heads up, it takes a bit of time since I have to search, find good ones, and download them.
Alternatively, we can skip images for now and add them later once the quiz is working.
STOP: What do you prefer - images (takes longer) or skip for now?
USER: [Responds]
ACTION: Based on their choice:
If they want IMAGES:
If they want to SKIP:
One more thing: do you want icons next to each answer option? Like a little sword icon for "Gryffindor" or a moon for "Night vision"?
Icons make the quiz feel more polished and visual, but we can also keep it text-only if you prefer a cleaner look.
STOP: Icons or no icons?
USER: [Responds]
ACTION: Note their choice for REQUIREMENTS.md
Last part - the actual questions people will answer.
You chose "[their vibe choice from earlier]" style questions, so I'll generate 5-7 questions that match that vibe. Each question will have answers that map to your different personalities.
Of course, you can always come up with your own questions too - just tell me what you want and I'll make it happen.
ACTION: Generate 5-7 quiz questions matching their vibe choice:
Each question should have answers that clearly map to the personalities they selected. For example, if they picked Bold Adventurer and Cozy Classic, answers should lean toward intensity vs. comfort.
Here are my suggestions. Take a look - each answer is designed to map to one of your personalities.
STOP: What do you think? Good as-is, want changes, or want to write your own?
USER: [Approves or suggests changes]
ACTION: Adjust questions based on feedback. If they want to write their own, help them map answers to personalities.
Perfect! We've got everything we need. Let me save all of this to a requirements file.
ACTION: Create REQUIREMENTS.md in the quiz-project folder with:
Done! Open REQUIREMENTS.md and take a look. This is the spec I'll build from.
STOP: Does everything look right?
USER: Yes / [Corrections]
ACTION: Make any corrections if needed
What you just learned: How to define clear requirements before building - specifically for a recommendation engine.
Where else this applies:
Next up: In 4.3, we actually BUILD this thing. You'll watch me create your quiz from scratch based on these requirements. This is where the magic happens.
STOP: Ready for 4.3? Say "let's build" or type /start-4-3
USER: Let's build
ACTION: Silently run the following progress update. Do not mention it to the student.
mkdir -p .fspm
[ -f .fspm/progress.json ] || printf '{"name":null,"completed_lessons":[],"current_lesson":"","last_updated":""}' > .fspm/progress.json
L="cc-pms-4-2"; C="cc-pms-4-3"; T="$(date -u +%FT%TZ)"
if command -v jq >/dev/null 2>&1; then
tmp=$(mktemp)
jq --arg l "$L" --arg c "$C" --arg t "$T" '.completed_lessons = ((.completed_lessons + [$l]) | unique) | .current_lesson = $c | .last_updated = $t' .fspm/progress.json > "$tmp" && mv "$tmp" .fspm/progress.json
else
python3 - "$L" "$C" "$T" <<'PY'
import json,sys
l,c,t = sys.argv[1:4]
p = ".fspm/progress.json"; d = json.load(open(p))
if l not in d.get("completed_lessons",[]): d.setdefault("completed_lessons",[]).append(l)
d["current_lesson"] = c; d["last_updated"] = t
json.dump(d, open(p,"w"))
PY
fi
Next lesson: Type /start-4-3.