lead-hunter ← portfolio
2026-07-04 15:13 UTC
overview
executing
lead-hunter
`/gsd:verify-phase 1` to run the verifier subagent over the full Phase 1 spec.
Next tasks (10)
-
1
`/gsd:verify-phase 1` to run the verifier subagent over the full Phase 1 spec.
STATE.md
-
2
`/gsd:plan-phase 2` to start Phase 02 (Enrichment + Quota Machinery — Hunter → Apollo → Clearbit waterfall).
STATE.md
-
3
First-deploy go-live via `ssh droplet 'bash -s' < deploy/install.sh` per the go-live checklist in `01-5-SUMMARY.md`. Eugene runs the one-off Zoho setup (6 custom fields per D-21b + LeadHunter:landscaping picklist + ZOHO_DEFAULT_OWNER_ID lookup) BEFORE first push.
STATE.md
-
4
10 files created + 2 modified (app/cli.py + pyproject.toml). 148 passing tests (+1 new full E2E + 1 deselected live-smoke). ruff clean. bandit HIGH=0. mypy `app/cli.py` clean (12 pre-existing strict-mode errors remain in modules from earlier plans, deferred to Phase 6). 2 commits: `1c3cdd3` deploy artifacts + Task 1 + `64d6e63` (Task 2 bundled with a parallel KB-project commit — see SUMMARY "Commit anomaly").
STATE.md
-
5
**deploy/leadhunter.service**: systemd unit on 127.0.0.1:5060 (NOT 5070), TimeoutStopSec=120s, full OWASP/SOC2 hardening (NoNewPrivileges, ProtectSystem=strict, etc.).
STATE.md
-
6
**deploy/caddy.snippet**: leadhunter.rollerup.ca → 127.0.0.1:5060, transport read_timeout 600s, OWASP security headers, /brand/* mount, JSON access log.
STATE.md
-
7
**deploy/install.sh**: idempotent + streamable via `ssh droplet 'bash -s' < deploy/install.sh`; pre-flight checks + venv refresh + alembic upgrade head + systemd/Caddy install + /health smoke + schema-fingerprint capture (only when missing).
STATE.md
-
8
**README.md**: Setup with the 6 custom Zoho fields per D-21b (Geo_Bucket, Run_ID, Scraped_At, Vertical, Place_Type, Source_Filter), LeadHunter:landscaping picklist, ZOHO_DEFAULT_OWNER_ID lookup curl, GCP billing alarm gcloud command (Phase 6 OPS-02 follow-up), full env-var table, Run/Deploy/Test/Architecture/Operator-workflow/Security sections. ROLLerUP brand-casing exact.
STATE.md
-
9
**DASHBOARD.md + .dashboard-signal.json**: workspace-mandate dashboard mirror with all 7 required sections (header, phase tracker, token+cost, time, connections, recent activity, blockers). Valid JSON for the signal file.
STATE.md
-
10
**.github/workflows/ci.yml**: ruff + bandit + secret-scan + mypy (best-effort) + pytest on push/PR to main; Python 3.12; pip cache.
STATE.md
Recent work
no new commits