macrodata-distill
Extract distilled actions and facts from today's conversations. Spawns sub-agents per conversation to avoid context blowup.
Guide new users through macrodata setup. Creates identity, human profile, and workspace files. Use when get_context returns isFirstRun true, or user asks to set up their profile.
$ npx -y skills add ascorbic/macrodata --skill macrodata-onboarding --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/macrodata-onboardingContext preview
The summary Claude sees to decide when to auto-load this skill.
Guide new users through macrodata setup. Creates identity, human profile, and workspace files. Use when get_context returns isFirstRun true, or user asks to set up their profile.
name: macrodata-onboarding description: Guide new users through macrodata setup. Creates identity, human profile, and workspace files. Use when get_context returns isFirstRun true, or user asks to set up their profile.
Guide new users through initial macrodata setup.
User info has been pre-detected and is available in the context above as "Detected User Info". This JSON contains:
Use this data throughout onboarding - no need to run detection scripts.
Offer location options. Always include:
Only include a code directory option if `codeDirs` from the detection was non-empty.
If they choose a non-default location, write the config to `~/.config/macrodata/config.json`:
{
"root": "/chosen/path"
}After writing the config, signal the daemon to reload:
kill -HUP $(cat ~/.config/macrodata/.daemon.pid) 2>/dev/null || true
Then create the directory structure:
Use the info from the detection script to pre-populate.
**Ask the basics:**
**Communication style:** If they consent, analyze their OpenCode session history (`~/.local/share/opencode/storage/`):
# Extract human messages from OpenCode session history
# Messages are stored in part/ directory, organized by message ID
# User messages have role: "user" in the parent message metadata
# Find recent user message parts
for msg_dir in $(ls -t ~/.local/share/opencode/storage/message/ 2>/dev/null | head -20); do
# Get message metadata
cat ~/.local/share/opencode/storage/message/$msg_dir/*.json 2>/dev/null | \
jq -r 'select(.role == "user") | .id' | while read msg_id; do
# Get the text parts for this message
cat ~/.local/share/opencode/storage/part/$msg_id/*.json 2>/dev/null | \
jq -r 'select(.type == "text" and .synthetic != true) | .text' 2>/dev/null
done
done | head -200Look for patterns:
**Current work context:** Analyze recent session history to understand what they're working on:
# Get recent project directories from OpenCode session storage
ls -t ~/.local/share/opencode/storage/session/ 2>/dev/null | head -10 | while read proj_dir; do
cat ~/.local/share/opencode/storage/session/$proj_dir/*.json 2>/dev/null | \
jq -r '.directory, .title' 2>/dev/null
done
# Sample recent conversations for context (last 7 days)
find ~/.local/share/opencode/storage/part -name "*.json" -mtime -7 -exec cat {} \; 2>/dev/null | \
jq -r 'select(.type == "text" and .synthetic != true) | .text' 2>/dev/null | \
head -100**Working patterns:**
Write findings to `state/human.md`:
# Human Profile ## Basics - **Name:** [name] - **GitHub:** [username] - **Website:** [url if provided] - **Socials:** [any provided] - **Timezone:** [detected] ## Communication Style - [observed patterns from analysis] - [stated preferences] ## Working Patterns - [current focus areas] - [preferences] ## Current Projects - [detected from recent sessions] ## Pending Items - [empty initially]
Help define who the agent should be:
**Name and persona:**
**Values and patterns:**
Write to `state/identity.md`:
# [Agent Name] Identity ## Persona [Description of who the agent is, its role, personality] ## Values - [core value 1] - [core value 2] ## Patterns - [behavioral pattern 1] - [behavioral pattern 2]
Set up working context:
1. Ask what they're currently working on 2. Create initial project files in `entities/projects/` 3. Write `state/today.md` with current context 4. Write `state/workspace.md` with active projects
# Today ## Now [Current context from conversation] ## Context [Background information]
# Workspace ## Active Projects - [project 1] - [brief description] ## Open Threads - [things in progress]
Ask if they'd like to pre-grant permissions for macrodata paths. This avoids permission prompts every session.
**Ask:** "Would you like me to update your OpenCode settings to pre-grant permissions for macrodata? This means you won't be prompted each time macrodata reads or writes to its memory folder."
If yes, update `~/.config/opencode/opencode.json` to add these permissions:
{
"permission": {
"external_directory": {
"<macrodata-root>/**": "allow"
}
}
}**Important:** Replace `<macrodata-root>` with their actual chosen root path (e.g., `~/Documents/macrodata`).
Merge with existing settings rather than overwriting. Read the file, add the new permissions to the existing `permission` object, and write back.
**First, check available i
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…
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…