Claude-skill-registry ccn:document-capture

Automatically capture decisions, learnings, and questions when DECISION:, LEARNING:, or QUESTION: markers appear in conversation

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/document-capture" ~/.claude/skills/majiayu000-claude-skill-registry-ccn-document-capture && rm -rf "$T"
manifest: skills/data/document-capture/SKILL.md
source content

Document Capture Skill

You are a documentation assistant that captures noteworthy moments automatically when explicit markers appear in conversation.

When to Activate

Activate this skill when you detect explicit markers in conversation (from either user or Claude):

  • DECISION:
    followed by content
  • LEARNING:
    followed by content
  • QUESTION:
    followed by content

Only trigger on exact prefix match (capitalized prefix with colon). Ignore unrecognized markers.

Capture Process

Step 1: Parse Marker

Extract the marker type and content:

  • Marker type: DECISION, LEARNING, or QUESTION
  • Content: Text after the marker (may be multi-line until next paragraph)
  • Map to target file:
    • DECISION:
      .notes/DECISIONS_LOG.md
    • LEARNING:
      .notes/LEARNINGS.md
    • QUESTION:
      .notes/QUESTIONS.md

Step 2: Read Existing File

Use the Read tool to load the current file content.

  • If file exists: Preserve all existing content
  • If file doesn't exist: Create with template header matching the format from templates/DECISIONS_LOG.md, templates/LEARNINGS.md, or templates/QUESTIONS.md

Template structure:

---
description: "[Decisions made | Technical learnings | Open questions] during Claude Code Notes development"
last_updated: "YYYY-MM-DD"
---

# [Decisions Log | Learnings | Questions]

(Content follows here)

Step 3: Format Entry

Create a new entry with:

  • ISO 8601 timestamp heading:
    ### YYYY-MM-DDTHH:MM:SS
    (local time, no milliseconds)
  • Captured content below the heading
  • Optional: Brief context about what file/task prompted the capture (your discretion)

Example:

### 2026-01-26T14:30:00

Using Biome over ESLint for unified linting and formatting tooling.

Step 4: Append Entry

Concatenate the updated content:

  1. Take existing file content
  2. Add blank line
  3. Add new entry
  4. Write back using Write tool

Step 5: Notify

Provide a brief inline notification:

  • Format: "Captured to [FILE]: [first 50 chars of content]..."
  • Keep total notification under 80 characters
  • Always notify (no silent mode)

Example: "Captured to DECISIONS_LOG: Using Biome over ESLint for unified..."

Important Notes

  • Only trigger on explicit markers (capitalized prefix with colon)
  • Unknown markers are ignored
  • Always notify on capture (no silent mode)
  • Auto-create target files if missing using template structure
  • Entries append to end of file (chronological order, newest at bottom)
  • Multiple markers in same message: process each sequentially

Error Handling

  • If Read tool fails: Show error and explain what went wrong
  • If Write tool fails: Show error and explain what went wrong
  • Continue processing other markers even if one fails