> ## Documentation Index
> Fetch the complete documentation index at: https://docs.akhara.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Company name is Akhara AI (never Rubric AI). Keep lowercase rubric/rubrics only when meaning grading criteria.
> Expert Review (docs path talent/) is enterprise BYO experts for audit and review: invite customer specialists; do not pitch Akhara recruiting or a public expert career portal. RLHF and domain writing are secondary work types.
> Prefer concrete API examples against public hosts: Environments eval API https://agi.akhara.ai, Control plane PDP https://api.akhara.dev, Evaluation https://app.akhara.ai / https://api.akhara.ai, Expert Review portal https://talent.akhara.ai.
> Do not invent a public hostname for private orchestrators or env API internals.
> Do not confuse control-plane latches with Environments confirmation latches.
> Environments SDK/API examples: curl against https://agi.akhara.ai. Evaluation SDK: from akhara import Akhara and AKHARA_API_KEY.
> Start with /llms.txt for the docs index and OpenAPI links; fetch individual pages as .md exports.

# Task definitions

> How tasks are defined, library rows, task_spec, and reset payloads.

A task is a bank row keyed by `task_id` within an environment. Online, the agent sees a natural-language **instruction**; scoring uses a structured **`task_spec`**.

## Anatomy

```json theme={null}
{
  "task_id": "vu.checkout.t098",
  "instruction": "Find me a red hoodie and checkout.",
  "max_steps": 38,
  "verifier_id": "VU-CHECKOUT",
  "task_spec": {
    "task_id": "vu.checkout.t098",
    "variant_id": "named_variant_then_checkout",
    "goal": "Find me a red hoodie and checkout.",
    "success_criteria_id": "SC_CHECKOUT",
    "constraints": {
      "clean_cart_required": true,
      "must_be_in_stock": true
    },
    "target_query": "hoodie",
    "target_sku": "B07HOODIE02",
    "target_variant_name": "Red",
    "verifier_id": "VU-CHECKOUT",
    "matching_policy": "deterministic_sparse_reasoned",
    "require_needs_confirmation": true,
    "profile_id": "U_001"
  },
  "harbor_reset": {
    "seed": 18421,
    "fixture_id": "fixture1",
    "max_steps": 38,
    "task_spec": { "...": "same as task_spec above" }
  }
}
```

`harbor_reset` is a **legacy field name** for the env reset payload used by `POST /v1/env/reset`. Prefer thinking of it as “reset package.”

### Important fields

| Field                        | Role                                                                                                     |
| ---------------------------- | -------------------------------------------------------------------------------------------------------- |
| `task_id`                    | Stable id (`vu.<family>.tNNN`)                                                                           |
| `instruction` / `goal`       | What the agent is told                                                                                   |
| `success_criteria_id`        | Router into verifier family (`SC_CHECKOUT`, `SC_ADD_TO_CART`, …)                                         |
| `verifier_id`                | Specific VU implementation (`VU-CHECKOUT`, `VU-SEARCH-ADD`, …)                                           |
| `target_*`                   | Expected query / SKU / variant / qty / category                                                          |
| `constraints`                | e.g. `clean_cart_required`, `must_be_in_stock`, budget / Prime                                           |
| `require_needs_confirmation` | Enables [confirmation latches](/environments/mechanics/confirmation-latches) before irreversible actions |
| `matching_policy`            | How catalog matches are chosen                                                                           |
| `profile_id`                 | Seeded user profile (`U_001` …)                                                                          |
| `harbor_reset`               | Exact payload for `POST /v1/env/reset` (legacy name)                                                     |

## Bundles

Task libraries are JSONL bundles per environment. Shopping environments commonly include:

| Bundle                | Example tasks            | Typical verifiers                                   |
| --------------------- | ------------------------ | --------------------------------------------------- |
| `checkout`            | `vu.checkout.t098`       | `VU-CHECKOUT`                                       |
| `search_add_checkout` | `vu.search.add.t309`     | `VU-SEARCH-ADD`, `VU-FILTER-ADD`, `VU-CHEAPEST-QTY` |
| `reasoning_checkout`  | `vu.reason.compare.t103` | `VU-BUDGET-FALLBACK`, `VU-COMPARE-SWAP`             |
| `cart_mutation`       | `vu.cart.qty.t077`       | `VU-QTY-ADJUST`                                     |

Pharmacy retail (`cvs_gym`) has its own checkout / hard-task families on the same control plane.

## Fetching tasks

```bash theme={null}
# Ordered task list for evaluations
curl -s https://agi.akhara.ai/evaluations/tasks

# Dashboard task detail
curl -s https://agi.akhara.ai/dashboard/tasks/vu.checkout.t098 | python3 -m json.tool
```

Also: `GET https://agi.akhara.ai/dashboard/tasks` (filters: `bundle`, `category`, `search`).

## Open / free-play tasks

For unscored exploration, `POST /runs/open` accepts a free-form `task_definition` string (no library row, no verifiers, reward `0.0`). See [Evaluations API](/environments/api/evaluations#open-run).

## Sample-pack format

Offline packs use schema `akhara.harbor.task_definition.v1` under `tasks/<task_id>/task_definition.json` (metadata + library row + live `task_spec`). See [Sample trajectories](/environments/results/sample-trajectories).
