Agent skill
task-capture
Quick, structured task capture with automatic processing. Use when user wants to capture a task, add a todo, or remember something. Auto-triggers on phrases like "I need to...", "remind me to...", "add task", "new todo", "capture this", "jag måste...", "lägg till uppgift", "fånga detta".
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/task-capture
SKILL.md
Skill: task-capture
Purpose
Provides minimal-friction task capture that processes natural language input into structured tasks. Focuses on SPEED over perfectionism - get it captured, refine later if needed.
Trigger Conditions
- Slash command:
/capture [text] - Natural phrases: ["I need to...", "remind me to...", "add task", "new todo", "capture this", "jag måste...", "lägg till uppgift", "fånga detta", "kom ihåg att...", "todo:", "task:"]
- Auto-trigger: When user expresses something they need to do
Required Context (gather BEFORE starting workflow)
- Active roles via
roles getActiveRoles→ returns Role[] for role inference - Active projects via
projects getActiveProjects→ returns Project[] for project linking (optional)
How to gather context:
# Get active roles (for role inference/selection)
bun run src/aida-cli.ts roles getActiveRoles
# Get active projects (optional, for project association)
bun run src/aida-cli.ts projects getActiveProjects
Workflow Steps
Step 1: Parse Input
See PARSING-RULES.md for detailed parsing rules.
- Action: Extract task title, deadline hints, role hints, project hints, energy hints, priority hints
- Output to user: None (internal processing)
- Wait for: Continue immediately
Step 2: Infer Role
See ROLE-INFERENCE.md for detailed inference rules.
- Action: Match keywords, project context, or conversation context to determine role
- Output to user: If ambiguous, ask "Vilken roll gäller detta?" with role options
- Wait for: User selects role (only if ambiguous)
Step 3: Check for Duplicates (Optional)
- Action: Search existing tasks via
tasks searchTasks "[parsed title]" - Output to user: If similar task found, warn: "Det finns redan en liknande uppgift: [title]. Vill du lägga till ändå?"
- Wait for: User confirms or cancels
Step 4: Create Task
- Action: Create task via
tasks createTask {...} - CLI call:
bash
bun run src/aida-cli.ts tasks createTask '{ "title": "[parsed title]", "role_id": [inferred/selected role id], "deadline": "[parsed date or null]", "priority": [0-3, default 0], "energy_requirement": "[low/medium/high or null]", "project_id": [associated project or null] }' - Output to user: None yet
- Wait for: Continue immediately
Step 5: Create Journal Entry
- Action: Log capture via
journal createEntry {...} - CLI call:
bash
bun run src/aida-cli.ts journal createEntry '{ "entry_type": "task", "content": "Fångade: [task title]", "related_task_id": [created task id] }' - Output to user: None yet
- Wait for: Continue immediately
Step 6: Confirm & Suggest Next Step
- Output to user:
✅ Fångat: "[task title]" Roll: [role name] [Deadline: datum] (if set) Vill du göra något mer med den? (annars är den sparad i captured-status) - Optional follow-ups:
- "Vill du sätta en deadline?"
- "Ska vi aktivera den nu?" (triggers task-activation)
- "Finns det fler saker att fånga?"
- Wait for: User input (optional)
Output Format
- Language: Swedish (default)
- Style: Quick confirmation, minimal text
- Confirmation: Always show captured task with role and deadline (if set)
Example output:
✅ Fångat: "Ringa tandläkaren"
Roll: Förälder
Sparad! Något mer?
Example with deadline:
✅ Fångat: "Skicka rapporten till chefen"
Roll: Systemutvecklare
Deadline: 2025-12-20
Sparad med deadline! 📅
Error Handling
- If
roles getActiveRolesreturns empty: Show error "Inga roller finns. Du behöver skapa roller först via profile-management." - If role inference fails and no clarification: Use first active role as default and inform user "Sparad i [role name]. Om det är fel roll kan du ändra senare."
- If
tasks createTaskfails: Show error message with details, ask user if they want to retry - If
journal createEntryfails: Task is still created, just log warning to console and continue - If duplicate task found: Warn user and ask for confirmation before proceeding
- If project not found: Ignore project_id and create task without project association
Anti-patterns
- NEVER create task without role_id - always infer or ask for role
- NEVER use non-existent project_id - validate project exists before associating
- NEVER over-ask - infer as much as possible, only ask if truly ambiguous
- NEVER force all fields - capture with minimal info, user can refine later
- NEVER modify existing tasks - only create new ones
- NEVER change task status - tasks are created with status='captured'
- NEVER use direct SQL - always use aida-cli.ts
- NEVER run query modules directly (e.g.,
bun run src/database/queries/tasks.ts)
Tool Contract
Allowed CLI Operations:
- tasks: createTask, searchTasks (duplicate check)
- roles: getActiveRoles, getRoleById (READ ONLY)
- projects: searchProjects, getActiveProjects (READ ONLY)
- journal: createEntry (type: task)
Forbidden Operations:
- Updating existing tasks
- Changing task status
- Deleting tasks
- Any profile operations
- Any plan operations
Default Task Values:
- status:
captured - priority: inferred or null
- energy_requirement: inferred or null
File Access:
- No file reads needed
- No file writes - All operations via CLI
Supporting Documentation
- PARSING-RULES.md - How to parse natural language input
- ROLE-INFERENCE.md - Rules for inferring roles
- QUICK-CAPTURE.md - Minimal-friction capture flow
Design Principles
- Speed over perfection - Capture now, refine later
- Minimal questions - Infer as much as possible
- Non-blocking - Don't force user to fill in all fields
- Confirm, don't interrogate - Show what was captured, offer to adjust
Didn't find tool you were looking for?