Subchapter 25.68
references/vendored/ai/ai-model-lifecycle.mdMarkdown16 KBView on GitHub
Canonical Bedrock model Active/Legacy/EOL registry and the 90-day exclusion rule. Source-cloud agnostic: it is a property of Bedrock’s model catalog. Vendored into each consuming skill as and kept byte-identical by ; edit HERE, then run .
references/vendored/ai/ai-model-lifecycle.mdshared:checkshared:syncReferences:
Models on Bedrock move through three states: Active → Legacy → End-of-Life (EOL). After EOL, the model is unavailable and requests fail.
The notice period a model gets depends on when it launched:
EOL no sooner than date and a Legacy period that is either 6 months or 45 days. The actual EOL date appears on the card once Legacy begins.Do not apply the 6-month assumption to a model launched on or after 2026-09-07 — a 45-day Legacy period leaves less time than a typical migration takes to reach production.
| State | What it means | Usable? |
|---|---|---|
| Active | Provider is actively maintaining the model. Full feature access. | Yes |
| Legacy | Deprecated. Still works for existing users, but new Provisioned Throughput cannot be created, new customers cannot onboard, pricing may increase during public extended access, and the model is on a countdown to removal. | Yes, with restrictions |
| EOL | Model is removed. All inference requests fail. | No |
Legacy does not mean unavailable — it means the model still functions today but has a firm expiration date. EOL means unavailable.
New migrations must target Active models only. Do not recommend a Legacy or EOL model as the primary selection for any new migration, even if it is cheaper.
Models within 90 days of their EOL date must be excluded from all recommendation and comparison tables. A migration takes weeks or months to plan, test, and deploy. Recommending a model that will be unavailable before the migration is production-ready is harmful.
recommended_model / backup_model fields.excluded (EOL YYYY-MM-DD) in the Status column.Legacy models with >90 days until EOL may appear in comparison tables with annotation (Legacy — EOL YYYY-MM-DD), but never as recommended_model or “Best Bedrock Match” when an Active alternative exists.
On each run, compute days_to_eol = EOL date − today for every model in the Legacy/EOL table below. Then:
days_to_eol ≤ 0 → EOL. Remove from all tables.0 < days_to_eol ≤ 90 → Exclusion zone. Remove from recommendation/comparison tables. Mark excluded in pricing cache.days_to_eol > 90 and Legacy → Annotate, never recommend as primary.For models launched before 2026-09-07, the legacy lifecycle table (opens in a new tab) is authoritative. For models launched on or after that date, the model card and the runtime modelLifecycle.status field are authoritative — they will not appear in the table below. The table captures pre-policy-change models referenced elsewhere in this plugin. Recompute the Status column on each run using days_to_eol = EOL date − today.
| Model | Model ID | EOL Date | Days to EOL | Status | Active Replacement |
|---|---|---|---|---|---|
| Nova Canvas v1 | amazon.nova-canvas-v1:0 | 2026-09-30 | 9 | excluded | Stability AI (see note) |
| Nova Reel v1 | amazon.nova-reel-v1:0 / v1:1 | 2026-09-30 | 9 | excluded | — |
| Claude Sonnet 4 | anthropic.claude-sonnet-4-20250514-v1:0 | 2026-10-14 | 23 | excluded | Claude Sonnet 5 / 4.6 |
| Jamba 1.5 Large | ai21.jamba-1-5-large-v1:0 | 2026-11-26 | 66 | excluded | — |
| Jamba 1.5 Mini | ai21.jamba-1-5-mini-v1:0 | 2026-11-26 | 66 | excluded | — |
| Marengo Embed v2.7 | twelvelabs.marengo-embed-2-7-v1:0 | 2026-11-30 | 70 | excluded | Marengo Embed 3.0 |
| Claude Opus 4.1 | anthropic.claude-opus-4-1-20250805-v1:0 | 2027-01-08 | 109 | legacy | Claude Opus 4.8 / 4.6 |
Notes (as of Sep 21, 2026): Jamba 1.5 Large / Mini and Marengo Embed v2.7 are inside the 90-day exclusion zone (excluded, not legacy) — they must no longer appear in recommendation or comparison tables. Jamba 1.5 Large / Mini are also in public extended access, so provider pricing may increase. Claude Opus 4.1 is the only row still outside the exclusion zone.
Removed (past EOL as of Sep 21, 2026):
amazon.titan-image-generator-v2:0) — EOL 2026-06-30meta.llama3-2-*-instruct-v1:0) — EOL 2026-07-07meta.llama3-1-405b-instruct-v1:0) — EOL 2026-07-07anthropic.claude-3-sonnet-20240229-v1:0) — EOL 2026-07-30anthropic.claude-3-5-sonnet-20240620-v1:0) — EOL 2026-07-30anthropic.claude-3-5-sonnet-20241022-v2:0) — EOL 2026-07-30cohere.command-r-v1:0 / cohere.command-r-plus-v1:0) — EOL 2026-08-19anthropic.claude-3-haiku-20240307-v1:0) — EOL 2026-09-10 (replacement: Claude Haiku 4.5)amazon.nova-premier-v1:0) — EOL 2026-09-14 (replacement: Nova 2 Pro)amazon.nova-sonic-v1:0) — EOL 2026-09-14 (replacement: Nova 2 Sonic)AWS page lag: As of Sep 21, 2026, the legacy lifecycle page still lists rows whose published EOL date has already passed (Command R / R+ among them), even though the same page states that past-EOL rows are dropped. This file treats the EOL date as authoritative and keeps those models in Removed rather than the live table, so users already on them still see a warning. Never recommend or invoke a model listed in Removed.
Status key: excluded = ≤90 days to EOL, must not appear in any recommendation. legacy = >90 days to EOL, annotate but do not recommend as primary.
⚠️ Image generation — Active successor is Stability AI: Nova Canvas v1 is Legacy and now inside the exclusion zone (EOL 2026-09-30), so it must not appear in recommendation or comparison tables. The Active image generation models on Bedrock are Stability AI models:
| Model | Model ID | Pricing | Tier | Use case |
|---|---|---|---|---|
| Stable Image Ultra | stability.stable-image-ultra-v1:0 | ~$0.08/image | premium | Photorealistic, high-end visuals |
| Stable Diffusion 3.5 Large | stability.sd3-5-large-v1:0 | ~$0.065/image | flagship | High volume creative assets |
| Stable Image Core | stability.stable-image-core-v1:0 | ~$0.04/image | fast | Rapid, affordable generation at scale |
When image_generation capability is detected:
quality_vs_cost preference in preferences.json.recommended_model, and not as a Legacy fallback annotation.After selecting a Bedrock model for each workload:
restricted (Covered Model or gated preview — see the Status table below): do not select it as a default or as recommended_model / backup_model; name it only when the user explicitly asks for a frontier model, together with its access requirement.When building the model comparison table:
model_comparison. Do not include in recommended_model or backup_model.(Legacy — EOL YYYY-MM-DD) annotation. Never use as recommended_model if an Active alternative exists.restricted (…) in the pricing-cache Status column): never recommended_model or backup_model, never a default in a mapping guide. Include in model_comparison only when the user explicitly asks about frontier / Covered Models, annotated with the access requirement.The multi-provider quick reference table includes a Status column:
| Status value | Meaning |
|---|---|
active | No restrictions |
legacy (EOL YYYY-MM-DD) | Legacy, >90 days from EOL. Listed for reference, annotated. |
excluded (EOL YYYY-MM-DD) | ≤90 days from EOL. Kept for existing users but must not be selected for new migrations. |
restricted (<reason>) | Access-restricted: a Covered Model that needs an account-level data-retention opt-in (aws_review or provider_data_share), or a gated preview. Never recommended_model / backup_model, never a default; offer only on explicit user request, with the requirement stated. Claude Fable 5 / 5.1 and the Mythos line carry this value. |
When refreshing the cache, recompute days_to_eol and refresh the active / legacy / excluded values from the model lifecycle page (opens in a new tab). Preserve an existing restricted (…) value — that page publishes only active / legacy / EOL and does not track access gating, so it can never produce restricted; change or remove a restricted value only when the model card’s access requirement itself changed (data-retention mode, gated preview status).
restricted models never appear as a default match; they may be named only as an explicit opt-in alternative with the access requirement stated.On every design run: The agent MUST recompute days_to_eol = EOL date − today for every row in the table above and apply the four rules in “Applying the rules” before making any model recommendation. The static Days to EOL column in this file is a snapshot only — do not use it directly without recomputing.
Newer models are not covered by the table. A model launched on or after 2026-09-07 will never appear in the Legacy/EOL table above, and its absence is not evidence that it is Active. When a candidate is not in the table, verify it by calling GetFoundationModel (or ListFoundationModels) and reading modelLifecycle.status: LEGACY and EOL are never valid targets for a new migration. If the model is Legacy, read its model card for the actual EOL date and whether the Legacy period is 6 months or 45 days. If neither the API nor the card is reachable, treat the model’s lifecycle as unverified and say so in the output rather than inferring active from a Status column in a pricing cache.
Periodic table refresh: When the table itself needs updating (new models added, EOL dates changed by AWS, or past-EOL rows to remove), update this file and pricing-cache.md together. Edit the canonical skills/shared/ai/ai-model-lifecycle.md, then copy it over every vendored copy in the same change so they stay byte-identical.
Past-EOL rows: Once days_to_eol ≤ 0, move the model out of the live table into Removed, and grep this plugin’s skill trees for the model ID to catch any remaining reference to it as a target. Keep the Removed entry long enough that users already on the model still get a warning.