Tool
update_pin
Description
Correct or enrich a pin: re-rate risk, payoff or scope, fix the summary, add files or links, refine the approach (set approach_stage when the user has worked it out with you). For "I hit this too", use add_sighting instead. Text fields replace; list fields (files, links, areas, gotchas) are added to unless you pass replace_lists: true. Returns the pin summary and the fields that changed; get_pin has the rest.
Parameters
idstringrequiredPin key (e.g. ACME-42) or id. Picks the workspace: the key's prefix.
at least 1 characters
titlestring5–200 characters
summarystring10–4000 characters
kindstringOne ofbugdebtperformancesecuritytestingdxdocsfeature
riskstringCost of leaving it alone (for a feature, of going without it): how bad it gets when it bites, and how likely it is to bite. Severe harm that's unlikely is medium, not high; a long quiet history is evidence it's unlikely. critical, e.g. a security hole, lost or corrupted data, money charged wrongly, an outage now or imminent. high, e.g. users blocked from something they need, a frequent wrong result, a deadline that will break something, a likely incident. medium, e.g. a visible bug with a workaround, slow pages, flaky tests, code that will trip whoever changes it next. low, e.g. cosmetic issues, rare edge cases, harm that's only theoretical, messy code that works.
One oflowmediumhighcritical
payoffstringGain from doing it: how much better it makes things for the people it reaches, and how many it reaches how often; the product's users first, then the team. critical, e.g. a core workflow most users run daily, something customers leave or pay over. high, e.g. a capability users expect and keep asking for, friction or slowness the whole team hits every day, a big unlock for other work. medium, e.g. a real improvement for some users, friction the team hits now and then, a nicer path on a secondary screen. low, e.g. something one person noticed once, tidier code nobody sees, polish nobody would miss. Debt nobody sees stays low; if it blocks other pins, link them, and if waiting makes it costlier, set harder_later.
One oflowmediumhighcritical
scopestringOne oftrivialsmallmediumlargeepic
harder_laterbooleanTrue when waiting makes the fix costlier: data piling up that a migration must convert, an API or format others will start depending on, a one-way door. Raises priority.
areasstring[]Existing areas of the pin's workspace. acme (acme/api): - auth: Sign-in, sessions and permissions - payments: Billing, invoices and checkout acme-mobile (acme/ios): - offline: Sync and offline storage
Your workspace's areas, e.g.authofflinepayments
1–3 items
filesobject[]Repo-relative, e.g. src/auth.ts. Never absolute.
up to 50 items
pathstringrequiredRepo-relative path, e.g. src/auth.ts. Never absolute.
1–500 characters
linesstringLine range, e.g. "40-88".
symbolstringFunction or class name.
up to 200 characters
snippetstringThe 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
commitstringCorrects the pin's commit. Files added in the same call are read at it too.
pattern: ^[0-9a-f]{7,40}$
confidencestringOne ofconfirmedsuspected
discoverystring1–8000 characters
gotchasstring[]up to 20 items · each 1–4000 characters
reprostring1–8000 characters
approachstring1–8000 characters
approach_stagestringWhether a person shaped approach. proposed (default): your own idea; leave it. discussed: the user talked the fix through with you, but points are still open. agreed: the user settled the fix with you. Set discussed or agreed only when the user actually worked the approach out with you, at filing or later; never ask them to discuss a pin just to set it. agreed raises priority.
One ofproposeddiscussedagreed
done_whenstring1–8000 characters
linksobject[]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" }.
up to 50 items
relationstringrequiredOne offound_infixed_inrelatedblocksduplicate_ofblocked_by
pinstringAnother pin's key, e.g. ACME-42.
1–50 characters
artifactstringA URL, owner/name#123, #123 (this pin's repo), a commit SHA or a branch name.
1–500 characters
kindstringWhat artifact is when the text can't say: a branch name, an issue number, an agent session.
One ofprcommitbranchissuesessionurl
replace_listsbooleanReplace files, links, areas and gotchas instead of adding to them.
reasonstringWhy, shown in the pin's history.
up to 500 characters
Response
An example. The result sits in the same envelope as every tool's; see Responses.
Input schema
Exactly what tools/list sends your agent.