{
  "schemaVersion": "1.0",
  "item": {
    "slug": "intent-guardian",
    "name": "Intent Guardian",
    "source": "tencent",
    "type": "skill",
    "category": "其他",
    "sourceUrl": "https://clawhub.ai/HuilingP/intent-guardian",
    "canonicalUrl": "https://clawhub.ai/HuilingP/intent-guardian",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/intent-guardian",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=intent-guardian",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "_meta.json",
      "clawhub.json",
      "references/forgetting-detection.md",
      "references/heartbeat-integration.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/intent-guardian"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/intent-guardian",
    "agentPageUrl": "https://openagent3.xyz/skills/intent-guardian/agent",
    "manifestUrl": "https://openagent3.xyz/skills/intent-guardian/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/intent-guardian/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Intent Guardian",
        "body": "Never lose your train of thought again.\n\nIntent Guardian continuously monitors your desktop activity, builds a real-time understanding of what you're working on, and detects when you've been derailed by an interruption and forgotten your original task. When that happens, it nudges you back on track."
      },
      {
        "title": "The Problem",
        "body": "Knowledge workers are interrupted every 3 minutes on average. After an interruption, it takes ~23 minutes to return to the original task -- and often, you never return at all. Not because the task isn't important, but because you simply forgot.\n\nIntent Guardian solves this by maintaining a task stack -- a living model of what you're doing, what you were doing, and what got interrupted -- so you don't have to."
      },
      {
        "title": "When to Use",
        "body": "You are a multi-tasker who frequently context-switches between apps and tasks\nYou often finish replying to a message and think \"wait, what was I doing?\"\nYou want an AI companion that understands your work rhythm, not just your commands\nYou want to build long-term awareness of your own focus patterns"
      },
      {
        "title": "1. Real-Time Activity Sensing",
        "body": "Polls the active window title and application name to build a continuous activity stream.\n\nmacOS:\n\nbash command:\"scripts/sense_activity.sh\"\n\nWith ActivityWatch (richer data):\n\nbash command:\"scripts/sense_activitywatch.sh\"\n\nWith Screen Capture (optional, requires vision model):\n\nbash command:\"scripts/sense_screen.sh\""
      },
      {
        "title": "2. Task Stack Maintenance",
        "body": "The agent maintains a task stack in memory/skills/intent-guardian/task_stack.json:\n\n{\n  \"stack\": [\n    {\n      \"id\": \"task_001\",\n      \"intent\": \"Writing product requirements doc, section 3\",\n      \"app\": \"Google Docs\",\n      \"window_title\": \"Product Requirements v2 - Google Docs\",\n      \"started_at\": \"2026-02-26T14:28:00\",\n      \"status\": \"suspended\",\n      \"suspended_at\": \"2026-02-26T14:31:00\",\n      \"suspended_by\": \"Slack notification from Li Si\",\n      \"completion_estimate\": 0.6\n    },\n    {\n      \"id\": \"task_002\",\n      \"intent\": \"Replying to Li Si about the API bug\",\n      \"app\": \"Slack\",\n      \"window_title\": \"Slack - #engineering\",\n      \"started_at\": \"2026-02-26T14:31:00\",\n      \"status\": \"completed\",\n      \"completed_at\": \"2026-02-26T14:35:00\"\n    },\n    {\n      \"id\": \"task_003\",\n      \"intent\": \"Looking up React useEffect cleanup pattern\",\n      \"app\": \"Chrome\",\n      \"window_title\": \"Stack Overflow - React useEffect cleanup\",\n      \"started_at\": \"2026-02-26T14:35:00\",\n      \"status\": \"active\"\n    }\n  ],\n  \"current_focus\": \"task_003\",\n  \"forgotten_candidates\": [\"task_001\"]\n}"
      },
      {
        "title": "3. Interruption & Forgetting Detection",
        "body": "The agent analyzes the task stack to detect potential forgetting:\n\nSignals that suggest forgetting:\n\nA suspended task has not been resumed for longer than interruption_threshold_minutes\nThe user has moved through 2+ unrelated contexts since the suspension\nThe user shows \"wandering\" behavior: rapid app-switching without sustained focus\nThe suspended task had low completion estimate (was in the middle of something)\n\nSignals that suggest deliberate abandonment (do NOT remind):\n\nThe user explicitly closed the application associated with the task\nThe task was at a natural completion point (e.g., finished sending an email)\nThe user started a clearly intentional new deep-work session"
      },
      {
        "title": "4. Gentle Reminders",
        "body": "When forgetting is detected, the agent sends a non-intrusive reminder:\n\nSimple reminder:\n\n\"You were working on the product requirements doc (section 3) about 25 minutes ago, before the Slack interruption. Want to go back to it?\"\n\nSmart reminder (with context carried forward):\n\n\"You left the product requirements doc to look up the useEffect cleanup pattern for Li Si's bug. The answer is: return a cleanup function in useEffect. Ready to bring this back to the doc?\"\n\nThe second form is more powerful -- it doesn't just remind you what you forgot, it completes the reason you left, so you can return to your main task with the answer in hand."
      },
      {
        "title": "5. Long-Term Pattern Learning",
        "body": "Over time, the agent builds a focus profile in memory/skills/intent-guardian/focus_profile.json:\n\n{\n  \"user_id\": \"default\",\n  \"updated_at\": \"2026-02-26\",\n  \"patterns\": {\n    \"avg_focus_duration_minutes\": 12,\n    \"interruption_sources\": {\n      \"Slack\": { \"count\": 45, \"forget_rate\": 0.78 },\n      \"Mail\": { \"count\": 22, \"forget_rate\": 0.18 },\n      \"Chrome\": { \"count\": 31, \"forget_rate\": 0.42 }\n    },\n    \"peak_focus_hours\": [\"09:00-11:00\", \"14:00-16:00\"],\n    \"high_risk_transitions\": [\n      { \"from\": \"VSCode\", \"to\": \"Slack\", \"forget_rate\": 0.82 },\n      { \"from\": \"Google Docs\", \"to\": \"Chrome\", \"forget_rate\": 0.55 }\n    ],\n    \"reminder_effectiveness\": {\n      \"accepted\": 34,\n      \"dismissed\": 8,\n      \"ignored\": 5\n    }\n  }\n}\n\nThis profile is used to personalize detection thresholds and reminder timing."
      },
      {
        "title": "Architecture",
        "body": "Your Desktop\n      |\n      v\n [Sensing Layer]  ---- scripts/sense_activity.sh (window title, every N sec)\n      |                 scripts/sense_activitywatch.sh (ActivityWatch API)\n      |                 scripts/sense_screen.sh (optional screenshot + vision)\n      v\n [Activity Log]   ---- memory/skills/intent-guardian/activity_log.jsonl\n      |\n      v\n [Understanding]  ---- LLM analyzes activity stream on each Heartbeat:\n      |                 - Segments activities into logical tasks\n      |                 - Infers intent for each task\n      |                 - Detects interruptions and context switches\n      v\n [Task Stack]     ---- memory/skills/intent-guardian/task_stack.json\n      |\n      v\n [Detection]      ---- Compares stack state against forgetting heuristics\n      |                 Consults focus_profile.json for personalized thresholds\n      v\n [Reminder]       ---- Sends reminder via configured notification channel\n      |                 Logs user response for feedback loop\n      v\n [Learning]       ---- Updates focus_profile.json with new patterns"
      },
      {
        "title": "Heartbeat Integration",
        "body": "Add to your HEARTBEAT.md:\n\n## Intent Guardian Check\nEvery heartbeat, run the intent guardian cycle:\n1. Read latest activity from memory/skills/intent-guardian/activity_log.jsonl\n2. Update task_stack.json with new activities\n3. Check for forgotten tasks (suspended > threshold, not resumed)\n4. If forgotten task detected, send reminder\n5. Log any reminder responses to focus_profile.json"
      },
      {
        "title": "Cron Integration",
        "body": "Add a daily focus report:\n\nopenclaw cron add --name \"intent-guardian-daily\" --schedule \"0 18 * * *\" \\\n  --prompt \"Generate my daily focus report using intent-guardian data\""
      },
      {
        "title": "Minimal Setup (macOS, no dependencies)",
        "body": "Install the skill:\n\nnpx playbooks add skill openclaw/skills --skill intent-guardian\n\nThe skill uses native macOS commands (osascript) to get the active window.\nNo additional software required.\n\n\nAdd the Heartbeat integration above to your HEARTBEAT.md."
      },
      {
        "title": "Enhanced Setup (with ActivityWatch)",
        "body": "Install ActivityWatch for richer window-level tracking.\nSet activitywatch_enabled: true in skill config.\nActivityWatch provides detailed per-window timelines including URLs and document titles."
      },
      {
        "title": "Full Setup (with Screen Capture)",
        "body": "Set screen_capture_enabled: true and configure vision_model.\nRequires a vision-capable model (Claude, Gemini, Qwen3-VL).\nScreenshots are captured locally, analyzed locally or via API, and never stored permanently."
      },
      {
        "title": "Privacy & Security",
        "body": "All data stays local. Activity logs, task stacks, and focus profiles are stored as local files in your OpenClaw memory directory.\nNo raw screenshots are persisted. If screen capture is enabled, frames are analyzed and immediately discarded. Only the semantic summary is kept.\nExcluded apps are respected. Configure excluded_apps to prevent tracking specific applications.\nWorking hours enforced. Sensing only runs during configured working_hours_start to working_hours_end.\nYou own the data. All files are human-readable JSON/JSONL. Review, edit, or delete at any time."
      },
      {
        "title": "Configuration Reference",
        "body": "KeyTypeDefaultDescriptionpoll_interval_secondsint5How often to check the active windowinterruption_threshold_minutesint5Minutes before a suspended task is flagged as potentially forgottenreminder_cooldown_minutesint3Minimum time between reminders to avoid naggingmax_stack_depthint20Maximum tasks to track in the stackscreen_capture_enabledboolfalseEnable periodic screenshot analysisscreen_capture_interval_secondsint30Interval for screenshots (if enabled)vision_modelstring\"\"Model for screenshot analysis (e.g., \"gemini\", \"claude\")activitywatch_enabledbooltrueUse ActivityWatch for richer activity dataactivitywatch_urlstring\"http://localhost:5600\"ActivityWatch server URLnotification_channelstring\"system\"Where to send reminders (\"system\", \"telegram\", \"slack\", etc.)working_hours_startstring\"09:00\"Start of active tracking windowworking_hours_endstring\"18:00\"End of active tracking windowexcluded_appslist[\"Finder\", \"SystemPreferences\", \"loginwindow\"]Apps to ignore"
      },
      {
        "title": "Example Interactions",
        "body": "User: \"What was I doing before I got sidetracked?\"\nAgent reads task_stack.json, responds:\n\n\"Before the Slack interruption at 14:31, you were writing section 3 of the product requirements doc in Google Docs. You were about 60% through. Want to jump back?\"\n\nUser: \"Show me my task stack\"\nAgent responds with current stack visualization:\n\nTask Stack (3 items):\n[ACTIVE]     Looking up React useEffect cleanup (Chrome) - 17 min\n[COMPLETED]  Replying to Li Si about API bug (Slack) - 4 min\n[SUSPENDED]  Writing product requirements doc, section 3 (Google Docs) - 25 min ago  !!\n\nUser: \"How's my focus today?\"\nAgent reads activity log and focus profile:\n\n\"Today you've had 6 deep work sessions averaging 18 minutes each. You were interrupted 11 times, mostly by Slack (7 times). You forgot to return to your original task 4 times -- I caught 3 of those. Your peak focus was 09:30-10:45.\"\n\nProactive (via Heartbeat):\n\n\"Heads up -- you've been away from the quarterly report (Excel) for 40 minutes since that phone call. It's due tomorrow. Want to wrap up the current task and go back to it?\""
      },
      {
        "title": "Integration with Other Skills",
        "body": "Intent Guardian works well alongside these existing skills:\n\nSkillIntegrationpersonal-analyticsFeed focus_profile data into analytics for richer weekly reportsdaily-reviewInclude task completion stats and interruption counts in daily reviewsdeepwork-trackerAuto-start deepwork timer when sustained focus is detectedscreen-monitorUse screen_analyze for richer context when vision model is configuredrememberallConvert suspended tasks into time-based reminders as fallbackget-focus-modeSuppress reminders when macOS Focus mode is active"
      },
      {
        "title": "Roadmap",
        "body": "Cross-device sync (remind on phone about tasks left on laptop)\n Team mode (with consent: \"Zhang San is waiting for your review, 2 days now\")\n Proactive task delegation (\"I can draft that email reply while you focus on the doc\")\n Calendar-aware urgency (\"The quarterly report meeting is in 2 hours, and you're only 60% done\")\n Intent hierarchy (L1-L4 goal tracking, not just immediate tasks)"
      },
      {
        "title": "License",
        "body": "MIT"
      }
    ],
    "body": "Intent Guardian\n\nNever lose your train of thought again.\n\nIntent Guardian continuously monitors your desktop activity, builds a real-time understanding of what you're working on, and detects when you've been derailed by an interruption and forgotten your original task. When that happens, it nudges you back on track.\n\nThe Problem\n\nKnowledge workers are interrupted every 3 minutes on average. After an interruption, it takes ~23 minutes to return to the original task -- and often, you never return at all. Not because the task isn't important, but because you simply forgot.\n\nIntent Guardian solves this by maintaining a task stack -- a living model of what you're doing, what you were doing, and what got interrupted -- so you don't have to.\n\nWhen to Use\nYou are a multi-tasker who frequently context-switches between apps and tasks\nYou often finish replying to a message and think \"wait, what was I doing?\"\nYou want an AI companion that understands your work rhythm, not just your commands\nYou want to build long-term awareness of your own focus patterns\nCore Capabilities\n1. Real-Time Activity Sensing\n\nPolls the active window title and application name to build a continuous activity stream.\n\nmacOS:\n\nbash command:\"scripts/sense_activity.sh\"\n\n\nWith ActivityWatch (richer data):\n\nbash command:\"scripts/sense_activitywatch.sh\"\n\n\nWith Screen Capture (optional, requires vision model):\n\nbash command:\"scripts/sense_screen.sh\"\n\n2. Task Stack Maintenance\n\nThe agent maintains a task stack in memory/skills/intent-guardian/task_stack.json:\n\n{\n  \"stack\": [\n    {\n      \"id\": \"task_001\",\n      \"intent\": \"Writing product requirements doc, section 3\",\n      \"app\": \"Google Docs\",\n      \"window_title\": \"Product Requirements v2 - Google Docs\",\n      \"started_at\": \"2026-02-26T14:28:00\",\n      \"status\": \"suspended\",\n      \"suspended_at\": \"2026-02-26T14:31:00\",\n      \"suspended_by\": \"Slack notification from Li Si\",\n      \"completion_estimate\": 0.6\n    },\n    {\n      \"id\": \"task_002\",\n      \"intent\": \"Replying to Li Si about the API bug\",\n      \"app\": \"Slack\",\n      \"window_title\": \"Slack - #engineering\",\n      \"started_at\": \"2026-02-26T14:31:00\",\n      \"status\": \"completed\",\n      \"completed_at\": \"2026-02-26T14:35:00\"\n    },\n    {\n      \"id\": \"task_003\",\n      \"intent\": \"Looking up React useEffect cleanup pattern\",\n      \"app\": \"Chrome\",\n      \"window_title\": \"Stack Overflow - React useEffect cleanup\",\n      \"started_at\": \"2026-02-26T14:35:00\",\n      \"status\": \"active\"\n    }\n  ],\n  \"current_focus\": \"task_003\",\n  \"forgotten_candidates\": [\"task_001\"]\n}\n\n3. Interruption & Forgetting Detection\n\nThe agent analyzes the task stack to detect potential forgetting:\n\nSignals that suggest forgetting:\n\nA suspended task has not been resumed for longer than interruption_threshold_minutes\nThe user has moved through 2+ unrelated contexts since the suspension\nThe user shows \"wandering\" behavior: rapid app-switching without sustained focus\nThe suspended task had low completion estimate (was in the middle of something)\n\nSignals that suggest deliberate abandonment (do NOT remind):\n\nThe user explicitly closed the application associated with the task\nThe task was at a natural completion point (e.g., finished sending an email)\nThe user started a clearly intentional new deep-work session\n4. Gentle Reminders\n\nWhen forgetting is detected, the agent sends a non-intrusive reminder:\n\nSimple reminder:\n\n\"You were working on the product requirements doc (section 3) about 25 minutes ago, before the Slack interruption. Want to go back to it?\"\n\nSmart reminder (with context carried forward):\n\n\"You left the product requirements doc to look up the useEffect cleanup pattern for Li Si's bug. The answer is: return a cleanup function in useEffect. Ready to bring this back to the doc?\"\n\nThe second form is more powerful -- it doesn't just remind you what you forgot, it completes the reason you left, so you can return to your main task with the answer in hand.\n\n5. Long-Term Pattern Learning\n\nOver time, the agent builds a focus profile in memory/skills/intent-guardian/focus_profile.json:\n\n{\n  \"user_id\": \"default\",\n  \"updated_at\": \"2026-02-26\",\n  \"patterns\": {\n    \"avg_focus_duration_minutes\": 12,\n    \"interruption_sources\": {\n      \"Slack\": { \"count\": 45, \"forget_rate\": 0.78 },\n      \"Mail\": { \"count\": 22, \"forget_rate\": 0.18 },\n      \"Chrome\": { \"count\": 31, \"forget_rate\": 0.42 }\n    },\n    \"peak_focus_hours\": [\"09:00-11:00\", \"14:00-16:00\"],\n    \"high_risk_transitions\": [\n      { \"from\": \"VSCode\", \"to\": \"Slack\", \"forget_rate\": 0.82 },\n      { \"from\": \"Google Docs\", \"to\": \"Chrome\", \"forget_rate\": 0.55 }\n    ],\n    \"reminder_effectiveness\": {\n      \"accepted\": 34,\n      \"dismissed\": 8,\n      \"ignored\": 5\n    }\n  }\n}\n\n\nThis profile is used to personalize detection thresholds and reminder timing.\n\nArchitecture\n Your Desktop\n      |\n      v\n [Sensing Layer]  ---- scripts/sense_activity.sh (window title, every N sec)\n      |                 scripts/sense_activitywatch.sh (ActivityWatch API)\n      |                 scripts/sense_screen.sh (optional screenshot + vision)\n      v\n [Activity Log]   ---- memory/skills/intent-guardian/activity_log.jsonl\n      |\n      v\n [Understanding]  ---- LLM analyzes activity stream on each Heartbeat:\n      |                 - Segments activities into logical tasks\n      |                 - Infers intent for each task\n      |                 - Detects interruptions and context switches\n      v\n [Task Stack]     ---- memory/skills/intent-guardian/task_stack.json\n      |\n      v\n [Detection]      ---- Compares stack state against forgetting heuristics\n      |                 Consults focus_profile.json for personalized thresholds\n      v\n [Reminder]       ---- Sends reminder via configured notification channel\n      |                 Logs user response for feedback loop\n      v\n [Learning]       ---- Updates focus_profile.json with new patterns\n\nHeartbeat Integration\n\nAdd to your HEARTBEAT.md:\n\n## Intent Guardian Check\nEvery heartbeat, run the intent guardian cycle:\n1. Read latest activity from memory/skills/intent-guardian/activity_log.jsonl\n2. Update task_stack.json with new activities\n3. Check for forgotten tasks (suspended > threshold, not resumed)\n4. If forgotten task detected, send reminder\n5. Log any reminder responses to focus_profile.json\n\nCron Integration\n\nAdd a daily focus report:\n\nopenclaw cron add --name \"intent-guardian-daily\" --schedule \"0 18 * * *\" \\\n  --prompt \"Generate my daily focus report using intent-guardian data\"\n\nSetup\nMinimal Setup (macOS, no dependencies)\nInstall the skill:\nnpx playbooks add skill openclaw/skills --skill intent-guardian\n\n\nThe skill uses native macOS commands (osascript) to get the active window. No additional software required.\n\nAdd the Heartbeat integration above to your HEARTBEAT.md.\n\nEnhanced Setup (with ActivityWatch)\nInstall ActivityWatch for richer window-level tracking.\nSet activitywatch_enabled: true in skill config.\nActivityWatch provides detailed per-window timelines including URLs and document titles.\nFull Setup (with Screen Capture)\nSet screen_capture_enabled: true and configure vision_model.\nRequires a vision-capable model (Claude, Gemini, Qwen3-VL).\nScreenshots are captured locally, analyzed locally or via API, and never stored permanently.\nPrivacy & Security\nAll data stays local. Activity logs, task stacks, and focus profiles are stored as local files in your OpenClaw memory directory.\nNo raw screenshots are persisted. If screen capture is enabled, frames are analyzed and immediately discarded. Only the semantic summary is kept.\nExcluded apps are respected. Configure excluded_apps to prevent tracking specific applications.\nWorking hours enforced. Sensing only runs during configured working_hours_start to working_hours_end.\nYou own the data. All files are human-readable JSON/JSONL. Review, edit, or delete at any time.\nConfiguration Reference\nKey\tType\tDefault\tDescription\npoll_interval_seconds\tint\t5\tHow often to check the active window\ninterruption_threshold_minutes\tint\t5\tMinutes before a suspended task is flagged as potentially forgotten\nreminder_cooldown_minutes\tint\t3\tMinimum time between reminders to avoid nagging\nmax_stack_depth\tint\t20\tMaximum tasks to track in the stack\nscreen_capture_enabled\tbool\tfalse\tEnable periodic screenshot analysis\nscreen_capture_interval_seconds\tint\t30\tInterval for screenshots (if enabled)\nvision_model\tstring\t\"\"\tModel for screenshot analysis (e.g., \"gemini\", \"claude\")\nactivitywatch_enabled\tbool\ttrue\tUse ActivityWatch for richer activity data\nactivitywatch_url\tstring\t\"http://localhost:5600\"\tActivityWatch server URL\nnotification_channel\tstring\t\"system\"\tWhere to send reminders (\"system\", \"telegram\", \"slack\", etc.)\nworking_hours_start\tstring\t\"09:00\"\tStart of active tracking window\nworking_hours_end\tstring\t\"18:00\"\tEnd of active tracking window\nexcluded_apps\tlist\t[\"Finder\", \"SystemPreferences\", \"loginwindow\"]\tApps to ignore\nExample Interactions\n\nUser: \"What was I doing before I got sidetracked?\" Agent reads task_stack.json, responds:\n\n\"Before the Slack interruption at 14:31, you were writing section 3 of the product requirements doc in Google Docs. You were about 60% through. Want to jump back?\"\n\nUser: \"Show me my task stack\" Agent responds with current stack visualization:\n\nTask Stack (3 items):\n[ACTIVE]     Looking up React useEffect cleanup (Chrome) - 17 min\n[COMPLETED]  Replying to Li Si about API bug (Slack) - 4 min\n[SUSPENDED]  Writing product requirements doc, section 3 (Google Docs) - 25 min ago  !!\n\n\nUser: \"How's my focus today?\" Agent reads activity log and focus profile:\n\n\"Today you've had 6 deep work sessions averaging 18 minutes each. You were interrupted 11 times, mostly by Slack (7 times). You forgot to return to your original task 4 times -- I caught 3 of those. Your peak focus was 09:30-10:45.\"\n\nProactive (via Heartbeat):\n\n\"Heads up -- you've been away from the quarterly report (Excel) for 40 minutes since that phone call. It's due tomorrow. Want to wrap up the current task and go back to it?\"\n\nIntegration with Other Skills\n\nIntent Guardian works well alongside these existing skills:\n\nSkill\tIntegration\npersonal-analytics\tFeed focus_profile data into analytics for richer weekly reports\ndaily-review\tInclude task completion stats and interruption counts in daily reviews\ndeepwork-tracker\tAuto-start deepwork timer when sustained focus is detected\nscreen-monitor\tUse screen_analyze for richer context when vision model is configured\nrememberall\tConvert suspended tasks into time-based reminders as fallback\nget-focus-mode\tSuppress reminders when macOS Focus mode is active\nRoadmap\n Cross-device sync (remind on phone about tasks left on laptop)\n Team mode (with consent: \"Zhang San is waiting for your review, 2 days now\")\n Proactive task delegation (\"I can draft that email reply while you focus on the doc\")\n Calendar-aware urgency (\"The quarterly report meeting is in 2 hours, and you're only 60% done\")\n Intent hierarchy (L1-L4 goal tracking, not just immediate tasks)\nLicense\n\nMIT"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/HuilingP/intent-guardian",
    "publisherUrl": "https://clawhub.ai/HuilingP/intent-guardian",
    "owner": "HuilingP",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/intent-guardian",
    "downloadUrl": "https://openagent3.xyz/downloads/intent-guardian",
    "agentUrl": "https://openagent3.xyz/skills/intent-guardian/agent",
    "manifestUrl": "https://openagent3.xyz/skills/intent-guardian/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/intent-guardian/agent.md"
  }
}