---
title: "Push a brief update (extraction)"
method: POST
path: "/api/v1/context/extraction"
tags: ["Session Memory"]
---

# Push a brief update (extraction)

`POST /api/v1/context/extraction`

## Request

- Base URL: `http://localhost:8080`
- URL: `http://localhost:8080/api/v1/context/extraction`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Records a context update into the brief. Used by update_context / update_brief.

## Request body

- object: Push a context update / extraction for the brief.
  - `session_id` string, required
  - `tool` string, required
  - `project_id` string
  - `summary` string
  - `chunks` object[]
    - `role` string, required
    - `text` string, required

## Response `200`

Extraction result

- object
  - `match_decision` 'matched_existing' | 'new_project' | 'ambiguous' | 'ignored', required
  - `confidence` number, required
  - `project_candidate` object, nullable
    - `project_id` string
    - `project_name` string, required
    - `reason` string
    - `score` number
  - `delta` object
    - `category` 'coding' | 'topic'
    - `description` string
    - `goals` string[]
    - `current_status` string
    - `recent_decisions` object[]
      - `summary` string, required
      - `headline` string
      - `reasoning` string
      - `decided_at` string, date-time, required
      - `importance` 'low' | 'normal' | 'high' | 'critical'
      - `resolved` boolean
      - `resolved_at` string, date-time
      - `date_inferred` boolean
      - `confidence` number
      - `source_tool` string
      - `source_session_id` string
      - `verified_at` string, date-time
      - `verified_commit` string
      - `contributed_by` string, nullable
      - `confirmed_by` string, nullable
      - `confirmed_at` string, date-time
      - `author_email` string, nullable
    - `recurring_context` string[]
    - `tech_stack` string[]
    - `file_structure_summary` string[]
    - `current_task` string
    - `open_questions` string[]
    - `landmines` object[]
      - `summary` string, required
      - `paths` string[]
      - `added_at` string, date-time, required
      - `importance` 'low' | 'normal' | 'high' | 'critical'
      - `pinned` boolean
      - `confidence` number
      - `source_tool` string
      - `source_session_id` string
      - `date_inferred` boolean
      - `verified_at` string, date-time
      - `verified_commit` string
      - `contributed_by` string, nullable
    - `shipped` object[]
      - `summary` string, required
      - `shipped_at` string, date-time, required
      - `source_tool` string
      - `confidence` number
      - `commit_ref` string
      - `pinned` boolean
      - `contributed_by` string, nullable
      - `card_id` string
    - `resolved_questions` string[]
    - `resolved_decisions` string[]
    - `resolved_landmines` string[]
    - `completed_goals` string[]
    - `commands` object[]
      - `label` string, required
      - `run` string, required
      - `note` string
    - `hot_paths` object[]
      - `label` string, required
      - `path` string, required
      - `purpose` string
      - `importance` 'low' | 'normal' | 'high' | 'critical'
      - `pinned` boolean
      - `contributed_by` string, nullable
    - `entrypoints` object[]
      - `label` string, required
      - `path` string, required
      - `purpose` string
    - `surfaces` object[]
      - `label` string, required
      - `paths` string[]
      - `purpose` string
    - `debugging_notes` object[]
      - `summary` string, required
      - `paths` string[]
      - `added_at` string, date-time, required
      - `commit_ref` string
      - `diff_ref` string
      - `confidence` number
      - `source_tool` string
      - `source_session_id` string
      - `verified_at` string, date-time
      - `importance` 'low' | 'normal' | 'high' | 'critical'
      - `pinned` boolean
      - `contributed_by` string, nullable
    - `source_summary` string
    - `blocking_issue` string
    - `task_progress` string
    - `next_action` string
    - `task_steps` object[]
      - `name` string, required
      - `status` 'todo' | 'in_progress' | 'done', required
    - `you_profile` object
      - `expertise_areas` string[]
      - `goals` string[]
      - `working_style` string
      - `values` string[]
      - `communication_preferences` string
    - `add_todos` union[]
      - union
        - string
        - object
          - `title` string, required
          - `phase` string
          - `body` string
          - `assignee` string, nullable
          - `completed_at` string
    - `move_todos` object[]
      - `match` string, required
      - `phase` string
      - `assignee` string, nullable
    - `complete_todos` string[]
    - `remove_todos` string[]
  - `should_create_project` boolean, required
  - `needs_user_confirmation` boolean, required
  - `no_material_change` boolean
  - `routing_state` 'matched' | 'ambiguous' | 'stale_match' | 'global_only'
  - `suppression_reason` string
  - `graph` object
    - `nodes` object[]
      - `node_type` 'project' | 'repo' | 'file' | 'component' | 'feature' | 'decision' | 'task' | 'person' | 'company' | 'service' | 'concept' | 'knowledge' | 'question' | 'tool' | 'environment' | 'database' | 'capability' | 'workflow' | 'preference', required
      - `canonical_key` string, required
      - `title` string, required
    - `edges` object[]
      - `edge_type` 'depends_on' | 'implements' | 'mentions' | 'related_to' | 'used_in' | 'decided_by' | 'blocks' | 'owns' | 'same_as' | 'contains' | 'tracks' | 'supports' | 'uses' | 'prefers' | 'rule', required
      - `from_node_id` string
      - `to_node_id` string
      - `summary` string

---

[API](https://skmtc.dev/deerdawn/apis/deerdawn-session-memory-api.md) · [All operations](https://skmtc.dev/deerdawn/apis/deerdawn-session-memory-api/llms.txt) · [OpenAPI document](https://skmtc.dev/deerdawn/apis/deerdawn-session-memory-api/revisions/002b48818bf9?raw)
