Inferensys

Prompt

Service Mesh Configuration Change Review Prompt

A practical prompt playbook for using the Service Mesh Configuration Change Review Prompt in production AI workflows to analyze traffic policy modifications, mTLS enforcement changes, retry/timeout configuration impact, and fault injection risk.
Legal team reviewing EU AI Act compliance documents on laptop in modern office, coffee cups and papers on table, casual meeting.
PROMPT PLAYBOOK

When to Use This Prompt

Defines the ideal workflow, user, and preconditions for the Service Mesh Configuration Change Review Prompt, and clarifies when a different approach is required.

This prompt is designed for platform and SRE teams who need a structured, automated first pass at reviewing service mesh configuration changes before they reach a cluster. The core job-to-be-done is risk identification: turning a raw configuration diff into a report that highlights traffic policy modifications, mTLS enforcement changes, retry and timeout adjustments, and fault injection rules. The ideal user is a platform engineer or on-call reviewer who understands the mesh's control plane but needs help scaling their attention across frequent, high-impact configuration updates. The prompt assumes you are providing a unified diff or a structured representation of the change, along with the mesh platform name (Istio, Linkerd, or Consul) and the target namespace scope. Without these inputs, the blast radius analysis cannot accurately map which services and traffic paths are affected.

Use this prompt as a pre-merge gate in a CI/CD pipeline, as a structured input to a change advisory board (CAB) review, or as part of a pre-deployment checklist. In a CI/CD context, wire the prompt to run automatically when a PR modifies files in a mesh config directory. The output should block the merge if it contains high-severity findings with a blast radius that exceeds a predefined threshold. For CAB reviews, the structured risk report serves as a consistent agenda item, ensuring reviewers focus on the most dangerous changes first. For pre-deployment checklists, the report's blast radius analysis helps the on-call engineer decide which service dashboards to monitor during the rollout. In all cases, the prompt is a decision-support tool, not a decision-maker; it reduces the cognitive load of parsing diffs but does not replace human judgment for high-risk changes.

Do not use this prompt for real-time traffic debugging, for reviewing application-level code changes, or for generating the fix itself. It is not designed to analyze live metrics, traces, or logs, and it will not correctly interpret changes to application business logic that happen to be deployed behind the mesh. If you need to understand why a specific request failed in production, use an observability prompt or a log analysis playbook instead. If you need to generate a corrected configuration, pair this review prompt with a separate remediation prompt that takes the risk report as input. Finally, if your mesh configuration is managed entirely through a custom operator that generates EnvoyFilter or equivalent resources dynamically, this prompt may produce false positives on intermediate representations; in that case, run the review on the operator's source-of-truth input, not the generated output.

PRACTICAL GUARDRAILS

Use Case Fit

Where this prompt works and where it does not. Service mesh configuration changes carry high blast radius risk; this prompt is designed for structured review, not as a replacement for canary deployments or integration tests.

01

Good Fit: Traffic Policy Modifications

Use when: reviewing Istio DestinationRule, VirtualService, or Linkerd ServiceProfile changes that alter retries, timeouts, circuit breaking, or load balancing. Why: these changes directly affect inter-service resilience and latency. Guardrail: require the prompt to output a per-service blast radius assessment before approval.

02

Good Fit: mTLS Enforcement Changes

Use when: modifying PeerAuthentication, MeshPolicy, or Consul mesh TLS settings that toggle mTLS modes (strict, permissive, disabled). Why: a misconfiguration can break all service-to-service communication silently. Guardrail: the prompt must flag any namespace-wide or mesh-wide mTLS downgrade as a critical finding.

03

Bad Fit: Performance Tuning Without Traffic Data

Avoid when: tuning retry budgets, timeout values, or circuit breaker thresholds without providing current production latency percentiles and error budget data. Why: the model will guess safe values instead of reasoning from evidence. Guardrail: gate the prompt on required [TRAFFIC_METRICS] input; if absent, refuse to recommend specific numeric values.

04

Bad Fit: Initial Mesh Installation

Avoid when: reviewing a first-time service mesh installation rather than a change to an existing mesh. Why: greenfield installs require architecture-level decisions about ingress, sidecar injection scope, and platform fit that a diff-review prompt cannot capture. Guardrail: redirect to a Service Mesh Architecture Review prompt and only apply this prompt to incremental changes.

05

Required Inputs

Must provide: the full configuration diff with surrounding context, the affected service inventory, and the target environment. Strongly recommended: current traffic metrics, existing SLO definitions, and the deployment rollout plan. Guardrail: if [SERVICE_INVENTORY] is missing, the prompt must output a partial review with an explicit warning that blast radius analysis is incomplete.

06

Operational Risk

Risk: the prompt may produce a review that reads as authoritative, leading teams to skip canary analysis or staged rollout. Guardrail: every output must include a mandatory pre-apply checklist item: 'Deploy this change via canary or staged rollout and monitor golden signals for [DURATION] before full promotion.' Human approval is required for any finding marked critical.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt for reviewing service mesh configuration changes with square-bracket placeholders for your specific diff, mesh platform, and review constraints.

This template is designed to be copied directly into your AI harness, CI/CD pipeline, or review tool. It expects a configuration diff, the target mesh platform, and your organization's specific review constraints. Replace each square-bracket placeholder with your actual values before execution. The prompt enforces a structured output schema so that downstream automation can parse findings, route them to the correct team, and block deployment if critical risks are detected.

text
You are a service mesh configuration reviewer for a platform engineering team. Your task is to analyze a configuration change diff for [MESH_PLATFORM] (e.g., Istio, Linkerd, Consul) and produce a structured risk report.

## INPUT
[MESH_CONFIG_DIFF]

## CONTEXT
- Mesh Platform: [MESH_PLATFORM]
- Environment: [ENVIRONMENT]
- Services Affected: [SERVICE_LIST]
- Change Author: [AUTHOR]
- Change Ticket: [TICKET_REFERENCE]

## CONSTRAINTS
- [ORGANIZATIONAL_POLICIES]
- [REVIEW_REQUIREMENTS]
- [COMPLIANCE_STANDARDS]

## TASK
Analyze the configuration diff and identify risks in these categories:
1. Traffic Policy Modifications (routing, load balancing, circuit breaking)
2. mTLS Enforcement Changes (authentication policy, peer authentication)
3. Retry/Timeout Configuration Impact (resilience, cascading failure risk)
4. Fault Injection Risk (deliberate fault injection for testing)
5. Blast Radius Analysis (which services and users are affected)
6. Security Posture Changes (authorization policy, ingress/egress rules)

For each finding, provide:
- Severity (CRITICAL, HIGH, MEDIUM, LOW)
- Category from the list above
- Affected Resource (specific config object name)
- Description of the change and its risk
- Potential impact on dependent services
- Recommended action (APPROVE, BLOCK, REQUIRE_MANUAL_REVIEW, SUGGEST_ALTERNATIVE)
- Evidence (quote the relevant lines from the diff)

## OUTPUT_SCHEMA
{
  "review_summary": {
    "overall_risk": "LOW|MEDIUM|HIGH|CRITICAL",
    "total_findings": <integer>,
    "critical_findings": <integer>,
    "recommendation": "APPROVE|BLOCK|REQUIRE_CHANGES"
  },
  "findings": [
    {
      "id": "F-<integer>",
      "severity": "CRITICAL|HIGH|MEDIUM|LOW",
      "category": "traffic_policy|mtls|retry_timeout|fault_injection|blast_radius|security",
      "resource": "<config object name>",
      "description": "<clear explanation of the change and risk>",
      "impact": "<what breaks, degrades, or is exposed>",
      "affected_services": ["<service name>"],
      "recommendation": "APPROVE|BLOCK|REQUIRE_MANUAL_REVIEW|SUGGEST_ALTERNATIVE",
      "evidence": "<quoted lines from diff>"
    }
  ],
  "blast_radius": {
    "directly_affected_services": ["<service name>"],
    "indirectly_affected_services": ["<service name>"],
    "user_facing_impact": "<description or null>"
  }
}

## EXAMPLES
[FEW_SHOT_EXAMPLES]

## RISK_LEVEL
[RISK_LEVEL]

If the diff contains destructive changes (e.g., removing mTLS enforcement, deleting authorization policies, or injecting faults into production traffic), flag them as CRITICAL and recommend BLOCK.

If you are uncertain about the blast radius or impact on a specific service, set recommendation to REQUIRE_MANUAL_REVIEW and explain what additional context is needed.

Do not invent services, dependencies, or impacts not evident in the diff. If the diff is incomplete or ambiguous, note this in the review_summary.

After copying the template, replace each square-bracket placeholder with concrete values. [MESH_CONFIG_DIFF] should contain the raw diff output from your GitOps pipeline or istioctl analyze report. [FEW_SHOT_EXAMPLES] should include 2-3 annotated examples of previous reviews showing correct severity assignment and blast radius reasoning. [ORGANIZATIONAL_POLICIES] should reference your team's specific rules, such as 'mTLS must remain STRICT in production' or 'fault injection requires director approval.' Wire this prompt into a CI check that parses the JSON output and blocks the pipeline if recommendation is BLOCK or if critical_findings is greater than zero. Always log the full prompt and response for auditability, and route REQUIRE_MANUAL_REVIEW findings to the mesh platform on-call rotation.

IMPLEMENTATION TABLE

Prompt Variables

Inputs the prompt needs to work reliably. Validate each before sending the prompt.

PlaceholderPurposeExampleValidation Notes

[SERVICE_MESH_PLATFORM]

Identifies the target mesh technology to apply platform-specific rules

istio

Must be one of: istio, linkerd, consul, kuma, aws-app-mesh. Reject unknown values.

[CONFIG_DIFF]

The raw unified diff or structured diff of the configuration change

diff --git a/virtual-service.yaml b/virtual-service.yaml ...

Must be non-empty string. Parse check: verify diff format is valid unified diff or structured YAML/JSON patch. Reject binary content.

[CONFIG_TYPE]

The kind of mesh resource being modified to apply correct risk heuristics

DestinationRule

Must be one of: VirtualService, DestinationRule, ServiceEntry, Gateway, PeerAuthentication, RequestAuthentication, AuthorizationPolicy, EnvoyFilter, Sidecar, WasmPlugin, Telemetry. Reject unknown types.

[NAMESPACE]

The Kubernetes namespace scope of the change for blast radius calculation

production

Must be non-empty string. Validate against allowed namespace list if available. Null allowed if resource is cluster-scoped.

[AFFECTED_SERVICES]

List of service names impacted by this configuration change

["checkout-service", "payment-service"]

Must be a JSON array of strings. Each service name must match pattern ^a-z0-9?$. Minimum 1 entry. Reject empty array.

[DEPLOYMENT_STAGE]

The rollout stage to determine review strictness and approval gates

canary

Must be one of: dev, staging, canary, production. Controls whether human approval is required for destructive findings.

[PREVIOUS_CONFIG]

The prior configuration state for comparison and drift analysis

apiVersion: networking.istio.io/v1beta1 ...

Must be valid YAML matching [CONFIG_TYPE] schema. Null allowed for new resource creation. Parse check: validate against same resource kind schema as [CONFIG_DIFF].

[ORGANIZATIONAL_POLICY]

Reference to organizational mesh policy constraints for compliance checks

mesh-policy-v2.3

Must be non-empty string. Validate policy version exists in policy registry. Reject unknown policy references. Used to check mTLS enforcement, retry budgets, and timeout ceilings.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Service Mesh Configuration Change Review prompt into a CI/CD pipeline or operational review workflow with validation, retries, and human approval gates.

This prompt is designed to run as a gating step in a deployment pipeline or as part of a change advisory board (CAB) pre-review. The primary integration point is a pull request or merge request that contains service mesh configuration files—typically Istio DestinationRule, VirtualService, PeerAuthentication, or Sidecar resources. The application harness should extract the configuration diff, assemble the required context (namespace, affected services, current mesh topology snapshot), and invoke the model. The output is a structured risk report that downstream automation can parse to decide whether to block the merge, request human review, or allow the change to proceed with annotations.

For CI/CD integration, implement a pipeline step that: (1) runs git diff against the target branch to isolate mesh config changes; (2) queries the cluster's current mesh state via istioctl proxy-config or the control plane API to populate the [CURRENT_MESH_STATE] placeholder; (3) assembles the prompt with the diff, affected service list, and any organizational traffic policies as [CONSTRAINTS]; (4) calls the model with response_format set to the defined JSON schema; (5) validates the output against the schema and runs eval checks (blast radius completeness, severity consistency, false positive detection for comment-only changes); (6) on validation failure, retry once with the validation errors appended as feedback; (7) if the risk score exceeds a configurable threshold or any finding has severity CRITICAL, route to a human reviewer via your PR review system with the structured findings attached. Use a model with strong structured output support (GPT-4o, Claude 3.5 Sonnet, or equivalent) and set temperature=0 to maximize consistency across runs.

Log every invocation with the prompt version, input diff hash, model response, validation result, and final disposition (auto-approved, flagged, blocked). This audit trail is essential for post-incident review and for tuning the risk thresholds over time. Avoid wiring this prompt directly to an auto-merge action without human review for any change touching DestinationRule subsets, PeerAuthentication mTLS mode, or fault injection policies—these have the highest blast radius and the model's analysis should be treated as an advisory signal, not an authorization decision. For teams using Linkerd or Consul, adapt the [CURRENT_MESH_STATE] assembly logic to query the respective control plane APIs, but the prompt's traffic policy reasoning remains structurally applicable.

IMPLEMENTATION TABLE

Expected Output Contract

Structured JSON fields the prompt must return for each configuration change finding. Use this contract to validate model output before integrating it into a CI/CD pipeline or review dashboard.

Field or ElementType or FormatRequiredValidation Rule

review_id

string (UUID v4)

Must be a valid UUID v4 string. Generate if not provided.

change_type

enum: [DestinationRule, VirtualService, PeerAuthentication, AuthorizationPolicy, Sidecar, EnvoyFilter, ServiceEntry, Gateway]

Must match exactly one of the allowed enum values. Case-sensitive.

resource_name

string

Must match the 'metadata.name' field from the input manifest. Non-empty.

namespace

string

Must match the 'metadata.namespace' field from the input manifest. Non-empty.

severity

enum: [CRITICAL, HIGH, MEDIUM, LOW, INFO]

Must be one of the allowed severity levels. CRITICAL reserved for blast radius or mTLS downgrade findings.

finding_summary

string (max 280 chars)

Concise, actionable description of the risk or observation. Must not exceed 280 characters.

affected_services

array of strings (hostnames)

List of Kubernetes service hostnames (e.g., 'reviews.default.svc.cluster.local') in the blast radius. Array must contain at least 1 item.

evidence_section

string (YAML path)

Specific YAML path in the diff where the risk originates (e.g., 'spec.trafficPolicy.tls.mode'). Must be parseable as a valid YAML path.

remediation

string

If present, must be a non-empty string with a concrete configuration change suggestion. Null allowed.

requires_human_approval

boolean

Must be true if severity is CRITICAL or if change_type is PeerAuthentication and evidence_section indicates mTLS mode downgrade. Otherwise false.

PRACTICAL GUARDRAILS

Common Failure Modes

Service mesh configuration changes carry high blast radius risk. These are the most common failure modes when using AI to review Istio, Linkerd, or Consul config diffs, and how to prevent them in production.

01

Blast Radius Underestimation

What to watch: The model analyzes a DestinationRule or VirtualService change in isolation and misses that it affects 40 downstream services, not just the one mentioned in the PR description. Guardrail: Always provide a dependency graph or service topology as input context. Require the model to enumerate every affected service explicitly before assessing risk.

02

mTLS Policy Drift Miss

What to watch: A PeerAuthentication change from PERMISSIVE to STRICT looks like a security improvement, but the model fails to flag that three services in the mesh still lack sidecars and will be abruptly disconnected. Guardrail: Include sidecar injection status and current workload labels in the review context. Add an explicit check step: 'For any mTLS enforcement change, list all workloads in the namespace and verify sidecar presence.'

03

Retry Storm Cascading Failure

What to watch: The model approves a retry policy increase from 2 to 5 attempts without calculating that combined with a 30-second timeout, a single slow downstream will cause request pileup and cascading timeouts across the call chain. Guardrail: Require the model to compute worst-case latency for the full retry budget and compare it against upstream timeout settings. Flag any retry budget that exceeds 50% of the caller's timeout.

04

Fault Injection Leakage to Production

What to watch: A VirtualService with HTTPFaultInjection is merged to the production branch because the model treats the delay and abort fields as test-only without verifying the routing context or header matching that gates them. Guardrail: Add a mandatory validation rule: 'If HTTPFaultInjection is present, confirm the match conditions restrict it to non-production traffic. Flag any fault injection rule without explicit header or source label matching as a blocking finding.'

05

Timeout and Circuit Breaker Interaction Gap

What to watch: The model reviews a timeout reduction and a circuit breaker threshold change separately, missing that the new timeout is shorter than the circuit breaker's ejection interval, causing premature endpoint ejection under normal latency variance. Guardrail: Require cross-validation of all timeout, retry, and circuit breaker values in the same review pass. Flag any configuration where timeout < circuit_breaker_interval or retry_budget > circuit_breaker_threshold.

06

Traffic Splitting Weight Silent Drop

What to watch: A VirtualService weight change from 90/10 to 95/5 for canary traffic looks minor, but the model doesn't flag that the 5% route points to a subset that was removed in a separate DestinationRule change in the same PR, causing 5% of traffic to 503. Guardrail: Require the model to resolve all subset references in VirtualService routes against the DestinationRule definitions in the same diff. Flag any weight pointing to an undefined or removed subset as a blocking finding.

IMPLEMENTATION TABLE

Evaluation Rubric

Use these criteria to build an eval dataset and measure prompt performance before shipping the service mesh configuration change review prompt. Each row defines a pass standard, a concrete failure signal, and a test method.

CriterionPass StandardFailure SignalTest Method

Blast Radius Identification

Output lists all downstream services affected by the [DESTINATION_RULE_DIFF] with explicit namespace and service name references

Missing a service that is a known selector match for the changed subset or host

Diff against a golden set of expected affected services derived from the mesh topology graph

mTLS Enforcement Gap Detection

Output flags any change that weakens STRICT mode to PERMISSIVE or DISABLE with a HIGH severity finding

No finding when a PeerAuthentication resource is changed from STRICT to PERMISSIVE in the diff

Unit test with a curated diff containing a single mTLS downgrade change

Retry Budget Exhaustion Risk

Output identifies retry policy changes that could cause retry amplification and calculates the worst-case request multiplier

Multiplier is missing or incorrectly calculated as 1 when retries are set to 3 with a non-zero timeout

Assertion on the numeric multiplier field in the structured output against a hand-calculated value

Fault Injection Risk Flagging

Output flags any fault injection rule with a non-zero delay percentage or abort percentage and assigns a severity based on the percentage

A 100% abort fault injection rule is flagged as LOW or INFO severity

Test with a diff adding a 100% abort VirtualService rule and assert severity is CRITICAL or HIGH

Timeout and Circuit Breaker Conflict

Output detects when a request timeout exceeds a circuit breaker's outlier detection interval and flags a misconfiguration risk

No finding when a 30s timeout is configured alongside a 5s consecutiveGatewayError ejection interval

Pairwise test with a diff containing conflicting timeout and circuit breaker settings

Source Grounding and Citation

Every finding includes a reference to the specific line or resource block in the [CONFIG_DIFF] that triggered it

A finding is present in the output but the citation field is empty or points to a non-existent line

Parse the output JSON and assert that every finding object has a non-null, non-empty citation field

False Positive Rate on No-Op Changes

Output returns an empty findings list or a single INFO-level note for a diff that only changes a description annotation or a comment

A HIGH or CRITICAL severity finding is generated for a comment-only change

Run the prompt against a diff where the only change is a metadata.annotation.description update and assert findings array length is 0 or all severities are INFO

Structured Output Schema Compliance

Output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present and no extra top-level keys

Output is missing the blast_radius.services array or contains an unlisted top-level key

Validate the raw model response against the JSON Schema definition using a schema validator; test must pass with zero errors

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Add a strict JSON output schema with required fields: finding_id, severity, affected_resource, blast_radius_services, traffic_impact, mTLS_risk, rollback_complexity. Include retry logic for schema validation failures and log every review result.

code
Output a JSON array of findings. Each finding must include:
- finding_id: string
- severity: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW"
- affected_resource: string (kind/name)
- blast_radius_services: string[]
- traffic_impact: string
- mTLS_risk: string
- rollback_complexity: "SIMPLE" | "MODERATE" | "COMPLEX"

Review this diff:
[DIFF]

Watch for

  • Silent format drift when the model omits optional fields
  • Missing human approval gate for CRITICAL findings
  • False positives on label-only or annotation-only changes
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.