| name | task-juggler |
| description | Score and rank tasks using the Task Juggler framework. Load this when the user asks what to work on, wants to add/complete tasks, or asks about their pylons. |
| triggers | ["what should I do","what do I work on","prioritize","rank my tasks","add task","mark done","how are my pylons","period context","show tasks","sort by"] |
Task Juggler Skill
Files to read
Always read tasks.json before scoring. It contains pylons, tasks, and current period weights.
Task Attributes (all 1โ10)
urgency โ deadline pressure, time sensitivity
value โ tangible ROI: money, favors, work convenience, ease
influence โ reputational capital: visibility, doors opened, future projects
interest โ how much the user wants to do it (motivation, energy match)
duration โ estimated days to complete
Task States
not started โ ready to work on, ranked normally
started โ in progress, ranked normally
paused โ temporarily on hold, excluded from ranking
completed โ done, archived, excluded from ranking
stopped โ cancelled, excluded from ranking
abandoned โ dropped, excluded from ranking
Dependencies
deps: ["Task Title"] โ if a dependency is not completed, the task is blocked.
Blocked tasks are excluded from ranking unless the user explicitly asks to see them.
Scoring Formula (default: gut_roi)
score = (urgencyร3 + valueร2 + influenceร2 + interest) / (8 ร weighted_cost)
- urgency weights highest (deadline = now or never)
- value & influence are equal (tangible vs reputational ROI)
- interest is tiebreaker (energy match)
- divide by 8 to normalize to a readable scale
leverage bonus: multiply final score ร 1.4 if leverage: true
promoted attribute: if user says "promote [attr] this period" โ multiply that attribute ร 1.5
weighted_cost = sum(resource ร period_weight) / sum(period_weights)
resources: time, money, energy, social (1โ5 each)
period_weights: from tasks.json period.weights (higher = more scarce right now)
Strategies
See strategies.md. Switch with: "use [strategy] strategy"
- gut_roi (default) โ formula above
- balance โ boost pylons furthest from target
- compound โ leverage tasks ร2
- weakest_pylon โ divide score by pylon current level
Output format when ranking
#1 [Task Title] โ [Pylon] โ score: X.XX
U:X V:X I:X Int:X Dur:Xd | T:X M:X E:X S:X | [leverage] [blocked]
โ [one line reason why this ranks here]
Sorting tasks
User can sort by: urgency, value, influence, interest, duration, state, pylon, id
"Sort by urgency" โ re-rank by that attribute descending
"Show lowest effort tasks first" โ sort by time ascending
Sorting pylons
User can sort pylons by: gap (targetโlevel), level, task count, open tasks
"Which pylon has the most gap?" โ sort by (target - level) descending
Adding a task
When user says "add task: X", infer as much as possible from context.
Ask only for: pylon (if unclear), and whether it is leverage.
Estimate all attributes โ do not interrogate for every field.
Always show the full JSON object and ask for confirm before writing.
Updating tasks.json
After any operation (add / state change / edit), show the exact change and confirm.
Use state "completed" + set completed date instead of deleting tasks.
CLI tool (tjg.py)
The user can also manage tasks from the terminal:
python tjg.py show [--pylon <name>] [--sort <key>] [--desc]
python tjg.py add <title> --pylon <name> [--urgency N] [--value N] [--influence N] [--interest N] [--duration N]
python tjg.py done <taskId>
python tjg.py update <taskId> [--field value ...]
python tjg.py delete <taskId>