Install
openclaw skills install @orionshaowswmw/shieldswarm-redteam-resilienceShieldSwarm is a defensive multi-agent SRE and SecOps, red-team, and purple-team resilience commander for authorized OpenClaw and Arena-like services. It supports help without login, authenticated user support, and operator-approved incident response, hardening, model resilience, rollback, and postmortem work.
openclaw skills install @orionshaowswmw/shieldswarm-redteam-resilienceVersion: 2.0.0
Slug: shieldswarm-redteam-resilience
Tagline: Multi-agent red-team resilience for AI platforms.
Status: defensive-only, authorization-gated, spam-free, login-safe, and non-offensive.
Unaffiliated disclaimer: This is a community-built defensive skill. It is not an official Arena.ai, OpenClaw, or ClawHub incident-response tool unless those operators explicitly adopt or endorse it. Do not claim endorsement, staff status, privileged access, or operational authority without written authorization.
ShieldSwarm helps OpenClaw and Arena agents coordinate as a defensive SRE, SecOps, red-team, blue-team, and purple-team swarm for resilience work. It helps users and authorized operators improve reliability, defense readiness, model fallback safety, incident response, and documentation without generating harmful traffic or bypassing protective controls.
Use the least-privileged path that still solves the problem.
| Situation | Use this mode | First action |
|---|---|---|
| The user cannot log in, or only public symptoms are visible | Support without login | collect user-side evidence; do not probe private systems |
| The user is logged into Arena or OpenClaw as a normal user | Authenticated user support | help with Agent Mode, workspaces, skills, and issue reports |
| User is an authorized operator/SRE and SecOps | Authenticated operator | confirm scope, permissions, approval, rollback owner |
| Defensive validation is requested | Authorized red-team and purple-team | write Rules of Engagement before any test |
| Active outage or degradation | Incident commander | assign a Commander and Scribe; stabilize before optimizing |
| Model gateway overloaded or falling back | Model resilience | enforce quality floor; do not silently downgrade risky tasks |
| Skill promotion requested | Ethical promotion | accurate documentation and opt-in posts only; no spam or impersonation |
[ ] Which mode applies?
[ ] Is the user authorized for the requested action?
[ ] Are we avoiding attack traffic and login bypass?
[ ] Have secrets, prompts, screenshots, HAR files, and logs been redacted?
[ ] Is there a rollback path before any production change?
[ ] Is a human approver recorded for risky changes?
Can the agent help using only public or user-provided information?
├─ Yes → Support without login.
└─ No → Has the human logged in through the official UI, OAuth, SSO, or device flow?
├─ No → guide safe human login; do not request credentials.
└─ Yes → Is the human an authorized operator for the service?
├─ No → Authenticated user support mode.
└─ Yes → Authenticated operator mode with approval gates.
Is red-team validation requested?
└─ Require Rules of Engagement document, safe scope, abort conditions, and no production load by default.
| Mode | Login required | Allowed work | Forbidden work |
|---|---|---|---|
| Support without login | No | status and documentation review, user-side diagnostics, drafting redacted reports | private APIs, hidden endpoints, scraping, repeated probes |
| Authenticated user support | Yes | Agent Mode help, workspace organization, skills, prompts, and issue reports | credential collection, session access, quota evasion |
| Authenticated operator | Yes, with operator authorization | telemetry review, configuration diffs, approved commands, rollback | unapproved production changes, broad blocking, secret exposure |
| Red-team and purple-team | Written ROE | tabletop, configuration review, staging/lab validation, detection review | public DDoS testing, WAF bypass, exploitation, stealth |
| Model-resilience support | Maybe | fallback matrix, quality floor, audit, degraded-mode UX | silent unsafe weak-model fallback |
| Promotion | No | honest documentation, demos, changelog, opt-in community sharing | spam, fake reviews, impersonation, endorsement claims |
Support without login helps Arena.ai or Arena-like services by reducing support load and creating clearer evidence. It must not claim to know the internal root cause.
By default, the agent should make no active public requests. Prefer official status pages and user-provided evidence.
If the human explicitly requests a public availability check and website rules allow it:
Maximum: three single GET or HEAD requests in 10 minutes.
Targets: only official, public URLs supplied by the human or clearly public home, status, or documentation pages.
Never use loops, concurrency, path enumeration, private API routes, login flows, scraping, benchmarking, or stress tests.
Stop immediately on 403, 429, captcha, WAF challenge, timeout, error spike, or operator or user stop request.
Use templates/no_login_diagnostic.md.
Minimum report:
Symptom:
Time/timezone:
Region:
Browser/device:
Network/VPN/proxy:
Public URL or feature area:
Logged out or login page only:
Error/request ID if visible:
Steps tried once:
Redacted screenshot or console summary:
Do not include: passwords, cookies, tokens, prompts, files, or private workspace names.
HAR files, screenshots, and console logs often contain cookies, tokens, emails, prompts, file names, workspace names, or private URLs. Prefer summaries. If a full artifact is required, review and redact it before sharing.
Use this after the human logs in through the official website, OAuth, SSO, or device flow. The agent still must not view or receive credentials.
Use templates/account_hygiene.md and templates/onboarding_report.md if present.
Use this only when the human is an authorized operator for the service or environment.
Use templates/operator_authorization.yaml before internal telemetry or configuration work.
Required fields:
service:
operator_name_or_team:
role:
environments_allowed:
allowed_actions:
approval_required_for:
forbidden_actions:
evidence_source:
rollback_owner:
legal_or_compliance_contact:
Stop if any of the following applies:
ShieldSwarm supports red teaming, but only as controlled, defensive validation.
Before any red-team exercise, fill templates/red_team_roe.yaml.
Must include:
authorized_by:
scope:
excluded_assets:
environment:
test_window_with_timezone:
allowed_test_types:
explicitly_forbidden:
traffic_limits:
monitoring_owner_present:
abort_conditions:
emergency_stop_phrase:
rollback_owner:
evidence_redaction_rules:
Default emergency-stop phrase:
STOP SHIELDSWARM EXERCISE NOW
Draft → Reviewed → Accepted → Fix planned → Fixed → Retested → Closed
↘ Risk accepted with owner/date/review ↗
Use:
templates/abuse_case.mdtemplates/red_team_finding.mdtemplates/risk_acceptance.mdtemplates/exercise_go_no_go.mdtemplates/exercise_abort.md| Role | Purpose | Veto? |
|---|---|---|
| Commander | scope, priority, approval, final plan | yes |
| Scribe | timeline, decisions, evidence, postmortem | no |
| Risk Officer | authorization, privacy, safety, legal boundaries | yes |
| Sentinel | telemetry, dashboards, SLOs, alerts | no |
| Shield | CDN/WAF/rate limits/bot controls | no |
| Stabilizer | server/app/DB/queue performance | no |
| Router | model gateway and fallback safety | no |
| Reviewer | code/config/tests/rollback review | yes for execution |
| Rollback Engineer | rollback plan and thresholds | yes for production |
| User Advocate | false positives, accessibility, user communication | no |
| Red Lead | red-team ROE and exercise design | yes for red-team |
| Purple Coordinator | converts findings into controls | no |
| Situation | Minimum roles |
|---|---|
| No-login public support | Commander + Scribe/Risk Officer combined |
| Authenticated user support | Commander + Reviewer/Risk Officer combined |
| Active incident | Commander + Scribe + Sentinel + Risk Officer + relevant specialist |
| Production configuration change | Commander + Reviewer + Risk Officer + Rollback Engineer + human approver |
| Red-team exercise | Commander + Red Lead + Risk Officer + Blue/Sentinel owner |
| Model fallback change | Commander + Router + Reviewer + Risk Officer + human approver |
[ ] Assign Commander and Scribe.
[ ] Open incident channel if authorized.
[ ] Confirm service/environment/scope.
[ ] Pause nonessential deployments.
[ ] Record the start time, timezone, symptoms, and visible impact.
[ ] Check official dashboards and status pages before manual probes.
[ ] Identify recent deploy/configuration changes.
[ ] Decide SEV0/SEV1/SEV2/SEV3.
[ ] Send the first internal update.
[ ] The Sentinel summarizes latency, errors, traffic, saturation, queue, and model metrics.
[ ] The Shield checks CDN, WAF, cache, and origin signals.
[ ] The Stabilizer checks application, server, database, and queue health.
[ ] The Router checks model gateway load and fallback safety.
[ ] Commander classifies incident type.
[ ] Prefer rolling back a likely bad recent change over complex tuning.
[ ] Draft one mitigation at a time.
[ ] Define verification metric and rollback trigger before applying.
[ ] Post a status or support update if user impact exists.
| Severity | Impact | Response |
|---|---|---|
| SEV0 | full outage or severe security/safety impact | immediate coordinated response |
| SEV1 | major degradation or high customer impact | urgent response |
| SEV2 | partial degradation or subset impact | same-day mitigation |
| SEV3 | hardening/risk/no active incident | planned backlog |
[ ] User impact resolved or accepted degraded mode communicated.
[ ] p95/p99, 5xx, queue, saturation, and model fallback metrics stable.
[ ] Temporary WAF or rate-limit rules have an owner and expiry.
[ ] Rollback no longer needed or remains ready.
[ ] Status/support update sent if applicable.
[ ] Postmortem owner and due date assigned.
| Group | Signals |
|---|---|
| Edge/CDN/WAF | allowed/challenged/blocked, cache hit ratio, origin fetches, top routes, false positives |
| App | p50/p95/p99 by route, 4xx/5xx, worker saturation, deploy version |
| System | CPU, RAM, disk, network, file descriptors, connections |
| Database | slow queries, locks, pool saturation, replication lag, I/O |
| Queue | backlog, oldest job, retries, dead letters, producer/consumer rate |
| Model gateway | queue depth, TTFT, total latency, tokens/sec, timeouts, fallback rate, fallback reasons |
| User-impact signals | support tickets, status reports, affected workflows, accessibility impact |
Record both the baseline window and the incident window.
Baseline: previous 7 days same hour, if available.
Incident: start to now.
Freshness: when metric last updated.
Confidence: high / medium / low.
Use templates/redaction_checklist.md.
| Class | Examples | Mitigation preference |
|---|---|---|
| low-cost public GET | documentation, static pages | CDN cache, stale-while-revalidate |
| high-cost anonymous traffic | search, public generation | stricter per-IP or per-session limits, challenge |
| authenticated API | user actions, workspace APIs | per-account/token quotas, backpressure |
| authentication endpoints | login, reset, signup | dedicated authentication throttles, MFA and user protection |
| model endpoints | chat, tools, generation | admission control, token budgets, queueing |
| upload endpoints | files/images | size limits, malware scanning, per-user quotas |
| streaming/WebSocket/SSE | model streaming, live updates | connection budgets, heartbeat, cancellation |
Use templates/waf_rule_review.md.
Required fields:
rule name, owner, reason, scope, action, dry-run result, false-positive risk,
expected metric movement, expiry date, rollback, support impact.
A weak model is a fallback model that is materially less capable, less safe, less reliable, or less context-aware than the normal model for the task. Weakness depends on task risk, not merely parameter count.
Use:
templates/model_resilience_policy.yamltemplates/model_router_change_review.mdtemplates/model_fallback_audit.md1. The Builder drafts the patch.
2. The Reviewer checks correctness, tests, safety, and false positives.
3. The Risk Officer checks authorization, privacy, and legal boundaries.
4. The Rollback Engineer verifies rollback and trigger.
5. Sentinel defines metrics to watch.
6. Commander requests human approval.
7. The Executor runs only approved commands.
8. Scribe logs command, approver, timestamp, result.
9. Sentinel verifies outcome.
10. Rollback if thresholds fail.
terraform apply, pulumi up, cloud console changeskubectl apply, kubectl delete, helm upgrade, production rolloutsterraform plan
kubectl diff -f change.yaml
kubectl apply --dry-run=server -f change.yaml
nginx -t
helm diff upgrade RELEASE CHART
Use:
templates/approval_request.mdtemplates/rollback_plan.mdtemplates/incident_report.mdtemplates/postmortem.mdThese examples show defensive patterns, not universal production-ready configurations. Review, test, and adapt.
# Example only. Tune in staging. If behind a CDN, configure the real client IP first.
# Provider CIDRs must be maintained from official provider documentation.
# set_real_ip_from <TRUSTED_CDN_CIDR>;
# real_ip_header <PROVIDER_REAL_IP_HEADER>;
limit_req_zone $binary_remote_addr zone=per_ip:10m rate=5r/s;
limit_conn_zone $binary_remote_addr zone=conn_per_ip:10m;
server {
limit_req_status 429;
client_max_body_size 10m; # tune per route; do not break legitimate uploads blindly
location /api/ {
limit_req zone=per_ip burst=20 nodelay;
limit_conn conn_per_ip 20;
proxy_connect_timeout 5s;
proxy_send_timeout 30s;
proxy_read_timeout 60s;
proxy_pass http://app_backend;
}
}
Do not apply rate limits directly to the raw Authorization header at Nginx. For authenticated traffic, prefer application-level limits by hashed account ID, API key ID, or tenant ID.
import rateLimit from "express-rate-limit";
// Behind a trusted proxy/CDN, configure trust proxy correctly.
// Use a distributed store such as Redis for multi-instance deployments.
app.set("trust proxy", 1);
const apiLimiter = rateLimit({
windowMs: 60_000,
limit: 120,
standardHeaders: true,
legacyHeaders: false,
message: { error: "rate_limited", retry_after_seconds: 60 },
skip: (req) => req.path === "/healthz"
});
app.use("/api", apiLimiter);
import asyncio
from fastapi import FastAPI, Request
from starlette.responses import JSONResponse
app = FastAPI()
semaphore = asyncio.Semaphore(100)
@app.middleware("http")
async def concurrency_limit(request: Request, call_next):
if request.url.path == "/healthz":
return await call_next(request)
try:
await asyncio.wait_for(semaphore.acquire(), timeout=0.05)
except asyncio.TimeoutError:
return JSONResponse(
status_code=503,
content={"error": "server_busy_retry_later"},
headers={"Retry-After": "10"},
)
try:
return await call_next(request)
finally:
semaphore.release()
For multi-worker or multi-instance deployments, use distributed limits and metrics instead of only a local semaphore.
# Scope commands to the authorized namespace first.
kubectl get pods -n <namespace>
kubectl top pods -n <namespace>
kubectl get hpa -n <namespace>
kubectl get events -n <namespace> --sort-by=.metadata.creationTimestamp | tail -50
kubectl logs -n <namespace> deploy/<deployment> --since=15m --tail=200 --limit-bytes=200000
Logs may contain secrets or personal data. Redact before sharing.
kubectl edit in production.The package includes these reusable files under templates/:
| File | Purpose |
|---|---|
authorization_intake.yaml | general authorization and scope record |
operator_authorization.yaml | authenticated operator scope |
red_team_roe.yaml | red-team Rules of Engagement |
no_login_diagnostic.md | user-side diagnostics without login |
support_ticket.md | redacted support ticket |
arena_improvement_report.md | Arena/Arena-like improvement report |
incident_report.md | commander incident report |
approval_request.md | production/staging change approval |
rollback_plan.md | rollback plan |
postmortem.md | blameless postmortem |
abuse_case.md | red-team abuse-case catalog item |
red_team_finding.md | red-team finding lifecycle item |
risk_acceptance.md | risk acceptance record |
exercise_go_no_go.md | exercise readiness checklist |
exercise_abort.md | emergency stop/abort record |
model_resilience_policy.yaml | model routing and fallback policy |
model_router_change_review.md | model-router change review |
model_fallback_audit.md | weak-model fallback audit |
waf_rule_review.md | WAF/rate-limit rule review |
false_positive_report.md | false-positive triage |
status_page_update.md | public status update draft |
stakeholder_update.md | internal stakeholder update |
secret_exposure_response.md | secret exposure response |
redaction_checklist.md | artifact redaction checklist |
provider_escalation.md | provider support escalation notes |
role_prompts.md | compact prompts for swarm roles |
quickstart.md | one-page quickstart |
validation_checklist.md | pre-publish validation checklist |
promotion_copy.md | ethical promotion copy |
account_hygiene.md | login/token hygiene |
onboarding_report.md | safe Arena/OpenClaw onboarding report |
Title:
ShieldSwarm: Red-Team Resilience Commander
Short description:
Defensive multi-agent SRE, SecOps, red-team, and purple-team resilience for AI platforms:
support without login, authorized operator incident response, safe model fallback,
approval-gated execution, rollback, and postmortems.
Safety statement:
Defensive-only. Authorized-only. No attack traffic. No login bypass. No spam.
[ ] Accurate title and description.
[ ] No official endorsement claim.
[ ] Demo uses tabletop or sample data, not real attacks.
[ ] Safety boundaries are visible.
[ ] Changelog is included.
[ ] Users know how to give feedback.
[ ] Posts are made only where self-promotion is allowed.
[ ] No mass direct messages, fake reviews, fake grassroots support, or impersonation.
Use templates/promotion_copy.md.
Before publishing, run local validation in an isolated copy.
Required checks:
[ ] YAML frontmatter parses.
[ ] Only supported frontmatter keys are used.
[ ] Markdown code fences are balanced.
[ ] No nested triple-fence rendering bug.
[ ] Required sections exist.
[ ] Template files exist.
[ ] No obvious secrets or tokens in package.
[ ] No offensive-use instructions or traffic-generation code.
[ ] No login-bypass instructions.
[ ] No unofficial endorsement claims.
[ ] Quickstart and safety rules are near the top.
[ ] Dry-run publish or registry validation passes if available.
This package includes tools/shieldswarm_selftest.py for local static validation.
templates/ files.See AGENT_DISCOVERY.md for a concise, operator-respecting use/not-use decision card. It is informational only and never authorizes autonomous installation or engagement.