/curate
Review pending Wenlan captures, revisions, or daemon refinements from Codex. Use for explicit audit walks after /brief or /handoff surfaces pending work. Invoked as /curate captures, /curate revisions, or /curate refinements.
$ npx -y skills add 7xuanlu/wenlan --skill curate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/curate
Context preview
The summary Claude sees to decide when to auto-load this skill.
Review pending Wenlan captures, revisions, or daemon refinements from Codex. Use for explicit audit walks after /brief or /handoff surfaces pending work. Invoked as /curate captures, /curate revisions, or /curate refinements.
SKILL.md
curate.SKILL.mdname: curate
description: >
Review pending Wenlan captures, revisions, or daemon refinements from Codex.
Use for explicit audit walks after /brief or /handoff surfaces pending work.
Invoked as /curate captures, /curate revisions, or /curate refinements.
argument-hint: "captures | revisions | refinements"
allowed-tools: ["Bash", "mcp__wenlan__list_pending", "mcp__wenlan__confirm_memory", "mcp__wenlan__forget", "mcp__wenlan__capture", "mcp__wenlan__recall", "mcp__wenlan__list_refinements", "mcp__wenlan__accept_refinement", "mcp__wenlan__reject_refinement"]
user-invocable: true
/curate
Power-user audit of Wenlan pending surfaces. Daily flow should stay light: `/brief` shows the top pending revisions and `/handoff` previews recent pending captures. Use `/curate` only when the user asks to walk the queue.
Safety protocol
Perform no mutation until the user replies. Ambiguous replies do not mutate. Cancellation, no reply, or unclear syntax is a no-op.
Render at most four items at a time. Number every item. Ask for explicit action syntax:
1 accept
2 dismiss
3 skip
4 edit: <replacement text>
Do not rely on hidden pagination state across turns. After applying a batch, re-list before showing another batch.
`/curate revisions`
Use the local CLI, not MCP, because revision actions must key on the exact `revision_source_id`.
Resolve `wenlan`:
if command -v wenlan >/dev/null 2>&1; then
W="$(command -v wenlan)"
elif [ -x "$HOME/.wenlan/bin/wenlan" ]; then
W="$HOME/.wenlan/bin/wenlan"
else
echo "wenlan not found"
exit 127
fi
"$W" --format json curate
If `wenlan` is missing, tell the user to run `/setup`.
The JSON array contains:
- `revision_source_id`: staged revision id; action key for accept/dismiss.
- `target_source_id`: original memory id; context only.
- `content`: revised text.
- `source_agent`: proposer.
- `original`: current text when available.
- `diff`: ready-made OLD/NEW preview when available.
Render up to four revisions:
Pending revisions:
1. revision_source_id: <rev_id>
target: <target_source_id>
proposed: "<content>"
diff:
<diff or "(original unavailable)">
Reply with: 1 accept, 1 dismiss, 1 skip
Apply only explicit actions:
"$W" curate accept <revision_source_id>
"$W" curate dismiss <revision_source_id>
`accept` replaces the original memory with that named revision. `dismiss` unstages the false revision link and keeps both memories as independent rows. `skip` does nothing.
`/curate captures`
If the user names a space, parse `space:<name>` and pass it to `mcp__wenlan__list_pending`. Otherwise leave `space` off so the audit covers all pending captures.
Call:
mcp__wenlan__list_pending(limit=50, space="<only when user named one>")
Render up to four:
Pending captures:
1. <source_id> <memory_type> <source_agent>
"<content>"
Reply with: 1 accept, 1 reject, 1 skip, 1 edit: <replacement text>
Apply only explicit actions:
- `accept`: `mcp__wenlan__confirm_memory(memory_id="<source_id>")`
- `reject`: `mcp__wenlan__forget(memory_id="<source_id>")`
- `skip`: no call
- `edit: <replacement>`:
1. `mcp__wenlan__capture(content="<replacement>", supersedes="<source_id>")` 2. `mcp__wenlan__forget(memory_id="<source_id>")`
Reject and edit delete the original pending capture, so require the numbered item and action verb in the same reply.
`/curate refinements`
Use `/curate refinements` only when the user explicitly asks to inspect or review the daemon proposal/refinement queue. Never poll the refinement queue ambiently.
List first with `mcp__wenlan__list_refinements(limit=50)` and show at most four items. Include each proposal id, action, confidence, and a bounded payload summary. The queue includes `vocab_promote` proposals.
Perform no mutation until the user gives an unambiguous item-level accept or reject decision. Apply only numbered item decisions:
- `accept`: `mcp__wenlan__accept_refinement(id="<proposal-id>")`
(include `space` for `cross_space_discovery`).
- `reject`: `mcp__wenlan__reject_refinement(id="<proposal-id>")`
- `skip`: no call
Skip or cancel is a no-op. Do not generically accept `lint_repair_review`; route it through `/lint repair`. Re-list after every mutation batch.
Bare `/curate`
Default to `/curate revisions`. Revisions are the conflict surface that most often needs human judgment. Mention `/curate captures` only as an opt-in audit.
When not to use
- Specific lookup: use `/recall`.
- One-off correction: use `/capture` with the corrected fact.
Read more
name: curate description: > Review pending Wenlan captures, revisions, or daemon refinements from Codex. Use for explicit audit walks after /brief or /handoff surfaces pending work. Invoked as /curate captures, /curate revisions, or /curate refinements. argument-hint: "captures | revisions | refinements" allowed-tools: ["Bash", "mcp__wenlan__list_pending", "mcp__wenlan__confirm_memory", "mcp__wenlan__forget", "mcp__wenlan__capture", "mcp__wenlan__recall", "mcp__wenlan__list_refinements", "mcp__wenlan__accept_refinement", "mcp__wenlan__reject_refinement"] user-invocable: true
/curate
Power-user audit of Wenlan pending surfaces. Daily flow should stay light: `/brief` shows the top pending revisions and `/handoff` previews recent pending captures. Use `/curate` only when the user asks to walk the queue.
Safety protocol
Perform no mutation until the user replies. Ambiguous replies do not mutate. Cancellation, no reply, or unclear syntax is a no-op.
Render at most four items at a time. Number every item. Ask for explicit action syntax:
1 accept 2 dismiss 3 skip 4 edit: <replacement text>
Do not rely on hidden pagination state across turns. After applying a batch, re-list before showing another batch.
`/curate revisions`
Use the local CLI, not MCP, because revision actions must key on the exact `revision_source_id`.
Resolve `wenlan`:
if command -v wenlan >/dev/null 2>&1; then W="$(command -v wenlan)" elif [ -x "$HOME/.wenlan/bin/wenlan" ]; then W="$HOME/.wenlan/bin/wenlan" else echo "wenlan not found" exit 127 fi "$W" --format json curate
If `wenlan` is missing, tell the user to run `/setup`.
The JSON array contains:
- `revision_source_id`: staged revision id; action key for accept/dismiss.
- `target_source_id`: original memory id; context only.
- `content`: revised text.
- `source_agent`: proposer.
- `original`: current text when available.
- `diff`: ready-made OLD/NEW preview when available.
Render up to four revisions:
Pending revisions: 1. revision_source_id: <rev_id> target: <target_source_id> proposed: "<content>" diff: <diff or "(original unavailable)"> Reply with: 1 accept, 1 dismiss, 1 skip
Apply only explicit actions:
"$W" curate accept <revision_source_id> "$W" curate dismiss <revision_source_id>
`accept` replaces the original memory with that named revision. `dismiss` unstages the false revision link and keeps both memories as independent rows. `skip` does nothing.
`/curate captures`
If the user names a space, parse `space:<name>` and pass it to `mcp__wenlan__list_pending`. Otherwise leave `space` off so the audit covers all pending captures.
Call:
mcp__wenlan__list_pending(limit=50, space="<only when user named one>")
Render up to four:
Pending captures: 1. <source_id> <memory_type> <source_agent> "<content>" Reply with: 1 accept, 1 reject, 1 skip, 1 edit: <replacement text>
Apply only explicit actions:
- `accept`: `mcp__wenlan__confirm_memory(memory_id="<source_id>")`
- `reject`: `mcp__wenlan__forget(memory_id="<source_id>")`
- `skip`: no call
- `edit: <replacement>`:
1. `mcp__wenlan__capture(content="<replacement>", supersedes="<source_id>")` 2. `mcp__wenlan__forget(memory_id="<source_id>")`
Reject and edit delete the original pending capture, so require the numbered item and action verb in the same reply.
`/curate refinements`
Use `/curate refinements` only when the user explicitly asks to inspect or review the daemon proposal/refinement queue. Never poll the refinement queue ambiently.
List first with `mcp__wenlan__list_refinements(limit=50)` and show at most four items. Include each proposal id, action, confidence, and a bounded payload summary. The queue includes `vocab_promote` proposals.
Perform no mutation until the user gives an unambiguous item-level accept or reject decision. Apply only numbered item decisions:
- `accept`: `mcp__wenlan__accept_refinement(id="<proposal-id>")`
(include `space` for `cross_space_discovery`).
- `reject`: `mcp__wenlan__reject_refinement(id="<proposal-id>")`
- `skip`: no call
Skip or cancel is a no-op. Do not generically accept `lint_repair_review`; route it through `/lint repair`. Re-list after every mutation batch.
Bare `/curate`
Default to `/curate revisions`. Revisions are the conflict surface that most often needs human judgment. Mention `/curate captures` only as an opt-in audit.
When not to use
- Specific lookup: use `/recall`.
- One-off correction: use `/capture` with the corrected fact.
Wenlan is a knowledge base for the AI-native age. Your AI agents capture what they learn, Wenlan keeps it current and distills it into source-cited wiki pages you can trust
Other skills on wenlan.
- /prove
Per-surface verification loops for wenlan — daemon, cli, mcp, plugin, suite strength (mutation), behavior trace, weekly sweep. Routes to scripts; every check records evidence via attest. Deeper than the built-in verify skill — use prove for mutation audits, behavior tracing, and
Open skill - /run-wenlan
Build, launch, and stop the wenlan daemon (wenlan-server) for local dev and verification. Use when asked to run or restart the daemon, or before driving any surface (HTTP, CLI, MCP) against a live instance.
Open skill - /verify
Drive/evidence recipe for verifying wenlan changes at their real surfaces (daemon HTTP, CLI, MCP stdio). The handle file the built-in verify protocol expects; launch primitives live in the run-wenlan skill, deeper machinery (mutation audit, behavior trace, weekly sweep) in the
Open skill - /brief
Read the current Space-owned project Brief from Wenlan for Codex. With an optional topic, appends separately labeled related context from the same Space. Invoked as /brief [topic] when resuming work or asking to catch up.
Open skill - /capture
Save a durable memory to Wenlan from Codex. Use proactively when the user states a preference, makes a decision, corrects you, or shares a durable fact. Invoked as /capture <content>.
Open skill - /distill
Synthesize or refresh source-backed Wenlan pages from Codex. Invoked as /distill [target], /distill deep, or /distill rebuild <page-id>.
Open skill

