Two PRs this week added new calls to the legacy billing client
#521 and #526 import legacy-billing. Both could use the v2 client that already exists in the repo.
hasarak counts every remaining use of the old system, splits the work by owning team, and catches new code that adds to the pile. Each week you see what's left and who has it.
#521 and #526 import legacy-billing. Both could use the v2 client that already exists in the repo.
248 call sites are in apps/mobile. No Linear issue mentions the migration.
formatInvoice is used by both clients. Moving it to shared/ lets the last 12 call sites switch.
You set the goal and how it's measured. hasarak keeps reading, re-ranks what's left every week, and sends each step to the people who own that part of the system. Nothing is posted, opened or moved until someone approves it.
Finds every import and call of the old system, grouped by team and repo.
Drafts issues sized for a cycle and assigns them to the owners of the code. Individual call sites can go to Claude Code or Codex with context attached.
Flags PRs that add new calls, with the replacement to use instead.
Scanning every repo and handing call sites to coding agents runs on the Claude or ChatGPT accounts you connect, the same ones your team uses for Claude Code and Codex.
When Claude · Work runs low, hasarak moves to ChatGPT · Acme team.
Any you can describe by package, API or pattern: a client library, an internal service, a framework version, a database table.
It can hand a call site to Claude Code or Codex with its context. You review the resulting PR.
hasarak drafts the PR that removes the old package and closes the goal.
The one you connect. hasarak runs on your own Claude or ChatGPT subscription and can use several accounts at once.