hermes-mr-watchlisted
Install: claude install-skill Lu1sDV/skillsmd
# Hermes MR Watch
## Quick Reference
| Thing | Value |
|---|---|
| SSH host | `ssh-vhs` = `deploy@100.91.148.117` (Docker; no Podman) |
| Hermes CLI | `docker exec hermes-agent /opt/hermes/.venv/bin/hermes` |
| Cron job ID | `80ec6fe4bf4f` — every 30m, no-agent |
| Script (remote) | `/home/deploy/.hermes/scripts/watch_gitlab_mr_findings.py` — SHA-256 `b89101589751f24767990868070b910c2c57b05336f98973730a30ef5efb0716` |
| Deployed source/snapshot | [scripts/watch_gitlab_mr_findings.py](scripts/watch_gitlab_mr_findings.py) and [scripts/watch_gitlab_mr_findings.remote.py](scripts/watch_gitlab_mr_findings.remote.py) — identical reviewed bytes |
| Corpus | 69 IIDs: 14 `LIVE-CONFIRMED`, 55 `SECURITY-FINDINGS`; CVSS co-located in `MR_CONFIG` |
| Legacy pair-watcher | `watch_gitlab_mrs.py` + job `d2cd1c6a687f` retired; rollback only |
| State/lock | `/opt/data/.gitlab-mr-findings-watch-v1.{json,lock}` (0600) |
| Delivery | `telegram:-1003963190927:2` (`github mr` topic) |
Current remote output is the phone-compact combined Security + CVSS +
Readiness + Timeline format. Merged MRs sort first and always show GitLab's
exact `merged_at` and the 12-character merge SHA:
```text
1. 🚨 !249009 MERGED — WHEN 2026-08-21T21:53:29.839Z — SHA d4bd29af8a75
```
The compact form is deliberate: the full-card corpus was 35,722 bytes and
timed out during Telegram delivery; the deployed 9,534-byte form delivers
successfully through Hermes chunking.
## Add one IID
Add one entry to `MR_CONFIG`; `IID