HADO は、サービスを本番環境へリリースする前に「本番で生き残れる状態か」を判定するための、オープンソースの Production Readiness プラットフォームです。
HADO という名前は「波動砲」から来ています。波動砲は、日本のSFアニメ『宇宙戦艦ヤマト』に登場する、宇宙戦艦ヤマトを象徴する主砲です。
ソフトウェアを本番環境へ送り出すことは、未知の宇宙へ船を出航させることに似ています。どんな障害、サイバー攻撃、運用上の想定外、監査上の問題に遭遇するかは、実際に本番へ出るまで完全には分かりません。
このプロジェクトは、宇宙戦艦ヤマトそのものではなく、ヤマトが未知の宇宙へ出ていく前に「戦える状態か」「波動砲を撃てる状態か」を確かめるための装備、あるいは備えとして位置づけています。
つまり HADO が問うのは、単にテストが通ったか、コードが綺麗かではありません。
このサービスは、本番という未知の宇宙に出しても生き残れるか?
その問いを、Production Readiness as Code として扱えるようにすることが HADO の出発点です。
- Project HADO ドキュメント
- 仕様(spec)
- HADO Manifest 参考(型から生成)(
make gen-manifest-doc) - ローカル開発
ローカルで hado CLI をビルドして実行する最小手順です。
make build
./bin/hado version
./bin/hadomake build は HADO CLI に加えて bundled module wrapper の bin/hado-gobce と bin/hado-datadog-pup もビルドします。
hado target は、HADO Manifest に 評価対象の service と 適用する Readiness Standard を書き込み、解決した standard に含まれるゲートに対応する evidence の キーとひな形(文字列は空、coverage は module: gobce)を マージします。既に値があるフィールドは上書きしません(--rewrite-placeholders=false でこの evidence のマージをスキップ可能)。standards/<standard-id>.yaml は --standards-dir または manifest 隣の standards/ に置きます。
./bin/hado target --manifest hado.yaml \
--service-name order-api \
--standard-id web-serviceTTY で実行すると、現在の manifest の値をデフォルトにしながら対話入力できる。
hado は target / charge / fire の 3 コマンドで運用します。
hado target: service / standard と evidence のひな形を manifest に書くhado charge: evidence を module / discovery で充填(spec/)hado fire: manifest を Readiness Standard の gate と照合して判定する
hado fire の終了コードは 0(ready)、1(blocked)、2(error)です。BLOCKED のときは CI で扱いやすいように 1 で終了します。
HADO core は、特定の runtime や SaaS の出力形式に直接依存しない。各 readiness domain は module が evidence を正規化し、Readiness Standard の gate が判定する。仕様は docs/spec/、Manifest スキーマは docs/hado.manifest.reference.yaml を参照。
cat > hado.yaml <<'YAML'
version: v1
evidence:
coverage:
module: gobce
operations:
owner: platform-team
runbook: https://example.com/runbooks/order-api
YAML
./bin/hado charge \
--manifest hado.yaml
./bin/hado fire \
--standard standards/web-service.yaml \
--manifest hado.yamlhado charge 後の manifest には次のように coverage 結果が直接書き戻されます。
evidence:
coverage:
module: gobce
measured_at: 2026-05-26T14:30:00Z
metrics:
c0: 82.1
c1: 68.4Coverage module は manifest の evidence.coverage.module で宣言します(spec/coverage.md)。