From ctx
Enriches session journal entries with YAML frontmatter (title, type, outcome, topics, technologies, libraries, key files) for searchability when lacking metadata.
npx claudepluginhub activememory/ctx --plugin ctxThis skill uses the workspace's default tool permissions.
Enrich a session journal entry with structured metadata.
Imports unimported sessions into journal and batch-enriches all unenriched entries. Use to process journal backlog or on 'process the journal' requests.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Share bugs, ideas, or general feedback.
Enrich a session journal entry with structured metadata.
.state.json has a
locked date OR the frontmatter contains locked: true. Locked
files must not be modified: skip them silently. Check via:
ctx system mark-journal --check <filename> locked
or look for locked: true in the YAML frontmatter.ctx system mark-journal --check <filename> enriched or read
.state.json in the journal directory; confirm before overwritingThe user specifies a journal entry by partial match:
twinkly-stirring-kettle (slug)twinkly (partial slug)2026-01-24 (date)76fe2ab9 (short ID)Find matching files in the journal directory:
ls "$(ctx system bootstrap -q)/journal/"*.md | grep -i "<pattern>"
If multiple matches, show them and ask which one.
If no argument given, show recent unenriched entries by reading
.state.json in the journal directory and listing entries without
an enriched date:
# List unenriched entries using state file
CTX_DIR=$(ctx system bootstrap -q)
for f in "$CTX_DIR/journal/"*.md; do
name=$(basename "$f")
ctx system mark-journal --check "$name" enriched || echo "$f"
done | head -10
/ctx-journal-enrich twinkly-stirring-kettle
/ctx-journal-enrich twinkly
/ctx-journal-enrich 2026-01-24
/ctx-journal-enrich 76fe2ab9
Read the journal entry and extract:
---
title: "Session title"
date: 2026-01-27
model: claude-opus-4-6 # auto-populated at import
tokens_in: 234000 # auto-populated at import
tokens_out: 89000 # auto-populated at import
type: feature
outcome: completed
topics:
- authentication
- caching
technologies:
- go
- postgresql
libraries:
- cobra
- fatih/color
key_files:
- internal/auth/token.go
- internal/db/cache.go
---
Auto-populated fields (set during ctx journal import, do NOT overwrite):
date, time, project, session_id, model, tokens_in, tokens_out, branch
Type values:
| Type | When to use |
|---|---|
feature | Building new functionality |
bugfix | Fixing broken behavior |
refactor | Restructuring without behavior change |
exploration | Research, learning, experimentation |
debugging | Investigating issues |
documentation | Writing docs, comments, README |
Outcome values:
| Outcome | Meaning |
|---|---|
completed | Goal achieved |
partial | Some progress, work continues |
abandoned | Stopped pursuing this approach |
blocked | Waiting on external dependency |
If ## Summary says "[Add your summary...]", replace with 2-3 sentences
describing what was accomplished.
Scan the conversation and extract:
Decisions made: link to DECISIONS.md if persisted:
## Decisions
- Used Redis for caching ([D12](../DECISIONS.md#d12))
- Chose JWT over sessions (not yet persisted)
Learnings discovered: link to LEARNINGS.md if persisted:
## Learnings
- Token refresh requires cache invalidation ([L8](../LEARNINGS.md#l8))
- Go's defer runs LIFO (new insight)
Tasks completed/created:
## Tasks
- [x] Implement caching layer
- [ ] Add cache metrics (created this session)
ctx system mark-journal <filename> enriched
ctx journal site --build or make journal