cite_id, a permanent short ID such as src_7k2m9q4x1b. Prose cites it as [@src_7k2m9q4x1b] directly after the supported clause; structured fields list the same ID in field_citations. The same citation works in a saved record and in a chat reply. Records are never cited: link them with [[people/sam|Sam]] instead.
From an email to a cited edit
This example is entirely fictional. The IDs below stand for identities returned by your own account, email and record reads; the JSON and patch illustrate shape, not a claim that these objects exist. Suppose an email thread says, “I joined Meridian Labs as Engineering Lead in 2025.” First find and read the original using its connected account and native thread ID:next_cursor to inspect the whole thread, and check body_complete on the message supporting the claim. A message body can remain incomplete even after the final thread page; do not quote text that was not returned. The account ID is Almanac’s connected-account identity and the thread ID is the provider’s; neither is the source’s cite_id. The thread read returns that cite_id; in this example, imagine it is src_7k2m9q4x1b. Searching does not register a source, so cite only what you have read.
3, canonical path people/sam-fictional, and an existing Northstar role cited to src_4n8p2r6t0v. Find Meridian Labs separately with almanac search "Meridian Labs" --type organisation, then read the matching organisation to obtain its ID; the new organisation ID is not supplied by the person record. Preserve the existing values when adding the new role: the supplied roles, citations and field_citations replace those collections in full. Save the following flat field object as person-fields.json:
citations map is optional evidence for sources the record already cites, such as a quote anchor; a citation needs no entry there. The organisation IDs and the older source are fictional references. In a real edit, retain the old organisation IDs and citations from the current person record, and obtain the new organisation ID from its own returned record; do not fabricate any of them. The indexed path roles.1.title refers to the new title in the final array. Save this contextual patch as person-body.patch:
--fields takes the flat object shown above. The CLI forms the HTTP update envelope (expected_revision, set, unset and body_patch) itself; putting a set wrapper inside the file is invalid. A successful edit cites the source from both the prose and the structured role title. A citation of an ID that is not one of your sources is rejected. If the revision has changed, reread the record and reconsider the whole edit; use a new key for a changed request. Reuse this key only for an identical retry after an uncertain response. Editing knowledge explains the general update rules.
Follow evidence in reverse
Start withalmanac read PERSON_ID. A body marker such as [@src_7k2m9q4x1b] names the source itself, and field_citations can lead to the same ID from a structured field. Read that source and use its locator to reach the original: