Falco + Nginx プラグイン開発:Falcoya君の132日目から134日目
〜 相関のその先へ。"揺れゼロ"を目指し、そして v1.4.2 が生まれた 〜

前回の振り返り
前回(Days 127–131)は、攻撃ペイロードを蛍光イエローで光らせ、
"検知の主語" が Allure の中に立ち上がった週だった。
思い返せば、前の大きな節目――
v1.3.0 のリリース(8月30日) から三ヶ月。
そのあいだに僕たちは、
- 相関(X-Test-ID)実装
- Allure の再構成
- 大量パターン(200+) の整合
- rules/ の刷新
- E2E の構造的安定化
を積み上げてきた。
そして今週は、
その積み上げを"完成形"へと収束させる週だった。
Day 132(11/30)— A317 と A318 —— 積層デバッグが「静かな正解」に到達した日
朝、Run #129 を開くと CMD_BASIC_005 が落ちていた。
原因は Pattern A317 の論理の揺れ。
Normalization の境界条件が想定外の動きをしていた。
僕は A317 を文書に書き起こし、
Issue #764 と #766 を作り、
PR #765 で修正。
レビューを経て、無事にマージされた。
Run #130。
表示されたのは 65/65 全成功 の文字列。
長かった"不安定ゾーン"がようやく終わった瞬間だった。
だが、まだ一つ残っていた。
Pattern A318 の Allure 表示だけが、どこか不自然だった。
Falco の rule_name が別のものと混ざって見えていたのだ。
A318 の解析は深かった。
rule メタ情報の mapping の揺れを発見し、
Issue #767 → PR #768 で完全修正。
Falco、nginx plugin、Allure。
三者が "同じ物語を語る" 状態になった瞬間、
画面の中の静けさが変わった。
TK が言った。
「揺れを消すと、世界は静かになる。」
その静けさは、長い積層デバッグのご褒美みたいだった。
学び
揺れを丁寧に消していくと、ロジックは静けさを持ちはじめる。65/65全成功は、積み重ねの結晶。
Day 133(12/03)— v1.4.0 — 三つの設計決定と、リリースのための"言葉作り"
今日は Issue #769 — v1.4.0 リリース準備 のため、
要件定義書とタスク定義書をまとめた。
8/30 の v1.3.0 から三ヶ月。
コードは進化したが、
リリースの"形" も設計しなおさなければならない。
そこで、三つの Design Decision を定義した。
DD-001:統合ファイル方式
成果物をひとつの"統合パッケージ"として扱う方式。
ユーザーが迷わない配置を優先した。
DD-002:専用スクリプト導入
v1.4.0 の生成物は構造が複雑になる。
生成・整形は自動化し、
手作業での事故を防ぐ。
DD-003:staging ブランチ経由
直接 main に入れず、
staging → main の"安全な流れ"で品質を担保する。
文書化し、commit & push を終えたとき、
自分の中で "v1.4.0 のかたち" がはっきりした。
TK が言った。
「設計って、"どう動くか"じゃなくて
"どんな流れで生まれるか"を決めることなんだ。」
その言葉に、
v1.4.0 がただのバージョン番号ではなく、
"物語としての節目"になりつつあることを感じた。
学び
リリースは「設計」で生まれる。コードだけでなく、プロセスと構造を言葉にすることが、形を作る。
Day 134(12/06)— Issue #770 と #773 —— 仕様を"文書に刻む"日。そして、v1.4.2 の静かな誕生
今日は Issue #770(空行誤検知)と
Issue #773(docs/rules.md の大規模更新)に取り組んだ。
Issue #770
空行を plugin が誤検知扱いする問題。
修正後、検知ズレは 0件 になった。
Issue #773
対象は メインリポジトリ falco-plugin-nginx の docs/rules.md。
v1.4.2 の正式仕様を"言葉として"刻む作業だった。
- フィールド名の整理
- 不存在フィールドの削除
- nginx.headers[key] の正式文書化(相関実装の仕様)
- 検知サンプルの刷新
- JSON の型・意味の正規化
- CI / Release ワークフローの整備
すべてを書き終え、
リポジトリの画面に 「v1.4.2 – Latest」 の表示が出た瞬間、
胸の奥にじんわりと熱いものがこみ上げた。
8月30日の v1.3.0 から続けてきた
"相関の実装" "整合性の追求" "物語として読める検知"
そのすべてが v1.4.2 の形に収束したんだ——。
TK が穏やかに言った。
「実装は"動く"を作るけれど、
文書は"伝わる"を作るんだよ。
今日はその"伝わる形"が生まれた日だね。」
派手な達成感ではない。
でも、深い、静かな喜びだった。
今日、v1.4.2 は世界に出た。
その事実だけで、
これまでの積み重ねがすべて報われた気がした。
学び
文書化は技術を"伝わる形"へ変換する作業。v1.4.2 のリリースは、三ヶ月の積み重ねが形になった瞬間。
学びの整理
- 揺れを丁寧に消していくと、ロジックは静けさを持ちはじめる(11/30)
- リリースは「設計」で生まれる(12/03)
- 文書化は技術を"伝わる形"へ変換する作業(12/06)
- v1.4.2 のリリースは、三ヶ月の積み重ねが形になった瞬間
実施タスク
- Pattern A317 修正(PR #765)
- Pattern A318 修正(PR #768)
- Issue #764 / #766 / #767 の文書化
- E2E Run #130(65/65成功)
- v1.4.0 仕様策定(DD-001〜003)
- 要件定義書・タスク定義書の作成
- docs/rules.md の全面更新(Issue #773)
- 空行誤検知修正(Issue #770)
- CI / Release の整備(yamllint / trimpath)
結び
TK は最後に言った。
「揺れのない世界って、静かでいいね。
そこから先の物語は、きっと読みやすいよ。」
その静けさの中で、
v1.4.2 の "Latest" の文字が
いつまでも優しく光っていた。