🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Proactive-Do

by @hyharry

Proactive todo execution, heartbeat-driven review, and structured follow-up for a markdown todo system. Use when the agent needs to review `todo/todo.md`, pi...

Versionv0.1.1
Downloads690
TERMINAL
clawhub install proactive-do

πŸ“– About This Skill


name: proactive-do description: >- Proactive todo execution, heartbeat-driven review, and structured follow-up for a markdown todo system. Use when the agent needs to review todo/todo.md, pick the top 3 [new] items, do tasks that look doable within about 1 hour, draft simple plans for tasks likely to take over 1 hour, update [new|wip|done] labels, maintain per-task journals under agent_work/, reconcile work after about 2.5 hours, and send concise start/finish reports by email instead of chat. Strong triggers include: heartbeat prompts, system events mentioning todo/todo.md, [new] / [wip] / [done], "proactive-do", "review todos", "pick top 3", "do it now if under 1 hour", "draft a plan", "reconcile statuses", and "agent_work" journals.

Proactive-Do

A lightweight workflow for proactive execution of a human's todo list with recurring reviews, clear state labels, structured documentation, and concise reporting.

Quick start

1) Source of truth

  • Todos live in todo/todo.md, grouped by date headings (e.g., "## YYYY-MM-DD").
  • Items are bullets with a state label: "- [new] ..., - [wip] ..., - [done] ...".
  • Only these three states are valid.
  • Strict preservation rule: never delete existing todo items from todo/todo.md automatically. You may append new items and revise existing items in place (for example, changing only the state label or updating the text of the same line), but you must not remove lines/items unless the owner/requester explicitly asks for deletion.
  • 2) Initialize phase (install-time only; do not run on every review)

  • Run these setup actions when the skill is first installed or first adopted in a workspace, not during each 3h review or 2.5h follow-up.
  • Ensure these paths exist; create them if missing:
  • - todo/ - todo/todo.md - agent_work/ - agent_work/heartbeat_emails/ - agent_work/proactive-do/
  • If todo/todo.md does not exist, create it with a minimal starter structure:
  • - a top-level heading or today's date section ("## YYYY-MM-DD")
  • If agent_work/proactive-do/delivery_prefs.md is referenced later but missing, do not fail; create the parent folder and continue with fallback behavior per notification policy.
  • Initialization must be non-destructive: create missing paths only, do not remove or overwrite existing content.
  • 3) Cadence (recommended)

    2) Cadence (recommended)

  • Every 3 hours: scan all [new] items and pick the top 3 to address this pass (leave the rest for later) to reduce load.
  • Every 2.5 hours: reconcile what was worked on; mark [done] if finished, else [wip] with a one-line reason + next action.
  • Use OpenClaw cron to schedule system events that trigger these reviews (see Cron payloads below).
  • 3) Decision policy

  • If a selected [new] item appears doable within ~1 hour: do it now during the 3h review.
  • If it likely needs >1 hour: write a simple, structured plan (steps + rough time estimate) and leave the item [new] until kickoff; when starting work, flip to [wip].
  • If assistance/approval is needed: halt, report to the owner/requester, and wait.
  • Search online when needed.
  • If blocked twice on the same point: stop, record the failure and next step, mark [wip], and report.
  • 4) Selection heuristics (for "top 3") Default ranking when not specified by the owner/requester: 1) Explicit priority hints in the text (e.g., "priority: high"), 2) Fit for ≀1 hour (quick wins first), 3) Recency/clarity of the item. When in doubt, take the first three [new] items in file order.

    5) Per-task journal (agent_work/)

  • When beginning work on an item: create a folder agent_work/YYYY-MM-DD_HHMM_nickname.
  • Inside, maintain a running log: start time, linked todo text, decisions, commands, files created, errors, attempts, results.
  • For harder tasks include a small plan with time estimate and critical steps.
  • Place any generated files/documents inside this folder.
  • 6) Reporting

  • Every report must name the todo/project it concerns.
  • For ≀1h tasks done now: include Result, Key steps, and any links to outputs.
  • For >1h tasks: include Plan (steps + estimate), Current status ([new|wip]), and where the journal folder lives.
  • Categorization policy

    When the owner/requester says "add a todo":
  • Assign exactly one primary category from: quick search | setup | prototype | try out | learn | write.
  • Add one generation tag: code | no-code.
  • Append to todo/todo.md (today's section) using:
  • - "- [new] β€” <short description> [category: <category>; gen: <code|no-code>]" <li style="color:#94a3b8;margin:3px 0">Update prioritization: quick search/setup tend to be picked more often; prototype/try out medium; learn/write lower for push.</li> <li style="color:#94a3b8;margin:3px 0">Persist this behavior in the local workspace policy/memory files when that is appropriate for the environment.</li></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Notification delivery (heartbeat)</h3> <li style="color:#94a3b8;margin:3px 0">Prefer email over chat for heartbeat notifications.</li> <li style="color:#94a3b8;margin:3px 0">Send email via gog CLI (Gmail / Google Workspace CLI) when it is available.</li> <li style="color:#94a3b8;margin:3px 0">Resolve sender, recipient, and fallback behavior from a local preference file when present:</li> - <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">agent_work/proactive-do/delivery_prefs.md</code> <li style="color:#94a3b8;margin:3px 0">If no preference file exists, ask once for delivery settings or use the current chat as a temporary fallback.</li> <li style="color:#94a3b8;margin:3px 0">Start email (at 3h review start):</li> - Subject: "[assistant] start doing on 3 todos + <abbr>" (abbr = short names of the 3 todos) - Body: full text of the 3 selected todos; concise (β‰ˆ2-minute read) <li style="color:#94a3b8;margin:3px 0">Follow-up email (at 2.5h reconciliation):</li> - Subject: "[assistant] finish 3 todos + <abbr>" (same abbr) - Body: brief summary of what was done, results, failures, and done/not-done per task (β‰ˆ2-minute read) <li style="color:#94a3b8;margin:3px 0">Archive a copy of each email under <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">agent_work/heartbeat_emails/</code>.</li> <li style="color:#94a3b8;margin:3px 0">Keep local preferences out of the published skill package unless they are intentionally shared.</li></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">3h Review β€” Execution flow</h3> 1) Parse todo/todo.md for the latest date section and list all items marked [new]. 2) Rank candidates using the selection heuristics and pick the top 3 for this pass. 3) For each of the top 3: - Estimate difficulty/time. If ≀1h: - Flip to [wip], create agent_work folder, execute. - On success, flip to [done] and report. - If blocked twice, keep [wip], record why + next action, and report. - If >1h: - Draft a short plan (steps + estimate), store it in agent_work folder template (can be pre-created without kickoff), and report. 4) Summarize what was done/planned, referencing the todo lines. 5) Notification: send the Start email using gog CLI per the template above.</p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">2.5h Follow-up β€” Reconciliation flow</h3> 1) Review items touched in the last 2.5h (from your journal and recent edits). 2) If finished: mark [done] and report the completion. 3) If not yet finished: ensure [wip] with a one-line reason and next action; update the journal accordingly; report. 4) Notification: send the Finish email using gog CLI per the template above.</p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Cron payloads (copy/paste)</h3> <li style="color:#94a3b8;margin:3px 0">3h review payload text:</li> "Heartbeat: review todo/todo.md for [new] items. Pick the top 3 to act on this pass. For each selected [new]: if ≀1h, do it now and report; if >1h, draft a simple plan with estimate and report. Maintain agent_work/ journals and include the todo/project name in every report. Deliver the start report by email per the proactive-do skill notification policy."</p><p style="margin:8px 0"><li style="color:#94a3b8;margin:3px 0">2.5h follow-up payload text:</li> "Follow-up heartbeat: review all work performed in the past 2.5h. For each task, if completed mark [done]; else mark [wip] with a one-line reason and next action. Report the changes and reference the related todo/project. Deliver the finish report by email per the proactive-do skill notification policy."</p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">File conventions</h3> <li style="color:#94a3b8;margin:3px 0">Todo file: todo/todo.md (single source of truth; preserve all existing items, do not delete automatically)</li> <li style="color:#94a3b8;margin:3px 0">States: [new], [wip], [done] (no other labels)</li> <li style="color:#94a3b8;margin:3px 0">Date sections: markdown H2 "## YYYY-MM-DD"</li> <li style="color:#94a3b8;margin:3px 0">Agent journals: agent_work/YYYY-MM-DD_HHMM_nickname/</li> - journal.md β€” running log (start time, intent, steps, errors, outputs) - plan.md β€” for >1h tasks (steps + estimate + critical steps) - outputs/ β€” any artifacts created</p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Heuristics for "≀1 hour"</h3> <li style="color:#94a3b8;margin:3px 0">Low external dependencies; small scope; familiar stack; no required approvals.</li> <li style="color:#94a3b8;margin:3px 0">Examples: formatting/rewording docs, light scripting/automation, small data tidying, basic research + short writeup.</li> <li style="color:#94a3b8;margin:3px 0">If uncertain, default to plan-first and request clarification.</li></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Safety / escalation</h3> <li style="color:#94a3b8;margin:3px 0">Halt and report for any action requiring explicit approval or external messaging on behalf of the owner/requester.</li> <li style="color:#94a3b8;margin:3px 0">Never loop indefinitely. Two failed attempts on the same blocker β†’ stop, label [wip], report.</li> <li style="color:#94a3b8;margin:3px 0">Always include the todo/project name and journal path in reports.</li></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Templates and helpers</h3> <li style="color:#94a3b8;margin:3px 0">See references/templates.md for copy/paste templates:</li> - agent_work journal.md - agent_work plan.md - Report blocks for "done" and "plan" updates</p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Notes</h3> <li style="color:#94a3b8;margin:3px 0">Keep SKILL.md lean; store verbose templates in references/.</li> <li style="color:#94a3b8;margin:3px 0">Prefer fewer larger edits to files (respect rate limits and avoid tight loops when writing externally).</li> </p></div></section><section class="skill-card" style="margin-bottom:20px"><h2 style="color:#f8fafc;font-size:1.2em;font-weight:800;margin:0 0 16px;display:flex;align-items:center;gap:8px">πŸ’‘ Examples</h2><div style="font-size:.92em;color:#94a3b8;line-height:1.75"><p style="margin:8px 0">1) Source of truth <li style="color:#94a3b8;margin:3px 0">Todos live in todo/todo.md, grouped by date headings (e.g., "## YYYY-MM-DD").</li> <li style="color:#94a3b8;margin:3px 0">Items are bullets with a state label: "- [new] ..., - [wip] ..., - [done] ...".</li> <li style="color:#94a3b8;margin:3px 0">Only these three states are valid.</li> <li style="color:#94a3b8;margin:3px 0">Strict preservation rule: never delete existing todo items from todo/todo.md automatically. You may append new items and revise existing items in place (for example, changing only the state label or updating the text of the same line), but you must not remove lines/items unless the owner/requester explicitly asks for deletion.</li></p><p style="margin:8px 0">2) Initialize phase (install-time only; do not run on every review) <li style="color:#94a3b8;margin:3px 0">Run these setup actions when the skill is first installed or first adopted in a workspace, not during each 3h review or 2.5h follow-up.</li> <li style="color:#94a3b8;margin:3px 0">Ensure these paths exist; create them if missing:</li> - todo/ - todo/todo.md - agent_work/ - agent_work/heartbeat_emails/ - agent_work/proactive-do/ <li style="color:#94a3b8;margin:3px 0">If todo/todo.md does not exist, create it with a minimal starter structure:</li> - a top-level heading or today's date section ("## YYYY-MM-DD") <li style="color:#94a3b8;margin:3px 0">If agent_work/proactive-do/delivery_prefs.md is referenced later but missing, do not fail; create the parent folder and continue with fallback behavior per notification policy.</li> <li style="color:#94a3b8;margin:3px 0">Initialization must be non-destructive: create missing paths only, do not remove or overwrite existing content.</li></p><p style="margin:8px 0">3) Cadence (recommended)</p><p style="margin:8px 0">2) Cadence (recommended) <li style="color:#94a3b8;margin:3px 0">Every 3 hours: scan all [new] items and pick the top 3 to address this pass (leave the rest for later) to reduce load.</li> <li style="color:#94a3b8;margin:3px 0">Every 2.5 hours: reconcile what was worked on; mark [done] if finished, else [wip] with a one-line reason + next action.</li> <li style="color:#94a3b8;margin:3px 0">Use OpenClaw cron to schedule system events that trigger these reviews (see Cron payloads below).</li></p><p style="margin:8px 0">3) Decision policy <li style="color:#94a3b8;margin:3px 0">If a selected [new] item appears doable within ~1 hour: do it now during the 3h review.</li> <li style="color:#94a3b8;margin:3px 0">If it likely needs >1 hour: write a simple, structured plan (steps + rough time estimate) and leave the item [new] until kickoff; when starting work, flip to [wip].</li> <li style="color:#94a3b8;margin:3px 0">If assistance/approval is needed: halt, report to the owner/requester, and wait.</li> <li style="color:#94a3b8;margin:3px 0">Search online when needed.</li> <li style="color:#94a3b8;margin:3px 0">If blocked twice on the same point: stop, record the failure and next step, mark [wip], and report.</li></p><p style="margin:8px 0">4) Selection heuristics (for "top 3") Default ranking when not specified by the owner/requester: 1) Explicit priority hints in the text (e.g., "priority: high"), 2) Fit for ≀1 hour (quick wins first), 3) Recency/clarity of the item. When in doubt, take the first three [new] items in file order.</p><p style="margin:8px 0">5) Per-task journal (agent_work/) <li style="color:#94a3b8;margin:3px 0">When beginning work on an item: create a folder agent_work/YYYY-MM-DD_HHMM_nickname.</li> <li style="color:#94a3b8;margin:3px 0">Inside, maintain a running log: start time, linked todo text, decisions, commands, files created, errors, attempts, results.</li> <li style="color:#94a3b8;margin:3px 0">For harder tasks include a small plan with time estimate and critical steps.</li> <li style="color:#94a3b8;margin:3px 0">Place any generated files/documents inside this folder.</li></p><p style="margin:8px 0">6) Reporting <li style="color:#94a3b8;margin:3px 0">Every report must name the todo/project it concerns.</li> <li style="color:#94a3b8;margin:3px 0">For ≀1h tasks done now: include Result, Key steps, and any links to outputs.</li> <li style="color:#94a3b8;margin:3px 0">For >1h tasks: include Plan (steps + estimate), Current status ([new|wip]), and where the journal folder lives.</li></p></div></section><section class="skill-card" style="margin-bottom:20px"><h2 style="color:#f8fafc;font-size:1.2em;font-weight:800;margin:0 0 16px;display:flex;align-items:center;gap:8px">πŸ“‹ Tips & Best Practices</h2><div style="font-size:.92em;color:#94a3b8;line-height:1.75"><p style="margin:8px 0"><li style="color:#94a3b8;margin:3px 0">Keep SKILL.md lean; store verbose templates in references/.</li> <li style="color:#94a3b8;margin:3px 0">Prefer fewer larger edits to files (respect rate limits and avoid tight loops when writing externally).</li></p></div></section></div><div class="two-col-side"></div></div></div><script> document.querySelectorAll('.copy-btn, .script-copy-btn').forEach(btn => { btn.addEventListener('click', () => { const cmd = btn.getAttribute('data-cmd'); if (!cmd) return; navigator.clipboard.writeText(cmd).then(() => { const orig = btn.textContent; btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = orig, 1500); }).catch(() => {}); }); }); </script><!--$--><!--/$--></main><footer style="background:var(--bg-primary);border-top:1px solid var(--border-secondary);margin-top:60px"><div style="border-top:1px solid var(--border-light);max-width:1200px;margin:0 auto;padding:24px 20px"><div style="display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:24px"><div><div style="font-weight:700;color:var(--text-muted);margin-bottom:8px">BytesAgain</div><div style="color:var(--text-muted3);font-size:.82em;max-width:200px">Discover the best AI agent skills for your workflow.</div></div><div><div style="color:var(--text-muted);font-size:.75em;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px">Explore</div><div style="margin-bottom:6px"><a href="/skills" style="color:var(--text-muted2);text-decoration:none;font-size:.85em">Skills</a></div><div style="margin-bottom:6px"><a href="/articles" style="color:var(--text-muted2);text-decoration:none;font-size:.85em">Articles</a></div><div style="margin-bottom:6px"><a href="/use-case" style="color:var(--text-muted2);text-decoration:none;font-size:.85em">Cases</a></div></div><div><div style="color:var(--text-muted);font-size:.75em;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px">Company</div><div style="margin-bottom:6px"><a href="/about" style="color:var(--text-muted2);text-decoration:none;font-size:.85em">About</a></div><div style="margin-bottom:6px"><a href="/contact" style="color:var(--text-muted2);text-decoration:none;font-size:.85em">Contact</a></div><div style="margin-bottom:6px"><a href="/privacy-policy" style="color:var(--text-muted2);text-decoration:none;font-size:.85em">Privacy Policy</a></div><div style="margin-bottom:6px"><a href="/terms" style="color:var(--text-muted2);text-decoration:none;font-size:.85em">Terms</a></div><div style="margin-bottom:6px"><a href="/feedback" style="color:var(--text-muted2);text-decoration:none;font-size:.85em">Feedback</a></div></div></div><div style="border-top:1px solid var(--border-light);padding-top:16px"><div style="color:var(--text-muted4);font-size:.8em;margin-bottom:8px">Β© <!-- -->2026<!-- --> BytesAgain. All rights reserved.</div><div style="color:var(--text-muted5);font-size:.75em;line-height:1.6;max-width:720px">BytesAgain is an independent skill directory. We index and link to third-party content (ClawHub, GitHub, LobeHub, Dify, etc.) for informational purposes only. All trademarks, skill names, and content are the property of their respective owners. BytesAgain does not claim ownership of any indexed content.</div></div></div></footer><button style="position:fixed;bottom:28px;right:28px;z-index:1000;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,#667eea,#00d4ff);color:#fff;font-size:1.3em;box-shadow:0 4px 20px #667eea66;display:flex;align-items:center;justify-content:center;transition:transform .2s">πŸ’¬</button><script src="/_next/static/chunks/0ze4gu236oq96.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[62894,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"LangProvider\"]\n3:I[89220,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"ThemeProvider\"]\n4:I[16988,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"default\"]\ne:I[68027,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"default\",1]\n:HL[\"/_next/static/chunks/051nc0vy_6.rl.css?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"style\"]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:Td5e,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"BytesAgain\",\"url\":\"https://bytesagain.com\",\"description\":\"Search 60,000+ verified AI agent skills via MCP API or REST. Supports 7 languages. Free, no auth required.\",\"inLanguage\":[\"en\",\"zh\",\"es\",\"fr\",\"de\",\"ja\",\"ko\"],\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https://bytesagain.com/skills?q={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}},{\"@context\":\"https://schema.org\",\"@type\":\"Organization\",\"name\":\"BytesAgain\",\"url\":\"https://bytesagain.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://bytesagain.com/og-image.png\"},\"description\":\"AI agent skill directory. Search 60,000+ skills, 1,000+ use cases, and community requests.\",\"foundingDate\":\"2026\",\"foundingLocation\":{\"@type\":\"Place\",\"name\":\"Global\"},\"sameAs\":[\"https://x.com/bytesagain\",\"https://github.com/bytesagain/ai-skills\",\"https://clawhub.ai/profile/bytesagain\"],\"contactPoint\":{\"@type\":\"ContactPoint\",\"email\":\"hello@bytesagain.com\",\"contactType\":\"customer support\"},\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"value\":1}},{\"@context\":\"https://schema.org\",\"@type\":\"WebApplication\",\"name\":\"BytesAgain AI Skills Search\",\"url\":\"https://bytesagain.com\",\"applicationCategory\":\"DeveloperApplication\",\"operatingSystem\":\"Web\",\"description\":\"Search engine and MCP API for 60,000+ AI agent skills. Semantic search, role recommendations, and use case packs.\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"featureList\":[\"Search 60,000+ AI agent skills\",\"Role-based recommendations for developers, creators, and traders\",\"1,000+ curated use case packs\",\"Free MCP API and REST API\",\"Multi-language search (EN, ZH, ES, FR, DE, JA, KO)\"],\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":\"https://bytesagain.com/skills?q={search_term_string}\",\"query-input\":\"required name=search_term_string\"},\"dateModified\":\"2026-07-22\"},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"BytesAgain is a curated directory of 60,000+ AI agent skills from ClawHub, GitHub, LobeHub, and Dify. Search skills by keyword in 7 languages, browse by role (developer, creator, trader, marketer) or by use case.\"}},{\"@type\":\"Question\",\"name\":\"How do I find AI skills on BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use the search bar on BytesAgain.com to search by keyword in 7 languages. You can also browse by role (developer, creator, trader, marketer) or by use case. Each skill shows install instructions for Claude, Cursor, OpenClaw, Continue, and more.\"}},{\"@type\":\"Question\",\"name\":\"Is BytesAgain free?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, BytesAgain is completely free. No registration required for searching skills. The MCP API is also free with rate limits.\"}},{\"@type\":\"Question\",\"name\":\"Does BytesAgain have an API for AI agents?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes! BytesAgain provides a free MCP SSE endpoint at /api/mcp/sse for AI agents, plus a REST API at /api/mcp?action=search\u0026q=\u003cquery\u003e. No authentication needed.\"}},{\"@type\":\"Question\",\"name\":\"Can I request a new AI skill on BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes! Visit the Requests page on BytesAgain.com to submit a skill request. Your request will be visible to the community and notified to the site admin.\"}}]}]"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"skill\",\"proactive-do\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"skill\",{\"children\":[[\"slug\",\"proactive-do\",\"d\",null],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/051nc0vy_6.rl.css?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"llms\",\"href\":\"/llms.txt\"}],[\"$\",\"link\",null,{\"rel\":\"llms-full\",\"href\":\"/llms-full.txt\"}],[\"$\",\"script\",null,{\"async\":true,\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-3C1MM9FWYF\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-3C1MM9FWYF');\\n \"}}]]}],[\"$\",\"body\",null,{\"className\":\"geist_9e050971-module__05dp7a__className\",\"style\":{\"margin\":0},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[[\"$\",\"div\",null,{\"style\":{\"width\":\"100%\",\"background\":\"var(--bg-subscribe)\",\"borderBottom\":\"1px solid var(--border-primary)\",\"padding\":\"8px 20px\",\"textAlign\":\"center\",\"fontSize\":\".82em\",\"color\":\"#818cf8\"},\"children\":[\"🎁 \",[\"$\",\"strong\",null,{\"style\":{\"color\":\"var(--text-primary)\"},\"children\":\"Get the FREE AI Skills Starter Guide\"}],\" β€” \",[\"$\",\"a\",null,{\"href\":\"/register\",\"style\":{\"color\":\"#00d4ff\",\"textDecoration\":\"underline\"},\"children\":\"Subscribe β†’\"}]]}],[\"$\",\"$L4\",null,{}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5\"}}],\"$L6\",\"$L7\",\"$L8\"]}]}]}]]}]]}],{\"children\":[\"$L9\",{\"children\":[\"$La\",{\"children\":[\"$Lb\",{},null,false,null]},null,false,\"$@c\"]},null,false,\"$@c\"]},null,false,null],\"$Ld\",false]],\"m\":\"$undefined\",\"G\":[\"$e\",[\"$Lf\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:I[39756,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"default\"]\n11:I[37457,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"default\"]\n12:I[22016,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0ka051yepewro.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"\"]\n13:I[90940,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"default\"]\n14:I[16397,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"default\"]\n16:I[97367,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"OutletBoundary\"]\n17:\"$Sreact.suspense\"\n1a:I[97367,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"ViewportBoundary\"]\n1c:I[97367,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"MetadataBoundary\"]\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"main\",null,{\"children\":[\"$\",\"$L10\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"main\",null,{\"style\":{\"minHeight\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"background\":\"#050611\",\"color\":\"#e5e7eb\"},\"children\":[[\"$\",\"style\",null,{\"children\":\"\\n .nf-box { text-align: center; padding: 60px 32px; }\\n .nf-code { font-size: 6rem; font-weight: 900; color: #22d3ee; line-height: 1; margin: 0; }\\n .nf-title { font-size: 1.8rem; font-weight: 800; margin: 12px 0 8px; }\\n .nf-desc { color: var(--text-muted2); font-size: 1rem; margin-bottom: 32px; max-width: 440px; }\\n .nf-link { display: inline-block; padding: 12px 28px; background: linear-gradient(135deg,#34d399,#22d3ee); color: #000; font-weight: 900; border-radius: 12px; text-decoration: none; }\\n \"}],[\"$\",\"div\",null,{\"className\":\"nf-box\",\"children\":[[\"$\",\"p\",null,{\"className\":\"nf-code\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"nf-title\",\"children\":\"Page Not Found\"}],[\"$\",\"p\",null,{\"className\":\"nf-desc\",\"children\":\"The skill or page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"$L12\",null,{\"className\":\"nf-link\",\"href\":\"/\",\"children\":\"Back to BytesAgain\"}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"$L13\",null,{}]\n8:[\"$\",\"$L14\",null,{}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L10\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\na:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L10\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nb:[\"$\",\"$1\",\"c\",{\"children\":[\"$L15\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/12w5ognupk9fb.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L16\",null,{\"children\":[\"$\",\"$17\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@18\"}]}]]}]\n19:[]\nc:\"$W19\"\nd:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1a\",null,{\"children\":\"$L1b\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1c\",null,{\"children\":[\"$\",\"$17\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1d\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\nf:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/051nc0vy_6.rl.css?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"1b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"1e:I[27201,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"IconMark\"]\n18:null\n"])</script><script>self.__next_f.push([1,"1d:[[\"$\",\"title\",\"0\",{\"children\":\"Proactive-Do β€” AI Agent Skill | BytesAgain | BytesAgain\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Proactive todo execution, heartbeat-driven review, and structured follow-up for a markdown todo system. Use when the agent needs to review `todo/todo.md`, pi...\"}],[\"$\",\"meta\",\"2\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"3\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"llms-txt\",\"content\":\"https://bytesagain.com/llms.txt\"}],[\"$\",\"meta\",\"5\",{\"name\":\"llms-full-txt\",\"content\":\"https://bytesagain.com/llms-full.txt\"}],[\"$\",\"link\",\"6\",{\"rel\":\"canonical\",\"href\":\"https://bytesagain.com/skill/proactive-do\"}],[\"$\",\"meta\",\"7\",{\"name\":\"baidu-site-verification\",\"content\":\"codeva-0evUqX1TFs\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"Proactive-Do β€” AI Agent Skill | BytesAgain\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"Proactive todo execution, heartbeat-driven review, and structured follow-up for a markdown todo system. Use when the agent needs to review `todo/todo.md`, pi...\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:url\",\"content\":\"https://bytesagain.com/skill/proactive-do\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:site_name\",\"content\":\"BytesAgain\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image\",\"content\":\"https://bytesagain.com/social-preview.png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:title\",\"content\":\"Proactive-Do β€” AI Agent Skill | BytesAgain\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:description\",\"content\":\"Proactive todo execution, heartbeat-driven review, and structured follow-up for a markdown todo system. Use when the agent needs to review `todo/todo.md`, pi...\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image\",\"content\":\"https://bytesagain.com/social-preview.png\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L1e\",\"23\",{}]]\n"])</script><script>self.__next_f.push([1,"1f:T1562,"])</script><script>self.__next_f.push([1,"\n .skill-page { max-width: 1100px; margin: 0 auto; padding: 32px 20px 80px; }\n .two-col { display: flex; gap: 32px; align-items: flex-start; }\n .two-col-main { flex: 1; min-width: 0; }\n .two-col-side { width: 300px; flex-shrink: 0; }\n @media (max-width: 860px) {\n .two-col { flex-direction: column; }\n .two-col-side { width: 100%; }\n }\n .breadcrumb { font-size: .82em; color: var(--text-muted2); margin-bottom: 28px; }\n .breadcrumb a { color: #818cf8; text-decoration: none; }\n .breadcrumb a:hover { text-decoration: underline; }\n .skill-card { background: var(--bg-card); border: 1px solid var(--border-card); border-radius: 20px; padding: 28px; margin-bottom: 24px; }\n .skill-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }\n .skill-badges { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n .skill-top-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }\n .badge { display: inline-flex; align-items: center; gap: 5px; font-size: .75em; font-weight: 600; padding: 4px 12px; border-radius: 999px; border: 1px solid transparent; }\n .skill-title { font-size: 1.6em; font-weight: 800; color: var(--text-primary); margin: 0 0 4px; line-height: 1.2; }\n .skill-owner { font-size: .82em; color: var(--text-muted2); margin: 0 0 14px; }\n .skill-owner span { color: #818cf8; }\n .skill-desc { font-size: .92em; color: var(--text-secondary); line-height: 1.65; margin: 0 0 16px; }\n .skill-meta { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--border-card); }\n .meta-item { display: flex; flex-direction: column; gap: 2px; }\n .meta-label { font-size: .7em; color: var(--text-muted5); text-transform: uppercase; letter-spacing: 1px; font-weight: 600; }\n .meta-value { font-size: .92em; color: var(--text-muted2); font-weight: 600; }\n .tags-row { display: flex; gap: 6px; flex-wrap: wrap; }\n .tag { font-size: .75em; color: #6366f1; background: #6366f115; border: 1px solid #6366f130; border-radius: 6px; padding: 3px 10px; text-decoration: none; }\n .tag:hover { background: #6366f125; }\n .install-box { background: var(--bg-deep); border: 1px solid var(--border-card); border-radius: 12px; overflow: hidden; margin-bottom: 24px; }\n .install-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; border-bottom: 1px solid var(--border-card); }\n .install-dots { display: flex; gap: 6px; }\n .dot { width: 10px; height: 10px; border-radius: 50%; }\n .install-label { font-size: .72em; color: var(--text-muted5); font-family: monospace; letter-spacing: 1px; }\n .install-body { padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }\n .install-cmd { color: var(--text-code);\n font-family: 'Courier New', monospace; font-size: 1em; }\n .copy-btn { font-size: .75em; color: #6366f1; background: #6366f115; border: 1px solid #6366f130; border-radius: 6px; padding: 5px 12px; cursor: pointer; white-space: nowrap; transition: all .15s; }\n .copy-btn:hover { background: #6366f125; }\n .btn-secondary { display: inline-flex; align-items: center; gap: 8px; padding: 13px 24px; background: transparent; border: 1px solid var(--border-card); border-radius: 10px; color: #6b7280; text-decoration: none; font-weight: 600; font-size: .95em; transition: all .15s; }\n .btn-secondary:hover { border-color: #818cf8; color: #818cf8; }\n .ours-badge { display: inline-flex; align-items: center; gap: 6px; font-size: .72em; font-weight: 700; color: #22d3ee; background: #22d3ee10; border: 1px solid #22d3ee30; border-radius: 999px; padding: 4px 14px; }\n .section-card { background: var(--bg-card); border: 1px solid var(--border-card); border-radius: 16px; padding: 22px 24px; margin-bottom: 20px; }\n .section-title { color: var(--text-primary); font-size: 1.08em; font-weight: 800; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }\n /* Script box */\n .script-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 14px; background: var(--bg-input); border-bottom: 1px solid var(--border-card); }\n .script-filename { font-size: .72em; color: var(--text-muted2); font-family: 'Courier New', monospace; }\n .script-copy-btn { font-size: .72em; color: #6366f1; background: none; border: 1px solid #6366f130; border-radius: 4px; padding: 2px 10px; cursor: pointer; }\n .script-copy-btn:hover { background: #6366f115; }\n .script-body { padding: 14px 16px; font-family: 'Courier New', monospace; font-size: .82em; line-height: 1.6; color: var(--text-code); overflow-x: auto; max-height: 420px; overflow-y: auto; white-space: pre; }\n /* Articles */\n .article-card { display: block; background: var(--bg-secondary); border: 1px solid var(--border-primary); border-radius: 10px; padding: 14px 16px; text-decoration: none; transition: border-color .15s; }\n .article-card:hover { border-color: #6366f1; }\n @media (max-width: 600px) {\n .skill-card { padding: 20px; }\n .skill-title { font-size: 1.5em; }\n }\n "])</script><script>self.__next_f.push([1,"15:[[\"$\",\"style\",null,{\"children\":\"$1f\"}],\"$L20\",\"$L21\"]\n"])</script><script>self.__next_f.push([1,"22:I[78297,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/12w5ognupk9fb.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"default\"]\n23:T35b6,"])</script><script>self.__next_f.push([1,"\u003cp style=\"margin:8px 0\"\u003e\u003chr style=\"border:none;border-top:1px solid #1e1e3f;margin:12px 0\"\u003e\nname: proactive-do\ndescription: \u003e-\n Proactive todo execution, heartbeat-driven review, and structured follow-up for a\n markdown todo system. Use when the agent needs to review \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003etodo/todo.md\u003c/code\u003e, pick the\n top 3 \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e[new]\u003c/code\u003e items, do tasks that look doable within about 1 hour, draft simple\n plans for tasks likely to take over 1 hour, update \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e[new|wip|done]\u003c/code\u003e labels,\n maintain per-task journals under \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eagent_work/\u003c/code\u003e, reconcile work after about 2.5\n hours, and send concise start/finish reports by email instead of chat. Strong\n triggers include: heartbeat prompts, system events mentioning \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003etodo/todo.md\u003c/code\u003e,\n \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e[new]\u003c/code\u003e / \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e[wip]\u003c/code\u003e / \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e[done]\u003c/code\u003e, \"proactive-do\", \"review todos\", \"pick top 3\",\n \"do it now if under 1 hour\", \"draft a plan\", \"reconcile statuses\", and\n \"agent_work\" journals.\n\u003chr style=\"border:none;border-top:1px solid #1e1e3f;margin:12px 0\"\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch2 style=\"color:#f3f4f6;margin:20px 0 10px;font-size:1.15em\"\u003eProactive-Do\u003c/h2\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eA lightweight workflow for proactive execution of a human's todo list with recurring reviews, clear state labels, structured documentation, and concise reporting.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eQuick start\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e1) Source of truth\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eTodos live in todo/todo.md, grouped by date headings (e.g., \"## YYYY-MM-DD\").\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eItems are bullets with a state label: \"- [new] ..., - [wip] ..., - [done] ...\".\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eOnly these three states are valid.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eStrict preservation rule: never delete existing todo items from todo/todo.md automatically. You may append new items and revise existing items in place (for example, changing only the state label or updating the text of the same line), but you must not remove lines/items unless the owner/requester explicitly asks for deletion.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e2) Initialize phase (install-time only; do not run on every review)\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eRun these setup actions when the skill is first installed or first adopted in a workspace, not during each 3h review or 2.5h follow-up.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eEnsure these paths exist; create them if missing:\u003c/li\u003e\n - todo/\n - todo/todo.md\n - agent_work/\n - agent_work/heartbeat_emails/\n - agent_work/proactive-do/\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf todo/todo.md does not exist, create it with a minimal starter structure:\u003c/li\u003e\n - a top-level heading or today's date section (\"## YYYY-MM-DD\")\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf agent_work/proactive-do/delivery_prefs.md is referenced later but missing, do not fail; create the parent folder and continue with fallback behavior per notification policy.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eInitialization must be non-destructive: create missing paths only, do not remove or overwrite existing content.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e3) Cadence (recommended)\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e2) Cadence (recommended)\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eEvery 3 hours: scan all [new] items and pick the top 3 to address this pass (leave the rest for later) to reduce load.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eEvery 2.5 hours: reconcile what was worked on; mark [done] if finished, else [wip] with a one-line reason + next action.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eUse OpenClaw cron to schedule system events that trigger these reviews (see Cron payloads below).\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e3) Decision policy\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf a selected [new] item appears doable within ~1 hour: do it now during the 3h review.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf it likely needs \u003e1 hour: write a simple, structured plan (steps + rough time estimate) and leave the item [new] until kickoff; when starting work, flip to [wip].\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf assistance/approval is needed: halt, report to the owner/requester, and wait.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eSearch online when needed.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf blocked twice on the same point: stop, record the failure and next step, mark [wip], and report.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e4) Selection heuristics (for \"top 3\")\nDefault ranking when not specified by the owner/requester:\n1) Explicit priority hints in the text (e.g., \"priority: high\"),\n2) Fit for ≀1 hour (quick wins first),\n3) Recency/clarity of the item.\nWhen in doubt, take the first three [new] items in file order.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e5) Per-task journal (agent_work/)\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eWhen beginning work on an item: create a folder agent_work/YYYY-MM-DD_HHMM_nickname.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eInside, maintain a running log: start time, linked todo text, decisions, commands, files created, errors, attempts, results.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFor harder tasks include a small plan with time estimate and critical steps.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003ePlace any generated files/documents inside this folder.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e6) Reporting\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eEvery report must name the todo/project it concerns.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFor ≀1h tasks done now: include Result, Key steps, and any links to outputs.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFor \u003e1h tasks: include Plan (steps + estimate), Current status ([new|wip]), and where the journal folder lives.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eCategorization policy\u003c/h3\u003e\nWhen the owner/requester says \"add a todo\":\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eAssign exactly one primary category from: quick search | setup | prototype | try out | learn | write.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eAdd one generation tag: code | no-code.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eAppend to todo/todo.md (today's section) using:\u003c/li\u003e\n - \"- [new] \u003cTitle\u003e β€” \u003cshort description\u003e [category: \u003ccategory\u003e; gen: \u003ccode|no-code\u003e]\"\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eUpdate prioritization: quick search/setup tend to be picked more often; prototype/try out medium; learn/write lower for push.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003ePersist this behavior in the local workspace policy/memory files when that is appropriate for the environment.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eNotification delivery (heartbeat)\u003c/h3\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003ePrefer email over chat for heartbeat notifications.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eSend email via gog CLI (Gmail / Google Workspace CLI) when it is available.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eResolve sender, recipient, and fallback behavior from a local preference file when present:\u003c/li\u003e\n - \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eagent_work/proactive-do/delivery_prefs.md\u003c/code\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf no preference file exists, ask once for delivery settings or use the current chat as a temporary fallback.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eStart email (at 3h review start):\u003c/li\u003e\n - Subject: \"[assistant] start doing on 3 todos + \u003cabbr\u003e\" (abbr = short names of the 3 todos)\n - Body: full text of the 3 selected todos; concise (β‰ˆ2-minute read)\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFollow-up email (at 2.5h reconciliation):\u003c/li\u003e\n - Subject: \"[assistant] finish 3 todos + \u003cabbr\u003e\" (same abbr)\n - Body: brief summary of what was done, results, failures, and done/not-done per task (β‰ˆ2-minute read)\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eArchive a copy of each email under \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eagent_work/heartbeat_emails/\u003c/code\u003e.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eKeep local preferences out of the published skill package unless they are intentionally shared.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003e3h Review β€” Execution flow\u003c/h3\u003e\n1) Parse todo/todo.md for the latest date section and list all items marked [new].\n2) Rank candidates using the selection heuristics and pick the top 3 for this pass.\n3) For each of the top 3:\n - Estimate difficulty/time. If ≀1h:\n - Flip to [wip], create agent_work folder, execute.\n - On success, flip to [done] and report.\n - If blocked twice, keep [wip], record why + next action, and report.\n - If \u003e1h:\n - Draft a short plan (steps + estimate), store it in agent_work folder template (can be pre-created without kickoff), and report.\n4) Summarize what was done/planned, referencing the todo lines.\n5) Notification: send the Start email using gog CLI per the template above.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003e2.5h Follow-up β€” Reconciliation flow\u003c/h3\u003e\n1) Review items touched in the last 2.5h (from your journal and recent edits).\n2) If finished: mark [done] and report the completion.\n3) If not yet finished: ensure [wip] with a one-line reason and next action; update the journal accordingly; report.\n4) Notification: send the Finish email using gog CLI per the template above.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eCron payloads (copy/paste)\u003c/h3\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003e3h review payload text:\u003c/li\u003e\n \"Heartbeat: review todo/todo.md for [new] items. Pick the top 3 to act on this pass. For each selected [new]: if ≀1h, do it now and report; if \u003e1h, draft a simple plan with estimate and report. Maintain agent_work/ journals and include the todo/project name in every report. Deliver the start report by email per the proactive-do skill notification policy.\"\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003e2.5h follow-up payload text:\u003c/li\u003e\n \"Follow-up heartbeat: review all work performed in the past 2.5h. For each task, if completed mark [done]; else mark [wip] with a one-line reason and next action. Report the changes and reference the related todo/project. Deliver the finish report by email per the proactive-do skill notification policy.\"\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eFile conventions\u003c/h3\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eTodo file: todo/todo.md (single source of truth; preserve all existing items, do not delete automatically)\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eStates: [new], [wip], [done] (no other labels)\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eDate sections: markdown H2 \"## YYYY-MM-DD\"\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eAgent journals: agent_work/YYYY-MM-DD_HHMM_nickname/\u003c/li\u003e\n - journal.md β€” running log (start time, intent, steps, errors, outputs)\n - plan.md β€” for \u003e1h tasks (steps + estimate + critical steps)\n - outputs/ β€” any artifacts created\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eHeuristics for \"≀1 hour\"\u003c/h3\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eLow external dependencies; small scope; familiar stack; no required approvals.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eExamples: formatting/rewording docs, light scripting/automation, small data tidying, basic research + short writeup.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf uncertain, default to plan-first and request clarification.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eSafety / escalation\u003c/h3\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eHalt and report for any action requiring explicit approval or external messaging on behalf of the owner/requester.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eNever loop indefinitely. Two failed attempts on the same blocker β†’ stop, label [wip], report.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eAlways include the todo/project name and journal path in reports.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eTemplates and helpers\u003c/h3\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eSee references/templates.md for copy/paste templates:\u003c/li\u003e\n - agent_work journal.md\n - agent_work plan.md\n - Report blocks for \"done\" and \"plan\" updates\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eNotes\u003c/h3\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eKeep SKILL.md lean; store verbose templates in references/.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003ePrefer fewer larger edits to files (respect rate limits and avoid tight loops when writing externally).\u003c/li\u003e\n\u003c/p\u003e"])</script><script>self.__next_f.push([1,"20:[\"$\",\"div\",null,{\"className\":\"skill-page\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareApplication\\\",\\\"name\\\":\\\"Proactive-Do\\\",\\\"description\\\":\\\"Proactive todo execution, heartbeat-driven review, and structured follow-up for a markdown todo system. Use when the agent needs to review `todo/todo.md`, pi...\\\",\\\"url\\\":\\\"https://bytesagain.com/skill/proactive-do\\\",\\\"applicationCategory\\\":\\\"clawhub\\\",\\\"operatingSystem\\\":\\\"Any\\\",\\\"offers\\\":{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\"},\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"BytesAgain\\\",\\\"url\\\":\\\"https://bytesagain.com\\\"}}\"}}],[\"$\",\"div\",null,{\"className\":\"breadcrumb\",\"children\":[[\"$\",\"a\",null,{\"href\":\"/\",\"children\":\"BytesAgain\"}],\" β€Ί \",[\"$\",\"a\",null,{\"href\":\"/skills\",\"children\":\"Skills\"}],\" β€Ί \",\"Proactive-Do\"]}],[\"$\",\"div\",null,{\"className\":\"two-col\",\"children\":[[\"$\",\"div\",null,{\"className\":\"two-col-main\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-header\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-badges\",\"children\":[[\"$\",\"span\",null,{\"className\":\"badge\",\"style\":{\"color\":\"#818cf8\",\"background\":\"#818cf822\",\"borderColor\":\"#818cf844\"},\"children\":[\"πŸ¦€\",\" \",\"ClawHub\"]}],false]}],[\"$\",\"div\",null,{\"className\":\"skill-top-actions\",\"children\":[\"$\",\"$L22\",null,{\"slug\":\"proactive-do\"}]}]]}],[\"$\",\"h1\",null,{\"className\":\"skill-title\",\"children\":\"Proactive-Do\"}],[\"$\",\"p\",null,{\"className\":\"skill-owner\",\"children\":[\"by \",[\"$\",\"span\",null,{\"children\":[\"@\",\"hyharry\"]}]]}],[\"$\",\"p\",null,{\"className\":\"skill-desc\",\"children\":\"Proactive todo execution, heartbeat-driven review, and structured follow-up for a markdown todo system. Use when the agent needs to review `todo/todo.md`, pi...\"}],[\"$\",\"div\",null,{\"className\":\"skill-meta\",\"children\":[[\"$\",\"div\",null,{\"className\":\"meta-item\",\"children\":[[\"$\",\"span\",null,{\"className\":\"meta-label\",\"children\":\"Version\"}],[\"$\",\"span\",null,{\"className\":\"meta-value\",\"children\":[\"v\",\"0.1.1\"]}]]}],[\"$\",\"div\",null,{\"className\":\"meta-item\",\"children\":[[\"$\",\"span\",null,{\"className\":\"meta-label\",\"children\":\"Downloads\"}],[\"$\",\"span\",null,{\"className\":\"meta-value\",\"children\":\"690\"}]]}],false,false,false,[\"$\",\"div\",null,{\"className\":\"meta-item\",\"style\":{\"flexDirection\":\"row\",\"gap\":6,\"alignItems\":\"center\"},\"children\":[[\"$\",\"a\",\"legal\",{\"href\":\"/?q=legal\",\"className\":\"tag\",\"children\":[\"#\",\"legal\"]}],[\"$\",\"a\",\"productivity\",{\"href\":\"/?q=productivity\",\"className\":\"tag\",\"children\":[\"#\",\"productivity\"]}]]}]]}],[\"$\",\"div\",null,{\"style\":{\"marginTop\":6},\"children\":[\"$\",\"a\",null,{\"href\":\"https://clawhub.ai/hyharry/proactive-do\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"btn-secondary\",\"style\":{\"padding\":\"6px 12px\",\"fontSize\":\".82em\",\"borderRadius\":8,\"background\":\"transparent\",\"border\":\"1px solid var(--border-card)\",\"color\":\"var(--text-muted2)\",\"textDecoration\":\"none\",\"whiteSpace\":\"nowrap\"},\"children\":[\"View on \",\"ClawHub\",\" β†’\"]}]}]]}],[\"$\",\"div\",null,{\"className\":\"install-box\",\"children\":[[\"$\",\"div\",null,{\"className\":\"install-header\",\"children\":[[\"$\",\"div\",null,{\"className\":\"install-dots\",\"children\":[[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#ef4444\"}}],[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#eab308\"}}],[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#22c55e\"}}]]}],[\"$\",\"span\",null,{\"className\":\"install-label\",\"children\":\"TERMINAL\"}]]}],[\"$\",\"div\",null,{\"className\":\"install-body\",\"style\":{\"flexWrap\":\"wrap\"},\"children\":[[\"$\",\"code\",null,{\"className\":\"install-cmd\",\"children\":\"clawhub install proactive-do\"}],[\"$\",\"button\",null,{\"className\":\"copy-btn\",\"data-cmd\":\"clawhub install proactive-do\",\"style\":{\"fontWeight\":700},\"children\":\"Copy\"}]]}]]}],[\"$\",\"section\",null,{\"className\":\"skill-card\",\"style\":{\"marginBottom\":20},\"children\":[[\"$\",\"h2\",null,{\"style\":{\"color\":\"#f8fafc\",\"fontSize\":\"1.2em\",\"fontWeight\":800,\"margin\":\"0 0 16px\",\"display\":\"flex\",\"alignItems\":\"center\",\"gap\":8},\"children\":\"πŸ“– About This Skill\"}],[\"$\",\"div\",null,{\"style\":{\"fontSize\":\".92em\",\"color\":\"#94a3b8\",\"lineHeight\":1.75},\"dangerouslySetInnerHTML\":{\"__html\":\"$23\"}}]]}],null,\"$L24\",null,\"$L25\",null,null,null,false,false]}],\"$L26\"]}]]}]\n"])</script><script>self.__next_f.push([1,"21:[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n document.querySelectorAll('.copy-btn, .script-copy-btn').forEach(btn =\u003e {\\n btn.addEventListener('click', () =\u003e {\\n const cmd = btn.getAttribute('data-cmd');\\n if (!cmd) return;\\n navigator.clipboard.writeText(cmd).then(() =\u003e {\\n const orig = btn.textContent;\\n btn.textContent = 'Copied!';\\n setTimeout(() =\u003e btn.textContent = orig, 1500);\\n }).catch(() =\u003e {});\\n });\\n });\\n \"}}]\n"])</script><script>self.__next_f.push([1,"28:I[71521,[\"/_next/static/chunks/0ph_0rx9ah5dc.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\",\"/_next/static/chunks/12w5ognupk9fb.js?dpl=dpl_9zPFH6pojPkqyspdDNz28GzCc6KQ\"],\"default\"]\n27:T1133,"])</script><script>self.__next_f.push([1,"\u003cp style=\"margin:8px 0\"\u003e1) Source of truth\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eTodos live in todo/todo.md, grouped by date headings (e.g., \"## YYYY-MM-DD\").\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eItems are bullets with a state label: \"- [new] ..., - [wip] ..., - [done] ...\".\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eOnly these three states are valid.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eStrict preservation rule: never delete existing todo items from todo/todo.md automatically. You may append new items and revise existing items in place (for example, changing only the state label or updating the text of the same line), but you must not remove lines/items unless the owner/requester explicitly asks for deletion.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e2) Initialize phase (install-time only; do not run on every review)\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eRun these setup actions when the skill is first installed or first adopted in a workspace, not during each 3h review or 2.5h follow-up.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eEnsure these paths exist; create them if missing:\u003c/li\u003e\n - todo/\n - todo/todo.md\n - agent_work/\n - agent_work/heartbeat_emails/\n - agent_work/proactive-do/\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf todo/todo.md does not exist, create it with a minimal starter structure:\u003c/li\u003e\n - a top-level heading or today's date section (\"## YYYY-MM-DD\")\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf agent_work/proactive-do/delivery_prefs.md is referenced later but missing, do not fail; create the parent folder and continue with fallback behavior per notification policy.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eInitialization must be non-destructive: create missing paths only, do not remove or overwrite existing content.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e3) Cadence (recommended)\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e2) Cadence (recommended)\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eEvery 3 hours: scan all [new] items and pick the top 3 to address this pass (leave the rest for later) to reduce load.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eEvery 2.5 hours: reconcile what was worked on; mark [done] if finished, else [wip] with a one-line reason + next action.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eUse OpenClaw cron to schedule system events that trigger these reviews (see Cron payloads below).\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e3) Decision policy\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf a selected [new] item appears doable within ~1 hour: do it now during the 3h review.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf it likely needs \u003e1 hour: write a simple, structured plan (steps + rough time estimate) and leave the item [new] until kickoff; when starting work, flip to [wip].\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf assistance/approval is needed: halt, report to the owner/requester, and wait.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eSearch online when needed.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf blocked twice on the same point: stop, record the failure and next step, mark [wip], and report.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e4) Selection heuristics (for \"top 3\")\nDefault ranking when not specified by the owner/requester:\n1) Explicit priority hints in the text (e.g., \"priority: high\"),\n2) Fit for ≀1 hour (quick wins first),\n3) Recency/clarity of the item.\nWhen in doubt, take the first three [new] items in file order.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e5) Per-task journal (agent_work/)\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eWhen beginning work on an item: create a folder agent_work/YYYY-MM-DD_HHMM_nickname.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eInside, maintain a running log: start time, linked todo text, decisions, commands, files created, errors, attempts, results.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFor harder tasks include a small plan with time estimate and critical steps.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003ePlace any generated files/documents inside this folder.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e6) Reporting\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eEvery report must name the todo/project it concerns.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFor ≀1h tasks done now: include Result, Key steps, and any links to outputs.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFor \u003e1h tasks: include Plan (steps + estimate), Current status ([new|wip]), and where the journal folder lives.\u003c/li\u003e\u003c/p\u003e"])</script><script>self.__next_f.push([1,"24:[\"$\",\"section\",null,{\"className\":\"skill-card\",\"style\":{\"marginBottom\":20},\"children\":[[\"$\",\"h2\",null,{\"style\":{\"color\":\"#f8fafc\",\"fontSize\":\"1.2em\",\"fontWeight\":800,\"margin\":\"0 0 16px\",\"display\":\"flex\",\"alignItems\":\"center\",\"gap\":8},\"children\":\"πŸ’‘ Examples\"}],[\"$\",\"div\",null,{\"style\":{\"fontSize\":\".92em\",\"color\":\"#94a3b8\",\"lineHeight\":1.75},\"dangerouslySetInnerHTML\":{\"__html\":\"$27\"}}]]}]\n25:[\"$\",\"section\",null,{\"className\":\"skill-card\",\"style\":{\"marginBottom\":20},\"children\":[[\"$\",\"h2\",null,{\"style\":{\"color\":\"#f8fafc\",\"fontSize\":\"1.2em\",\"fontWeight\":800,\"margin\":\"0 0 16px\",\"display\":\"flex\",\"alignItems\":\"center\",\"gap\":8},\"children\":\"πŸ“‹ Tips \u0026 Best Practices\"}],[\"$\",\"div\",null,{\"style\":{\"fontSize\":\".92em\",\"color\":\"#94a3b8\",\"lineHeight\":1.75},\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cp style=\\\"margin:8px 0\\\"\u003e\u003cli style=\\\"color:#94a3b8;margin:3px 0\\\"\u003eKeep SKILL.md lean; store verbose templates in references/.\u003c/li\u003e\\n\u003cli style=\\\"color:#94a3b8;margin:3px 0\\\"\u003ePrefer fewer larger edits to files (respect rate limits and avoid tight loops when writing externally).\u003c/li\u003e\u003c/p\u003e\"}}]]}]\n26:[\"$\",\"div\",null,{\"className\":\"two-col-side\",\"children\":[\"$\",\"$L28\",null,{\"category\":\"clawhub\",\"currentSlug\":\"proactive-do\",\"name\":\"Proactive-Do\",\"tags\":[\"legal\",\"productivity\"]}]}]\n"])</script></body></html>