Skip to content
Back to skills

Brain Save

ASecurity

Create one Registrar memory proposal or apply a supported lifecycle transition to an existing memory. This is a local operator write and never auto-fires. Use when an administrator needs to preserve one team fact or retire an outdated memory. Trigger with "/brain-save".

  • 12 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
ai-agentsgorailsdebugginggitapidatabasesecuritydocumentation

Works with

  • claude code
  • api
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add jeremylongshore/bobs-big-brain-registrar --skill brain-save --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Brain Save?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Brain Save
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeremylongshore-brain-save-bobs-big-brain-registrar/badge)](https://www.skillsdirectory.com/skills/jeremylongshore-brain-save-bobs-big-brain-registrar)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: brain-save
description: |
  Create one Registrar memory proposal or apply a supported lifecycle transition
  to an existing memory. This is a local operator write and never auto-fires. Use
  when an administrator needs to preserve one team fact or retire an outdated
  memory. Trigger with "/brain-save".
allowed-tools: 'mcp__teamkb__teamkb_search, mcp__teamkb__teamkb_propose, mcp__teamkb__teamkb_transition, mcp__teamkb__teamkb_status'
version: 1.1.0
author: Intent Solutions <jeremy@intentsolutions.io>
license: Apache-2.0
compatibility: 'Designed for Claude Code operators running the built Registrar apps/mcp-server with TEAMKB_TENANT_ID, TEAMKB_BASE_PATH, and TEAMKB_ROLE=admin. The shipped intent-brain marketplace plugin is read-only and does not expose these write tools.'
tags: [brain, governance, save, capture, admin, registrar]
argument-hint: '[save <fact> | retire <memory-id> | status]'
disable-model-invocation: true
model: inherit
effort: medium
---

# Brain Save — write one local Registrar memory proposal

Propose one fact to the local Registrar spool or apply one supported lifecycle transition. Never claim
that a queued proposal is already governed or searchable.

## Overview

This is the full Registrar operator surface, not the read-only `intent-brain` marketplace runtime and
not the unified `governed-second-brain` plugin. `teamkb_propose`, `teamkb_transition`, and
`teamkb_status` operate on the local paths configured for `apps/mcp-server`, even when remote search is
configured. Keep `TEAMKB_API_URL` unset when the search and write sides must address the same brain.

## Prerequisites

- Build and configure `apps/mcp-server` from this repository.
- Set `TEAMKB_TENANT_ID`, `TEAMKB_BASE_PATH`, and `TEAMKB_ROLE=admin`.
- Protect the local base path with operating-system permissions; `TEAMKB_ROLE=admin` is a tool
  registration gate, not remote authentication.
- Read [the runtime contract](references/runtime-contract.md) before operating mixed local/remote mode.

## Instructions

### Save a new fact

1. Search first with `teamkb_search({ query: "KEY_TERMS", scope: "all" })`. If existing governed
   content already covers the fact, stop instead of duplicating it.
2. Exclude ephemeral debugging, personal preferences, secrets, credentials, and facts already
   maintained in authoritative project documentation.
3. Choose `decision`, `pattern`, `convention`, `architecture`, `troubleshooting`, `onboarding`, or
   `reference`.
4. Call `teamkb_propose` with `{ title, content, category, filePaths? }`.
5. Report the returned `candidateId` as queued to the local spool. Promotion happens only when the
   separate curator processes it; this skill does not run or prove that step.

### Retire or restore a memory

1. Search for the memory and extract its UUID from a UUID-shaped citation filename such as
   `qmd://kb-curated/9c2e42f1-7b60-4ed2-a9dd-648d6c786d43.md`.
2. Call `teamkb_transition` with `{ memoryId, to, reason, actor }`.
3. Use only transitions the current tool can complete safely: `active` to `deprecated` or `archived`,
   `deprecated` to `active` or `archived`, and `superseded` to `archived`.
4. Do not request `active` to `superseded` through this version of the MCP tool; its input surface
   cannot supply the required replacement-memory link.

### Check local status

Call `teamkb_status` for local database counts and recent governance feedback. Status does not list
spool proposals and cannot confirm that a newly queued candidate has been promoted.

## Output

- Save: candidate UUID, local-spool disposition, and an explicit “not yet promoted” statement.
- Transition: memory UUID, old and new lifecycle states, and audit-event UUID.
- Status: counts by lifecycle/category/tenant and recent feedback, without printing `dbPath` unless the
  operator explicitly requests it.

## Examples

```text
teamkb_search({ query: "Apache license", scope: "all" })
teamkb_propose({
  title: "License: Apache-2.0 across public engines",
  content: "The public engines use Apache-2.0.",
  category: "decision"
})

Candidate 4f3a2e0e-0ee4-4f63-b63e-22306c45115a was queued locally. It is not governed memory until the
curator processes it.
```

```text
teamkb_transition({
  memoryId: "9c2e42f1-7b60-4ed2-a9dd-648d6c786d43",
  to: "deprecated",
  reason: "Replaced by the current deployment runbook",
  actor: "registrar-operator"
})

Memory 9c2e42f1-7b60-4ed2-a9dd-648d6c786d43 moved from active to deprecated; audit event
83e1bc9a-0048-44e7-b70b-52bc7cf6e954 recorded the transition.
```

## Error Handling

| Situation                        | Response                                                                                            |
| -------------------------------- | --------------------------------------------------------------------------------------------------- |
| Write tools are absent           | The read-only plugin or member role is active; use the built local server with `TEAMKB_ROLE=admin`. |
| Spool write fails                | Report the error; do not claim the candidate was queued.                                            |
| Transition ID is not UUID-shaped | Stop and obtain an exact ID from a returned citation.                                               |
| Transition is rejected           | Report the state-machine reason; do not route around it.                                            |
| Content may contain a secret     | Strip it before calling `teamkb_propose`; policy scanning is not the only control.                  |

## Guardrails

- Never persist secrets, tokens, credentials, or private keys.
- Require a human-readable transition reason and a truthful actor identifier.
- Local filesystem access is the security boundary for writes; a bearer token does not authorize this
  tool path.
- Provenance proves capture origin, not factual truth.

## Resources

- [Bob's Big Brain Registrar](https://github.com/jeremylongshore/bobs-big-brain-registrar) — source,
  build instructions, and operator documentation.
- [`apps/mcp-server`](https://github.com/jeremylongshore/bobs-big-brain-registrar/tree/main/apps/mcp-server) —
  the required full operator runtime.
- `brain` — read counterpart using the Registrar-native `teamkb_search` tool.

Files in this skill

  • SKILL.md6.1 KB
  • references/runtime-contract.md2.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…