macrodata-distill
Extract distilled actions and facts from today's conversations. Spawns sub-agents per conversation to avoid context blowup.
Extract distilled actions and facts from today's conversations. Spawns sub-agents per conversation to avoid context blowup.
$ npx -y skills add ascorbic/macrodata --skill distill --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/distillContext preview
The summary Claude sees to decide when to auto-load this skill.
Extract distilled actions and facts from today's conversations. Spawns sub-agents per conversation to avoid context blowup.
name: distill description: Extract distilled actions and facts from today's conversations. Spawns sub-agents per conversation to avoid context blowup.
Process today's conversations to extract actionable knowledge. This is the core of memory consolidation.
**Important:** This runs as a coordinator. Spawn sub-agents for each conversation file to avoid loading full transcripts into your context.
List conversation files modified today:
find ~/.claude/projects -name "*.jsonl" -mtime -1 -type f 2>/dev/null
For **each** conversation file, spawn a sub-agent with the Task tool:
Task(subagent_type="general-purpose", prompt=`
Read the conversation at {path}.
Filter to actual conversation content:
- Include: human messages, assistant text responses
- Exclude: tool calls, tool results, system messages, thinking blocks
Extract and return as JSON:
{
"distilled_actions": [
{
"summary": "Fixed auth bug in src/auth.ts where token refresh was racing",
"files": ["src/auth.ts"],
"outcome": "Added mutex lock around refresh"
}
],
"facts": [
{
"topic": "project-name",
"content": "Uses JWT tokens with 15min expiry"
},
{
"topic": "person-name",
"content": "Prefers explicit error handling over try/catch"
}
],
"decisions": [
"Chose Redis over in-memory cache for session storage because of multi-instance deployment"
]
}
Focus on:
- What was accomplished (not just discussed)
- Decisions made and their rationale
- New information about projects, people, or preferences
- File paths and specific technical details that should survive compression
Return ONLY the JSON, no explanation.
`)After all sub-agents complete:
**Write distilled actions to journal:**
For each action in all results:
log_journal(topic="distilled", content=action.summary + " Files: " + action.files.join(", "))**Write overall summary to journal:**
log_journal(topic="distill-summary", content="Processed N conversations. Extracted X actions, Y facts.")
**Update entity files with facts:**
{
"distilled_actions": [
{
"summary": "Added /distill skill to macrodata plugin",
"files": ["plugins/macrodata/skills/distill/SKILL.md"],
"outcome": "Skill extracts facts from conversations via sub-agents"
}
],
"facts": [
{
"topic": "macrodata",
"content": "Distillation separates narrative context from retained facts for better compression"
}
],
"decisions": [
"Coordinator updates state directly to prevent race conditions from parallel sub-agents"
]
}Give Claude Code and OpenCode persistent, self-maintaining memory and autonomous scheduling. This is experimental software. Use at your own risk.
Extract distilled actions and facts from today's conversations. Spawns sub-agents per conversation to avoid context blowup.
Deep nightly reflection. Self-improvement, research, pattern recognition. Runs in background with no user interaction.
End of day memory maintenance. Runs distillation, updates state files, prunes stale info. Runs in background with no user…
Guide new users through macrodata setup. Creates identity, human profile, and workspace files. Use when get_context returns…
Deep nightly reflection. Self-improvement, research, pattern recognition. Runs in background with no user interaction.
End of day memory maintenance. Runs distillation, updates state files, prunes stale info. Runs in background with no user…