Purpose: JSON schema reference for task management files
Last Updated: 2026-01-11
Task management uses two JSON file types:
task.json - Feature-level metadata and trackingsubtask_NN.json - Individual atomic tasks with dependenciesLocation: .tmp/tasks/{feature-slug}/ (at project root)
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | kebab-case identifier |
name |
string | Yes | Human-readable name (max 100) |
status |
enum | Yes | active / completed / blocked / archived |
objective |
string | Yes | One-line objective (max 200) |
context_files |
array | No | Standards paths only — coding conventions, patterns, security rules to follow |
reference_files |
array | No | Source material only — project files to look at (existing code, config, schemas) |
exit_criteria |
array | No | Completion conditions |
subtask_count |
int | No | Total subtasks |
completed_count |
int | No | Done subtasks |
created_at |
datetime | Yes | ISO 8601 |
completed_at |
datetime | No | ISO 8601 |
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | {feature}-{seq} |
seq |
string | Yes | 2-digit (01, 02) |
title |
string | Yes | Task title (max 100) |
status |
enum | Yes | pending / in_progress / completed / blocked |
depends_on |
array | No | Sequence numbers of dependencies |
parallel |
bool | No | True if can run alongside others |
context_files |
array | No | Standards paths only — conventions and patterns to follow |
reference_files |
array | No | Source material only — existing files to reference |
suggested_agent |
string | No | Recommended agent for this task (e.g., OpenFrontendSpecialist) |
acceptance_criteria |
array | No | Binary pass/fail conditions |
deliverables |
array | No | Files to create/modify |
agent_id |
string | No | Set when in_progress |
started_at |
datetime | No | ISO 8601 |
completed_at |
datetime | No | ISO 8601 |
completion_summary |
string | No | What was done (max 200) |
pending → in_progress (by working agent, when deps satisfied)
in_progress → completed (by TaskManager, after verification)
* → blocked (by either, when issue found)
blocked → pending (when unblocked)
parallel: true = Isolated task, can run alongside othersparallel: false = May affect shared state, run sequentiallyUse task-cli.ts parallel to find all parallelizable tasks ready to run.
These two fields serve fundamentally different purposes. Never mix them.
| Field | Answers | Contains | Agent behavior |
|---|---|---|---|
context_files |
"What rules do I follow?" | Standards, conventions, patterns from .opencode/context/ |
Load and apply as coding guidelines |
reference_files |
"What existing code do I look at?" | Project source files, configs, schemas | Read to understand existing patterns |
Wrong ❌ — mixing standards and source files:
"context_files": [
".opencode/context/core/standards/code-quality.md",
"package.json",
"src/existing-auth.ts"
]
Right ✅ — clean separation:
"context_files": [
".opencode/context/core/standards/code-quality.md",
".opencode/context/core/standards/security-patterns.md"
],
"reference_files": [
"package.json",
"src/existing-auth.ts"
]
{
"id": "auth-system-02",
"seq": "02",
"title": "Create JWT service",
"status": "pending",
"depends_on": ["01"],
"parallel": false,
"context_files": [
".opencode/context/core/standards/code-quality.md",
".opencode/context/core/standards/security-patterns.md"
],
"reference_files": [
"src/auth/token-utils.ts"
],
"acceptance_criteria": ["JWT tokens signed with RS256", "Tests pass"],
"deliverables": ["src/auth/jwt.service.ts"]
}
../guides/splitting-tasks.md - How to decompose features../guides/managing-tasks.md - Lifecycle workflow../lookup/task-commands.md - CLI reference