From project-notes
This skill should be used when the user wants to write a journal entry, log an observation, capture a discovery, record a design insight, or note a lesson learned. Entries are timestamped and stored in notes/journal/. Triggers on: "journal", "write a journal entry", "log this", "observation", "I learned", "note to self", "capture this for later".
npx claudepluginhub a3lem/my-claude-plugins --plugin project-notesThis skill uses the workspace's default tool permissions.
Write timestamped journal entries to `notes/journal/` to preserve knowledge across sessions.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Write timestamped journal entries to notes/journal/ to preserve knowledge across sessions.
Write a journal entry when you encounter something that:
Do NOT write a journal entry for:
notes/DECISIONS.md -- decisions are one-liners, not entries)CLAUDE.md or auto-memory)Use the script to create entries -- it generates the correct filename and scaffolds the frontmatter:
# Agent creating an entry
${CLAUDE_PLUGIN_ROOT}/skills/journal/scripts/new-entry.sh ai vllm-batch-limit --tags vllm,performance
# Human creating an entry
${CLAUDE_PLUGIN_ROOT}/skills/journal/scripts/new-entry.sh hu checkpoint-design-notes --tags architecture
The script outputs the full file path. Open it and write the body.
<YYYYMMDD>T<HHMM>Z.<ai|hu>.<slug>.md
ai for agent-written, hu for human-writtenThe origin marker is immutable. It captures who created the note, not who last edited it.
Write the entry as plain markdown. Keep it concise -- a journal entry is a note, not an essay.
The script scaffolds optional YAML frontmatter from --tags and --refs flags. Humans may skip frontmatter entirely. Agents should include tags when the topic is clear and refs when working in the context of a specific issue.
If the entry relates to other journal entries, issues, wiki pages, or external resources, add a ## References section at the bottom:
## References
- [[related-note]]
- [Earlier observation on timeouts](20260207T0900Z.ai.vllm-timeout-mystery.md)
Use [[wikilinks]] for notes pages and relative paths for journal cross-references.
Not all journal entries carry equal weight. The primary authority signal is being linked from a hub file. A journal entry referenced from notes/INDEX.md, docs/, or another promoted entry has been actively vouched for.
When entries conflict, use this hierarchy:
hu. in filename) -- highest baseline trustai. in filename, but git log shows human commits) -- validatednotes/INDEX.md, docs/) -- promotedWhen in doubt, flag the conflict to the user rather than silently choosing.
Journal entries start as raw observations. They gain authority through promotion -- being linked from hub files:
notes/INDEX.md -- project-facing index of active knowledgedocs/ -- durable reference contentIf an entry isn't linked from any hub, it's raw material -- useful for search, but not actively trusted.
Over time, entries accumulate. Periodically consolidate:
docs/) summarizing the current understandingnotes/journal/archive/Consolidation is itself a form of validation. A consolidated page is more authoritative than the raw entries it replaced.
Before starting work on a topic, search existing entries:
# Find entries by topic
Glob: notes/journal/*.<topic>*.md
# Search entry contents
Grep: pattern="<keyword>" path="notes/journal/"
Also check notes/INDEX.md for curated links.
notes/journal/
├── archive/ # stale or consolidated entries
├── 20260209T1430Z.ai.vllm-batch-limit.md
├── 20260209T1512Z.hu.checkpoint-design-notes.md
└── ...