Install
$ agentstack add skill-adrianfernandezalv-skills-journal ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
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 →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-backend—obsidian(default) |inkdrop.journal-path— where journal files live (forobsidian).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 differentuser.email.journal-work-hosts— optional comma-separated remote-host substrings that mark a repo as work (e.g. your company's git host). Repos whoseoriginmatches 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
- Find repos: for each directory in
journal-roots, runfind -maxdepth 4 -type d -name .gitand take each parent as the repo root. Depth 4 catches both top-level repos (.gitat depth 2) and repos nested two levels under a root. Exclude the vault repo itself (the git root containingjournal-path) to avoid logging the journal's own commits. - 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.
- If
journal-work-hostsis set, classify each repo by itsoriginremote host:
``bash git -C "$repo" remote get-url origin ``
- host matches an entry in
journal-work-hosts→ Work - otherwise → Personal
If journal-work-hosts is unset, skip the split and list all repos under one section.
- 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
PromptorDifficultiesfields — they are not derivable from git. - If the user passed an argument, append it under a
## Notessection.
Write
obsidian (default)
- Write the entry to
/.md, overwriting any existing file for today (the reconstruction is the full day, so regeneration is idempotent). - 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.
- Author: adrianfernandezalv
- Source: adrianfernandezalv/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.