Memory Research
by @phernandez
Research an external subject using web search, synthesize findings into a structured Basic Memory entity. Use when asked to research a company, person, techn...
clawhub install memory-researchπ About This Skill
name: memory-research description: "Research an external subject using web search, synthesize findings into a structured Basic Memory entity. Use when asked to research a company, person, technology, or topic β or when a bare name or URL is provided that implies a research request."
Memory Research
Research an external subject, synthesize what you find, and create a structured Basic Memory entity β with the user's approval.
When to Use
Explicit triggers:
Implicit triggers (also activate this skill):
Workflow
Step 1: Web Research
Search for current information across multiple sources. Aim for 3-5 searches to build a well-rounded picture:
[subject name] site
[subject name] overview
[subject name] news [current year]
[subject name] [relevant domain keywords]
What to gather by entity type:
| Entity Type | Key Information | |-------------|----------------| | Organization | What they do, products/services, stage (startup/growth/public), funding, leadership, headquarters, employee count, notable partnerships or contracts | | Person | Current role, organization, background, expertise, notable work, public presence | | Technology | What it does, who maintains it, maturity, ecosystem, alternatives, adoption | | Topic/Domain | Definition, current state, key players, trends, relevance to user's context |
Step 2: Check Existing Knowledge
Before proposing a new entity, search Basic Memory:
search_notes(query="Acme Corp")
search_notes(query="acme")
Try name variations β full name, abbreviation, acronym, domain name.
If the entity already exists:
edit_note to append new observations or update outdated onesIf the entity doesn't exist, proceed to evaluation.
Step 3: Evaluate and Summarize
Present your findings in a structured summary. Include all relevant information organized by section:
## [Subject Name]Type: [Organization / Person / Technology / Topic]
Summary: [2-4 sentences: what this is, why it matters, key distinguishing facts]
Key Details:
[Organized by what's relevant for the entity type]
[Stage, funding, leadership for orgs]
[Role, expertise, affiliations for people]
[Maturity, ecosystem, alternatives for tech] Relevance: [Why this matters to the user β connection to their work, domain, or interests.
If no obvious connection: "No specific connection identified."]
Sources:
[URLs of key sources consulted]
Evaluation Guidelines
Use hedging language. Web research is a snapshot, not ground truth:
Don't fabricate. If information isn't available, say so:
Let the user define relevance. Don't impose a fixed evaluation framework. Instead, highlight facts and let the user draw conclusions. If the user has a specific evaluation rubric (strategic fit, buy/partner/compete, etc.), they'll tell you β apply it when asked.
Step 4: Propose Entity Creation
After presenting the summary, ask for approval:
Create Basic Memory entity for [Subject]?
Location: [suggested-folder]/[entity-name].md
Type: [entity type] [yes / no / modify]
If the user provided context with their request ("saw them at the conference"), include that context in the proposed entity.
Step 5: Create the Entity
After approval, create a structured note. Adapt the template to the entity type:
#### Organization
write_note(
title="Acme Corp",
directory="organizations",
note_type="organization",
tags=["organization", "relevant-tags"],
content="""# Acme CorpOverview
[2-3 sentence description from research]Products & Services
[Key offerings discovered in research] Background
Stage: [Startup / Growth / Public]
Headquarters: [Location]
Employees: [Estimate, hedged]
Leadership: [Key people if found]
Founded: [Year if found]Observations
[relevance] Why this entity matters in user's context
[source] Researched on YYYY-MM-DD
[additional observations from research findings] Relations
[Link to related entities already in the knowledge graph]"""
)
#### Person
write_note(
title="Jane Smith",
directory="people",
note_type="person",
tags=["person", "relevant-tags"],
content="""# Jane SmithOverview
[Current role and affiliation. Brief background.]Background
Role: [Title at Organization]
Expertise: [Key domains]
Notable: [Publications, talks, projects if found]Observations
[role] Title at Organization
[expertise] Key technical or domain expertise
[source] Researched on YYYY-MM-DD Relations
works_at [[Organization]]"""
)
#### Technology
write_note(
title="Technology Name",
directory="concepts",
note_type="concept",
tags=["concept", "technology", "relevant-tags"],
content="""# Technology NameOverview
[What it is and what problem it solves]Key Details
Maintained by: [Organization or community]
Maturity: [Experimental / Stable / Mature]
License: [If applicable]
Alternatives: [Comparable tools or approaches]Observations
[definition] What this technology does in one sentence
[maturity] Current state and adoption level
[source] Researched on YYYY-MM-DD Relations
[Link to related concepts, tools, or projects in the knowledge graph]"""
)
Adapt these templates freely. The key elements are: note_type/tags parameters, an overview, structured details, observations with categories, and relations.
Step 6: Store Source Context
If the user provided context with their request, capture it in the entity:
# User said: "Acme Corp β saw their demo at the conference last week"
edit_note(
identifier="Acme Corp",
operation="append",
section="Observations",
content="- [context] Saw their demo at conference, week of 2026-02-17"
)
This context is often the most valuable part β it's the user's relationship to the entity, which web research can't provide.