| name | brain-ingest |
| description | Append raw sources to the brain and create or update theme pages. Never modifies raw in place; never deletes. |
| library | true |
| phase | brain |
| surface | unattended |
| purpose | Ingest operator-provided raw sources into the brain — append to brain/_raw/, create or update theme pages, update category indexes, and log to brain/forge-dev/log.md. |
| composition | {"skills":["brain-query"],"tools":[],"mcps":[],"guards":["event-log"]} |
| runtime | {"sdk":"claude","strategy":"fixed","model":"claude-haiku-4-5-20251001"} |
| brainAccess | mandatory |
| interactivity | Unattended; operator supplies source identifier + optional category/project target; agent runs to completion without human input. |
| allowed-tools | ["Read","Write","Edit","Bash"] |
| disallowed-tools | ["Task","Agent"] |
| budgets | {"maxBudgetUsd":2} |
Brain — Ingest
Single responsibility
Manual / research ingest path. Takes raw input (text, URL contents, external research, or pending human guidance notes) and:
- Appends the raw to
brain/_raw/ with full provenance.
- Creates new theme pages or appends to existing ones in
brain/cycles/themes/ (forge-wide) or brain/projects/<name>/themes/ (project-specific).
- Updates category indexes.
- Appends an entry to
brain/forge-dev/log.md.
- Consumes pending
_guidance/*.md files (human-originated, the twin of brain-gaps.jsonl) and deletes each one after incorporation.
Writer ownership: the reflector is the de-facto writer during cycle execution — it
directly writes themes + category indexes as part of closing a cycle. This skill is the
manual ingest path for operator-initiated research, external docs, or ad-hoc raw sources
that don't arrive via the cycle pipeline. Both paths follow the same theme-page format and
append-only raw convention.
Required first action
Invoke brain-query with:
- "Does the brain already have a theme on ?"
- "Are there raw sources already in
_raw/ that overlap with what's about to be ingested?"
This avoids creating duplicate themes or re-ingesting overlapping raw.
Inputs
- A source identifier: URL, file path, or inline content.
- Optional: target category (
pattern, antipattern, decision, operation, reference).
- Optional: target project (for project-scoped ingest).
- Implicit: pending human guidance files at
brain/<kb-id>/_guidance/*.md (always checked on each pass — see the Guidance Consume step below).
Outputs
- New
brain/_raw/<...>.md (with mandatory frontmatter — see brain/_raw/README.md).
- New or updated
brain/cycles/themes/<slug>.md or brain/projects/<name>/themes/<slug>.md.
- Updated category index (
brain/cycles/<category>.md or ).