ykts.net
Katsuhiro Yamakawa

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.

01

刷新より、定着

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

02

生成より、検証

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

03

機能より、安定

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

このサイトと、制作の経緯を書いた Zenn(技術記事の投稿サイト)の記事をもとに AI が答えますAI answers from this site and my articles on Zenn (a tech blogging platform) about how each project was built