
Katsuhiro Yamakawa
Builder
I didn't start out as an engineer. I was running the business, and ended up building the systems myself.
PRINCIPLES
人の注意や記憶に、品質を預けない。覚え直しも、見張りも要らない形を選ぶ。Quality never rests on human vigilance or memory.I choose forms that need no retraining and no watching.
刷新より、定着
Adoption over Overhaul
導入時に歓迎された機能が、半年後には誰にも使われなくなる。経営の現場で、その経緯を当事者として見てきた。
Features welcomed at launch often get abandoned within six months. Having managed operations firsthand, I've seen this cycle repeat.
だからこそ、新しい画面や操作の習得を強いる設計を避ける。既存の Excel・スプレッドシート・紙の運用はそのまま残し、自動化はその裏側に後付けで差し込む。現場の手順が一切変わらないことを最優先に置く。
That's why I avoid forcing new interfaces or workflows. Existing Excel, spreadsheet, or paper operations remain untouched, with automation retrofitted behind the scenes. Nothing in the day-to-day has to change.
既存の運用
Existing Ops
Excel・紙・日常業務
Excel, Paper & Daily Work
裏に差し込む
Retrofit Behind
自動化は見えない層
Invisible Automation Layer
手順は変わらない
Zero Workflow Change
現場がそのまま定着
Seamless Field Adoption
生成より、検証
Verification over Generation
AIがコードを書く時代、時間がかかるのは書くことではなく、書かれたものを信じられるか確かめることに変わった。AIは警告も出さずに自信を持って間違え、放っておけば破壊的な操作や機密漏洩をそのまま本番へ通す。人が注意する約束は形骸化するので、環境差の排除・破壊的コマンドの遮断・機密の隔離はコードと設定で固定し、人間のマージを最後の関門に置く。
In the age of AI code generation, the bottleneck shifts from writing code to verifying its correctness. AI makes mistakes quietly and confidently, and left unwatched it will push destructive commands or leaked secrets straight to production. A promise to be careful decays, so environment isolation, command sandboxing, and secret handling are fixed in code and config, with a human merge as the last gate.
そのうえで「何が壊れてはいけないか」だけは人間が決めて文書で承認し、テストと実装はAIに任せる。約束が破られれば機械が検知して止まるので、張り付いて見張らなくていい。この分業を保証駆動開発(GDD)と呼び、約束の一覧は保証台帳(guarantees.md)としてテストと紐づけて各リポジトリで公開している。
On top of that, humans decide and approve in writing what must never break, while AI writes the tests and the implementation. Break a contract and the machine catches it, so nobody has to stand watch. I call this split Guarantee-Driven Development (GDD), publishing the contracts as a guarantee ledger (guarantees.md) tied to the tests in each repository.
人が決める
Human Decision
約束を裁可
Approve Contracts
AIが書く
AI Generation
実装とテスト
Code & Tests
機械が見張る
Automated Guard
台帳の約束、破れば検知
Contract Enforcement
機能より、安定
Stability over Features
機能の多さより、止まらず回り続けることを優先する。動くデモと本番で壊れない運用は別物。後者のためなら機能を削る判断も辞さない。
Uninterrupted operation takes priority over feature abundance. A working demo is fundamentally different from a fault-tolerant production system; I happily trim features to ensure the latter.
金銭リスクのある自動売買を個人で本番運用する必要から、かつて React の操作 UI を備えていた版を、状態を JSONL と systemd だけで扱う構成へ意図的に作り直した。NixOS による宣言的構成で環境差トラブルを抑え、異常検知・損失限定・定期実行を自前で自動化して、止めずに走らせ続けている。
Running automated trading on my own money in production forced the call: I deliberately rebuilt a version that had a React control UI into one that holds its state in JSONL and systemd alone. Declarative NixOS configuration keeps environment drift out, and anomaly detection, loss limits, and scheduled runs are automated in-house, so it keeps going unattended.
React UI 版
React UI Version
多機能・状態が複雑
Complex State & UI
止まらない最小構成
Minimal & Unstoppable
JSONL + systemd で運用
Operated on JSONL + systemd