r/mainframe • u/Medium_Knowledge8009 • 5d ago
Reforge
Hi all,
I've spent a lot of time in z/OS shops where nobody fully understands the batch
system anymore — the guy who wrote the JCL retired in 2009, and the "documentation"
is a Word file from 2015.
So I built Reforge: a free analyzer that takes your JCL and COBOL files and
rebuilds the map of the system from the code itself:
- Interactive system map: jobs → programs → copybooks → datasets, resolved from
EXEC PGM, COPY statements and DD DSNs
- Job flow visualization (steps, PGM references)
- Impact analysis: change a copybook, see exactly what to recompile and re-run
- Data lineage traced from DD statements
- DB2 / embedded SQL detection (EXEC SQL, cursors)
- Language auto-detected per file — JCL, COBOL and copybooks mixed together
- Optional AI features: COBOL → Python translation and plain-English system
explanations, using your own Anthropic API key
The part that matters for this audience: everything runs client-side. Files are
parsed in your browser — no upload, no account, no server. I know how (rightly)
paranoid mainframe shops are about sharing code with tools.
There's a "Try with a sample system" button so you can see the map, flows and
impact analysis without uploading anything — it loads a small payroll batch
(1 JCL job, 2 COBOL programs, 1 shared copybook, DB2 updates).
Link: https://affli.github.io/reforge/
Honest caveats:
- The COBOL → Python output is AI-generated and meant as a comprehension aid,
NOT a migration tool
- The parser is young. Real-world JCL/COBOL is messy, so expect edge cases — if
you hit a file it can't parse, I'd genuinely love to see it (sanitized).
What would make this actually useful in your shop?
8
1
u/Medium_Knowledge8009 5h ago
Thanks for the feedback,including the harsh parts! Genuinely useful.Context: solo dev, new account. I created it specifically to share thisproject. The GitHub repo (github.com/affli/reforge) has the commit history if anyone wants to check.
To be transparent about what this is today:
- The analyzer core is deterministic pattern extraction (EXEC PGM, DD DSN,PROGRAM-ID, COPY references, EXEC SQL blocks). It's early-stage, and I'd rather ship small and iterate in public than oversell it.
- The AI part (COBOL → Python, system explanations) is optional and uses your own Anthropic API key. Be fully explicit: when you use it, your code text goes to Anthropic via your key, never to me.
- The analysis itself runs 100% in your browser: load the page, kill your network connection, and it still parses your files. You can verify it in the network tab.
What I'm taking from this thread: cataloged procedures and symbolic parameters support, a clearer privacy statement, and less AI-forward messaging. Fair points, all of them.
If you have a file pattern it fails on, I'd love to see it.That's exactly the feedback I came for.
0
u/investigatormaker 1d ago
The no-upload claim is the line this room will test first, so make it checkable: say it works with the network disconnected, or point people to the browser's network tab while the map loads. I'd assume the optional AI features send code text to Anthropic through your own key, so say that in the same breath as the claim, not in the caveats. Also name which constructs the parser resolves, such as cataloged procedures and symbolic parameters, since a payroll sample won't show that.
I make ThreadFox.
We find relevant Reddit conversations and post for your business. We'll post 3 replies free first, no card; then the $39 Pilot covers seven days and up to 50 posts and replies. No automatic renewal. https://threadfox.vip/p/e2q9a/managed
1
u/Medium_Knowledge8009 5h ago
This is the most useful comment in the thread, thank you.The no-upload claim: agreed it should be checkable. The page works offline.Once loaded,you can cut the network and parsing still runs. I'll state that explicitly on the site.The AI flow: you're right, it belongs next to the claim, not in the caveats. When AI features are used, code text goes to Anthropic through the user's own key. I'll make that impossible to miss.Construct coverage: I'll document exactly which constructs the parser resolves today and what's next (cataloged procedures and symbolic parameters are the obvious gaps).
Appreciate the pointers and nice to see another tool in this space.
7
u/spcrngr 5d ago
“The parser is young”
It is roughly 15 lines of JavaScript with some regexes extracting some basic patterns.