CLAUDE

llm-pkm — Agentic OS Kernel

This vault is an LLM OS (Karpathy model): Obsidian = disk, Claude Code = kernel, slash-commands = programs, notes = persistent state. Every command reads this file first. It defines the contract all programs obey.

Active Skills

  • .claude/skills/css-conventions/SKILL.md

Folder semantics (where things live)

PathHoldsFrontmatter type
00-Inbox/raw capture buffer (Inbox.md)inbox
01-Daily/daily notes YYYY-MM-DD.mddaily
10-Projects/active, deadline-bound effortsproject
20-Areas/ongoing responsibilities (no end date)area
30-Resources/topic reference materialresource
40-Archive/inactive / done(keep prior type, status: archived)
50-Zettel/atomic permanent noteszettel
60-MOCs/Maps of Content (indexes)moc
70-Sources/research / literature notes w/ citationssource
90-Meta/templates, dashboards, bases, scriptsmeta

PARA = action zone (10–40). Zettelkasten = knowledge zone (50–70). Inbox + Daily are shared.

Frontmatter schema (the "inode")

Every note (except Inbox/templates) MUST open with:

---
type: project|area|resource|zettel|source|daily|moc
status: active|on-hold|done|archived   # action notes; omit for zettel/source
created: YYYY-MM-DD
modified: YYYY-MM-DD
tags: []
up: []          # parent MOC/area link, e.g. ["[[Learning]]"]
related: []     # lateral links
---
  • Dates are real (today = check the currentDate reminder).
  • up / related use [[wikilinks]]. Link liberally; dangling links are fine (they mark notes-to-write).
  • On any edit to a note, bump modified.

Naming conventions

  • Zettels: descriptive title-case, no IDs (Spaced Repetition.md). Atomic = one idea per note.
  • Projects/Areas: noun phrase (Launch Personal Site.md).
  • Sources: Author - Title.md or the work's title.
  • MOCs: the topic name (Learning.md).
  • Daily: YYYY-MM-DD.md only.

Tag taxonomy

Lowercase, /-nested. Stems: #topic/..., #status/... (mirrors frontmatter), #type/.... Keep tags few — prefer [[links]] for relationships, tags for cross-cutting facets.

Tasks syntax (Tasks plugin)

- [ ] action 📅 YYYY-MM-DD #tag — emoji metadata (📅 due, priority, 🔁 recur). Dashboards/daily query these globally.

Programs (.claude/commands/)

CommandDoes
/capture <text>append timestamped line to 00-Inbox/Inbox.md
/think [topic]Socratic drill on a topic; auto-invokes /zettel /link /moc /research as insights crystallize; empty = picks latest inbox item
/process-inboxclassify each inbox item → route to right folder w/ frontmatter → suggest links → clear
/dailyscaffold today's daily note; pull open tasks + carryover + due projects
/weekly-reviewsurface stale/on-hold/overdue; propose archive moves
/new-project <name>scaffold project note from template
/zettel <idea>create atomic note; search vault; suggest up/related links
/research <q>deep-research skill → source note(s) w/ citations → synthesis zettel
/link [note]find backlink candidates across vault; propose related edits
/moc <topic>build/refresh a MOC index from tag/folder/links
/status-refreshparse latest agent session log → write 90-Meta/status/*.json for the Cockpit

Conventions for the kernel (you)

  • Respect the schema. New notes get full frontmatter. Never leave created/type blank.
  • Link, don't orphan. Every new knowledge note gets at least one up (its MOC) and proposed related.
  • Templates first. Scaffold from 90-Meta/Templates/ rather than inventing structure.
  • Confirm destructive moves. Archiving / deleting notes → confirm with user first.
  • Manual autonomy. Act on explicit command invocation. No background jobs (daemons deferred).

Version control

  • Vault is a git repo. A Stop hook runs 90-Meta/scripts/autosave.sh after every turn → auto-commits all changes. Commit-only; the user pushes manually.
  • Commits in this vault must NOT reference Claude in any way — no Co-Authored-By: Claude … trailer, no mention in subject/body. This explicitly overrides the global ~/.claude/CLAUDE.md commit-trailer rule. The autosave script controls the message; if you ever commit by hand, follow the same rule.
  • Identity is local repo config: FirasAEN <test@none.com>. Never edit global git config.

See 90-Meta/System.md for the human-readable overview and architecture diagram.