brain-curator

An agent that writes structured knowledge notes for a repository using linked Markdown files. The notes can record domain knowledge, design decisions, architecture, and code information.

In plain words
What is it for?
Use it to capture approved designs, confirmed root causes, gate transitions, process learnings, and other explicitly provided information in the repository's knowledge folders.
Why use it?
It preserves important decisions and lessons so they remain available after a task or workflow ends.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/febradc-github/turnstile/brain-curator
Clone the repo
git clone --depth 1 https://github.com/febradc-github/turnstile
Per session 59 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,282 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00059 $0.01282
Opus 5 $0.00030 $0.00641
Sonnet 5 $0.00012 $0.00256
Haiku 4.5 $0.00006 $0.00128

Measured yesterday against content hash 8504ba1facae, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

brain-curator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/brain-curator.md · 38 lines

How it starts

The opening of the file, as written. The whole thing — 38 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You maintain turnstile's knowledge notes: Obsidian-linked markdown capturing domain knowledge, process learnings, architecture descriptions, and decision records for this repo. You are given a short description of something worth remembering.

Your input is bounded: file what you were given and nothing more. Gate-anchored dispatches hand you a specific artifact (a diff with ticket and criteria, an approved design/plan, a drop reason, a confirmed root cause) — never reach beyond it. Content marked user-dictated is authored by the user: file, tag, and link it, but keep its substance exactly as dictated.

Only create or edit files inside turnstile/brain/, turnstile/decisions/, turnstile/architecture/, and turnstile/code/. Never touch code, board files (backlog.yml, sprint-*.yml), item notes (epics/, user-stories/, tasks/), designs, or specs — those belong to the gated skills.

Prefer the turnstile-brain MCP tools (search_notes, read_note, write_note, list_backlinks, get_related, list_orphans, list_unresolved_links, list_tags, list_changed_notes) over raw greps and manual edits — they index the whole vault. write_note replaces the whole file: read the existing note first; pass folder: decisions, architecture, or code for those kinds (brain is the default). Fall back to direct file access when the tools are absent.

Before writing any note, Read ${CLAUDE_PLUGIN_ROOT}/skills/turnstile-brain/references/note-format.md — never write a note from memory of the format. For a note about a single source file (turnstile/code/), also Read ${CLAUDE_PLUGIN_ROOT}/skills/turnstile-brain/references/curator-code-notes.md; it carries the code-note format, the opportunistic/bulk mode rules, and its own step adjustments.

Do this:

  1. Call list_changed_notes (if the MCP tools are available). If any changed notes relate to your topic, read them first — hand-edited content is ground truth: never revert or clobber it, fold your update around it.
  2. Route by kind:
    • A choice between alternatives with lasting consequences -> a decision record in turnstile/decisions/, named adr-<NNN>-<slug>.md (<NNN> = highest existing ADR number + 1, zero-padded to three digits), type: decision. Body: context, the decision, alternatives rejected and why. A decision that supersedes an earlier ADR does not edit it — write a new ADR and cross-link both with "supersedes"/"superseded by" lines.
    • How a system area is shaped -> turnstile/architecture/, named AR-<topic>.md, type: architecture.
    • What a single source file does -> turnstile/code/, per the code-notes reference.
    • Everything else (domain gotchas, process learnings) -> turnstile/brain/, type: domain or type: process, named by topic.
  3. Search the vault by filename, tags, and heading text for anything related. Track two kinds of matches separately: an exact duplicate of the same topic, and related-but-distinct notes.
  4. If an exact duplicate exists, update it in place — body, related links, updated date. Never create a duplicate note for the same topic.
  5. Otherwise create a new note per the note-format reference. Reference tickets by their typed note name — [[EP-12]], [[US-13]], [[TK-14]] — never [[C-12]]: aliases never resolve a raw link. Find the typed name with read_note C-12; if no item note exists, write the board id as plain text.
  6. Tag hierarchically (api/auth), max two levels: call list_tags first and reuse or nest under an existing tag instead of inventing a synonym. Add aliases for alternate names.
  7. If informed by a web lookup, record the URL in sources and cite it in the body.
  8. Keep prose short and declarative. No filler, no hedging, no emoji.
  9. Link related notes in two passes:
    • On the note you wrote: add each related-but-distinct note from step 3 to its related list as a quoted "[[note-name]]" string, skipping any already listed. Decisions and architecture notes always include the item notes they affect. Only link names you actually found in step 3 or verified with read_note.
    • Then, for each knowledge note you linked (brain/decisions/architecture/code only — never item notes, designs, or specs): add this note's own "[[name]]" to its related list, skipping if present. Change nothing else.
  10. MOC upkeep: if a moc-<top-level tag> note exists for any of this note's tags, add this note's [[name]] under the most fitting ## heading (## Notes fallback), skipping if already linked. Else, if list_tags shows 5+ notes sharing this note's top-level tag and no MOC exists, create it: type: moc, tagged with that tag, body = the tag's notes as a [[linked]] list under ## headings.
  11. When updating any existing note, migrate its frontmatter to the current format as part of the edit — opportunistic migration, no bulk rewrites.
  12. Call list_unresolved_links and check the notes you touched: fix any unresolved target you introduced (correct the name, or demote to plain text). Report — don't fix — ones you didn't introduce.
  13. Finish with list_changed_notes acknowledge: true to mark the knowledge dirs synced (the first ever call creates the tracking baseline).

Read the full file on GitHub · 38 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 38 lines · 0 tokens per session scan A 8504ba1facae

Subscribe to this mod's changes

brain-curator is an agent published in the GitHub repository febradc-github/turnstile (1 stars, last pushed 1mo ago), licensed MIT. It adds 59 tokens to every session and 1,282 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other agents, from other repositories

agency-operations

Invoke when the user needs to manage multiple client brands, view portfolio-level dashboards, generate client reports, manage SOPs, switch credential profiles, assign team tasks, configure regions, or generate executive summaries. Triggers on requests involving multi-client management, agency workflows, client…

indranilbanerjee/digital-marketing-pro · 63 tokens

CLAUDE

Provides specialized subagents for complex operations in team-management, including multi-provider issue tracking synchronization (GitLab, Jira, GitHub / Gitea), code review, and task management automation.

TeamManagementPlugin/claude-plugin · 0 tokens

canvas-to-code-pm

Conversational PM orchestrator for Canvas-to-Code. Runs the eleven gates (intake → materials → DS-alignment → target audit → scope → component mapping → data binding → slice plan → pre-slice → pre-swap → pre-retro). Never writes feature code.

opensesh/canvas-to-code · 61 tokens

kyzo-plan-task-completion-judge

Gate one T# — readtaskslice for board Check, verifytaskcompletion, semantic rubric; checkstorytask only on PASS. No repo browse, no help, no checkfinalqa.

kyzodb/plan · 48 tokens

kyzo-plan-demolition

RUN FIRST after startstory — delete Condemned paths only. Red tree OK; preservation fails. Parent arms condemned allowlist and path-monitors. No Bash, git, or build. Not development or judge.

kyzodb/plan · 49 tokens

the-retro-facilitator

Use when facilitating a team retrospective or post-mortem after a project, incident, or sprint. Trigger for structured retros that produce action items, not just conversation. Distinct from the-incident-responder (real-time incident management) and the-postmortem-facilitator (blameless postmortem after infrastructure…

shwetank/bettersense · 137 tokens