From browser-data-capture
Help the user act as a good-faith reporter when a capture run incidentally surfaces something that looks like an unauthenticated endpoint exposing data that probably shouldn't be public, a leaked token in a response, or another security-relevant finding. Drafts a courteous, vendor-friendly disclosure email, identifies the right contact (security.txt, security@, abuse@, public bug-bounty programme), and writes the report into the maps repo so the user has a record. White-hat use only. Use when the user says "we found something we should report", "looks like an open endpoint", "draft a disclosure email for this finding".
npx claudepluginhub danielrosehill/claude-code-plugins --plugin browser-data-captureThis skill uses the workspace's default tool permissions.
A capture run is intended to map endpoints the user can build a legitimate integration against. Occasionally, it incidentally surfaces something that looks like a security issue — an endpoint that returns data without auth when it clearly should require it, a token or key embedded in a response body, an IDOR-shaped pattern. This skill helps the user behave well when that happens: stop, document...
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Share bugs, ideas, or general feedback.
A capture run is intended to map endpoints the user can build a legitimate integration against. Occasionally, it incidentally surfaces something that looks like a security issue — an endpoint that returns data without auth when it clearly should require it, a token or key embedded in a response body, an IDOR-shaped pattern. This skill helps the user behave well when that happens: stop, document, disclose, move on.
This skill is not a research or testing tool. It does not probe further, enumerate, or attempt to confirm impact. The premise is that the finding is already incidental — Claude has seen it once, in normal use, and the next responsible step is reporting.
The user (or a previous skill in this plugin) flags one of:
If the user is trying to find this kind of thing rather than incidentally surfacing it, this is the wrong plugin and the wrong skill. Tell them to use a proper bug-bounty or pentest workflow under explicit scope.
Pause and confirm. Before doing anything else, confirm with the user that they want to act on this finding. Some users prefer to ignore non-impactful informational findings; others want to report everything. Don't assume.
Identify the right contact. In order of preference:
https://<domain>/.well-known/security.txt — fetch it and use the Contact: field.security@<domain> — use only if security.txt is absent and no programme exists.abuse@<domain> or generic support@<domain> — last resort, note that these may not reach the right team.Draft the disclosure email. Use this skeleton (adjust tone to match the severity):
Subject: Possible security issue on <domain> — incidental finding
Hi <team>,
I'm <name> (<contact>), a developer working on a programmatic integration
against <domain>. While capturing the network traffic of normal browsing in
order to understand the data shape, I noticed what looks like an
unintentionally exposed endpoint / leaked value:
<one-paragraph factual description>
Endpoint: <method> <url>
Observed: <what came back, in neutral terms>
Date/time: <UTC timestamp>
I have not probed further, have not attempted to enumerate, and have not
shared this with anyone else. I'm flagging it so your team can review it.
I'm happy to provide additional details (request/response samples) over a
secure channel if useful. I don't expect a reward and I'm not requesting
one — this is a courtesy disclosure.
Best regards,
<name>
Tone: courteous, factual, under-claimed. Do not speculate about exploitability, impact, or affected users. Do not include working request samples in the initial email — offer them on follow-up over a channel the vendor specifies.
Sanity-check the draft. Before showing it to the user:
config.json user_contact_for_disclosures if set, otherwise prompt).Save a record. Write the disclosure into the maps repo (or the data dir if no repo is registered):
<maps-root>/maps/<domain>/disclosures/<YYYY-MM-DD>-<short-slug>.md
With sections: Finding, Contact identified, Email sent (draft), Response received (initially empty, user appends later), Resolution.
Hand off. Show the draft to the user and let them send it themselves from their own mail client. Do not auto-send. The user owns the relationship.
The plugin's purpose is reliable programmatic data ingest. Security findings, when they appear, are an incidental byproduct of normal capture activity, not a goal. This skill exists so the user can be a good citizen when something does surface — not to encourage looking for them.