This prompt is designed for technical program managers, API governance teams, and release managers who need to generate consistent, validated timeline representations of end-of-life phases for APIs, SDK methods, or features. It produces text-based timelines that can be embedded in documentation, status pages, or fed into visualization tools. Use this prompt when you have confirmed deprecation dates and need a structured output that enforces chronological consistency across announcement, warning, brownout, and shutdown phases.
Prompt
End-of-Life Timeline Visualization Prompt

When to Use This Prompt
Defines the ideal user, required context, and boundaries for the End-of-Life Timeline Visualization Prompt.
The ideal user has already completed the decision-making process for deprecation dates and is now focused on the operational task of communicating those dates in a machine-readable and human-auditable format. The prompt requires a complete set of phase dates as input, including the announcement date, warning date, brownout start and end dates, and the final shutdown date. It will validate that these dates are in strict chronological order and that no phase overlaps or precedes a prior phase. The output is a structured timeline object, not a narrative deprecation notice, making it suitable for ingestion by documentation generators, status page APIs, or internal dashboards.
Do not use this prompt to decide deprecation dates or to draft the surrounding prose of a deprecation notice. It assumes dates are already decided and focuses solely on timeline generation and validation. If you need to draft a customer-facing deprecation notice with migration paths and impact assessments, use the 'API Deprecation Notice Drafting Prompt Template' instead. If you need to classify the severity of a deprecation before building a timeline, use the 'Deprecation Risk Classification Prompt' first. This prompt is a single-purpose tool for turning a set of decided dates into a validated, structured timeline.
Use Case Fit
Where the End-of-Life Timeline Visualization Prompt works well and where it introduces risk. Use these cards to decide if this prompt fits your deprecation communication workflow before wiring it into a production harness.
Good Fit: Structured Phase Data Exists
Use when: you have confirmed announcement, warning, brownout, and shutdown dates in a structured source (spreadsheet, API spec, project plan). The prompt transforms known dates into a visual timeline. Avoid when: dates are still under negotiation or scattered across email threads. The model will invent plausible dates rather than flag missing data.
Bad Fit: Consumer-Facing Without Human Review
Risk: a generated ASCII timeline or Mermaid diagram may contain a date error that causes a customer to miss a migration window. Guardrail: never publish a generated timeline directly to a status page, email, or developer portal. Require human review of every date, phase label, and contact link against the source of truth before publication.
Required Inputs: Canonical Date Source
Use when: you can provide a structured input block with phase name, start date, end date, and enforcement behavior for each deprecation stage. Avoid when: the only input is a free-text deprecation announcement. The prompt needs explicit date boundaries to produce a valid timeline; prose-only input leads to hallucinated phases and inconsistent durations.
Operational Risk: Date Inconsistency Across Phases
What to watch: the model may produce a timeline where the brownout phase starts before the warning phase ends, or the shutdown date precedes the announcement. Guardrail: add a post-generation validation step that checks phase ordering (announcement < warning < brownout < shutdown) and flags any date inversion for human correction before the output is used downstream.
Operational Risk: Visualization Format Drift
What to watch: the model may switch from the requested ASCII timeline to a Mermaid diagram, a markdown table, or a prose paragraph without warning. Guardrail: specify the exact output format in the prompt constraints (e.g., 'ASCII timeline only, no Mermaid, no tables') and validate the output with a format checker before accepting it. Reject and retry on format mismatch.
Boundary: Timezone and Locale Ambiguity
What to watch: dates without timezone context (e.g., '2026-03-15') can be interpreted differently across regions, causing off-by-one errors in enforcement. Guardrail: require all input dates to include UTC offsets or IANA timezone identifiers. If the source data lacks timezone info, flag the ambiguity in the generated output and escalate for clarification before publication.
Copy-Ready Prompt Template
A copy-ready prompt for generating a validated, text-based end-of-life timeline from structured phase data.
This prompt template is designed for technical program managers and API governance teams who need to generate a consistent, visual timeline of a deprecation lifecycle. It accepts structured inputs for each phase—announcement, warning, brownout, and shutdown—and produces a text-based representation, such as an ASCII timeline, a markdown Gantt chart, or a structured JSON object for use in a custom visualization tool. The prompt is built to be pasted directly into an AI system, with square-bracket placeholders that you must replace with your confirmed dates, surface names, and output format preference before execution.
codeYou are a technical documentation assistant. Your task is to generate a text-based timeline visualization for the end-of-life (EOL) process of a product surface. # INPUT DATA - Surface Name: [SURFACE_NAME] - Announcement Date: [ANNOUNCEMENT_DATE] - Warning Date: [WARNING_DATE] - Brownout Start Date: [BROWNOUT_START_DATE] - Shutdown Date: [SHUTDOWN_DATE] - Replacement Surface: [REPLACEMENT_SURFACE] - Additional Context: [ADDITIONAL_CONTEXT] # OUTPUT FORMAT Generate the timeline in the following format: [OUTPUT_FORMAT] Options: "ASCII", "Markdown Gantt", "Structured JSON" # CONSTRAINTS - All dates must be in YYYY-MM-DD format. - The timeline must visually represent the progression from announcement to shutdown. - If the output format is "Structured JSON", use the following schema: { "surface_name": "string", "phases": [ {"name": "string", "start_date": "YYYY-MM-DD", "end_date": "YYYY-MM-DD"} ] } - Do not invent dates or phases not provided in the input. - If a date is missing or invalid, stop and request clarification instead of guessing. # VALIDATION Before generating the final output, perform these checks internally: 1. Confirm all dates are chronologically sequential (Announcement <= Warning <= Brownout <= Shutdown). 2. Confirm all required fields are present. 3. If any check fails, output a clear error message explaining the issue.
To adapt this template, replace the placeholders with your specific data. For [OUTPUT_FORMAT], choose the option that best fits your downstream system. If you select "Structured JSON", you can pipe the output directly into a dashboard or monitoring tool. The internal validation step is critical for high-risk communications; it prevents the AI from generating a timeline with logically impossible dates, which could cause significant confusion for your users. For production use, always have a human review the final output before publication, especially for the shutdown date and replacement surface details.
Prompt Variables
Every placeholder the End-of-Life Timeline Visualization Prompt expects, with its purpose, a concrete example value, and actionable validation notes for wiring into an application harness.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[PHASE_DEFINITIONS] | Ordered list of deprecation phases with name, start date, end date, and description. | Announcement: 2025-01-15 to 2025-03-15; Brownout: 2025-03-16 to 2025-06-15; Shutdown: 2025-06-16 | Parse check: array of objects with name, start_date, end_date, description fields. Date consistency: each phase start_date must be on or after previous phase end_date. No gaps allowed. |
[OUTPUT_FORMAT] | Target format for the timeline visualization. | mermaid | Enum check: must be one of 'ascii', 'mermaid', 'json_timeline', 'markdown_gantt'. Reject unknown values with retry prompt. |
[FEATURE_NAME] | Name of the API, SDK method, or feature being deprecated. | PaymentCaptureV1 | Non-empty string, max 100 chars. Must match the canonical name from the API registry or deprecation notice. Cross-reference with [DEPRECATION_NOTICE_ID] if provided. |
[REPLACEMENT_PATH] | Migration target: replacement endpoint, method, or feature name. | PaymentCaptureV2 | Non-empty string or null if no replacement exists. If null, output must include explicit 'no migration path' language. Validate against product catalog if available. |
[DEPRECATION_NOTICE_ID] | Reference to the authoritative deprecation notice for date and detail grounding. | DEP-2025-0042 | If provided, all dates in output must match the notice exactly. Parse check: alphanumeric with hyphens. If null, dates come solely from [PHASE_DEFINITIONS] and human review is required. |
[CONSUMER_IMPACT_LEVEL] | Severity classification for affected consumers. | high | Enum check: must be 'low', 'medium', 'high', or 'critical'. Controls urgency language and visual emphasis in the output. Default to 'medium' if not supplied. |
[INCLUDE_MILESTONES] | Whether to render key milestones within each phase. | Boolean parse check. If true, output must include at least one milestone per phase from [PHASE_DEFINITIONS]. If false, render phases without internal markers. |
Implementation Harness Notes
How to wire the End-of-Life Timeline Visualization Prompt into an application, validation pipeline, or documentation workflow.
This prompt is designed to be called programmatically from a release management or API governance system, not used as a one-off chat interaction. The primary integration point is a scheduled job or event-driven trigger that fires when a deprecation decision is approved. The application layer should supply all required inputs—announcement date, warning date, brownout date, shutdown date, and phase descriptions—from a structured deprecation policy record or configuration file. Never rely on the model to invent or infer dates; every date must originate from an authoritative source of truth such as a product roadmap database or an approved deprecation ticket.
Validation pipeline: After the model returns its output, run a deterministic post-processing validator before the timeline reaches any downstream system. The validator must check that (a) all four required phases appear in the output, (b) dates are in strictly increasing chronological order (announcement < warning < brownout < shutdown), (c) each date matches the input dates exactly with no hallucinated offsets, and (d) the output format conforms to the requested schema (ASCII, markdown Gantt, or structured JSON). If validation fails, retry once with an explicit error message injected into the prompt context describing which check failed. If the retry also fails, log the failure, quarantine the output, and escalate to a human reviewer through your deprecation communication approval queue.
Model choice and tool use: This prompt works well with mid-tier models (GPT-4o, Claude 3.5 Sonnet) because the task requires date arithmetic and format consistency rather than deep reasoning. If you are generating structured JSON for a visualization library, set response_format to json_schema (OpenAI) or use tool calling with a strict schema (Anthropic) to enforce field-level type constraints. For ASCII timelines, accept plain text output and validate with regex patterns that confirm the presence of date markers and phase labels. Logging and audit: Every generation should be logged with the input dates, the raw model output, the validation result, and the final approved timeline. This audit trail is essential for deprecation communications, which may be reviewed by legal, compliance, or customer escalation teams months after publication. Store the prompt version, model identifier, and timestamp alongside each generation to support retrospective analysis if a timeline error reaches customers.
Human review gate: Even with perfect validation, all deprecation timelines should pass through a human approval step before publication. The harness should render the generated timeline in a review UI alongside the source dates and any validation warnings. The reviewer confirms that the visual representation matches the intended communication cadence and that no phase is misrepresented. Only after explicit approval should the timeline be published to developer portals, status pages, or email templates. Avoid fully automated publication for any deprecation that affects production APIs or contracted SLAs.
Expected Output Contract
Defines the required fields, types, and validation rules for the structured timeline output. Use this contract to build a post-processing validator before the output reaches a visualization tool or dashboard.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
timeline_id | string (slug) | Must match pattern ^[a-z0-9-]+$ and be unique per deprecation event. | |
phases | array of objects | Array length must be >= 2. Each object must pass the phase schema check. | |
phases[].phase_name | string (enum) | Must be one of: announcement, warning, brownout, shutdown. No custom values allowed. | |
phases[].start_date | string (ISO 8601 date) | Must be a valid YYYY-MM-DD. start_date must be <= end_date within the same phase. | |
phases[].end_date | string (ISO 8601 date) or null | Must be a valid YYYY-MM-DD or null for the final shutdown phase. Null only allowed for shutdown. | |
phases[].description | string | Length must be between 10 and 500 characters. Must not contain unresolved placeholders. | |
generated_at | string (ISO 8601 datetime) | Must be a valid UTC datetime. Parse check: new Date() must not throw. | |
source_document_hash | string (SHA-256) | If provided, must match ^[a-f0-9]{64}$. Used to verify grounding against the input notice. |
Common Failure Modes
What breaks first when generating end-of-life timeline visualizations and how to guard against it.
Date Inconsistency Across Phases
What to watch: The model produces overlapping or contradictory dates (e.g., brownout starts before warning ends, shutdown precedes announcement). This happens when the prompt lacks explicit phase-ordering constraints. Guardrail: Include a strict chronological ordering rule in the prompt: 'Announcement date < Warning date < Brownout start < Brownout end < Shutdown date. Validate that each phase completes before the next begins.' Add a post-generation date-sorting check.
Missing Required Phase
What to watch: The model skips a mandatory phase (e.g., no brownout period, no warning window) because the input data omitted it or the prompt didn't enforce completeness. Guardrail: Define a required phase checklist in the prompt: 'The timeline MUST include Announcement, Warning, Brownout, and Shutdown phases. If any phase data is missing, mark it as [NOT PROVIDED] rather than omitting it.' Validate output against the checklist before rendering.
Ambiguous or Relative Date Expressions
What to watch: The model outputs relative dates like 'Q3 2025' or 'in 90 days' instead of absolute ISO dates, breaking downstream visualization tools that require machine-readable timestamps. Guardrail: Constrain the output schema to require ISO 8601 dates (YYYY-MM-DD) for every milestone. Add a regex validator that rejects any date field not matching the ISO format. If the input contains relative dates, prompt the model to resolve them to absolute dates using a reference date.
Visualization Format Drift
What to watch: The model produces a prose paragraph instead of the requested ASCII timeline, Mermaid diagram, or structured JSON. Format drift is common when the prompt mixes narrative instructions with visualization commands. Guardrail: Separate the visualization format instruction into its own dedicated section with a strict example. Use a format validator that checks for the expected opening delimiter (e.g., 'mermaid', 'ascii', or valid JSON structure). Retry with a format-only correction prompt if validation fails.
Hallucinated Milestones or Dates
What to watch: The model invents dates, phase names, or migration deadlines not present in the input data, especially when the input is sparse or the model tries to be 'helpful' by filling gaps. Guardrail: Add an explicit grounding instruction: 'Use ONLY dates and phase names provided in [INPUT_DATA]. Do not invent, estimate, or extrapolate any dates. If a date is missing, output null for that field.' Pair with a factuality eval that diffs output dates against input dates.
Timezone and Locale Confusion
What to watch: The model assumes UTC when the input uses a regional timezone, or outputs dates that shift by a day due to timezone conversion errors. This breaks brownout windows and shutdown deadlines for global consumers. Guardrail: Require an explicit timezone field in the input and output schemas. Prompt: 'All dates are in [TIMEZONE]. Preserve this timezone in all output dates. Do not convert.' Add a timezone consistency check that verifies all output dates share the same timezone offset.
Evaluation Rubric
Score each criterion on a pass/fail basis before shipping the timeline visualization prompt. Run these checks against a representative sample of deprecation scenarios to catch date inconsistency, phase omission, and format drift.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Phase Completeness | Output includes all four required phases: Announcement, Warning, Brownout, Shutdown | One or more phases missing from the timeline | Parse output for phase labels; assert count equals 4 |
Date Consistency | All phase dates are in chronological order with no overlapping or retrograde dates | Brownout date precedes Warning date, or Shutdown date precedes Brownout date | Extract all date fields; assert date[n] < date[n+1] for all n |
Date Format Uniformity | All dates use the same format specified in [DATE_FORMAT] placeholder | Mixed date formats appear in output (e.g., ISO 8601 and US-style in same timeline) | Regex match all date strings against the expected format pattern |
Duration Calculation | Duration between each phase is explicitly stated and mathematically correct | Duration field shows negative days or incorrect month count between phases | Compute difference between adjacent dates; assert matches stated duration value |
ASCII or Markdown Validity | Timeline renders correctly as ASCII art or valid markdown Gantt syntax per [OUTPUT_FORMAT] | Broken alignment, missing characters, or invalid markdown table syntax | Render output in target viewer; assert no rendering errors or misaligned columns |
Replacement Reference | Each deprecated item includes a reference to its replacement or migration path | Deprecated endpoint listed with no replacement field or null value when replacement exists | Assert replacement field is non-null and matches a valid entry in [REPLACEMENT_MAP] |
Contact Information | Output includes escalation contact or support link from [CONTACT_INFO] placeholder | Contact field is empty, generic placeholder, or missing entirely | Assert contact field is non-empty and contains either email or URL pattern |
Phase Description Accuracy | Each phase description matches the standard definition: Announcement (notice only), Warning (active deprecation header), Brownout (scheduled rejections), Shutdown (hard removal) | Phase description contradicts standard definition or describes wrong enforcement behavior | Semantic check: assert each phase description contains expected keywords for that phase |
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
Start with the base prompt and a single product or API. Use a simple markdown table or ASCII timeline as the output target. Skip strict date validation and focus on getting the phase structure right.
Add this constraint to the base prompt:
code[OUTPUT_FORMAT]: ASCII timeline with phase markers [VALIDATION]: None, manual review only
Watch for
- Phase ordering errors (shutdown before brownout)
- Missing phases in the timeline
- Dates that don't parse consistently
- Overly verbose descriptions instead of structured output

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