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.
synced 2026-07-04T11:34
  • 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
no new commits