Initial release: X Bookmark Research for Claude Code

Claude Code extension that transforms Twitter/X bookmarks into structured
research markdown files. Reads config for output directory and user interests,
fetches bookmarks via bird CLI, and generates categorized notes with key
insights, author context, and actionable items.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
HomeBase 2026-02-06 16:26:48 -08:00
commit 816ecd37e0
10 changed files with 867 additions and 0 deletions

View file

@ -0,0 +1,61 @@
---
name: X Bookmark Research
description: Transform Twitter/X bookmarks into structured research markdown files with AI-powered analysis
version: 1.0.0
author: Community
license: MIT
---
# X Bookmark Research
A Claude Code skill that transforms your Twitter/X bookmarks into structured, actionable research notes.
## What It Does
When you bookmark interesting tweets, this skill processes them into organized markdown files with:
- **Key insights** extracted from the content
- **Author context** (who they are, why their perspective matters)
- **Personal relevance** connected to your configured interests and projects
- **Action items** so bookmarks become actionable, not forgotten
## Dependencies
### Required
- **[bird CLI](https://github.com/ryo-ma/bird)** - Command-line tool for Twitter/X API access
- Used to fetch bookmarks, read tweets, and look up author profiles
- Must be authenticated before first use (`bird auth`)
### Optional
- **Exa MCP Server** - Only needed for `--depth deep` research mode
- Provides web search for broader context around tweet topics
- The skill gracefully degrades to `standard` depth without it
## Configuration
This skill reads its settings from `~/.claude/skills/x-bookmark-research/config.yml`.
Copy the example config to get started:
```bash
cp ~/.claude/skills/x-bookmark-research/config.example.yml ~/.claude/skills/x-bookmark-research/config.yml
```
Then edit `config.yml` with your output directory and interests.
## Usage
Invoke via the slash command:
```
/research-bookmarks # Interactive - asks how many and what depth
/research-bookmarks 5 # Process 5 recent bookmarks
/research-bookmarks all # Process all unprocessed bookmarks
/research-bookmarks <url> # Research a specific tweet
/research-bookmarks 10 --depth deep # 10 bookmarks with web research
```
## References
- `references/output-format.md` - Full output template specification and formatting guidelines

View file

@ -0,0 +1,39 @@
# X Bookmark Research - Configuration
# Copy this file to: ~/.claude/skills/x-bookmark-research/config.yml
# Then edit with your personal settings.
# Output directory for processed bookmarks (~ is expanded automatically)
output_dir: ~/Desktop/Research/twitter-bookmarks
# Your interests and projects (used in "Why This Matters" section)
# Be specific - these help Claude connect bookmarks to YOUR context
interests:
- "My SaaS product"
- "AI/ML workflows"
- "Content creation"
# Default research depth: quick | standard | deep
# - quick: Tweet content + basic analysis + action items
# - standard: + Author context via bird CLI (recommended)
# - deep: + Web search for broader context (requires Exa MCP)
default_depth: standard
# Custom categories (optional)
# Uncomment and edit to override the default taxonomy.
# Each category can have subcategories for finer classification.
# categories:
# - name: "AI & Machine Learning"
# subcategories:
# - "LLM Applications"
# - "AI Philosophy"
# - "AI Tools"
# - name: "Engineering Practices"
# subcategories:
# - "Documentation"
# - "Testing"
# - "Architecture"
# - name: "Product & Business"
# subcategories:
# - "Strategy"
# - "Growth"
# - "Pricing"

View file

@ -0,0 +1,172 @@
# Output Format Specification
Generated markdown files follow this exact structure for consistent, searchable research notes.
## Filename Convention
```
YYYY-MM-DD-slug.md
```
- Date: When bookmarked (today's date for new processing)
- Slug: Kebab-case derived from title (max 50 chars)
- Examples:
- `2026-01-30-ai-literacy-thread.md`
- `2026-01-30-specs-as-code-workflow.md`
## Template
```markdown
---
title: [Descriptive title - not just the first line of tweet]
author: "@handle (Full Name)"
date_bookmarked: YYYY-MM-DD
original_date: YYYY-MM-DD
category: [Category / Subcategory]
tweet_url: https://x.com/user/status/ID
engagement: [#] likes, [#] replies, [#] retweets
---
## Key Insight
[1-2 sentence summary capturing WHY this is valuable. Not a description, but the insight.]
## Full Content
[Tweet text verbatim. For threads, format as:]
**1/** First tweet text
**2/** Second tweet text
[etc.]
## Author Context
[Only for --depth standard or deep]
- **[Full Name]** - [Brief description of who they are]
- [Relevant context: role, company, expertise area]
- [Why their perspective matters on this topic]
## Why This Matters
[2-3 sentences connecting this to the user's configured interests.]
Reference the specific interests/projects from config.yml to make this personal and actionable.
## Related Resources
[Optional - only if there are clear connections]
- [Link or reference to related concept]
- [Other bookmarks on similar topics]
## Action Items
- [ ] [Specific, actionable next step]
- [ ] [Another concrete action]
```
## Frontmatter Fields
| Field | Required | Format | Notes |
|-------|----------|--------|-------|
| title | Yes | String | Descriptive, not tweet's first words |
| author | Yes | `"@handle (Full Name)"` | Include both handle and display name |
| date_bookmarked | Yes | `YYYY-MM-DD` | Date of processing |
| original_date | Yes | `YYYY-MM-DD` | Tweet's creation date |
| category | Yes | `Category / Subcategory` | From standard or custom list |
| tweet_url | Yes | Full URL | `https://x.com/user/status/ID` |
| engagement | Yes | String | Format: `N likes, N replies, N retweets` |
## Default Category Taxonomy
These categories are used when no custom categories are configured:
```
AI & Machine Learning
- LLM Applications
- AI Philosophy
- AI Tools
Engineering Practices
- Documentation
- Testing
- Architecture
- DevOps
Thought Leadership
- AI Philosophy
- Career Advice
- Industry Trends
Product & Business
- Strategy
- Growth
- Pricing
Career & Hiring
- Job Opportunities
- Recruiting
- HR Tech
Tools & Automation
- CLI Tools
- Productivity
- Workflows
News & Announcements
- Product Launches
- Company News
- Research Papers
```
Users can override these by defining `categories` in their `config.yml`.
## Section Guidelines
### Key Insight
- One to two sentences MAX
- Focus on the **insight**, not description
- Answer: "What's the takeaway?"
- Bad: "This thread discusses AI literacy"
- Good: "AI literacy is cognitive, not technical - clear thinking matters more than prompt engineering"
### Full Content
- Preserve exact tweet text
- For threads: number each part with `**N/**` format
- Include quoted tweets with `>` blockquote
- Preserve line breaks within tweets
### Why This Matters
- Connect specifically to interests configured in `config.yml`
- Reference the user's actual projects and goals by name
- Be specific, not generic
- 2-3 sentences that make the bookmark actionable
### Action Items
- Use checkbox format: `- [ ]`
- Make actionable and specific
- Typically 2-4 items
- Tie back to user's configured interests where relevant
## Thread Handling
For multi-part threads:
1. Title should reflect the thread's main thesis
2. Number all parts in Full Content section
3. Key Insight summarizes the entire thread, not just tweet 1
4. Engagement may note "thread" in parenthetical
## Quote Tweet Handling
```markdown
## Full Content
[Main tweet text]
> **Quoted from @otheruser:**
> [Quoted tweet text]
```
## Media Handling
Note presence of media but don't embed:
```markdown
## Full Content
[Tweet text]
*[Includes: image showing X / video demonstrating Y]*
```