TeamKB — bounded local Registrar capture
Turn a small, explicit set of durable team insights into local spool proposals. Search before capture,
inspect imports before writing, and report proposals as ungoverned until the curator disposes them.
Overview
This self-contained operator workflow uses the full locally built Registrar MCP server. It does not
depend on repository subagents, and it does not work with the read-only intent-brain marketplace
runtime. Capture and import write candidate files to the local spool; deterministic governance and
promotion happen later in the curator.
Prerequisites
- Build and configure
apps/mcp-server from the Registrar repository.
- Set
TEAMKB_TENANT_ID, TEAMKB_BASE_PATH, and TEAMKB_ROLE=admin.
- Keep
TEAMKB_API_URL unset when search and writes must target the same local brain.
- Read the runtime contract for exact bounds and result semantics.
Modes
capture: distill up to five durable insights from the current session and explicitly supplied
files, then propose only new content.
import GLOB: inspect and explicitly approve 1–20 Markdown files before teamkb_import queues them.
review QUERY: search only; make no writes.
status: call teamkb_status; make no writes.
Instructions
Capture a session
- Review the conversation and use
Read, Glob, or Grep only on files the user placed in scope.
- Select at most five items that would help a teammate after 30 days. Classify each as
decision,
pattern, convention, architecture, troubleshooting, onboarding, or reference.
- Reject ephemeral steps, personal preferences, secrets, and facts already maintained in an
authoritative README or project instruction file.
- For each candidate, call
teamkb_search with 1–4 keywords and scope: "all". Skip covered facts;
surface contradictions instead of creating a competing memory.
- Call
teamkb_propose once for each surviving item. The returned candidate UUID proves only that
the local spool write succeeded.
Import Markdown files
- Require an explicit base directory and glob. Refuse a home directory, repository root, hidden
credential directory, or an unresolved environment variable as the base.
- Use
Glob to resolve the exact set. Accept 1–20 .md files; require the user to split larger
batches.
- Use
Grep for common secret markers and Read any suspicious file. Exclude credentials, tokens,
private keys, environment dumps, and empty files.
- Show the final relative file list and use
AskUserQuestion for explicit confirmation because
teamkb_import writes every match to the spool.
- Call
teamkb_import({ glob, basePath }) exactly once. Report queued, failed, and every failed
file from outcomes; never claim promotion.
Review or status
- For
review, call teamkb_search with curated first and broaden to all only if needed. Cite the
exact returned qmd:// URIs.
- For
status, call teamkb_status and summarize local counts and recent feedback. Do not print the
absolute dbPath unless explicitly requested.
Output
- Mode and local tenant context, without secrets or absolute storage paths.
- Proposed or imported candidate UUIDs, categories, and spool disposition.
- Skipped duplicates, conflicts, rejected files, and reasons.
- Clear statement that queued candidates are not governed memory until curator processing.
Examples
/teamkb capture
Reviewed the session, skipped one README-duplicated fact, and queued two local proposals:
- decision — 4f3a2e0e-0ee4-4f63-b63e-22306c45115a
- pattern — 83e1bc9a-0048-44e7-b70b-52bc7cf6e954
Neither proposal is promoted yet.
/teamkb import docs/runbooks/*.md
Resolved 6 Markdown files. After explicit approval, teamkb_import queued 5 and failed 1; the failed
file and error are reported without claiming a partial batch was fully successful.
/teamkb review deployment rollback
Searched curated memory first and returned two cited runbook results. No write tools were called.
/teamkb status
Reported local lifecycle/category/tenant counts and recent feedback without exposing the database path.
Error Handling
| Situation |
Response |
| Write tools are absent |
Use the built local server with TEAMKB_ROLE=admin; the shipped marketplace plugin is read-only. |
| Search is unexpectedly empty |
Check the local qmd index and tenant before concluding no memory exists. |
| Import resolves 0 or more than 20 files |
Stop; correct the glob or split the batch. |
| Secret-like content is found |
Exclude the file or redact the candidate before any MCP write. |
| A spool write fails |
Report exact failed outcomes; do not claim they were queued. |
Guardrails
- Local operating-system permissions are the write security boundary;
TEAMKB_ROLE=admin is a
registration gate, not authentication.
- Never broaden an import glob after confirmation.
- Never save secrets or rely solely on downstream policy detection.
- Provenance identifies capture origin, not truth.
Resources
- Bob's Big Brain Registrar — source,
build instructions, and governance architecture.
apps/mcp-server —
the full local operator runtime required by this skill.
brain-save — one-item write workflow; brain — read-only cited-query workflow.
1---2name: teamkb3description: Review, classify, and capture a bounded set of team insights or explicitly approved Markdown files through the local Registrar operator tools. This is side-effecting and never auto-fires. Use when closing a session, importing a small document batch, reviewing existing memory, or checking local brain status. Trigger with "/teamkb", "capture this session", or "import these team docs".4license: Apache-2.05---67# TeamKB — bounded local Registrar capture89Turn a small, explicit set of durable team insights into local spool proposals. Search before capture,10inspect imports before writing, and report proposals as ungoverned until the curator disposes them.1112## Overview1314This self-contained operator workflow uses the full locally built Registrar MCP server. It does not15depend on repository subagents, and it does not work with the read-only `intent-brain` marketplace16runtime. Capture and import write candidate files to the local spool; deterministic governance and17promotion happen later in the curator.1819## Prerequisites2021- Build and configure `apps/mcp-server` from the Registrar repository.22- Set `TEAMKB_TENANT_ID`, `TEAMKB_BASE_PATH`, and `TEAMKB_ROLE=admin`.23- Keep `TEAMKB_API_URL` unset when search and writes must target the same local brain.24- Read [the runtime contract](references/runtime-contract.md) for exact bounds and result semantics.2526## Modes2728- `capture`: distill up to five durable insights from the current session and explicitly supplied29 files, then propose only new content.30- `import GLOB`: inspect and explicitly approve 1–20 Markdown files before `teamkb_import` queues them.31- `review QUERY`: search only; make no writes.32- `status`: call `teamkb_status`; make no writes.3334## Instructions3536### Capture a session37381. Review the conversation and use `Read`, `Glob`, or `Grep` only on files the user placed in scope.392. Select at most five items that would help a teammate after 30 days. Classify each as `decision`,40 `pattern`, `convention`, `architecture`, `troubleshooting`, `onboarding`, or `reference`.413. Reject ephemeral steps, personal preferences, secrets, and facts already maintained in an42 authoritative README or project instruction file.434. For each candidate, call `teamkb_search` with 1–4 keywords and `scope: "all"`. Skip covered facts;44 surface contradictions instead of creating a competing memory.455. Call `teamkb_propose` once for each surviving item. The returned candidate UUID proves only that46 the local spool write succeeded.4748### Import Markdown files49501. Require an explicit base directory and glob. Refuse a home directory, repository root, hidden51 credential directory, or an unresolved environment variable as the base.522. Use `Glob` to resolve the exact set. Accept 1–20 `.md` files; require the user to split larger53 batches.543. Use `Grep` for common secret markers and `Read` any suspicious file. Exclude credentials, tokens,55 private keys, environment dumps, and empty files.564. Show the final relative file list and use `AskUserQuestion` for explicit confirmation because57 `teamkb_import` writes every match to the spool.585. Call `teamkb_import({ glob, basePath })` exactly once. Report `queued`, `failed`, and every failed59 file from `outcomes`; never claim promotion.6061### Review or status6263- For `review`, call `teamkb_search` with `curated` first and broaden to `all` only if needed. Cite the64 exact returned `qmd://` URIs.65- For `status`, call `teamkb_status` and summarize local counts and recent feedback. Do not print the66 absolute `dbPath` unless explicitly requested.6768## Output6970- Mode and local tenant context, without secrets or absolute storage paths.71- Proposed or imported candidate UUIDs, categories, and spool disposition.72- Skipped duplicates, conflicts, rejected files, and reasons.73- Clear statement that queued candidates are not governed memory until curator processing.7475## Examples7677```text78/teamkb capture79Reviewed the session, skipped one README-duplicated fact, and queued two local proposals:80- decision — 4f3a2e0e-0ee4-4f63-b63e-22306c45115a81- pattern — 83e1bc9a-0048-44e7-b70b-52bc7cf6e95482Neither proposal is promoted yet.83```8485```text86/teamkb import docs/runbooks/*.md87Resolved 6 Markdown files. After explicit approval, teamkb_import queued 5 and failed 1; the failed88file and error are reported without claiming a partial batch was fully successful.89```9091```text92/teamkb review deployment rollback93Searched curated memory first and returned two cited runbook results. No write tools were called.9495/teamkb status96Reported local lifecycle/category/tenant counts and recent feedback without exposing the database path.97```9899## Error Handling100101| Situation | Response |102| --------------------------------------- | ------------------------------------------------------------------------------------------------- |103| Write tools are absent | Use the built local server with `TEAMKB_ROLE=admin`; the shipped marketplace plugin is read-only. |104| Search is unexpectedly empty | Check the local qmd index and tenant before concluding no memory exists. |105| Import resolves 0 or more than 20 files | Stop; correct the glob or split the batch. |106| Secret-like content is found | Exclude the file or redact the candidate before any MCP write. |107| A spool write fails | Report exact failed outcomes; do not claim they were queued. |108109## Guardrails110111- Local operating-system permissions are the write security boundary; `TEAMKB_ROLE=admin` is a112 registration gate, not authentication.113- Never broaden an import glob after confirmation.114- Never save secrets or rely solely on downstream policy detection.115- Provenance identifies capture origin, not truth.116117## Resources118119- [Bob's Big Brain Registrar](https://github.com/jeremylongshore/bobs-big-brain-registrar) — source,120 build instructions, and governance architecture.121- [`apps/mcp-server`](https://github.com/jeremylongshore/bobs-big-brain-registrar/tree/main/apps/mcp-server) —122 the full local operator runtime required by this skill.123- `brain-save` — one-item write workflow; `brain` — read-only cited-query workflow.