| name | anarlog-process |
| description | Process Anarlog meeting sessions (memos, summaries, transcripts) into the knowledge graph. Extracts people, organizations, projects, and topics from AI-generated meeting summaries and user notes, creating or updating Obsidian-compatible notes in Knowledge/. Use when the user asks to process meeting notes or after Anarlog sessions. |
| license | Apache-2.0 |
| metadata | {"version":"3.12.0","author":"forwardimpact"} |
Process Anarlog
Process meeting sessions from Anarlog (a local AI meeting-notes app) into the
knowledge graph. Anarlog records meetings, transcribes them, and generates AI
summaries; this skill reads that output and feeds it into Knowledge/ — the
same way extract-entities processes emails and calendar events.
Trigger
- The user asks to process meeting notes or Anarlog sessions.
- New meetings have been recorded.
- The user asks to update the knowledge base from recent meetings.
Prerequisites
- Anarlog installed; sessions at
~/Library/Application Support/anarlog/sessions/.
- User identity from running the
person-identify skill, which writes
~/.cache/fit/outpost/state/identity.md.
Inputs
~/Library/Application Support/anarlog/sessions/{uuid}/ — see
references/sessions.md for the file shape and skip
rules.
~/.cache/fit/outpost/state/graph_processed — processed-file index (TSV,
shared with extract-entities).
~/.cache/fit/outpost/state/identity.md — user identity for self-exclusion
(written by the person-identify skill).
Outputs
Knowledge/People/, Knowledge/Organizations/, Knowledge/Projects/,
Knowledge/Topics/ — created or updated.
Knowledge/Priorities/ — updated only, never
auto-created.
~/.cache/fit/outpost/state/graph_processed — updated.
<do_confirm_checklist goal="Verify each session was processed correctly">
</do_confirm_checklist>
Procedure
0. Set up
Read the user's identity from ~/.cache/fit/outpost/state/identity.md (run the
person-identify skill first if it is missing or stale). Scan unprocessed
sessions:
node .claude/skills/anarlog-process/scripts/scan.mjs
Flags: --changed (also detect changed memo/summary hashes), --json
(programmatic output), --count (count only), --limit N (default 20).
A session needs processing when its _memo.md is not in graph_processed, or
its hash has changed (--changed), or its _summary.md exists and is not in
graph_processed (or has changed).
Process all unprocessed sessions in one run. Don't write bespoke scan
scripts — this script handles the edge cases (empty memos, missing summaries,
metadata fallback).
1. Build the knowledge index
ls Knowledge/People/ Knowledge/Organizations/ Knowledge/Projects/ \
Knowledge/Topics/ Knowledge/Priorities/ \
Knowledge/Conditions/ 2>/dev/null
Read each note's header to build a mental index of known entities (same approach
as extract-entities Step 0).
2. Read each session
For each unprocessed session, read in this order: _meta.json, _memo.md,
_summary.md (if present), transcript.json (only when disambiguation requires
it). File shapes and skip rules:
references/sessions.md.
3. Classify the source
Anarlog sessions are meetings and follow the meeting rules from
extract-entities:
- Can create People, Organization, Project, and Topic notes.
- Can update existing notes — including Priorities, which are
user-set and never auto-created.
- Can detect state changes.
Apply the "Would I prep for this person?" test from extract-entities Step 5
before creating a person note.
4. Extract entities and content
Combine memo and summary content (prefer summary when both exist). Extraction
signals — entity types, decisions, commitments, key facts, activity-line format,
interview-note rules, and linking rules — live in
references/extraction.md.
5. Write updates
For new entities, use the templates in
.claude/skills/extract-entities/references/TEMPLATES.md. For interview
sessions, use the candidate brief template from req-track (under
Knowledge/Candidates/).
For existing entities, apply targeted edits — never rewrite the file:
- Add the new activity entry at the top of
## Activity.
- Update
Last seen / Last activity.
- Add new key facts (skip duplicates).
- Update open items (mark completed, add new).
- Apply state changes.
Verify bidirectional links per extract-entities Step 10 (Project ↔ Priority).
6. Update graph state
For each processed session:
node .claude/skills/extract-entities/scripts/state.mjs update \
"$HOME/Library/Application Support/anarlog/sessions/{uuid}/_memo.md"
node .claude/skills/extract-entities/scripts/state.mjs update \
"$HOME/Library/Application Support/anarlog/sessions/{uuid}/_summary.md"
(Skip the summary call if _summary.md doesn't exist.)