Skip to content

Tasks

Tasks are the core unit of work in Neova. Each task is a living document where you define goals, agents contribute output, and decisions are captured over time.

Tasks are stored as individual JSON files in .neova/tasks/.

Neova Task Editor

Click any task card on the board to open the Task Detail Panel — a modal overlay for quick edits without leaving the board.

For longer tasks or focused work, open the Task Editor page:

  • Click the expand icon in the Task Detail Panel
  • Use keyboard shortcut ⌘E while a task is open
  • Navigate via the sidebar
FieldDescription
idUnique identifier. Format: {timestamp}-{2-char-random}.
titleTask title. Displayed on cards and in the editor.
descriptionMain content. Supports full Markdown.
tagsLabels for filtering and organization.
statusEither pending or completed.
stageCurrent workflow stage (e.g., “Backlog”, “Implement”).
orderSort position within the stage.
createdAtISO timestamp when the task was created.
updatedAtISO timestamp of last modification.
historyActivity log of changes and agent interactions.
attachmentsImage attachments linked to the task.

The task description uses a rich Markdown editor with:

  • Full Markdown support — headings, lists, code blocks, tables, links
  • Live preview — see formatted output as you type
  • Replacement fields — insert dynamic variables like {{task.title}} or {{snippet.name}}
  • Syntax highlighting — for code blocks
  • Keyboard shortcuts⌘B bold, ⌘I italic, ⌘K link

Every task maintains an activity log in the history array. History entries capture:

FieldDescription
timestampWhen the activity occurred (ISO string).
sourceWho made the change: system, agent name, or custom identifier.
messageDescription of what happened.

History is visible in the Task Detail Panel and full Task Editor. It helps you track:

  • When the task was created
  • Agent interactions and updates
  • Stage transitions
  • Key decisions and milestones

Example history entry:

{
"timestamp": "2026-02-08T14:53:51.528Z",
"source": "claude-code",
"message": "Task created"
}

Tasks support image attachments for screenshots, diagrams, and visual references.

FieldDescription
idUnique identifier for the attachment.
filenameDisplay name (e.g., screenshot-task-title-1.png).
pathRelative path from project root (stored in .neova/images/).
mimeTypeFile type (image/png, image/jpeg).
sizeFile size in bytes.
addedAtWhen the attachment was added.

Add images by:

  • Drag and drop onto the attachment area
  • Paste from clipboard
  • Click to browse

Tags help organize and filter tasks across the board.

  • Add tags via the tag display or tag modal
  • Tags are shared across all tasks in the project
  • Custom colors can be assigned in tag-colors.json

Tasks have two statuses:

StatusDescription
pendingActive task, still in progress.
completedTask is done. Stays visible on the board until archived.

Toggle status with the Done / Reopen button in the Task Detail Panel.

When a task is in a stage with assigned activities, those activities appear as action buttons. Each button:

  • Renders the activity template with task context
  • Copies the prompt to clipboard (or sends to agent terminal)
  • Lets you quickly run structured workflows on the task

Tasks are stored as JSON files in .neova/tasks/:

{
"id": "1770562431528-8h",
"title": "Add user authentication",
"description": "## Goal\n\nImplement JWT-based auth...",
"tags": ["feature", "backend"],
"status": "pending",
"stage": "Implement",
"order": 12,
"createdAt": "2026-02-08T14:53:51.528Z",
"updatedAt": "2026-02-10T09:21:33.000Z",
"history": [
{
"timestamp": "2026-02-08T14:53:51.528Z",
"source": "system",
"message": "Task created"
}
],
"attachments": []
}

Archived tasks are moved to .neova/tasks/archive/.