Tool

add_sighting

Add sightingChanges data

Description

Record that you hit an existing pin again. Sightings raise a pin's priority and add context, so include anything new you learned: another place it shows up, a new gotcha, a better repro.

Parameters

idstringrequired

Pin key (e.g. ACME-42) or id. Picks the workspace: the key's prefix.

at least 1 characters

notestring

What you were doing when you hit it.

up to 2000 characters

filesobject[]

New places it shows up; merged into the pin. Repo-relative, e.g. src/auth.ts. Never absolute.

up to 50 items

pathstringrequired

Repo-relative path, e.g. src/auth.ts. Never absolute.

1–500 characters

linesstring

Line range, e.g. "40-88".

symbolstring

Function or class name.

up to 200 characters

snippetstring

The 1 to 5 lines that show the problem, copied exactly; not the function signature. Most useful when no symbol names the place, so the next agent can find it after the code moves.

up to 2000 characters

commitstring

HEAD SHA now; the files you add are read at this commit.

pattern: ^[0-9a-f]{7,40}$

gotchasstring[]

New traps, one per entry; each is added to the pin with your name.

up to 20 items · each 1–4000 characters

reprostring

Replaces the repro if yours is better.

1–8000 characters

Response

An example. The result sits in the same envelope as every tool's; see Responses.

JSON
{
  "workspace": {
    "slug": "acme",
    "name": "Acme"
  },
  "result": {
    "pin": {
      "key": "ACME-42",
      "url": "https://laterbase.dev/dashboard/pins/ACME-42",
      "title": "Session refresh races when two tabs refresh at once",
      "status": "open",
      "summary": "Two tabs refreshing an expired session at the same moment both rotate the refresh token; the loser is signed out.",
      "repo": "acme/api",
      "kind": "bug",
      "areas": [
        "auth"
      ],
      "risk": "high",
      "payoff": "high",
      "scope": "small",
      "leverage": "high",
      "priority": "critical",
      "claimed_by": null,
      "sightings": 2,
      "created_at": "2026-10-01T14:03:11.000Z",
      "status_changed_at": "2026-10-01T14:03:11.000Z"
    }
  }
}

Input schema

Exactly what tools/list sends your agent.

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Pin key (e.g. ACME-42) or id. Picks the workspace: the key's prefix."
    },
    "note": {
      "description": "What you were doing when you hit it.",
      "type": "string",
      "maxLength": 2000
    },
    "files": {
      "description": "New places it shows up; merged into the pin. Repo-relative, e.g. `src/auth.ts`. Never absolute.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "Repo-relative path, e.g. src/auth.ts. Never absolute."
          },
          "lines": {
            "description": "Line range, e.g. \"40-88\".",
            "type": "string"
          },
          "symbol": {
            "description": "Function or class name.",
            "type": "string",
            "maxLength": 200
          },
          "snippet": {
            "description": "The 1 to 5 lines that show the problem, copied exactly; not the function signature. Most useful when no symbol names the place, so the next agent can find it after the code moves.",
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "path"
        ]
      }
    },
    "commit": {
      "description": "HEAD SHA now; the files you add are read at this commit.",
      "type": "string",
      "pattern": "^[0-9a-f]{7,40}$"
    },
    "gotchas": {
      "description": "New traps, one per entry; each is added to the pin with your name.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 4000
      }
    },
    "repro": {
      "description": "Replaces the repro if yours is better.",
      "type": "string",
      "minLength": 1,
      "maxLength": 8000
    },
    "links": {
      "description": "How this pin relates to other pins and to PRs, commits, branches, issues or sessions: { relation, pin } or { relation, artifact, kind? }. found_in: where you found it. fixed_in: the PR or commit that fixes it; link it as soon as the PR is open, not only once it merges. related: loosely connected; pin keys, PRs, issues and commits you mention in the pin's text are linked as related for you, so cite them freely. blocks: another pin can't start or ship until this one is done. blocked_by: the same link from the other side, when this pin can't start or ship until another is done; to track a release, give the release pin a blocked_by for each pin it needs. duplicate_of: another pin covers this. e.g. { \"relation\": \"found_in\", \"artifact\": \"#212\" }, { \"relation\": \"blocks\", \"pin\": \"ACME-14\" }, { \"relation\": \"blocked_by\", \"pin\": \"ACME-9\" }. Appended.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "found_in",
              "fixed_in",
              "related",
              "blocks",
              "duplicate_of",
              "blocked_by"
            ]
          },
          "pin": {
            "description": "Another pin's key, e.g. ACME-42.",
            "type": "string",
            "minLength": 1,
            "maxLength": 50
          },
          "artifact": {
            "description": "A URL, owner/name#123, #123 (this pin's repo), a commit SHA or a branch name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "kind": {
            "description": "What `artifact` is when the text can't say: a branch name, an issue number, an agent session.",
            "type": "string",
            "enum": [
              "pr",
              "commit",
              "branch",
              "issue",
              "session",
              "url"
            ]
          }
        },
        "required": [
          "relation"
        ]
      }
    }
  },
  "required": [
    "id"
  ]
}