# Prompt Review

> Batch-review the prompts you sent Claude on a given day (via claude-mem), pull out the ones that are your own original self-reflection (self-model, decision patterns, relationships, emotional processing — not task instructions), and log them into that day's journal under a "# Prompt Review" section. Use when the user wants to "回顾一下今天/昨天给AI的自我反思prompt", "把有价值的反思记进journal", or asks to run this on a schedule.

- Skill: `goodluckz/prompt-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add goodluckz/prompt-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/goodluckz/prompt-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: goodluckz (https://skillmd.com/u/goodluckz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/goodluckz/prompt-review

---


# Prompt Review

Surface the self-reflection you type into prompts but never copy into the journal. This is deliberately narrow — it is **not** a general "what did I do today" log (`weekly-review` already owns that, pulling from claude-mem's tool-use/observation history into `# Work`). Engineering-project chatter and SP/task-logistics chatter were tried here and dropped: they duplicated `weekly-review`, and on review turned out low-value on their own. The one thing worth resurfacing is prompts that are your own original thinking about yourself — everything else in this skill exists only to filter down to those.

Why write these to the journal at all when claude-mem is already searchable: the journal and `self-model` serve different jobs than claude-mem's search index. claude-mem is query-first — you find something only if you think to search for it. The journal is what actually gets *browsed* (for periodic self-review, for mining into `self-model`), and `self-model` itself is deliberately curated down to the most important distilled statements, not a record of every prompt. This skill is the missing middle layer: a scannable, plain-text, unfiltered-but-topically-narrow record of the raw reflective material, sitting between "searchable but easy to forget to search" (claude-mem) and "important but heavily distilled" (self-model).

Vault root: `/Users/zhaoliang/LocalDocuments/vaults/vault`. Daily files: `journals/YYYY-MM-DD.md`.

## 1. Resolve the date(s) to review

- Explicit date/range from the user → use it verbatim.
- No args (e.g. triggered by `/loop` or `/schedule`) → default to **yesterday** (today is usually incomplete when this runs).
- **Skip a day if it's already been reviewed**: `Read` that day's journal file first — if a `# Prompt Review` heading already exists with content under it, skip the day (don't re-process) unless the user explicitly asked to redo it. This is the only idempotency mechanism; there is no separate state file to keep in sync.

## 2. Pull that day's prompts from claude-mem — two passes

Use `mcp__plugin_claude-mem_mem-search__search` with `type: "prompts"`, `dateStart`/`dateEnd` set to the day (format `YYYY-MM-DD`), and a high `limit` (e.g. 100). Two quirks discovered empirically (not documented in the tool's own help text):

- `type` alone is rejected ("Either query or filters required for search") — it must be paired with `dateStart`/`dateEnd` (or a `query`).
- If the result count equals your `limit`, page with `offset` until a page comes back short — busy days can exceed 50-100 prompts.

Run this as **two passes with different bars**, since one project is dedicated to reflection and the rest aren't:

**Pass A — `project: "self-analysis-vault"`.** This project is where the user's self-analysis work happens, so most of what lands there is already reflection by construction. Use a low bar: include everything except purely mechanical no-content prompts (see the drop-list below) and prompts that are unambiguously pure task/logistics with zero reflective content (e.g. "查一下 SP 里那个任务勾了没"). A little non-reflective bleed-through here is fine and expected — don't spend effort being strict on this project.

**Pass B — no project filter (all other projects, i.e. everything not already caught by Pass A).** Search results are not scoped to one project by default, so this pass naturally spans every other project interleaved together. Use the strict bar from step 3 — this is where genuine reflections get typed into an engineering or task-focused session and would otherwise be lost.

Each result row gives an ID (`#P####`), timestamp, and a truncated preview (~100-150 chars) — usually enough to judge. Only call `get_prompt(id)` for full text when the preview is truncated mid-thought and the prompt looks like a keeper. Don't fetch full text for every prompt.

## 3. Filter for genuine self-reflection (strict bar — Pass B, and the drop-list for Pass A)

Keep a prompt only if it's the user's own original thinking about themselves: self-model entries, decision-making patterns, cognitive biases, relationship/trust dynamics, emotional processing, values, "why do I keep doing X" style introspection.

Drop everything else, including:
- Task instructions and requests to Claude ("把这个写成技能", "查一下 SP", "先存起来吧") — these are commands, not reflection, regardless of topic.
- Engineering/technical discussion — even if substantive, it belongs to `weekly-review`'s `# Work`, not here.
- SP task tracking, visa/logistics, scheduling, shopping research — task/life admin, not reflection.
- Pure daily-life reporting (health data, appointments, purchases) with no analytical content — already covered by `# Happenings` / `# Quick Notes`.
- Mechanical continuations ("继续。", "好的", bare slash commands) — no content at all.

When in doubt on Pass B, the test is: *would this sentence make sense as an entry in a self-model / self-analysis note, independent of any task Claude was asked to do?* If not, drop it. On Pass A, only the mechanical/pure-logistics items get dropped — everything with any reflective content stays.

## 4. Write the section

Read the day's journal file first (should already be read from step 1's skip-check). Append a new top-level section **`# Prompt Review`** — not part of the shared daily template (don't add it there; it's a vault convention going forward, same as `weekly-review`'s `## Work` addition to the weekly template). Place it right after `# Work` and before `# Content`.

```
# Prompt Review

- <verbatim or lightly-trimmed quote of the reflection, in the user's own words> (#P7461)
- ...
```

Rules:
- Preserve the user's actual wording — quote or lightly trim, don't paraphrase. The value is specifically in their own articulation.
- Group only when multiple prompts in the same thread are clearly one continuous reflection; otherwise one bullet per prompt.
- Tag each bullet with its source prompt ID(s) in parenthesis (`#P7461`) so the user can trace back via `get_prompt` later.
- If a reflection is already quoted verbatim elsewhere in that day's journal (e.g. `# Quick Notes`), still list it here with a short cross-reference instead of dropping it — this section is meant to be the complete index of the day's reflective prompts, findable in one place.
- If nothing on a given day qualifies, skip writing the section entirely rather than adding an empty heading.

## 5. Report back

Give a compact summary: which day(s) were processed, how many prompts were found vs. how many qualified as self-reflection, and point to the file(s) edited.

## Running this on a schedule

This skill doesn't schedule itself. For "定时批量回顾", wrap it with the `loop` skill (e.g. `/loop 1d /prompt-review`) or the `schedule` skill for a cron-based daily/weekly run. Mention this if the user asks for automation but hasn't set up the recurring trigger yet.

