The problem Renaming or dropping a database column is one of the most error prone maintenance tasks in a full stack app. The column name lives in SQL queries, Express routes, API responses, and React components, often in both snake_case and camelCase. Developers find these by hand with grep, edit each layer separately, and hope nothing was missed. There is also a trap most developers do not know about: PostgreSQL does not update PL/pgSQL function bodies when a column is renamed. Trigger functions keep referencing the old name and fail at runtime, often only after the change reaches production. The solution RippleCheck makes this a single command inside IBM Bob. A developer opens their project, switches Bob to the RippleCheck mode, and types "RippleCheck: rename sightings.upvote_count to vote_count". Bob then runs an eight step workflow: 1. Scans the whole codebase with a deterministic MCP tool that labels every match as database, backend, or frontend. 2. Reviews each match, discards false positives, and flags indirect references for manual review instead of editing them blindly. 3. Applies the fixes with parallel subagents, one per layer. 4. Generates the migration SQL with plain code, not AI, so the SQL is always correct. 5. Recreates every dependent trigger function inside the same migration, with a matching rollback. 6. Verifies the change by searching for leftover references and running the build. 7. Writes a report with every file and line changed, warnings, and time taken. Results on a real app We tested RippleCheck on Spookie, a real React, Express, and PostgreSQL community app. Renaming sightings.upvote_count to vote_count changed 5 files and 11 lines across all 3 layers, caught the trigger function that a manual rename would have broken, recreated it in the migration in both directions, and passed the client build. The full run took 1 minute 51 seconds. RippleCheck also showed judgment: it traced a spread object in the alerts context and proved it was unaffected, and it left a React component's own prop name unchanged because it does not map to the database column. Target users Full stack JavaScript and TypeScript developers working with PostgreSQL, especially small teams without a dedicated database engineer, and anyone maintaining a codebase they did not write. What makes it unique Most AI tools either search or edit. RippleCheck splits the work: deterministic tools do what must be exact (finding matches, writing SQL), and Bob does what needs reasoning (filtering false positives, applying context aware fixes, tracing indirect references). It is built into Bob as an MCP server and a custom mode, so it runs where developers already work, and every change is visible in the diff before anything touches a database. Current scope JavaScript and TypeScript projects using PostgreSQL, with rename and drop column supported. Type changes, transaction wrapped migrations, and live database testing are next.
Category tags: