Skip to content
Back to skills

Brain Site

ASecurity

Sets up, maintains, and builds a Brain site, the private site dotbrain renders from every Markdown file in a Brain, by driving `dotbrain site`. Use when giving a Brain a site, arranging its sidebar, previewing or building it, fixing a failed site build, writing site pages that need VitePress or Mermaid syntax, or drawing a Mermaid diagram in any project doc.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 9, 2026
ai-agentsvuenode

Security analysis

A100/100

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

Scanned October 9, 2026

npx -y skills add arminzou/dotbrain --skill brain-site --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Brain Site?

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

Security grade badge for Brain Site
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/arminzou-brain-site/badge)](https://www.skillsdirectory.com/skills/arminzou-brain-site)

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-site
description: Sets up, maintains, and builds a Brain site, the private site dotbrain renders from every Markdown file in a Brain, by driving `dotbrain site`. Use when giving a Brain a site, arranging its sidebar, previewing or building it, fixing a failed site build, writing site pages that need VitePress or Mermaid syntax, or drawing a Mermaid diagram in any project doc.
---

# Brain Site

A **Brain site** is the private site dotbrain renders from one Brain. Every Markdown file in the
Brain is a page, served at its path in the Brain, so relative links between Brain files work on the
site. The Brain owns its content, `.brain/site/site.yaml` (whose nav is the sidebar), the home page
`.brain/site/index.md`, and optional theme extensions; dotbrain owns the engine, which
`dotbrain site` runs from its cache. This skill picks the command, keeps the sidebar, and supplies
the page syntax. It never publishes anything: a Brain site is served on `127.0.0.1` only, and a
project's public docs are not a Brain site.

This skill expects `dotbrain site` from dotbrain 0.4.6 or later, which needs Node 22.12 or later.

## Choose the branch

- **The Brain has no `.brain/site/`:** set one up (below).
- **The Brain has a site:** find the request in the command table.
- **Writing a page that needs more than plain Markdown:** read
  [publishing.md](references/publishing.md) for lessons and references,
  [vitepress.md](references/vitepress.md) for page pitfalls and native features, and
  [mermaid.md](references/mermaid.md) before drawing a diagram, on the site or in any other
  project doc.

## Setting up a site

1. Run `dotbrain site init` from the wired repo, or `dotbrain site init --project <project>`. It
   creates `.brain/site/site.yaml`, whose nav lists every `docs/` page (root pages under Docs, one
   section per folder), the standard home page `.brain/site/index.md`, and the manual
   `.brain/site/configure.md`, which explains the settings. It never overwrites a file.
2. Review the generated sidebar with the user: propose trimming it to the pages read often, and
   grouping and naming sections the way a reader would look for them. Trimming never takes a page
   off the site. Confirm before editing.
3. If the Brain has a `learning/` workspace, tell `teach-me` about the site: add a Learning site
   section to `learning/AGENTS.md` that points at this skill's publishing guide.
4. Run `dotbrain site build`. It fails on every link to a missing file in the Brain; fix those
   with the user (usually a renamed ADR or a deleted doc), then offer `dotbrain site dev`.

## Command table

Commands default to the current wired project, including a worktree or nested directory. Use
`--project <name>` from elsewhere and `--home <path>` for a different private data root. Finite
`site init` and `site build` reports support `--json`; `site dev` and `site preview` stream the
server output and do not accept JSON reporting.

| Request or symptom | Do |
|---|---|
| Look at the site while editing | `dotbrain site dev`; restart it after changing `site.yaml` |
| Check that the site builds | `dotbrain site build` |
| Serve the last build | `dotbrain site preview` |
| Add a `docs/` page to the sidebar | Add it to a nav section in `site.yaml` by its path relative to `docs/` (`#section` may follow) |
| Take a page out of the sidebar | Remove its nav entry; the page stays on the site, reached by links and search |
| Take a page off the site | Only by deleting, moving out of the Brain, or renaming the file with `[brackets]`: every Markdown file in the Brain is a page |
| `nav links to pages that do not exist` | The listed page was moved or deleted: fix the link or remove the entry |
| ``` `topic` must be one of the MISSION.md topics ``` | Match the page's `topic` to a `### ` heading under `## Topics`, or add the topic with the user; `(none)` means `learning/MISSION.md` is missing or has no topics |
| `index.md at the Brain's root takes the home page's address` | Rename or move `.brain/index.md`; the home page is `.brain/site/index.md` |
| `Found dead link` | A page links a file that does not exist; the message names the page and line. Fix the link to the renamed file, or remove it |
| `needs Node 22.12 or later` | Tell the user; nothing else in dotbrain needs Node |
| `installing the site engine failed` | Read npm's lines in the message: the first run of a dotbrain version needs network access for `npm ci` |
| `vitepress build failed for <name>` | Read VitePress's error above it: usually a dead link, invalid frontmatter, or a page that does not compile ([vitepress.md](references/vitepress.md)) |
| `has no build to preview` | Run `dotbrain site build` first |
| `cannot serve on 127.0.0.1:4173` | Another preview holds the port: stop it first |
| `no .brain found here` | Run from a wired repo or pass `--project <project>` |
| A page builds but renders wrongly | [vitepress.md](references/vitepress.md), then [mermaid.md](references/mermaid.md) for diagrams |
| Change the look | `.brain/site/theme/style.css`, loaded after the defaults |
| Add a component | `.brain/site/theme/index.ts` exporting `{ enhanceApp({ app }) { ... } }` |
| Replace the theme | `.brain/site/theme/index.ts` exporting a whole theme; extend `@dotbrain/theme` to keep Mermaid, `<DocsOverview />`, `<LearnOverview />`, and the status badge. The default styles still load; override them in `style.css` |

Every Markdown file in the Brain is published, except symlinks and names with brackets; the nav
only decides the sidebar. ADRs show their `status` and design docs their `lifecycle` as a badge.
`.brain/site/index.md` is the home page and the user's to change. The standard one shows the site's
title and description with three buttons (Docs; Start learning when there is a lesson; Configure
this site), then `<DocsOverview />` (one tile per `docs/` folder) and `<LearnOverview />` (one tile per
Learn topic, latest lessons first), each with its most active six tiles and the rest on one line; it
shows only `docs/` and `learning/`. A `hero` in its frontmatter replaces the standard hero.
`.brain/site/configure.md` is dotbrain's manual for the settings: `dotbrain refresh` overwrites
it, so never edit it. Theme extensions can import only what the engine
installs (Vue, VitePress, Mermaid) and their own local files; a Brain cannot add npm packages. A
theme change is a site change: agree it with the user first.

Because every Brain file is a page, any Brain edit can break the build: a renamed file leaves dead
links, and invalid frontmatter or Vue syntax in prose stops compilation. After renaming or deleting
a Brain file, search the Brain for links to it.

## Verification

Before calling a site change done:

- `dotbrain site build` passes.
- The sidebar lists what the user reads often, grouped the way they look for it.
- New or changed diagrams and custom HTML were looked at in `dotbrain site dev`: a Mermaid parse
  error shows only on the page, not in the build.
- Nothing from the Brain or the site's build output was copied into the code repo.

Files in this skill

  • SKILL.md6.9 KB
  • agents/openai.yaml103 B
  • references/mermaid.md6.2 KB
  • references/publishing.md7 KB
  • references/vitepress.md3.8 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.