☰ Categories

Review AI-generated code for what only looks right

Starts from invented APIs and stubbed-out functions, the two most common failures.

CategoryDevelopment › Vibe coding
TagsReviewingDeveloperTableCode
Prompt
Review AI-generated code. ***The goal is what looks like it works and does not.***

Check:
1. **Functions, libraries, or options that do not exist**
2. Missing exception handling — especially external calls, files, network
3. In the requirements given below and not implemented
4. **Not in the requirements and added anyway**
5. Hardcoded values that will have to change
6. Security — input validation, exposed keys or passwords, authorization
7. **Handled only on the surface** — empty functions, comments with no implementation, `TODO`

Output a table: location / problem / severity / action.

Rules:
- ***Speak on the premise that you have not run it.*** **Do not assert that it works.**
- Mark anything you are unsure of as "needs checking".
- **Start with 1 and 7.** They are the most common.
After pasting, fill in the fields at the bottom (Requirements · Environment · Code)

What this prompt does

Generated code compiles-by-vibes: invented functions and empty stubs read as finished. This checks those first and never claims it ran.

Model comparison

Gemini is thorough but overly long; Claude is the most specific but has minor ordering and scope issues. ChatGPT is the most concise, though its classification and coverage are weaker.

ChatGPTTop overall
44/ 50

+ It concisely presents the core issues in the requested table format.

- It misclassifies XSS under item 1 and misses the absent invocation path.

Claude
42/ 50

+ It most thoroughly covers event wiring, persistence, restoration, and failure cases.

- It places item 7 before item 1 and treats optional UX behavior as a defect.

Gemini
42/ 50

+ It prioritizes items 1 and 7 and clearly identifies persistence and XSS issues.

- The unsolicited full implementation makes the response unnecessarily long.

CriterionChatGPTClaudeGeminiLeader
Instruction following989Tie
Accuracy899Tie
Specificity8109Claude +11%
Structure989Tie
Right length1076ChatGPT +43%

Scored 1–10 by gpt-5.6-sol with model names hidden (2026-09-24). This is an AI review, not a measurement.

Read full answers

We gave three models the same input and copied their answers unedited. Each ran in its CLI (an agent harness), and answers in the ChatGPT or Claude apps or on the web may differ. Outputs are in Korean.

Input used
Requirements: 메모를 저장하고 목록을 보여주는 화면. 로그인 없음. 새로고침해도 남아야 함.

Environment: 브라우저만 (HTML+JS 단일 파일)

Code: <script>
let notes = [];
function add(){ notes.push(document.getElementById("t").value); render(); }
function render(){ document.getElementById("list").innerHTML = notes.map(n=>`<li>${n}</li>`).join(""); }
// TODO: 저장
</script>
gpt-5.6-luna (codex CLI · 에이전트 하네스) · Run on 2026-09-24

실행하지 않고 코드만 검토했습니다.

항목 위치 문제 심각도 조치
1 add(), render() 사용한 push, map, getElementById, innerHTML 등은 브라우저에서 존재하는 기능으로 보임. 다만 t, list 요소가 실제 HTML에 있는지는 needs checking 낮음 HTML 요소 존재 여부 확인 및 없을 때 예외 처리
1 render() innerHTML에 사용자 입력을 그대로 삽입해 HTML/스크립트 주입(XSS)이 가능함 높음 textContent로 <li>를 생성하거나 입력값을 HTML 이스케이프
7 마지막 줄 // TODO: 저장만 있고 실제 저장 기능이 없음 높음 localStorage.setItem()으로 저장하고 페이지 시작 시 localStorage에서 불러오기
3 전체 새로고침 후에도 메모가 남아야 한다는 요구사항이 구현되지 않음. 현재 notes는 새로고침 시 빈 배열로 초기화됨 높음 초기화 시 저장된 메모를 읽고, 추가/수정 시마다 저장
2 add() DOM 요소가 없거나 접근에 실패할 때 예외 처리가 없음. 요소 존재 여부는 needs checking 중간 요소를 확인한 뒤 처리하고, 잘못된 상태에 대한 오류 처리 추가
5 add()/render() t, list라는 ID가 하드코딩되어 있음 낮음 요구사항 변경 가능성이 있으면 상수화하거나 요소 참조를 한 곳에서 관리
4 전체 로그인, 외부 라이브러리, 서버 통신 등 요구사항에 없는 기능은 추가되지 않음 해당 없음 조치 불필요
6 전체 로그인/권한 요구사항은 없고 비밀번호나 API 키 노출도 보이지 않음. 단, XSS 문제는 보안 문제에 해당함 높음 사용자 입력을 HTML로 직접 삽입하지 않도록 수정

More in this category

AI builder
AI-Powered Personal Compliment & Coaching Engine
Anime
Business Engineer Dashboard Creator
Dating Profile Optimization Suite