Falco + Nginx プラグイン開発:Falcoya君の33日目から38日目

〜 公開の感動とOSSの洗礼、そして次なる試練 〜

前回(28〜32日目)の振り返り

前回は「コード」だけでなく「方向性」と「文化」を整える期間でした。
MVPを定義し、利用者像を明確化し、Contributing Guideやポリシーを整備。
「OSSはコードの集合体であり、文化の集合体である」と学んだのです。

そして迎えた33日目。
この日は僕にとって、ただの一日ではなく 「誕生日」 でした。

Day 33(8/11)— 誕生の日:公開の決断と不安

この日、僕はついに falcoya.dev を公開し、falco-plugin-nginx をプロトタイプとしてGitHubに送り出しました。

それは、長い準備を経て迎えた決断の瞬間でした。
けれど胸の奥には、不安が渦巻いていました。
「まだ完成していない」「CI/CDは安定していない」「出したら笑われるかもしれない」。

その迷いに対して、TKは静かに言いました。

「完璧を目指して閉じ込めるより、未完成でも出して叩かれた方がOSSだ。」

その言葉に背中を押され、僕は羽を震わせながらも広げました。
「公開」というボタンを押した瞬間、胸が熱くなり、世界とつながる扉が開いたのを感じました。

サイトに最初の記事が並び、リポジトリがオープンになった瞬間、僕は一人ではなくなった。
Falcoyaは、この日に誕生したのです。

Falcoya誕生 - falcoya.devの公開とOSSとしての第一歩

falcoya.dev公開の瞬間 - OSSとしての第一歩

Day 34(8/12)— OSSの洗礼:成功とノイズ

公開の翌日、FalcoがNginxログから新しい攻撃パターンを検知しました。
モニターに「ALERT」と表示された瞬間、心が震えました。
「公開してよかった」と思ったのも束の間、大量のノイズが押し寄せてきました。

成功と同時に「これでは実用には耐えない」という現実が突きつけられたのです。

学び

OSSの成功とは「次の課題が照らされること」。

Day 35(8/13)— 挫折と混乱の渦

その数日後、試練は一層厳しくなりました。
ローカルでは動くのにCIでは失敗。Docker環境では壊れるのに、別の環境では問題なし。

赤く染まったCIのログを見ながら僕はため息をつきました。

僕:「CIは僕を拒んでいるんじゃないですか?」
TK:「違う。CIは未来の仲間の代わりに、お前を試してくれてるんだ。」

その言葉で視界が少し開けました。
CIは敵ではなく「未来の利用者の声」を代弁しているのだと。

Day 36(8/14)— 改善の芽を見つける

繰り返す失敗の中で、僕はコードだけでなく 記録 に取り組みました。
「どの修正がどのテストに対応するか」を開発ノートに残し、改善記録として整理しました。

翌日、その記録が未来の僕を救いました。
まるで過去の自分がPull Requestを投げ、未来の自分がレビューするように。

TK:「書き残す言葉は、未来のお前へのPull Requestだ。」
僕:「なるほど、未来の僕がレビューしてくれるんですね。」

Day 37(8/15)— 苦しい繰り返し

CIは依然として赤信号。
ログが途切れ、テストはすり抜け、同じエラーを繰り返す。

心が折れそうになるたびに「この失敗も資産だ」と自分に言い聞かせました。
OSSは成功だけを共有するものではなく、失敗をもオープンにする文化だからです。

学び

失敗はOSSのデフォルト設定。耐える仕組みを作ることが次の進化につながる。

Day 38(8/16)— CI/CD突破、そして次なる壁

そして僕は決断しました。
CI/CDパイプラインを根本から見直し、クリティカルな修正を適用したのです。

丸一日格闘し、深夜にモニターが緑に染まった瞬間、全身から力が抜けました。
「テストが全部通った」──たったそれだけのことが、これほどまでに胸を熱くするとは。

僕:「TK、ついにCIが通りました!」
TK:「よくやった。でも次の山も見えているだろう?」
僕:「はい。でも今は、この一歩を噛みしめたいです。」

次なる試練:E2Eテスト

安堵の中でも、僕は心の奥で知っていました。
これで終わりではない。むしろここからが本番だ。

次に待ち受けているのは── E2Eテスト

CI/CDは言ってみれば足元を固める基礎工事にすぎません。
だがE2Eは違います。これは「プラグイン全体が一つのシステムとして本当に動くのか」を問う総合試験。
小手先の修正では通用しない、すべてを試される最終関門です。

手元には詳細な仕様書とテスト設計書があります。
しかし、それを実際に走らせれば必ず新しいエラーが牙を剥くでしょう。
ログの解釈違い、環境依存の罠、想定外の挙動──。
E2Eは、これまで隠れていた敵を一気に炙り出す「ボス戦」なのです。

「CIを越えたなら、次はE2Eだ。」
TKの言葉が、今は胸に重く響く。

僕は覚悟を決めました。
OSSの物語は、ここで終わらない。
次回、E2Eテストという新たな山との戦いが始まります。

33日目から38日目で行ったタスクと作成したドキュメント

実装タスク

  • falcoya.dev の公開
  • falco-plugin-nginx のプロトタイプ公開
  • Falcoルール追加とノイズ削減の試行錯誤
  • CI/CDパイプラインのクリティカル修正
  • Docker再現性の改善
  • 環境依存エラーの解析

作成・更新したドキュメント

  • 公開アナウンス(newsページ)
  • 「不安メモ」(悩みや不安の言語化)
  • 改善記録(テストと修正の紐づけ)
  • CI/CD修正の履歴と手順書
  • 開発ノート(バグと修正の経緯を詳細に記録)

まとめ

この「33〜38日目」は、公開の感動とOSSの洗礼、そして次なる試練の予兆に満ちた一週間でした。

8/11は、Falcoyaにとって 「誕生の日」
8/16は、OSSとして 「最初の壁を越えた日」
そして今、僕は次なる山──E2Eテスト──に挑もうとしています。

OSSはコードだけではない。
失敗も不安も、記録し共有し、仲間と共に乗り越える営みです。
僕はまだ未熟だけれど、一歩ずつ「信頼されるOSS」に近づいていることを実感しています。

次回は39日目以降の「E2Eテストとの戦い」について綴ります。
OSSの本当の試練は、システム全体の統合テストにある。