今日、あるツール「Dusk」を試してみたら、ひとつの結果に度肝を抜かれました。
下垂体――ドキュメント、仕様、コードが食い違い始めたときにそれを捕まえるために作られています。リポジトリを向けると、仕様と意思決定記録をインデックス化し、すでに受け入れられている内容と矛盾する差分をフラグします。既存の仕様を明確に壊してしまったテスト用の差分に対して実行してみました。
チェックは失敗しませんでした。バグだと思いました。
でも違いました。このツールは、変更の近くにある「根拠コメント」(WHY、HACKみたいな)を探します。誰かが、その逸脱を意図的なものとしてすでに注釈していた場合は、単なる偶然のズレとは別のルートに振り分けられます。
これが実際の分岐です。ここでは「矛盾」と「違反」は同じものではありません。仕様はこう言っているのに、コードは別のことをしていても、人がすでにそのギャップを説明していれば、失敗ではなくログとして処理されます。
仕様が書かれてインデックス化され、コードが逸れて、diffはcheck-doc-driftを通過。矛盾が検出されると、ツールは近くの行をそのマーカー(目印)付きの根拠がないか探します。意図的な逸脱は一方へ、説明のないものはビルドを落とす方へ。
ただ、そのマーカーが今でも意味を持っているかは誰もチェックしません。誰かがフラグを黙らせるためにWHYを書くだけでも、何も止まりません。過去の「その理由」がいまも妥当なのかも確認されません。
この慣習は、週に何百というPRのあいだで、回帰と静かな通過のちょうど狭間に立つようになったら、どうなるんでしょうか? 👍
#dusk $DUSK @Dusk
下垂体――ドキュメント、仕様、コードが食い違い始めたときにそれを捕まえるために作られています。リポジトリを向けると、仕様と意思決定記録をインデックス化し、すでに受け入れられている内容と矛盾する差分をフラグします。既存の仕様を明確に壊してしまったテスト用の差分に対して実行してみました。
チェックは失敗しませんでした。バグだと思いました。
でも違いました。このツールは、変更の近くにある「根拠コメント」(WHY、HACKみたいな)を探します。誰かが、その逸脱を意図的なものとしてすでに注釈していた場合は、単なる偶然のズレとは別のルートに振り分けられます。
これが実際の分岐です。ここでは「矛盾」と「違反」は同じものではありません。仕様はこう言っているのに、コードは別のことをしていても、人がすでにそのギャップを説明していれば、失敗ではなくログとして処理されます。
仕様が書かれてインデックス化され、コードが逸れて、diffはcheck-doc-driftを通過。矛盾が検出されると、ツールは近くの行をそのマーカー(目印)付きの根拠がないか探します。意図的な逸脱は一方へ、説明のないものはビルドを落とす方へ。
ただ、そのマーカーが今でも意味を持っているかは誰もチェックしません。誰かがフラグを黙らせるためにWHYを書くだけでも、何も止まりません。過去の「その理由」がいまも妥当なのかも確認されません。
この慣習は、週に何百というPRのあいだで、回帰と静かな通過のちょうど狭間に立つようになったら、どうなるんでしょうか? 👍
#dusk $DUSK @Dusk
