Other

/claude-desktop-research

Write grounded Claude Desktop/Web research prompts. Triggers: research prompt, Claude Desktop, MCP-aware.

$ golems-cli skills install claude-desktop-research
3 workflows

Updated 2 weeks ago

Write deep-research prompts for Claude Desktop (macOS .app) — also covers Claude Web (claude.ai projects) as a subset. Both surfaces support Drive grounding and Deep Research mode. Only Claude Desktop has local MCP connections — and only in REGULAR CHAT, not in Research mode (empirically verified 2026-06-10, see below). The differentiator is Desktop's chat-mode MCP access.

šŸ”‘ DRIVE-WORKSPACE RULE (Etan, standing — never violate): Etan's research surface has his Google Drive workspace CONNECTED. Prompts must REFERENCE the relevant Google Doc(s) by NAME so the agent pulls them itself via the Drive connector. NEVER instruct Etan to attach/upload files — he should never have to attach anything, ever. Reference doc names, not attachments.

šŸ”‘ OUTPUT-PLACEMENT CONTRACT (Etan, standing — 2026-06-10): Every prompt this skill emits MUST end with a placement block stating where the output lives next: the owning-context folder (large-plan / design-doc / sprint — one folder per research, placement is dynamic), the filename convention, and whether Brain Drive archival applies. Claude-side outputs land on ~/Desktop or ~/Downloads (native exports: compass_artifact_<UID>*.md; Etan also hand-pastes .rtf/.rtfd) and MUST be deliberately moved to the owning folder — the moving agent verifies the destination is correct before moving (no blind automation for local files). The evidence of why we did what we did lives with the work it justified.

Why this skill is named "desktop"

Both Claude Web and Claude Desktop now expose:

  • Deep Research mode (5–60 min web sweeps with citations)
  • Google Drive grounding — Etan's Drive workspace is already connected. The prompt REFERENCES the relevant Doc(s) by NAME and the agent reads them itself via the connector. (Never an "attach a folder" step — see the DRIVE-WORKSPACE RULE above and the emit-gate below.)

But only Claude Desktop has local MCP connections (wired via claude_desktop_config.json + .mcpb extensions) — and they are exposed in REGULAR CHAT ONLY.

āš ļø VERIFIED 2026-06-10 (empirical, gen-15 weave): Claude Desktop Research mode CANNOT call local MCP tools. A Research-mode run instructed to call brain_search before any web work returned the mandated fallback "TOOL UNAVAILABLE IN RESEARCH MODE" and the UI logged Failed to call tool "brain_search" — Research routes everything through its own pipeline (launch_extended_search_task); local MCPs are unreachable mid-research. Any prompt that assumes otherwise hits a silent miss.

So the skill has two dispatch modes:

  • Research mode — web sweeps + Drive connector grounding only. No local MCPs. Use for citation-heavy external research.
  • Chat-bench mode — a benchmark-style prompt in a REGULAR Desktop chat: full local MCP access (brain_search, filesystem, voicelayer, …). This is the proven pattern for MCP-grounded deep work (2026-06-09 2nd-pass runs: context-hygiene, theo-audio, m1-sync — all called brain_search + filesystem from chat).

If Gemini Desktop ever ships an MCP connections file, that gap closes — for now (2026-04-30) only Claude Desktop has it.

Pre-flight: Apply the CHECK-FIRST + GROUND + emit-only-if-pass gate before writing any paste-ready deep-research prompt.

When to use this vs. Gemini vs. quick lookup

NeedUse
Quick web lookup, 1–2 sourcesWeb/exa tools directly
Deep comparison, 5+ sources, academic papers, NO MCP neededThis skill (web mode)
Deep work that must call BrainLayer / voicelayer / supabase / etc. mid-streamThis skill (chat-bench mode — REGULAR Desktop chat, never Research mode)
Broad landscape analysis ("what's out there")This skill
API validation against official docsThis skill
Side-by-side with Gemini for paired Drive-grounded researchRun this skill plus /gemini-research, then compare outputs
Visual/frame-heavy analysis/gemini-research (CLI) — Gemini is faster on batch images

Pre-flight: which MCPs are actually wired?

Before writing a prompt that assumes desktop-mode MCP access, verify the connection list. Claude Desktop wires MCP servers via TWO paths — both must be checked.

Path 1: Legacy claude_desktop_config.json

python3 -c "
import json
with open('/Users/etanheyman/Library/Application Support/Claude/claude_desktop_config.json') as f:
    d = json.load(f)
servers = d.get('mcpServers', {})
print('Legacy MCPs (claude_desktop_config.json):')
for name in sorted(servers.keys()):
    print(f'  - {name}')
print(f'Total legacy: {len(servers)}')
"

Path 2: Extensions (.mcpb)

EXT_DIR="$HOME/Library/Application Support/Claude/Claude Extensions Settings"
echo "Installed .mcpb extensions:"
ls "$EXT_DIR"/*.json 2>/dev/null | xargs -n1 basename | sed 's/\.json$//' | sed 's/^/  - /'
[ -f "$EXT_DIR/extensions-installations.json" ] && python3 -c "
import json, sys
with open('$EXT_DIR/extensions-installations.json') as f:
    d = json.load(f)
print('extensions-installations.json:')
print(json.dumps(d, indent=2)[:1500])
"

The Extensions path is where modern MCPs live (e.g., local.mcpb.etan-heyman.brainlayer v1.0.0, installed 2026-03-28 — provides brain_search, brain_store, etc., but NOT visible in claude_desktop_config.json).

If a prompt instructs Claude Desktop to call a tool, the tool must appear in EITHER the legacy config OR the Extensions list. Always run BOTH commands above before writing a desktop-mode prompt — checking only one path can produce a false-negative ("MCP not wired" when it actually is, just under the other path).

.mcpb is the canonical wiring strategy going forward

The legacy claude_desktop_config.json is being phased out — entries currently in it (e.g., exa, whatsapp, whatsapp-business, voicelayer) will migrate to .mcpb extensions in a separate consolidation sprint. Until that sprint lands, BOTH paths must be checked. This skill should be revisited once the migration is complete to drop the legacy enumeration step.

Out-of-the-box behavior

If the relevant MCP is missing from BOTH paths, the prompt will hit a silent miss. Either (a) tell the user to install the missing .mcpb (preferred) or add to claude_desktop_config.json (legacy), then restart Claude Desktop; or (b) flag the gap and rewrite the prompt to web-mode (no MCP).

Workflows

/claude-desktop-research:fast-batch/claude-desktop-research:harvest-results/claude-desktop-research:migrate