Get the FREE Ultimate OpenClaw Setup Guide →

tasks

npx machina-cli add skill TonyCasey/lisa/tasks --openclaw
Files (1)
SKILL.md
1.5 KB

Purpose

Model-neutral helper to add/list tasks in Graphiti MCP so any agent can keep a shared task board.

Triggers

Use when the user says: "add a task", "list tasks", "load tasks", "task status".

How to use

  1. List: lisa tasks list --cache [--group <id>] [--limit 20] [--all|--since today]
  2. Add: lisa tasks add "<task text>" [--status todo|doing|done] [--tag foo] [--group <id>] --cache
  3. Defaults: reads ${GRAPHITI_ENDPOINT} from .lisa/.env (written by init); group ID is automatically derived from the project folder path. List defaults to --since today unless --all or --since is provided.
  4. Cache fallback: writes/reads cache/tasks.log when --cache is passed, returning last cached result on MCP failure.
  5. Keep prompts model-neutral; models only orchestrate CLI commands and summarize JSON output.

I/O contract (examples)

  • List: { status: "ok", action: "list", tasks: [...] }
  • Add: { status: "ok", action: "add", task: { text, status, group } }
  • Fallback: { status: "fallback", error, fallback: <cached object> }

Cross-model checklist

  • Claude: concise instructions; avoid role tokens; keep outputs small.
  • Gemini: explicit commands and minimal formatting.

Notes

  • All commands use the lisa CLI binary — no scripts to run directly.
  • Tasks are stored via Graphiti MCP add_task/list_tasks.

Source

git clone https://github.com/TonyCasey/lisa/blob/main/src/project/.lisa/skills/tasks/SKILL.mdView on GitHub

Overview

This skill provides a model-neutral helper to add/list tasks in Graphiti MCP so any agent can keep a shared task board. It’s activated by phrases like 'add a task' or 'list tasks' and uses the Lisa CLI to perform Graphiti MCP operations, returning structured JSON.

How This Skill Works

It uses the lisa CLI to call Graphiti MCP's add_task and list_tasks endpoints. Defaults read GRAPHITI_ENDPOINT from .lisa/.env and the group ID is derived from the project path. If you pass --cache, results are cached and used if MCP fails, and outputs adhere to a standard JSON I/O contract; models remain responsible for orchestrating CLI commands and parsing the JSON output.

When to Use It

  • User asks to add a new task with specific text and optional status or tags
  • User asks to list tasks for a specific project/group or with a limit
  • User wants to load tasks with a cache fallback when the MCP is unavailable
  • User wants to view tasks by status (todo/doing/done) or with tags
  • Multiple models (e.g., Claude, Gemini) need a consistent, model-neutral shared task board

Quick Start

  1. Step 1: Ensure GRAPHITI_ENDPOINT is set in .lisa/.env and you’re in the project root
  2. Step 2: Run lisa tasks list or lisa tasks add with your desired flags (e.g., --group, --status, --tag, --cache)
  3. Step 3: Read the JSON output (e.g., { status: "ok", action: "list", tasks: [...] }) and act accordingly

Best Practices

  • Always provide clear task text when using the 'add' action and include optional status or tag data if relevant
  • Use --group to target a specific project; let the system auto-derive the group when possible
  • Enable --cache for reliability; cache is written/read from cache/tasks.log for MCP fallback
  • Keep prompts model-neutral and rely on explicit CLI commands (no scripting) for predictability
  • Rely on the I/O contract (status/action/tasks or fallback) for downstream parsing

Example Use Cases

  • List tasks for a project: lisa tasks list --group dev-team --limit 20
  • Add a new task: lisa tasks add "Design login page" --status todo --tag frontend --group dev-team --cache
  • Output example: { status: "ok", action: "list", tasks: [...] }
  • Fallback example after MCP failure: { status: "fallback", error, fallback: <cached object> }
  • List all tasks for a broader view: lisa tasks list --all --group analytics --cache --limit 50

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers