Note-taking Meditations - Part 1

Apr 14, 2026 · 6 min read
Image credit: Peter Bryan Unsplash

Meditation 1

I’m exploring AI-assisted note-taking systems. The right system should be accessible, reproducible, and pedagogical: simple to follow and effective at improving recall when tested. It should address the gaps in my knowledge and push back against the passivity and sycophancy that generative AI tends to encourage.

I used Notion for a while. It’s a great tool. But I already live in my code editor and think in markdown. My blog runs on Hugo, also markdown. Notion’s AI features aren’t free, and I wasn’t going to pay for two systems.

Markdown already had what I needed. Programmers use it to structure documentation for software projects: a table of contents, headers, lists, tables, images. It gives a subject structure and makes it navigable. Popular note-taking apps like Obsidian use this format too, but all you need is a code editor and familiarity with the markdown format.

Working with Claude and VSCode

Install the VSCode Claude Code plugin. Create a folder for notes/. Each subject gets its own subfolder. Each file in a subject is structured linearly, prefixed by number.

notes/
  kafka/
    1-introduction.md
    2-producers.md
    ...
  ccna/
  cka/

A subject file represents what I read or want to remember: my current understanding of a topic, built over time. I write clear definitions, expand ideas into outlines, restructure, and repeat. Contemplating: Is this accurate? Does it make sense? What am I missing? I stumble through sources on the internet to fill in gaps, recycling information into my own world view. If I find a video I value, I add it to the relevant section. When I hit a term I don’t recognize, I look it up and include it. The notes grow with me. I’m actively rereading and rearranging text. To some, it may appear inefficient, but to me it’s a productive expense: the cost of building a mental model.

This is research. Divide a topic into subtopics. Conquer each one in whatever order interest or confusion dictates. What I include is based on what I didn’t understand at first, or what I want to remember. Tangents aren’t distractions. They’re the point.

The Skill Stack

Claude Code is my daily driver. I run skills from the terminal inside my editor to generate and refine chapters. The skills below are available in ivorscott/cc-marketplace.

/book

Takes a PDF and summarizes it chapter by chapter into structured markdown. Each file is prefixed with its chapter number and opens with a table of contents. I run it once to start, then prompt next or a specific chapter to continue.

/book @kafka.pdf @1-introduction.md

For technical books covering a versioned tool or library, a fact-checker subagent runs in parallel. It looks up the current version and flags outdated sections inline. Outdated documentation is one of the most frustrating parts of self-study, and the fact-checker handles it automatically.

/study

Generates a quiz or flashcard set in JSON from selected chapters, ready to run right after reading. The idea came from Google NotebookLM.

Arguments are optional. Without a chapter, all chapters are used. Type defaults to flashcard, difficulty to medium, count to 10.

/study ch2
/study ch2-4 quiz hard 20
/study flashcard easy 5

Sessions are saved to .stu/<slug>-<type>-<YYYYMMDD>.jsonand used for self-assessment. A vibe-coded CLI tool I call stu reads these files and renders an interactive test window in the terminal (powered by bubbletea).

Taking Quizzes

Quiz mode uses arrow keys or a-d to pick answers, h for hints, and r to retake.

stu .stu/cka-quiz-20260331.json

Output:

CKA Core Concepts Quiz  ·  medium  ·  1 source
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

█░░░░░░░░░░░░░░░░░░░  1/20

Which Kubernetes control plane component is the ONLY one that directly
interacts with etcd?

  A.  kube-scheduler
  B.  kube-controller-manager
  C.  kube-apiserver
  D.  kubelet

────────────────────────────────────────────────────────────────────────
↑↓ · abcd  select   enter  submit   h  hint   q  quit

Using Flashcards

Flashcard mode uses spacebar to reveal, then c or x to mark correct or incorrect.

stu .stu/cka-flashcards-20260402.json

Output:

CKA Core Concepts Flashcards  ·  medium
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

◈  1 / 10

┌────────────────────────────────────────────────────┐
│                                                    │
│                                                    │
│   Which control plane component is the ONLY one    │
│   that directly interacts with etcd?               │
│                                                    │
│   ↵  reveal                                        │
│                                                    │
│                                                    │
└────────────────────────────────────────────────────┘

←   ✗ 0   0 ✓   →

────────────────────────────────────────────────────────────────────────
←/→  navigate   space  reveal   f  finish   q  quit

/analogy and /diagram

The last items in the stack are two smaller skills that make notes more engaging and easier to hold in memory.

/analogy generates conceptual bridges for dense material. I simply highlight some text in my editor, then request an analogy.

Highlighted Text: AI Engineering is the discipline of building software applications powered by artificial intelligence models, particularly Large Language Models (LLMs). An AI Engineer takes pre-trained models — built and hosted by organizations like OpenAI, Anthropic, or Google — and integrates them into products that solve real problems.

Output:

🪞 Analogy

An AI Engineer is like a 🏗️ contractor who doesn’t manufacture power tools — they source them from established 🔧 suppliers (OpenAI, Anthropic, Google) and use them to build 🏠 products for clients. The contractor’s expertise is in construction, not in forging the tools themselves.

/diagram produces ASCII diagrams inline, useful for systems, flows, and anything spatial. Both skills operate on highlighted text: invoke the skill and the output appears directly below in the markdown.

Highlighted Text: All consumers in an application read data as a consumer group. Each consumer within a group reads from exclusive partitions — no two consumers in the same group share a partition.

Output:

  Topic: "orders"                    Consumer Group: "app"
  ┌────────────────────────┐
  │ Partition 0  [■■■■■]   │ ──────► Consumer 1
  │ Partition 1  [■■■■■]   │ ──────► Consumer 2
  │ Partition 2  [■■■■■]   │ ──────► Consumer 3
  └────────────────────────┘
         (each partition owned by exactly one consumer)

Reflection

When I’m having fun, I stay curious. I chase tangents. I dig into things I don’t understand instead of skipping past them. I’ve built myself a game with its own rules and vocabulary, and I want to keep playing.

There’s no fixed curriculum. I control what goes in, in what order, and how deep. If something interests me, it gets a section. If I didn’t understand something the first time, it gets a definition, an analogy, a diagram. Whatever it takes. Each chapter reflects my current mental model, including the gaps.

I’m building a pedagogical system unique to how my mind observes. AI generates the scaffolding. I decide what stays. My notes become a record of what I actually understand, not just what I consumed. Every choice about what to include or cut is a small act of judgment. Over time, those choices compound and the assessments solidify ideas into memory.

Ivor Scott Cummings
Authors
Staff Engineer at IONOS
I approach systems the same way I make art. I take things apart and learn how they work. I never outgrew that curiosity.