一键导入
note-taking
Save a note as one or more atomic notes under memory/notes/ (and optionally Supernotes). Splits bundled inputs into separate atomic files.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Save a note as one or more atomic notes under memory/notes/ (and optionally Supernotes). Splits bundled inputs into separate atomic files.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | Note Taking |
| description | Save a note as one or more atomic notes under memory/notes/ (and optionally Supernotes). Splits bundled inputs into separate atomic files. |
| var | |
| tags | ["meta"] |
${var} — The note content to save. Can be a thought, idea, link, quote, or anything worth remembering.
Read memory/MEMORY.md for context.
This skill writes to two destinations:
memory/notes/${slug}.md (always) — one file per claim. These become nodes in notegraph.json and are linkable via [[slug]] from MOCs (memory/topics/*.md) and other notes.SUPERNOTES_API_KEY is set) — queues a card per atomic note via the post-process pattern.A daily index at memory/notes/daily/${today}.md collects [[slug]] pointers to every note saved that day, so you can still browse by date.
A note is atomic if its title states a single claim and the body can be summarized in ≤3 coherent sentences without "and also" / "additionally" / "moreover".
Bundled inputs become "linking hazards" — you want to reference one claim, drag unrelated ones along — and weaken the graph because [[X]] ends up pointing at a topic dump instead of one idea. So this skill splits before saving.
Parse the input. ${var} is the note. If empty, check memory/logs/${today}.md for the most recent notable finding and use that. If neither yields content, log NOTE_TAKING_SKIP: no input and stop.
Atomicity check + split. Read the input and count the distinct claims it makes.
links: frontmatter includes the slugs of its siblings.For each atomic note, run steps 4–9 below.
Clean up the note. Keep the user's intent and voice intact — don't rewrite, just tidy. If the source is a URL, WebFetch it and include a one-line summary as context. Raw thoughts stay raw.
Generate a slug — kebab-case, 2–5 words, derived from the title. Must be unique under memory/notes/. If a file with that slug already exists, append a disambiguator (-2026-06-06 or a topic suffix).
Generate a title — short, descriptive H1 stating the single claim. 3–8 words.
Pick a color (Supernotes only, ignored locally):
blue — information, links, referencesgreen — ideas, plans, things to buildyellow — questions, things to investigatered — urgent, time-sensitivepurple — opinions, takes, hot thoughtsPick 1–3 tags (lowercase, hyphenated). Always include aeon.
Write the atomic file at memory/notes/${slug}.md:
---
id: ${slug}
created: ${today}
type: ${type} # claim | thesis | artifact | incident | lesson | observation | question | status
links: ${SIBLING_SLUGS_IF_SPLIT}
---
# ${TITLE}
${BODY}
mkdir -p memory/notes
cat > "memory/notes/${SLUG}.md" <<EOF
---
id: ${SLUG}
created: ${TODAY}
type: ${TYPE}
links: ${LINKS}
---
# ${TITLE}
${BODY}
EOF
Self-check after write: read the file back and confirm the body is ≤3 sentences excluding the title line. If it's longer, you bundled — delete the file and re-split.
Update the daily index at memory/notes/daily/${today}.md — append a pointer line per saved note:
mkdir -p memory/notes/daily
if [ ! -f "memory/notes/daily/${TODAY}.md" ]; then
echo "# Notes — ${TODAY}" > "memory/notes/daily/${TODAY}.md"
echo "" >> "memory/notes/daily/${TODAY}.md"
fi
echo "- [[${SLUG}]] — ${TITLE} *(${HH}:${MM} UTC, tags: ${TAGS}, color: ${COLOR})*" \
>> "memory/notes/daily/${TODAY}.md"
Supernotes (if configured) — write one request file per atomic note (sandbox blocks direct curl; workflow post-processes):
if [ -n "$SUPERNOTES_API_KEY" ]; then
mkdir -p .pending-supernotes
jq -n \
--arg name "$TITLE" \
--arg markup "$MARKUP" \
--arg color "$COLOR" \
--argjson tags "$(printf '%s\n' "${TAGS_ARRAY[@]}" | jq -R . | jq -s .)" \
'{name: $name, markup: $markup, color: $color, tags: $tags}' \
> ".pending-supernotes/note-$(date -u +%s)-${SLUG}.json"
fi
Confirmation via ./notify — one line per save run, summarizing the split:
note saved: ${N} atomic note(s) — ${FIRST_TITLE}${ETC}
Keep it short. If N>1, append (split from bundled input) so the operator sees the gate fired. If Supernotes was skipped, optionally append (local only — set SUPERNOTES_API_KEY for sync) on the first run per day; suppress that hint afterwards.
Log to memory/logs/${today}.md:
## Note Taking
- **Saved:** ${N} atomic note(s)
- **Slugs:** [[slug-1]], [[slug-2]], …
- **Split:** yes / no (gate fired if N>1 from a single input)
- **Supernotes:** queued (${N} cards) / skipped (no key)
- NOTE_TAKING_OK
"Surplus Intelligence x402 endpoint is real but no paid call yet — needs funded Base wallet."
Single claim. One file: memory/notes/surplus-x402-real-endpoint.md. Title: "SURPLUS_X402 is a real x402 inference endpoint". Body: ≤3 sentences. Daily index gets one pointer.
"PR #107 merged 2026-06-02 fixing the vuln-scanner allowlist and the rss-feed allowlist and the heartbeat eval timing gap, plus we moved skill-evals from 06:00 to 09:00 UTC."
Four distinct claims joined by "and". Gate splits into four notes:
pr-107-merged.md — the PR ship eventvuln-scanner-allowlist-fix.md — the ISS-004 fixrss-feed-allowlist-fix.md — the ISS-005 fixskill-evals-09utc-move.md — the schedule changeEach note's links: lists the other three. Daily index gets four pointers. Notify: note saved: 4 atomic notes — PR #107 merged… (split from bundled input).
SUPERNOTES_API_KEY — optional. When set, each atomic note is also queued for Supernotes..pending-supernotes/ and a post-process step delivers them after Claude finishes.Atomic notes are the structural requirement for notegraph.json to compound. A bundled note becomes a "linking hazard" — [[X]] ends up pointing at a topic dump instead of a single claim. Atomic notes make links precise, let backlinks implicitly define a concept by the contexts that invoked it, and make multi-hop traversal reliable. See the pilot in PR #260 for the validated effect: edges grew 5.3× faster than nodes across three topic atomizations.
Audit every enabled skill's upstream file dependencies for staleness — flags chained skills about to consume yesterday's article or a long-dead topic file
Audit .github/workflows and composite actions with zizmor + actionlint, classify findings against the prior audit, auto-fix Critical/High regressions, and open a PR only when something actually changed.
Weekly API cost report — computes dollar costs from token usage, flags anomalies, forecasts burn, and prescribes concrete optimizations
Weekly partial-correlation of compute economics against a Hyperliquid macro basket — DePIN-token proxy track runs every week (n>180d), sweep-P&L track defers until n≥30 joined days
Score frontier LLMs (Claude, GPT, Gemini, DeepSeek, Grok) on a private compute-markets task corpus, track score deltas across releases, flag public-vs-private divergence
Regenerate notegraph.json + docs/notegraph.md + docs/notegraph.html from memory/ and docs/, PR + notify only when the graph changes