diff --git a/metropolis/proto/api/BUILD.bazel b/metropolis/proto/api/BUILD.bazel
index 28d1fb9..a849a07 100644
--- a/metropolis/proto/api/BUILD.bazel
+++ b/metropolis/proto/api/BUILD.bazel
@@ -8,9 +8,9 @@
     except_rules = [
         "PACKAGE_VERSION_SUFFIX",
         "ENUM_ZERO_VALUE_SUFFIX",
-        "RPC_REQUEST_RESPONSE_UNIQUE",  # TODO: evaluate correctness
-        "RPC_REQUEST_STANDARD_NAME",  # TODO: evaluate correctness
-        "RPC_RESPONSE_STANDARD_NAME",  # TODO: evaluate correctness
+        "RPC_REQUEST_RESPONSE_UNIQUE",
+        "RPC_REQUEST_STANDARD_NAME",
+        "RPC_RESPONSE_STANDARD_NAME",
         "SERVICE_SUFFIX",
     ],
     protos = [":api_proto"],
diff --git a/metropolis/proto/api/aaa.proto b/metropolis/proto/api/aaa.proto
index faf6dda..4cdfa18 100644
--- a/metropolis/proto/api/aaa.proto
+++ b/metropolis/proto/api/aaa.proto
@@ -45,7 +45,7 @@
     // channel opened from a given IP address or with a given existing TLS
     // certificate), and some dependent on external systems (eg. SSO).
     //
-    // If the requested identity within the first EscrowFromClient is not
+    // If the requested identity within the first EscrowRequest is not
     // defined, the server may:
     //
     //  - Abort the connection immediately with an error about an unknown
@@ -146,7 +146,7 @@
     // will lead to retrieving identities from with the same namespace of
     // entities.
     //
-    rpc Escrow(stream EscrowFromClient) returns (stream EscrowFromServer) {
+    rpc Escrow(stream EscrowRequest) returns (stream EscrowResponse) {
         option (metropolis.proto.ext.authorization) = {
             // The AAA implementation performs its own checks as needed, so the
             // RPC middleware should allow everything through.
@@ -155,9 +155,9 @@
     }
 }
 
-message EscrowFromClient {
+message EscrowRequest {
     // Parameters used for the entirety of the escrow flow. These must be set
-    // only during the first EscrowFromClient message, and are ignored in
+    // only during the first EscrowRequest message, and are ignored in
     // further messages.
     message Parameters {
         // The requested identity name. This is currently opaque and not defined,
@@ -178,7 +178,7 @@
 
     // Proofs. These should only be submitted by the client after the server
     // requests them, but if they are submitted within the first
-    // EscrowFromClientMessage they will be interpreted too. The problem with
+    // EscrowRequestMessage they will be interpreted too. The problem with
     // ahead of time proofs is that different a proof request from the server
     // might parametrize the request in a way that would elicit a different
     // answer from the client, so care must be taken to ensure that the
@@ -193,7 +193,7 @@
     Proofs proofs = 2;
 }
 
-message EscrowFromServer {
+message EscrowResponse {
     // A proof requested from the server. Within an Escrow RPC, proofs can be
     // either 'needed' or 'fulfilled'. Each proof has a kind, and kinds within
     // all proof requests (either needed or fulfilled) are unique.
@@ -209,7 +209,7 @@
             KIND_REFRESH_CERTIFICATE = 1;
             // The client needs to present a static, plaintext password/token.
             // This can be fulfilled by setting
-            // EscrowFromClient.proofs.plaintext_password.
+            // EscrowRequest.proofs.plaintext_password.
             // If the client presents an invalid password, the Escrow RPC will
             // fail.
             KIND_PLAINTEXT_PASSWORD = 2;
diff --git a/metropolis/proto/api/debug.proto b/metropolis/proto/api/debug.proto
index e5529f9..fba5470 100644
--- a/metropolis/proto/api/debug.proto
+++ b/metropolis/proto/api/debug.proto
@@ -29,7 +29,7 @@
 
     // A reimplementation of metropolis.api.NodeManagement.Logs that's available
     // before the node starts up the management service.
-    rpc GetLogs(GetLogsRequest) returns (stream GetLogsResponse);
+    rpc Logs(LogsRequest) returns (stream LogsResponse);
 
     // Trace enables tracing of Metropolis using the Linux ftrace infrastructure.
     rpc Trace(TraceRequest) returns (stream TraceEvent);
diff --git a/metropolis/proto/api/management.proto b/metropolis/proto/api/management.proto
index 59fd038..9a81082 100644
--- a/metropolis/proto/api/management.proto
+++ b/metropolis/proto/api/management.proto
@@ -377,7 +377,7 @@
 // NodeManagement runs on every node of the cluster and providers management
 // and troubleshooting RPCs to operators. All requests must be authenticated.
 service NodeManagement {
-  // GetLogs Returns historical and/or streaming logs for a given DN with given
+  // Logs Returns historical and/or streaming logs for a given DN with given
   // filters from the system global LogTree.
   //
   // For more information about this API, see //osbase/logtree. But, in
@@ -393,7 +393,7 @@
   //     example paths, see the console logs of a running Metropolis node, or
   //     request all logs (at DN "").
   //
-  rpc Logs(GetLogsRequest) returns (stream GetLogsResponse) {
+  rpc Logs(LogsRequest) returns (stream LogsResponse) {
     option (metropolis.proto.ext.authorization) = {
       need: PERMISSION_READ_NODE_LOGS
     };
@@ -418,7 +418,7 @@
   }
 }
 
-message GetLogsRequest {
+message LogsRequest {
   // DN from which to request logs. All supervised runnables live at `root.`,
   // the init code lives at `init.`.
   string dn = 1;
@@ -449,7 +449,7 @@
   StreamMode stream_mode = 5;
 }
 
-message GetLogsResponse {
+message LogsResponse {
   // Entries from the requested historical entries (via WithBackLog). They will
   // all be served before the first stream_entries are served (if any).
   repeated osbase.logtree.proto.LogEntry backlog_entries = 1;
