Receber por email
← Voltar para o catálogo

journal

Write entries to the Obsidian work journal. Creates daily logs, meeting notes, project updates, learnings, and decision records. Use when the user says "journal", "log", "daily entry", "meeting notes", "learning", "decision", "ADR", "capture this", "write down", "record this", or wants to document work for future reference.

15estrelas
Atualizado há 5 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add backspace-shmackspace/claude-devkit

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/journal/svg)](https://www.skillteca.com.br/skills/journal)
#ai

Skills relacionadas

Ver todas de Documentos →

Alerta por categoria

Receba novas skills de Documentos toda segunda

1 email curto, só com as skills novas de Documentos. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

/journal Workflow

Inputs

User provides:

  • Natural language description of what to journal (content, context, topic)
  • Optional: explicit entry type (daily, meeting, project, learning, decision)
  • Optional: project name, topic name, or meeting title

Scope parameters:

  • JOURNAL_BASE: ~/journal/ (hardcoded, user can modify in skill file if needed)
  • TEMPLATES_DIR: ~/journal/templates/ (on-disk templates override embedded defaults)
  • Supported entry types: daily, meeting, project, learning, decision, biweekly-update

Step 0 — Determine Entry Type

Action: Classify user input to determine which journal entry type to create.

Classification rules:

  1. daily: User mentions "daily", "today", "log", "work session", or provides general work update without specific meeting/learning/decision context
  2. meeting: User mentions "meeting", "standup", "sync", "call", or references attendees/agenda
  3. project: User mentions "project update", references a specific project name, or provides progress on a named initiative
  4. learning: User mentions "learned", "discovered", "figured out", "TIL", "gotcha", or describes technical insight
  5. decision: User mentions "decision", "ADR", "decided to", "chose", "picked", describes options/tradeoffs
  6. biweekly-update: User mentions "biweekly", "bi-weekly", "PSLT update", "leadership update", "14-day update", "fortnightly", or "status update for leadership"

Disambiguation heuristic:

  • If input matches multiple types, default to broader type: daily > project, meeting > decision
  • A decision made in a meeting goes in the meeting entry unless user explicitly wants separate ADR
  • If still ambiguous after heuristic, ask user to clarify

Deprecated types:

  • If user says "idea" or "todo", explain these are now captured in daily notes (## Learnings for ideas, ## Tomorrow's Priorities for todos) and offer to add content there
  • Do not silently fail or ignore deprecated types

Tool declarations: Read (to check existing files), Bash (for date operations)

Output: Entry type classification (daily/meeting/project/learning/decision) and extracted topic/title

Step 1 — Validate Path and Load Template

Action: Sanitize user-supplied names, validate paths, and load the appropriate template.

Path sanitization:

  1. Extract topic/title/name from user input
  2. Sanitize filename:
  3. Strip all path separators (/, \)
  4. Remove .. sequences
  5. Remove characters outside [a-zA-Z0-9_-] (replace with -)
  6. Convert to lowercase for consistency
  7. Limit to 100 characters
  8. Construct absolute file path based on entry type:
  9. daily: $JOURNAL_BASE/daily/YYYY-MM-DD.md (date-based, no user input in path)
  10. meeting: $JOURNAL_BASE/meetings/YYYY-MM-DD-{sanitized-topic}.md
  11. project: $JOURNAL_BASE/projects/{sanitized-name}.md
  12. learning: $JOURNAL_BASE/learnings/{sanitized-topic}.md
  13. decision: $JOURNAL_BASE/decisions/YYYY-MM-DD-{sanitized-name}.md
  14. biweekly-update: $JOURNAL_BASE/deliverables/YYYY-MM-DD-biweekly-update.md
  15. Verify resolved absolute path starts with $JOURNAL_BASE/ (prevent traversal attacks)

Template loading:

  1. Check if on-disk template exists at $TEMPLATES_DIR/{type}.md
  2. If exists, read it (on-disk override)
  3. If not, use embedded default template (see Embedded Templates section below)
  4. If neither available, report error listing expected template path and FAIL

Tool declarations: Read (template files), Bash (date operations)

Checkpoint: Path validated, template loaded, ready to proceed

Step 2 — Check Existing File

Action: For daily and project entries, check if the file already exists to determine append vs create.

Daily entry append logic:

  • If daily/YYYY-MM-DD.md exists, new content will append as ### Session N under ## Work Sessions
  • Determine N by reading existing file and incrementing highest session number
  • YAML frontmatter is NOT modified on append

Project entry append logic:

  • If projects/{name}.md exists, new content will append as ### YYYY-MM-DD under ## Recent Activity (or ## Work Log if that section exists instead)
  • YAML frontmatter is NOT modified on append

Biweekly update entries:

  • Always new files (date-stamped: YYYY-MM-DD-biweekly-update.md)
  • If file already exists for today's date, warn user and ask if they want to overwrite
  • Period defaults to 14 days back from today unless user specifies

Biweekly update drafting process: When creating a biweekly-update entry, automatically gather context to draft content:

  1. Mine journal data: Read daily entries from the last 14 days (daily/*.md) to extract wins, blockers, decisions, and project progress
  2. Mine project entries: Read projects/*.md for recent activity sections
  3. Mine decision records: Read decisions/*.md from the last 14 days for strategic context
  4. Cross-reference PRODSECRM: Check ~/projects/prodsecrm/risk-docs/working/*.md for recently updated risk assessments (by updated frontmatter field)
  5. Apply voice register: Use Register 2 ("The Analysis") from ~/bksp.ca/persona/master-persona.md for the drafting voice: structured, evidence-first, directly decisive, data-backed, authority voice
  6. Sensitivity filter: Do NOT include specific JIRA keys, internal tool names, or colleague names in the draft without user confirmation. Frame wins in terms of outcomes and metrics, not implementation details.
  7. Draft all 6 sections with concrete content from the mined data, leaving <!-- VERIFY --> comments on any claims the user should double-check

Audience context: Product Security Leadership Team (PSLT). Boss and peer leadership. They want signal, not noise: specific metrics, clear blockers with named owners, and forward-looking risks.

Meeting, learning, decision entries:

  • These are always new files (timestamped or uniquely named)
  • If file already exists, warn user and ask if they want to overwrite or append

Tool declarations: Read (existing file), Glob (to find max session number)

Checkpoint: Determined whether this is a create or append operation

Step 3 — Write Entry

Action: Create or update the journal file using the template format.

For new files:

  1. Fill YAML frontmatter with current date, extracted metadata, and user content
  2. Replace template placeholders:
  3. YYYY-MM-DD → current date
  4. {Project Name}, {Topic Name}, etc. → sanitized user input
  5. HH:MM → current time
  6. Insert user-provided content in appropriate sections
  7. Leave unprovided template sections as placeholders (user fills later)

For daily entry appends:

  1. Read existing file content
  2. Find ## Work Sessions section
  3. Determine next session number (e.g., if Session 3 exists, next is Session 4)
  4. Append new session block:

``markdown ### Session N (HH:MM - HH:MM) Project: [[project-name]] Task: {user content} Progress: {user content} Blockers: {from user or TBD} Learning: {from user or TBD} ``

  1. Write updated file

For project entry appends:

  1. Read existing file content
  2. Find ## Recent Activity or ## Work Log section
  3. Append new dated entry:

``markdown ### YYYY-MM-DD {user content} [[daily/YYYY-MM-DD]] ``

  1. Write updated file

Tool declarations: Write (new files), Edit (append operations), Bash (date/time)

Checkpoint: File written successfully

Step 4 — Cross-Link

Action: Add wikilinks from the current entry to related entries (one-directional linking).

Cross-linking rules:

  • Daily entries: Link to mentioned projects ([[projects/name]]) and previous day ([[daily/YYYY-MM-DD]], determined by globbing daily/*.md for most recent prior date)
  • Meeting entries: Link to today's daily entry ([[daily/YYYY-MM-DD]]) and mentioned projects
  • Learning entries: Link to today's daily e
Compartilhar X LinkedIn