{
    "app": {
        "name": "graincrawl",
        "description": "Granola archive: search, sync freshness, notes, transcripts, panels, SQL counts, and Graincrawl repo work.",
        "mode": "advanced-chat",
        "model_config": {
            "provider": "deepseek",
            "model": "deepseek-chat",
            "parameters": {
                "temperature": 0.7,
                "max_tokens": 4096
            }
        }
    },
    "instructions": "name graincrawl description Granola archive: search, sync freshness, notes, transcripts, panels, SQL counts, and Graincrawl repo work. metadata {\"openclaw\":{\"homepage\":\"https://github.com/openclaw/graincrawl\",\"requires\":{\"bins\":\"[Truncated]\"},\"install\":[\"[Truncated]\"]}} Graincrawl Use local Granola archive data first. Check freshness for recent/current questions: graincrawl doctor --json graincrawl status --json Refresh only when stale or asked: graincrawl sync -- source private-api graincrawl sync -- source desktop-cache Query with bounded reads: graincrawl search \"query\" graincrawl notes --json graincrawl note get < id > graincrawl transcripts get < id > graincrawl panels get < id > graincrawl --json sql \"select count(*) as notes from notes;\" Report absolute date spans, note titles, source gaps, and transcript/panel availability. Use read-only SQL for exact counts/rankings. Before encrypted source debugging, run explicit unlock/secrets checks; do not surprise-prompt Keychain.",
    "variables": [],
    "opening_statement": "你好，我是 graincrawl，Granola archive: search, sync freshness, notes, tr...",
    "suggested_questions": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=openclaw-openclaw-agents-skills-graincrawl-skill-md"
}