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

2.7 KiB

A Research Journal

Personal research projects exploring unfamiliar territory with AI.

Parent context: See ../CLAUDE.md for project-wide routing.

Development

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

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