O2 Review Loop
openobserve/openobserve
Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.
When you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the deliverable, in the SAME message.
$ npx skills add garrytan/gbrain --skill brain-link-discipline -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install garrytan/gbrain brain-link-discipline --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/brain-link-discipline .claude/skills/brain-link-discipline && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "brain-link-discipline" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/brain-link-discipline into .claude/skills/brain-link-discipline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brain-link-discipline", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/garrytan/gbrain/tree/master/skills/brain-link-disciplineType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add garrytan/gbrain --skill brain-link-discipline -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install garrytan/gbrain brain-link-discipline --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/brain-link-discipline .agents/skills/brain-link-discipline && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "brain-link-discipline" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/brain-link-discipline into .agents/skills/brain-link-discipline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brain-link-discipline", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add garrytan/gbrain --skill brain-link-discipline -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install garrytan/gbrain brain-link-discipline --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/brain-link-discipline .cursor/skills/brain-link-discipline && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "brain-link-discipline" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/brain-link-discipline into .cursor/skills/brain-link-discipline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brain-link-discipline", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/garrytan/gbrain.git --path skills/brain-link-discipline--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add garrytan/gbrain --skill brain-link-discipline -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install garrytan/gbrain brain-link-discipline --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/brain-link-discipline .gemini/skills/brain-link-discipline && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "brain-link-discipline" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/brain-link-discipline into .gemini/skills/brain-link-discipline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brain-link-discipline", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install garrytan/gbrain brain-link-disciplineInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add garrytan/gbrain --skill brain-link-discipline -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/brain-link-discipline .github/skills/brain-link-discipline && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "brain-link-discipline" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/brain-link-discipline into .github/skills/brain-link-discipline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brain-link-discipline", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add garrytan/gbrain --skill brain-link-discipline -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install garrytan/gbrain brain-link-discipline --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/brain-link-discipline .opencode/skills/brain-link-discipline && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "brain-link-discipline" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/brain-link-discipline into .opencode/skills/brain-link-discipline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brain-link-discipline", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
brain-link-disciplineWhen you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the deliverable, in the SAME message.
Brain Link Discipline is an agent skill from garrytan/gbrain. When you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the deliverable, in the SAME message. Derive the path mechanically (git ls-files --full-name), push BEFORE linking, verify the link resolves when a hosted remote exists, and degrade through a defined fallback chain when it doesn't. Inside brain pages the rule inverts: relative links preserve the link graph; absolute URLs are for chat deliverables only.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.
It sits in Agent Workflows, covering Subagents. It works with Git. The repository describes itself as: Garry's Opinionated OpenClaw/Hermes Agent Brain. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f250a51. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitcurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comapi.github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GITHUB_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Brain Link Discipline loads about 3.1k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 1,470 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from garrytan/gbrain at commit f250a51, republished under its MIT licence (© garrytan). 1,470 words, ~3,113 tokens.
.claude/skills/brain-link-discipline/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Convention: see _output-rules.md — the Deterministic Links section carries the cross-skill canon (in-page relative vs in-message verified, plus the fallback chain). This skill carries the mechanics: path derivation, push-before-link ordering, verification, the subagent-relay rewrite, and bulk-list formatting.
Convention: conventions/brain-first.md states the one-line principle ("every brain page reference in output should use a clickable link format appropriate to the deployment"). This skill is that line's full expansion.
This is a reporting convention the harness routes brain-page delivery messages through — a standing rule to apply when composing such messages, not a mechanical guarantee enforced by tooling.
If you commit and push a brain page, the link goes in the SAME message that reports the work. Every time. No "let me commit and push" without the link landing in that same reply once the push succeeds. The user should never have to ask "give me the link" or "where is the page."
This applies to:
The most common link bug is committing a brain page and forcing the user to go find it. The link is a deliverable, not a follow-up.
The two output surfaces take OPPOSITE link forms:
| Surface | Link form | Why |
|---|---|---|
| Chat message to the user | Absolute, verified URL (or the fallback chain below) | Repo-relative paths aren't clickable in chat surfaces |
| Inside a brain page body | RELATIVE markdown link: [Alice Example](../people/alice-example.md) | gbrain's link extraction builds the links/backlinks graph — which powers relational retrieval — from filesystem-relative links. An absolute URL between two brain pages is invisible to that graph |
Never write absolute URLs for page-to-page references inside a brain
page. Absolute URLs in a page body are for genuinely external targets
only. Frontmatter related: / people: keys stay bare relative paths
(machine-parsed, not rendered prose). After a link-heavy write,
gbrain check-backlinks check audits the graph and gbrain sync --no-pull
makes the pages searchable.
The repo-relative path a hosted git remote serves is relative to the git
repo root (git rev-parse --show-toplevel), NOT your current working
directory. When the repo root sits above your working directory, hand-
stripping your cwd prefix silently drops the intermediate directory segment
and every link you build 404s. Never hand-strip a prefix. Derive:
# From anywhere inside the repo, prints the EXACT path the remote serves:
cd "$(dirname <file>)" && git ls-files --full-name "$(basename <file>)"
# e.g. people/alice-example.mdThen assemble:
https://<host>/<owner>/<repo>/blob/<branch>/<that-exact-path><host>/<owner>/<repo> from git remote get-url origin<branch> from git rev-parse --abbrev-ref HEAD (or the remote's default branch)/blob/ for files, /tree/ for directories (GitHub-style hosts)git add <file> && git commit -m "..." && git pushabc123..def456 main -> main). A hosted URL 404s until the push
completes.Before including a hosted-remote link in a user-facing message, confirm the path exists on the remote. GitHub example (private repos need a token):
curl -sf -o /dev/null -w '%{http_code}' \
-H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/<owner>/<repo>/contents/<repo-relative-path>"Only send the link on 200. If you just pushed and the host API is lagging,
the push output proving the ref moved is sufficient evidence — but never
invent or guess a URL.
Send the token only to its issuing host. The Authorization: token header
above targets api.github.com because the remote is a github.com remote. Never
send $GITHUB_TOKEN to a host you derived from git remote get-url origin
without confirming it is the token's issuing host: a doctored or unexpected
remote (origin pointed at an attacker's host, an enterprise/self-hosted host
the token isn't scoped to) would harvest the credential. For a github.com
remote, use api.github.com. For any other remote, verify UNAUTHENTICATED (a
public-repo existence check needs no token) or skip verification and fall back
to the ref-update evidence from the push. When in doubt, don't send the token.
people/alice-example.md) and say plainly that it's a local path
in the brain repo.gbrain publish output as an attachable HTML ARTIFACT. gbrain publish <page-path> emits a self-contained LOCAL HTML file (its output
line is Published: <local-path>). Offer to attach or send that file —
NEVER present it as a URL, because it isn't one. Use --password for
sensitive content.Subagents run in local context and return LOCAL paths. Relaying a subagent
completion verbatim is the #1 source of link bugs: the subagent reports
media/books/widget-co-notes.md (or an absolute path into the brain
checkout) and the relay parrots it. Before converting a subagent completion
into a user-facing reply, rewrite every brain-page path through the same
derivation + fallback chain above.
When spawning subagents that will write brain pages, include in their task prompt:
Report brain pages as repo-relative paths from
git ls-files --full-name. The parent rewrites them into links before relaying.
One link per line, full URL (or fallback form), no backticks:
Created 3 pages:
- https://github.com/<owner>/<repo>/blob/main/people/alice-example.md
- https://github.com/<owner>/<repo>/blob/main/people/charlie-example.md
- https://github.com/<owner>/<repo>/blob/main/companies/acme-example.mdHosted-remote links into a private brain repo open only for people with
repo access. That's fine for the user's own chat surface; it is NOT a
shareable link for an outside audience. For outside sharing, fall through
to the gbrain publish artifact (step 3 of the fallback chain).
This skill guarantees:
git ls-files --full-name,
git remote get-url origin), never composed from memory.Hosted remote (verified):
Done — pushed. https://github.com/
<owner>/<repo>/blob/main/concepts/widget-co-pricing.mdChanges committed (abc1234):
- concepts/widget-co-pricing.md (edit) — reworked the pricing section
No hosted remote (fallback steps 2–3):
Saved
concepts/widget-co-pricing.mdin the brain repo (local path — this brain has no hosted remote). Want a shareable HTML render? I can generate one withgbrain publishand attach the file.
Follow the agent operator protocol for any gbrain error code, exit code, [AGENT] block or notice block. Specific to this skill:
get_page / gbrain get returns page_not_found for the slug you meant to link: resolve the real slug (search by title) before linking; never ship a guessed slug.gbrain publish fails: give the user the repo-relative path with the scope note instead of a broken share link./absolute/local/path/..." — local absolute path
instead of a link or repo-relative fallback.git push has landed (they 404 until the
push completes — push first, verify the ref moved, then link).gbrain publish output as a URL. It emits a local HTML file
path; offer it as an attachable artifact.git ls-files --full-name.skills/publish/SKILL.md — owns HOW to generate a shareable HTML
artifact (stripping, encryption, output options). brain-link-discipline
only decides WHEN to fall back to it, and forbids promising its output as
a URL.skills/_output-rules.md (Deterministic Links) — carries the cross-skill
CANON: deterministic construction, the in-page/in-message scope split, the
fallback chain. This skill carries the per-message MECHANICS: derivation,
ordering, verification, relay rewriting, bulk formatting.skills/conventions/brain-first.md — states the one-line clickable-link
principle inside the lookup convention; this skill is its expansion for
delivery messages.skills/conventions/subagent-routing.md — how to route work to
subagents. This skill adds the path-rewrite obligation at the relay
boundary; subagent-routing says nothing about link/path rewriting.skills/citation-fixer/SKILL.md — fixes broken citations INSIDE existing
brain pages. Not about outbound message links.skills/reports/SKILL.md — saves/loads report pages. When a report
delivery message references brain pages, that message follows this
discipline; the reports skill itself carries no link rules.© garrytan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/brain-link-discipline of garrytan/gbrain.
Open the folder on GitHubat commit f250a51
Brain Link Discipline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Brain Link Discipline this skillgarrytan/gbrain | 31k | — | ~3.1k | Automated safety check: Pass | MIT | |
| O2 Review Loopopenobserve/openobserve | 22k | — | ~3.7k | Automated safety check: Pass | AGPL-3.0 | |
| ClawTeam Multi-Agent Swarmwin4r/ClawTeam-OpenClaw | 1.5k | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Agent Deckasheshgoplani/agent-deck | 1.1k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Coherence AuditorGoogleChrome/modern-web-guidance-src | 1.1k | — | ~864 | Automated safety check: Pass | Apache-2.0 | |
| Clawteamwin4r/ClawTeam-OpenClaw | 1.5k | — | ~3.1k | Automated safety check: Pass | MIT |
openobserve/openobserve
Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.
win4r/ClawTeam-OpenClaw
Launches a swarm of specialist Hermes agents in git-worktree-isolated tmux windows with a kanban board and file-based inboxes, using built-in templates like hedge-fund and code-review.
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
GoogleChrome/modern-web-guidance-src
Run a document coherence, link integrity, and git repository status audit across repository markdown files using a dedicated subagent.
win4r/ClawTeam-OpenClaw
Multi-agent swarm orchestration. An agent skill from win4r/ClawTeam-OpenClaw.
professorpalmer/Puppetmaster
Operates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs.
garrytan/gbrain
Traces a factual error the user points out back to its source (a brain page, a memory file, SOUL.md or USER.md, or a hallucination) and fixes that source instead of just noting the correction.
garrytan/gbrain
Searches and writes a company-wide knowledge brain through the gbrain CLI, so durable decisions and facts about people, projects and history stay findable beyond one session.
garrytan/gbrain
Ingest links, articles, tweets, and ideas into the brain. An agent skill from garrytan/gbrain.
garrytan/gbrain
Sends what your notes already know about a topic to Perplexity, so the cited web search reports only what is new, such as entity updates or deal changes.
garrytan/gbrain
Migrate a brain from gbrain-base (or any pack) to gbrain-base-v2's 14-canonical-type taxonomy via gbrain onboard --check + the unify-types Minion handler.
garrytan/gbrain
Run gbrain skillpack-check to produce an agent-readable JSON health report for the gbrain install.
Works with
Categories
When you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the deliverable, in the SAME message. Brain Link Discipline is an agent skill from garrytan/gbrain. When you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the deliverable, in the SAME message.
Brain Link Discipline fits situations like: tasks that involve Subagents.
Run `npx skills add garrytan/gbrain --skill brain-link-discipline -a claude-code`. Or copy the skill folder (skills/brain-link-discipline in garrytan/gbrain) into .claude/skills/brain-link-discipline in your project. Claude Code loads it when a task matches its description.
Run `npx skills add garrytan/gbrain --skill brain-link-discipline -a codex`. Or copy the skill folder (skills/brain-link-discipline in garrytan/gbrain) into .agents/skills/brain-link-discipline in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add garrytan/gbrain --skill brain-link-discipline -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brain-link-discipline, .gemini/skills/brain-link-discipline, .github/skills/brain-link-discipline and .opencode/skills/brain-link-discipline in your project.
Going by SKILL.md and its folder, Brain Link Discipline needs the command-line tools its instructions call (git and curl) and credentials named GITHUB_TOKEN. Our summary lists: A credential in GITHUB_TOKEN.
SKILL.md names 2 domains. In commands or code: github.com and api.github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Brain Link Discipline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Brain Link Discipline: O2 Review Loop (openobserve/openobserve, 22k stars), ClawTeam Multi-Agent Swarm (win4r/ClawTeam-OpenClaw, 1.5k stars), Agent Deck (asheshgoplani/agent-deck, 1.1k stars) and Coherence Auditor (GoogleChrome/modern-web-guidance-src, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
garrytan (a GitHub user) maintains it in garrytan/gbrain, which has 30,736 GitHub stars. The repository holds 47 skills in this directory. The repository was last updated on October 10, 2026.
Source: garrytan/gbrain on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.