Skip to content

docs(aws-startup-advisor): refresh Bedrock model lifecycle for Oct 26 2026 - #500

Merged
leon1418 merged 8 commits into
aws:mainfrom
herosjourney:docs/bedrock-lifecycle-refresh-2026-10-26
Oct 27, 2026
Merged

leon1418 merged 8 commits into
aws:mainfrom
herosjourney:docs/bedrock-lifecycle-refresh-2026-10-26

Conversation

@herosjourney

@herosjourney herosjourney commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

changed
has Seoul scope: True
has Haiku follow-up: True
ations read a static Active/Legacy/EOL registry (skills/shared/ai/ai-model-lifecycle.md) and a matching Status column in bedrock-pricing-cache.md. Those files still reflected an October 5, 2026 snapshot. As of October 26, that content is wrong in ways that affect recommendations: Claude Sonnet 4 is past EOL and still listed as usable-with-exclusion, Claude Opus 4.1 has entered the 90-day exclusion zone but is still marked legacy, and several models the plugin still labels active (Llama 4 Maverick/Scout, Llama 3.3 70B, DeepSeek-R1/V3.1, Claude Sonnet 4.5) are Legacy on the AWS legacy lifecycle page. The registry's freshness contract (Last updated 2026-09-21, 45-day window) still had headroom, so model-staleness.py --strict would not have forced this refresh on its own.

Fix

This PR refreshes the canonical lifecycle registry against the AWS legacy lifecycle page as of 2026-10-26 and keeps the pricing-cache Status column and EOL replacement notes in step.

Claude Sonnet 4 moves from the live table into Removed (EOL 2026-10-14). Claude Opus 4.1, Jamba 1.5 Large/Mini, and Marengo Embed v2.7 are excluded (inside the 90-day zone); Marengo Embed 3.0 remains the Active replacement outside Seoul (ap-northeast-2). New legacy rows cover models this plugin still references that AWS has moved to Legacy with more than 90 days remaining: Llama 4 Maverick/Scout, Llama 3.3 70B, DeepSeek-R1/V3.1 (EOL 2027-03-30), and Claude Sonnet 4.5 (EOL 2027-04-08), each with an Active replacement. Last updated is bumped to 2026-10-26.

The same Status changes land in bedrock-pricing-cache.md, including EOL notes that previously told agents to replace Llama 3.x with Llama 4 (now Legacy) — those notes now point at Nova / Claude Active defaults. Every vendored twin is copied in the same change so gcp-to-aws, azure-to-aws, and agent-advisor stay byte-identical to canonical. The agent-advisor drift self-proof comment is updated for Opus 4.1's new excluded status.

What agents should do does not change in structure: recompute days_to_eol on each run, never recommend excluded/Removed models, and prefer Active replacements over Legacy when both appear. Mapping-guide "Best Bedrock Match" tables that still name Llama 4 for cost comparisons are not rewritten here; the registry notes that new migrations must prefer the Active Replacement column.

Scope

Skills: shared AI references consumed by gcp-to-aws, azure-to-aws, agent-advisor, and any skill that reads the vendored lifecycle/pricing files. No skill behavior scripts or phase Markdown beyond the registry and pricing Status.

Files: 8 paths modified, none added or deleted — skills/shared/ai/ai-model-lifecycle.md, skills/shared/ai/bedrock-pricing-cache.md, the gcp/azure vendored copies of both, the agent-advisor vendored pricing cache, and skills/agent-advisor/scripts/test_scoring.py (comment-only alignment with Opus 4.1's excluded status).

Base: main. No open-PR overlap beyond the usual shared AI refs; this does not touch the Bedrock migration assessment extraction in PR 483.

Validation

  • mise -C plugins/aws-startup-advisor run ci — pass (model-staleness, model-id-lint, vendored-parity, skill-refs, artifacts, markdownlint, consent-disclosure, startup-model-pricing, plugin pytest 513 passed, heroku application-source node tests 13+44 passed).
  • python3 plugins/aws-startup-advisor/tools/model-staleness.py --strict — pass (0d old, window 45d; vendored copies in sync).
  • python3 plugins/aws-startup-advisor/scripts/model-id-lint.py — pass (19 retired IDs enforced from the registry, including Sonnet 4 now in Removed and Opus 4.1 now excluded).
  • Follow-up 40a9edcc (Haiku 5.5 100K tiers + Marengo Seoul scope): model-staleness.py --strict, model-id-lint.py, lint:vendored-parity, lint:md (0 errors), focused scoring tests 3 passed.
  • Focused agent-advisor drift tests: pytest plugins/aws-startup-advisor/skills/agent-advisor/scripts/test_scoring.py -k 'legacy_or_excluded or known_legacy or known_removed or no_pool' — 3 passed.
  • Root python3 tools/validate.py — all validations passed.
  • Full 8-path diff reviewed: Status/EOL/Last-updated/vendored sync and the scoring self-proof comment only; no unrelated edits.

Limitations

This refresh does not rewrite provider mapping guides (ai-gemini-to-bedrock.md, ai-openai-to-bedrock.md, and siblings) that still list Llama 4 or DeepSeek-R1 under "Best Bedrock Match." Agents that follow the lifecycle selection rules will prefer Active replacements; agents that copy those tables literally without the registry check can still surface Legacy models. A follow-up should retarget those Best Bedrock Match rows.

Rates in the pricing cache were mostly Status / EOL wording in the first commits; a follow-up on this PR adds Haiku 5.5 ≤100K / >100K (Long Context) Global+Geo tiers including cache, per the Anthropic/Bedrock 100K prompt boundary. Remote smoke was not run (docs-only registry refresh).

For reviewers

Status transitions (as of 2026-10-26)

Model Was Now EOL
Claude Sonnet 4 excluded (in live table) Removed 2026-10-14
Claude Opus 4.1 legacy excluded 2027-01-08
Jamba 1.5 Large / Mini excluded excluded (days recomputed) 2026-11-26
Marengo Embed v2.7 excluded excluded (days recomputed; Marengo 3.0 stays Active replacement outside ap-northeast-2) 2026-11-30
Llama 4 Maverick / Scout active (pricing) legacy 2027-03-30
Llama 3.3 70B active (pricing) legacy 2027-03-30
DeepSeek-R1 / V3.1 active (pricing) legacy 2027-03-30
Claude Sonnet 4.5 active (pricing) legacy 2027-04-08

Authority

Model lifecycle (Legacy) as fetched 2026-10-26. Follow-up commit adds Haiku 5.5 ≤100K/>100K Global+Geo tiers (incl. cache) and restores Marengo 3.0 as the non-Seoul Active replacement for v2.7.

Type of Change

Select at least one.

  • New skill
  • Bug fix
  • Documentation update
  • CI/CD change
  • Other

Startup Advisor review checklist

By submitting this PR, I confirm that:

  • I have reviewed the full diff and understand all changes I am submitting.
  • I have tested my changes and confirmed they work as intended.
  • I have run mise -C plugins/aws-startup-advisor run ci and all checks pass.
  • I have disclosed any known issues, limitations, or untested scenarios.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Addendum: verified model facts from PR #483, plus a capability-constraints table

What this changes for users. When a migration skill (GCP → AWS, Azure → AWS, agent-advisor) estimates or designs an AI workload, it now has one place to check whether a candidate Bedrock model can actually do what the workload needs — forced tool choice, image or audio input, image output, structured outputs, context window — before it ever compares prices or tiers. Several current models (Claude Sonnet 5.5 and Opus 5.5) do not accept a forced tool_choice, which was easy to miss until a request failed in production. The shared reference files also pick up a handful of verified facts users have asked about: Claude Sonnet 5.5's Bedrock IDs and regional prefixes, OpenAI's GPT-4o retirement dates, the Stable Image Core price source, and Titan Text Embeddings v2's lifecycle status.

What this does not change. No model recommendation or default moves in this PR. Which model a skill picks is still driven by the Clarify answers (priority, latency, complexity) and each skill's design rules; the shared files carry facts only. Mapping-target changes from PR #483 (Sonnet 5 → Sonnet 5.5, GPT-4o → GPT-6 Luna) are deferred to a follow-up mapping-guide PR.

Technical detail

Files touched (canonical under skills/shared/ai/, twins regenerated with tools/sync-vendored.py):

  • ai-model-lifecycle.md — new ## Capability Constraints (verified October 26, 2026) table for Claude Sonnet 5.5 / Sonnet 5 / Haiku 4.5 / Haiku 5.5 / Opus 5.5, Nova Pro / Lite / Micro, GPT-6 Luna: lifecycle (launch and EOL-no-sooner-than dates), context window, max output, forced tool_choice, image/audio input, image output, structured outputs, each cited to the Bedrock model card read 2026-10-26; cells the card does not state are _unverified_. New ### Rule 0: Capability constraints first (one neutral sentence, no model named).
  • bedrock-pricing-cache.md — Stability AI section scoped to US East (N. Virginia) with a Stable Image Core $0.04/image source note (and the Gemini 3.1 Flash Image $30/1M image-token comparison price); Sonnet 5.5 Geo $2.20/$11 added to the Geo-multiplier note; GPT-6 Luna status cites the model card for its rates and the 272K short/long-context boundary; Titan Text Embeddings v2 status cites the model card (Active) and its absence from the pre-2026-09-07 lifecycle page.
  • ai-anthropic-to-bedrock.md — Sonnet 5 rate cells and footnote updated from the stale "intro pricing through Aug 31" note to the current $2/$10 Global and $2.20/$11 Geo standard price; new Sonnet 5.5 fact paragraph (IDs, us./eu./au./global. profiles, lifecycle, 1M/128K, rates, tool_choice auto/none only). Mapping target column unchanged (anthropic.claude-sonnet-5).
  • ai-openai-to-bedrock.md — GPT-4o row notes OpenAI's 2026-10-14 deprecation, 2027-01-14 shutdown, and named successor gpt-6-luna; cross-family target unchanged.

Verification: model-staleness.py --strict, model-id-lint.py, lint:vendored-parity, lint:md, full mise run ci (513 + 279 tests), repo tools/validate.py, mise run validate, and gitleaks on the new commits all pass. Dates use 2026-10-26 (run date).

Left for the follow-up mapping-guide PR: all "Recommend defaults", "Best Bedrock Match", tiered-strategy, and cross-family-target changes from #483; the gemini-3.1-flash-image guide row (needs the gcp-to-aws design-refs copy updated in the same change); schema-design-aws-ai.md example; sdk-capability-map.json image-output detection patterns.

@herosjourney
herosjourney requested review from a team as code owners October 26, 2026 18:30

@leon1418 leon1418 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[🤖 AI review 🤖]

Two P2 corrections are needed at 4285f2143c72a654a9642481e8061708ee25e4ab:

  • Add Haiku 5.5's 100K pricing boundary and long-context rates to the canonical cache and its three copies. Verify both profiles at 100,000 and 100,001 prompt tokens, including cache operations.
  • Keep Marengo 3.0's Seoul retirement separate from its Active status in other supported regions. Restore the regional replacement guidance in the canonical registry and its two copies.

Local validation passed: 513 plugin tests, 562 agent-advisor tests, 406 LLM consumer tests, lifecycle/model-ID/pricing/reference/parity checks, and lint for all seven changed Markdown files. The two findings are supported by current AWS documentation and focused source/arithmetic probes; no deployed inference run was performed.

@leon1418 leon1418 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[🤖 AI review 🤖] Follow-up review completed at 40a9edcc5843b0092a93c7e487e6535ca5a3df83. Both reported issues are verified fixed, and the combined review found no remaining substantive issues.

Local validation: 513 plugin tests, 562 agent-advisor tests, 406 LLM consumer tests, the focused pricing/lifecycle probes, relevant linters, and all seven changed Markdown files passed. AWS source and local contract checks support the fixes; no deployed inference run was performed.

Logan Kleier and others added 3 commits October 26, 2026 18:30
… 2026

Recompute exclusion-zone statuses against the AWS legacy lifecycle page, move past-EOL Claude Sonnet 4 to Removed, and mark newly Legacy models the plugin still references (Llama 4, Llama 3.3, DeepSeek, Sonnet 4.5) so agents stop treating them as Active defaults.

Co-authored-by: Cursor <cursoragent@cursor.com>
…pricing cache

Price Claude Sonnet 5.5 and Haiku 5.5 (Global/Geo) from the Bedrock Anthropic tables without changing Haiku defaults, and surface DeepSeek V3.2 in the quick-reference Status table so US migrations stop reading only Legacy V3.1.

Co-authored-by: Cursor <cursoragent@cursor.com>
…egion scope

Address PR 500 review: publish Haiku 5.5 ≤100K/>100K rates (incl. cache) for Global and US Geo so long prompts are not underpriced, and restore Marengo Embed 3.0 as the Active v2.7 replacement outside Seoul.

Co-authored-by: Cursor <cursoragent@cursor.com>
@herosjourney
herosjourney force-pushed the docs/bedrock-lifecycle-refresh-2026-10-26 branch from 40a9edc to 91336aa Compare October 27, 2026 01:31

@leon1418 leon1418 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[🤖 AI review 🤖] Reviewed 91336aa237fb82f8f2c8a249ed21c966c18ac5b4 against base 4a1eb728573bfbad03b3f2a1da642a0654808625.

The eight PR files retain the previously verified pricing and lifecycle corrections. Review of the new base and affected consumers found no remaining substantive issues.

Local validation passed: 513 plugin tests, 562 agent-advisor tests, 406 LLM consumer tests, 279 telemetry tests, focused pricing/lifecycle probes, relevant linters, and all seven changed Markdown files. These are source and local-test results; no deployed inference run was performed.

Logan Kleier added 4 commits October 26, 2026 21:42
…o model lifecycle registry

Add a "Capability Constraints" fact table (lifecycle, context window, max
output, forced tool_choice, image/audio input, image output, structured
outputs) for Claude Sonnet 5.5 / Sonnet 5 / Haiku 4.5 / Haiku 5.5 / Opus 5.5,
Nova Pro / Lite / Micro, and GPT-6 Luna, each cell read from the Bedrock model
card on 2026-10-26 and marked _unverified_ where the card is silent. Add a
neutral Rule 0 to Selection Rules: check capability constraints before
tier/priority selection (no model named). Regenerate the gcp-to-aws and
azure-to-aws vendored twins with tools/sync-vendored.py.
…Sonnet 5.5 Geo facts in pricing cache

Facts harvested from PR aws#483 and re-verified 2026-10-26:
- Stability AI heading scoped to US East (N. Virginia); Stable Image Core
  $0.04/image source note (AWS Stability price table, verified 2026-10-25;
  model card Active 2026-10-26) with the Gemini 3.1 Flash Image $30/1M
  image-token comparison price (Gemini API pricing).
- Sonnet 5.5 Geo $2.20/$11.00 added to the Geo-multiplier note (listed
  directly on the pricing table, not derived).
- GPT-6 Luna quick-ref Status cites the model card for the rates and the
  272K short/long-context boundary.
- Titan Text Embeddings v2 Status cites the model card (Active) and its
  absence from the pre-2026-09-07 lifecycle page; Tier cell untouched.
Twins regenerated with tools/sync-vendored.py.
…OpenAI, and Gemini mapping guides

Facts only; mapping targets and "Best Bedrock Match" cells are unchanged.
- Anthropic guide: Sonnet 5 rate cells and the dagger footnote now state the
  current $2/$10 Global and $2.20/$11 Geo price (launch rate became standard
  Sep 1, 2026; $3/$15 increase cancelled) instead of the stale intro-pricing
  note; new fact sentence for Claude Sonnet 5.5 (IDs and us./eu./au./global.
  profiles, Active with launch/EOL-no-sooner-than dates, 1M/128K, rates,
  tool_choice auto/none only) citing the model card, verified 2026-10-26.
- OpenAI guide: GPT-4o row notes OpenAI's 2026-10-14 deprecation, 2027-01-14
  shutdown, and named successor gpt-6-luna (OpenAI deprecations page) plus
  Luna's Active Bedrock ID; cross-family target cell left as-is.
- Gemini guide: new gemini-3.1-flash-image (Nano Banana 2) price row ($30/1M
  image tokens; $0.0336/1K image standard, $0.0168 batch) next to the
  existing imagen-* row, mirroring its Stable Image Core target cell;
  token-to-image equivalence marked _unverified_.
Twins regenerated with tools/sync-vendored.py.
…hared Gemini guide

tests/test_gemini_guide_body_parity.py requires the shared Gemini guide body to be byte-identical to skills/gcp-to-aws/references/design-refs/ai-gemini-to-bedrock.md, which is outside this PR's edit scope. The Gemini 3.1 Flash Image price fact ($30/1M image tokens) stays recorded in bedrock-pricing-cache.md § Stability AI; the Gemini-guide row moves to the mapping-guide follow-up. Twins regenerated with tools/sync-vendored.py.
@herosjourney

Copy link
Copy Markdown
Contributor Author

@leon1418 four new commits at head 0820cda5, ready for another look.

This absorbs the verified model facts that were previously sitting in PR #483's shared/ai edits, so #483 can revert its shared-file changes and stay an extraction-only PR (per @vagmur-aws's scope comment there). Facts only: a capability-constraints table in the lifecycle registry (forced tool_choice, image/audio input, image output, structured outputs, context window, each cited to the model card), Stable Image Core / Titan Embed v2 / GPT-6 Luna / Sonnet 5.5 citations in the pricing cache, and Sonnet 5 rate + Sonnet 5.5 ID facts in the Anthropic guide. No mapping target or default moves; those are deferred to a follow-up PR. Details in the new "Addendum" section of the description.

One thing surfaced during verification that I did not change: the Stable Image Core model card lists stability.stable-image-core-v1:1 (in-Region us-west-2), while the cache and registry carry v1:0. Flagging for a dedicated check rather than altering an existing row here.

herosjourney pushed a commit to herosjourney/agent-toolkit-for-aws that referenced this pull request Oct 27, 2026
…cing to main for aws#483

PR aws#483 is the bedrock-migration-assessment extraction. The model-default,
mapping and pricing refreshes it carried belong to the pricing-refresh PR
(aws#500) and are restored to upstream/main here; the BMA runtime commit
before this one no longer depends on any of them.

Reverted to main (skills/shared/ai, propagated to the four vendored twins
with tools/sync-vendored.py): ai-anthropic-to-bedrock.md,
ai-gemini-to-bedrock.md, ai-model-lifecycle.md (Last updated 2026-09-21,
"Verified Active Models" table removed), ai-openai-to-bedrock.md (GPT-4o
-> GPT-5.6 Terra), bedrock-pricing-cache.md, schema-design-aws-ai.md.

Kept: skills/shared/ai/sdk-capability-map.json (+image_output_indicators,
+image_output_model_patterns). bma-runtime.py::classify_ai_call reads both
keys; they are detection patterns, not model facts, prices or defaults.

Reverted to main wholesale: gcp-to-aws design-refs/ai-gemini-to-bedrock.md,
discover-preview.md, shared/pricing-cache.md, shared/retarget-gotchas.md;
azure-to-aws clarify-ai-only.md, estimate-ai.md, shared/pricing-cache.md;
fixtures aws-design-ai/* and estimation-ai/* (4 files). Hand-reverted
named-model lines only: gcp-to-aws clarify-assemble.md (7 rows) and
generate-artifacts-report.md (rule 8), keeping the typed BMA contribution
boundary, mantle-spelling and expected_sha256 hunks.

BMA hand-adapted copies mirrored by hand (Sonnet 5.5 -> Sonnet 5, GPT-4o
row -> GPT-5.6 Terra, Nano Banana / Sonnet 5.5 cache rows removed):
clarify-ai.md, clarify-ai-only.md, design-ai.md, estimate-ai.md,
discover-preview.md, design-refs/ai-gemini-to-bedrock.md (main GCP file +
its one ai_sources[] header line), shared/pricing-cache.md and
shared/retarget-gotchas.md (byte-equal to main's GCP files). All
ai_sources[] / sidecar / direct-mode / input-gate adaptations kept.

Deleted tests/test_bedrock_pricing_sonnet55.py (pinned the reverted
facts). tests/test_bma_target_registry.py asserts Sonnet 5.5 is absent
from the registry. Closure, bootstrap manifests and both doc pins
regenerated. Facts move to PR aws#500.
@leon1418
leon1418 added this pull request to the merge queue Oct 27, 2026
Merged via the queue into aws:main with commit d7857c8 Oct 27, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants