gosom

Migration Plan: Merge Maps-scraper-pro Into Google-maps-scraper — Git skill for Claude Code

Git community intermediate

Migration Plan: Merge maps-scraper-pro into google-maps-scraper skill.

How to install Migration Plan: Merge Maps-scraper-pro Into Google-maps-scraper

This entry records only its repository, not the path inside it, so there is no exact command to give. Open gosom/google-maps-scraper and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Migration Plan: Merge Maps-scraper-pro Into Google-maps-scraper does

Migration Plan: Merge maps-scraper-pro into google-maps-scraper skill.

Alternatives in Git

  • Validate Title Provided — if [ -z "$PLAN_TITLE" ]; then echo "❌ Error: Plan title required" echo "Usage: /sync-todos-to-github \"Plan Ti 618 ★
  • Read Feedback Revise — Read PR review feedback from a GitHub comment and enter plan mode to address it 387 ★
  • Hybrid Worktree — Start a new task in an isolated Git worktree with Hybrid Ralph PRD mode 123 ★

README

Migration Plan: Merge maps-scraper-pro into google-maps-scraper

Context

`maps-scraper-pro` is a SaaS layer built on top of `google-maps-scraper`. It adds a REST API, admin dashboard, River job queue, cloud provisioning, and multi-user auth. Both repos are open source and being merged into a single module (`github.com/gosom/google-maps-scraper`) with one `go.mod`. SaaS packages are merged INTO existing packages where they overlap, and added as new top-level packages where they don't.


Final Directory Layout

google-maps-scraper/
  # Existing packages — extended, not replaced
  gmaps/              ← unchanged
  runner/             ← unchanged
  web/                ← unchanged
  webdata/            ← unchanged
  postgres/           ← extended: SaaS Connect/pgxpool merged in as pool.go
  deduper/            ← unchanged
  exiter/             ← unchanged
  leadsdb/            ← unchanged
  s3uploader/         ← unchanged
  tlmt/               ← unchanged
  main.go             ← unchanged (existing CLI)

  # New packages from SaaS layer (no overlap with existing)
  admin/              ← admin dashboard, templates/, static/ (embedded)
  api/                ← REST API + api/docs/ (swagger, embedded)
  cli/                ← CLI prompt/UI utilities
  cryptoext/          ← encryption utilities
  env/                ← environment variable handling
  httpext/            ← HTTP utilities & middleware
  infra/              ← cloud provisioning (digitalocean, hetzner, planetscale, vps, cloudinit)
  log/                ← structured logging
  migrations/         ← SQL migrations (embedded *.sql files)
  saas/               ← root constants (package saas, env var names)
  ratelimit/          ← rate limiting + ratelimit/postgres
  rqueue/             ← River job queue integration
  scraper/            ← scraper manager (provider, writer, lifecycle)

  # New binary
  cmd/
    gmapssaas/        ← SaaS binary (serve, worker, provision, update, admin subcommands)

  go.mod              ← merged single go.mod
  # go.work + go.work.sum → DELETED

Steps

1. Create a feature branch

git checkout -b feature/merge-saas

2. Delete go.work and go.work.sum

The existing `go.work` only contains `use .` and is no longer needed.

3. Copy packages from maps-scraper-pro

PRO=/home/giorgos/Development/github.com/gosom/maps-scraper-pro
DST=/home/giorgos/Development/github.com/gosom/google-maps-scraper

# Merge SaaS postgres into existing postgres/ (add as a new file, same package)
cp $PRO/postgres/postgres.go $DST/postgres/pool.go

# New packages (no overlap — recursive copy includes embedded assets)
cp -r $PRO/admin       $DST/admin
cp -r $PRO/api         $DST/api
cp -r $PRO/cli         $DST/cli
cp -r $PRO/cryptoext   $DST/cryptoext
cp -r $PRO/env         $DST/env
cp -r $PRO/httpext     $DST/httpext
cp -r $PRO/infra       $DST/infra
cp -r $PRO/log         $DST/log
cp -r $PRO/migrations  $DST/migrations
cp -r $PRO/ratelimit   $