AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Journal

skill-adrianfernandezalv-skills-journal · by adrianfernandezalv

Log today's work by reconstructing it from git history across all your repos. Use at the end of a day to record what was done, optionally split by work vs personal.

No reviews yet
0 installs
36 views
0.0% view→install

Install

$ agentstack add skill-adrianfernandezalv-skills-journal

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-adrianfernandezalv-skills-journal)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Journal? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Reconstruct today's work from git history (not session context) and write it to the journal. Run it at the end of the day; re-running regenerates today's entry idempotently.

Config

Read from ~/.claude/CLAUDE.md:

  • journal-backendobsidian (default) | inkdrop.
  • journal-path — where journal files live (for obsidian).
  • journal-roots — comma-separated directories to scan for git repos (where you keep your projects). Defaults to ~ if unset.
  • journal-emails — comma-separated list of ALL your git author emails (every identity you commit with). Used to attribute commits across repos that may be configured with different user.email.
  • journal-work-hosts — optional comma-separated remote-host substrings that mark a repo as work (e.g. your company's git host). Repos whose origin matches go under a Work section; everything else under Personal. If unset, no split — all repos go under one list.

If journal-backend is missing, ask the user once and offer to write the keys. If it names an unsupported backend, stop: journal-backend not supported; supported: obsidian, inkdrop. If journal-emails is missing, fall back to each repo's git config user.email and warn that cross-identity commits may be missed.

Reconstruct the day

  1. Find repos: for each directory in journal-roots, run find -maxdepth 4 -type d -name .git and take each parent as the repo root. Depth 4 catches both top-level repos (.git at depth 2) and repos nested two levels under a root. Exclude the vault repo itself (the git root containing journal-path) to avoid logging the journal's own commits.
  2. For each repo, collect today's commits across all branches (not just HEAD) authored by any of your emails:

``bash git -C "$repo" log --all --since="00:00" --no-merges \ --pretty=format:'%h%x09%ae%x09%s' ` Keep only lines whose author email (2nd field) is in journal-emails; drop the rest (others' commits). --all is essential: work is often done on per-ticket feature branches, so the checked-out branch (often master/main`) may not contain today's commits. Skip repos with no matching commits.

  1. If journal-work-hosts is set, classify each repo by its origin remote host:

``bash git -C "$repo" remote get-url origin ``

  • host matches an entry in journal-work-hostsWork
  • otherwise → Personal

If journal-work-hosts is unset, skip the split and list all repos under one section.

  1. For each repo with commits, synthesize a 1-line summary from that day's commit subjects (derivable from the commits — no session context needed).

Build the entry

# YYYY-MM-DD

## Work
### 
> 
-  (``)

## Personal
### 
> 
-  (``)
  • Omit a section entirely if it has no commits. With no journal-work-hosts, drop the section headers and list repos directly under the date.
  • No Prompt or Difficulties fields — they are not derivable from git.
  • If the user passed an argument, append it under a ## Notes section.

Write

obsidian (default)

  1. Write the entry to /.md, overwriting any existing file for today (the reconstruction is the full day, so regeneration is idempotent).
  2. Commit it in the vault so the entries are versioned:

``bash git -C "" add "/.md" git -C "" commit -m "journal: " >/dev/null 2>&1 || true ` ( is the git root containing journal-path`.)

inkdrop

Find or create today's note (YYYY-MM-DD) in the Journal notebook (list-notebooks). Write the reconstructed entry. Status none.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.