task-formatting
SKILL.md
Task Formatting
Tools for formatting and structuring tasks for ClickUp, Linear, and other project management systems.
Quick Start
Format ClickUp task:
python scripts/format_clickup_task.py --title "Add feature" --description desc.md --priority high --output task.json
Format Linear issue:
python scripts/format_linear_issue.py --title "Fix bug" --description "Bug details" --team-id abc123 --output issue.json
Calculate priority:
python scripts/calculate_priority.py --urgency high --impact high --effort low
Task Formatting Patterns
1. ClickUp Task Format
Standard task structure:
{
"name": "Task Title",
"description": "Detailed description with markdown",
"priority": 2,
"status": "to do",
"tags": ["bug", "urgent"],
"assignees": [123456],
"due_date": "2026-01-20",
"time_estimate": 3600000
}
Priority levels:
1= Urgent (red)2= High (orange)3= Normal (yellow)4= Low (gray)
Common statuses:
to doin progressreviewdone
2. Linear Issue Format
Standard issue structure:
{
"title": "Issue Title",
"description": "Detailed description with markdown",
"priority": 1,
"teamId": "abc123",
"assigneeId": "user-id",
"labelIds": ["label-1", "label-2"],
"stateId": "state-id",
"estimate": 3
}
Priority levels:
0= No priority1= Urgent2= High3= Normal4= Low
Common states:
BacklogTodoIn ProgressIn ReviewDoneCanceled
Priority Calculation
Formula
Calculate task priority based on multiple factors:
Priority Score = (Urgency × 3) + (Impact × 2) + (Effort × -1)
Where:
- Urgency: 1-5 (how soon it needs to be done)
- Impact: 1-5 (how many people/systems affected)
- Effort: 1-5 (how much work required)
Mapping to priority levels:
- Score ≥ 15: Urgent (Priority 1)
- Score 10-14: High (Priority 2)
- Score 5-9: Normal (Priority 3)
- Score < 5: Low (Priority 4)
Examples
Bug affecting production:
Urgency: 5 (needs immediate fix)
Impact: 5 (all users affected)
Effort: 2 (quick fix)
Score = (5 × 3) + (5 × 2) + (2 × -1) = 15 + 10 - 2 = 23
Priority: Urgent (1)
Feature request:
Urgency: 2 (can wait)
Impact: 3 (some users want it)
Effort: 4 (significant work)
Score = (2 × 3) + (3 × 2) + (4 × -1) = 6 + 6 - 4 = 8
Priority: Normal (3)
Technical debt:
Urgency: 1 (no rush)
Impact: 2 (affects developers only)
Effort: 3 (moderate work)
Score = (1 × 3) + (2 × 2) + (3 × -1) = 3 + 4 - 3 = 4
Priority: Low (4)
Status Mapping
ClickUp ↔ Linear Mapping
STATUS_MAP = {
# ClickUp → Linear
"to do": "Todo",
"in progress": "In Progress",
"review": "In Review",
"done": "Done",
"blocked": "Blocked",
# Linear → ClickUp
"Backlog": "to do",
"Todo": "to do",
"In Progress": "in progress",
"In Review": "review",
"Done": "done",
"Canceled": "closed"
}
GitHub Issues ↔ ClickUp/Linear
GITHUB_STATUS_MAP = {
# GitHub → ClickUp/Linear
"open": "to do",
"in_progress": "in progress",
"closed": "done",
# ClickUp/Linear → GitHub
"to do": "open",
"in progress": "open",
"review": "open",
"done": "closed"
}
Task Templates
Bug Report
# Bug Report
## Description
[Brief description of the bug]
## Steps to Reproduce
1. Step one
2. Step two
3. Step three
## Expected Behavior
[What should happen]
## Actual Behavior
[What actually happens]
## Environment
- Browser/Device:
- OS:
- Version:
## Screenshots
[If applicable]
## Additional Context
[Any other relevant information]
Feature Request
# Feature Request
## Problem Statement
[What problem does this solve?]
## Proposed Solution
[How should we solve it?]
## Alternatives Considered
[What other approaches did you consider?]
## User Stories
- As a [role], I want [feature] so that [benefit]
## Acceptance Criteria
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
## Technical Notes
[Any technical considerations]
Task
# Task
## Objective
[What needs to be done?]
## Context
[Why is this important?]
## Steps
1. Step one
2. Step two
3. Step three
## Definition of Done
- [ ] Implementation complete
- [ ] Tests written
- [ ] Documentation updated
- [ ] Code reviewed
- [ ] Merged to main
Scripts
format_clickup_task.py
Format a task for ClickUp.
Usage:
python scripts/format_clickup_task.py \
--title "Add user authentication" \
--description description.md \
--priority high \
--tags "feature,auth" \
--due-date "2026-01-20" \
--estimate 4h \
--output task.json
Arguments:
--title: Task title (required)--description: Description text or markdown file--priority: Priority level (urgent, high, normal, low)--tags: Comma-separated tags--due-date: Due date (YYYY-MM-DD)--estimate: Time estimate (e.g., "4h", "2d")--output: Output JSON file
format_linear_issue.py
Format an issue for Linear.
Usage:
python scripts/format_linear_issue.py \
--title "Fix login bug" \
--description "Users can't login" \
--team-id "team-abc" \
--priority urgent \
--labels "bug,auth" \
--estimate 3 \
--output issue.json
Arguments:
--title: Issue title (required)--description: Description text--team-id: Team ID (required)--priority: Priority level (urgent, high, normal, low)--labels: Comma-separated labels--estimate: Story points (1-5)--output: Output JSON file
calculate_priority.py
Calculate task priority based on factors.
Usage:
python scripts/calculate_priority.py \
--urgency 5 \
--impact 4 \
--effort 2 \
--format clickup
Arguments:
--urgency: Urgency level (1-5)--impact: Impact level (1-5)--effort: Effort level (1-5)--format: Output format (clickup, linear)
Output:
{
"score": 23,
"priority": 1,
"priority_label": "Urgent",
"recommendation": "Address immediately",
"factors": {
"urgency": 5,
"impact": 4,
"effort": 2
}
}
Task Metadata
Labels/Tags
Bug-related:
bug- General bugcritical-bug- Severe bug affecting many usersminor-bug- Small issue with workaround
Feature-related:
feature- New featureenhancement- Improvement to existing featurerefactor- Code improvement without new functionality
Type:
documentation- Documentation updatetest- Test-relatedci/cd- CI/CD pipelinesecurity- Security-relatedperformance- Performance improvement
Priority:
urgent- Needs immediate attentionhigh-priority- Important but not urgentlow-priority- Can wait
Time Estimates
ClickUp (milliseconds):
- 1 hour = 3,600,000
- 2 hours = 7,200,000
- 4 hours = 14,400,000
- 1 day = 28,800,000 (8 hours)
Linear (story points):
- 1 point = ~2 hours
- 2 points = ~4 hours
- 3 points = ~1 day
- 5 points = ~2 days
- 8 points = ~1 week
Helper function:
def parse_time_estimate(estimate_str: str) -> int:
"""
Parse time estimate string to milliseconds.
Examples:
"2h" → 7,200,000
"1d" → 28,800,000
"30m" → 1,800,000
"""
Integration with Agents
Automation Agent
from task_formatting import format_clickup_task, calculate_priority
# Calculate priority
priority_data = calculate_priority(urgency=5, impact=4, effort=2)
# Format task
task = format_clickup_task(
title="Fix critical bug",
description="Bug description",
priority=priority_data['priority'],
tags=['bug', 'urgent']
)
# Create in ClickUp
clickup_client.create_task(
list_id='list-123',
**task
)
Code Agent
from task_formatting import format_linear_issue
# Create issue from GitHub PR
issue = format_linear_issue(
title=pr['title'],
description=pr['body'],
team_id='team-abc',
priority='normal',
labels=['pr-review']
)
# Create in Linear
linear_client.create_issue(**issue)
Best Practices
Task Titles
- Start with verb (Add, Fix, Update, Refactor)
- Be specific and concise
- Include context when needed
- 50-70 characters maximum
Good:
- "Add user authentication with OAuth"
- "Fix login redirect bug on mobile"
- "Update payment processing to Stripe API v2"
Bad:
- "Auth" (too vague)
- "Fix bug" (not specific)
- "Update the entire payment processing system to use the new Stripe API version 2 with improved error handling" (too long)
Task Descriptions
- Start with problem statement
- Include context and background
- List acceptance criteria
- Add technical notes if needed
- Link to related tasks/docs
Priority Assignment
- Don't make everything urgent
- Consider actual impact
- Factor in effort required
- Review priorities regularly
- Use data when available
Status Updates
- Update status promptly
- Add comments for blockers
- Tag people when needed
- Close completed tasks
- Archive old tasks
Examples
See templates/ directory for example tasks:
bug_report_template.jsonfeature_request_template.jsontask_template.json
Weekly Installs
1
Repository
dglowacki/mega-agent-v2First Seen
9 days ago
Security Audits
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1