# Briefing

> The briefing a session opens with, where things stand, what happened, the lessons learned and the promises made.

The briefing a session opens with, where things stand, what happened, the lessons learned and the promises made. This page is generated from the API's own spec, so it says exactly what the API does.

## What this moment needs: where things stand, what is due, the rules, what happened

`POST /v1/briefing`

One read for the start of a session or a turn, within a budget: the state of the project, the promises
that are due, the rules and lessons that apply, the episodes most related to the cue and the latest ones,
then the memories. Read, not written by a model, so it is fast enough for every turn.

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `X-Geniffy-Space` | header | string | One of your own users, for every call this client makes. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Body** (application/json)

| Field | Type | | Description |
| --- | --- | --- | --- |
| `project` | string | optional | A project, as its sources were labelled (a project, context, thread or repo label). Left out: every project (up to 200 characters) |
| `cue` | string | optional | What is happening now: the task, the question or the opening message. What bears on it comes first (up to 4,000 characters; default `""`) |
| `budget_chars` | integer | optional | The most the briefing holds, in characters (at least 500; at most 40,000; default `6000`) |
| `space` | string | optional | One of your own users. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Returns** `200`

| Field | Type | | Description |
| --- | --- | --- | --- |
| `project` | string | optional |  |
| `briefing` | string | required | Put this straight into your prompt: where things stand, what is due, the rules that apply, what happened, then the memories, each with its date |
| `now` | array of StateOut | required |  |
| `due` | array of IntentionOut | required |  |
| `lessons` | array of LessonOut | required |  |
| `episodes` | array of EpisodeOut | required |  |
| `memories` | array of Memory | required |  |

## Where things stand: goal, focus, open items, decisions, next steps

`GET /v1/now`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `project` | query | string | A project, as its sources were labelled; left out, every one (up to 200 characters) |
| `space` | query | string | One of your own users. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |
| `X-Geniffy-Space` | header | string | One of your own users, for every call this client makes. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Returns** `200`

| Field | Type | | Description |
| --- | --- | --- | --- |
| `now` | array of StateOut | required |  |

## What happened, as stories, newest first

`GET /v1/episodes`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `project` | query | string | A project, as its sources were labelled; left out, every one (up to 200 characters) |
| `limit` | query | integer |  (at least 1; at most 200; default `20`) |
| `space` | query | string | One of your own users. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |
| `X-Geniffy-Space` | header | string | One of your own users, for every call this client makes. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Returns** `200`

| Field | Type | | Description |
| --- | --- | --- | --- |
| `episodes` | array of EpisodeOut | required |  |

## Rules, how-tos and lessons, with when they apply and why

`GET /v1/lessons`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `project` | query | string | A project, as its sources were labelled; left out, every one (up to 200 characters) |
| `limit` | query | integer |  (at least 1; at most 200; default `50`) |
| `space` | query | string | One of your own users. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |
| `X-Geniffy-Space` | header | string | One of your own users, for every call this client makes. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Returns** `200`

| Field | Type | | Description |
| --- | --- | --- | --- |
| `lessons` | array of LessonOut | required |  |

## Promises and plans, with their triggers

`GET /v1/intentions`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `status` | query | `open`, `done`, `dropped` |  (default `"open"`) |
| `limit` | query | integer |  (at least 1; at most 200; default `50`) |
| `space` | query | string | One of your own users. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |
| `X-Geniffy-Space` | header | string | One of your own users, for every call this client makes. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Returns** `200`

| Field | Type | | Description |
| --- | --- | --- | --- |
| `intentions` | array of IntentionOut | required |  |

## Mark a promise or plan done, dropped, or open again

`POST /v1/intentions/{intention_id}`

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `intention_id` | path | integer |  |
| `X-Geniffy-Space` | header | string | One of your own users, for every call this client makes. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Body** (application/json)

| Field | Type | | Description |
| --- | --- | --- | --- |
| `status` | `done`, `dropped`, `open` | optional |  (default `"done"`) |
| `space` | string | optional | One of your own users. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Returns** `200`

| Field | Type | | Description |
| --- | --- | --- | --- |
| `intention` | object | required |  |

## How well the memory answers about its own work

`GET /v1/memory-health`

Each night the memory writes questions from what it read that day, answers them the way your questions are
answered, and marks the answers. The share it got right is its health; the questions and its answers come with it.

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `space` | query | string | One of your own users. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |
| `X-Geniffy-Space` | header | string | One of your own users, for every call this client makes. Leave it out for your own memory; a blank one is refused. (up to 128 characters) |

**Returns** `200`

| Field | Type | | Description |
| --- | --- | --- | --- |
| `health` | number | optional | The share of its own questions it answered right, 0 to 1 (a partly right answer counts half); null before its first night |
| `tested_at` | string | optional |  |
| `asked` | integer | optional |  (default `0`) |
| `score` | number | optional |  |
| `items` | array of HealthItem | optional |  |

Source: https://docs.geniffy.com/api/briefing
