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

NextCloud Deck Tracker

by @skanderhelali

Track OpenClaw tasks on NextCloud Deck board. Auto-add tasks to Queue, move through states.

Versionv0.1.1
Downloads1,329
TERMINAL
clawhub install openclaw-deck-tracker

πŸ“– About This Skill


name: deck-tracker version: 0.1.1 description: Track OpenClaw tasks on NextCloud Deck board. Auto-add tasks to Queue, move through states. metadata: openclaw: emoji: "πŸ“‹"

Deck Tracker v1.0.0

Track tasks on a NextCloud Deck board.

Board Structure

This skill assumes a board with 4 stacks (columns):

| Stack | Default ID | Purpose | |-------|------------|---------| | Queue | 1 | New incoming tasks | | In Progress | 2 | Currently working on | | Waiting | 3 | Blocked/waiting for user | | Done Today | 4 | Completed tasks |

Configuration

Set the following environment variables (e.g. in your .bashrc or OpenClaw config):

export DECK_URL="https://your-nextcloud.com/index.php/apps/deck/api/v1.0"
export DECK_USER="your_username"
export DECK_PASS="your_app_password" # Use an App Password!
export BOARD_ID=1

If your stack IDs differ from the defaults (1, 2, 3, 4), override them:

export STACK_QUEUE=10
export STACK_PROGRESS=11
export STACK_WAITING=12
export STACK_DONE=13

Commands

List all cards on the board

deck list

Add a new task to Queue

deck add "Task title" "Optional description"
Options:
  • --progress: Automatically move the new card to "In Progress" immediately.
  • --stack : Create in a specific stack ID (default: Queue).
  • Example with auto-start:

    deck add "Urgent Fix" "Fixing production bug" --progress
    

    Move a card to a different stack

    deck move  
    

    Get card details

    deck get 
    

    Update card title/description

    deck update  [--title "New title"] [--description "New desc"]
    

    Log a status update to a card

    deck log   "Message"
    
    Statuses: progress, success, error, warning, info.

    Start automated heartbeat monitoring

    deck monitor  [target_id]
    
    Spawns a background process that appends a "Still working..." log entry every 60 seconds. Additionally, it sends a chat notification to the specified target_id (defaults to Skander) every 120 seconds. The process terminates automatically when the card is moved out of the "In Progress" stack (to Done or Waiting). Use for tasks expected to take >2 minutes.

    Dump all completed tasks as JSON

    deck dump-done
    
    Outputs the JSON payload for all cards in "Done Today". Useful for memory synthesis.

    Archive all completed cards

    deck archive-done
    

    Moves all cards in "Done Today" to the archived state. Useful for daily cleanup via cron.

    Delete a card

    deck delete 
    

    Workflow & Memory Protocol

    1. New task arrives β†’ deck add "Title" "Rich Initial Description" (Use --progress to start immediately). 2. Detailed Descriptions: Start descriptions with Objective, Plan, and Constraints. 3. Log updates β†’ deck log progress "Finished step 1". 4. Closing Task: Use deck update --description "Rich Summary" to include Technical Summary, Operations Performed, and Outcome. 5. Memory Synthesis: Before archiving, use deck dump-done to parse the day's work and reinforce long-term memory. 6. Daily cleanup β†’ deck archive-done.

    🚨 AI Protocol: Complex Descriptions

    When updating cards with multi-line markdown descriptions, ALWAYS use the temp file method to prevent shell expansion errors:

    # 1. Write rich description to temp file
    cat > /tmp/deck_desc_.txt << 'EOF'
    [Rich Markdown]
    EOF

    2. Update deck using the temp file

    deck update --description "$(cat /tmp/deck_desc_.txt)"

    βš™οΈ Configuration

    Set the following environment variables (e.g. in your .bashrc or OpenClaw config):

    export DECK_URL="https://your-nextcloud.com/index.php/apps/deck/api/v1.0"
    export DECK_USER="your_username"
    export DECK_PASS="your_app_password" # Use an App Password!
    export BOARD_ID=1
    

    If your stack IDs differ from the defaults (1, 2, 3, 4), override them:

    export STACK_QUEUE=10
    export STACK_PROGRESS=11
    export STACK_WAITING=12
    export STACK_DONE=13