Journal
When explicitly invoked, write the activity log directly to Tolaria. Do not ask the user for a date or timestamp.
Find the interval
- Record the invocation start time in the local machine timezone before reading sessions. Exclude the current invocation and records created by this skill.
- Find the latest
journal-cursorinjournal/YYYY-MM.mdnotes. Read the current monthly note first; search Tolaria forjournal-cursorif it does not exist. - Process records after that cursor and up to the invocation start time. If no cursor exists, start at local midnight.
- Store the new cursor as a hidden HTML comment. The user never supplies or edits it.
Read evidence
Read JSONL records from:
- Pi:
$PI_AGENT_DIR/**/*.jsonl, or~/.config/pi/sessions/**/*.jsonl. - Claude Code:
${CLAUDE_CONFIG_DIR:-~/.config/claude}/projects/**/*.jsonl.
Use record timestamps, not file mtimes. Use user messages, assistant final responses, successful tool results, diffs, commits, and test output. Ignore system records, thinking, attachments, duplicate prompts, and raw sensitive output. Never write secrets, tokens, credentials, private keys, or full command output.
Summarize meaningful outcomes, not every command. Each bullet must answer what happened and why it mattered. Combine overlapping Pi and Claude work into one bullet. Include a blocker only when it changes the next step.
Link Linear issues
When a session contains a Linear issue ID or URL, link the existing issue in the journal bullet:
- [TIF-66](https://linear.app/tifan/issue/TIF-66/...): updated Hevy OpenAPI coverage so agents can use the full CLI.
Preserve an existing URL. Use the loaded Linear MCP server only to resolve an ID to its existing URL. If no Linear server is available, leave the ID as plain text. Never create, update, comment on, or otherwise modify Linear issues. Do not import unrelated Linear activity, comments, descriptions, or status history.
Classify entries
- Claude Code sessions are Work.
- Pi sessions under
projects/work/or with ahadl-labsremote are Work. - Pi sessions under
projects/personal/or with a personal remote are Personal. - Classify Chezmoi from the target it changed. Treat an unclear entry as Personal only when its content is clearly personal; otherwise ask one classification question before writing.
Monthly note format
Create or update journal/YYYY-MM.md with this shape:
---
type: Note
---
# Journal — September 2026
## 2026-09-15
### Personal
- ...
- ...
- ...
- ...
### Work
- ...
Use one day section per local calendar date. Use normal Markdown - bullets for every entry. State completion, blockers, or decisions in plain text when useful.
Keep bullets concise and factual. Do not create an empty day section.
Write safely
- Call
tolaria_get_vault_contextbefore note work. - Use
tolaria_get_noteto read existing monthly notes. Create missing notes withtolaria_create_note. - Use
tolaria_update_notewith the note'sexpectedMtimewhen inserting entries or replacing the cursor. Include and preserve the existing YAML frontmatter unchanged. - Deduplicate against the existing day sections. Do not advance the cursor if evidence collection or a write fails.
- Call
tolaria_refresh_vaultafter any write.
Report the written note path, date range, and bullet count in three lines or fewer.