# Updating Thoughts

Use when editing, correcting, rewriting, re-tagging, re-classifying, or annotating an...

- Repository: https://github.com/NateBJones-Projects/OB1 (4752 stars)
- Category: AI and agents
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add NateBJones-Projects/OB1 --skill updating-thoughts -g -a claude-code -y`
Codex: `npx skills add NateBJones-Projects/OB1 --skill updating-thoughts -g -a codex -y`
Cursor: `npx skills add NateBJones-Projects/OB1 --skill updating-thoughts -g -a cursor -y`
Gemini CLI: `npx skills add NateBJones-Projects/OB1 --skill updating-thoughts -g -a gemini-cli -y`

## Description

Use when editing, correcting, rewriting, re-tagging, re-classifying, or annotating an existing Open Brain thought, "update that note", "fix the thought about X", "add a status/tag to it", "mark it superseded". Uses the update_thought MCP tool (open-brain-update-thought connector). Not for creating a new thought (that is capture) or removing one (see deleting-thoughts).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Updating Thoughts

## Overview

The core Open Brain MCP server captures and reads thoughts but cannot change
them. `update_thought` (the `open-brain-update-thought` connector) fills that
gap. Choosing *how* to update is the non-obvious part: tagging and rewriting
behave and cost differently, and the tool acts on a thought's **UUID**, which
it will not look up for you.

## When to Use

- Correcting or rewriting a thought's text
- Re-classifying or tagging it (status, review flags, cross-references)
- Annotating it without touching the wording

Not for: creating a thought (use capture), or removing one, if the thought is
outdated or wrong, prefer updating or tagging it `superseded` over deleting
(see the **deleting-thoughts** skill).

## Process

1. **Resolve the id first.** `update_thought` takes a UUID, not a description.
   Use `search_thoughts` / `list_thoughts` to find the target and confirm it is
   the right one. Never guess a UUID.
   - **Inspect before editing.** Before you overwrite anything, read the target's
     full content with `get_thought` (or the connector's `fetch` tool), and use
     `related_thoughts` to see what it connects to, so you don't clobber context
     other thoughts depend on. Tool names may carry a connector prefix; use
     whatever the environment exposes.
2. **Pick the mode:**
   - Tag / re-classify only → pass `metadata_patch` (shallow-merges keys; leaves
     content and unmentioned keys alone; **no re-embedding**).
   - Change the wording → pass `content` (replaces the text **and re-embeds** so
     semantic search stays accurate).
   - Both → pass both; they compose in one call.
3. **Guard read-modify-write (optional).** If you read the thought, reasoned,
   then write back, and other writers may exist, pass `if_unchanged_since` set
   to the `updated_at` you read. The write is rejected with `STALE_READ` if the
   row changed underneath you; re-fetch and retry.

## Quick Reference

The rest: https://github.com/NateBJones-Projects/OB1/blob/HEAD/skills/updating-thoughts/SKILL.md
