agentsclimarketplace

Journal recall

Skill backspace-shmackspace/claude-devkit/contrib/journal-recall

claude-devkit - an agentic coding framework

Install
npx -y skills add backspace-shmackspace/claude-devkit --skill journal-recall

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Search, retrieve, and summarize past journal entries. Use when the user says "what did I", "recall", "look up", "find in journal", "journal search", "last week", "weekly review", "what happened on", "summarize my week", "what have I been working on", "review my journal", or asks about past work, decisions, meetings, or notes.

SKILL.md

7.4 KB, as published. Nobody here has run it

/journal-recall Workflow

Inputs

User provides:

  • Natural language query describing what to find (date, keyword, topic, project, etc.)
  • Optional: date range, entry type filter, project name

Scope parameters:

  • JOURNAL_BASE: ~/journal/ (hardcoded, matches /journal skill)
  • Entry types: daily, meetings, projects, learnings, decisions
  • Search modes: date lookup, date range, keyword search, topic search, project filter, weekly review

Step 0 — Classify Intent

Action: Determine what type of retrieval the user wants.

Intent classification:

  1. Specific date lookup: User mentions a date ("yesterday", "Feb 23", "2026-02-22", "last Tuesday")
  2. Date range: User mentions a span ("this week", "last month", "between X and Y")
  3. Keyword search: User provides search terms ("worktree isolation", "Docker socket")
  4. Topic/project: User asks about a specific topic or project ("what did I do on claude-devkit?")
  5. Meeting lookup: User asks about meetings ("what meetings did I have?", "standup notes")
  6. Weekly review: User asks for a summary ("summarize this week", "weekly review", "what happened this week")
  7. Project status: User asks about a project's current state ("what's the status of X?", "where am I on X?")

Disambiguation:

  • If intent unclear, default to keyword search across all entries
  • For time-based queries, resolve relative dates ("yesterday" = YYYY-MM-DD, "this week" = past 7 days)

Tool declarations: Bash (date calculations for relative dates)

Output: Search intent classification and search parameters

Step 1 — Retrieve Entries

Action: Use appropriate tools to find and read matching journal entries.

Retrieval strategies by intent:

Specific date lookup:

  • Read daily/YYYY-MM-DD.md directly
  • If date is in past and daily entry doesn't exist, report "No daily entry for YYYY-MM-DD"
  • Also check for meetings/decisions on that date using Glob: meetings/YYYY-MM-DD-*.md, decisions/YYYY-MM-DD-*.md

Date range:

  • Use Glob to find all daily entries in range: daily/*.md
  • Filter by date range (parse YYYY-MM-DD from filename)
  • Use Glob for meetings/decisions in range
  • Read all matching files

Keyword search:

  • Use Grep with content output mode to search across all journal directories
  • Pattern: user's search terms (case-insensitive)
  • Glob pattern: *.md (search all markdown files)
  • Context: 3 lines before/after match for readability
  • Return: file paths and matching excerpts

Topic/project search:

  • Use Grep to find mentions of topic/project name
  • Search in YAML frontmatter (projects: [name]) and wikilinks ([[projects/name]])
  • Also directly read projects/{name}.md if it exists

Meeting lookup:

  • Use Glob to find all meetings: meetings/*.md
  • Optionally filter by date range or keyword
  • Read matching files

Weekly review:

  • Calculate date range for "this week" or "last week" (Mon-Sun or last 7 days)
  • Use Glob to find all daily entries in range
  • Read all daily files
  • Summarize: projects worked on, key wins, decisions made, learnings captured

Project status:

  • Read projects/{name}.md directly
  • Extract: current status (YAML frontmatter), recent activity (Work Log section), open questions
  • Also search daily entries for recent mentions

Tool declarations: Read (specific files), Glob (find files by pattern), Grep (keyword search), Bash (date calculations)

Checkpoint: Retrieved all matching entries

Step 2 — Present Results

Action: Format and present the retrieved information based on intent.

Presentation formats:

Specific date lookup:

  • Show full daily entry for that date
  • List any meetings or decisions from that date
  • Format: markdown with clear sections

Date range:

  • Show abbreviated daily entries (date + Morning Intention + key wins)
  • List meetings and decisions in chronological order
  • Format: bulleted timeline

Keyword search:

  • Show file path, date (extracted from filename), and matching excerpt for each result
  • Highlight search term context (3 lines before/after)
  • Format: search result blocks with file references
  • Example:
    Found in: daily/2026-02-23.md
    Date: 2026-02-23
    Context:
    ...
    - **Claude-devkit work:** Fixed Vertex AI model resolution issue — all Task tool calls used short aliases (`model=opus`, `model=sonnet`) that fail on Vertex. Standardized all 15 instances across 5 skills to use full IDs (`claude-opus-4-6`, `claude-sonnet-4-5`).
    ...
    

Topic/project search:

  • Show project overview (from projects/{name}.md)
  • List recent daily entries mentioning the project (past 30 days)
  • List related learnings and decisions
  • Format: structured summary with links

Meeting lookup:

  • List all meetings in chronological order
  • For each meeting: date, title, attendees, key decisions, action items
  • Format: bulleted list with meeting metadata

Weekly review:

  • Summary sections:
    • Date range: (Mon-Sun or last 7 days)
    • Projects worked on: (unique list from all daily entries)
    • Key wins: (aggregated from daily Wins sections)
    • Decisions made: (list all decisions from the week)
    • Learnings: (list all learnings from the week)
    • Carry-overs: (open items from last daily entry)
  • Format: structured markdown summary

Project status:

  • Overview: (from project file)
  • Current status: (YAML frontmatter status field)
  • Recent activity: (last 3 entries from Work Log)
  • Open questions: (from project file)
  • Recent daily mentions: (grep daily/ for project name, last 7 days)
  • Format: structured report

Tool declarations: None (output formatting only)

Checkpoint: Results formatted and ready to present

Step 3 — Handle Missing Data

Action: Report clearly if no entries found, suggest alternatives.

No results handling:

  • If specific date has no entry: "No daily entry found for YYYY-MM-DD. Nearest entries: [list files within ±3 days]"
  • If keyword search returns no results: "No matches found for '{keyword}' in journal. Try broader terms or check spelling."
  • If project doesn't exist: "No project file found for '{name}'. Available projects: [list all projects/*.md]"
  • If date range is empty: "No entries found for {date range}. First entry: YYYY-MM-DD, last entry: YYYY-MM-DD"

Always include verdict:

  • Success (results found): PASS: found N entries matching '{query}'
  • Success (no results): PASS: no entries found for '{query}' (searched N files)
  • Never use FAIL for legitimate "no results" scenarios (that's a successful search with zero matches)

Tool declarations: Glob (to find nearest entries or list available projects)

Checkpoint: Missing data handled, verdict reported

Timestamped Artifacts

Not applicable: Journal recall is a read-only search operation, not a workflow that produces artifacts.

Bounded Iterations

Not applicable: Journal search is a single-pass retrieval operation.

Archive on Success

Not applicable: Journal recall produces output directly to the user, not intermediate artifacts requiring archival.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.