Goals Skill
Manage hierarchical goals with a simple kanban workflow (backlog -> active -> completed).
Structure
Goals are organized hierarchically:
- Goals - High-level objectives (e.g., "Learn Spanish")
- Milestones - Major checkpoints within a goal (e.g., "Complete Duolingo basics")
- Tasks - Specific action items within a milestone (e.g., "Finish lesson 5")
When to Use
Use the goals skill for:
- Creating goals: "I want to learn Python this year"
- Breaking down goals: Add milestones and tasks to goals
- Tracking progress: View current status and progress percentages
- Status updates: Mark items as active or completed
- Proactive check-ins: Set up periodic reminders for goal progress
Input Format
The skill accepts JSON arguments via the SKILL_ARGS environment variable:
Create a goal
json{ "action": "create", "type": "goal", "title": "Learn Spanish", "checkin": "weekly", "due": "2024-12-31" }
Create a milestone
json{ "action": "create", "type": "milestone", "title": "Complete Duolingo basics", "parent_id": "goal_abc123" }
Create a task
json{ "action": "create", "type": "task", "title": "Finish lessons 1-5", "parent_id": "milestone_def456" }
List goals
json{ "action": "list", "type": "goal", "status": "active" }
list defaults to naturally active items. Age, due date, lifecycle, and genuine
topic relevance determine activation. Pass the user's topic/name as query so
a relevant older goal can return naturally; unrelated old goals remain quiet.
scope: "all" is only the complete durable inventory and does not affect storage.
Show goal hierarchy
json{ "action": "show", "id": "goal_abc123" }
Complete an item
json{ "action": "complete", "id": "task_xyz789" }
Activate an item
json{ "action": "activate", "id": "goal_abc123" }
Reopen a completed item
json{ "action": "reopen", "id": "task_xyz789" }
Update an item
json{ "action": "update", "id": "goal_abc123", "title": "Master Spanish", "due": "2025-06-30" }
Delete an item
json{ "action": "delete", "id": "goal_abc123" }
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | Yes | One of: create, list, show, activate, complete, reopen, update, delete |
type | string | For create/list | Item type: goal, milestone, or task |
title | string | For create | Title/description of the item |
parent_id | string | For milestone/task | Parent ID (goal for milestone, milestone for task) |
id | string | For show/activate/complete/reopen/update/delete | Item ID |
status | string | For list/update | Filter or set: backlog, active, completed |
due | string | Optional | Due date (parsed naturally) |
checkin | string | For goals | Check-in frequency: daily, weekly, biweekly, monthly, none |
tags | array | Optional | Tags for organization |
Output Format
json{ "success": true, "output": "Goal created: Learn Spanish (ID: abc123)", "exitCode": 0 }
Examples
Set up a learning goal
- Create the main goal:
json{"action": "create", "type": "goal", "title": "Learn Spanish", "checkin": "weekly"}
- Add milestones:
json{"action": "create", "type": "milestone", "title": "Complete Duolingo basics", "parent_id": "abc123"}
- Add tasks:
json{"action": "create", "type": "task", "title": "Finish lesson 5", "parent_id": "def456"}
- Activate the goal:
json{"action": "activate", "id": "abc123"}
- Complete tasks as you progress:
json{"action": "complete", "id": "task789"}
- View progress:
json{"action": "show", "id": "abc123"}


