# Daily Journal

> Create daily work journal notes in org-mode or markdown format, maintain hierarchical index, and generate weekly summaries. Use when user mentions daily note, journal, log work, weekly summary, or asks what they did today/this week.

- Skill: `rutayan-nv/daily-journal` (Agent Skill)
- Install (CLI): `npx skillmds@latest add rutayan-nv/daily-journal`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rutayan-nv/daily-journal/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: rutayan-nv (https://skillmd.com/u/rutayan-nv)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/rutayan-nv/daily-journal

---


# Daily Work Journal

Manages daily work notes with configurable format (org-mode or markdown) and paths for cross-platform support.

## First-Time Setup

On first use, check if `config.json` exists in this skill directory (`~/.cursor/skills/daily-journal/config.json` on Unix, `%APPDATA%\Cursor\skills\daily-journal\config.json` on Windows).

### If config.json is missing, prompt the user:

1. "What note format do you prefer?"
   - a) org-mode (.org) - for Emacs users
   - b) markdown (.md) - for VS Code, Obsidian, Typora, etc.

2. "Where should your journal be stored? (provide full path)"

3. "Which directories contain your git repositories? (comma-separated full paths)"

4. "What's your name for the journal author field?"

5. "What's your git username or email for filtering commits?"

### Create config.json with the answers:

```json
{
  "note_format": "org",
  "journal_path": "<user provided path>",
  "repo_search_paths": ["<path1>", "<path2>"],
  "author_name": "<user provided name>",
  "git_author_filter": "<git username/email>"
}
```

After creating config, proceed with the journal operation.

---

## Configuration Reference

| Field | Description | Values |
|-------|-------------|--------|
| `note_format` | File format for notes | `"org"` or `"markdown"` |
| `journal_path` | Root directory for journal files | Full path |
| `repo_search_paths` | Directories to scan for git repos | Array of paths |
| `author_name` | Name used in file headers | String |
| `git_author_filter` | Git author for log filtering | Username or email |

---

## Directory Structure

File extension is `.org` or `.md` based on `config.note_format`.

```
<journal_path>/
├── index.<ext>                  # Hierarchical index
└── YYYY/                        # Year directory
    └── wwXX/                    # Work week directory (ISO week number)
        ├── YYYY-MM-DD.<ext>     # Daily notes
        └── weekly-summary.<ext> # Weekly summary (created Sunday)
```

---

## Data Sources

Before creating a daily note, gather context from:

### 1. Shell history (today's commands)

**Auto-detect based on OS:**
- **Unix/macOS**: Check `~/.zsh_history` and `~/.bash_history`
- **Windows**: Run `(Get-PSReadLineOption).HistorySavePath` in PowerShell

Filter for today's commands.

### 2. Emacs history (if exists)

Check for these files (skip if not found):

**Standard Emacs:**
- `~/.emacs.d/history` - minibuffer command history
- `~/.emacs.d/recentf` - recently opened files

**Doom Emacs:**
- `~/.config/emacs/.local/cache/recentf` - recently opened files
- `~/.config/emacs/.local/etc/transient/history` - magit/transient command history

Extract: files worked on, git operations (commits, rebases, pushes), search patterns.

### 3. Cursor agent transcripts

**Auto-detect location:**
- **Unix/macOS**: Scan `~/.cursor/projects/*/agent-transcripts/*.jsonl`
- **Windows**: Scan `%APPDATA%\Cursor\projects\*\agent-transcripts\*.jsonl`

Read recent transcripts to extract: code changes, features discussed, bugs fixed.

### 4. Git logs (today's commits)

For each path in `config.repo_search_paths`:
- **Unix/macOS**: `find <path> -name ".git" -type d`
- **Windows**: `Get-ChildItem -Path <path> -Recurse -Directory -Filter ".git"`

In each repo, run:
```
git log --oneline --since="today" --author="<config.git_author_filter>"
```

### 5. Current conversation context

---

## Creating a Daily Note

### Step 1: Load configuration

Read `config.json` from skill directory. If missing, run First-Time Setup.

### Step 2: Determine file path

Calculate the ISO week number and create the path:
- Path: `<journal_path>/YYYY/wwXX/YYYY-MM-DD.<ext>`
- Extension: `.org` if `note_format` is "org", `.md` if "markdown"

Create the year and week directories if they don't exist.

### Step 3: Gather context

Read the data sources listed above. Focus on:
- Commands that indicate debugging (repeated grep, find, git commands)
- Code changes from agent transcripts
- Git commits made today (features, fixes, refactors)
- Features implemented
- Errors encountered

### Step 4: Create the daily note

Use the appropriate template based on `config.note_format`:

#### Org-mode template (.org)

```org
#+TITLE: YYYY-MM-DD (Weekday)
#+AUTHOR: <config.author_name>

* Summary
One paragraph overview of the day's work.

* Work Done
** [Feature/Task Name]
- What was implemented (2-3 lines)
- Key decisions or approach taken
- Links: [[url][description]]

* Learnings
** [Topic]
- Key insight or new knowledge (3-6 lines max)
- Why it matters

* Blockers/Bugs
** [Issue description]
- Root cause identified
- Time/effort spent debugging
- Impact on productivity
- Resolution or workaround
```

#### Markdown template (.md)

```markdown
# YYYY-MM-DD (Weekday)
**Author:** <config.author_name>

## Summary
One paragraph overview of the day's work.

## Work Done
### [Feature/Task Name]
- What was implemented (2-3 lines)
- Key decisions or approach taken
- Links: [description](url)

## Learnings
### [Topic]
- Key insight or new knowledge (3-6 lines max)
- Why it matters

## Blockers/Bugs
### [Issue description]
- Root cause identified
- Time/effort spent debugging
- Impact on productivity
- Resolution or workaround
```

### Step 5: Update index

Add entry to `<journal_path>/index.<ext>` under the correct year and week.

#### Org-mode index

```org
* 2026
** ww09 (Feb 24 - Mar 02)
- [[file:2026/ww09/2026-02-24.org][Mon 2026-02-24]]
```

If index.org doesn't exist, create with:
```org
#+TITLE: Work Journal Index
#+AUTHOR: <config.author_name>
```

#### Markdown index

```markdown
# Work Journal Index
**Author:** <config.author_name>

## 2026
### ww09 (Feb 24 - Mar 02)
- [Mon 2026-02-24](2026/ww09/2026-02-24.md)
```

---

## Creating Weekly Summary

Run every Sunday. Create at `<journal_path>/YYYY/wwXX/weekly-summary.<ext>`.

### Step 1: Read all daily notes for the week

Read all notes in the current week directory (excluding weekly-summary).

### Step 2: Create summary

#### Org-mode weekly summary

```org
#+TITLE: Week XX Summary (Mon Date - Sun Date)
#+AUTHOR: <config.author_name>

* Highlights
- Top 3-5 accomplishments this week

* Features Implemented
- List of features with brief descriptions

* Key Learnings
- Consolidated learnings from daily notes

* Blockers Encountered
- Summary of bugs/blockers and resolutions

* Productivity Notes
- Patterns observed (what slowed you down, what helped)

* Next Week
- Carry-over items or planned focus areas
```

#### Markdown weekly summary

```markdown
# Week XX Summary (Mon Date - Sun Date)
**Author:** <config.author_name>

## Highlights
- Top 3-5 accomplishments this week

## Features Implemented
- List of features with brief descriptions

## Key Learnings
- Consolidated learnings from daily notes

## Blockers Encountered
- Summary of bugs/blockers and resolutions

## Productivity Notes
- Patterns observed (what slowed you down, what helped)

## Next Week
- Carry-over items or planned focus areas
```

### Step 3: Update index

Add weekly summary link under the appropriate week.

---

## Formatting Guidelines

### Org-mode
- Headings: `* Level1`, `** Level2`, `*** Level3`
- Links: `[[url][description]]` or `[[file:path.org][name]]`
- Emphasis: `*bold*`, `/italic/`, `_underline_`, `~code~`

### Markdown
- Headings: `# Level1`, `## Level2`, `### Level3`
- Links: `[description](url)` or `[name](path.md)`
- Emphasis: `**bold**`, `*italic*`, `` `code` ``

### Both formats
- Each bullet point: 3-6 lines maximum
- Keep notes human-readable and scannable
- Focus on work and learnings, not personal items

---

## Detecting Bugs/Inefficiencies

Signs of debugging or inefficiency in shell history:
- Repeated similar commands (grep, find, git diff)
- Multiple failed command attempts
- Long sequences of cd/ls navigation
- Repeated test runs

When detected, note:
- What was being searched for
- How long the pattern persisted
- What finally resolved it

