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

Windowed Autonomy

by @luciusrockwing

Time-windowed autonomous task queue. Autonomy works only during specific time windows (e.g., 8 AM - 8 PM UTC), while cron jobs run overnight. Separates conce...

Versionv1.0.0
Downloads1,231
TERMINAL
clawhub install autonomy-windowed

πŸ“– About This Skill


name: autonomy-windowed version: 1.0.0 description: Time-windowed autonomous task queue. Autonomy works only during specific time windows (e.g., 8 AM - 8 PM UTC), while cron jobs run overnight. Separates concerns by time - day = autonomy, night = maintenance. Use when you want predictable work schedule, controlled token budget, and clear temporal separation between autonomous work and scheduled maintenance. metadata: openclaw: emoji: "⏰" category: productivity

Windowed Autonomy

Transform your agent from reactive to autonomous worker during specific time windows.


Concept

The agent works autonomously only during defined time windows. Outside windows, the agent only replies HEARTBEAT_OK. Cron jobs run overnight when autonomy is disabled.

πŸŒ™ Overnight (10 PM - 8 AM UTC):  Autonomy OFF
β˜€οΈ Daytime (8 AM - 10 PM UTC):   Autonomy ON

Clear separation: Day = work on queue, Night = cron maintenance


How It Works

1. Time Windows

Define active windows in tasks/QUEUE.md:

## ⏰ Autonomy Windows

  • πŸŒ™ Overnight: 20:00 - 08:00 UTC β†’ Autonomy OFF
  • β˜€οΈ Daytime: 08:00 - 20:00 UTC β†’ Autonomy ON
  • 2. Heartbeat Flow

    During Active Window:

    Heartbeat β†’ Check urgent β†’ No β†’ Read QUEUE β†’ Pick task β†’ Work 15-30 min β†’ Update QUEUE β†’ Log
    

    Outside Active Window:

    Heartbeat β†’ Check urgent β†’ No β†’ Reply "HEARTBEAT_OK" β†’ Sleep
    

    Urgent Override:

    Heartbeat β†’ Check urgent β†’ YES β†’ Work immediately (even outside window)
    

    3. Window Transitions

    Window Opens (8:00 AM):

  • Autonomous mode enabled
  • Start pulling from queue
  • Log to tasks/MODE_HISTORY.md: "Window opened"
  • Window Closes (8:00 PM):

  • Autonomous mode disabled
  • Wrap up current task if in progress
  • Log transition: "Window closed"
  • Switch to standby mode (HEARTBEAT_OK only)

  • Schedule Examples

    | Time | Activity | Mode | |------|----------|------| | 00:00 | GitHub backup (cron) | Overnight (no autonomy) | | 02:00 | Heartbeat check | Standby (HEARTBEAT_OK) | | 03:00 | Temp cleanup (cron) | Overnight (no autonomy) | | 08:00 | Window opens | βœ… Autonomy ON | | 09:00 | Work on task | Autonomy | | 12:00 | GitHub backup (cron) | Autonomy (pause for backup) | | 14:00 | Work on task | Autonomy | | 20:00 | Window closes | ❌ Autonomy OFF | | 23:00 | Daily ops + memory (cron) | Overnights (no autonomy) |


    Queue Structure

    # Task Queue

    ⏰ Autonomy Windows

  • πŸŒ™ Overnight: 20:00 - 08:00 UTC β†’ Autonomy OFF
  • β˜€οΈ Daytime: 08:00 - 20:00 UTC β†’ Autonomy ON

  • πŸ”΄ Ready (can be picked up during windows)

  • [ ] @priority:high [Task description]
  • [ ] @priority:medium [Task description]
  • 🟑 In Progress

  • [ ] @agent: @priority:high [Task description]
  • - Started: 2026-02-16 14:00 UTC

    πŸ”΅ Blocked

  • [ ] @priority:medium [Task] (needs: [what's blocking])
  • βœ… Done Today

  • [x] @agent: @priority:high [Task]
  • - Completed: 2026-02-16 14:25 UTC

    πŸ’‘ Ideas

  • [Idea for future work]

  • Priority System

    Priority affects task selection order during windows:

    | Priority | When to use | Selection | |----------|-------------|-----------| | @priority:urgent | Time-sensitive, deadline < 6h | Pick FIRST, even outside window | | @priority:high | Important, deadline 24h | Pick first in window | | @priority:medium | Normal importance | Pick second in window | | @priority:low | Nice to have | Pick last in window |


    Window Types

    Full Day Window (Default)

    Active: 8 AM - 8 PM UTC (12 hours)

    Use when:

  • youris available during these hours
  • Tasks are not time-sensitive
  • Want predictable work schedule
  • Heartbeat frequency: Every 2 hours (6 sessions/day)

    Extended Window

    Active: 6 AM - 10 PM UTC (16 hours)

    Use when:

  • Want more work hours
  • yourhas varied schedule
  • Heartbeat frequency: Every 2 hours (8 sessions/day)

    Limited Window

    Active: 10 AM - 6 PM UTC (8 hours)

    Use when:

  • Want controlled token budget
  • yourhas focused availability
  • Heartbeat frequency: Every 2-3 hours (3-4 sessions/day)


    Token Budget

    Recommended: 4-6 sessions/day, ~5-10K tokens each = 20-60K/day

    Session strategy:

    | Window Type | Sessions/day | Tokens | Schedule | |------------|--------------|--------|----------| | Full Day (12h) | 6 | 30-60K | Every 2 hours | | Extended (16h) | 8 | 40-80K | Every 2 hours | | Limited (8h) | 4 | 20-40K | Every 2-3 hours |

    When to stop:

  • Window closes (time-based)
  • Tokens remaining < 5K
  • Queue empty
  • youris actively messaging (human priority)

  • Urgent Tasks Override

    Definition: Tasks that cannot wait for window to open

    Add to queue with @priority:urgent:

    ## πŸ”΄ Ready
    
  • [ ] @priority:urgent Emergency: [task description]
  • Behavior:

  • Autonomy works immediately, even if outside window
  • Override all other considerations
  • Complete urgent task, then check window status

  • Wrapping Up When Window Closes

    If in middle of task when window closes:

    1. Check task progress: - If > 80% complete β†’ Finish it - If < 80% complete β†’ Save progress, move to In Progress, stop

    2. Save state:

    ## 🟑 In Progress
    
  • [ ] @agent: @priority:high [Task description]
  • - Started: 2026-02-16 19:30 UTC - Progress at window close: Completed X section, need to do Y - Resume: 2026-02-17 08:00 UTC (next window)

    3. Log to tasks/MODE_HISTORY.md:

    ## [2026-02-16 20:00 UTC] Window Closed
    Status: Task in progress (60% complete)
    Action: Saved state, will resume in next window
    


    Mode History Tracking

    File: tasks/MODE_HISTORY.md

    # Window Mode Transitions

    [2026-02-16 08:00 UTC] Window Opened

    Mode: Daytime window Queue state: 3 tasks ready Expected sessions: 6

    [2026-02-16 20:00 UTC] Window Closed

    Mode: Overnight (standby) Sessions completed: 5 Tasks completed: 4 Tasks remaining: 1 (in progress, resume tomorrow)

    [2026-02-17 08:00 UTC] Window Opened

    Mode: Daytime window Resumed task in progress


    Coordinating With Cron

    Daytime (Autonomy ON):

  • Light cron runs fine (Ollama monitor, disk check) - no conflict
  • Heavy cron (backup) - autonomy pauses during execution
  • Overnight (Autonomy OFF):

  • All cron jobs run freely
  • No autonomy conflicts
  • Cron schedule:

    | Time | Cron Job | Autonomy Mode | |------|----------|---------------| | Every 5 min | Ollama monitor | Any (low impact) | | Every hour | Disk check | Any (low impact) | | 00:00 | GitHub backup | OFF (overnight) | | 03:00 | Temp cleanup | OFF (overnight) | | 08:00 | Window opens | ON | | 12:00 | GitHub backup | ON (pause during) | | 14:00 | Daily ops + memory (Sun) | ON (pause during) | | 20:00 | Window closes | OFF (overnight) | | 23:00 | Daily ops + memory | OFF (overnight) |


    GOALS.md Integration

    Link queue tasks to RA's long-term goal: MONEY

    Add goal references:

    - [ ] @priority:high Competitor pricing analysis (GOAL: monetization strategy)
    
  • [ ] @priority:medium Write sales email template (GOAL: improve conversion)
  • Work toward goals during windows:

  • Research tasks during early window (fresh energy)
  • Writing tasks during mid window (flow state)
  • Review tasks during late window (wind down)

  • .learnings/ Integration

    After completing tasks, add findings to .learnings/:

    ## [LRN-20260216-001] task-completion
    Task: [Task description]

    Completed during: Daytime window (14:00-14:25 UTC) Tokens used: 8K

    Key findings: [summarize]


    Daily Routine

    Window Opens (8:00 AM)

    1. Check queue for tasks in πŸ”΄ Ready 2. Pick highest priority task 3. Work 15-30 minutes 4. Update queue (In Progress or Done)

    During Window (9 AM - 8 PM)

    1. Every 2 hours: heartbeat, check queue 2. Work on next highest priority task 3. Update queue after completion 4. Log progress to memory/[today].md

    Window Closes (8:00 PM)

    1. Check if task in progress 2. If yes: Save progress or finish if close 3. Move to Done Today or keep in In Progress 4. Log transition tasks/MODE_HISTORY.md 5. Switch to standby (HEARTBEAT_OK only)

    Overnight (8 PM - 8 AM)

    1. Every heartbeat: Check urgent only 2. If no urgent: Reply HEARTBEAT_OK 3. Cron jobs run freely 4. No autonomous work


    Task Output Format

    ## Task: [Title]

    Completed during: [Window type] [Time range] Duration: X minutes Tokens: YK

    Work Done

    [Describe what was accomplished]

    Output

    [Attach output file or content]

    Next Steps

    [What to do next - add to Ideas if task spawns follow-up]


    Evolving Over Time

    The "slowly evolve" approach:

    This mode allows The agent to gradually take on more work:

    Week 1-2:

  • Conservative: 4 sessions/day, limited window
  • Monitor performance, adjust schedule
  • Week 3-4:

  • Expand: 6 sessions/day, extended window if needed
  • Add more task types to queue
  • Month 2:

  • Optimize: Tailor window to RA's actual schedule and peak productivity times
  • Adjust based on what yourfinds valuable
  • Key: Start small, expand based on feedback and results.


    When to Use This Skill

    Use this skill when:

  • You want predictable work schedule
  • You want autonomy to work during specific hours
  • Tasks are not time-sensitive (can wait for window)
  • You want clear temporal separation between autonomy and maintenance
  • You're okay with "slowly evolving" - start small, expand over time

  • When NOT to Use This Skill

    Do not use this skill when:

  • You want 24/7 autonomous work β†’ Use autonomy-type-based for type-based filtering
  • Tasks are highly time-sensitive β†’ Use urgency override or different approach
  • You want task-based separation rather than time-based β†’ Use autonomy-type-based
  • youris awake during non-standard hours β†’ Adjust windows to match schedule

  • Quick Reference

    Default window: 8 AM - 8 PM UTC (adjustable) Session frequency: Every 2-3 hours during window Priority order: urgent (override) β†’ high β†’ medium β†’ low Queue location: tasks/QUEUE.md


    *See templates/QUEUE.md for full template structure*