
Katsuhiro Yamakawa
Builder
APPROACH
つくって終わりにしない。現場で壊れず回り続けることを基準に選ぶ。Don't just build and walk away.Design software that runs reliably in production.
刷新より、定着
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. Zero retraining means seamless, lasting adoption.
既存の運用
Existing Ops
Excel・紙・日常業務
Excel, Paper & Daily Work
裏に差し込む
Retrofit Behind
自動化は見えない層
Invisible Automation Layer
手順は変わらない
Zero Workflow Change
現場がそのまま定着
Seamless Field Adoption
自動より、制御
Control over Automation
AIエージェントは自律実行するぶん、放っておけば破壊的な操作や機密漏洩をそのまま本番へ通しかねない。便利さと引き換えに制御を手放すのではなく、危険を仕組みで止める前提で開発フロー自体を組み直した。
Autonomous AI agents can inadvertently execute destructive actions or leak secrets if left unmonitored. Instead of sacrificing control for convenience, I redesigned dev workflows with safety guardrails built into the architecture.
判断基準は「運用ルールではなく、設定で止める」こと。人が注意する約束は形骸化するが、構造的に遮断された操作は実行されない。役割を設計・実装・検証に分け、人間のマージを最後の関門に固定したうえで、環境差の排除・破壊的コマンドの遮断・機密の隔離をすべてコードと設定で担保する。
Rule of thumb: enforce limits via config, not human memory. Human vigilance fades, but structural boundaries never fail. By separating roles into design, implementation, and verification, humans remain the final merge gate while code enforces environment isolation and command sandboxing.
設計
Design
対話型 AI
Conversational AI
実装
Implement
自律型 AI
Autonomous AI
検証
Verify
人間がマージ
Human Merge Gate
生成より、検証
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.
だから「何が壊れてはいけないか」だけは人間が決めて文書で承認し、それを守るテストの作成と実装はAIに任せる。約束が破られれば機械が検知して止まるため、人間が張り付いて見張る必要がない。注意し続ける人を前提にしない仕組みに、正しさの番を任せる。
Humans define and approve non-negotiable invariants, while AI writes the tests and implementations. Automated suites enforce these contracts so humans don't have to manually monitor every change.
この分業を保証駆動開発(Guarantee-Driven Development)と呼び、約束の一覧は各リポジトリの保証台帳(guarantees.md)としてテストと紐づけて公開している。
I call this Guarantee-Driven Development (GDD), publishing explicit invariant ledgers (guarantees.md) tied directly to test suites across repositories.
人が決める
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 systems with real financial risk led me to intentionally refactor a feature-rich React UI into a minimal JSONL + systemd architecture. Declarative NixOS configuration prevents environment drift, while automated anomaly detection and risk limits keep operations running non-stop.
React UI 版
React UI Version
多機能・状態が複雑
Complex State & UI
止まらない最小構成
Minimal & Unstoppable
JSONL + systemd で運用
Operated on JSONL + systemd