
Where it shows up
The same Run Profile surfaces in a few places, driven by one record:- PR comment — automatic on every run, the primary surface. Requires
pull-requests: writein the workflow. Garnet posts a single comment and updates it in place. - Run Profile summary — automatic in the GitHub Actions run (the Job Summary): check results, egress, and a link to the full profile.
- Dashboard — the full interactive profile at app.garnet.ai: process tree, egress, and file access.
- Slack / webhooks — optional. Configure under Settings → Alerting; see Outputs & integrations.

Reading the comment
The comment presents the Run Profile in the order that matters most.Summary line — the state
A headline state — Clean or Needs review — summarizing the run. A clean PR shows a receipt; states are observed facts, not alarms.
Egress — review-first
Outbound connections, the one that needs review (or any first-seen domain) first, each attributed to the process that made it. This is where most of what matters shows up: an unexpected connection the diff never revealed.
Process lineage
The tree from init to leaf, with the connection that needs review highlighted. It names the exact step that did the thing.
What the comment looks like
A clean run reads as a short receipt:The state ladder
Every resolved Run Profile reads as one of three states. The state is an interpretation of the checks; a failed check is an objective invariant violation with evidence, not a scary “detection.”| State | Chip | When | Reads as |
|---|---|---|---|
| Clean | pass | Every check passed | The receipt — merge. A clean run may still note an observation worth a glance (see below). |
| Needs review | fail | A check needs a human look — a known-bad domain, a /proc memory read, a drop-and-delete | Evidence to read before you merge: the exact process, domain, and lineage. |
The Garnet Action does not fail your job by default — a failed check is reported, not enforced. To gate a merge on it yourself, use the
profile_result output as an opt-in recipe.Run details in the dashboard
Open any run at app.garnet.ai for the full profile.Clean run

- Process tree — full chain with connections inline
- Overview / JSON — structured or raw data
- Checks — green when every check passed
- Run context — workflow, repo, branch, SHA, actor, agent
Needs-review run

- Highlighted connection — the outbound destination to inspect, marked in the tree
- Needs-review check — the matched domain with full process ancestry
- Same context metadata as a clean run