add_project_entry
Record a project's decision, finding, artifact, or note in its case file. Keeps decisions and context persistent across AI agent sessions.
Instructions
Files an entry in a project's case: a decision, finding, artifact or note that concerns the project rather than one of its tasks.
The entry number counts inside the project, and TRK#7 addresses the entry from
refs of any task or project case. Like a task entry filed by add_entry, a
project entry stays as filed. A task token files project entries as it files
task entries.
An empty title, or a reference to a missing entry, task or project, returns
entry_fields_invalid naming the offending fields.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Project key, case-insensitive. An unknown key is refused with `project_not_found` | |
| body | No | Entry body in markdown, stored and returned as is. It holds what a successor needs to continue; file contents and long outputs stay outside it, represented by a pointer and the gist | |
| refs | No | References: task entries `TRK-42#12`, project entries `TRK#7`, tasks `TRK-7`, or a URL with a scheme (`https://…`, `file://…`). Anything else (`7`, `#7`, `docs/x.md`) is refused with `entry_fields_invalid`, as is an entry, task or project that does not exist; URLs are not checked | |
| type | Yes | What the entry records about the project: - `decision` — an option chosen among several, with the reason; - `finding` — an established fact with its source; - `artifact` — a pointer to a result; - `note` — an entry that fits none of the types above. Summaries, questions, attempts, verdicts and remarks exist only in task cases | |
| title | Yes | Entry title: its line in the case index of `get_project`. It states what happened, not how | |
| idempotency_key | No | Retry key chosen by the caller, e.g. a UUID. A repeat with the same key and the same arguments returns the first result and creates nothing; the same key with other arguments is refused with `idempotency_key_reused`. A key is bound to the caller's token and kept for 24 hours |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| no | Yes | Entry number in the project's case; with the key it forms `TRK#7` | |
| seq | Yes | Journal sequence number, usable as `after` of `wait_journal` | |
| author | Yes | ||
| created_at | Yes | ||
| project_key | Yes |