research-notes/.claude/skills/new-note.md
jordan a65c3f7243
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Initial orchard9 deployment
- Add Dockerfile with multi-stage standalone build
- Add Woodpecker CI pipeline (.woodpecker.yml)
- Add Kubernetes manifests for deployment, service, ingress
- Add ops.md with deployment documentation
- Configure Next.js for standalone output
- Move deployment files to root level

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 14:42:06 -07:00

239 lines
5.1 KiB
Markdown

# Creating Research Notes
This skill documents how to create new research notes for the journal.
## Directory Structure
Each note lives in `blog/content/notes/{NNN}-{slug}/`:
```
blog/content/notes/
├── 001-picking-a-problem/
│ ├── meta.yaml # Metadata, prompts, navigation
│ └── content.md # Prose content
├── 002-building-the-scaffolding/
│ ├── meta.yaml
│ ├── content.md
│ └── files/ # Optional: expandable file contents
│ ├── vision.md
│ ├── architecture.md
│ └── roadmap.md
└── 003-research-planning/
├── meta.yaml
└── content.md
```
## Step 1: Create the Directory
```bash
mkdir -p blog/content/notes/{NNN}-{slug}
```
Use zero-padded 3-digit ID (001, 002, 003...) and kebab-case slug.
## Step 2: Create meta.yaml
Required fields:
```yaml
id: "003"
slug: 003-research-planning
date: "2026-02-07"
title: Research Planning
preview: "Short description shown in note list (1-2 sentences)"
prompts:
- id: unique-id
label: Button label shown to user
content: |
The actual prompt content that gets copied.
Can be multi-line.
- id: another-prompt
label: Another Prompt
content: |
Second prompt content here.
filesCreated: [] # Or list of files if any
navigation:
prev:
slug: 002-building-the-scaffolding
id: "002"
title: Understanding the Project
next: null # Or next note reference
```
### Optional: skillsUsed
When documenting Claude Code skills/commands used during research:
```yaml
skillsUsed:
- name: do-parallel
command: /do-parallel
description: Execute tasks in parallel waves with optimal agent selection and review
usage: |
---
description: Execute tasks in parallel waves...
argument-hint: <task list or "from todo">
allowed-tools: Task, Read, Write, Edit, Glob, Grep, Bash, TodoWrite
---
Execute these tasks in parallel waves with proper review: $ARGUMENTS
## Instructions
[FULL command definition from ~/.claude/commands/{command}.md]
```
**IMPORTANT**: The `usage` field should contain the ACTUAL command file contents from `~/.claude/commands/`, not just example usage.
### Optional: filesCreated
When the note documents files that were created:
```yaml
filesCreated:
- name: vision.md
description: Core thesis, axioms, paradoxes, and narrative
- name: architecture.md
description: System layers, code sketches, data structures
```
These files should exist in `files/` subdirectory.
## Step 3: Create content.md
Write the prose content in Markdown:
```markdown
## The Method
Explain what you did and why.
## Section Two
More content here.
- Bullet points work
- As do **bold** and *italic*
### Subsection
Deeper explanation.
## What I Learned
Reflections on the process.
## Next Steps
What comes next in the research.
```
Supported Markdown features:
- Headings (h2, h3)
- Paragraphs
- Bullet lists (ul)
- Numbered lists (ol)
- Bold and italic text
- Inline code with backticks
## Step 4: Add Files (Optional)
If `filesCreated` references files, create them in `files/`:
```bash
mkdir -p blog/content/notes/{NNN}-{slug}/files
```
Each file should be the complete content that will be shown in an expandable section.
## Step 5: Update Previous Note Navigation
Edit the previous note's `meta.yaml` to add the `next` navigation:
```yaml
navigation:
prev:
slug: 001-picking-a-problem
id: "001"
title: Picking a Problem
next:
slug: 003-research-planning
id: "003"
title: Research Planning # Add this
```
## Step 6: Verify
```bash
cd blog && npm run dev
```
Check:
- [ ] Note appears in list at `/maxwell`
- [ ] Note renders at `/maxwell/notes/{slug}`
- [ ] Prompts have working copy buttons
- [ ] Skills section shows with expandable usage (if skillsUsed)
- [ ] Files section shows with expandable content (if filesCreated)
- [ ] Prev/next navigation works
- [ ] Build succeeds: `npm run build`
## Schema Reference
### NoteMeta Interface
```typescript
interface NoteMeta {
id: string;
slug: string;
date: string;
title: string;
preview: string;
prompts: Prompt[];
skillsUsed?: SkillUsed[];
filesCreated: FileCreated[];
navigation: {
prev: NavLink | null;
next: NavLink | null;
};
}
interface Prompt {
id: string;
label: string;
content: string;
}
interface SkillUsed {
name: string;
command: string;
description: string;
usage?: string; // Full command definition
}
interface FileCreated {
name: string;
description: string;
}
interface NavLink {
slug: string;
id: string;
title: string;
}
```
## Key Files
| File | Purpose |
|------|---------|
| `blog/src/lib/content.ts` | Content loaders |
| `blog/src/app/maxwell/notes/[slug]/page.tsx` | Dynamic route |
| `blog/src/components/notes/NoteHeader.tsx` | Note header |
| `blog/src/components/notes/PromptsSection.tsx` | Prompts with copy |
| `blog/src/components/notes/SkillsSection.tsx` | Skills/commands |
| `blog/src/components/notes/FilesSection.tsx` | Expandable files |
| `blog/src/components/notes/NoteFooter.tsx` | Navigation |