# core/tasks — AGENTS.md

## Purpose

Task graph management: defines tasks, their status, links, notes, and history; projects task state from events; assembles task context bundles for inference; syncs with git commit history; and provides search and retrieval over the task board.

## Ownership

CORREX kernel team.

## Local Contracts

- `Task` / `TaskState` / `TaskStatus` / `TaskLink` / `TaskNote` — core task domain types.
- `TaskReducer` / `DefaultTaskReducer` — standard reducer over `TaskEvents` (from `core:events`).
- `TaskBoardProjector` — projects all tasks into `TaskBoard` (the full board view).
- `DefaultTaskRepository` wraps `EventReplayer<TaskState>`.
- `TaskGraph` — dependency/link graph over tasks; surfaces ready/blocked status.
- `TaskBoard` — aggregated view: all tasks + graph relationships.
- `TaskHistory` — event history for a single task.
- `TaskMarkdown` — renders task state as Markdown for context injection.
- `TaskContextAssembler` / `TaskContextBundle` — assembles task-related context for an inference call.
- `TaskSearch` — keyword/status search over `TaskBoard`.
- `TaskService` — application-layer facade for task operations (create, update, transition).
- `TaskStreams` — streaming task updates for WS consumers.
- `TaskKnowledgeRetriever` — retrieves task-related knowledge for L3 context.
- `GitTaskSync` / `CommitTaskParser` — syncs tasks from git commit history.
- `TaskArtifactResolver` / `TaskDocumentResolver` / `TaskSessionResolver` — resolvers for task-linked artifacts, documents, and sessions.
- `TaskTargetKinds` / `TaskCounterProjection` / `TaskCounterState` — supporting types.

## Work Guidance

- Follow the standard Events→State→Reducer→Projector→Repository pattern (see `core/AGENTS.md`).
- `DefaultTaskReducer` only does `state.copy(...)`.
- `TaskGraph` is a derived structure — always rebuild from `TaskBoard`, never persist it independently (Hard Invariant #1).
- `GitTaskSync` reads git history; its observations must be recorded as events (Hard Invariant #9). Do not re-read git history during replay.

## Verification

```bash
./gradlew :core:tasks:test --rerun-tasks
```

## Child DOX Index

No child AGENTS.md (leaf module).
