/journal
SkillDocs & knowledgeWrite structured session journal entries for durable working memory.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /journal skill
What this skill tells your AI
The instructions your AI receives, as published by indigoai-us/hq-core in .claude/skills/journal/SKILL.md and read by ahel’s review.
Write a structured working-memory entry for the current Claude session. Entries land at workspace/threads/journal/<YYYY-MM-DD>/<NNN>-<slug>.md and the day's INDEX.md is auto-updated.
Spec: core/knowledge/public/hq-core/journal-spec.md.
Usage
| Form | Effect |
|---|---|
/journal "<title>" | Write a new entry inferring body from recent context |
/journal --list | Print today's INDEX |
/journal --read <NNN> | Print a specific entry |
Behavior
Writing an entry
- Synthesize the body from the current conversation context. The entry captures what's useful to recover if the prefix gets compacted away — not everything that happened.
- Use this template (50–200 lines, ≤5KB hard):
## Goal
<one sentence: what this slice of work is about>
## Findings
<bullets — non-obvious things learned, file paths discovered, behaviors observed>
## Decisions
<numbered — what was chosen, including rejected alternatives if instructive>
## Next
<what the next entry will pick up: story id, file, or open question>
- Pass the synthesized body via
--body-filetocore/scripts/session-journal.sh write:
mktemp_body=$(mktemp -t journal-body.XXXXXX.md)
cat > "$mktemp_body" <<'EOF'
## Goal
...
## Findings
...
## Decisions
...
## Next
...
EOF
core/scripts/session-journal.sh write "<title>" \
--files "<comma-separated relative paths touched, optional>" \
--body-file "$mktemp_body"
rm -f "$mktemp_body"
- Confirm the path returned by the helper. Print the entry's relative path back to the user — that's the receipt.
--list
core/scripts/session-journal.sh list
Prints today's INDEX.md. If the user wants a different day, pass --date YYYY-MM-DD through.
--read <NNN>
core/scripts/session-journal.sh read <NNN>
Prints a specific entry. Useful after /handoff continuation when the SessionStart hook surfaced the INDEX and you need a specific entry's detail.
When to write an entry
You don't need to wait for the auto-trigger hook. Write proactively after:
- Finishing a coherent slice of work (one story, one investigation, one cluster of related edits).
- A commit lands.
- A test pass / typecheck pass.
- A user direction change ("now let's do X instead").
- Right before
/handoffor/checkpoint. - When you notice you've made non-obvious findings that wouldn't survive a compaction.
Constraints
- Never include secrets, share-session URLs, or other capabilities in entries (per
.claude/policies/hq-share-session-urls-are-capabilities.mdand the rest of the credential-isolation rule set). - Don't write trivial entries ("read a file"). The bar is: would future-me want this back after compaction?
- One entry per coherent slice. If you have three unrelated findings, write three entries.
Related
core/knowledge/public/hq-core/journal-spec.md— full spec, two-pattern coexistence with task journals.claude/hooks/journal-due.sh— PostToolUse auto-trigger.claude/hooks/journal-precompact.sh— PreCompact reminder.claude/hooks/load-journal-index-on-start.sh— SessionStart auto-loadcore/scripts/session-journal.sh— helper script.claude/skills/_shared/journal.sh— task journal (different pattern, doesn't conflict)
Signals
- GitHub stars
- 84
- Forks
- 15
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
journal-indigoai-us- Source
- github.com/indigoai-us/hq-core