Vibe coding with AI (Copilot, Claude)

Today I tested vibe programming with AI to build a graph application for plotting company hierarchies. Using both Copilot and Claude, I instructed the AI to create code that would read three columns from an Excel file, use two of them to build a graph with graph-tool, and plot the output.
Initially, things went smoothly. The AI properly checked if the input file existed and attempted to load data. However, challenges quickly emerged when graph-tool wasn’t available in the virtual environment. The AI attempted to install it using pip, making several forceful installation attempts that ultimately failed. Rather than acknowledging its inability to resolve the issue, the AI kept trying different approaches without success.
After about 30 minutes of watching these failed attempts, I provided a hint that the package needed to be installed via Homebrew. While this helped the AI understand the next step, another problem arose: the Homebrew package wasn’t accessible from the virtual environment. The AI then imported the OS module to search for installed packages on my local machine, a practice that would be problematic in a production environment.
To be fair, even junior to mid-level developers might have struggled with this particular package. While it’s documented on its official website, there’s limited discussion about it on Stack Overflow or GitHub. I eventually had to provide very specific instructions to move forward.
The next hurdle came when the AI tried to install pandas to read the Excel file. This failed due to SSL certificate issues when accessing the internet through a proxy, something the AI couldn’t diagnose despite clear error messages. After I manually fixed this, slow internet connection caused more problems. The AI correctly identified the connection issue and increased timeout values, but when that didn’t work, it began suggesting alternative packages. This approach was concerning because it meant changing code strategy due to environment issues rather than technical requirements.
After manually installing the necessary packages, the AI successfully wrote code to read the Excel file, load the content into memory, and create the graph. However, with approximately 3,000 nodes overlapping in the static image, I couldn’t read any of the text. When I requested an interactive canvas instead, the AI took an unexpected approach: it generated Python code that produced HTML and JavaScript, creating an HTML file with extensive plotlyjs code for visualisation.
This solution, while functional, was far from what I had envisioned. By this point, the AI had generated such a large amount of code that debugging became extremely difficult, and it was too late to change direction. The final product contained an excessive number of dependencies and libraries, including JavaScript libraries I was unfamiliar with.
It also used an approach that is impossible for ai to debug. The generated html page was loading blank canvas. AI was tested the python code only.
In the end, this process took as long as it would have if an experienced developer had built it from scratch, but with significant overhead. The resulting code is unsuitable for production and limited to prototype use only. I’m now left with two options: either force myself to use this overly complex solution or discard it entirely and start over without AI assistance.