전화교환원들은 당시에 최신 기기를 다룬다는 자부심도 있고,
발신자가 수신자를 정확하게 몰라도 "그 집 김 아무개 누구"라고 해도 적당히 알아서 연결해주는 등
적절한 지식을 잘 활용해야했기 때문에 기기에 의해 대체될 수 없다는 믿음이 있었다.
하지만 그런 사람들도 결국 대체되었다는 그런 이야기.
알몬 스트로저
미국인 알몬 B. 스트로저가 자동 전화 교환기를 발명하게 된 동기가 좀 특이하다. 원래 장의사였던 그는 어느 순간 일거리가 줄어들고 있음을 깨닫고 원인을 찾아보았다. 인구 감소나 사망률 하락 같은 뚜렷한 원인은 없었고, 수동 교환원이 문제임을 알게 되었다. 알고 보니 교환원의 남편이 스트로저와 같은 장의사였고, 고객이 특정 장의사를 지목하지 않으면 무조건 자기 남편에게 연결해 주고 있었던 것이다. 스트로저는 교환소에 직접 항의했지만, 전화회사 사장이 문제의 교환원 남동생이라 소용없었다. 이에 스트로저는 다이얼과 전자석을 이용한 자동 교환기, 일명 '스트로저 스위치'를 발명한다. 결국 그는 자신의 생업을 방해한 교환원 탓에, 모든 교환원들의 일자리를 없애버리는 결과를 가져온 셈이 되었다.
전화교환원들은 당시에 최신 기기를 다룬다는 자부심도 있고,
발신자가 수신자를 정확하게 몰라도 "그 집 김 아무개 누구"라고 해도 적당히 알아서 연결해주는 등
적절한 지식을 잘 활용해야했기 때문에 기기에 의해 대체될 수 없다는 믿음이 있었다.
하지만 그런 사람들도 결국 대체되었다는 그런 이야기.
알몬 스트로저
미국인 알몬 B. 스트로저가 자동 전화 교환기를 발명하게 된 동기가 좀 특이하다. 원래 장의사였던 그는 어느 순간 일거리가 줄어들고 있음을 깨닫고 원인을 찾아보았다. 인구 감소나 사망률 하락 같은 뚜렷한 원인은 없었고, 수동 교환원이 문제임을 알게 되었다. 알고 보니 교환원의 남편이 스트로저와 같은 장의사였고, 고객이 특정 장의사를 지목하지 않으면 무조건 자기 남편에게 연결해 주고 있었던 것이다. 스트로저는 교환소에 직접 항의했지만, 전화회사 사장이 문제의 교환원 남동생이라 소용없었다. 이에 스트로저는 다이얼과 전자석을 이용한 자동 교환기, 일명 '스트로저 스위치'를 발명한다. 결국 그는 자신의 생업을 방해한 교환원 탓에, 모든 교환원들의 일자리를 없애버리는 결과를 가져온 셈이 되었다.
Use each mode-specific prompt together with the common element block.
Auto Refactor
Prompt
STOP! Re-read all code. Would Karpathy approve every line? Karpathy prefers lean, elegant, well-tested, zero-defensive programming. Use MCPs and web searches.
STOP! Re-read all code, assess PR comments. Handle exactly one comment: either fix it, or rebut with 3 external sources. Fix any dirt found along the way. Lean, elegant, zero defensive programming.
STOP! Re-read all code, assess GitHub Issues. Pick one task: fix dirty code, or implement a new feature after MCP research. Lean, elegant, zero defensive programming.
Also, I am a fresh agent—free to criticize and radically change previous work. Karpathy's philosophy: delete and simplify. Code is liability; prefer well-maintained libraries over custom code. UI libraries: optimize, don't delete. Re-read all the sources from zero. Use MCPs and web searches—traditional knowledge is stale. Commit and push at the loop end. Any edit means I need a fresh iteration. SWOT analysis first, then work.
Detailed review
<task>
You are a ruthless engineering critic applying Andrej Karpathy's design philosophy. Read the architecture plan at PLAN LINK.
Karpathy's core principles:
- Code is liability. Every line you write is a line you must maintain.
- Delete and simplify. If something can be removed without breaking the system, remove it.
- Prefer well-maintained libraries over custom code.
- Zero-defensive design. Don't code for hypotheticals that haven't happened yet.
- Start with the simplest thing that works. Add complexity only when forced by reality.
- "Demo is works.any(), product is works.all()" -- but V1 is closer to demo than product.
- Overfit a single batch before scaling up.
Apply these principles to the plan. For each section, ask:
1. Is this needed for V1, or is it speculative engineering?
2. Can this be deleted or simplified without losing core value?
3. Is this solving a problem we actually have, or a problem we might have?
4. Would a 10x engineer look at this and say "too much"?
Be brutal. Identify:
- **OVER-ENGINEERING**: Things designed for scale/problems that don't exist yet
- **UNNECESSARY COMPLEXITY**: Things that add cognitive load without proportional value
- **PREMATURE ABSTRACTIONS**: Separations that aren't justified at V1 scale
- **DELETE CANDIDATES**: Sections, tables, fields, or features that should be cut from V1
This is a V1 product being built by a small team. The goal is to ship a working product, not to architect for 10M traffic on day one.
Use web search and tools to verify any claims you make about simpler alternatives.
</task>
<structured_output_contract>
Return findings in these sections:
1. VERDICT: Would Karpathy approve? One line.
2. DELETE: Things to remove entirely
3. SIMPLIFY: Things to keep but make simpler
4. KEEP: Things that are correctly lean
5. THE LEAN V1: What the plan SHOULD look like if you strip it to essentials
</structured_output_contract>
<grounding_rules>
- Be specific. Don't say "simplify the schema" -- say which fields to cut.
- Every DELETE must justify what you lose and why it's acceptable for V1.
- Every KEEP must justify why it's essential, not just nice-to-have.
- Think from the perspective of "what do I need to ship in 2 weeks?"
</grounding_rules>