Get the FREE Ultimate OpenClaw Setup Guide →
n

Reminder Research

Scanned

@nonlinear

npx machina-cli add skill @nonlinear/reminder-research --openclaw
Files (1)
SKILL.md
7.9 KB

Reminder Research

v3 Evolution: Custom instructions + auto-processing + result tracking

šŸ”§ Setup

Required:

  1. Install remindctl: brew install steipete/tap/remindctl
  2. Install jq: brew install jq
  3. Grant Reminders permission: remindctl authorize

Optional (for web research):

  1. Get Brave Search API key: https://brave.com/search/api/
  2. Configure: openclaw configure --section web
  3. Set BRAVE_API_KEY when prompted

Optional (for book research):

  • Install librarian skill (requires external project)

Cron scheduling (recommended):

# Add via OpenClaw cron tool
cron add --schedule "0 3 * * *" --payload "Run reminder-research skill..."

Or run manually:

~/Documents/skills/reminder-research/process-reminders.sh

graph TD
    A[HEARTBEAT trigger] -->|spawns| B[Isolated Session Sub-agent]
    B -->|runs| C[process-reminders.sh]
    
    C -->|queries| D[remindctl all --json]
    D -->|returns| E{Filter incomplete}
    
    E -->|has šŸ’Ž?| F[SKIP - already processed]
    E -->|no šŸ’Ž| G{Notes empty?}
    
    G -->|nothing to process| H[NO_REMINDERS_TO_PROCESS]
    H --> I[Exit 0 tokens]
    
    G -->|yes| J[Gen 2: List-based]
    G -->|no| K[Gen 3: Custom]
    
    J -->|claw list| L[CLAW_ITEM]
    J -->|Shopping| M[SHOPPING_ITEM]
    J -->|other| N[GENERIC_ITEM]
    
    K --> O[CUSTOM_ITEM]
    
    L -->|memory_search| P[System analysis]
    M -->|web_search| Q[Product research]
    N -->|web_search| R[Generic research]
    O -->|parse instructions| S[Multi-source: books+web+constraints]
    
    P --> T[Format: šŸ’Ž + analysis]
    Q --> T
    R --> T
    S --> T
    
    T -->|remindctl edit| U[Update notes]
    U --> V[Announce summary]
    V --> W[Session ends]

šŸŽÆ Three Generations

Gen 1 (Manual - deprecated)

Title: šŸ” Pesquise tarot no livro
Notes: (empty)
→ Manual emoji trigger

Gen 2 (Auto - current baseline)

Title: Stacker bag
Notes: (empty)
→ Auto-detect empty notes
→ List-based behavior (shopping/claw/generic)

Gen 3 (Custom - NEW)

Title: Bitcoin ETF regulation
Notes: "Procure no livro de David Graeber sobre anarchism + web search SEC rulings 2024"
→ Follow custom instructions
→ Output: "šŸ’Ž [resultado da pesquisa]"

šŸ”‘ Signifiers

šŸ’Ž = RESULT (already processed)

  • For Nicholas: "Read the report, it's done"
  • For Claw: "Skip this, already researched"

No šŸ’Ž = NEEDS PROCESSING

  • Empty notes → list-based default behavior
  • Notes with instructions → follow custom research path

šŸ“‹ Processing Logic

Detection

process-reminders.sh

Output types:

NO_REMINDERS_TO_PROCESS          # Nothing to do
CLAW_ITEM|<id>|<title>            # System improvement (empty notes)
SHOPPING_ITEM|<id>|<title>        # Product search (empty notes)
GENERIC_ITEM|<id>|<list>|<title>  # Generic research (empty notes)
CUSTOM_ITEM|<id>|<list>|<title>|<instructions>  # Custom instructions (Gen 3)

AI Processing

For CUSTOM_ITEM:

  1. Parse custom instructions from notes
  2. Execute multi-source research:
    • If mentions "livro/book" → use librarian skill
    • If mentions "web search" → use web_search
    • If mentions specific sources → prioritize those
  3. Combine findings
  4. Update notes: šŸ’Ž [research findings]

For CLAW_ITEM:

  1. Run memory_search for similar past issues
  2. Analyze pattern (frequency, context, impact)
  3. Propose solutions (tech/process/system)
  4. Update notes: šŸ’Ž [analysis + solutions]

For SHOPPING_ITEM:

  1. Web search: product + "buy" + "price"
  2. Priority sites: Temu, Shop.app, AliExpress (avoid Amazon)
  3. Extract: links, prices, ratings
  4. Update notes: šŸ’Ž [shopping findings]

For GENERIC_ITEM:

  1. Web search: title + context from list name
  2. Find: tutorials, how-to, documentation
  3. Summarize key findings
  4. Update notes: šŸ’Ž [research summary]

šŸ’Ž Result Format

Start with šŸ’Ž signifier:

šŸ’Ž RESEARCH RESULTS

**Sources:**
- Book: "Debt: The First 5000 Years" by David Graeber, Chapter 7
- Web: SEC ruling 2024-08 (Bitcoin ETF approval)

**Summary:**
[Key findings organized by source]

**Next steps:**
[Actionable recommendations if applicable]

šŸ“Š List-Based Behavior (Gen 2)

ListActionOutput Format
šŸ›’ GroceriesSKIP(no processing)
clawSystem analysisšŸ’Ž Pattern + solutions
ShoppingProduct searchšŸ’Ž Links + prices
OthersGeneric researchšŸ’Ž Summary + sources

šŸŽØ Custom Instructions (Gen 3)

Example prompts in notes:

Multi-source research:

Procure no livro de finance + web search "mortgage prepayment calculator"

Specific constraints:

Web search only (no books). Focus on 2024 data. Avoid crypto sites.

Librarian focus:

Pesquise nos livros de tarot + I Ching. Compare interpretations.

Shopping with constraints:

Where to buy. Budget under $50. Avoid Amazon.

šŸ”„ Heartbeat Integration

Triggered by HEARTBEAT (configurable schedule):

RESULT=$(process-reminders.sh)

if [ "$RESULT" = "NO_REMINDERS_TO_PROCESS" ]; then
  # Exit immediately - 0 tokens spent
  exit 0
fi

# Otherwise: Parse each item type, research, update notes

Lean behavior: If nothing needs processing → script exits, no AI session spawned, zero cost.

šŸ“ Update Reminder Notes

remindctl edit <id> --notes "šŸ’Ž [your research findings here]"

šŸŽÆ Use Cases

System debugging:

List: claw
Title: Messages disappear after reindexing
Notes: (empty)
→ Auto: Pattern analysis + 4 solution tiers
→ Result: "šŸ’Ž ANALYSIS: [pattern] SOLUTIONS: [1-4]"

Product research:

List: Shopping
Title: iPad mini 6, second hand
Notes: (empty)
→ Auto: Web search eBay/Swappa/Facebook Marketplace
→ Result: "šŸ’Ž FOUND: eBay $350, Swappa $380..."

Custom deep research:

List: TODO
Title: Bitcoin regulation impact
Notes: "Procure no livro 'Debt' by Graeber (debt history) + web search 'SEC Bitcoin ETF 2024 ruling'"
→ Custom: Librarian search + web search
→ Result: "šŸ’Ž RESEARCH RESULTS\n\nBook: Graeber argues...\n\nWeb: SEC approved..."

Follow-up instructions:

List: Creative Code
Title: Vertical slider library
Notes: "Find React examples on GitHub. Check if any use Framer Motion. Budget: MIT license only."
→ Custom: GitHub code search with constraints
→ Result: "šŸ’Ž FOUND: 3 MIT-licensed libs using Framer..."

🚫 What NOT to Process

  • āœ… Notes start with šŸ’Ž → already processed, skip
  • āœ… List = šŸ›’ Groceries → no research needed
  • āœ… Completed reminders → ignored

Architecture

For system design, data flow, and implementation details, see references/architecture.md.

Dependencies

  • remindctl (Apple Reminders CLI)
  • jq (JSON processing)
  • OpenClaw web_search tool
  • OpenClaw memory_search tool (for claw items)
  • Librarian skill (for book research)

Source

git clone https://clawhub.ai/nonlinear/reminder-researchView on GitHub

Overview

Reminder Research processes Apple Reminders using smart research rules. It supports custom instructions with book and web search constraints, and applies list-based defaults (claw, shopping, generic) while tracking outcomes with a šŸ’Ž signifier. Triggers include reminders with empty notes and heartbeat-driven automation.

How This Skill Works

A heartbeat trigger starts an isolated sub-agent that runs process-reminders.sh to fetch reminders via remindctl all --json. It filters for incomplete items; if a reminder has no šŸ’Ž yet, it routes to CLAW_ITEM, SHOPPING_ITEM, GENERIC_ITEM, or CUSTOM_ITEM based on notes. Outputs are formatted as šŸ’Ž + analysis, then notes are updated and a summary is announced.

When to Use It

  • You want price comparisons for a shopping reminder with empty notes (e.g., 'buy headphones').
  • You need book-based research triggered by a reminder with custom instructions.
  • A reminder requires web research under specific constraints (e.g., SEC rulings 2024).
  • You want generic how-to tutorials generated from a reminder topic.
  • A reminder has already been processed (šŸ’Ž) and should be skipped by the system.

Quick Start

  1. Step 1: Install remindctl and jq, then authorize Reminders with remindctl authorize.
  2. Step 2: (Optional) Configure Brave Search API key and openclaw if web research is needed.
  3. Step 3: Run the processor or schedule a cron job (e.g., cron add --schedule "0 3 * * *" --payload "Run reminder-research...").

Best Practices

  • Grant Reminders permission to the tool early and keep permission up to date.
  • Use empty notes to enable list-based defaults (claw, shopping, generic).
  • Provide clear custom instructions in notes for Gen 3 research paths.
  • Configure Brave Search API if web research is needed; fall back to built-in knowledge otherwise.
  • Schedule regular cron runs or rely on heartbeat processing to keep results fresh.

Example Use Cases

  • Shopping: reminder titled 'Headphones' triggers price comparison across retailers.
  • Book research: reminder asks to pull content from a specified book plus related sources.
  • Custom topic: reminder about 'Bitcoin ETF regulation' uses multi-source constraints (book + web).
  • Generic: reminder 'how to bake sourdough' returns step-by-step tutorials.
  • Processed item: reminder with šŸ’Ž returns a finalized summary and updates notes automatically.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers ↗