Skip to main content

security-investigate-report

Triages an incoming security report for Open Collective codebases - searches `priv/security-issues` and opencollective/opencollective-security first for existing documentation, validates reproducibility and impact when new, maps to official bounty policy, proposes fixes, and drafts contributor replies. Writes artifacts under `/workspace/priv/security-issues/<unique-folder>/` including up to three core markdown files (`reply.md`, optional `issue.md` when fully confirmed, optional `plan.md` when there is a fix to plan), plus a minimal runnable PoC for full confirmation. Updates `security/memory.md` after full triage. After triage, offers optional production impact analysis (`impact.md`) and filing on opencollective/opencollective-security. Use when the user pastes or describes a security report, asks to investigate a vulnerability, assess bounty eligibility, or draft a response to security@opencollective.com reporters.

Aller à l'installation

Informations de source

Dépôt
opencollective/monorepo
Dernière activité de la source
2 juillet 2026 à 11:19
Langue détectée de SKILL.md
anglais
Étoiles
2
Forks
3

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
security-investigate-report
description
Triages an incoming security report for Open Collective codebases - searches `priv/security-issues` and opencollective/opencollective-security first for existing documentation, validates reproducibility and impact when new, maps to official bounty policy, proposes fixes, and drafts contributor replies. Writes artifacts under `/workspace/priv/security-issues/<unique-folder>/` including up to three core markdown files (`reply.md`, optional `issue.md` when fully confirmed, optional `plan.md` when there is a fix to plan), plus a minimal runnable PoC for full confirmation. Updates `security/memory.md` after full triage. After triage, offers optional production impact analysis (`impact.md`) and filing on opencollective/opencollective-security. Use when the user pastes or describes a security report, asks to investigate a vulnerability, assess bounty eligibility, or draft a response to security@opencollective.com reporters.
# Security report investigation (Open Collective) Canonical policy: [SECURITY.md](https://github.com/opencollective/opencollective/blob/main/SECURITY.md) (eligibility, scope, qualifying/non-qualifying, rewards, contact). This skill does not replace human sign-off on bounties or payouts. **Shared triage steps:** Read [../security-investigate/_shared.md](../security-investigate/_shared.md) for issue folder rules, **known issue check** (local `priv/security-issues` archive + GitHub MCP search of opencollective-security), core workflow (parse → PoC → classify → severity → fix), **`security/memory.md` update**, and `plan.md` / `impact.md` structure. ## Report ID (when provided) Capture any **security report ID** (ticket, email subject id, internal code) at the start. Do not invent one. - **`reply.md` / expense instructions:** Use the real ID when bounty or payment is discussed; otherwise **`__SECURITY_REPORT_ID__`** (reporter replaces per team process). - **`issue.md`:** **Report ID:** line near the top when fully confirmed. Title = concise finding description, not a PR/commit title. ## Known issue match (report-specific) When **_shared.md** finds a match (in `priv/security-issues`, on GitHub, or both): **`reply.md` only**. Cite prior triage folder path and/or existing GitHub issue URL/number and status. Note duplicates are generally not eligible for a separate bounty per SECURITY.md; **do not promise payment**. Do **not** offer to file a new opencollective-security issue. Do **not** update `security/memory.md` (canonical entry should already exist). ## Full triage workflow **Prerequisite:** Known issue check passed (local + GitHub). Create issue folder, then: 1. **Steps 1–6** from **_shared.md** (parse through fix plan). For classify (step 4), also check SECURITY.md Qualifying / Non-qualifying lists. 2. **Contributor reply** - Professional, paste-ready **`reply.md`** (templates below). Apply **Report ID** when bounty/expense applies. 3. **Policy compliance** (fully confirmed + possible bounty) - Walk SECURITY.md Eligibility, Responsible Disclosure, and Scope. Flag gaps (missing policy sentence, production-only testing, scanner-only, hypothetical without PoC). Verdict: **recommended** / **not eligible** / **needs more info**. **Do not promise payment.** 4. **Bounty recommendation** - If eligible, map to Rewards table (project type, Low/Medium/High/Critical band). Note sanctions/payment-processor limits if relevant. Expense: `https://opencollective.com/ofitech/expenses/new` with report ID (see **Report ID**). 5. **`issue.md`** - Only when **fully confirmed** (PoC run). GitHub body for opencollective-security: report ID, title suggestion, summary, impact, components, code refs, PoC path/run instructions, severity, label hints. Engineering handoff, not a copy of the email. 6. **`security/memory.md`** - Per **_shared.md** (reporter section, title, date, bounty or —). 7. **End-of-triage offers** - After in-chat summary, offer production impact analysis and GitHub issue filing (see below). Do not run either by default. ## Output files All under `/workspace/priv/security-issues/<unique-folder>/`. PoC in `poc/` or `poc.*`; required for **fully confirmed**. Skip files that do not apply. | File | When | Contents | | ----------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `reply.md` | **Always** | Paste-ready researcher reply: verdict, thanks, bounty/expense when applicable (see **Report ID**). State provisional clearly if PoC not run. | | `issue.md` | **Fully confirmed only** | opencollective-security issue body (see workflow step 5). | | `plan.md` | **Fix to plan** | Per **_shared.md**. | | `impact.md` | **User accepts impact offer** | Per **_shared.md**. Do not create during default triage. | ## Reply templates (adapt; keep accurate and kind) **Known issue / duplicate** - Thanks; prior triage (`priv/security-issues/…`) and/or known GitHub issue + link/number/status; duplicates generally not eligible for separate bounty; invite follow-up if they believe it is a distinct flaw; optional report ID for correlation. **Invalid / non-issue** - Thanks; conclusion (cannot reproduce, not a defect, out of scope, Non-qualifying with brief rationale); point to staging/docs if helpful; no bounty unless a separate valid finding. **Fully confirmed** - Thanks; validated via minimal PoC in permitted environment (minimal exploit detail if undisclosed); next steps; if eligibility appears met, bounty tier/band per SECURITY.md and note any uncertainty (first reporter, 72h rule, etc.); expense URL + **Report ID**. ## End-of-triage offers (optional) After the in-chat summary, **offer** both follow-ups below. Do not run either during default triage; wait for user acceptance. ### Production impact analysis When abuse may leave **queryable traces** (DB rows, audit logs, etc.). - **Offer when:** Fully or provisionally confirmed findings where forensic checks could clarify whether exploitation occurred in production. - **On accept:** Write **`impact.md`** per **_shared.md** and note the new file in chat. ### GitHub issue **Offer** to create on **`opencollective/opencollective-security`**. Do not create without user acceptance. Do not use browser automation. - **Offer when:** Fully confirmed + `issue.md` (primary); provisional/invalid only if user may want a record. - **On accept:** GitHub MCP available; read schema (`issue_write` create, etc.). Title/body from `issue.md` when present; no secrets or raw exploit steps if undisclosed. Use existing labels only. Return issue URL or leave `issue.md` for manual paste at [New issue](https://github.com/opencollective/opencollective-security/issues/new). ## In-chat summary **Duplicate path:** (1) Verdict + prior triage folder and/or existing GitHub issue link (2) Search queries and why same finding (local + GitHub) (3) Folder path + `reply.md`. **Full triage path:** (1) Duplicate check note (local + GitHub) (2) Verdict + reason (3) Evidence + PoC if confirmed (4) Impact (theoretical; in `reply.md` / `issue.md` — not production forensic queries) (5) Severity (6) Fix plan pointer (7) Bounty eligibility/band/compliance + report ID (8) `security/memory.md` updated (9) Folder path + files written + PoC path (10) **Offer** production impact analysis (`impact.md`) when queryable traces may exist (11) **Offer** opencollective-security issue when applicable — only run either after user accepts
Voir sur GitHub