/SKILL.md
Capture URLs, text, and images into personal knowledge base. Use when user says /brain-dump, "save this URL", "dump this", "capture this", "brain dump", "remember this", or wants to search or learn from saved content.
npx skillsauth add relferreira/brain-dump brain-dumpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Capture URLs, text, and images into a personal knowledge base stored as Markdown files in ~/.brain-dump/.
/brain-dump → List recent dumps
/brain-dump search <query> → Search titles and content
/brain-dump learn → Learn from smart selection (default: random)
/brain-dump learn random → Learn from random dumps
/brain-dump learn today → Learn from today's dumps
/brain-dump <url> → Fetch, summarize, save URL
/brain-dump <image-path> → Describe and save image
/brain-dump <text> → Summarize (if long) and save text
Parse the arguments after /brain-dump:
search → Search mode (query is everything after "search ")learn → Learn mode (check for subcommand: random, today, or default to smart selection)http:// or https:// → URL mode.png/.jpg/.jpeg/.gif/.webp/.svg (and file exists) → Image modeFirst, get the home directory path and create directories if needed:
echo $HOME && mkdir -p ~/.brain-dump/assets
IMPORTANT: For all Glob, Read, and Write operations, use the full expanded path (e.g., /Users/username/.brain-dump/) not ~. The ~ only works in Bash commands.
echo $HOME
/Users/relferreirapattern: *.mdpath: The home directory + /.brain-dump (e.g., /Users/relferreira/.brain-dump)~ in path - it won't expand. Always use the full path from step 1.# heading)Recent dumps:
1. [2024-01-28] Article Title (url) #tag1 #tag2
2. [2024-01-27] Quick Note (text) #notes
...
/brain-dump <url>, /brain-dump <text>, or /brain-dump <image-path> to get started."echo $HOMEpattern: the search query (case insensitive with -i: true)path: The home directory + /.brain-dump (e.g., /Users/relferreira/.brain-dump)glob: *.mdoutput_mode: files_with_matchesSearch results for "query":
1. [2024-01-28] Article Title (url) #tag1 #tag2
...matching text snippet...
2. [2024-01-27] Another Article (note) #notes
...matching text snippet...
Learn mode teaches you content from your dumps and then quizzes you.
Step 1: Parse subcommand
learn or learn random → Smart/random selectionlearn today → Today's dumps onlyStep 2: Get home directory and load history
echo $HOME
Then read $HOME/.brain-dump/learn-history.json if it exists.
Step 3: Select dumps based on mode
For today:
date matches today's date (YYYY-MM-DD)/brain-dump learn random instead."For random (default - smart selection):
Step 4: Teach Phase
📚 Today's Lesson (3 dumps)
You've been learning about [topics]...
Key concepts:
• [Concept 1 from dump 1]
• [Concept 2 from dump 2]
• [Concept 3 from dump 3]
[2-3 paragraphs synthesizing the content]
Step 5: Quiz Phase
AskUserQuestion tool:
header as the question number (e.g., "Q1 of 4")question for the full question textoptions for the answer choices (2-4 options){
"questions": [{
"question": "What is the main benefit of [concept]?",
"header": "Q1 of 4",
"options": [
{ "label": "Option 1", "description": "Explanation of option 1" },
{ "label": "Option 2", "description": "Explanation of option 2" },
{ "label": "Option 3", "description": "Explanation of option 3" },
{ "label": "Option 4", "description": "Explanation of option 4" }
],
"multiSelect": false
}]
}
Step 6: Results and Save History
📊 Results: 4/5 correct (80%)
✓ Question 1 - Correct
✓ Question 2 - Correct
✗ Question 3 - Incorrect (review: thinking-in-react.md)
✓ Question 4 - Correct
✓ Question 5 - Correct
Great job! Consider reviewing the dumps you missed.
History File Format: ~/.brain-dump/learn-history.json
{
"sessions": [
{
"date": "2024-01-28T10:30:00Z",
"mode": "random",
"dumps": [
{
"file": "thinking-in-react.md",
"correct": 2,
"total": 2
},
{
"file": "hooks-note.md",
"correct": 1,
"total": 2
}
],
"score": 4,
"total": 5
}
]
}
Smart Selection Algorithm:
When selecting dumps for random mode:
timesStudied: how many sessions included this filecorrectRatio: total correct / total questions for this filetimesStudied === 0correctRatio < 0.7 and timesStudied > 0correctRatio >= 0.7Fetch content using WebFetch with prompt:
Extract the main content of this page. Provide:
1. A clear, descriptive title (not the site name)
2. A 2-4 sentence summary of the key points
3. 2-3 relevant tags as a comma-separated list (lowercase, single words)
Format your response as:
TITLE: [title]
SUMMARY: [summary]
TAGS: [tag1, tag2, tag3]
Parse the response to extract title, summary, and tags
Generate filename:
.md extensionfilename-20240128.mdfilename-20240128-2.mdCreate markdown file:
---
date: YYYY-MM-DD
source: [original URL]
tags: [tag1, tag2, tag3]
type: url
---
# [Title]
[Summary]
---
Source: [original URL]
Write file to ~/.brain-dump/[filename].md
Confirm to user:
Saved: [title]
File: ~/.brain-dump/[filename].md
Tags: #tag1 #tag2 #tag3
Error handling: If WebFetch fails, offer to save as a simple bookmark:
---
date: YYYY-MM-DD
source: [URL]
tags: [bookmark]
type: bookmark
---
# Bookmark: [URL domain]
URL saved for later review.
---
Source: [URL]
Validate file exists using Bash test -f
Generate unique asset filename:
YYYYMMDD-HHMMSS-[original-filename]~/.brain-dump/assets/Read and describe image using the Read tool (which handles images)
Generate content based on the image:
Generate markdown filename from the description (same rules as URL mode)
Create markdown file:
---
date: YYYY-MM-DD
source: [original file path]
tags: [tag1, tag2, tag3]
type: image
---
# [Descriptive Title]

[Description of the image]
---
Original: [original file path]
Write file and confirm to user
Error handling: If file doesn't exist, ask user to verify the path.
Analyze the text:
Generate title:
Generate 2-3 tags relevant to the content
Generate filename (same rules as URL mode)
Create markdown file:
For short text (< 500 chars):
---
date: YYYY-MM-DD
tags: [tag1, tag2, tag3]
type: note
---
# [Title]
[Original text]
For long text (>= 500 chars):
---
date: YYYY-MM-DD
tags: [tag1, tag2, tag3]
type: note
---
# [Title]
[Summary]
---
## Original Content
[Full original text]
Write file and confirm to user
To generate a valid filename:
~/.brain-dump/:
name-20240128.mdname-20240128-2.md, name-20240128-3.md, etc.Always be concise. After successful save:
Saved: [title]
File: ~/.brain-dump/[filename].md
Tags: #tag1 #tag2 #tag3
For list mode, show a clean formatted list. For errors, be helpful and suggest fixes.
data-ai
Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some waiting on outside answers, and others rolling into a later summary.
data-ai
Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some waiting on outside answers, and others rolling into a later summary.
data-ai
OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
data-ai
OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.