Chris Parsons/capturev1.0.7

capture

Capture atomic thoughts into the Obsidian vault following Zettelkasten principles. Use when user says "capture this", "capture that thought", "make sure you've got that", "save this thought", or when extracting insights from discussions, articles, or meetings.

by @chrismdp

What is airskills?

airskills is one home for your SKILL.md files. Standard format, no lock-in — back them up, publish them, and sync across your whole team in one command. Works with Claude Code, Cursor, Copilot, ChatGPT, and more.

Learn more about airskills →

Install this skill

Pick your agent. Free, no account needed for public skills.

One-liner with npx — installs to every detected agent on your machine (~/.claude/skills/,~/.cursor/skills/, and more).

$ npx airskills add chrismdp/capture

Or install the Go CLI once: curl -fsSL https://airskills.ai/install.sh | bash

---
name: capture
description: Capture atomic thoughts into the Obsidian vault following Zettelkasten principles. Use when user says "capture this", "capture that thought", "make sure you've got that", "save this thought", or when extracting insights from discussions, articles, or meetings.
argument-hint: "[thought to capture]"
---

Capture Atomic Thought

Quickly capture a discrete thought, insight, or concept into the vault following Zettelkasten principles.

When to Use

  • During conversation when a valuable thought emerges
  • When user says "capture this" or "save this thought"
  • For extracting insights from discussions, articles, or meetings
  • Called by /process-link, /process-transcript, /process-sessions, /sunday, /inbox and /weekly-review

Step 1: Identify the Thought

If the thought isn't explicitly provided, summarise it from the recent conversation:

  1. Ask: "What thought would you like to capture?"
  2. Or summarise: "I'd suggest capturing: [brief summary]. Does that capture it?"

Keep the thought atomic: one concept per note.

Step 2: Search for Existing Concepts and Active Projects

Search before creating. Duplicates waste the knowledge web, and a thought that informs live work needs to flow back into that work — not just sit as an abstract concept.

Use ripgrep across the vault and published content:

rg -i "core concept|distinctive phrase|named entity" ~/vault ~/code/blog/_posts ~/code/blog/pages | head -80

Search separately for likely active project links when the thought may affect live work:

rg -i "core concept|distinctive phrase|named entity" ~/vault/projects -g 'PROJECT.md' | head -40

Triage the results into two buckets:

  • Concept hits (anything not under projects/) — exact matches, related concepts, mergeable notes. Used in Step 3.
  • Project hits (paths matching projects/*/PROJECT.md) — live work the thought might tie into. Used in Step 5.

Step 3: Decide Create vs Merge

Default bias: merge into the closest existing note unless the new thought is a genuinely distinct concept. The wiki compounds when notes accumulate angles, sources, and counterpoints. It dilutes when near-duplicates spawn — a future searcher hits three half-notes instead of one rich one.

The "fits the existing note" test (autonomous mode — the merge path):

A thought fits an existing note when:

  • It's a new angle, supporting quote, contradicting source, or extending example on the same underlying concept
  • The existing note's title, framing, and structure would still describe the thought after merging
  • A future reader looking for either thought would expect to find it in that same note

If yes → append a dated update section (## Update from [[source]] — YYYY-MM-DD) to the existing note. Do not create a new note.

The "genuinely distinct" test (create path):

A thought is genuinely distinct when:

  • It names a different unit of thought, not just a different framing of the same one
  • Merging it into the closest existing note would change what that note is about, not just add to it
  • The existing note has a different shape (e.g. the thought is a model/framework but the existing note is a single observation, or vice versa)

If yes → create a new atomic note, and link it from the closest existing note via ## Related Thoughts.

When it could go either way: merge. The cost of an over-merged note is one extra dated section; the cost of a fork is a permanently weaker wiki where related ideas live in two places.

Interactive override: when running interactively (not via inbox processing, /process-link, transcript processing, or any worker context), show the candidate existing note and ask: "This seems related to [[Existing Note]] — I'd update that. OK, or genuinely a new concept?" Chris's redirect overrides the default.

Step 4: Create Atomic Note

Vault CLAUDE.md owns naming and frontmatter. What this skill adds is the section layout and attribution:

---
type: concept
first_mentioned: [[YYYY-MM-DD]]
source_person: [[Person Name]]   # who said it, when captured from a transcript, meeting or conversation
---

[The thought itself — short, original wording preserved, attributed inline: "[[James Steiner]] observed that..."]

## Active Projects

- [[projects/SLUG/PROJECT|Project Name]] — one-line note on how this thought informs the project

## Related Thoughts

- [[Related Concept 1]]
- [[Related Concept 2]]

## References

- First captured from [[YYYY-MM-DD]] discussion

Omit ## Active Projects when no active project matched in Step 5. Attribution is part of the knowledge: other people's ideas are never presented as free-floating concepts.

Step 5: Tie Into Active Projects

A captured thought often informs live work, not just the abstract concept layer. When the Step 2 project search returns hits under projects/*/PROJECT.md, link the new note bidirectionally so the project sees the thinking and the thought references the live work.

Identify active project hits

For each project-search result whose path matches projects/*/PROJECT.md:

  1. Read the project's frontmatter (split on --- delimiters — never grep the full file, decision trails contain stale status: lines that produce false matches)
  2. Keep only projects with status: todo or status: doing
  3. Discard done, someday, and anything under projects/archive/

If none of the project-search hits qualify, skip the rest of this step.

Confirm (interactive only)

In an interactive session, list the matched active projects and confirm before linking — Chris may want to drop tangential matches or add one the search missed.

In autonomous mode (transcript processing, inbox processing, /weekly-review), link all active project hits without prompting. False positives are cheap to remove and the bigger risk is silently failing to surface live work.

Concept → project (in the new note)

Add an ## Active Projects section to the new concept note immediately above ## Related Thoughts:

## Active Projects

- [[projects/SLUG/PROJECT|Project Name]] — one-line note on how this thought informs the project

Use the full projects/SLUG/PROJECT wikilink so it points at the project file directly, not a similarly-named concept note.

Project → concept (in each PROJECT.md)

For each linked project, edit its PROJECT.md to add the new concept under a ## Related Captures section near the bottom of the body (before any decision trail or events log if present). Create the section if it doesn't exist; otherwise append:

## Related Captures

- [[YYYY-MM-DD]] — [[New Concept Note Name]] — one-line context on the link

Rules:

  • Never modify the project's frontmatter from this skill (no status changes, no assignee shuffles, no next_action rewrites — that's the worker's or Chris's job)
  • Append to the existing list rather than replacing it
  • One bullet per capture; keep the context line short

Step 6: Add Backlinks

  1. Link from concept to daily note: Already done in first_mentioned and References
  2. Link from daily note to concept: Edit today's daily note to add a wikilink where the thought originated

If processing a specific date's notes (not today):

  • Use that date for first_mentioned
  • Add backlink to that daily note instead

Step 7: Cross-Link Related Concepts

After creating multiple concepts from the same source, ensure they link to each other where relevant.

  1. Review all newly created concepts
  2. For each concept, check if it relates to other new concepts from this batch
  3. Update the "Related Thoughts" section of each note to include cross-links
  4. Add brief context for why they're related (e.g., [[Other Concept]] - explains the underlying cause)

Also link to existing concepts found during search:

  • Even if you didn't merge, related existing concepts should be linked
  • This builds the knowledge web and aids discoverability

Example cross-linking pattern:

## Related Thoughts

- [[Newly Created Concept A]] - related because X
- [[Existing Concept Found in Search]] - provides broader context
- [[Another New Concept]] - addresses the same problem from different angle

Step 8: Confirm Completion

Report to user:

  • Created: [[Note Name]]
  • Linked from: [[YYYY-MM-DD]]
  • Related to: [list of linked concepts]
  • Tied into active projects: [list of linked projects, or "none" if none matched]

Integration

  • /weekly-review — extracts atomic thoughts from the week's notes.
  • Direct invocation — Chris captures a thought mid-conversation.
  • Autonomous callers — /process-link, /process-transcript, /process-sessions, /sunday, /inbox, and agents processing transcripts routed by Em's route-transcript reflex. With no interactive user, skip the confirmation prompts and create or merge without asking.

Important Notes

  • Tie captures into live work. When the project search surfaces an active project (status: todo or doing), link it both ways (Step 5). The thought feeds the work it belongs to, not just the wiki.
  • Search with several distinctive phrases, not one keyword. One rg is not evidence of absence.
  • Don't duplicate knowledge-base skills. When insights come from a corpus skill such as /lenny, the general frameworks already live in that corpus. Add a summary section to the relevant project or idea note (formatted like the expert insights section in [[Autonote]]) rather than creating standalone atomic notes. Only a genuinely new thought that emerged from the analysis earns its own note.