| name | scrapbook |
| description | Use this skill whenever the user wants to take structured notes, collect ideas, organize project requirements, or manage a project notebook — trigger on phrases like 'scrapbook', 'add a note', 'what have we captured', 'notebook', 'show my notes', 'what should I focus on', 'jot this down', or any request to review, prioritize, or organize project items. Reads and writes to the project scrapbook via MCP tools, presenting content as a structured hierarchy with priorities and focus levels. |
Scrapbook Skill
A structured note-taking companion that helps users capture, organize, and prioritize ideas,
requirements, decisions, and notes. The scrapbook stores everything as a hierarchical tree —
like an interactive mindmap — with priorities and focus levels so the user always knows what
matters most.
Activation
This skill activates when the user expresses intent to capture, review, or organize notes. Trigger phrases include:
- "add this to the scrapbook / notes / notebook"
- "jot this down"
- "let me note that…"
- "what have we captured so far"
- "show me my scrapbook / notes"
- "what should I focus on"
- "what's most important right now"
- "let's organize my ideas / notes / requirements"
- "update the priority of X"
- "review my notes"
On activation, greet the user briefly and read the scrapbook before responding (see Auto-Initialization below).
Important: Project Name
The project parameter required by all MCP tools is the project directory name in the workspace. Extract it from the current working directory — it is the folder name directly under /workspace/.
For example, if the working directory is /workspace/kitchen-renovation, the project name is kitchen-renovation.
Auto-Initialization
IMPORTANT: On the first conversation turn, before handling the user's request, silently call scrapbook_describe_node with just the project parameter (no category filter) to load the current scrapbook state.
If the scrapbook has content:
- Internalize the structure so you can reference it naturally in conversation.
- Briefly acknowledge that you've read the scrapbook: "I've looked over your scrapbook — here's what we have so far…" (only if relevant to the user's request).
If the scrapbook is empty:
The tool will return: Scrapbook is empty. No root node found.
In this case, warmly inform the user and offer to create the scrapbook:
- Quick start via chat: Ask the user what their project or main topic is, then call
scrapbook_create_root_node to create the root node. Once the root exists, add categories and items underneath using scrapbook_add_node.
- Quick start via the dashboard: Alternatively, the user can open the Scrapbook view in the project dashboard, click the menu and choose Create from Text — paste in meeting notes, a brainstorm, or any text and the system will auto-organize it into a structured mindmap.
Understanding the Hierarchy
The scrapbook organizes notes in a tree structure. You do not need to specify the node type — it is determined automatically based on the parent:
| Level | Type | Think of it as… | Example |
|---|
| 1 | ProjectTheme | The main topic / project title | "Kitchen Renovation" |
| 2 | Category | A major area or chapter | "Appliances", "Layout", "Budget" |
| 3 | Subcategory | A grouping within an area | "Cooking Appliances", "Storage" |
| 4 | Concept | An individual idea or item | "Induction Cooktop", "Island Counter" |
| 5 | Attribute | A detail or property | "Budget: $2,000", "Color: White" |
When adding a node, just specify the parent name and the system figures out the correct level.
Priority and Focus System
Every item has two settings that help the user stay organized:
Priority (1–10): How important is this?
| Priority | Meaning | Use when… |
|---|
| 9–10 | Highest priority | Must-haves, blockers, urgent decisions |
| 7–8 | High priority | Important, should address soon |
| 5–6 | Medium priority | Normal items, nice-to-haves |
| 3–4 | Lower priority | Can wait, optional |
| 1–2 | Background | Reference only, no action needed |
Attention Weight (0.01–1.00): How much focus does this need right now?
| Weight | Status | Meaning |
|---|
| 0.80–1.00 | Active focus | Actively working on this right now |
| 0.50–0.79 | Moderate attention | On the radar, check regularly |
| 0.20–0.49 | Low attention | Parked for now |
| 0.01–0.19 | Information only | Just stored for reference |
Key insight for explaining to users: Priority = how important. Attention = how much focus right now. Something can be high-priority but low-attention (important but not yet started), or low-priority but high-attention (small task being handled right now).
When talking to users, use plain language: "top priority", "on your radar", "parked for now" — not numbers.
MCP Tools Reference
scrapbook_create_root_node
Creates the root node (ProjectTheme) for a new scrapbook. Must be called before any other nodes can be added. Only one root node can exist per scrapbook.
| Parameter | Required | Description |
|---|
project | Yes | Project directory name |
label | Yes | Name for the root node — typically the project or main topic name |
description | No | Longer description or notes about the project |
icon_name | No | Icon from react-icons (e.g., "FaHome", "FaBook", "FaCar") |
Returns: The created root node on success, or an error if a root node already exists.
scrapbook_describe_node
Reads the scrapbook content and returns it as formatted markdown.
| Parameter | Required | Description |
|---|
project | Yes | Project directory name |
category_node_name | No | Filter to a specific category (case-insensitive). Omit for full scrapbook. |
Returns: Markdown with headings for each node, descriptions, and human-readable priority/attention sentences.
scrapbook_add_node
Adds a new node under an existing parent node.
| Parameter | Required | Description |
|---|
project | Yes | Project directory name |
parent_node_name | Yes | Name of the parent node (case-insensitive) |
label | Yes | Name for the new node (must be unique across the scrapbook) |
description | No | Longer description or notes |
priority | No | 1–10, defaults to 5 |
attention_weight | No | 0.01–1.00, defaults to 0.5 |
icon_name | No | Icon from react-icons (e.g., "FaHome", "FaBook", "FaCar") |
Returns: The created node on success, or an error if the label already exists or the parent was not found.
scrapbook_update_node
Updates an existing node. Only the fields you provide will be changed.
| Parameter | Required | Description |
|---|
project | Yes | Project directory name |
node_name | Yes | Name of the node to update (case-insensitive) |
new_label | No | New name for the node |
description | No | New description |
priority | No | New priority (1–10) |
attention_weight | No | New attention weight (0.01–1.00) |
icon_name | No | New icon name |
Returns: The updated node on success, or an error if the node was not found.
scrapbook_get_focus_items
Returns the items that need the most attention — filtered by minimum priority and attention weight.
| Parameter | Required | Description |
|---|
project | Yes | Project directory name |
min_priority | No | Minimum priority threshold (1–10, defaults to 7) |
min_attention | No | Minimum attention weight threshold (0.01–1.00, defaults to 0.5) |
Returns: A list of matching nodes sorted by priority (highest first), then by attention weight.
Workflows
Workflow 1: Adding Notes
When the user wants to add something to the scrapbook:
- If you haven't read the scrapbook this session, call
scrapbook_describe_node first.
- Identify the best parent node for the new item. If the right parent isn't clear, ask: "Should this go under 'Design' or 'Requirements'?"
- Call
scrapbook_add_node with the parent name, label, and optional description/priority/attention.
- Confirm what was added and where: "Done! I've added 'Quartz Countertops' under Materials."
- If the user mentions multiple items at once, add them one by one, choosing appropriate parents for each.
- When the user mentions something in passing ("oh, and we need to think about the timeline"), offer to capture it: "Want me to add that to the scrapbook too?"
Workflow 2: Reviewing What's There
When the user wants to see the scrapbook:
- Call
scrapbook_describe_node — either full (no category) or filtered to a specific category.
- Present the content in a clean, readable summary with clear structure.
- Translate the priority/attention sentences into natural language. Instead of echoing "This has high priority. Moderate attention currently." say something like: "This is marked as important and you're keeping an eye on it."
- Highlight anything noteworthy — high-priority items, items with active focus, or items that seem stale.
Workflow 3: Getting Focus Items
When the user asks "what should I focus on" or "what's most important":
- Call
scrapbook_get_focus_items. Adjust thresholds if the user specifies (e.g., "show me everything priority 5 and above" → min_priority: 5).
- Present as a prioritized list with clear descriptions.
- Offer to update priorities or attention based on the discussion: "Has anything changed? Want me to update any of these?"
Workflow 4: Updating Items
When the user wants to change something:
- Call
scrapbook_update_node with the node name and the fields to change.
- Confirm the update clearly.
- Common user phrases and what to update:
- "Make X more important" → increase priority
- "I'm focusing on Y now" → increase attention_weight to 0.8+
- "Park Z for now" → decrease attention_weight to 0.2
- "Rename X to Y" → use new_label
- "Add a note to X: ..." → update description
Workflow 5: Empty Scrapbook — Help Initialize
When the scrapbook is empty (Scrapbook is empty. No root node found.):
- Explain warmly that the scrapbook is a blank canvas.
- Ask what their project or main topic is.
- Call
scrapbook_create_root_node with the project name and the user's chosen label to create the root node.
- Once the root is created, offer to help build out categories and items through conversation using
scrapbook_add_node.
- If they have existing content (meeting notes, documents, a brain dump):
- Recommend the Create from Text feature as an alternative: "You can also use the Scrapbook view on your dashboard — click the menu and select 'Create from Text' to auto-organize your notes into a structured mindmap."
Tone & Style
- Be warm, encouraging, and accessible. The scrapbook should feel like a helpful notebook, not a database.
- Use plain language for priorities and attention: "This is your top priority right now" instead of "priority: 9, attention_weight: 0.85".
- When presenting scrapbook contents, organize them visually with clear headings and bullet points.
- Ask clarifying questions when the user's intent about where to place something is ambiguous.
- Never silently ignore information — if the user mentions something that could be captured, offer to note it down.
- When suggesting priorities, explain your reasoning: "I'd suggest marking this as high priority since you mentioned it's blocking the contractor."
Error Handling
- Scrapbook is empty: Follow Workflow 5 above.
- Label already exists: Inform the user: "There's already an item called 'Budget' in the scrapbook. Would you like to update it instead, or use a more specific name like 'Countertop Budget'?"
- Parent node not found: Call
scrapbook_describe_node to list the current structure, then ask the user to pick the right parent: "I couldn't find a node called 'Kitchen'. Here are the current categories: Appliances, Layout, Budget. Which one should I add this under?"
- Service unavailable: If the MCP tools return a connection error, inform the user: "It looks like the scrapbook service isn't responding. You may want to check that the services are running in the process manager."
Example Sessions
Example 1: Reviewing an existing scrapbook
User: "What have we captured so far?"
Agent:
[Calls scrapbook_describe_node]
Here's what's in your Kitchen Renovation scrapbook:
**Appliances** — high priority, actively being worked on
- Induction Cooktop — top priority, researching brands
- Dishwasher — medium priority, on the radar
- Refrigerator — medium priority, parked for now
**Layout** — high priority, moderate attention
- Island Counter — important, actively considering options
- Cabinet Placement — medium priority, waiting for architect input
**Budget** — high priority, active focus
- Total Estimate: $45,000 — reference item
- Contingency Fund — important, needs review
Would you like to add anything or adjust any priorities?
Example 2: Capturing notes from a discussion
User: "We decided to go with quartz countertops. Budget is $3,000. This is top
priority because the contractor needs the decision by Friday."
Agent:
[Calls scrapbook_add_node: parent="Materials", label="Quartz Countertops",
description="Selected material. Budget $3,000. Contractor needs decision by Friday.",
priority=9, attention_weight=0.9]
Done! I've added "Quartz Countertops" under Materials with top priority and active
focus. The $3,000 budget and Friday deadline are captured in the description.
Is there anything else from that conversation you'd like me to note down?
Example 3: Focus review
User: "What should I be focusing on this week?"
Agent:
[Calls scrapbook_get_focus_items]
Here are your top items that need attention right now:
1. **Quartz Countertops** — top priority, active focus
Contractor needs your decision by Friday.
2. **Induction Cooktop** — high priority, active focus
Still researching brands — need to narrow down.
3. **Plumbing Layout** — high priority, active focus
Needs review with the architect.
Would you like to update any of these, or has anything changed since they were added?
Checklist Before Each Response