What it is
Automated phishing cloner - registrar takedown reports.
Version history
Straight from the project’s own card data — what each version added.
Manual per-site.
Automated: one command.
By the numbers
Measured from the real working folder ~/Documents/projects/scam-tools/scam-mirror — not a claim, a count.
Mostly: Python ×2 · TOML ×1
What broke, and what I’d change
Not written yet. This is the part only I can write — what actually went wrong, and what I’d do differently. It lives in builds/reflections/scam-mirror.md (see _TEMPLATE.md); as soon as that file has words in it, this section fills in on the next build.
Everything else on this page — the spec, the version history, the file counts — is generated from the project’s own build notes and files, so nothing here is guesswork.
Build spec
The project’s own build notes, rendered. Open the raw .md ↗
Show the spec
Scam Mirror
Category: Software & Apps · Status: Done
Automated phishing cloner - registrar takedown reports.
Stack / Tools: Security, Scraping, Python
Build path:
- V1 — Manual per-site.
- V2 — Automated: one command.
Location: ~/demos/scam-mirror.html
Full spec already in this prompt file (single-file HTML evidence mirror in Python).
Where it lives
- Source folder:
~/Documents/projects/scam-tools/scam-mirror - Artefacts on the site: 6 files · 389 lines of text · 23 KB
Stack
- Python ×2 · .lock ×1 · TOML ×1 · pyproject
What's in the code
mirror.py— 374 lines (Python)pyproject.toml— 9 lines (TOML)main.py— 6 lines (Python)
Verified in the Python source
- classes:
Mirrorer - functions:
_clean_filename,_is_absolute,_is_data_uri,_make_absolute,_mime_to_ext,main,mimetypes_mime
_Spec generated from the project's own files on 2026-10-22 (gen-project-specs.py). Everything above was read from the listed files — file counts, line counts, names, routes, headings and script comments. No description was invented._