This prompt is designed for network and infrastructure teams who need a structured, human-readable checkpoint before modifying DNS records. It is intended to be used inside an agent or automation workflow that can query the current DNS state and the proposed change. The prompt generates a summary that captures the exact record change, TTL implications, propagation timeline, potential service disruption, and a rollback plan. This summary is then presented to a human operator for approval before the change is pushed to the DNS provider. Use this prompt when the cost of a misconfigured DNS record is high and a human-in-the-loop gate is required.
Prompt
DNS Record Change Pre-Action Summary Prompt

When to Use This Prompt
Defines the ideal operational context, required inputs, and explicit boundaries for the DNS Record Change Pre-Action Summary Prompt.
The ideal user is a Site Reliability Engineer (SRE), network administrator, or platform engineer who is building an AI-assisted change management pipeline. The prompt requires the system to provide the current DNS record state, the proposed new state, and the target zone. Without this context, the summary will be incomplete and the approval decision unsafe. The prompt is specifically designed for mutating operations—creating, updating, or deleting records. It is not a general-purpose DNS lookup tool.
Do not use this prompt for read-only DNS queries or for environments where DNS changes are fully automated with no approval step. If your system applies changes immediately upon detection of a drift, this prompt introduces an unnecessary blocking step. Similarly, avoid this prompt for low-risk internal zones where a rollback is trivial and the blast radius is contained to a single development service. The overhead of human approval must be justified by the risk of the change.
Use Case Fit
Where the DNS Record Change Pre-Action Summary Prompt works and where it introduces unacceptable risk.
Good Fit: Planned Maintenance Windows
Use when: A network engineer is preparing a scheduled DNS change with a known TTL, a rollback record, and a maintenance window. Guardrail: The prompt should be embedded in a change management pipeline that blocks execution until the summary is acknowledged by an authorized approver.
Bad Fit: Real-Time Incident Response
Avoid when: A production outage requires immediate DNS changes to redirect traffic. The summary generation and approval loop adds latency that conflicts with MTTR objectives. Guardrail: Use a separate emergency runbook prompt that logs a post-action justification instead of blocking execution.
Required Inputs: SOA and Rollback Data
Risk: The summary will be dangerously incomplete if the prompt cannot access the current SOA serial, the proposed record values, and a verified rollback record. Guardrail: The harness must validate that all required fields are populated before calling the model, and reject the prompt if rollback records are missing.
Operational Risk: Propagation Delay Miscommunication
Risk: A summary that states 'changes will propagate in 300 seconds' can be misinterpreted as a guarantee, leading to premature validation checks. Guardrail: The prompt must instruct the model to explicitly warn that propagation is dependent on external resolvers and to recommend a conservative waiting period based on the previous TTL.
Automation Fit: CI/CD Pipeline Gates
Use when: Infrastructure-as-Code (IaC) pipelines automatically generate DNS diffs and require a human-readable summary for approval gates. Guardrail: Integrate the prompt output into a merge request comment or a deployment approval ticket, and block the terraform apply step until the ticket is resolved.
Bad Fit: Bulk Registrar Migrations
Avoid when: Migrating thousands of zones between registrars. The per-record summary model is too verbose and obscures systemic risks like auth code expiration or registry TLD lock status. Guardrail: Use a batch operation summary prompt instead, and reserve this prompt for high-risk apex record changes within the migration.
Copy-Ready Prompt Template
A copy-ready system prompt that generates a structured pre-action summary for a DNS record change, ready for human review before execution.
The following prompt template is designed to be pasted into your AI agent's system instructions or a pre-action step in your DNS management workflow. It forces the model to produce a structured, human-readable summary of a planned DNS change before any record is modified. The template uses square-bracket placeholders that your application must populate with data from your DNS provider's API and internal service catalog. This ensures the summary is grounded in live infrastructure state, not the model's training data.
textYou are a DNS change pre-action reviewer. Your only job is to generate a structured summary of a planned DNS record change for human approval. Do not execute, recommend, or assume the change is safe. Do not invent missing information. ## INPUT DATA - Planned Change: [CHANGE_DESCRIPTION] - Target Record: [RECORD_NAME] (Type: [RECORD_TYPE]) - Current Value: [CURRENT_VALUE] - Proposed Value: [PROPOSED_VALUE] - TTL (seconds): [TTL] - Zone: [DNS_ZONE] - Requested By: [REQUESTER] - Change Ticket ID: [TICKET_ID] - Rollback Plan: [ROLLBACK_PLAN] - Affected Services: [AFFECTED_SERVICES] ## OUTPUT SCHEMA Generate a JSON object with the following structure. Do not include any text outside the JSON. { "summary": "A one-sentence summary of the change.", "change_details": { "record": "[RECORD_NAME]", "type": "[RECORD_TYPE]", "current_value": "[CURRENT_VALUE]", "proposed_value": "[PROPOSED_VALUE]", "ttl_seconds": [TTL], "zone": "[DNS_ZONE]" }, "propagation_analysis": { "ttl_implication": "Explain how the current TTL affects propagation delay. If TTL is high, note the worst-case propagation window.", "estimated_full_propagation": "A human-readable estimate of when the change will be fully effective." }, "risk_assessment": { "risk_level": "low | medium | high | critical", "risk_rationale": "A concise explanation of the risk level, considering affected services and the nature of the change.", "potential_disruption": "Describe any possible service disruption, including DNS resolution failures, misrouted traffic, or TLS mismatch risks." }, "pre_flight_checks": { "rollback_plan_exists": true or false, "rollback_plan_summary": "[ROLLBACK_PLAN] if provided, otherwise 'MISSING - Rollback plan is required.'", "soa_serial_increment_required": true or false, "soa_serial_note": "If the zone uses DNSSEC or strict SOA serial management, note whether the serial must be incremented.", "apex_cname_conflict": true or false, "apex_cname_note": "Flag if the change creates a CNAME at the zone apex, which violates DNS standards." }, "required_approvals": [ "List any specific roles or teams that must approve this change based on the affected services and risk level." ], "next_steps": "Instructions for the human reviewer: what to verify before approving, and what to monitor after the change is applied." } ## CONSTRAINTS - If [ROLLBACK_PLAN] is empty or missing, set risk_level to 'high' and state that a rollback plan is required before execution. - If [AFFECTED_SERVICES] is empty, state that the blast radius is unknown and set risk_level to 'high'. - Never assume the change is safe. Flag missing information as a blocker. - If the change involves deleting a record, explicitly warn about irreversibility and service removal.
To adapt this template, replace each square-bracket placeholder with live data from your DNS management system. The [CHANGE_DESCRIPTION] should be a human-authored summary of the intent. The [ROLLBACK_PLAN] must be populated from a pre-defined runbook or left empty to trigger a high-risk flag. The output schema is designed to be parsed by an approval UI, so maintain the JSON structure exactly. Before deploying, test the prompt with several scenarios: a routine A record update, a CNAME at the apex (which should be flagged), a deletion with no rollback plan, and a change with an empty affected services list. Each test should produce a correctly flagged risk level and actionable next steps.
Prompt Variables
Each placeholder must be populated from a trusted source of truth before the prompt is assembled. Variables marked with an approval routing note require a human-in-the-loop gate in the harness.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CHANGE_REQUEST_ID] | Unique identifier for the DNS change ticket or automation run | CHG-2025-07-14-0042 | Must match ^[A-Z]+-\d{4}-\d{2}-\d{2}-\d{4,6}$ pattern. Null not allowed. |
[TARGET_ZONE] | The DNS zone where the record will be modified | api.example.com. | Must be a fully qualified domain name ending with a dot. Validate against zone inventory before assembly. |
[RECORD_NAME] | The DNS record name to create, update, or delete | payments.api.example.com. | Must be a subdomain of [TARGET_ZONE] or an apex record. FQDN format required. Null allowed only for zone-level operations. |
[RECORD_TYPE] | The DNS resource record type | A | Must be one of: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR, SOA. Enum check required. |
[PROPOSED_VALUE] | The new record value or target | 203.0.113.50 | Format must match [RECORD_TYPE] spec: IP for A/AAAA, FQDN for CNAME/MX/NS, quoted string for TXT. Schema validation required. |
[CURRENT_VALUE] | The existing record value before the change, if any | 198.51.100.10 | Null allowed for new record creation. When present, format must match [RECORD_TYPE] spec. Source from authoritative DNS query, not cache. |
[TTL_SECONDS] | Time-to-live in seconds for the record | 300 | Integer between 0 and 86400. Values below 60 require explicit justification in harness. Null defaults to zone TTL. |
[ROLLBACK_VALUE] | The value to restore if the change must be reversed | 198.51.100.10 | Must match [CURRENT_VALUE] for updates. Null allowed for new record creation only. Harness must block execution when null for updates or deletes. |
Implementation Harness Notes
How to wire the DNS Record Change Pre-Action Summary Prompt into an application or agent workflow with validation, retries, logging, and human review gates.
This prompt is designed to sit directly in front of any DNS mutation API call—whether that's a cloud provider SDK, a Terraform apply, or an internal IPAM system. The harness should intercept the planned change set, populate the prompt's [CHANGE_REQUEST] and [ZONE_CONTEXT] placeholders, and block execution until the generated summary passes all validation checks and receives explicit human approval. The prompt is stateless, so the harness must supply all context: the full current zone file or API record dump, the proposed changes, and any relevant monitoring or incident context.
Validation and retry logic: Parse the model's JSON output and validate it against a strict schema before proceeding. Required fields include summary, records_to_change, ttl_implications, propagation_estimate, service_impact, rollback_records, and soa_serial_increment_verified. If the output fails schema validation, retry once with the validation error injected into the [CONSTRAINTS] field. If the second attempt also fails, escalate to a human operator with the raw model output and the validation failure details. Never proceed to the approval step with an invalid summary. Model choice: Use a model with strong JSON mode and instruction-following, such as gpt-4o or claude-3.5-sonnet, with response_format set to json_object and a low temperature (0.1–0.2) to maximize structural reliability.
Human approval gate: After validation, the harness must present the summary to an authorized reviewer through a ticketing system, chat ops channel, or custom approval UI. The approval request should include: the generated summary, a diff view of the DNS changes, the rollback plan, and a time-bound approval window (e.g., 30 minutes). If the window expires without a decision, the harness should automatically reject the change and log the timeout. Logging and audit trail: Log the full prompt, the model's raw response, the validated summary, the approval decision, the approver's identity, and the eventual execution result (success, failure, or rollback triggered). This audit trail is essential for post-incident review and compliance. Tool integration: If your DNS provider supports a dry-run or preview mode, run it before generating the summary and include the dry-run output in [ZONE_CONTEXT]. This gives the model concrete data about what will change rather than relying solely on the change request.
What to avoid: Do not use this prompt for read-only DNS queries or monitoring checks—it is specifically for pre-mutation review. Do not skip the SOA serial increment verification; if the model flags it as unverified, the harness must require manual confirmation before proceeding. Do not allow the approval gate to be bypassed via API or automation unless the change is explicitly classified as low-risk (e.g., a comment-only TXT record update) and that classification is logged. Finally, ensure the harness enforces a maximum batch size—reviewing 200 record changes in a single summary reduces human review quality. If the change set exceeds a configurable threshold (e.g., 20 records), split it into multiple summary-and-approval cycles or escalate for a broader change management process.
Expected Output Contract
The model must return a JSON object matching this schema. Validate in the harness before showing output to a human or proceeding with the DNS change.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
change_id | string | Must match the [CHANGE_REQUEST_ID] provided in the prompt context. Non-null, non-empty. | |
summary | string | Must be a single paragraph under 300 characters. Must mention the record type, name, and target value. Parse check: no markdown. | |
record_type | string | Must be one of the allowed enum values: A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, PTR. Enum validation required. | |
record_name | string | Must be a valid fully qualified domain name (FQDN) or '@' for zone apex. Regex validation: ^(@|([a-zA-Z0-9._-]+.)+[a-zA-Z]{2,})$. | |
record_value | string | Must be non-empty. For A records, validate IPv4 format. For AAAA, validate IPv6. For CNAME, validate FQDN format. Type-specific regex check. | |
ttl_current | integer | Must be a positive integer. If TTL is being changed, this is the current value. If not, it is the existing TTL. Must be >= 0. | |
ttl_proposed | integer or null | Must be a positive integer if TTL is changing. Must be null if TTL is not part of this change. If provided, must be >= 30. | |
propagation_estimate | string | Must be a human-readable duration string (e.g., 'Up to 3600 seconds (1 hour) based on current TTL'). Must reference the effective TTL. Parse check: contains a time unit. | |
service_impact | string | Must be one of: 'none', 'low', 'medium', 'high', 'critical'. Must include a one-sentence justification in the 'impact_justification' field if 'medium' or above. | |
impact_justification | string or null | Required only if service_impact is 'medium', 'high', or 'critical'. Must be a single sentence under 200 characters. If service_impact is 'none' or 'low', must be null. | |
rollback_record | object | Must contain 'action' (string: 'create' or 'update') and 'record_value' (string: the previous value). If no prior record exists, 'action' must be 'delete' and 'record_value' must be null. Schema check: both keys present. | |
soa_serial_increment_required | boolean | Must be true if the zone's SOA record needs its serial incremented after this change. Must be false otherwise. If true, the harness must verify the SOA serial was actually incremented post-change. | |
affected_systems | array of strings | Must be a non-empty array of system names or service identifiers that depend on this DNS record. Each string must be non-empty. Minimum 1 item. | |
approval_required | boolean | Must be true if service_impact is 'high' or 'critical', or if the record type is SOA or NS. Must be false otherwise. Harness must block execution if true and no human approval is recorded. |
Common Failure Modes
What breaks first when generating DNS change summaries in production and how to guard against it.
Missing Rollback Records
What to watch: The summary omits the current record values, making rollback impossible if the change causes an outage. The model focuses on the new state and forgets to capture the previous state. Guardrail: Require a [CURRENT_RECORDS] input variable and include an explicit instruction: 'You must list the current record values before describing the change. If current values are not provided, state that rollback information is missing.'
Incorrect SOA Serial Logic
What to watch: The model hallucinates a serial number increment pattern (e.g., YYYYMMDDNN) that doesn't match the organization's actual convention, or it fails to flag that the serial must be incremented. Guardrail: Provide the exact serial format as a [SERIAL_FORMAT] constraint. Add an eval check that parses the output for a serial increment statement and validates it against a regex pattern.
Ignoring TTL and Propagation Delay
What to watch: The summary states the change will be 'immediate' or fails to mention the existing TTL value and its impact on propagation delay. This creates a false sense of urgency or safety for the approver. Guardrail: Require the [CURRENT_TTL] as a mandatory input. Instruct the model to calculate the maximum propagation window (TTL seconds) and explicitly warn that negative caching may extend this.
Silent Zone Apex Conflicts
What to watch: When changing NS records or glue records, the model fails to detect that the change is at the zone apex, which has different validation rules than subdomain records (e.g., CNAME at apex is illegal). Guardrail: Add a pre-processing validation rule in the harness: if [RECORD_NAME] equals @ or the zone root, enforce a strict schema check that blocks illegal apex record types before the prompt runs.
Vague Service Impact Description
What to watch: The model uses generic language like 'may cause disruption' instead of specifying which services depend on the record (e.g., 'This A record change will redirect traffic for api.example.com'). Guardrail: Include a [DEPENDENT_SERVICES] input field. Instruct the model to map the DNS record to the specific service names provided, and if the list is empty, explicitly state that service impact is unknown.
Failure to Verify Name Server Consistency
What to watch: The summary doesn't cross-reference whether all authoritative name servers for the zone are returning the same serial number, risking a split-brain scenario during the change. Guardrail: Add a pre-action check in the harness that queries SOA records from multiple public resolvers. If serials differ, the prompt must be blocked and escalated to a human with the inconsistency evidence.
Evaluation Rubric
Run these checks against a golden dataset of known DNS changes before shipping this prompt to production. Each row validates a specific failure mode observed in pre-action summary prompts.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Change Scope Completeness | Summary includes record name, type, current value, and proposed value for every record in [CHANGE_REQUEST] | Missing record type or TTL field in output | Schema validation against [OUTPUT_SCHEMA]; count of records in summary matches count in [CHANGE_REQUEST] |
TTL and Propagation Disclosure | Summary states TTL value, estimated propagation delay, and caching implications in plain language | TTL omitted or propagation described as instantaneous | Keyword presence check for TTL seconds and propagation window; human review of propagation language |
Rollback Record Inclusion | Summary includes explicit rollback record values or states that no rollback record was provided in [ROLLBACK_PLAN] | Rollback section present but contains placeholder text or is empty | Assert rollback field is non-null and contains valid record syntax matching zone format |
SOA Serial Increment Verification | Summary confirms SOA serial will increment or explicitly notes when [CHANGE_REQUEST] does not include SOA update | SOA serial mentioned but increment direction is wrong or serial format is invalid | Parse SOA serial field; assert new serial > old serial; validate YYYYMMDDNN format if applicable |
Service Disruption Risk Flagging | Summary classifies disruption risk as none, transient, or outage with supporting reasoning | Risk classified as none when TTL is high and record type is A or CNAME | Golden dataset includes known disruptive changes; assert risk level matches expected label with reasoning trace |
Zone and View Identification | Summary names the target zone, view, and any split-horizon context from [TARGET_ZONE] | Zone name missing or default zone assumed without confirmation | Exact match of zone name from [TARGET_ZONE]; assert view field populated when [TARGET_ZONE] includes view metadata |
Approval Gate Readiness | Summary ends with a clear confirmation question and blocking condition before execution proceeds | Summary reads as a notification rather than a gate; no explicit approval language | Human review of final paragraph for confirmation language; assert output contains explicit yes/no or approve/reject framing |
Propagation Verification Instruction | Summary includes post-change verification step such as dig query or monitoring check with expected result | Post-change verification missing or generic | Keyword presence check for verification command or monitoring reference; assert expected result is specific to the record type changed |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt\nStart with the base prompt and a single DNS provider. Replace `[DNS_PROVIDER]` with a hardcoded value like `Route53` or `Cloudflare`. Use a simple JSON schema for the output and skip the SOA serial increment check initially. Run against a test zone with non-critical records.\n\n### Watch for\n- The model omitting TTL implications or propagation estimates\n- Missing rollback record generation\n- Overly verbose summaries that bury the risk signal

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.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us