Skip to content

Instantly share code, notes, and snippets.

@jlmalone
Created February 15, 2026 10:29
Show Gist options
  • Select an option

  • Save jlmalone/f818d7e1663069e471dc7f41ddcf2a57 to your computer and use it in GitHub Desktop.

Select an option

Save jlmalone/f818d7e1663069e471dc7f41ddcf2a57 to your computer and use it in GitHub Desktop.
Claude Code skill for managing REDO tasks via Kotlin CLI (v1 protocol)
name description
redo
Manage REDO tasks - view, create, complete, archive, and delete tasks via the v1 protocol

REDO Task Manager

Interact with REDO tasks through the Kotlin CLI's protocol-correct write commands. All operations create proper v1 protocol nodes (signed with Ed25519, content-addressed, DAG-linked).

Prerequisites

  • Cryptographic identity must exist at ~/.redo/identity.json (created via interactive CLI)
  • Local node store at ~/IdeaProjects/redo/local_nodes.json

Instructions

When the user invokes /redo, follow this workflow:

1. Understand the user's intent

The user may want to:

  • View tasks: "show my tasks", "what's on my plate", "list tasks"
  • Create a task: "add task X", "create task called X"
  • Complete a task: "mark X as done", "complete X"
  • Archive a task: "archive X", "hide X"
  • Delete a task: "delete X", "remove X"
  • Get details: "tell me about task X", "what's the status of X"

If the user doesn't specify, default to listing active tasks.

2. List tasks (READ)

Run this command to get the current task list:

cd ~/IdeaProjects/redo && ./gradlew runCli --args="--list-tasks" 2>/dev/null

Parse the JSON output and present tasks in a clear format:

  • Show task title, priority, frequency, and rank
  • Highlight the top-ranked tasks
  • Show pending vs completed todo counts
  • Show current deadline if available

3. Create a task (WRITE)

cd ~/IdeaProjects/redo && ./gradlew runCli --args="--create-task --title 'TITLE' --priority N --frequency N --description 'DESC' --story-points N" 2>/dev/null

Parameters:

  • --title (REQUIRED): Task title
  • --priority (optional, default 3): 1=lowest, 5=highest
  • --frequency (optional, default 7): Days between recurrences
  • --description (optional): Task description
  • --story-points (optional, default 1.0): Complexity/effort

Ask the user for a title at minimum. Suggest sensible defaults for other fields.

4. Complete a task (WRITE)

cd ~/IdeaProjects/redo && ./gradlew runCli --args="--complete-task --task-id 'GUID_OR_TITLE' --notes 'NOTES'" 2>/dev/null

The --task-id supports:

  • Full UUID: 8f1fa82e-1234-5678-9abc-def012345678
  • Partial UUID prefix: 8f1fa82e
  • Title substring: Groceries (must be unambiguous)

5. Archive a task (WRITE)

cd ~/IdeaProjects/redo && ./gradlew runCli --args="--archive-task --task-id 'GUID_OR_TITLE'" 2>/dev/null

6. Delete a task (WRITE)

cd ~/IdeaProjects/redo && ./gradlew runCli --args="--delete-task --task-id 'GUID_OR_TITLE'" 2>/dev/null

Warn the user that DELETE is a terminal tombstone (permanent, per REDO protocol).

7. Debug / detailed view

For detailed task info or protocol debugging, use the existing read-only debug commands:

cd ~/IdeaProjects/redo && ./gradlew runCli --args="--debug-task-detail 'QUERY'" 2>/dev/null
cd ~/IdeaProjects/redo && ./gradlew runCli --args="--debug-snapshot" 2>/dev/null
cd ~/IdeaProjects/redo && ./gradlew runCli --args="--debug-validate" 2>/dev/null

8. Sync to Firebase

To sync local changes to Firebase (requires prior Google auth):

cd ~/IdeaProjects/redo && ./gradlew runCli --args="--sync" 2>/dev/null

9. After every write operation

After creating, completing, archiving, or deleting a task:

  1. Parse the JSON response to confirm success
  2. Report the result clearly to the user
  3. Offer to list tasks again or perform another operation

Important Protocol Rules

  • Nodes are immutable: Once created, never modified
  • Invalid nodes are rejected: Never try to "fix" a node
  • No backwards compatibility: v1 protocol only
  • Every write creates signed nodes: Ed25519 signature required
  • DELETE is permanent: The REDO protocol has no undo for DELETE
  • Complete creates a new todo: Recurring tasks auto-create the next instance

Notes

  • First run after a fresh session may take ~15 seconds for Gradle/JVM startup
  • Subsequent runs use the Gradle daemon and are faster (~3-5 seconds)
  • All commands output JSON to stdout, errors to stderr
  • Use 2>/dev/null to suppress Gradle noise and get clean JSON
  • The --list-tasks output is sorted by enhanced ranking algorithm (priority x urgency x complexity)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment