v0.59.0
Salesforce, COBOL and a map of your services

This cycle read two new worlds of code and a folder of services as one system. Salesforce reaches the Full tier, COBOL resolves copybooks, CICS, JCL and DB2 includes, and the System Map groups services, focuses one and lists every route between two. On repowise.dev the indexing page shows each step and what the run has found so far. The open-source release, 0.59.0, makes the first hour with a repository a guided one, and agents record and accept decisions as themselves.
Salesforce at the Full tier
On repowise.dev and in the open-source release.
- Apex resolves in each sfdx project's namespace, at 99.9% to 100% cross-file class recall across four public projects.
- Lightning, Aura, Visualforce, flows and object metadata link into the same graph as the Apex that uses them.
- Apex gets code health, dead code, Extract Method, coverage and four advisory security markers.
COBOL reads like a codebase
On repowise.dev and in the open-source release.
COPY, EXEC SQL INCLUDE, EXEC CICS LINK and XCTL, JCL steps and BMS
mapsets resolve. On a public CICS sample, copybook pairs resolve 246 of 246
and CICS program pairs 41 of 41. Paragraphs are scored for code health, and
programs defined in a CSD are entry points.
A System Map for a folder of services
On repowise.dev and in the open-source release.
The System Map groups services into systems. Focus one to see its callers and dependencies, or pick two to list every route between them. It lays out 300 services in 70 ms.
Cross-repo links read .NET, Spring, Node and Go HTTP clients and routers, Spring Cloud Gateway, nginx, Ocelot and YARP, Kafka, JMS, AMQP, Azure Service Bus and gRPC, and service host names from compose, Kubernetes and Spring config. Every link names how it was matched.
Indexing that shows each step
On repowise.dev.
- Each stage row shows what it did when it finishes ("Reading the code 6,023 files · 0:14") and, while it runs, a count against the total and the file in hand. Structure and history run side by side.
- "What we have found so far" turns the run's findings into short sentences: languages, size, history, structure, hotspots, dependencies, health, dead code and decisions. The list stays on screen when the run finishes or fails.
- A first index shows an estimate, and a repository indexed before shows how long it usually takes.
- The finished page leads with those findings, then Explore and one question to ask about the top hotspot.
Agents record and accept decisions
Open-source release.
An agent records a decision with repowise decision add --agent <slug> and
accepts a candidate with repowise decision confirm <id> --agent <slug>,
signed as itself in decision show, the web UI and CLAUDE.md. Every accepted
decision carries its own text. After a git commit, Claude Code is asked
whether the commit made a decision worth recording, and
repowise decision config capture-prompt --off turns that off. Staleness is
measured from the commit that landed the decision.
A guided first hour
Open-source release.
repowise initends on up to four findings from your code (health, unreachable files, the top hotspot, decision candidates) and the exactgeneratecommand for the model found on the machine.repowise serveopens the web UI in your browser (--no-openskips it), and a new repository opens on a three-step welcome.- A Setup page lists what is set up and what is left, each row with one action and a prompt for your agent.
- A repository indexed without a model gets one in two clicks, with the price shown before anything runs.
Tests and coverage that say what they measured
Open-source release.
untested_complexity lists the complex functions your tests do not run,
ranked by CRAP score, each with a prompt to add tests. Every file gets one
reach state, and a test that mocks a module out no longer counts as reaching
it: on a large repository the unreached list reads 320 files where it read
1,370. impacted-tests separates tests kept only by a conftest or a long
import chain, and missed no test across 14 commits on three repositories.
Gates in CI and on agent commits
Open-source release.
The CI action posts one editable PR comment covering every gate and sets a
verdict output. A failing health check annotation ends with a one-line
fix, and repowise hook health-gate install puts the same gate on Claude
Code's commits and pushes.
Also in the open-source release
repowise report estatereports per-repository health across a workspace, the riskiest seams and where to start./api/workspaceat 207 repositories answers in 137 ms, from 1,786 ms, and a no-change workspace update takes 2.6 to 4.5 s, from about 11 s.repowise grammars fetchstages the COBOL and Apex grammars for machines without network access.REPOWISE_OFFLINEandDO_NOT_TRACKstop every network call repowise makes on its own.repowise mcpstarts in an unindexed directory and tells the agent how to index it, andget_whyandget_contextwork on a directory.- Every
doctorcheck has a stable id and its fix command, anddoctor --quickanswers in about two seconds. repowise decision reaffirmkeeps an accepted decision current, and every review command returns one JSON shape an agent can drive.- One file count, symbol count and last-sync time across the CLI, MCP and web UI.
- A repository's excluded paths and wiki style live in
.repowise/config.yaml. - Dependency updates close every open security advisory.
Upgrading
pip install --upgrade repowise
The first repowise update after upgrading re-parses, rescans and re-scores
code health once, with no model calls and nothing to re-index. Repositories
with Apex, COBOL or Scala files, or a tests/ folder inside a JS or TS src
tree, can see scores move. On repowise.dev, each repository picks up the new
languages and scoring on its next index.
Thank you
This release includes work from 36 contributors outside the core team.
- @Aman-goel-04#3580, #4114, #4394, #4518, #4526, #4528
- @rishu685#4189, #4285, #4429, #4577
- @aazminu#4085, #4096, #4187
- @arnavsx3#4532, #4553
- @ozenyunus35#4424, #4519
- @sloemo01#1837, #1844
- @56steve#4389
- @ANO3457#4530
- @Aschenbath#4602
- @bercedev#4314
- @bfs2021#4491
- @codewithzubair07#4351
- @crown-sports#4492
- @dchaudhari7177#4637
- @Ei-Ayw#4403
- @Enard52#3935
- @florianaltendorfer#4471
- @GitMehdi-sys#4571
- @harshith7002#4318
- @iamcipherdev#4615
- @jay23606#4287
- @masyarakatai#4184
- @mayuriphad#4388
- @montionugera#4037
- @omisha123#4446
- @Parth-ui-commits#4527
- @PragalvaXFREZ#4352
- @rootsiemen#4513
- @rubenG1009#3958
- @ShryukGrandhi#4353
- @tahodev#4399
- @thymeed#4350
- @ump45nose#3462
- @uzumakienes#4463
- @Vamsi-2581#4230
- @ZhangDT-sky#4398
Run this release on your repo.
Index a repository free and see what this release finds in it. Rolling it out to a team? We will walk you through it.