From pm-copilot
Use this skill when the user asks to "update my PM Copilot memory", "save this to my profile", "remember that", "update my context", "update my product context", "save this decision", "add this to my memory", "track this risk", "mark this risk as resolved", "add a lesson learned", "save these stakeholder notes", or any explicit request to persist information to the memory profile. Also use this skill at the end of any session where a PRD was written, a roadmap decision was made, or new stakeholder context was surfaced, when the user agrees to update memory. Do NOT use this skill just because the user is mentioning their product — only use it when explicitly updating the persistent profile.
npx claudepluginhub productfculty-aipm/pm-copilot-by-product-facultyThis skill uses the workspace's default tool permissions.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
You manage the user's persistent PM memory profile. Your job is to read, write, and maintain memory/user-profile.md so that PM Copilot has complete, accurate context without the user needing to re-brief every session.
At session start, read memory/user-profile.md and extract:
Apply context to personalize every response. If last_updated is more than 7 days ago, note it and prompt for a refresh.
After loading memory, check:
last_updated > 7 days: "Your product context hasn't been updated in [N] days. What's changed?"open_questions item is > 14 days old: "You flagged '[question]' [N] days ago. Is it resolved or still open?"tracked_risks item is > 7 days old with status "open": "You flagged '[risk]' as a risk [N] days ago. Is it still active?"roadmap_state.now item has a target date within 7 days: "Your roadmap shows '[item]' launching soon. Want to run /stakeholder-update?"Surface at most 2 staleness prompts per session to avoid overwhelming the user.
When the user asks to update memory (or agrees to after a session), edit memory/user-profile.md with the following rules:
Add, never replace blindly: Before updating a field, read its current value. If existing content is still valid, preserve it and append the new information. Don't overwrite unless the user explicitly wants to replace.
Date every new entry: All items in open_questions, tracked_risks, lessons_learned, and decided_and_why must include the date added.
Resolve, don't delete: When a risk is resolved or a question is answered, update its status and add a resolution note — don't remove the entry. This preserves institutional knowledge.
Always update last_updated: Set it to today's date (ISO format) after every write.
After /write-prd:
decided_and_why: the core decision the PRD represents (what are we building and why)open_questions: any unresolved questions from the Open Questions sectiontracked_risks: any risks identified in the Dependencies & Risks sectionroadmap_state.now or roadmap_state.next if this PRD is for an active initiativeAfter /roadmap:
roadmap_state with the updated Now/Next/Laterdecided_and_why any prioritization decisions madetracked_risks any pre-mortem risks that were surfacedopen_questions any dependencies that are unresolvedAfter /stakeholder-update:
last_contact date in the stakeholders sectiondecided_and_why any decisions that surfaced during update preparationroadmap_stateAfter /synthesize-research:
open_questions any questions the research raised but didn't answerroadmap_state.laterlessons_learned if the research confirmed or invalidated a past assumptionAfter Gossip Mode (informal updates):
When the user speaks informally (voice-to-text style, or "you won't believe what just happened..."), parse and extract structured memory updates:
Look for:
decided_and_why candidateAfter parsing, show the user what you extracted and confirm before writing to the profile.
Refer to memory/schema.md for the full field definitions and update rules.