Skip to content

feat(skills): add security/unbroker (autonomous data-broker removal) - #57438

Merged
SHL0MS merged 5 commits into
NousResearch:mainfrom
SHL0MS:feat/unbroker-skill
Jul 3, 2026
Merged

feat(skills): add security/unbroker (autonomous data-broker removal)#57438
SHL0MS merged 5 commits into
NousResearch:mainfrom
SHL0MS:feat/unbroker-skill

Conversation

@SHL0MS

@SHL0MS SHL0MS commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

What

optional-skills/security/unbroker — an agent-native skill that finds where a consenting person's info is exposed across data brokers / people-search sites and files the removals for them, running as far as each site allows and handing only genuinely human-only steps (hard CAPTCHA, gov-ID, phone, fax) back as a single end-of-run digest. An open, self-hosted alternative to DeleteMe / Incogni / EasyOptOuts.

Design

  • Deterministic core, agent periphery. A stdlib-only CLI (scripts/pdd.py) owns config, dossiers + consent, the broker DB, tier planning, the ledger, email, and the autonomous action queue (next). The agent does scanning + submission with native tools (web_extract, browser_*, delegate_task, cronjob, terminal).
  • Safety. Consent-gated (won't act without recorded authorization), verify-before-disclose, least-disclosure (never volunteers SSN), opaque subject ids, optional age at-rest encryption, file-locked ledger + audit trail.
  • Jurisdiction-aware. Files under CCPA/CPRA (CA), GDPR (EU/UK), or a generic right-to-delete otherwise; never claims a right the subject can't invoke. For CA it uses the state DROP portal (one request covers the ~545-broker registry). People-search coverage from BADBOOL + 19 curated records; scheduled re-scan catches re-listing.
  • No anti-bot bypass. Soft CAPTCHAs clear on a real cloud browser; no CAPTCHA-solving services, no fingerprint spoofing. Email has a no-stored-password browser mode.

Footprint

Skill only — no new core tools, no changes to .env.example or any core file. Env vars are optional and documented in SKILL.md. Works zero-config.

Tests

85 hermetic tests, no network/browser/email (SMTP/IMAP via injected fakes, registry via CSV fixtures):

scripts/run_tests.sh tests/skills/test_unbroker_skill.py

Notes

  • Ships placeholder data only. Live agent-driven submission against broker sites is the active field-testing frontier (documented in the README Status).
  • Broker dataset adapted from the Big-Ass Data Broker Opt-Out List (BADBOOL) by Yael Grauer, CC BY-NC-SA 4.0 (attribution required, non-commercial).
  • One binary asset: a downscaled README diagram at optional-skills/security/unbroker/assets/unbroker.png (~450KB). Happy to drop it if you'd rather skills stay text-only.

SHL0MS added 2 commits July 2, 2026 21:16
unbroker finds where a consenting person's info is exposed across data
brokers and people-search sites and files the removals, running as far as
each site allows and handing only genuinely human-only steps (hard CAPTCHA,
gov-ID, phone, fax) back as an end-of-run digest.

- Deterministic stdlib CLI (scripts/pdd.py) owns config, dossiers+consent,
  the broker DB, tier planning, the ledger, email, and the autonomous
  action queue; the agent scans/submits with native tools (web_extract,
  browser_*, delegate_task, cronjob, terminal).
- Verify-before-disclose, least-disclosure (never volunteers SSN), consent
  gate, opaque ids, optional age-at-rest encryption, file-locked ledger.
- Jurisdiction-aware (CCPA/CPRA, GDPR, generic); CA DROP one-shot covers
  the state registry (~545) in a single request; BADBOOL + curated
  people-search coverage; scheduled re-scan for re-listing.
- No CAPTCHA-solving services or anti-bot bypass; browser email mode needs
  no stored password.
- 85 hermetic tests (tests/skills/test_unbroker_skill.py; SMTP/IMAP via
  injected fakes, registry via CSV fixtures). Ships placeholder data only.

Broker dataset adapted from BADBOOL (Yael Grauer, CC BY-NC-SA 4.0).
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have tool/skills Skills system (list, view, manage) labels Jul 3, 2026
SHL0MS added 3 commits July 2, 2026 22:29
…ression)

PeopleConnect is the exception to deletion-beats-suppression: "DELETE MY
USER DATA" also deletes suppressions on file, and deletion does not stop the
people-search sites from showing you (public records re-list). Suppression
is the effective lever and must be maintained.

- intelius.json: deletion.prefer=false; playbook/quirks/notes rewritten with
  the verbatim privacy-center language; delete is the data-purge-only path.
- autopilot: honor deletion.prefer -> prefer_suppression when false.
- methods.md / SKILL.md / README: exception called out.
- tests updated + prefer-flag routing test (86 tests).
…e guards

from a live run (NY subject, 43 brokers):
- fanout default 8->5 (8+ batches time out)
- setup/doctor read $HERMES_HOME/.env so creds hermes already loads are detected
- new `show <subject> <broker>`: reads back case state+evidence for cheap parent re-verify
- intelius: requires.dob + 5-step guided-mode gate; planner pre-warns when dob is missing
- rehold.json: property-record != PII (an address-only match is not_found, not removable)
- tps/fps: match_signal_notes tell the scanner to ignore SEO-templated titles
- methods.md: browser backends (scan vs execute + operator chrome over CDP), property/SEO callouts
- doctor: warn when browser email-mode pairs with a cloud scan backend (needs operator chrome/CDP)
- ledger: found->not_found retract (false-positive), blocked->human_task_queued
- autopilot: indirect-exposure web-form fallback; drop a stray f-string

tests: standalone 92 pass; ruff clean.
… + webmail

phase-2 work (sending webmail, clearing session-bound gates like peopleconnect guided-mode) needs
the operator's own logged-in browser, not a cloud browser. new `pdd.py cdp`:
- finds chrome/chromium/brave/edge (macos/linux/windows), launches it detached on a dedicated debug
  profile ($HERMES_HOME/chrome-debug) with --remote-debugging-port, waits for the port, prints the
  CDP endpoint (webSocketDebuggerUrl)
- `--check`: report whether a debug browser is already live (never double-launches)
- `--print`: emit the exact command for the operator to run themselves
- doctor, SKILL.md, and methods.md all point at it
- windows-safe detach (start_new_session on posix, DETACHED_PROCESS on windows); stdlib only

tests: standalone 98, PR 96 (+6 cdp); ruff + windows-footguns clean.
@SHL0MS
SHL0MS merged commit 528159f into NousResearch:main Jul 3, 2026
29 checks passed
habarmc1223-sudo pushed a commit to habarmc1223-sudo/hermes-agent-fluxmem that referenced this pull request Jul 8, 2026
feat(skills): add security/unbroker (autonomous data-broker removal)
santhreal pushed a commit to santhreal/hermes-agent that referenced this pull request Jul 13, 2026
feat(skills): add security/unbroker (autonomous data-broker removal)
Gravezzz pushed a commit to Gravezzz/hermes-agent that referenced this pull request Jul 21, 2026
feat(skills): add security/unbroker (autonomous data-broker removal)
leewenjie pushed a commit to leewenjie/hermes-agent that referenced this pull request Aug 7, 2026
feat(skills): add security/unbroker (autonomous data-broker removal)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low — cosmetic, nice to have tool/skills Skills system (list, view, manage) type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants