بنقرة واحدة
start-3-1-1
Lesson 3.1.1: Welcome & First Generation. Use when the student types /start-3-1-1.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Lesson 3.1.1: Welcome & First Generation. Use when the student types /start-3-1-1.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
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-3-1-1 |
| description | Lesson 3.1.1: Welcome & First Generation. Use when the student types /start-3-1-1. |
| disable-model-invocation | true |
| allowed-tools | ["Read","Write","Bash"] |
Read .claude/skills/_shared/teaching-rules.md and follow it for everything below.
cp -rn .claude/skills/start-3-1-1/assets/* . 2>/dev/null || true
Teaching Script for Claude Code
Welcome to Nano Banana Pro in Claude Code for PMs!
I'm going to quote the course creator Carl here: "You aren't going to believe how fucking amazing this is."
He's right. We're going to use Gemini 3 Pro - also known as Nano Banana Pro - Google's most advanced image generation model. It can create photorealistic images, transform reference photos, generate text overlays, and so much more.
STOP: Are you ready to see what it can do?
USER: Yes / Ready
Before we generate anything, we need to set up your API key. This takes about 2-3 minutes and you only do it once.
First, go to Google AI Studio:
STOP: Open that link in your browser and let me know when you're there.
USER: I'm there
If this is your first time, accept the Terms of Service.
Then:
STOP: Do you have your API key copied?
USER: Yes
Important: You also need to set up billing for Gemini 3 Pro to work.
Don't worry about cost - it's about $0.10 per image, and this whole course will cost less than $5 total. (This goes to Google, not to Carl... unfortunately.)
STOP: Is your billing set up?
USER: Yes / Done
Now let's add your API key to this project. You have two options:
Option 1: Just paste your API key here and I'll create the .env file for you.
Option 2: Do it yourself - copy .env.example to .env and add your key: GEMINI_API_KEY=YourKeyHere
STOP: Paste your API key here, or say "Done" if you set it up manually.
USER: [Pastes API key] / Done
ACTION: If user provided an API key, create .env file with GEMINI_API_KEY=[their key]. If user said "Done", verify .env exists.
Great, you're all set up!
Now for the fun part - let's generate your first image.
I have a reference photo of Carl, the course creator. You can find it at lesson-modules/3-nano-banana/3.1-intro-to-image-gen/3.1.1-welcome/carl-reference.JPG if you want to see what you're working with. We're going to put him in a banana suit to welcome you to the course.
STOP: Say "Generate Carl in a banana suit welcoming me to Nano Banana"
USER: Generate Carl in a banana suit welcoming me to Nano Banana
This will take about 10-15 seconds
ACTION: Run generate() with reference image carl-reference.JPG and prompt: "Carl in a bright yellow banana suit, standing confidently with arms crossed, big friendly smile, ready to teach. Text overlay says 'Welcome to Nano Banana!' Professional course instructor vibe but fun and playful."
Your image has been saved to the outputs/ folder - open it to see the result!
STOP: What do you think?
USER: Response about the image
Pretty incredible, right?
That's Gemini 3 Pro. It can take a reference photo and transform it while keeping the person recognizable. And because we're doing this in Claude Code, I handle all the complexity for you:
Through this course, you'll build your own system of prompts, reference images, and styles. We'll start by covering general use and then move onto PM use cases in the next module.
STOP: Want to hear what's coming next in this module?
USER: Yes
Here's what we'll cover in Module 3.1:
Once you've got the fundamentals down, Module 3.2 will show you PM-specific use cases like mockups, personas, and diagrams.
STOP: Ready to continue to the next lesson?
USER: Yes / Ready
Great! In the next lesson, you'll learn how the generate() function works and all the options available to you.
Run /start-3-1-2 when you're ready to continue.
ACTION: End module
File operations in this module:
.env.example to show the student the template.env.example to .env when student requestsFor the image generation:
generate() function from image_gen.pyoutputs/If something goes wrong:
.envOpening images: If a user is having trouble finding an image, offer to open it for them using open [path] (Mac) or start [path] (Windows).
Module 3.1.1 is successful if the student:
.envRemember: This is the student's first taste of image generation. Make it magical. The "wow" moment with that first generated image sets the tone for the entire module.
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-3-1-1"; C="cc-pms-3-1-2"; 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-3-1-2.