skills/perplexity-research/SKILL.md
Brain-augmented web research. Sends brain context about a topic to Perplexity, which searches the web with citations and returns what is NEW vs what the brain already knows. Use for entity enrichment, current-state checks, deal monitoring, and freshness deltas. NOT for simple URL fetches (use web_fetch) or brain-only queries (use gbrain query).
npx skillsauth add garrytan/gbrain perplexity-researchInstall 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.
Convention: see conventions/quality.md for citation rules; every claim from web research lands with a verifiable citation, not a paraphrase.
Convention: see conventions/brain-first.md for the lookup chain. This skill ENFORCES brain-first by sending brain context as part of the Perplexity prompt — the web search focuses on the delta between brain knowledge and current web state.
Combines existing brain knowledge with Perplexity's web search. The agent sends brain context about a topic into a Perplexity query; Perplexity searches + reads + synthesizes multiple pages with citations, focused on what's NEW relative to the supplied context.
The key insight: Perplexity doesn't just search — it reads and synthesizes with citations. By sending brain context in the instructions, it knows what you already know, so it surfaces the delta instead of repeating settled fact.
| Need | Use |
|------|-----|
| Deep research with citations | This skill — Perplexity + Opus |
| Quick URL content | web_fetch |
| Brain-only lookup | gbrain query / gbrain search |
| Real-time social monitoring | external X / social-media collectors |
| Structured data lookup against a tracker | skills/data-research/SKILL.md |
The research output lands as a brain page under research/<slug>.md with
this structure:
---
title: "[Topic] — Research [YYYY-MM-DD]"
type: research
date: YYYY-MM-DD
brain_context_slugs: ["pages whose context was sent to Perplexity"]
recency_filter: "[hour|day|week|month|none]"
---
# [Topic] — Research [YYYY-MM-DD]
> Executive summary: 2-3 sentences on the delta between brain knowledge
> and current web state.
## Key New Developments
What's changed since the brain was last updated on this topic.
## Confirming Signals
Web evidence validating existing brain knowledge.
## Contradictions or Updates
Things that conflict with the brain — these need a closer look.
## Recommended Brain Updates
Specific page updates the user might want to make based on this research.
Each item: which page, what to add or change, source URL.
## Citations
- [Source title](URL) — accessed YYYY-MM-DD
- [Source title](URL) — accessed YYYY-MM-DD
- ...
The skill is markdown agent instructions; the agent uses Perplexity's
API directly (or a host-provided perplexity CLI if installed):
# 1. Pull brain context
gbrain get <slug> # or
gbrain query "<topic keywords>"
# 2. Compose the Perplexity query with brain context inline:
# """
# Topic: <topic>
# Brain context (what we already know): <embedded gbrain content>
# Find: what's NEW since 2026-MM-DD that the brain doesn't reflect.
# Cite every claim.
# """
# 3. Call Perplexity API or the host's perplexity binary:
# curl https://api.perplexity.ai/chat/completions \
# -H "Authorization: Bearer $PERPLEXITY_API_KEY" \
# -H "Content-Type: application/json" \
# -d '{"model": "sonar-pro", "messages": [{"role":"user","content":"..."}]}'
# 4. Write the structured research page via put_page:
gbrain put_page research/<slug> # via the put_page operation
# 5. Cross-link entities mentioned (people, companies) per Iron Law.
| Model | Cost / query | Use when | |-------|-------------|----------| | Perplexity sonar-pro | ~$0.04 | Deep analysis, entity enrichment, deal research | | Perplexity sonar | ~$0.007 | Quick lookups, bulk monitoring, briefing pipelines |
Default to sonar-pro. Drop to sonar for bulk / cron contexts where cost matters more than depth.
Called by skills/enrich/SKILL.md when an entity page (person, company)
needs current web context:
BRAIN=$(gbrain get people/<slug> 2>/dev/null)
# Send <slug>'s page content as brain_context to Perplexity, get current
# news / role / context, then update the brain page with what's new.
For each active item under deals/ or companies/:
# Weekly: pull recent news per company; flag changes for review.
Replace raw web_fetch calls in briefing pipelines with this skill so
the agent doesn't re-narrate already-known facts.
Pass recency_filter to Perplexity: hour | day | week | month. Useful
for news-cycle topics; omit for evergreen research.
web_fetch
instead.PERPLEXITY_API_KEY set in the agent's environment (or in
~/.gbrain/.env).skills/academic-verify/SKILL.md — wraps perplexity-research for
citation-verified academic claim checkingskills/enrich/SKILL.md — calls perplexity-research as part of the
entity-enrichment loopskills/data-research/SKILL.md — structured-data trackers (different
shape: parameterized YAML recipes, not free-form research)This skill guarantees:
writes_to: (when applicable).quality.md, brain-first.md, _brain-filing-rules.md) are followed.The full behavior contract is documented in the body sections above; this section exists for the conformance test.
The skill's output shape is documented inline in the body sections above (see "Output", "Brain page format", or equivalent). The literal section header here exists for the conformance test (test/skills-conformance.test.ts).
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.