Inverted Jenny
JENNY is my vulnerability-research workflow, composed of a Target Scoper, Hunter, bounded Midlane Reviewer, and independent Final Reviewer, all operating without API-key orchestration. It stems from Inverted Jenny, a misprinted 24ยข US postage stamp pane issued on May 10, 1918, whose defect transformed its error into one of the most valuable rarities in American philately. JENNY follows the same premise: defects can carry extraordinary value when discovered in the right place. Its purpose is to systematically uncover impactful, commercially meaningful vulnerabilities in software products with widespread enterprise deployment for submission to TrendMicro's Zero Day Initiative.
Contents
- SQLite review mailbox and package state machine
- Private accepted-acquisition ledger and payout-comparison queries
- Target lifecycle and cleanup validation
- Workflow status dashboard with bounded operator controls
- Weekly product-grouped patch watch for submitted cases
- Replay-lab safety wrappers
- Hash-bound package preflight, package safety, and fail-closed pre-freeze gates
- Model-neutral workflow skills and prompts
The core workflow uses the Python standard library.
Specialist research tools are target-dependent and are not installed by setup.
Select only tools required by the active goal after their prerequisites pass.
First checkout
Choose either onboarding path.
Run setup yourself
Run the in-place bootstrap from the repository root:
python setup.py
It validates prerequisites, creates the ignored runtime roots, and initializes fresh local SQLite state. It'll print the next operator steps. Re-run it safely at any time, or perform a read-only check:
python setup.py --checkRun the shipped public contract checks after edits (or don't, idc):
python -B -m unittest discover -s tests -p test_public_contracts.py -v
Start the loopback dashboard explicitly when setup completes:
python -B tools/workflow_dashboard/dashboard.py
Let an agent set it up
Clone this repository, then in an agent session say:
Read AGENTS.md and docs/SETUP_AND_OPERATIONS.md completely. Run the in-place setup, verify the checkout, start the dashboard locally, and then tell me which sessions to open and give me the exact prompt for each one. Do not activate a target or begin vulnerability research.
The agent handles internal commands. The operator normally works through separate Hunter, Midlane, and Final Reviewer sessions plus the browser dashboard.
See Setup and Operations for the complete first-run, session layout, alternative arrangements, and role-by-role workflow.
- Scoper writes one standalone target
GOAL.md. - The operator explicitly activates the exact target.
- Hunter owns acquisition, labs, research, evidence, and candidate dossiers.
- Midlane independently challenges each dossier before numbering; only
ADMIT_PROOFor an exact operator exception permits package construction. - Hunter owns package construction, refinement, and hash-bound package preflight. After a package is built, it will log it in the SQLite DB.
- Midlane, on a 10min
/loopwill review frozen packages and recordPASS,QUESTIONS, orHOLD. Formal questions and bounded coordination use the SQLite Coordination Inbox. The append-only Midlane-to-Hunter file is a fallback when the inbox is unavailable. - A passing package moves unchanged into direct
ZDI/for independent Final Review. - Final Reviewer either marks unchanged bytes ready or queues one hash-bound rework request.
- The operator normally confirms portal submission through the dashboard. A chat request is a fallback and requires a later confirmation that names the exact package number and title.
- An exact operator-reported offer may be recorded as accepted without changing package bytes; accepted amounts remain private calibration evidence.
- An exact operator-reported rejection is validated, reason-coded, and moved
unchanged from submitted storage into terminal
ZDI/_REJECTED.
The dashboard reports the active lifecycle target, operator requests, package and reviewer state, recent activity, host health, unacknowledged diminishing-return markers, and the latest weekly submitted-case patch watch. Diminishing-return acknowledgement is confirmation-bound and hash-bound; it never edits or deletes the marker.
Canonical product-name variants can be added to the private runtime registry
notes/review_mailbox/product_aliases.json. Setup creates an empty registry;
only explicit, reviewable alias groups are honored by same-product inventory.
See tools/review_mailbox/README.md and AGENTS.md for the authoritative operational contract.
The workflow roles are Target Scoper, Hunter, Midlane, and Final Reviewer. They are not bound to any model, vendor, or client; the operator may
assign each role to any capable agent.
License
MIT. See LICENSE. Do whatever you want. I trust whoever is reading this, yes you! ๐
