/brief
Read the current Space-owned project Brief from Wenlan. 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.
Claude Code
$ npx -y skills add wenlan-app/wenlan --skill brief --agent claude-code
Codex
$ npx skills add wenlan-app/wenlan --skill brief -a codex -y
Cursor
$ npx skills add wenlan-app/wenlan --skill brief -a cursor -y
Gemini CLI
$ npx skills add wenlan-app/wenlan --skill brief -a gemini-cli -y
GitHub Copilot
$ npx skills add wenlan-app/wenlan --skill brief -a github-copilot -y
OpenCode
$ npx skills add wenlan-app/wenlan --skill brief -a opencode -y
Windsurf
$ npx skills add wenlan-app/wenlan --skill brief -a windsurf -y
SKILL.md
brief.SKILL.mdname: brief
description: >
Read the current Space-owned project Brief from Wenlan. 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.
argument-hint: "[topic]"
allowed-tools: ["Bash", "mcp__wenlan__brief", "mcp__wenlan__list_pending_revisions", "mcp__wenlan__dismiss_revision"]
user-invocable: true
/brief
Read one Space's current project snapshot. The daemon Brief is authoritative; `~/.wenlan/sessions/_status/*.md` is only a one-way human-readable receipt and must never be read as product state.
1. Resolve the Space
Run the bundled resolver once. It prints the resolved Space line itself; an empty `space` means unscoped, so omit `space`.
raw_args="<the full argument string passed to /brief>"
# The resolver ships inside the installed plugin; the relative path only
# exists in a wenlan checkout.
resolver="$(find "$HOME/.codex/plugins/cache" -path '*/wenlan/*/bin/resolve-space.sh' 2>/dev/null | head -1)"
resolved="$("${resolver:-plugin-codex/bin/resolve-space.sh}" --cwd "$PWD" --args "$raw_args")"
space="$(printf '%s\n' "$resolved" | cut -f1)"
source_layer="$(printf '%s\n' "$resolved" | cut -f2)"
topic_arg="$(printf '%s\n' "$resolved" | cut -f3-)"2. Read the Brief
Call:
mcp__wenlan__brief(
topic="<topic_arg only when the user supplied one>",
space="<resolved only when non-empty>"
)
Do not invent or infer a topic when the argument is absent. No topic means the complete Brief alone. A topic means the same complete Brief plus a separate `Related Context` section scoped to that Space.
Brief reads never create state. If the state is `brief_not_created`, explain that the first `/handoff` update will create it. If the state is `space_not_resolved`, ask for a Space only when the working directory and configuration cannot resolve one safely.
Render:
1. Last-session summary. 2. Active items. 3. Backlog items. 4. Related Context, only when returned.
Keep stable item IDs and versions available for later `/handoff` reconciliation, but do not clutter the normal user-facing list with them.
3. Pending revisions
After the Brief, call:
mcp__wenlan__list_pending_revisions(limit=10)
If empty, say nothing. If the call fails, emit one warning and keep the Brief. If non-empty, show at most the top three with `target_source_id`, `revision_content`, and source agent. Never auto-action them. Only the person accepts a revision, in the Wenlan app: say they wait there. You never accept one.
- dismiss, when the person turns one down:
`mcp__wenlan__dismiss_revision(target_source_id="<id>")`
- skip: no call
If more than three exist, point to `$wenlan curate revisions`.
Boundary
Use `/brief` to resume a Space or answer "catch me up." It is not a mandatory every-session boot step. Use `/recall` for a specific fact, `/capture` for a durable memory, and `/handoff` to close a work session.
Read more
name: brief description: > Read the current Space-owned project Brief from Wenlan. 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. argument-hint: "[topic]" allowed-tools: ["Bash", "mcp__wenlan__brief", "mcp__wenlan__list_pending_revisions", "mcp__wenlan__dismiss_revision"] user-invocable: true
/brief
Read one Space's current project snapshot. The daemon Brief is authoritative; `~/.wenlan/sessions/_status/*.md` is only a one-way human-readable receipt and must never be read as product state.
1. Resolve the Space
Run the bundled resolver once. It prints the resolved Space line itself; an empty `space` means unscoped, so omit `space`.
raw_args="<the full argument string passed to /brief>"
# The resolver ships inside the installed plugin; the relative path only
# exists in a wenlan checkout.
resolver="$(find "$HOME/.codex/plugins/cache" -path '*/wenlan/*/bin/resolve-space.sh' 2>/dev/null | head -1)"
resolved="$("${resolver:-plugin-codex/bin/resolve-space.sh}" --cwd "$PWD" --args "$raw_args")"
space="$(printf '%s\n' "$resolved" | cut -f1)"
source_layer="$(printf '%s\n' "$resolved" | cut -f2)"
topic_arg="$(printf '%s\n' "$resolved" | cut -f3-)"2. Read the Brief
Call:
mcp__wenlan__brief( topic="<topic_arg only when the user supplied one>", space="<resolved only when non-empty>" )
Do not invent or infer a topic when the argument is absent. No topic means the complete Brief alone. A topic means the same complete Brief plus a separate `Related Context` section scoped to that Space.
Brief reads never create state. If the state is `brief_not_created`, explain that the first `/handoff` update will create it. If the state is `space_not_resolved`, ask for a Space only when the working directory and configuration cannot resolve one safely.
Render:
1. Last-session summary. 2. Active items. 3. Backlog items. 4. Related Context, only when returned.
Keep stable item IDs and versions available for later `/handoff` reconciliation, but do not clutter the normal user-facing list with them.
3. Pending revisions
After the Brief, call:
mcp__wenlan__list_pending_revisions(limit=10)
If empty, say nothing. If the call fails, emit one warning and keep the Brief. If non-empty, show at most the top three with `target_source_id`, `revision_content`, and source agent. Never auto-action them. Only the person accepts a revision, in the Wenlan app: say they wait there. You never accept one.
- dismiss, when the person turns one down:
`mcp__wenlan__dismiss_revision(target_source_id="<id>")`
- skip: no call
If more than three exist, point to `$wenlan curate revisions`.
Boundary
Use `/brief` to resume a Space or answer "catch me up." It is not a mandatory every-session boot step. Use `/recall` for a specific fact, `/capture` for a durable memory, and `/handoff` to close a work session.
Open-source Obsidian alternative that works with your existing vault. The knowledge base you don't have to maintain: your AI tools keep it organized and up to date, with no API keys or plugins to set up. For you and your team.
Other skills on wenlan.
More skills from other plugins.
codebase-wiki
How to work in a Codebase Wiki project (the `codebase-wiki` starter pack): an agent-authored, source-grounded wiki of the…
academic-paper-reviewe…
Simulates academic peer review, evaluating papers across Originality, Methodology, Results, and Writing to provide Major/Minor…
Questions about brief.
- Which coding agents can use brief?
- brief installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

