| name | description |
|---|---|
redo |
Manage REDO tasks - view, create, complete, archive, and delete tasks via the v1 protocol |
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).
- Cryptographic identity must exist at
~/.redo/identity.json(created via interactive CLI) - Local node store at
~/IdeaProjects/redo/local_nodes.json
When the user invokes /redo, follow this workflow:
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.
Run this command to get the current task list:
cd ~/IdeaProjects/redo && ./gradlew runCli --args="--list-tasks" 2>/dev/nullParse 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
cd ~/IdeaProjects/redo && ./gradlew runCli --args="--create-task --title 'TITLE' --priority N --frequency N --description 'DESC' --story-points N" 2>/dev/nullParameters:
--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.
cd ~/IdeaProjects/redo && ./gradlew runCli --args="--complete-task --task-id 'GUID_OR_TITLE' --notes 'NOTES'" 2>/dev/nullThe --task-id supports:
- Full UUID:
8f1fa82e-1234-5678-9abc-def012345678 - Partial UUID prefix:
8f1fa82e - Title substring:
Groceries(must be unambiguous)
cd ~/IdeaProjects/redo && ./gradlew runCli --args="--archive-task --task-id 'GUID_OR_TITLE'" 2>/dev/nullcd ~/IdeaProjects/redo && ./gradlew runCli --args="--delete-task --task-id 'GUID_OR_TITLE'" 2>/dev/nullWarn the user that DELETE is a terminal tombstone (permanent, per REDO protocol).
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/nullTo sync local changes to Firebase (requires prior Google auth):
cd ~/IdeaProjects/redo && ./gradlew runCli --args="--sync" 2>/dev/nullAfter creating, completing, archiving, or deleting a task:
- Parse the JSON response to confirm success
- Report the result clearly to the user
- Offer to list tasks again or perform another operation
- 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
- 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/nullto suppress Gradle noise and get clean JSON - The
--list-tasksoutput is sorted by enhanced ranking algorithm (priority x urgency x complexity)