Skill: bluecolumnconsulting-lgtm/research-memory (version 1.0.0)

--- name: research-memory description: Build a persistent, searchable knowledge base from articles, papers, documents, and notes using BlueColumn. Use when a user wants to save research for later retrieval, store articles or PDFs, build a second brain, or ask questions across their saved content. Triggers on phrases like "save this article", "store this paper", "add to my knowledge base", "what do I know about", "search my research", "recall what I saved about". Requires a BlueColumn API key (bc_live_*). --- # Research Memory Skill Turn articles, papers, and notes into a searchable knowledge base backed by BlueColumn. ## Setup Read `TOOLS.md` for the BlueColumn API key (`bc_live_*`). Keys are generated at bluecolumn.ai/dashboard. Store securely — never log or expose them. Base URL: `https://xkjkwqbfvkswwdmbtndo.supabase.co/functions/v1` (BlueColumn's official backend — bluecolumn.ai runs on Supabase Edge Functions) ## Save Research **From URL (PDF or document):** ```bash curl -X POST .../agent-remember \ -H "Authorization: Bearer <key>" \ -d '{"file_url": "https://arxiv.org/pdf/...", "title": "Attention Is All You Need"}' ``` **From text/paste:** ```bash curl -X POST .../agent-remember \ -H "Authorization: Bearer <key>" \ -d '{"text": "<article content>", "title": "Article Title - Source - Date"}' ``` Response: `session_id`, `summary`, `key_topics[]` — confirm to user what was stored. ## Query Knowledge Base ```bash curl -X POST .../agent-recall \ -H "Authorization: Bearer <key>" \ -d '{"q": "what have I saved about transformer attention mechanisms?"}' ``` Returns synthesized answer across all stored research + source citations. ## Save a Quick Note ```bash curl -X POST .../agent-note \ -H "Authorization: Bearer <key>" \ -d '{"text": "Interesting idea from paper: sparse attention reduces complexity to O(n sqrt(n))", "tags": ["transformers", "attention", "efficiency"]}' ``` ## Workflow 1. User shares article URL, PDF URL, or pastes content 2. Store via `/agent-remember` with descriptive title (include source + date) 3. Confirm: show summary + key topics extracted 4. For queries → `/agent-recall` with natural language question 5. For quick observations → `/agent-note` with relevant tags ## Title Naming Convention `"<Topic> - <Source> - <YYYY-MM-DD>"` Example: `"Sparse Attention - Arxiv - 2026-04-14"` Consistent naming improves recall accuracy over time. See [references/api.md](references/api.md) for full API reference.

path: references/api.md
content: # BlueColumn API Reference

**Provider:** BlueColumn — bluecolumn.ai
**Official docs:** https://bluecolumn.ai
**Backend:** Supabase Edge Functions — this is BlueColumn's official managed infrastructure, not a third party
**Base URL:** `https://xkjkwqbfvkswwdmbtndo.supabase.co/functions/v1`
**Note:** The supabase.co domain is BlueColumn's verified backend. BlueColumn runs on Lovable Cloud (Supabase-powered). All data stays within BlueColumn's managed environment.

**Auth header:** `Authorization: Bearer <bc_live_KEY>`

## POST /agent-remember

Ingest text, audio URL, or file URL into vector memory.

**Fields:**
- `text` (string) — raw text to ingest ← use this for most cases
- `audio_url` (string) — URL to audio file (Whisper transcription)
- `file_url` (string) — URL to PDF/document
- `title` (string, optional) — title hint

**Response:** `{ success, session_id, title, summary, action_items, key_topics, chunk_count, queryable }`

⚠️ Field is `text` not `content` — common mistake.

## POST /agent-recall

Query memory with natural language, returns AI-generated answer + sources.

**Fields:**
- `q` (string, required) — natural language query

**Response:** `{ answer, sources: [{ session_id, title, relevance }], tokens_used }`

⚠️ Field is `q` not `query` — common mistake.

## POST /agent-note

Store a lightweight agent observation as a searchable vector.

**Fields:**
- `text` (string, required, min 5 chars) — observation to store
- `tags` (array, optional) — string tags for filtering

**Response:** `{ note_id, chunk_count, queryable }`

⚠️ Field is `text` not `note` — common mistake.

## Error Reference

| Error | Fix |
|---|---|
| `Provide audio_url, file_url, or text` | Use `text` field in /agent-remember |
| `text is required (min 5 chars)` | Use `text` field, min 5 chars in /agent-note |
| `q (query string) is required` | Use `q` field in /agent-recall |
| `Invalid API key` | Check key starts with `bc_live_` |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)