
# Projects

A **Project** is the Work delivery container: people, agents, repositories,
tickets, todos, decisions and agent runs. Releases (`Iteration`) hang only on
projects whose `kind` is `product` or `ops`. Teams remain the git ACL boundary.

Open **Projects** in the header. The sidebar switches between **Iterations**
and **Todos**. Iterations lists projects in display order, each with its
current iterations (planned, active or blocked) and archived projects grouped
at the end. A project page shows the iteration in focus as a card and the other
current iterations as rows with their schedule and progress. Todos shows the
todo views across projects. Organization administrators and Work managers drag
projects in the sidebar to reorder them for everyone.

![A project overview in a synthetic example workspace](/images/projects.png "A project overview: the current iteration with its burn-up, status counts and members.")

## Overview

A project opens on its overview, drawn from one `planning_brief` read:

- the current iteration (active, else blocked, else the next planned one) with
  its burn-up;
- counts of open, in-progress, blocked and overdue todos, each opening the
  filtered list;
- **Risks**: todos that are overdue, blocked or whose due day moved twice or more;
- **Load and capacity**: each assignee's open todos and estimated work against
  the working days left before the iteration's due day, this week's completions
  and logged hours, todos without an estimate and done todos without time;
- the latest deliveries and the project's **History** (such as a deleted
  iteration, who deleted it and how many todos became unplanned).

**Write an update** hands the project to Aidy, which reads the same brief and
writes a status update: health (on track, at risk or off track) with its
evidence, progress, risks and scope changes with links, load, and next steps.

| Field | Meaning |
|---|---|
| `id` | Stable slug used on tickets/todos. |
| `en` / `zh` | Localized names. |
| `kind` | `product`, `ops`, `platform`, or `internal`. |
| `status` | `active`, `paused`, `done`, `archived` |
| `owner_login` / `members` / `repos` | Ownership, membership and related repositories. |
| `position` | Display order. Work managers set it with `project_reorder` (`POST /work/projects/order`, `{"ids":[...]}`); listed projects come first in that order, the rest keep their order after them. |

`project_list` returns each project with `members` (logins in order), `repos_count`,
`open_todos` and `current_iteration` (`{id, version, title, status, done, total}`,
active first, then blocked, then planned). `iteration_list` rows and
`iteration_get` carry `deliveries_count` and the iteration's `done`/`total` todos.

```bash
acahti mcp call project_list '{}'
acahti mcp call project_context '{"id":"turbomesh"}'
acahti mcp call iteration_create '{"project_id":"turbomesh","version":"1.4","title":"Autumn delivery","owner":"alice"}'
```
