PhoenixClaw: Zero-Tag Passive Journaling
PhoenixClaw automatically distills daily conversations into meaningful reflections using semantic intelligence.
Automatically identifies journal-worthy moments, patterns, and growth opportunities.
🛠️ Core Workflow
[!critical] MANDATORY: Complete Workflow Execution This 9-step workflow MUST be executed in full regardless of invocation method:
- •Cron execution (10 PM nightly)
- •Manual invocation ("Show me my journal", "Generate today's journal", etc.)
- •Regeneration requests ("Regenerate my journal", "Update today's entry")
Never skip steps. Partial execution causes:
- •Missing images (session logs not scanned)
- •Missing finance data (Ledger plugin not triggered)
- •Incomplete journals (plugins not executed)
PhoenixClaw follows a structured pipeline to ensure consistency and depth:
- •
User Configuration: Check for
~/.phoenixclaw/config.yaml. If missing, initiate the onboarding flow defined inreferences/user-config.md. - •
Context Retrieval:
- •Call
memory_getfor the current day's memory - •CRITICAL: Scan ALL raw session logs and filter by message timestamp. Session files are often split across multiple files. Do NOT classify images by session file
mtime:Read all matching files regardless of their numeric naming (e.g., file_22, file_23 may be earlier in name but still contain today's messages).bash# Read candidate session files (all or recent), then filter each message by timestamp TODAY=$(date +%Y-%m-%d) find ~/.openclaw/sessions -name "*.jsonl" -print0 | xargs -0 jq -cr --arg day "$TODAY" ' select((.timestamp // "")[:10] == $day) ' - •EXTRACT IMAGES FROM SESSION LOGS: Session logs contain
type: "image"entries with file paths. You MUST:- •Find all image entries (e.g.,
"type":"image") - •Keep only entries where message
timestampis in the target date range - •Extract the
file_pathorurlfields - •Copy files into
assets/YYYY-MM-DD/ - •Rename with descriptive names when possible
- •Find all image entries (e.g.,
- •Why session logs are mandatory:
memory_getreturns text only. Image metadata, photo references, and media attachments are only available in session logs. Skipping session logs = missing all photos. - •Edge case - Midnight boundary: For late-night activity that spans midnight, expand the timestamp range to include spillover windows (for example, previous day 23:00-24:00) and still filter per-message by
timestamp. - •If memory is sparse, reconstruct context from session logs, then update daily memory
- •Incorporate historical context via
memory_search(skip if embeddings unavailable)
- •Call
- •
Moment Identification: Identify "journal-worthy" content: critical decisions, emotional shifts, milestones, or shared media. See
references/media-handling.mdfor photo processing. This step generates themomentsdata structure that plugins depend on. Image Processing (CRITICAL):- •For each extracted image, generate descriptive alt-text via Vision Analysis
- •Categorize images (food, selfie, screenshot, document, etc.)
- •Match images to moments (e.g., breakfast photo → breakfast moment)
- •Store image metadata with moments for journal embedding
- •
Pattern Recognition: Detect recurring themes, mood fluctuations, and energy levels. Map these to growth opportunities using
references/skill-recommendations.md. - •
Plugin Execution: Execute all registered plugins at their declared hook points. See
references/plugin-protocol.mdfor the complete plugin lifecycle:- •
pre-analysis→ before conversation analysis - •
post-moment-analysis→ Ledger and other primary plugins execute here - •
post-pattern-analysis→ after patterns detected - •
journal-generation→ plugins inject custom sections - •
post-journal→ after journal complete
- •
- •
Journal Generation: Synthesize the day's events into a beautiful Markdown file using
assets/daily-template.md. Follow the visual guidelines inreferences/visual-design.md. Include all plugin-generated sections at their declaredsection_orderpositions.- •Embed curated images only, not every image. Prioritize highlights and moments.
- •Route finance screenshots to Ledger sections (receipts, invoices, transaction proofs).
- •Use Obsidian format from
references/media-handling.mdwith descriptive captions.
- •
Timeline Integration: If significant events occurred, append them to the master index in
timeline.mdusing the format fromassets/timeline-template.mdandreferences/obsidian-format.md. - •
Growth Mapping: Update
growth-map.md(based onassets/growth-map-template.md) if new behavioral patterns or skill interests are detected. - •
Profile Evolution: Update the long-term user profile (
profile.md) to reflect the latest observations on values, goals, and personality traits. Seereferences/profile-evolution.mdandassets/profile-template.md.
⏰ Cron & Passive Operation
PhoenixClaw is designed to run without user intervention. It utilizes OpenClaw's built-in cron system to trigger its analysis daily at 10:00 PM local time (0 22 * * *).
- •Setup details can be found in
references/cron-setup.md. - •Mode: Primarily Passive. The AI proactively summarizes the day's activities without being asked.
💬 Explicit Triggers
While passive by design, users can interact with PhoenixClaw directly using these phrases:
- •"Show me my journal for today/yesterday."
- •"What did I accomplish today?"
- •"Analyze my mood patterns over the last week."
- •"Generate my weekly/monthly summary."
- •"How am I doing on my personal goals?"
- •"Regenerate my journal." / "重新生成日记"
[!warning] Manual Invocation = Full Pipeline When users request journal generation/regeneration, you MUST execute the complete 9-step Core Workflow above. This ensures:
- •Photos are included (via session log scanning)
- •Ledger plugin runs (via
post-moment-analysishook)- •All plugins execute (at their respective hook points)
Common mistakes to avoid:
- •❌ Only calling
memory_get(misses photos)- •❌ Skipping moment identification (plugins never trigger)
- •❌ Generating journal directly without plugin sections
📚 Documentation Reference
References (references/)
- •
user-config.md: Initial onboarding and persistence settings. - •
cron-setup.md: Technical configuration for nightly automation. - •
plugin-protocol.md: Plugin architecture, hook points, and integration protocol. - •
media-handling.md: Strategies for extracting meaning from photos and rich media. - •
visual-design.md: Layout principles for readability and aesthetics. - •
obsidian-format.md: Ensuring compatibility with Obsidian and other PKM tools. - •
profile-evolution.md: How the system maintains a long-term user identity. - •
skill-recommendations.md: Logic for suggesting new skills based on journal insights.
Assets (assets/)
- •
daily-template.md: The blueprint for daily journal entries. - •
weekly-template.md: The blueprint for high-level weekly summaries. - •
profile-template.md: Structure for theprofile.mdpersistent identity file. - •
timeline-template.md: Structure for thetimeline.mdchronological index. - •
growth-map-template.md: Structure for thegrowth-map.mdthematic index.