このリポジトリはセキュリティツールを構築しています。開発するエージェントにも同じ規律が適用されます。
key.txtやsecrets.encを直接読まないでください。テスト fixture は例外ですが、その場合でも store package API 経由に限定します。- シークレット値を print、log、commit しないでください。テスト出力も含みます。
- store をデバッグするときは、raw
Get()ではなく store 自身のList()(マスク済み) を使うか、マスク済み形式に対して assert してください。 e2e_test.pyは、MCP 出力に平文が現れないことを意図的に assert しています。この性質を維持してください。- ディスク上の blob を調べる必要がある場合は、bytes として読み、armor marker や平文が含まれないことだけを確認してください。復号済みデータを dump してはいけません。
secrets.encは平文の key material を決して含んではいけません。age で暗号化します。key.txtは0600、store dir は0700でなければなりません。- すべての MCP tool result と resource はマスク済みでなければなりません。tool result に平文を出してはいけません。
putはvalue_fileパスを受け取り、それを読み、読み取り後に削除しなければなりません。- マスキング規則は
internal/maskにあります。entropy/prefix/URL segmentation のテストを green に保ってください。
- コミット前に
go test ./...を実行してください。すべての package が pass する必要があります。 go vet ./...を実行してください。warning がない状態にします。internal/mcpまたはinternal/storeを変更した後はpython3 e2e_test.pyを実行してください。protocol round-trip が green のままである必要があります。- Go SDK (github.com/modelcontextprotocol/go-sdk) は、未解決の OSV advisory がないバージョンを使ってください。更新は意図的に行います。