research-notes/blog/CLAUDE.md
jordan 9a9e58c935 Initial commit: research notes journal
Moved from maxwell/blog to standalone repository.

- Next.js research journal application
- Notes 001-005 with YAML/MD content structure
- Claude Code configuration for blog development

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 13:12:07 -07:00

100 lines
2.7 KiB
Markdown

# A Research Journal
Personal research projects exploring unfamiliar territory with AI.
**Parent context:** See `../CLAUDE.md` for project-wide routing.
## Development
```bash
npm install
npm run dev
```
Open http://localhost:19197
## Architecture
This blog uses a data-driven architecture:
- **Content lives in `content/`** - YAML metadata + Markdown prose
- **Components in `src/components/`** - Reusable DRY components
- **Dynamic routes** - Notes use `[slug]` for SSG
## Content Structure
```
content/
├── projects/
│ └── maxwell.yaml # Project metadata
├── notes/
│ ├── 001-picking-a-problem/
│ │ ├── meta.yaml # Prompts, navigation, metadata
│ │ └── content.md # Prose content
│ └── 002-building-the-scaffolding/
│ ├── meta.yaml
│ ├── content.md
│ └── files/ # Expandable file contents
│ ├── vision.md
│ ├── architecture.md
│ └── roadmap.md
└── white-paper/
└── outline.yaml # Structured sections
```
## Routes
- `/` - Journal home (list of projects)
- `/maxwell` - Maxwell project landing
- `/maxwell/white-paper` - Formal paper outline
- `/maxwell/notes/[slug]` - Individual research notes (dynamic)
## Adding a Note
1. Create `content/notes/NNN-slug/` directory
2. Add `meta.yaml` with prompts, navigation, filesCreated
3. Add `content.md` with prose
4. Add `files/` directory if filesCreated references files
5. Update previous note's `meta.yaml` navigation.next
## Key Files
| File | Purpose |
|------|---------|
| `src/lib/content.ts` | Content loaders (getProject, getNoteBySlug, etc.) |
| `src/components/layout/PageLayout.tsx` | Page wrapper |
| `src/components/layout/BackNav.tsx` | Back navigation |
| `src/components/notes/NoteHeader.tsx` | Note header (#id, date, title) |
| `src/components/notes/PromptsSection.tsx` | Prompts with copy buttons |
| `src/components/notes/FilesSection.tsx` | Expandable files |
| `src/components/notes/NoteFooter.tsx` | Prev/next navigation |
| `src/components/white-paper/OutlineSection.tsx` | Outline sections |
| `src/components/copyable.tsx` | CopyButton, CopyableBlock, ExpandableFile |
## Note meta.yaml Schema
```yaml
id: "001"
slug: 001-picking-a-problem
date: "2026-02-06"
title: Picking a Problem
preview: "Short description for list view"
prompts:
- id: unique-id
label: Button label
content: |
Prompt content here
filesCreated:
- name: filename.md
description: What this file is
navigation:
prev: null # or { slug, id, title }
next:
slug: 002-building-the-scaffolding
id: "002"
title: Understanding the Project
```