Projects & Tasks
Overview
Section titled “Overview”Snippbot organizes all agent work in a three-level hierarchy:
Project└── Phase (1..n) └── Task (1..n)A Project is a goal. A Phase is a stage of work. A Task is a unit of execution assigned to an agent.
Projects
Section titled “Projects”A project represents a complete goal or objective. When you describe a goal in natural language, Snippbot:
- Parses the goal into a structured plan
- Creates phases with logical groupings of work
- Generates tasks with dependencies, inputs, and expected outputs
- Presents the plan for your approval before execution begins
Project status FSM
Section titled “Project status FSM”pending → approved → running → completed ↘ failed ↘ cancelled| Status | Description |
|---|---|
pending | Plan generated, awaiting approval |
approved | Approved, queued for execution |
running | Currently executing |
completed | All tasks finished successfully |
failed | One or more tasks failed |
cancelled | Manually cancelled |
Projects stay in pending until you explicitly approve them, giving you control before any agent action is taken.
Phases
Section titled “Phases”A phase groups related tasks within a project. Phases execute sequentially by default — Phase 2 doesn’t start until Phase 1 is complete.
Each phase has:
- A name and description
- An ordered list of tasks
- An execution strategy for its tasks
Task execution strategies
Section titled “Task execution strategies”Within a phase, tasks can be scheduled in different patterns:
| Strategy | Description |
|---|---|
sequential | Tasks run one-by-one in order |
parallel | All tasks run concurrently |
dag | Tasks run in dependency order (topological sort) |
A task is the smallest unit of work. Each task has:
| Field | Description |
|---|---|
title | Short description |
description | Full task instructions for the agent |
agent_id | Which agent executes this task |
inputs | Data or file references needed |
outputs | Expected output files or data |
depends_on | IDs of tasks that must complete first |
retries | How many times to retry on failure |
timeout | Maximum execution time |
status | pending → running → completed / failed |
Task status FSM
Section titled “Task status FSM”pending → running → completed ↘ failed → (retry) → running ↘ cancelledDAG execution
Section titled “DAG execution”When a phase uses the dag strategy, tasks form a directed acyclic graph via their depends_on relationships. Tasks with no dependencies run first; subsequent tasks run when all their dependencies complete.
Task A ──┐ ├──→ Task C ──→ Task DTask B ──┘In this example, A and B run in parallel, then C runs after both complete, then D runs last.
Project API
Section titled “Project API”Projects are managed via the /api/projects REST API and the snippbot project CLI commands.
CLI quick reference:
snippbot project list # List all projectssnippbot project list --status running # Filter by statussnippbot project show <id> # Show project detailssnippbot project approve <id> # Approve a pending projectsnippbot project cancel <id> # Cancel a projectSee Projects API for the full REST API reference.
Related
Section titled “Related”- Execution concepts — how tasks are run, retry logic, failure classification
- Agents — agent configuration and workspace
- API Reference: Projects — full endpoint documentation
- CLI: project command — CLI reference