Skip to main content
SteveTro

notepad

by SteveTrov1.0.0

Context-aware idea parking for development sessions. Capture ideas without losing flow, with intelligent context preservation.

Installation guide →

Keywords

notesideascontextproductivityworkflow

Commands

note

Add a note with intelligent context extraction

notes

View and manage notes - list all lists, view notes, pick, or delete

Documentation

# Notepad Plugin

Context-aware idea parking for development sessions. Capture ideas without losing flow, with intelligent context preservation.

## The Problem

During development, ideas pop up constantly:

- "We should add caching here"
- "This could use better error handling"
- "Future feature: export to PDF"

You don't want to break your flow, so you jot it down somewhere. Later, you read your note and think: "What was I even talking about?"

## The Solution

Notepad captures your ideas **with rich context**. When you add a note, Claude writes a "diary entry" that explains:

- What you were working on and why
- What problem or discussion led to this idea
- The "aha moment" - why this idea makes sense now
- Which files and components are involved
- What this would improve

Later, when you pick up the idea, you have the full story - not just a cryptic note, but the complete context of the moment.

## Usage

### Add a Note

```bash
/note "Evaluate visual regression testing for Storybook"
```

Adds to the default `general` list with auto-extracted context.

### Add to Specific List

```bash
/note:future-features "Add GraphQL support"
/note:tech-debt "Refactor authentication flow"
```

Lists are auto-created if they don't exist.

### View All Lists

```bash
/notes
```

Shows all lists with note counts.

### View Notes in a List

```bash
/notes              # Shows general list
/notes:tech-debt    # Shows tech-debt list
```

### Pick Up a Note

```bash
/notes pick         # Interactive: shows overview, asks which note
/notes:tech-debt pick
```

Shows the note with full context so you can continue where you left off.

### Delete a Note

```bash
/notes delete 3
/notes:tech-debt delete 1
```

## Storage

Notes are stored in `.claude/notepad/` in your project:

- `.claude/notepad/general.md`
- `.claude/notepad/future-features.md`
- etc.

Human-readable markdown format - you can edit them manually, commit them to git, or share with your team.

### Should I commit notes to git?

Up to you:

- **Commit them**: Share ideas with your team, track idea history
- **Gitignore them**: Keep ideas personal, add `.claude/notepad/` to `.gitignore`

## Installation

**Option 1: Temporary (test first)**

```bash
claude --plugin-dir ~/.claude/plugins/notepad
```

**Option 2: Permanent**
Add to your Claude Code settings or copy the plugin to your project's `.claude-plugins/` directory.

## Examples

### Tech Debt Discovered

```bash
/note:tech-debt "Unify API error handling patterns"
```

**Generated context:**

```
While reviewing the booking cancellation flow, noticed we have three different
error handling patterns across API calls:

1. lib/api/bookings.ts - throws custom ApiError with status codes
2. lib/api/payments.ts - returns { success: false, error: string }
3. lib/api/notifications.ts - uses try/catch with console.error only

This inconsistency makes it hard to build reliable error boundaries in the UI.
The PaymentForm component has a bug where payment errors silently fail because
it expects pattern #1 but payments.ts uses pattern #2.

Affected files: lib/api/*.ts (6 files), plus consumers in components/
Suggestion: Standardize on ApiError pattern, add error boundary at app level.
```

### Feature Idea for Later

```bash
/note:features "Add CSV export for booking reports"
```

**Generated context:**

```
Working on the booking overview page (app/bookings/page.tsx). The table shows
all bookings with filters, but there's no way to export the data.

Use case: Property managers need to share booking data with accountants monthly.
Currently they screenshot or manually copy - mentioned in support ticket #892.

What exists already:
- BookingTable component with all the filtering logic
- Server action getFilteredBookings() returns the exact data needed
- Similar export exists in admin dashboard (lib/export/admin-reports.ts)

Implementation would be: Add export button, reuse existing CSV utility,
pass current filters to generate matching export. Estimate: 2-3 hours.
```