skills/enrich/SKILL.md
Enrich brain pages with tiered enrichment protocol. Creates and updates person/company pages with compiled truth, timeline, and cross-links. Use when a new entity is mentioned or an existing page needs updating.
npx skillsauth add garrytan/gbrain enrichInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Enrich person and company pages from external sources. Scale effort to importance.
This skill guarantees:
Filing rule: Read
skills/_brain-filing-rules.mdbefore creating any new page.
Convention: See
skills/conventions/quality.mdfor Iron Law back-linking.
Every mention of a person or company with a brain page MUST create a back-link
FROM that entity's page TO the page mentioning them. An unlinked mention is a
broken brain. See skills/_brain-filing-rules.md for format.
A brain page should read like an intelligence dossier, not a LinkedIn scrape. Facts are table stakes. Texture is the value -- what do they believe, what are they building, what makes them tick, where are they headed.
Convention: see
skills/conventions/quality.mdfor citation formats and source precedence.
When sources conflict, note the contradiction with both citations.
Scale enrichment to importance. Don't waste API calls on low-value entities.
| Tier | Who | Effort | Sources | |------|-----|--------|---------| | 1 (key) | Inner circle, close collaborators, key contacts | Full pipeline | All available APIs + deep web research | | 2 (notable) | Occasional interactions, industry figures | Moderate | Web research + social + brain cross-ref | | 3 (minor) | Worth tracking, not critical | Light | Brain cross-ref + social lookup if handle known |
Extract people, companies, concepts from the incoming signal.
For each entity:
gbrain search "name" -- does a page already exist?Don't just capture facts. Capture texture:
| Signal Type | What to Extract | |-------------|----------------| | Opinions, beliefs | What They Believe section | | Current projects, features shipped | What They're Building section | | Ambition, career arc, motivation | What Motivates Them section | | Topics they return to obsessively | Hobby Horses section | | Who they amplify, argue with, respect | Network / Relationships | | Ascending, plateauing, pivoting? | Trajectory section | | Role, company, funding, location | State section (hard facts) |
Priority order -- stop when you have enough signal for the entity's tier.
4a. Brain cross-reference (always, all tiers)
gbrain search "name" and gbrain query "what do we know about name"4b. Web research (Tier 1 and 2)
4c. Social media lookup (all tiers when handle known)
4d. People enrichment APIs (Tier 1)
4e. Company enrichment APIs (Tier 1)
| Data Need | Example Sources | Tier | |-----------|----------------|------| | Web research | Perplexity, Brave, Exa | 1-2 | | LinkedIn / career | Crustdata, Proxycurl, People Data Labs | 1 | | Career history | Happenstance, LinkedIn | 1 | | Funding / company data | Crunchbase, PitchBook, Clearbit | 1 | | Social media | Platform APIs, web scraping | 1-3 | | Meeting history | Calendar/meeting transcript tools | 1-2 |
Store raw API responses via put_raw_data in gbrain:
{
"source": "crustdata",
"fetched_at": "2026-04-11T...",
"query": "jane doe",
"data": { ... }
}
Raw data preserves provenance. If the compiled truth is ever questioned, the raw data shows exactly what the API returned.
skills/_brain-filing-rules.md)[No data yet] (don't fill with boilerplate)---
title: Full Name
type: person
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: []
company: Current Company
relationship: How the user knows them
email:
linkedin:
twitter:
location:
---
# Full Name
> 1-paragraph executive summary: HOW do you know them, WHY do they matter,
> what's the current state of the relationship.
## State
Role, company, key context. Hard facts only.
## What They Believe
Ideology, first principles, worldview. What hills do they die on?
## What They're Building
Current projects, recent launches, what they're focused on.
## What Motivates Them
Ambition, career arc, what drives them.
## Hobby Horses
Topics they return to obsessively. Recurring themes in their work/posts.
## Assessment
Your read on this person. Strengths, gaps, trajectory.
## Trajectory
Ascending, plateauing, pivoting, declining? Where are they headed?
## Relationship
History of interactions, shared context, relationship quality.
## Contact
Email, social handles, preferred communication channel.
## Network
Key connections, mutual contacts, organizational relationships.
## Open Threads
Active conversations, pending items, things to follow up on.
---
## Timeline
Reverse chronological. Every entry has a date and [Source: ...] citation.
- **YYYY-MM-DD** | Event description [Source: ...]
---
title: Company Name
type: company
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: []
---
# Company Name
> 1-paragraph executive summary.
## State
What they do, stage, key people, key metrics, your connection.
## Open Threads
Active items, pending decisions, things to track.
---
## Timeline
- **YYYY-MM-DD** | Event description [Source: ...]
Note (v0.10.1): Links between brain pages are auto-created on every
put_page call (auto-link post-hook). Step 7 focuses on content
cross-references (updating related pages' compiled truth with new signal
from this enrichment), not on creating links. Verify via the auto_links
field in the put_page response ({ created, removed, errors }).
Timeline entries still need explicit gbrain timeline-add calls.
After enrichment sweeps, save a report:
This creates an audit trail for brain enrichment over time.
An enriched person page contains:
[Source: ...] citationsAn enriched company page contains:
Both page types have bidirectional back-links to every entity they mention.
tools
Validate and auto-repair YAML frontmatter on brain pages. Catches malformed pages before they enter the brain (missing closing ---, nested quotes, slug mismatches, null bytes, empty frontmatter, YAML parse failures). Wraps the `gbrain frontmatter` CLI for agent-driven workflows.
data-ai
Trace one idea's evolution through the brain: first mention, best articulation, related concepts, reversals, contradictions, abandoned branches, and the current live version. Use for single-idea conceptual lineage, not broad concept-map synthesis or structured entity metrics.
data-ai
Route to Venus (sharp executive-assistant voice persona). Used for logistics — calendar, tasks, recent messages, brain lookups — at sub-second phone-call latency. The default voice persona unless DEFAULT_PERSONA=mars is set.
tools
Route to Mars (introspective thought partner / demo showman voice persona). Used when the operator wants depth, meaning, or impressive social demos rather than logistics. Mars handles SOLO mode (philosophy, presence, patterns) and DEMO mode (tool-driven showmanship) automatically.