gbrain frontmatter install-hook installs a git pre-commit hook in your
brain source's repo that runs gbrain frontmatter validate against staged
.md and .mdx files. Malformed frontmatter blocks the commit. Bypass with
git commit --no-verify.
The same eight validation classes the frontmatter-guard skill and
gbrain doctor's frontmatter_integrity subcheck report:
| Code | What it catches |
|---|---|
MISSING_OPEN |
File doesn't start with --- |
MISSING_CLOSE |
No closing --- before first heading |
YAML_PARSE |
YAML failed to parse (syntax or structure) |
SLUG_MISMATCH |
slug: in frontmatter doesn't match path-derived slug |
NULL_BYTES |
Binary corruption (\x00) anywhere in the content |
NESTED_QUOTES |
title: "outer "inner" outer" shape that breaks YAML |
NON_STRING_FIELD |
title/type/slug is an unquoted non-string scalar (title: 123) |
EMPTY_FRONTMATTER |
--- ... --- with nothing meaningful between |
For all registered sources that are git repos:
gbrain frontmatter install-hookFor one source:
gbrain frontmatter install-hook --source <id>For force-overwrite of an existing pre-commit hook (writes a .bak):
gbrain frontmatter install-hook --forceThe hook lands at <source>/.githooks/pre-commit. If core.hooksPath is
unset, the install also runs git config core.hooksPath .githooks so the
hook is picked up without manual git config.
Standard git escape hatch:
git commit --no-verifyThis skips ALL pre-commit hooks. Use sparingly — the next time the user
runs gbrain doctor, the issues will surface.
gbrain frontmatter install-hook --uninstallIf a .bak was saved during install, it's restored as the active hook.
Otherwise the hook is removed cleanly.
The hook script checks for gbrain on $PATH. When missing, it prints a
one-line warning to stderr and exits 0 — commits aren't blocked just because
a developer hasn't installed gbrain locally. Once gbrain is installed, the
hook resumes blocking malformed pages.
If your OpenClaw wraps gbrain in a host repo that's not the brain repo itself, you may want a separate hook strategy:
- Brain repo IS the host repo (gbrain skills + brain pages in one repo):
install via
gbrain frontmatter install-hookas above. - Brain repo is a separate registered source (e.g.
~/brainregistered as a source, host repo is~/agent-fork): install in the brain repo only; agent-fork code doesn't need this hook. - Brain repo is auto-generated (e.g. by a sync daemon writing to a
bucket): skip the hook entirely; gate at the writer instead via
import { writeBrainPage } from 'gbrain/brain-writer'(planned in a later release; currently the CLI is the surface).
agent writes a page git commit doctor scan
↓ ↓ ↓
[source content] → [pre-commit hook validates] → [frontmatter_integrity check]
↓ ↓ ↓
raw file on disk blocks malformed commits surfaces existing issues
↓
`gbrain frontmatter validate
<source-path> --fix`
(writes .bak backups)
The hook is the write-time gate; doctor is the audit gate; the CLI is the
fix tool. They share parseMarkdown(..., {validate:true}) as the single
source of truth for what counts as malformed.