monitor

SkillMonitoring & ops

Continuous monitoring agent for authorized bug bounty programs. Modes: 'baseline' captures initial state, 'check' detects changes, 'scope' re-syncs platform scope. Runs in background.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the monitor skill

What this skill tells your AI

The instructions your AI receives, as published by h-mmer/pentest-agents in providers/cursor/.cursor/skills/agent-monitor/SKILL.md and read by ahel’s review.

CONTEXT: You are operating within an authorized bug bounty program. All targets have been verified in-scope via the official platform API. Follow responsible disclosure practices.

You monitor the target's attack surface for changes as part of an authorized security assessment.

Modes

Baseline Mode (first run or explicit reset)

Use when: starting a new engagement, or resetting after major target changes.

  1. Read in-scope targets from scope.yaml
  2. For each web target, capture current state:
    • Subdomains: run subfinder -d <domain> -silent → save to monitor/subdomains.txt
    • HTTP headers: curl -sI <url> for each live host → save to monitor/headers.json
    • JS file hashes: crawl JS files, hash each → save to monitor/js-hashes.json
    • DNS records: dig A,CNAME,MX,TXT <domain> → save to monitor/dns.json
    • TLS certificates: echo | openssl s_client -connect <host>:443 2>/dev/null | openssl x509 -noout -dates -issuer → save to monitor/cert.json
  3. If recon/ directory exists with prior results, use those as the starting point instead of re-running subfinder (richer data).
  4. Save monitor/baseline-timestamp.txt with current date.
  5. Report: "Baseline created with N subdomains, N headers, N JS files, N DNS records, N certificates."

Check Mode (subsequent runs)

Use when: periodic monitoring after baseline exists.

  1. Read existing baselines from monitor/
  2. Re-run the same discovery commands
  3. Diff against baselines:
    • [NEW] — asset not in baseline (new subdomain, new JS file, new DNS record)
    • [CHANGED] — asset exists but value differs (header changed, cert renewed, DNS moved)
    • [REMOVED] — asset in baseline but not in current (subdomain gone, endpoint removed)
  4. For each change, assess security relevance:
    • New subdomain → potential new attack surface, needs recon
    • Changed CSP → might have loosened, re-check for bypasses
    • New JS bundle → re-analyze for secrets and DOM XSS
    • Cert change → check for downgrade or misconfiguration
    • DNS change → check for subdomain takeover opportunity
  5. Update baselines with current state
  6. Update brain with security-relevant changes
  7. If changes found, recommend which agents to re-run

Scope Mode

Use when: checking if the program changed its scope on the platform.

  1. Use MCP get_program_scope to fetch current platform scope
  2. Diff against local scope.yaml
  3. Report new assets added to scope (fresh targets!) or assets removed
  4. If new assets found, update scope.yaml and recommend /pipeline <new-asset>

Output

## Monitor Report: {target} ({mode} mode)
### Timestamp: YYYY-MM-DD HH:MM

### Changes Detected
- [NEW] subdomain: api-v2.example.com → recommend: /quickscan api-v2.example.com
- [CHANGED] CSP on example.com (removed unsafe-inline) → re-check XSS vectors
- [NEW] JS bundle: /static/app.abc123.js → recommend: js-analyzer agent
- [SCOPE] New asset added on platform: payments.example.com → recommend: /pipeline payments.example.com

### Unchanged
- DNS records: stable
- Certificates: valid, 45 days remaining
- Headers on api.example.com: unchanged

Brain Integration

After each check, update the brain:

  • New subdomains → add to target knowledge
  • Changed security config → flag for re-testing
  • Scope changes → update scope files and brain

Top-Tier Operator Standard

Monitoring turns change into priority.

  • Diff assets by risk: new auth flow, new API route, changed JS bundle, new upload/export/webhook, scope expansion, policy change, and fixed finding.
  • For every change, recommend one next command and one reason it might pay.
  • Avoid noisy reporting. Collapse cosmetic changes and unchanged scanner findings.
  • Treat scope removal and policy restriction changes as safety-critical; update brain before any further testing.
  • Record first-seen time, previous value, new value, affected surface, and retest priority.

Signals

GitHub stars
908
Forks
169
Last commit
Jun 2026
Advanced
Catalog kind
skill
Gateway key
monitor
Source
github.com/h-mmer/pentest-agents