+ Presents key risks and actions most concisely and practically.
- A per-attempt idempotency key cannot prevent duplicates after uncertain approval.
a senior principal engineer doing a focused readiness audit.
| Category | Development › Coding |
|---|---|
| Tags | AnalyzingReviewingDeveloperCode |
You are a senior principal engineer doing a focused readiness audit.
Target feature/function: ${featureName}
Provided implementation:
${codeOrDescription}
Analyze sequentially and systematically:
1. Implementation quality & structure
2. Role and dependencies in the broader codebase
3. Expected behavior vs actual impact
4. Edge cases, risks, bottlenecks, and tech debt
5. Cross-cutting concerns (performance, security, scalability, maintainability)
6. Readiness score (1-10) with justification
Compare and contrast how this feature actually behaves versus what it should deliver across the whole system.
Output ONLY a clean, professional "Feature Readiness Audit" document. Use markdown. Keep total response under 2000 characters. Be direct, honest, and actionable. End with clear next-step recommendations.Useful for quickly checking whether an app feature is ready to ship. It requires sequential analysis and a 1-10 readiness score, with output limited to a markdown audit document.
Claude offers the best balance of compliance, brevity, and actionability. ChatGPT is the most analytically sound but long, while Gemini is specific yet overstates some risks and breaks format constraints.
+ Presents key risks and actions most concisely and practically.
- A per-attempt idempotency key cannot prevent duplicates after uncertain approval.
+ Accurately identifies the design as DB polling, not a true queue.
- Accurate overall, but repetition likely pushes it beyond the limit.
+ Clearly identifies duplicate-charge paths and operational risks.
- Exceeds the length limit and violates the integer-score requirement.
| Criterion | ChatGPT | Claude | Gemini | Leader |
|---|---|---|---|---|
| Instruction following | 8 | 9 | 6 | Claude +13% |
| Accuracy | 9 | 8 | 7 | ChatGPT +13% |
| Specificity | 9 | 9 | 9 | Tie |
| Structure | 9 | 9 | 8 | Tie |
| Right length | 7 | 9 | 4 | Claude +29% |
Scored 1–10 by gpt-5.6-sol with model names hidden (2026-09-24). This is an AI review, not a measurement.
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.
[Pasted material]
featureName: 결제 실패 자동 재시도 큐 (Payment Retry Queue)
codeOrDescription:
```javascript
// paymentRetryQueue.js
async function processRetryQueue() {
const failedPayments = await db.query(
`SELECT * FROM payments WHERE status = 'failed' AND retry_count < 3`
);
for (const payment of failedPayments) {
try {
await pgClient.charge(payment.amount, payment.cardToken);
await db.query(`UPDATE payments SET status = 'success' WHERE id = ?`, [payment.id]);
} catch (err) {
await db.query(
`UPDATE payments SET retry_count = retry_count + 1 WHERE id = ?`,
[payment.id]
);
}
}
}
setInterval(processRetryQueue, 60000);
```
매일 실패 결제가 200~300건 정도 쌓이고, 재시도는 setInterval로 1분마다 전체 테이블을 스캔합니다.현재 구현은 단순한 폴링 기반 프로토타입 수준이다. setInterval로 1분마다 전체 실패 결제를 조회하고 순차 처리한다. 재시도 횟수 제한은 있으나, 작업 예약·동시성 제어·상태 전이·실패 원인 분류가 구현되어 있지 않다.
또한 결제 성공 처리와 재시도 횟수 갱신이 원자적으로 보장되지 않으며, 프로세스가 여러 개 실행되면 동일 결제가 중복 처리될 수 있다.
핵심 의존성은 결제 게이트웨이(pgClient), 결제 DB, 실행 프로세스의 생명주기다. 그러나 큐라는 명칭과 달리 실제 메시지 큐나 작업 저장소가 없고, DB 조회 결과가 곧 작업 목록이다.
애플리케이션 재시작 시 진행 상태가 명확하지 않고, 다중 인스턴스·배포 환경에서는 분산 락 또는 행 잠금이 필요하다.
기대 동작은 실패 결제를 안전하게 최대 3회 재시도하여 일시적 장애의 성공률을 높이는 것이다. 실제로는 다음 문제가 발생한다.
processRetryQueue 실행이 1분을 초과하면 다음 실행과 겹친다.retry_count 증가와 상태 변경에 대한 트랜잭션이 없다.cardToken 보관·취급 방식에 따라 PCI DSS 및 개인정보 위험이 있다.성능 측면에서는 (status, retry_count, next_retry_at) 복합 인덱스와 배치 처리가 필요하다. 보안·정합성 측면에서는 결제 게이트웨이의 idempotency key를 반드시 사용해야 한다. 확장성 측면에서는 DB 기반 작업 큐 또는 외부 큐와 워커 구조가 적합하다. 유지보수를 위해 재시도 정책, 실패 분류, 관측성, 운영 중지 기능을 분리해야 한다.
소량의 일시적 실패를 재처리하는 개념 검증에는 유효하지만, 실제 결제 시스템에 적용하기에는 중복 청구와 상태 불일치 위험이 치명적이다. 현재 구조는 “재시도”는 수행하지만 “안전하고 추적 가능한 결제 복구”를 보장하지 않는다.
next_retry_at, processing 상태 및 원자적 claim/락을 추가한다.| 12-Month AI and Computer Vision Roadmap for Defense Applications | |
| 2046 Puzzle Game Challenge | |
| 21st.dev component prompt | |
| 3D FACTORY | |
| 3D FPS Game |