원클릭으로
update-piper
Refresh Piper's understanding of the PM's world when things have changed
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Refresh Piper's understanding of the PM's world when things have changed
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Execute one autonomous duty-cycle fire (START / WATCH / WORK / STOP) for a cycling agent. Invoked by the thin cron prompt on each fire. Use when a "DUTY CYCLE TICK" prompt fires, or to run a cycle fire manually. Holds the durable procedure so the cron prompt stays one-line.
Draft the Piper Morgan Weekly Ship newsletter from collected workstream memos. Use when PM says "draft the Ship", "draft Ship
Publish a finished blog post from this repo to the pipermorgan.ai website repo. Use when PM says "publish this post", "push to the blog", or when a draft is marked ready in the editorial calendar. Bridges piper-morgan → piper-morgan-website.
Update the editorial calendar CSV when PM reports a publication, new draft, status change, or URL. Use when PM says "published X on Medium", "add Y to the calendar", "update the URL for Z", or provides syndication URLs after a publish.
Delete a dead/fabricated module (or module family) without stranding importers, tests, CI jobs, or docs. Use for any fix-or-delete execution, Tier-3-style dead-code removal, or retiring a superseded subsystem. Encodes the Finish-the-Unfinished sprint's deletion lessons (Families 1-3, 2026-07-18/19).
Read GitHub Projects-v2 boards and issue state WITHOUT silent truncation or stale claims. Use whenever summarizing sprint/board state for PM, counting open items, or making any "N of M" claim about issues. Companion to assign-sprint-safely (which covers WRITES; this covers READS).
| name | update-piper |
| description | Refresh Piper's understanding of the PM's world when things have changed |
Keep Piper's understanding of the PM's world current as things change — without making PM re-do the full meet-piper interview.
meet-piper is a one-time conversation. The PM's world isn't. Projects end, teams shift, priorities change, new tools get wired in. Without update-piper, Piper's context degrades silently: it keeps referencing a project that shipped, a team member who left, a goal that no longer applies. The quality of Piper's answers depends on the quality of its model of who PM is and what they're working on.
meet-pipermeet-piper or the last update-piper — Piper prompts proactivelyNot for: the full initial interview (use meet-piper). Not for wiring new connectors (use connect-piper). Not for one-off corrections in a conversation ("actually that project is done" — just tell Piper inline).
Show before asking. Before asking PM what's changed, show what Piper currently knows. PM can't tell you what's stale if they don't know what you have. The "show first" step also catches drift PM didn't notice — Piper may have a subtly wrong model that PM hasn't had reason to correct.
Update sections, not the whole profile. A full re-interview is slow and wastes PM's time on things that haven't changed. Update only what's different; leave the rest alone.
The PM profile covers six areas. Each can be updated independently:
| Section | What it covers | Common staleness triggers |
|---|---|---|
| Projects | Active projects, their status, goals, and maturity | Project shipped, new project started, project paused |
| Team | People PM works with, their roles, and how they fit | New hire, departure, role change, new collaboration |
| Focus | Current priorities, what PM is spending time on | New quarter, strategy shift, crisis re-prioritization |
| Working style | How PM likes to work, communication preferences, decision patterns | Rarely changes — usually stable after meet-piper |
| Tools & integrations | GitHub repos, calendars, Notion, Slack workspaces | New repo, new tool adopted, integration added |
| Goals | What PM is trying to accomplish (90-day, annual, or product goals) | New OKRs, shipped goal, goal abandoned |
Retrieve what Piper currently knows about this PM.
With server access (Plugin path):
get_profile() → returns stored PM profile JSON
Without server access (Native path): summarize what's been established in prior conversations. Be explicit about what you're working from.
If no profile exists at all: redirect to meet-piper — update-piper updates an existing profile, not creates one from scratch.
Before asking any questions, give PM a clear summary of what Piper currently knows. Use this format:
Here's what I currently know about your world. Tell me what's changed.
**Projects**
- [Project name] — [one-line status: active / in-flight / launched / paused]
- [Project name] — [status]
**Team**
- [Name] ([role]) — [one line on what they do]
- [Name] ([role]) — [one line]
**Current focus**
[2-3 sentences on what Piper understands PM is prioritizing]
**Tools**
- GitHub: [repos]
- Calendar: [connected / not connected]
- [Other tools]
**Goals (as I understand them)**
- [Goal 1]
- [Goal 2]
Follow immediately with: "What's changed, or what have I got wrong?"
Let PM respond naturally — they'll tell you what's stale. Don't ask a long structured questionnaire; let PM lead.
Once PM identifies what's changed, ask targeted follow-up questions for each area they flagged. Don't probe areas they didn't flag (those are still current).
For a changed project:
For a team change:
For a focus shift:
For new tools:
connect-piper if needed)For a goal change:
Keep probes short. One area at a time. Stop when PM indicates you have what you need.
Write the updated sections back.
With server access (Plugin path):
save_profile(updated_sections) → confirms save
Without server access (Native path): state the updates explicitly in conversation so they're in context. Offer to save them to a profile file PM can reference later.
Summarize what changed:
Updated. Here's what I've revised:
✅ Projects: [what changed]
✅ Team: [what changed]
[Only list sections that were updated]
Everything else is unchanged. What would you like to do next?
If a change revealed a connector that should be wired (new GitHub repo, new calendar), offer to run connect-piper now.
Piper should prompt PM to run update-piper when:
The nudge should be brief and non-blocking:
"Quick note — my profile for you was last updated [date]. Want to take 2 minutes to refresh it? Just say 'update my profile' when you're ready."
Don't block PM's current request to do the update. Note it; let PM choose when.
| Don't | Why | Instead |
|---|---|---|
| Ask for updates without showing current state first | PM can't identify what's stale if they don't know what you have | Show → ask, every time |
| Re-run the full meet-piper interview | Wastes PM's time on unchanged sections | Update sections, not the whole profile |
| Update silently without confirming | PM doesn't know what changed; can't verify accuracy | Always confirm what was updated |
| Accept "things have changed" without probing | Too vague to update correctly | Ask targeted questions per section |
| Prompt for updates every session | Interrupts flow; teaches PM to ignore it | Wait for PM to flag, or nudge at 4-week mark |
| Mix connector setup into this skill | Separate concerns; different flow | Redirect to connect-piper for new integrations |
After running update-piper:
connect-piper if a new tool was mentionedTrigger (from PM):
"I need to update you — we launched the GitHub connector last week so that project is done, and I have a new team member joining, Sara, who's going to own the analytics work."
Step 2 — Show current profile:
Here's what I currently know about your world. Tell me what's changed.
**Projects**
- GitHub connector — active, in-flight (Wave 1)
- Weekly digest — spec drafted, not yet in roadmap
- Piper plugin (BYOC) — planning, Track 5
**Team**
- You (xian) — PM/founder
- Lead Dev — engineering
- CXO — experience design
- (others)
**Current focus**
Wave 1 PM skills build-out, BYOC architecture, alpha testing
**Tools**
- GitHub: mediajunkie/piper-morgan-product ✅
- Calendar: not connected
- Notion: not connected
**Goals**
- Ship BYOC alpha to first external PMs
- Build Wave 1 PM skills (5 of 5)
- Establish Piper's differentiated value vs. generic AI tools
What's changed, or what have I got wrong?
PM says: "GitHub connector shipped, that project is done. And Sara is joining to own analytics."
Step 3 — Probe:
"Got it — a couple of quick follow-ups:
- Is the GitHub connector work completely wrapped up, or is there a Phase 2 / follow-on?
- For Sara: what's her full role, and is analytics a new area for the team or something that already existed informally?"
PM says: "Connector is done, no follow-on yet. Sara is a new hire, data/analytics, first dedicated analytics person we've had."
Step 4 — Update:
Step 5 — Confirm:
Updated. Here's what I've revised:
✅ Projects: GitHub connector → SHIPPED (no active follow-on)
✅ Team: Sara added — analytics lead (first dedicated analytics person)
Everything else is unchanged. Also — now that the connector is shipped,
want to make sure it's wired properly? We can run connect-piper to verify
the token is still active and pull a quick test.