Skip to content
Skills Library
Management & product · Planning

task-system

/task-system

File-backed task management with dependencies and parallel execution. Use for complex work with 3+ interdependent tasks.

Author
ils15 ↗
Licence
MIT
Last repository change
22.09.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 22.09.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

File-backed task management with dependencies and parallel execution. Use for complex work with 3+ interdependent tasks.

Original author description

File-backed task management with dependencies and parallel execution. Use for complex work with 3+ interdependent tasks.

How it works

  1. When to Use
  2. Task Schema
  3. Storage
  4. Dependency Graph & Parallel Execution
  5. Task Lifecycle
  6. Difference from TodoWrite
  7. Timeout & Retry
  8. Session Reuse
  9. Example: Full Workflow
  10. Wisdom Accumulation Integration
Original SKILL.md headings · 256 lines, 1,043 words
SKILL.md preview
---
name: task-system
description: "File-backed task management with dependencies and parallel execution. Use for complex work with 3+ interdependent tasks."
context: fork
globs: []
alwaysApply: false
---

# Task System — File-Backed Task Management

Use this skill for complex work with multiple interdependent tasks. Tasks are stored as JSON files, survive session restarts, and support automatic parallel execution based on dependency graphs.

---

## When to Use

| Scenario | Use |
|----------|-----|
| 1-2 simple tasks | TodoWrite |
| 3+ tasks with dependencies | **Task System** |
| Tasks need to survive restart | **Task System** |
| Parallel execution needed | **Task System** |
| Multiple agents collaborating | **Task System** |

---

## Task Schema

```json
{
  "id": "T-001",
  "subject": "Build frontend",
  "description": "Implement ReviewCard component with mocked data",
  "status": "pending",
  "activeForm": "Building ReviewCard component",
  "blockedBy": [],
  "blocks": ["T-003"],
  "owner": "Aphrodite",
  "metadata": {},
  "threadID": "session-abc",
  "timeout_ms": 180000,
  "retry_policy": { "count": 3, "backoff": "exponential" },
  "fallback_agent": "talos",
  "partial_ok": false,
  "session_id": null,
  "session_resume": null
}
```

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Auto-generated: `T-{sequential}` |
| `subject` | string | Yes | Imperative: "Run tests", "Build component" |
| `description` | string | Yes | Detailed description of the task |
| `status` | enum | Yes | `pending`, `in_progress`, `completed`, `deleted` |
| `activeForm` | string | No | Present continuous: "Running tests" |
| `blockedBy` | string[] | Yes | Task IDs that must complete first |
| `blocks` | string[] | Yes | Task IDs that this task blocks |
| `owner` | string | No | Agent name responsible |
| `metadata` | object | No | Additional context |
| `threadID` | string | Yes | Session ID (auto-set) |
| `timeout_ms` | integer | No | Timeout in milliseconds for this task (default: 120000 = 2min). 0 = no timeout |
| `retry_policy` | object | No | `{ count: number, backoff: "exponential"\|"fixed" }`. Default: `{ count: 3, backoff: "exponential" }` |
| `fallback_agent` | string | No | Agent name to use if all retries fail. Default: null (escalate to Zeus) |
| `partial_ok` | boolean | No | If true, partial results are acceptable on timeout. Default: false |
| `session_id` | string | No | Alias of the session running this task (e.g. "hermes-1"). Set automatically |
| `session_resume` | string | No | Session alias to resume instead of starting fresh (e.g. "hermes-1") |

---

## Storage

Tasks are stored as JSON files:
```
.pantheon/tasks/
├── T-001.json
├── T-002.json
├── T-003.json
└── ...
```

**Persistence:** Tasks survive session restarts. Delete manually when feature is merged.

---

## Dependency Graph & Parallel Execution

Tasks with empty `blockedBy` run in parallel. Dependent tasks wait until blockers complete.

```
[Build Frontend]    ──┐
                      ├──→ [Integration Tests] ──→ [Deploy]
[Build Backend]     ──┘
```

**Execution flow:**
```
1. T-001 (blockedBy: []) → runs immediately
2. T-002 (blockedBy: []) → runs immediately (parallel with T-001)
3. T-003 (blockedBy: [T-001, T-002]) → waits for both
4. When T-001 + T-002 complete → T-003 unblocks automatically
5. T-004 (blockedBy: [T-003]) → waits for T-003
```

---

## Task Lifecycle

### Create
```
TaskCreate({
  subject: "Build frontend",
  description: "Implement ReviewCard with mocked data",
  blockedBy: [],
  blocks: ["T-003"],
  owner: "Aphrodite"
})
→ Returns: { id: "T-001", ... }
```

### Update
```
TaskUpdate({
  id: "T-001",
  status: "in_progress",
  activeForm: "Building ReviewCard component"
})
```

### List
```
TaskList()
→ Returns all active tasks with status:
  T-001 [in_progress] Build frontend        blockedBy: []
  T-002 [pending]     Build backend         blockedBy: []
  T-003 [pending]     Integration tests     blockedBy: [T-001, T-002]
```

### Get
```
TaskGet({ id: "T-001" })
→ Returns full task object
```

---

## Difference from TodoWrite

| Feature | TodoWrite | Task System |
|---------|-----------|-------------|
| Storage | Session memory | File system (`.pantheon/tasks/`) |
| Persistence | Lost on close | Survives restart |
| Dependencies | None | Full support (`blockedBy`) |
| Parallel execution | Manual | Automatic optimization |
| Multi-agent | Single agent | Multiple agents with owners |
| Best for | Simple sequential work | Complex interdependent work |

---

## Timeout & Retry

Every task can have timeout and retry policies:

```json
{
  "timeout_ms": 180000,
  "retry_policy": { "count": 3, "backoff": "exponential" },
  "fallback_agent": "talos"
}
```

### How it works:

1. Task starts → timeout timer begins
2. If timeout expires → retry with backoff:
   - Exponential: 5s, 15s, 45s (multiply by 3 each retry)
   - Fixed: 10s, 10s, 10s (constant delay)
3. If all retries fail → use `fallback_agent` if configured
4. If no fallback → escalate to Zeus (user decision)

### Partial results (partial_ok: true):

If a task times out but `partial_ok` is true, Zeus can use whatever results were produced and re-delegate the remaining scope.

---

## Session Reuse

Tasks can resume previous sessions to avoid re-reading context:

```json
{
  "session_resume": "hermes-1",
  "session_id": "hermes-2"
}
```

- `session_id` — set automatically when a task starts (alias: `{agent}-{N}`)
- `session_resume` — set manually to continue from a previous session

Session aliases are tracked in-memory by Zeus during a session. Stale references auto-clean.

---

## Example: Full Workflow

```
Zeus creates tasks for "Add Product Reviews":

TaskCreate({ subject: "Create reviews schema", owner: "Demeter" })
→ T-001

TaskCreate({ subject: "Implement POST /reviews", owner: "Hermes", blockedBy: ["T-001"] })
→ T-002

TaskCreate({ subject: "Implement GET /reviews", owner: "Hermes", blockedBy: ["T-001"] })
→ T-003

TaskCreate({ subject: "Build ReviewCard component", owner: "Aphrodite", blockedBy: ["T-001"] })
→ T-004

TaskCreate({ subject: "Integration tests", owner: "Hermes", blockedBy: ["T-002", "T-003", "T-004"] })
→ T-005

TaskList():
  T-001 [pending] Create reviews schema    blockedBy: []
  T-002 [pending] Implement POST /reviews  blockedBy: [T-001]
  T-003 [pending] Implement GET /reviews   blockedBy: [T-001]
  T-004 [pending] Build ReviewCard         blockedBy: [T-001]
  T-005 [pending] Integration tests        blockedBy: [T-002, T-003, T-004]

Execution:
  → T-001 runs (no blockers)
  → T-001 completes
  → T-002, T-003, T-004 unblock → run in parallel
  → All three complete
  → T-005 unblocks → runs
  → T-005 completes → all done
```

---

## Wisdom Accumulation Integration

When a task completes, extract learnings and pass to the next task:

```
T-001 complete → extract learnings → store in learnings.md
T-002 starts → inject learnings.md → avoids repeating T-001 mistakes
```

---

## Cleanup

After the feature is merged:
```
rm -rf .pantheon/tasks/T-*.json
rm -rf .pantheon/learnings/<feature>/
```

Tasks are temporary — they exist only for the duration of the feature implementation.

Versions

RepositoryScoreLicence
This page · ils15/copilot-global-config100MIT
zircote-plugins/claude-team-orchestration100MIT

Identical content appears in 2 other GitHub folders. We show one copy with the highest score.

Database snapshot: 13.11.2026 · package version cfa76d9dce3d (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100planner
    Create structured plans for multi-task projects that can be used by the task-orchestrator skill. Use when breaking down complex work into parallel and sequential tasks with dependencies.
  • 100planning-and-task-breakdown
    Breaks work into ordered tasks. Use when you have a spec or clear requirements and need to break work into implementable tasks. Use when a task feels too large to start, when you need to estimate scope, or when parallel work is possible.
  • 100generate-tasks
    Task generation and breakdown workflow. Use when decomposing a PRD or complex feature into implementable subtasks with clear acceptance criteria and dependencies.
  • 100planning-and-task-breakdown
    Breaks work into ordered tasks. Use when you have a spec or clear requirements and need to break work into implementable tasks. Use when a task feels too large to start, when you need to estimate scope, or when parallel work is possible.
  • 100planning-and-task-breakdown
    Breaks work into ordered tasks. Use when you have a spec or clear requirements and need to break work into implementable tasks. Use when a task feels too large to start, when you need to estimate scope, or when parallel work is possible.
  • 100planning-and-task-breakdown
    Breaks work into ordered tasks. Use when you have a spec or clear requirements and need to break work into implementable tasks. Use when a task feels too large to start, when you need to estimate scope, or when parallel work is possible.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.