---
name: research-with-fullsy
description: Research web sources in the user's browser and capture every page with Fullsy, so each claim in the answer has a verifiable Capture Record (sha-256 fingerprints, re-checked on open). Covers general research questions AND competitive teardowns (landing-page analysis with a swipe file). Use when the user invokes /research-with-fullsy, asks for "research with receipts," a competitive teardown, or wants web sources preserved and citable.
---

# Fullsy Research — research with receipts

Answer the user's question from web sources AND leave a Fullsy Capture Record
of every source used. The user ends with two things: the answer, and a local,
fingerprinted record of what each source said at the moment it was read.

Two modes, same mechanics, different memo:
- **Research mode** (default): a question answered from sources.
- **Teardown mode**: the sources are competitor/landing pages and the user
  wants positioning analysis — the memo becomes a teardown with a swipe file.

## Preconditions (check before starting)

1. Browser control with JavaScript execution in the user's Chrome
   (e.g. Claude in Chrome). If unavailable, say so and stop.
2. On any http(s) page, evaluate `typeof window.fullsy`.
   - `"object"` → ready.
   - `"undefined"` → Fullsy isn't installed, or Agent access is off. Tell the
     user: *open a Fullsy capture (toolbar icon or History), click
     "Agents: off" in the top bar, and accept the permission prompt — then say
     go.* If that toggle instead reads **"Agents: Pro"**, agent capture is a
     Fullsy Pro feature (the 30-day trial counts): point them to
     getfullsy.com/pricing to start the trial or buy, have them paste the key
     into the extension, then say go. Do not proceed until the bridge is present.

## The bridge contract

All calls run as JavaScript in any http(s) page:

- `await window.fullsy.captureUrl(url, {caseName})` → `{ok, capId,
  status:'started'}`. Fullsy opens the URL in a fresh **visible** tab,
  captures the whole page, stores the record, opens its editor, and closes
  the page tab. Visible is by design — the user watching is the audit trail.
  Rate limit: one capture per 15 seconds. Only http(s) URLs.
  **Always pass a short `caseName` for the errand** (e.g. the research
  question in a few words, or "watch · 2026-08-14"): every capture with the
  same caseName files into one case file, kept separate from the user's own
  history, and the user can download the whole case as a single zip from
  History.
- `await window.fullsy.getRecord(capId)` → `{ok, record}` once stored
  (`{ok:false, error:'no such capture'}` while still running — poll).
  `record.integrity.frames` are per-frame sha-256 fingerprints;
  `record.integrity.html` covers the DOM snapshot. Records re-verify on open.
- `await window.fullsy.list(n)` → recent captures, `agent: true` marks
  agent-initiated ones.
- First call from a new site returns `{ok:false, needsApproval:'<origin>'}`.
  The bridge answers only origins the user has approved. Tell the user:
  *"open a Fullsy capture tab and click Approve on the banner for <origin>,"*
  then retry the same call. Approve once per origin.
- A response of `{ok:false, error:'Fullsy Pro required …'}` means the user's
  Pro trial has ended. Stop capturing and tell them plainly: agent capture
  needs Fullsy Pro — get it at getfullsy.com/pricing, activate the key, then
  say go. Do not fake or skip records to work around it.
- Do NOT call `window.fullsy.capture()` (same-tab capture) from a tab your
  tooling is attached to — debugger attachment stalls it. Use `captureUrl`.

## Workflow

1. Clarify the question if genuinely ambiguous. Gather candidate sources:
   URLs the user supplied first, then search. In teardown mode with no list
   given, research the top N competitors and confirm the list before
   capturing.
2. For each source, interleave reading and capturing:
   a. Read the page with your text tools and extract what matters.
      - Research mode: the facts and quotes relevant to the question.
      - Teardown mode: headline + subhead (verbatim), offer and pricing,
        implied target customer, proof elements (testimonials, logos,
        numbers), primary CTA text, and one notable choice worth stealing
        or avoiding.
   b. Fire `captureUrl(<url>)` and note the returned `capId`.
   c. Move to reading the next source; poll `getRecord(capId)` between reads
      until it returns ok (reading time usually covers the rate limit). Cap the
      polling: if it still returns `no such capture` after ~6 tries (~90s), the
      capture didn't land (a rare uncapturable page or a collision) — mark that
      source "not captured" and move on. Never poll forever.
   d. Record for the sources table: title, url, capId, capturedAt,
      first 12 chars of `integrity.html`, frame count.
3. Consent boundaries: don't capture pages behind the user's logins unless
   the user explicitly asked for that page to be preserved. More than ~10
   captures in one errand: ask first.
4. If a capture fails (rate limit, non-http, error), mark that source
   "not captured" in the table. Never invent a record.

## Deliverable

A markdown memo. Both modes end with the same two elements:

- Sources/swipe-file table:
  `# | title | url | captured at | record id | html sha-256 (12)`
- Closing line: *"Every source is filed in the case '<caseName>' in your
  Fullsy History — records re-verify their fingerprints on open, and
  'Download case' gives you the whole errand as one zip."*

**Research mode body:** the synthesis, with numbered source references
[1], [2]…

**Teardown mode body:**
- **The read:** 3–6 sentences — the competitive picture and the open gap.
- **Per competitor:** headline (verbatim) · offer/price · implied customer ·
  proof · CTA · the one thing worth stealing or avoiding.
- **Comparison table:** `competitor | headline | price | proof style | CTA`.
- **Recommendations:** what this means for the user's own positioning.
- Note: each record in Fullsy's History also carries the **SEO Report**
  (their heading structure and signals) and the **Design Report** (their
  exact palette and type) — open a record's Pro Reports rail for the
  deeper dig. On Fullsy Pro, "Download case" also gives you a readable report
  per record — report.html, the SEO and design reports styled like the app
  plus the fingerprint manifest, with a browsable index.html cover — alongside
  the raw data (seo-report.json, design-tokens.json, a searchable document.pdf
  with clickable links), each page's source, and its archive.

Save the memo as a file when the user's environment has a filesystem;
otherwise print it in full.
