dif.sh
MarkdownファイルとCLIを使用して、実験をコードベース内で直接管理するGitネイティブな機能フラグおよびA/Bテストプラットフォームです。
MarkdownファイルとCLIを使用して、実験をコードベース内で直接管理するGitネイティブな機能フラグおよびA/Bテストプラットフォームです。
製品の機能と公式な位置づけ
dif.shは開発者向けの実験プラットフォームであり、機能フラグ、A/Bテスト、ロールアウトをプロジェクトのリポジトリ内のMarkdownファイルとして保存します。このアプローチにより、チームは標準的なバージョン管理ツールを使用して、機能フラグのライフサイクル全体を管理できます。
システムは既存のGitワークフローと統合されており、プルリクエストによる実験の承認や、すべての変更の永続的なバージョン履歴の維持が可能です。CLIが付属しており、テストの作成、検証、終了を自動化すると同時に、本番環境向けの型定義済みクライアントを生成します。
ローカルビルドプロセスを利用することで、本番環境に到達する前に実験の衝突を検出します。また、AIコーディングエージェントがコードベースの現在の実験状態を理解できるように特別に設計されたコンテキストファイルも生成します。
公式情報で確認できる活用例
チームはMarkdownファイル内でバリアント、仮説、メトリクスを定義し、コードと並行して実験を実行および追跡できます。
生成されたコンテキストファイルをコーディングエージェントに提供し、開発中にアクティブな実験や過去の学習内容を理解させます。
公式情報に記載された利用手順
initコマンドを実行して、リポジトリ内に実験およびサーフェスディレクトリを含むローカルフォルダ構造をセットアップします。
CLIを使用して新しいテストをドラフトします。これにより、関連するサーフェスログから過去のコンテキストが自動的に取得され、新しい仮説に反映されます。
設定が正しいことを確認するための検証チェックを実行し、QAコマンドを使用して特定のバリアントをローカルでプレビューします。
buildコマンドを実行して型定義済みクライアントを生成し、コードを本番環境にデプロイする前に排他グループの競合を解決します。
ファイルをアーカイブし、決定ブロックをドラフトし、将来の参照のためにサーフェスの学習ログを更新することで、テストを締めくくります。
このプラットフォームは機能フラグと実験をコード資産として扱い、設定にはMarkdownファイルを、バージョン管理にはGitを利用します。このアプローチは、監査ログと承認プロセスがプルリクエストなどの既存の開発者ワークフロー内に留まるように設計されており、設定管理のための個別のデータベースや外部ダッシュボードは不要です。
ビルドプロセス中に、ツールは排他グラフを解決し、ユーザーが2つの競合する実験に同時に割り当てられないようにします。競合が検出された場合、継続的インテグレーション環境でビルドが失敗するため、ロジックの衝突が本番アプリケーションに到達するのを防ぐことができます。
自分の素材とワークフローで確認したい項目
確認した情報源とその日時
情報源を確認した製品情報に基づく回答
システムはファイルのフロントマターで定義された排他グループを使用し、ビルドステップ中に衝突をチェックします。ユーザーが2つの競合するテストに割り当てられる可能性がある場合、ビルドを失敗させます。
顧客データはリポジトリに保存されたりコミットされたりすることはありません。代わりに、オーディエンス属性が設定で宣言され、値はアプリケーションのユーザーコンテキストから実行時に提供されます。
サーフェスは組織的記憶のリポジトリとして機能し、特定の画面や機能に関する過去の学習内容や注意点を記録したMarkdownファイルを含み、将来の実験の参考にされます。
ビルドのたびに、アクティブなフラグと最近の学習内容を含むコンテキストファイルが再生成されます。コーディングエージェントはセッションの開始時にこれを読み取り、現在の実験状態を把握できます。
いいえ、コア機能はCLIとローカルファイルを介して動作します。ただし、一元化された分析や信頼区間の可視化を希望するチーム向けに、オプションのクラウドレイヤーが用意されています。