From 9470fba60cefcfd1614e2f6e49ef4ee68631bcb5 Mon Sep 17 00:00:00 2001 From: Remora Date: Mon, 9 Feb 2026 13:30:03 +0100 Subject: [PATCH] Add comprehensive README with installation and usage guide --- README.md | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..fb3b864 --- /dev/null +++ b/README.md @@ -0,0 +1,250 @@ +# Skill Tududi Tasks + +OpenClaw integration for **Tududi** — self-hosted task management system with smart suggestions and daily reminders. + +## Features + +✅ **Quick task capture** — Add tasks to inbox without friction +✅ **Smart suggestions** — AI suggests priority, tags, and projects +✅ **Inbox management** — Read inbox status and upcoming tasks +✅ **Daily reminders** — Automatic morning recap (overdue + today tasks) +✅ **No auto-sync** — Manual control, you decide what goes where + +## Installation + +### 1. Clone to OpenClaw Skills Directory + +```bash +cd ~/.openclaw/skills +git clone https://forge.dilain.com/Remora/skill-tududi.git +``` + +### 2. Configure Environment Variables + +Add to your OpenClaw gateway environment or shell profile: + +```bash +export TUDUDI_API_URL="https://todo.dilain.com/api/v1" +export TUDUDI_API_KEY="tt_5e3ac7fc2bf5ae5162ebac5d1d66dcc2ff9d9d0ab343b9d3d4c5a7c439ef67f5" +``` + +Or configure in `openclaw.json`: + +```json +{ + "env": { + "vars": { + "TUDUDI_API_URL": "https://todo.dilain.com/api/v1", + "TUDUDI_API_KEY": "tt_5e3ac7fc..." + } + } +} +``` + +### 3. Restart OpenClaw + +```bash +openclaw gateway restart +``` + +## Usage + +### Add a Task to Inbox + +```bash +./scripts/tududi-api.sh add-task "Task name" "Optional description" +``` + +Or via Discord: +> "Add task: Fix the CI/CD pipeline" + +I'll suggest priority and tags, then add to Tududi inbox. + +### List Inbox + +```bash +./scripts/tududi-api.sh list-inbox +``` + +Shows all tasks with no project assigned. + +### Get Smart Suggestions + +Ask me to suggest priority/tags/projects: + +> "I want to add 'Setup staging environment'. Suggest priority and project." + +Response example: +```json +{ + "priority": "high", + "tags": ["devops", "infrastructure"], + "projects_available": [ + {"id": 1, "name": "Infrastructure"}, + {"id": 2, "name": "DevOps"} + ] +} +``` + +### Daily Reminder + +Configured to run **8:00 AM** (Europe/Paris timezone) every day. + +Reminder format: +``` +📋 Tududi Morning Reminder (Monday) + +🔴 Overdue (2): + • Fix payment bug (high) + • Respond to client email (normal) + +📅 Today (3): + • Deploy v2.1 (high) + • Team standup (normal) + • Review PRs (normal) +``` + +## Scripts + +### `tududi-api.sh` + +Core API wrapper for Tududi REST API. + +**Commands:** + +```bash +# Add task to inbox +tududi-api.sh add-task "name" "description" [project_id] + +# List tasks in inbox (no project) +tududi-api.sh list-inbox + +# List all projects +tududi-api.sh list-projects + +# Get single task details +tududi-api.sh get-task +``` + +### `tududi-suggest.sh` + +Analyze task name/description and suggest priority, tags, and available projects. + +```bash +tududi-suggest.sh "Task name" "Optional description" +``` + +Output: JSON with suggestions. + +## Configuration + +### Change Reminder Time + +Edit `openclaw.json`: + +```json +{ + "cron": { + "jobs": [{ + "name": "Tududi Morning Reminder", + "schedule": { + "kind": "cron", + "expr": "0 9 * * *", + "tz": "Europe/Paris" + } + }] + } +} +``` + +Change `"0 9"` to your preferred hour. + +### Disable Reminders + +```bash +openclaw cron remove +``` + +### Customize Reminder Content + +Edit the system prompt in heartbeat config: + +```json +{ + "agents": { + "defaults": { + "heartbeat": { + "prompt": "Custom reminder logic here..." + } + } + } +} +``` + +## Troubleshooting + +### Scripts fail with "TUDUDI_API_KEY not set" + +```bash +# Test env vars +echo $TUDUDI_API_URL +echo $TUDUDI_API_KEY + +# If empty, source your env file or set them: +export TUDUDI_API_KEY="..." +``` + +### No tasks returned from list-inbox + +1. Verify API connection: + ```bash + curl -s -H "Authorization: Bearer $TUDUDI_API_KEY" \ + "$TUDUDI_API_URL/tasks" | jq '.' | head + ``` + +2. Check if tasks have `project_id` set (inbox tasks have `null`) + +### Reminder not firing at 8 AM + +1. Check gateway logs: + ```bash + openclaw logs | grep -i tududi + ``` + +2. Verify cron job is enabled: + ```bash + openclaw cron list + ``` + +3. Check timezone: + ```bash + date + ``` + +## Development + +### Add New Suggestion Rules + +Edit `scripts/tududi-suggest.sh` to add keyword detection: + +```bash +# Example: detect "meeting" → tag:communication +if echo "$task_name $task_desc" | grep -iE "meeting"; then + tag_array="${tag_array}\"meeting\"," +fi +``` + +### Test API Directly + +```bash +API_KEY="..." API_URL="..." ./scripts/tududi-api.sh list-inbox +``` + +## Support + +- **Issues**: Report on Forge: https://forge.dilain.com/Remora/skill-tududi/issues +- **Docs**: See `SKILL.md` for full feature documentation + +## License + +MIT