H Here is the situation I kept running into. I want an AI agent to help me with a real schema, look up a table, count some rows, sanity-check a column, find which view a column comes from. None of that is risky on paper, it is just SELECT. But the moment you hand a database connection to an agent, you are one bad prompt away from a disaster. TRUNCATE CASCADE, DROP PURGE, UPDATE can do a lot of damage. So I built a small command into ADT.ai for exactly this case. It is called "discovery", and the whole point is that an AI (or any muggle) can poke around a schema without being able to break anything. What it does You give it a SELECT and an environment, it runs the query, prints the result, and writes a Markdown report. That is it. No DML, no DDL, no PL/SQL, no multi-statement smuggling. If you try anything other than a single SELECT, the validator rejects the statement before it ever reaches the database. adtai discovery -env DEV -sql "SELECT table_name FR...
I I have been shipping APEX Deployment Tool for a few years now. It is a Python CLI that extracts Oracle database objects, APEX applications, and data exports into files you can version in Git, then via clever patch files deploys them anywhere. Other people also use it, which is great. The problem is I am not a professional Python developer, and after a couple of years of adding features on top of features, the code shows it. So a two weeks ago I started a full rewrite. Not just a refactor, but a full rewrite, done almost entirely by AI, module by module. This post is about why, how, and what is still ahead. Why the rewrite The code quality problem was the most obvious one. The largest files had grown into multi-responsibility monsters that were hard to read and harder to change safely. Normalizers (the functions that clean up DDL before writing files) were woven into the main export script instead of living in their own testable place. Adding a new object type or tweakin...