adding-tweets
Add tweets to the Second Brain. Use when the user provides a Twitter/X URL and pasted tweet content, asking to "add a tweet", "save this tweet", or "capture this tweet".
Best use case
adding-tweets is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Add tweets to the Second Brain. Use when the user provides a Twitter/X URL and pasted tweet content, asking to "add a tweet", "save this tweet", or "capture this tweet".
Teams using adding-tweets should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/adding-tweets/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How adding-tweets Compares
| Feature / Agent | adding-tweets | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Add tweets to the Second Brain. Use when the user provides a Twitter/X URL and pasted tweet content, asking to "add a tweet", "save this tweet", or "capture this tweet".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Adding Tweets to Second Brain
Add tweets with author linking, tags, and personal annotations.
## Expected Input
User provides:
1. **Tweet URL** - `x.com/*/status/*` or `twitter.com/*/status/*`
2. **Pasted tweet content** - Copy-pasted from Twitter/X
Example user input:
```text
add this tweet https://x.com/naval/status/1234567890
my favorite way to use Claude Code is spec based
start with a minimal spec and ask Claude to interview you
```
## Workflow
```text
Phase 1: Parse URL → Extract tweet ID and author handle
Phase 2: Parse Content → Extract text, date, author name from paste
Phase 3: Author Resolution → Check/create author profile
Phase 4: Generate Tweet File → Write to content/tweets/
Phase 5: Suggest Editing → Tags, annotations, wiki-links
Phase 6: Quality Check → Run pnpm lint:fix && pnpm typecheck
```
### Phase 1: Parse URL
Extract from URL using regex:
- `tweetId`: The numeric ID from `/status/{id}`
- `authorHandle`: The username from `x.com/{username}/status/`
```text
Pattern: (?:x\.com|twitter\.com)/([^/]+)/status/(\d+)
Example: https://x.com/naval/status/1789234567890
→ authorHandle: "naval"
→ tweetId: "1789234567890"
```
### Phase 2: Parse Content
From the pasted text:
- **tweetText**: The main tweet content (clean up any extra whitespace)
- **tweetedAt**: If date is visible in paste, use it. Otherwise use today's date.
- **authorName**: If visible (e.g., "Naval Ravikant"), use it. Otherwise use handle.
If critical info is missing, use the `AskUserQuestion` tool to gather it:
```yaml
question: "I need some missing tweet info. What is the tweet text?"
header: "Tweet Info"
multiSelect: false
options:
- label: "I'll provide it"
description: "Let me paste the tweet content"
```
For optional fields like date, ask separately if needed.
### Phase 3: Author Resolution
1. Check if author exists:
```bash
ls content/authors/{authorHandle}.md
```
2. If not exists, create minimal profile:
```yaml
---
name: "{Display Name or Handle}"
slug: {authorHandle}
socials:
twitter: "https://x.com/{authorHandle}"
---
```
3. For full author enhancement, suggest running `/enhance-author {authorHandle}`
### Phase 4: Generate Tweet File
**Slug format:** `tweet-{tweetId}`
**File path:** `content/tweets/tweet-{tweetId}.md`
**Frontmatter template:**
```yaml
---
type: tweet
title: "{First 50 chars of tweet}..."
tweetId: "{tweetId}"
tweetUrl: "{originalUrl}"
tweetText: "{full tweet text}"
author: {authorHandle}
tweetedAt: {YYYY-MM-DD}
tags:
- {suggested tags}
---
{User's personal annotations go here}
```
### Phase 5: User Editing
After saving, inform user:
- File location
- Suggest adding tags (use `.claude/skills/adding-notes/scripts/list-existing-tags.sh` for suggestions)
- Suggest adding personal annotations in the body
- Suggest wiki-links to related notes
## Tag Suggestions
Based on tweet content, suggest from existing tags:
```bash
.claude/skills/adding-notes/scripts/list-existing-tags.sh
```
Common tweet themes → tags:
- Wisdom, advice → `mindset`, `philosophy`
- Business, startups → `startup`, `business`
- Technology → `tech`, `programming`
- Productivity → `productivity`, `habit`
- AI, Claude → `claude-code`, `ai-agents`, `prompt-engineering`
## Validation
Before saving, verify:
1. Tweet ID is unique (no duplicate file exists)
2. Author profile exists or was created
3. `tweetedAt` is valid date format
4. `tweetText` is not empty
---
## Phase 6: Quality Check
Run linter and type check to catch any issues:
```bash
pnpm lint:fix && pnpm typecheck
```
If errors are found, fix them before completing the task.Related Skills
adding-templates
Use when adding new stacks, libraries, or project addons to create-faster CLI tool - covers META entries, template creation, and testing for all addon types
adding-new-metric
Guides systematic implementation of new sustainability metrics in OSS Sustain Guard using the plugin-based metric system. Use when adding metric functions to evaluate project health aspects like issue responsiveness, test coverage, or security response time.
adding-milestones
Use this skill when adding a milestone to an existing project, starting a new milestone cycle, creating the first milestone after project init, or defining what's next after completing work. Triggers include "add milestone", "new milestone", "start milestone", "create milestone", "first milestone", "next milestone", and "milestone cycle".
adding-service-documentation
Documents new Coolify one-click services by creating markdown pages in docs/services/, downloading logos to docs/public/images/services/, and updating List.vue catalog. Use when adding service documentation, creating service pages, onboarding services from templates/compose/, or updating the services catalog with new entries.
adding-nango-provider-support
Use when adding support for a new Nango provider - configures provider in providers.yaml, creates documentation (main page, setup guide, connect guide), and updates docs.json following established patterns
adding-stacks
Use when adding a new framework/stack to create-faster CLI tool - addresses copy-first mentality, incomplete implementations, and missing dependencies
adding-phases
Use this skill to add planned work discovered during execution to the end of the current milestone in the roadmap. This skill appends sequential phases to the current milestone's phase list, automatically calculating the next phase number. Triggers include "add phase", "append phase", "new phase", and "create phase". This skill updates ROADMAP.md and STATE.md accordingly.
adding-persistent-event
Adds a new type of event that gets persisted to the event log. Use this when adding new kinds of write operations to the system or when adding new events to existing code.
adding-localizable-strings
Adds new human-readable strings that are translated into users' languages.
adding-a-new-app-route
Fully wires up a new route with required boilerplate, following this repo's conventions for subapps. Use when user wants to add a new route or app or subapp or page or screen.
1k-adding-socket-events
Adds new WebSocket event subscriptions to OneKey. Use when implementing new socket events, handling server push messages, or adding real-time data subscriptions. Socket, WebSocket, event, subscription, push, real-time.
adding-animations
Add micro-interactions and animations using Framer Motion. Use when user asks about animations, transitions, hover effects, or motion design. MANDATORY for every component.