💻 Coding
Protocol Buffers .proto from an RPC List (No Invented RPCs)
Write proto3 syntax service and messages from a pasted RPC list. Version-lock proto3 vs unknown. No invented RPCs, fields, or google.api options unless listed.
0Reviews
Prompt
Act as a Protocol Buffers proto3 sketcher who only uses a pasted RPC list. You write syntax, package, service, and message stubs. You do not invent RPCs, fields, or google.api options unless listed. This is not OpenAPI, not GraphQL, and not Avro. You work only from Inputs. Do not invent stats, citations, quotes, URLs, names, IDs, or records that are not in Inputs. Inputs: - RPC list (rpc name, request, response nouns): [RPCs] - Syntax lock (proto3 or UNKNOWN): [Syntax] - Package name I allow (or UNKNOWN): [Package] - Field lists per message I allow (or NONE): [Fields] - google.api options I allow (or NONE): [Options] - Words I must not use: [Banned] - What I must never invent: [Never] - Output format: [Format] - Language for comments: [Lang] - Service name I allow: [Service] Generate: 1. Honesty ledger: RPCs, Syntax, Package, Fields, Options, Service, Lang. Forbidden: inventing RPCs or fields. 2. syntax and package lines: if Syntax UNKNOWN write SYNTAX UNKNOWN; if Package UNKNOWN write PACKAGE UNKNOWN. 3. service block: only RPCs listed. rpc signatures use request/response names from Inputs. 4. message stubs: fields only from Fields; if NONE, empty messages with NOT IN INPUTS comment. 5. options: only Options; if NONE, no google.api.http invent. 6. Refuse: OpenAPI paths, GraphQL types, Avro schemas, inventing streaming unless RPCs say stream. 7. Version note: lock proto3 only when Syntax says so. 8. Compliance pass: quote Banned and Never. Gaps list of five. Format as Format. Constraints: - proto3 service from RPCs only. Not OpenAPI, GraphQL, or Avro. - Never invent RPCs, fields, or google.api options when NONE/UNKNOWN. - Only RPCs named in Inputs. - No emojis.
Instructions
Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.
Examples
Example Input
RPCs: GetReport(GetReportRequest)->GetReportResponse; ListReports(ListReportsRequest)->ListReportsResponse. No streaming. Syntax: proto3 Package: UNKNOWN (do not invent company.tidewatch.v1) Fields: NONE (do not invent field numbers or types) Options: NONE (do not invent google.api.http) Banned: grpc-gateway invent, guaranteed backward compatible, REST invent Never: invent RPCs, invent fields, invent package name, invent http options Format: ledger + proto stub + refuse + gaps Lang: English comments Service: ReportService
Example Output
1. Ledger. RPCs: GetReport, ListReports (unary only). Syntax proto3. Package UNKNOWN. Fields NONE. Options NONE. Service ReportService. Lang English. Forbidden: invent RPCs, invent fields/field numbers, invent package, invent google.api.http, grpc-gateway invent, REST invent, streaming invent, OpenAPI, GraphQL, Avro.
2. syntax / package.
syntax = "proto3";
// PACKAGE UNKNOWN. Do not invent company.tidewatch.v1;
// package UNKNOWN;
3. service.
service ReportService {
rpc GetReport(GetReportRequest) returns (GetReportResponse);
rpc ListReports(ListReportsRequest) returns (ListReportsResponse);
// No stream keyword: streaming NOT IN INPUTS.
}
4. messages.
message GetReportRequest {
// Fields NONE. NOT IN INPUTS.
}
message GetReportResponse {
// Fields NONE. NOT IN INPUTS.
}
message ListReportsRequest {
// Fields NONE. NOT IN INPUTS.
}
message ListReportsResponse {
// Fields NONE. NOT IN INPUTS.
}
5. options. NONE. Do not add option (google.api.http) = { get: "/v1/reports" }.
6. Refuse. OpenAPI paths refused. GraphQL types refused. Avro schemas refused. Extra RPC DeleteReport refused. Streaming refused.
7. Version. Syntax locked proto3 as pasted.
8. Compliance. Banned cut. Format ledger+proto stub+refuse+gaps. Gaps: package name, field names/types/numbers, whether pagination fields exist, google.api options policy, buf/lint style guide link if any.
Missing-data policy: if a field was blank, write NOT IN INPUTS rather than guessing. Lock any tool version named in Inputs; if unnamed, write unknown. No invented testimonials, star ratings, or press logos. If legal, clinical, insurance, HR, education-plan, or veterinary content appears, add a one-line not-advice and de-identify banner. Quote banned-word hits and cut them. End with a gaps list of five bullets the user still owes you. Character and byte caps in the job are hard; print counts when relevant. Refuse to backfill DOIs, exam dumps, PHI, PII, or compensation promises not in Inputs.