Unnamed Skill
Provides Things3 task management workflows, organization patterns, and productivity methodologies. Includes personal taxonomy integration, priority systems, and automation patterns for effective task management. MANDATORY: Claude must read this skill file before using any Things3 MCP tools (read_tasks, create_task, edit_task, migrate_inbox_to_notion).
$ 安裝
git clone https://github.com/Avery2/things3-mcp-tools /tmp/things3-mcp-tools && cp -r /tmp/things3-mcp-tools/.claude/skills/things3-productivity ~/.claude/skills/things3-mcp-tools// tip: Run this command in your terminal to install the skill
name: things3-productivity description: Provides Things3 task management workflows, organization patterns, and productivity methodologies. Includes personal taxonomy integration, priority systems, and automation patterns for effective task management. MANDATORY: Claude must read this skill file before using any Things3 MCP tools (read_tasks, create_task, edit_task, migrate_inbox_to_notion).
Things3 Productivity & Task Management
Overview
This skill provides comprehensive guidance for Things3 task management, including organizational patterns, workflow automation, and integration with personal productivity systems.
CRITICAL REQUIREMENT: Before using ANY Things3 MCP tools (read_tasks, create_task, edit_task, migrate_inbox_to_notion), Claude MUST read this entire skill file to understand the proper query strategies, tag inheritance rules, and organizational patterns. Failure to do this results in broken workflows and incorrect task organization.
Keywords: things3, task management, productivity, GTD, priority, areas, projects, scheduling, automation, applescript
Pre-Flight Checklist for Things3 Operations
MANDATORY: Before ANY Things3 task/project operations, verify ALL items:
- Skill loaded: Confirm things3-productivity skill is active in this conversation
- Change validation: Present diff summary using validation protocol for bulk operations
- Tool limitations checked: Review "Tool Limitations & Workarounds" section for constraints
- Verification plan: Define how to verify operations succeeded (e.g.,
get_project_tasks,read_tasks) - Scheduling complete: For projects, schedule with
edit_taskaftercreate_project(workaround for missingwhen/deadline)
For project breakdowns specifically:
- Present breakdown plan to user before creating projects
- Create projects with proper area/tags
- Use
edit_taskto set projectwhenanddeadline - Create all subtasks with
projectparameter - Verify tasks landed in projects using
get_project_tasks - If verification fails, use
edit_taskto move tasks to correct projects
Personal Organization System
Task Taxonomy
Personal organization patterns are automatically loaded from private-prefs/personal-taxonomy.json:
- Work tags: Personal work identification tags (e.g., "WORK")
- Work areas: Professional focus areas (e.g., "Work")
- Priority system: 7+ for high priority tasks (1-9 scale)
- Priority distribution: Balanced allocation - 1 item in priority 1, 2 items in priority 2, 3 items in priority 3, etc. Only use "+" priority for non-organic urgent items
- Common patterns: Frequently used organizational structures
Scheduling Philosophy
- Today view: Active tasks for current day focus
- Someday/Maybe: Future considerations and ideas
- Anytime: Available tasks without specific timing
- Inbox: Capture point for quick entry and processing
Core Workflows
Change Validation Protocol
Before making any reorganization changes (task lists, views, scheduling), present a natural language diff summary:
Standard validation format:
**Before**: [what currently exists/state]
**Completed/Removed**: [items being completed or removed]
**Moving/Keeping**: [items staying but changing location/category]
**New/Added**: [new items being added] → [where they're going]
**After**: [final organized state]
When to use: View cleanup, bulk rescheduling, area/project reorganization, tag restructuring
Things3-Specific Workflows
View Cleanup/Reorganization
- Reorganize by areas, projects, and priority levels
- Apply personal taxonomy consistently
- Use change validation protocol before executing
Bulk Task Operations
- Reschedule multiple tasks between lists (Today/Someday/Anytime)
- Apply tags consistently across task groups
- Use change validation protocol before executing
Daily Planning
- Morning review: Check Today view for scheduled tasks
- Inbox processing: Clear inbox items regularly
- Priority assessment: Use 7+ priority for high-importance items, maintain distribution (1 item in priority 1, 2 in priority 2, etc.)
- Work focus: Filter by personal work tags for professional tasks
Task Creation Patterns
- Quick capture: Minimal title for speed, elaborate later
- Contextual tagging: Apply work tags and priority numbers
- Proper scheduling: Use list-based scheduling (Today/Someday/Anytime)
- Project organization: Group related tasks under projects
Weekly/Monthly Reviews
- Review Someday items for potential activation
- Archive completed projects
- Update area focus based on changing priorities
- Maintain clean project and area structure
MCP Tools Integration
Available Tools
read_tasks: View tasks with flexible filtering and project discovery (AppleScript-based)search_tasks: Search tasks by string query across titles and notes (SQLite-based via things.py)create_task: Add new tasks via AppleScript automationedit_task: Modify existing tasks including scheduling and propertiescreate_project: Create new projects (NOTE: does NOT supportwhenordeadline- useedit_taskafter creation)migrate_inbox_to_notion: Transfer inbox items to Notion for documentation
Tool Limitations & Workarounds
create_project Limitations
Missing parameters: when (scheduling), deadline (due date)
Workaround: After creating project, use edit_task with project UUID to set:
- Scheduling:
edit_task(task_uuid=project_id, when="today") - Deadline:
edit_task(task_uuid=project_id, deadline="YYYY-MM-DD")
Example workflow:
# 1. Create project
result = create_project(name="Project Name", area="Area", tags=["tag"])
project_id = result["project"]["id"]
# 2. Set scheduling and deadline
edit_task(task_uuid=project_id, when="today")
# Note: deadline parameter may not be supported in edit_task - verify tool schema
create_task with project Parameter
Potential issue: Tasks may not properly nest under projects when using project parameter.
Verification step: After bulk task creation, always verify tasks are in correct projects:
get_project_tasks(project_id="project_uuid")
If tasks missing: Use edit_task to move them:
edit_task(task_uuid="task_id", project="Project Name")
Tool Usage Patterns
Cardinality Reduction Strategy
Core principle: ALWAYS default to when="today" to reduce from thousands to manageable set
CRITICAL: NEVER use when="anytime" or omit the when parameter without explicit user request - these queries are extremely expensive. Always default to when="today" unless user specifically asks for other views (inbox, anytime, someday, upcoming).
Work View Query Strategy (Multi-part approach)
For complete work task coverage, use 3-part queries:
# Part 1: Direct work tags
read_tasks(when="today", tags=["WORK"])
# Part 2: Area inheritance (tasks in work areas inherit tags)
read_tasks(when="today", area="Work")
# Part 3: Project inheritance (discover work projects through exploration)
read_tasks(when="today", project="on-call") # example work project
Other Common Patterns
# High priority work focus
read_tasks(when="today", tags=["WORK"], min_priority=7)
read_tasks(when="today", area="Work", min_priority=7)
# Inbox processing
read_tasks(when="inbox", limit=10)
# Context-specific work (combine filters as needed)
read_tasks(when="today", area="Work")
read_tasks(when="anytime", tags=["WORK"], project="on-call")
Tag Inheritance Rules
- Direct tags: Tasks explicitly tagged with WORK
- Area inheritance: Tasks in Work area automatically inherit WORK context
- Project inheritance: Tasks in projects tagged with WORK inherit work context
- Tool limitation:
read_taskswithtags=["WORK"]only finds directly tagged tasks, NOT tasks inheriting through projects/areas. Use multi-part queries (Parts 1, 2, 3 above) orsearch_tasksto find all work tasks.
String Search for Task Discovery
Use search_tasks when looking for specific tasks by partial title or content:
# Find task by partial title (e.g., finding "AMP-138806" task)
search_tasks(query="138806", when="today")
# Search across all tasks (no list filter)
search_tasks(query="meeting prep")
# Combine with filters
search_tasks(query="bug", area="Work", tags=["urgent"])
Advantages over read_tasks:
- Searches both titles AND notes
- Uses SQLite directly (faster, more comprehensive)
- No need to know exact title or list location
When to use search_tasks vs read_tasks:
search_tasks: Finding tasks by partial title/content, don't know exact locationread_tasks: Viewing all tasks in a specific list/area/project with filters
Project Discovery (New Capability)
Use read_tasks(area="AreaName", list_projects=True) to discover existing projects within areas:
# Discover projects within any area before task organization
read_tasks(area="WorkArea", list_projects=True)
# Returns list of projects with names and IDs
# Example output: project names, administrative projects, feature-specific projects, etc.
Critical for task organization: Always discover existing project structure before moving tasks to avoid creating duplicates. This solves the problem of not knowing what projects exist within areas.
Work area example: When organizing work tasks, use read_tasks(area="Work", list_projects=True) to find existing work projects.
AppleScript Automation
List-Based Scheduling
Tasks move between scheduling lists:
- Today: Scheduled for current day
- Someday: Future scheduling (Someday/Maybe)
- Anytime: Available without specific timing
- Upcoming: Future dated scheduling
Tag Management
- Auto-create tags if they don't exist
- Apply multiple tags for context and priority
- Use personal taxonomy for consistent tagging
- Combine work identification with priority numbers
Task Properties
- Title: Clear, actionable descriptions
- Notes: Detailed context and requirements
- Area/Project: Organizational hierarchy
- Tags: Context and priority markers
Integration Workflows
Things3 ↔ Notion
- Use Things3 for task execution and scheduling
- Use Notion for detailed documentation and planning
- Migrate notes and context from Things3 inbox to Notion
- Maintain cross-references between systems
Personal Context Awareness
This skill automatically considers:
- Personal work areas and professional context
- Priority level definitions and usage patterns
- Common tag combinations and organizational preferences
- Integration points with other productivity systems
Productivity Methodologies
Getting Things Done (GTD) Principles
- Inbox as universal capture point
- Context-based task organization
- Regular review cycles for maintenance
- Clear next action definitions
Personal Adaptations
- Work/personal separation through area management
- Priority-based focus using numerical tags
- List-based scheduling for time management
- Project-based organization for complex work
Always reference personal taxonomy and organizational preferences when suggesting Things3 workflows or automation.
Repository
