本文へ移動
cccskills
無料GitHub で公開

red-team

Adversarially probe this monorepo for security flaws at the right depth. Steers the red-team subagent — picks quick/standard/deep from the request, spawns it (fanning out for a wide deep sweep), collates findings into a dated report, and files security/sec:* issues for confirmed high/critical findings. Use when asked to "red-team", "try to hack this", "find security holes", "pentest this package/app", or as the brain behind the CI + daily security runs.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Red-Team Skill — the steering brain

You drive the adversarial security probe. The actual analysis lives in the red-team subagent (.claude/agents/red-team.md) — this skill decides how deep to go, spawns the agent, collates what it finds, and files the serious stuff as GitHub issues. Keep the attack logic in the agent; keep orchestration here.

1. Resolve { depth, scope } from the request

The user said…depthscope
/red-team (bare)standardthe current package/app if obvious from cwd/context, else ask which
/red-team quick / a PR/diff contextquickdiff (changed files vs base)
/red-team standard apps/velostandardapps/velo
/red-team deep / "full sweep" / "everything"deeprepo
names a package/app(keep stated/ default standard)that path

Defaults: depth standard; for deep with no scope, default scope repo. If depth is standard/quick and no scope can be inferred, ask the one question ("which package or app?") rather than guessing the whole repo (a whole-repo standard run is expensive).

2. Spawn the subagent

Spawn red-team via the Agent tool with { scope, depth } in the prompt.

  • One target (quick/standard, or a single path) → one subagent.
  • Wide deep (scope: repo) → fan out: spawn one subagent per top-level apps/* and per security-relevant packages/* (auth, core, pages, sales, bookings, and any with a server/api), each with { scope: "<that path>", depth: "deep" }. Launch them in parallel (multiple Agent calls in one message). Fanning out keeps each agent's context focused and lets dynamic confirmation run per-app. The agents are synchronous — you hold their results when they return; never report "running in the background".

Each subagent writes its own writeups/reports/red-team-<scope-slug>-YYYYMMDD.md and returns a structured findings list.

3. Collate

  • If you fanned out, merge the per-agent reports into a single top-level writeups/reports/red-team-repo-YYYYMMDD.md (summary table = sum of all; link or inline the per-scope sections). A single-target run already wrote its one report — just confirm it exists and matches red-team-TEMPLATE.md.
  • De-dupe findings that the same flaw produced across agents (shared package code).

4. File issues for confirmed high/critical findings

⚠️ Public-repo disclosure. This repo is public — a security/sec:* issue is a public disclosure of an unfixed flaw. Only file public issues when the human driving you has OK'd it (or the finding is a fail-closed correctness bug, not an exploitable vuln). When in doubt, deliver findings privately (hand the report back, or email it) and ask before filing. The daily automation never posts publicly — it emails the report (red-team-daily.yml). Treat that as the default posture; the steps below apply once a private channel or human OK is in place.

For every finding with severity ∈ {high, critical} AND confidence == confirmed:

  1. Dedupe first — mcp__github__search_issues for an open issue with the security label matching this finding (same route/file + title). If one exists, skip (note it in the report's "Filed" line instead).
  2. Open the issue with mcp__github__issue_write (method: create):
    • Labels: security + sec:<severity> + the owning pkg:<name>/app:<name> label (where the vulnerable code lives — mirror the commit-scope convention).
    • Title: plain-English, names the impact (e.g. "Cross-team order read on /api/teams/[id]/orders/[orderId]"). No jargon in the title.
    • Body: github-tasks style — a 👤 plain-language "what an attacker can do & why it matters", a 🤖 block with location, category, repro, and suggested fix, and a ## 🧪 How to test with the exact reproducing request. Reference the report file.
    • If this run is under an epic/the daily sweep, link it.

    Labels must already exist on GitHub. The security/sec:* labels are added in .github/labels.yml and only become applyable after that merges to main and the labels workflow syncs them — until then, list the findings in the report and say issues will be filed once the labels land, rather than erroring on an unknown label.

  3. Medium/low stay in the report only — don't file them (noise). The report is their home.

5. Report back to the caller

Print a tight summary: counts by severity (confirmed vs suspected), the report path, and clickable links to any issues filed. Example:

🔴 Red-team (deep · repo) — 1 critical, 2 high, 4 medium (3 confirmed)
Report: writeups/reports/red-team-repo-20260621.md
Filed:  #551 (sec:critical), #552 (sec:high)
Suspected (not filed, see report): 1 high, 4 medium

End with the offer: "Want me to open issues for the suspected high/criticals too, or fix any of these now?" — fixing is a separate, explicit step (this skill finds; it doesn't patch).

Relationship to the other entry points

  • CI (.github/workflows/red-team.yml) runs the subagent directly at depth=quick on a PR diff and fails the check on a high/critical finding — it doesn't go through this skill.
  • Daily (.github/workflows/red-team-daily.yml) runs depth=deep whole-repo, posts the report to a standing issue, and files issues exactly as step 4 above.
  • Both workflows MUST follow the Claude-action workflow standard in .claude/agents/CLAUDE.md — notably the tool-permission grant (per-PR: --allowedTools …; daily sweep: --permission-mode bypassPermissions), without which the gate fails open (#834/#1036).
  • This skill is the on-demand brain and the human entry point — and the reference for what the workflows automate.
  • It complements, not replaces, the built-in security-review skill (which passively reviews a diff) and /review (general code review). Reach for /red-team when you want something that actively hunts for exploits at a chosen depth.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

a11y

無料

Accessibility review for Vue surfaces — the code-cleaning analog of /code-review and /simplify, pointed at WCAG/ARIA. Reviews just your diff (or a package/file), rates findings by severity, and either comments inline on the PR (--comment) or applies the safe fixes for you (--fix). Steers the depth-aware `a11y` subagent. Use when asked to "check accessibility", "a11y this", "audit ARIA/keyboard", or run /a11y.

日本語の概要は準備中です。原文の説明を表示しています。

FriendlyInternet/nuxt-crouton102026年10月6日 更新

ask-human

無料

Emit a blocking question the owner can read in ~10 seconds and answer in one reply — the scannable, recommendation-first handoff every agent posts when it hits a fork it can't own. Leads with the one decision + a recommendation, carries the 🤖 provenance header, doubles as the

日本語の概要は準備中です。原文の説明を表示しています。

FriendlyInternet/nuxt-crouton102026年10月6日 更新

audit

無料

Audit packages for documentation completeness, detect drift between code and docs, and maintain documentation quality across the monorepo. Use when checking package docs, running audits, or reviewing documentation health.

日本語の概要は準備中です。原文の説明を表示しています。

FriendlyInternet/nuxt-crouton102026年10月6日 更新

Author a placeable layout block that looks right at ANY pane size. The one hard rule — size to the PANE with container queries (@container), never the viewport — plus list/form playbooks and the sizing contract (minWidth etc.) the viability metric reads. Use when adding/converting a croutonLayoutBlocks block, or when a block overflows/breaks in a narrow pane.

日本語の概要は準備中です。原文の説明を表示しています。

FriendlyInternet/nuxt-crouton102026年10月6日 更新

When a bug or regression is reported, the FIRST step — before fixing — is to research how and when it was introduced (git archaeology), then record that finding on the tracking issue/PR. Use the moment a bug, error, broken build, or "this used to work" is reported, before writing a fix. Produces a first-bad-commit (or "not a code regression") note you paste onto the issue.

日本語の概要は準備中です。原文の説明を表示しています。

FriendlyInternet/nuxt-crouton102026年10月6日 更新

commit

無料

Smart, granular git commits following monorepo conventions. Analyzes changes, filters to session-relevant files, groups by intent, and uses conventional commit format. Use when committing code changes.

日本語の概要は準備中です。原文の説明を表示しています。

FriendlyInternet/nuxt-crouton102026年10月6日 更新

FriendlyInternet のスキルをすべて見る

このスキルの問題を報告する