firewall-uatlisted
Install: claude install-skill schmitthub/clawker
# Firewall Runtime UAT
Golden files + `envoy --mode validate` prove the generated config is **valid**.
They do NOT prove **behavior**. Behavior is verified live, and you are the
vehicle: when `$CLAWKER_AGENT` is set, this agent session runs **inside a
clawker agent container whose egress is routed through the live firewall
stack** (eBPF redirect → Envoy → CoreDNS). Exercising egress from this shell IS
the behavioral test.
## Roles
- **You (in-container):** exercise egress with the probe tools below. You
CANNOT run host `clawker`; the CLI runs on the host only.
- **User (host operator):** mutates rules host-side —
`clawker firewall add <host> [--proto https|http|ssh|tcp|wss|...] [--port N|lo-hi] [--path /p --action allow|deny]`.
Ask them to add/remove rules; then you re-probe. To live-apply a
`clawker.yaml` egress edit (`security.firewall.add_domains` /
`security.firewall.rules`) without a restart, have them run
`clawker firewall refresh` (global, no `--agent`; add/update only — deletes
still go through `clawker firewall remove`).
`clawker firewall add` flags: `--proto` (default https), `--port` (default
proto-specific; single port `443` or inclusive range `9000-9100`), `--path` + `--action` (path-scoped rule, required together).
## Probe tools available in-container
`curl`, `ssh` (+ forwarded host agent), `nghttp` + `h2load` (HTTP/2 + h2 WS;
`h2load` also does h3 — useful for the QUIC/alt-svc sibling), `websocat`,
`wscat`, `python3`, `openssl`, `gh`, `git`