hasarak

Finish the migration you started last year.

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.

Goal12 weeks
Remove the legacy billing client
Week 1Week 12
Start412
Now138
Target0
Remaining call sites of legacy-billing
Along the way

From 412 call sites to zero.

Week 2
Drift·Payments

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.

Draft review commentOpen both PRsPrevents +9 sites
Week 5
Risk·Mobile

The mobile team owns 60% of what's left and has no issue for it

248 call sites are in apps/mobile. No Linear issue mentions the migration.

Draft ENG issuesMessage mobile lead248 sites unplanned
Week 10
Conflict·Platform

One shared helper blocks deleting the package

formatInvoice is used by both clients. Moving it to shared/ lets the last 12 call sites switch.

Draft move PRShow call sitesUnblocks last 12
How it works

One goal, a steady stream of next steps.

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.

What hasarak reads
  • Imports and call sites across repos
  • CODEOWNERS and recent authorship
  • Migration issues and cycle plans
01

Count what's left

Finds every import and call of the old system, grouped by team and repo.

02

Split the work

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.

03

Stop new usage

Flags PRs that add new calls, with the replacement to use instead.

Bring your own subscription

Runs on the Claude or ChatGPT plan you already pay for.

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.

  • No second AI billAnalysis and drafts use the Claude or ChatGPT plan you already have.
  • Pool several accountsConnect work and team accounts. hasarak spreads the load and moves on when one hits its limit.
  • The models you already useSuggestions come from the same models your team uses in Claude Code and Codex.
Connected accounts5-hour window

When Claude · Work runs low, hasarak moves to ChatGPT · Acme team.

FAQ

Questions about tracking a migration

Which migrations can hasarak track?

Any you can describe by package, API or pattern: a client library, an internal service, a framework version, a database table.

Does it rewrite the code?

It can hand a call site to Claude Code or Codex with its context. You review the resulting PR.

What happens when the count reaches zero?

hasarak drafts the PR that removes the old package and closes the goal.

Which AI model does the work?

The one you connect. hasarak runs on your own Claude or ChatGPT subscription and can use several accounts at once.

See what's left of your migration, by team.