Agent skill
task-formatting
Format and structure tasks for ClickUp and Linear including priority calculation, status mapping, and task templates. Use when creating or updating tasks across project management systems.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?