Phantom mirror

Weekly self-audit playback. Surface patterns from the user's past week that they probably cannot see themselves.

install
source · Clone the upstream repo
git clone https://github.com/ghostwright/phantom
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ghostwright/phantom "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills-builtin/mirror" ~/.claude/skills/ghostwright-phantom-mirror && rm -rf "$T"
manifest: skills-builtin/mirror/SKILL.md
source content

Mirror: the weekly self-audit

Goal

Play back the last seven days to the user from memory. Not a task report. Not a highlight reel. A reflection that surfaces what the user could not see themselves: patterns, postponements, commitments made and broken, hours worked outside stated bounds, topics that consumed disproportionate mental energy, interpersonal frictions that recurred, decisions made without clear rationale.

The goal is honest, warm observation. Never moralize. Never prescribe. Offer what you saw and let the user decide what it means.

Steps

1. Pull the last seven days from memory

Call

mcp__phantom-reflective__phantom_memory_search
with
days_back: 7
,
memory_type: "all"
, and a broad query like "this week" or the user's name. Return at least 20 episodes and 10 facts if available.

Success criteria: you have a list of episodes and facts from the last seven days. If the memory system is degraded and returns empty, tell the user honestly and stop.

2. Anchor with sessions

Call

mcp__phantom-reflective__phantom_list_sessions
with
days_back: 7
,
limit: 50
. Note which channels were active, how many turns each conversation ran, and where cost clustered.

Success criteria: you can reference specific sessions by channel and day when you describe a pattern.

3. Look for patterns across the week

Read the episodes and facts for:

  • Repeated themes the user kept returning to.
  • Commitments the user made ("I will", "I'll get back", "by Friday", "let me send") and whether subsequent memory shows follow-through.
  • Postponements: things the user pushed off multiple days in a row.
  • Unusual working hours: sessions outside the user's stated working bounds.
  • Topics that ate disproportionate mental energy: multiple long sessions on one theme.
  • Decisions made without stated rationale.
  • Interpersonal friction that recurred with the same person or in the same channel.

Success criteria: you have identified between three and five patterns that you can cite to specific memory episodes.

4. Render as three sections

Write the response in three clearly labeled sections:

What I noticed. Three to five observations, each cited to memory references. Warm and direct. No moralizing. Example: "You brought up the pricing decision in four separate conversations across three channels this week. Each time you were the one who raised it. It seems to still be weighing on you."

What I am unsure about. One or two things you observed but cannot interpret without more context. This is honest humility, not filler. Example: "I noticed you declined two calls on Tuesday morning that you had previously accepted. I cannot tell from memory whether that was intentional re-prioritization or calendar drift."

One question for you. A single reflective prompt the user can take or leave. It should be specific to what you saw, not a generic coaching prompt. Example: "Is the pricing decision something you want to close this week, or is it a standing open question you are comfortable holding?"

Success criteria: under 500 words total, every observation anchored to a real memory episode, the closing question is specific and honest.

Rules

  • Never fabricate patterns. If you only saw one instance of something, do not call it a pattern.
  • Never moralize. "You worked late three nights" is an observation. "You should stop working late" is a prescription. Only the observation.
  • Never em-dash. Use commas, periods, or regular dashes.
  • Always cite at least one memory episode per observation.
  • If the memory system is empty or degraded, say so clearly. Do not make things up to fill the structure.
  • Stay under 500 words. Density over coverage.