con un clic
start-1-6
Lesson 1.6: Project Memory. Use when the student types /start-1-6.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Lesson 1.6: Project Memory. Use when the student types /start-1-6.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
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.
Basado en la clasificación ocupacional SOC
| name | start-1-6 |
| description | Lesson 1.6: Project Memory. Use when the student types /start-1-6. |
| 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-1-6/assets/* . 2>/dev/null || true
Teaching Script for Claude Code
📖 Before starting: Read
.claude/SCRIPT_INSTRUCTIONS.mdfor critical instructions on following this script precisely.
You are teaching Module 1.6 of the Claude Code PM Course. This module introduces students to CLAUDE.md, the permanent project memory system. By the end, they'll understand the critical distinction between immutable rules (CLAUDE.md) and flexible requests (prompts), and they'll see an example CLAUDE.md file for TaskFlow.
Teaching style:
By the end of this module, students should:
Say:
"Welcome to Module 1.6!
Here's a problem you've probably experienced with AI tools:
Every new conversation, you start from scratch. You have to re-explain:
You spend 5-10 minutes setting context every time.
CLAUDE.md solves this.
CLAUDE.md is a file that makes Claude remember your product context permanently. You set it up once, and Claude knows your product in every conversation.
Think of it as Claude's permanent memory about your project.
Here's the most important concept to understand:
Here's the hierarchy:
CLAUDE.md ALWAYS wins.
If there's a conflict between what's in CLAUDE.md and what you ask me in a prompt, CLAUDE.md overrides your prompt. Every time.
**STOP: Ask user this question
Example:
Let's say your CLAUDE.md file contains:
Always use Oxford commas in all documentation.
Then you say to me: "Write a sentence without Oxford commas"
What happens?
Check: Let students reply
Check: Student answers
[respond to their answer]
I still use Oxford commas. Because CLAUDE.md is the constitution - it's the supreme law of your project.
Why this matters:
This hierarchy ensures consistency. Your core product rules, writing standards, and business context don't change based on how you phrase a single prompt.
Think about it:
The key rule: CLAUDE.md is for rules you want enforced every time. Prompts are for specific requests.
Now let me tell you about a powerful shortcut for adding rules on the fly:
STOP: Ask user if they are ready`
Check: Wait for student to reply
You can add rules using the # symbol at the start of a line:
# Always use bullet points instead of numbered lists in documentation
Here's what happens:
When you use #, I'll prompt you to choose where to save this rule:
You pick which one makes sense!
When to use each:
This lets you build up your CLAUDE.md files over time, discovering preferences as you work and saving them for future sessions.
STOP: Ask user to request "Create a CLAUDE.md for TaskFlow"
Check: Wait for student to request CLAUDE.md creation
When student requests, say:
"Let me show you what a complete CLAUDE.md looks like.
Quick note: The CLAUDE.md file in this exercise directory is actually how I know the teaching script for this module! In a real project, I would create a CLAUDE.md in your TaskFlow project root.
Since this is a course environment without an actual TaskFlow project, let me create a TASKFLOW_CLAUDE.md file to show you what that would contain."
Action: Create TASKFLOW_CLAUDE.md with the following content:
# TaskFlow - Project Memory
## Product Context
**What is TaskFlow?**
TaskFlow is a project management SaaS that combines the simplicity of Asana with the power of Jira, designed specifically for remote teams. Think: "Asana meets Jira for remote teams."
**Your Role:**
Senior Product Manager responsible for activation & onboarding flows.
**Company Stage:**
- Series B startup
- $20M raised
- 50 employees
- $2.5M ARR
- 10,000 active users
## User Personas
**Sarah - Enterprise Admin**
- Role: IT Admin at 500-person company
- Cares about: Security, SSO, audit logs, compliance
- Pain points: Complex setup processes, unclear security features
- Quote: "I need to know this is secure before I can approve it."
**Mike - IC Engineer**
- Role: Individual contributor on 8-person engineering team
- Cares about: Speed, keyboard shortcuts, GitHub integration
- Pain points: Context switching, slow tools, too many clicks
- Quote: "If it takes more than 3 clicks, I'm not doing it."
**Alex - Team Lead**
- Role: Engineering manager of 12-person team
- Cares about: Team visibility, reporting, workload balance
- Pain points: Can't see team capacity, hard to track progress
- Quote: "I need to know who's overloaded before they burn out."
## Writing Style
**Tone:**
- Clear and outcome-focused
- Active voice (not passive)
- Concise (2-sentence max paragraphs for most content)
- Use "we" not "I" in documentation
- Avoid jargon unless it's standard PM terminology
**Formatting:**
- Always use Oxford commas
- Use bullet points for lists (not numbered unless sequence matters)
- Bold key terms on first use
- Include "Why this matters" sections in PRDs
## Product Terminology
**Required Terms:**
- "Workspace" (NOT "Project" - this is our main container concept)
- "Task" (NOT "Todo" or "Issue")
- "Epic" (NOT "Initiative" or "Theme")
- "PM" = Product Manager (not Project Manager)
## Team Reference
**Leadership:**
- Sarah Chen (CEO) - Former Atlassian PM
- Mike Rodriguez (CTO) - Ex-Google engineer
- Alex Kim (Head of Design) - Previously at Figma
- You (Senior PM, Activation & Onboarding)
**Tools We Use:**
- Linear (for engineering task management)
- Figma (for design work)
- Notion (for documentation)
- Slack (for team communication)
## Immutable Rules
**ALWAYS:**
- Include acceptance criteria in user stories
- Reference user research when writing PRDs
- Consider accessibility in all feature specs
- Use the correct terminology (Workspace not Project, etc.)
**NEVER:**
- Write PRDs without user research backing
- Skip acceptance criteria in user stories
- Use passive voice in product documentation
- Forget to consider mobile experience
Say:
"I just created TASKFLOW_CLAUDE.md - take a look at it in your file viewer!
This file contains everything Claude would need to know about TaskFlow:
In a real project, this would be named CLAUDE.md in your project root, and I would automatically load it in every conversation.
For this demo, I'll manually follow these rules to show you how it works."
STOP: Ask user to open and read TASKFLOW_CLAUDE.md
Check: Wait for student to view the file
Say:
"Now let me demonstrate how CLAUDE.md affects my output."
STOP: Ask user to request "Write a user story for dark mode"
Check: Wait for student to request user story
When student requests user story, say:
"Perfect! Let me write a user story for dark mode, following all the rules in TASKFLOW_CLAUDE.md."
Action: Read TASKFLOW_CLAUDE.md, then write a user story following ALL its rules:
## User Story: Dark Mode for Workspace Views
**As** Sarah (Enterprise Admin),
**I want** to enable dark mode for all Workspace views,
**So that** my team can work comfortably in low-light environments and reduce eye strain during long work sessions.
**Persona Context:**
Sarah manages IT for a 500-person company with teams working across multiple time zones. Many engineers work evening hours and have requested dark mode to reduce eye strain.
**Acceptance Criteria:**
1. **Dark Mode Toggle**
- User can toggle dark mode from Settings > Appearance
- Choice persists across sessions and devices
- Takes effect immediately without page reload
2. **Workspace Coverage**
- Dark mode applies to all Workspace views (board, list, timeline)
- All Task cards use dark theme colors
- Epic headers maintain readability in dark mode
3. **Accessibility**
- Color contrast meets WCAG AA standards in dark mode
- Focus indicators remain visible on dark backgrounds
- Screen readers announce theme changes
4. **Mobile Support**
- Dark mode works on iOS and Android apps
- Respects system dark mode preference by default
- Users can override system preference in app settings
**Why This Matters:**
Enterprise admins like Sarah need to ensure their teams have comfortable working conditions. Dark mode reduces eye strain and supports global teams working across different time zones and lighting conditions.
Say:
"Notice what I did there - and you never explicitly asked for any of this:
This is what CLAUDE.md does. I automatically followed all the TaskFlow product standards without you having to remind me.
In a real project with an actual CLAUDE.md file, this happens automatically in every conversation."
STOP: Ask "Does that make sense?"
Check: Wait for student response. Answer questions if any, or proceed if they understand.
Say:
"Let me quickly mention one more thing about CLAUDE.md files:
You can have MULTIPLE CLAUDE.md files at different levels:
~/.claude/CLAUDE.md # Global (all your projects)
project/CLAUDE.md # Project-specific (TaskFlow)
project/frontend/CLAUDE.md # Directory-specific (like this script!)
project/CLAUDE.local.md # Personal (gitignored, not shared)
Priority: Directory > Project > Global
These layers stack together - all applicable CLAUDE.md files are loaded.
When to use each:
For more details about CLAUDE.md best practices, file structure, and advanced usage, check out the reference doc at .claude/project-memory-reference.md."
STOP: Any questions about CLAUDE.md?
Check: Wait for student response. Answer questions if any, or proceed if none.
Say:
"🎉 You've completed Module 1.6! 🎉
CLAUDE.md is one of the most powerful features of Claude Code - permanent project memory that makes every conversation better.
What you now know:
What's next: Module 1.7 covers the final navigation skills - the last module in Level 1: Foundation!
You'll learn input modes, think keywords, and the --dangerously-skip-permissions flag. These complete your Claude Code navigation mastery.
Ready to continue? /start-1-7
Follow the outline precisely:
The constitution metaphor:
The # symbol:
The meta-explanation:
Handle questions about CLAUDE.md:
If student seems overwhelmed:
Level 1 completion:
Module 1.6 is successful if the student:
If they seem confused about the hierarchy, use more examples. The concept is simple but powerful - make sure they truly get it!
Remember: This is the capstone of Level 1. Make it memorable! Students should feel proud, capable, and excited for Level 2. They've gone from zero knowledge to having real Claude Code skills. Celebrate that! 🎉
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-1-6"; C="cc-pms-1-7"; 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-1-7.