---
format: "aidr-story-markdown/v1"
id: "9284ca4dbd06132a112b6d67a7c9a2f2ddadc493bfdf7ed5e9c4bbd33d88d664"
canonical_url: "https://aidr.today/9284ca4d?lang=en"
title: "Renovating a vibe-coded app: the code was readable, the reasoning was gone"
lang: "en"
requested_lang: "en"
available_langs: ["en","vi"]
translation_fallback: null
fallback_fields: []
published_at: "2026-09-08T15:45:08.000Z"
category: "Research"
topics: ["reasoning","coding"]
source_urls: ["https://www.habchy.dev/writing/renovating-a-vibe-coded-app","https://news.ycombinator.com/item?id=49612015"]
summary: "In the first week of a renovation job I found a function whose name said it cleaned up duplicate citizenship records. I could read it end to end."
---

# Renovating a vibe\-coded app: the code was readable, the reasoning was gone

> [Open the canonical story](<https://aidr.today/9284ca4d?lang=en>)

**Published:** 2026-09-08T15:45:08.000Z
**Category:** Research
**Topics:** reasoning, coding

## Summary

In the first week of a renovation job I found a function whose name said it cleaned up duplicate citizenship records\. I could read it end to end\.

## Sources

- [Story source](<https://www.habchy.dev/writing/renovating-a-vibe-coded-app>)
- [Discussion](<https://news.ycombinator.com/item?id=49612015>)

