Conversation
Source: https://aws.amazon.com/about-aws/whats-new/2026/09/openai-gpt-6-astra-on-amazon-bedrock/ Proposed by the knowledge auto-update pipeline; every edit's justification is in the PR body.
leon1418
left a comment
There was a problem hiding this comment.
[🤖 AI review 🤖]
Scope reviewed: Both changed files (advisor + migrate copies of gcp-to-aws/references/phases/clarify/clarify-ai.md), the PR description, cross-plugin parity, surrounding table context (lines 318–355), and the upstream single-source-of-truth files this table derives from: openai-on-bedrock.md (model catalog, Tier 0 list, "Not on Bedrock" list), ai-openai-to-bedrock.md (Tier 1 Option A mapping), pricing-cache.md, ai-model-lifecycle.md, and openai-bedrock-2026-08-21.json.
Cross-plugin parity: ✅ PASS — both files have identical blob SHA bf5e3cfd. Drift allowlist unchanged.
Finding 1 — Downstream table updated but upstream sources still don't know GPT-6 Astra exists
The clarify-ai.md table is a derived surface: its recommendations come from the model catalog and tier mapping defined in shared reference files. This PR updates the derived table to recommend GPT-6 Astra without updating any of the upstream sources:
openai-on-bedrock.mdModel Catalog (line ~22–38): No GPT-6 Astra row. Still says "Last verified: 2026-08-21".openai-on-bedrock.md"Not on Bedrock" list (line ~42): Still lists "*-Provariants" as not on Bedrock, but does not mention GPT-6 Astra as being on Bedrock.ai-openai-to-bedrock.mdTier 1 Option A mapping (line ~104): Still mapsFlagship reasoning (*-Pro)→GPT-5.6 Sol. If GPT-6 Astra is the new flagship, this mapping is stale.openai-bedrock-2026-08-21.json: No GPT-6 Astra entry. The PR description itself identifies this gap.pricing-cache.md: No GPT-6 Astra pricing row.ai-model-lifecycle.md: No GPT-6 Astra entry.
The PR description explicitly acknowledges these gaps ("needs new row(s) in Tier 0 model table, cost-comparison tables, Option A tier mapping, and an updated dated capability catalog") but ships only the table row without them. This creates contradictions:
openai-on-bedrock.mdsays GPT-6 Astra doesn't exist on Bedrock.ai-openai-to-bedrock.mdTier 1 maps Pro → GPT-5.6 Sol.clarify-ai.mdrecommends GPT-6 Astra for Pro workloads.
The single-source-of-truth contract (openai-on-bedrock.md: "This file is the single source of truth for OpenAI-on-Bedrock facts in this plugin") means the catalog should be updated first, and downstream tables should follow.
Concrete risk: An AI agent following the Tier 1 mapping policy will recommend GPT-5.6 Sol for Pro workloads (from ai-openai-to-bedrock.md), contradicting the clarify-ai.md table that now says GPT-6 Astra. The user gets inconsistent advice depending on which file the agent reads first.
Recommendation: Either (a) include the upstream file updates in this PR (model catalog, tier mapping, pricing, lifecycle), or (b) revert this table change and file a separate issue for the full GPT-6 Astra onboarding that updates all sources atomically.
|
Addressed Finding 1 in commit
Validation: 99 focused tests pass in each plugin, including 11 new Astra cases. All eight GitHub checks now pass on |
leon1418
left a comment
There was a problem hiding this comment.
[🤖 AI review 🤖]
Re-review of commit 4d32998 (previous: 962672a). Scope: all 26 changed files across both plugins, the executable JSON catalog, recommendation engine, verification adapter, tests, and all upstream source-of-truth references.
Prior Finding 1 — Upstream sources don't know GPT-6 Astra exists → ✅ FIXED
The fix commit (4d32998, authored genli, 2026-09-09T18:07:15Z, ancestor of HEAD ✓) adds Astra to every upstream source simultaneously:
openai-bedrock-2026-09-09.json— fullopenai_gpt_6_astraentry with path-specific capabilities, region matrices, and evidence URLs.openai-on-bedrock.md— model catalog row, access path table, mantle/runtime region matrices, quota notes, pricing, and caching rules.ai-openai-to-bedrock.md— Tier 0 row, Tier 1 Option A mapping (Pro → Astra; Sol as lower-cost alternative), region gate, cost comparison table, and migration decision framework.pricing-cache.md— Astra row in the master table + dedicated pricing sub-table with all 4 context×inference-option combinations and cache rates.ai-model-lifecycle.md— Active lifecycle entry, launched Sep 8 2026, EOL no sooner than Sep 8 2027.clarify-ai.md— Q16 option 19, dedicated recommendation row, Pro-variant recommendation updated.
The single-source-of-truth contract is now satisfied: openai-on-bedrock.md defines Astra and downstream files derive from it. No contradictions remain.
Cross-plugin parity: ✅ 12/13 mirrored file pairs are byte-identical. The 1 difference (model-selection.md) is a pre-existing, plugin-specific self-reference divergence on the ALLOWLIST in cross-plugin-drift.ts — not introduced by this PR.
New code review (commit 4d32998)
0 mandatory blockers. 0 Nits.
Design: The change correctly extends an existing evidence-driven recommendation system to a new model without changing any architectural invariant. The path-specific capability override (_catalog_model_for_path L188-189) is the right mechanism — it prevents Astra's mantle tool_or_function_calling from leaking to runtime_converse where tools are unsupported. The region/profile gating (L960-980) is a genuine safety improvement that fail-closes when the caller's region has no catalog evidence for the resolved inference profile.
Functionality: Astra sources route to the source-compatible API (Responses on Mantle, Chat Completions on Mantle, or Converse via CRIS when governance requires it). The candidate_order mechanism correctly pins Astra sources to Astra rather than falling through to older GPT-5.x models. _target_accepts_sampling correctly returns None for openai_gpt_6 family (unprobed), producing sampling_params_unverified instead of the GPT-5.x acceptance/rejection rules.
Tests: 11 new Astra-specific test cases cover: mantle Responses + Chat Completions routing, region gate (outside Oregon → decision_required), runtime with streaming/limits, unsupported geo profiles, capability isolation (tools/structured_output → unverified_capability block), and capacity ceiling enforcement. The Chat Completions verification adapter test confirms the correct model ID and API surface.
Pricing math verified: $11/$55 ÷ $4.40/$22 = 2.5x Sol ✓. Opus 4.8 at $5/$25 vs Astra $11/$55 = Opus 55% cheaper ✓. Long-context rates are 2x short-context ✓.
CI: 8/8 checks pass at head 4d32998. Approvals: 0. Mergeability: MERGEABLE. No reviews dismissed.
herosjourney
left a comment
There was a problem hiding this comment.
Reviewed: head 4d32998 (base f1cc0fb), 26 files (+1072/−256) — gcp-to-aws (10) and agent-advisor (16), both plugin trees.
Ran: cmp on all 13 twin pairs; cross-plugin-drift.ts (273 identical / 25 allowlisted, allowlist delta 0); mise run lint:model-ids, shared:check, lint:frontmatter, fixtures:check, fixtures:assert, test, fmt:check (all pass); markdownlint-cli2 on changed files (0 errors); security:bandit, security:semgrep (pass); agent-advisor uv run pytest in both trees; git merge-tree against main and open PRs #269 / #267 / #262 / #284; llm-to-bedrock script probes against openai.gpt-6-astra; Astra model card read 2026-09-10.
Did not run: live Bedrock/Mantle inference; end-to-end LLM run; checkov/grype locally (CI green).
Cross-plugin parity: PASS — 12/13 pairs byte-identical; model-selection.md differs only in the pre-existing allowlisted self-reference. Nothing outside skills/ changed.
Change narrative: add GPT-6 Astra to the OpenAI SSOT, pricing cache, lifecycle, Tier 0 / Tier 1 mappings, Clarify Q16, and the agent-advisor catalog + recommender with Astra-specific region/API/capability gating. Body vs diff: diverges on tests — body reports "99 focused tests pass"; the full agent-advisor suite has 2 regressions (below).
| Axis | Stance | One line |
|---|---|---|
| Parsimony | advisory | Right mechanism (data in SSOT + generic region gate + candidate_order); one nit inline |
| Completeness | finding | Full suite regresses; AI-only Clarify route, Discover preview, quota refs, and the llm-to-bedrock execute path never learn Astra exists |
| Security | clear | No new credential/IaC/injection surface; new region gate fails closed; sampling marked unverified; scanners green |
| Alternatives | advisory | 2 named below |
| Contradictions | finding | SSOT says Astra has a runtime path with 10× burndown; bedrock-quotas.md says 1× for non-Claude; guardrails say runtime fallback "exists only for GPT-5.6"; Discover preview maps Pro → Nova 2 Pro while Design maps Pro → Astra |
| Overlap | clear | Restatements are the declared consumers |
| Cross-plugin parity | clear | See above |
| Propagation & data | finding | SSOT updated first (good); every fact verified against the model card (all correct); 4 consumers not updated; arithmetic re-derived and holds |
Blocking
1. Two agent-advisor tests fail in both trees at the PR head — skills/agent-advisor/scripts/test_scoring.py:717 (_POOL_LIFECYCLE_KEYS), same in migrate/.
AssertionError: models missing a lifecycle key: ['openai_gpt_6_astra'](test_pool_keys_cover_every_selectable_model) andKeyError: 'openai_gpt_6_astra'(test_no_pool_model_is_legacy_or_excluded)
Base: 322 passed. Head: 331 passed / 2 failed per tree. These are the lifecycle-drift guards that exist so a new pool model gets checked against ai-model-lifecycle.md. Fix: add "openai_gpt_6_astra": "gpt-6-astra", to _POOL_LIFECYCLE_KEYS in both trees — applied in a scratch worktree, 333/333 pass. Please also report the full-suite count in the body.
2. The execute skill cannot run the target this PR now recommends — skills/llm-to-bedrock/scripts/preflight_bedrock.py:68, iam_policy.py:26, bedrock_pricing.py:91, references/helpers/resolve-bedrock-model-id/resolve-bedrock-model-id.md:58, references/helpers/behavior-delta-detection/references/openai-to-bedrock.md:15 (both trees).
return mid.startswith("openai.gpt-5") and "oss" not in mid
Probed at head: is_mantle_model("openai.gpt-6-astra") → False in preflight and IAM; bedrock_pricing.lookup("us-west-2", "openai.gpt-6-astra") → available: False. Design now emits Astra as the Tier 0 target for Astra sources and the Tier 1 Option A target for every *-Pro source; llm-to-bedrock then probes the bare Mantle id via Converse (fails — the card says no in-Region runtime form), generates IAM with bedrock:InvokeModel on a nonexistent foundation-model ARN instead of bedrock-mantle:CallWithBearerToken, prices it as unavailable, and skips the Mantle parameter-surface guidance. Same class as #210.
Fix, either: (a) extend is_mantle_model / is_mantle_gpt in the three scripts to openai.gpt-6 (keep the oss exclusion), add Astra STATIC_FALLBACK rows for openai. / us. / global. forms at the card's rates, add Astra to the helper docs' proprietary-GPT lists and a Case C in resolve-bedrock-model-id.md, with tests; or (b) keep this PR design-side but withhold Astra from the Tier 1 Option A default and Tier 0 strong_migrate until (a) lands, naming the follow-up in the body.
3. The AI-only Clarify route has no Astra — skills/gcp-to-aws/references/phases/clarify/clarify-ai-only.md:184,198 (both trees).
… 7) GPT-5.6 Sol/Terra/Luna | 8) GPT-5/5.x (older) | 9) GPT-5.5/Pro | 10) o-series | 11) Claude …
| GPT-5.x Pro | GPT-5.6 Sol; or Nova 2 Pro | Pro not on Bedrock — offer both |
clarify-ai-only.md is loaded instead of clarify-ai.md on the standalone AI migration path. On it a user cannot declare an Astra source (no Q5 option), and Pro still maps to Sol — contradicting the Tier 1 Option A mapping and the clarify-ai.md row this PR updates. Fix: add GPT-6 Astra to the Q5 list and mirror the two recommendation rows from clarify-ai.md.
Should-fix
4. Quota guidance now disagrees with the SSOT — skills/gcp-to-aws/references/shared/bedrock-quotas.md:99, ai-migration-guardrails.md:35,45 (both trees).
burndown_multiplier = 5 for Claude models … 1 for all others/**The bedrock-runtime fallback exists only for GPT-5.6.**
openai-on-bedrock.md (this PR, L251) records Astra runtime at 10x output-token burndown and a runtime CRIS path; both confirmed on the card. The capacity formula understates an Astra-runtime workload's TPM target by 10× and the guardrails claim is now false. Add an Astra-runtime (10×) row/note to bedrock-quotas.md; change the guardrails sentence to "exists for GPT-5.6 and GPT-6 Astra".
5. Discover preview maps Pro to a different target than Design — skills/gcp-to-aws/references/phases/discover/discover-preview.md:93-97,112 (both trees).
| gpt-*-pro (GPT-5.x Pro), o1-pro, o3-pro | Amazon Nova 2 Pro | amazon.nova-2-pro-v1:0 |and no Astra row in the source-model table
Discover and Design run in one session (#169 fixed the same class). Add gpt-6-astra → openai.gpt-6-astra to the source table and align the Pro row with Tier 1 Option A.
6. Landing order — git merge-tree reports content conflicts with #269 (6 files: ai-openai-to-bedrock.md, clarify-ai.md, pricing-cache.md × 2 trees), #267 and #262 (pricing-cache.md × 2). #269 is approved and corrects the Sonnet 5 3.00 / 15.00 cells this PR's cost-comparison table still carries in its unchanged rows. Suggest #269 → #267 → #283 and rebase; this PR is additive so it resolves most cheaply last. GitHub shows BEHIND.
Nits
Inline on the four anchorable spots (Tier 0 Model ID column, _feature_findings n suppression, catalog disclaimer, cache-write "30m" qualifier).
Heads-up (pre-existing)
- Sonnet 5
3.00 / 15.00in the unchanged rows of the cost-comparison table is the stale rate #269 corrects; ordering only.
Alternatives (max 2)
- Split data onboarding from policy change. Land SSOT + pricing + lifecycle + catalog + recommender (Tier 0 same-model) now; move "Pro → Astra" (Tier 1 Option A, Q16 row, clarify-ai-only, discover-preview) to a second PR. Wins: the uncontroversial half merges ahead of the #269 conflicts and Blocking 2 only gates the policy PR. Costs: two PRs. Worth it if Blocking 2 takes time.
- Keep the catalog filename (
openai-bedrock-2026-08-21.json) and add Astra with its own datedevidence, as the Anthropic catalog did for Sonnet 5 in #267, rather than renaming to2026-09-09when one entry was verified that day. Wins: no loader/test churn. Costs: file-levelverified_atlags. Recommendation: keep the rename — thedisclaimerstates per-entry dates, which is what matters.
Verified clean
Every factual claim matches the model card: launch 2026-09-08, EOL no sooner than 2027-09-08, Active, 1,050,000 / 128,000 tokens, mantle us-west-2 only with Responses + Chat Completions, runtime CRIS-only with exactly the 5 US-Geo and 12 additional Global regions listed, Guardrails / application inference profiles Converse-only, no server-side tools or structured outputs on runtime, caching Responses-only on mantle, 10× burndown, Standard tier only. Pricing matches to the cent; 2.5× Sol (11/4.40, 55/22, 10/4, 50/20) and Opus 55% cheaper (2:1 blended, 25.67 vs 11.67) recompute; cache write = 1.25× and read = 0.1× input on every row. pricing-cache.md Last updated correctly left at 2026-08-24 with a separate dated Astra line. The region/profile gate fails closed; _target_accepts_sampling returns None for openai_gpt_6; the 11 new tests cover routing, region gate, capability isolation, and capacity ceiling.
Verdict
Request changes — three kind-checkable blocking findings: a regressed suite in both trees (one-line fix), an executor that cannot run the model the design now recommends, and a Clarify route on which Astra does not exist. The SSOT, catalog, pricing, and recommender work is correct and verified against the primary source; once the consumers catch up this is ready.
| | GPT-5.4 | GPT-5.4 | `openai.gpt-5.4` (mantle only) | `strong_migrate` — same model, ~10% over OpenAI std | | ||
| | Source model | Bedrock target | Model ID (mantle / runtime CRIS) | Assessment | | ||
| | ------------- | -------------- | ------------------------------------------------------- | --------------------------------------------------------------------------- | | ||
| | GPT-6 Astra | GPT-6 Astra | See the canonical catalog's Astra access paths | `strong_migrate` after region/API checks; price the chosen inference option | |
There was a problem hiding this comment.
Nit: this is the Model ID column and every other row gives copyable ids; an agent filling aws-design-ai.json from this table gets a pointer instead. Suggest openai.gpt-6-astra (mantle, us-west-2) / us. global. prefixed, and move "see the canonical catalog's access paths" into the Assessment cell. Same on the migrate/ copy.
There was a problem hiding this comment.
Fixed in d4af427 in both plugins. The Model ID cell now contains openai.gpt-6-astra and the us. / global. CRIS forms; the canonical API/region gate is in the Assessment cell. The region section retains Astra's Oregon-only Mantle requirement.
AI-assisted reply.
| ) | ||
| ) | ||
| if requirements.get("uses_n") or "multiple_candidates_n" in detected: | ||
| if path != "mantle_openai_chat" and ( |
There was a problem hiding this comment.
Nit: this drops the n / multiple_candidates_n finding for every mantle_openai_chat target, but the only model that reaches that path is Astra, whose own sampling_params_unverified finding (added in this PR) says its accepted parameters are unknown. Suggest emitting the finding as unverified for family == "openai_gpt_6" rather than suppressing it. Same on the migrate/ copy.
There was a problem hiding this comment.
Fixed in d4af427 in both plugins. Astra on mantle_openai_chat now emits multiple_candidates_n_unverified with a probe/remediation step. Regression cases cover both requirements.uses_n and detected multiple_candidates_n; neither gets the Responses no-n finding or a forced API reshape. Both full agent-advisor suites pass (335 tests each).
AI-assisted reply.
| "source": "AWS Bedrock userguide OpenAI model cards + models-api-compatibility (retrieved 2026-08-21); internal migration reference, OpenAI path (feature-level probes, 2026-06-20)", | ||
| "disclaimer": "This is the OpenAI-to-Bedrock MIGRATION target catalog, not a list of OpenAI models: it holds the verified landing candidates for the available paths. Verified 2026-08-21 — the GPT-5.6 family changed materially between 2026-07-21 and 2026-08-21: Sol/Terra/Luna now ALSO run on bedrock-runtime via CRIS inference profiles (Geo us./in., Global global.), with Converse/Chat Completions/Invoke listed as supported there (Guardrails Converse-only, prompt caching Responses-only on runtime), and Global CRIS pricing published at OpenAI's standard list price (cost parity; In-Region/Geo remain 1.10x). So runtime_converse now carries BOTH same-vendor GPT-5.6 candidates (same-model governance path) AND the Claude tier mapping (GPT-5.6 Sol -> Claude Opus 4.8, Terra/5.5/5.4 -> Claude Sonnet 5, Luna -> Claude Haiku 4.5) as the cross-family option. GPT-5.5 and GPT-5.4 remain mantle-only and in-region only — no CRIS, no runtime path. The gpt-oss open-weight models still support Converse on bedrock-runtime but sit a capability class below the frontier tier and are not listed. Only models with dated evidence are listed; entries name their evidence. Numeric limits stay 'unknown' unless sourced. Re-probe every selected model and API path in the target account and region before implementation.", | ||
| "source": "AWS Bedrock userguide OpenAI model cards + models-api-compatibility (retrieved 2026-08-21); internal migration reference, OpenAI path (feature-level probes, 2026-06-20); GPT-6 Astra model card retrieved 2026-09-09: https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-6-astra.html", | ||
| "disclaimer": "GPT-6 Astra added from its AWS model card on 2026-09-09; existing model entries retain their individual evidence dates and were not re-probed. Astra has 1,050,000 context tokens and 128,000 maximum output tokens. Its mantle Responses/Chat Completions paths are Oregon-only; runtime Converse uses US Geo or Global CRIS. Feature evidence is path-specific. No account-level availability or behavioral probe was run. This is the OpenAI-to-Bedrock MIGRATION target catalog, not a list of OpenAI models: it holds the verified landing candidates for the available paths. Verified 2026-08-21 — the GPT-5.6 family changed materially between 2026-07-21 and 2026-08-21: Sol/Terra/Luna now ALSO run on bedrock-runtime via CRIS inference profiles (Geo us./in., Global global.), with Converse/Chat Completions/Invoke listed as supported there (Guardrails Converse-only, prompt caching Responses-only on runtime), and Global CRIS pricing published at OpenAI's standard list price (cost parity; In-Region/Geo remain 1.10x). So runtime_converse now carries BOTH same-vendor GPT-5.6 candidates (same-model governance path) AND the Claude tier mapping (GPT-5.6 Sol -> Claude Opus 4.8, Terra/5.5/5.4 -> Claude Sonnet 5, Luna -> Claude Haiku 4.5) as the cross-family option. GPT-5.5 and GPT-5.4 remain mantle-only and in-region only — no CRIS, no runtime path. The gpt-oss open-weight models still support Converse on bedrock-runtime but sit a capability class below the frontier tier and are not listed. Only models with dated evidence are listed; entries name their evidence. Numeric limits stay 'unknown' unless sourced. Re-probe every selected model and API path in the target account and region before implementation.", |
There was a problem hiding this comment.
Nit: disclaimer is surfaced at runtime and now reads as a changelog (07-21 → 08-21 → 09-09). #267 moved that class of text to commit messages and kept the field to what is true now. Related: region_availability.commercial means "all reachable regions" for the GPT-5.6 entries and "mantle only" for Astra — the evidence string explains it, but a uniform reader will misjudge. Same on the migrate/ copy.
There was a problem hiding this comment.
Fixed in d4af427. The disclaimer now states current evidence limits and verification requirements without the historical changelog. Every OpenAI entry carrying region_availability now explicitly declares scope: "mantle_in_region" and explains that runtime availability belongs to the selected path/profile.
I checked the existing GPT-5.6 lists: they contain the small Mantle region sets, not the full runtime footprint. Their values are preserved; the uniform scope makes that meaning explicit for GPT-5.6 and Astra. Both plugin copies are updated.
AI-assisted reply.
|
|
||
| ### GPT-6 Astra — Standard tier, verified 2026-09-09 | ||
|
|
||
| | Context tier | In-Region / Geo (in · out) | Global CRIS (in · out) | Cache write / read (In-Region / Geo) | Cache write / read (Global) | |
There was a problem hiding this comment.
Nit: the card labels these "Input — 30m cache write"; the column header drops the 30m qualifier (same in the pricing-cache.md Astra sub-table). Worth carrying since the GPT-5.6 caching section below states different minimum-prefix/breakpoint rules and this PR says not to inherit them. Same on the migrate/ copy.
There was a problem hiding this comment.
Fixed in d4af427: both Astra cache-write columns in openai-on-bedrock.md, and the Astra cache-write column in pricing-cache.md, now say 30m cache write. Applied to both plugins and checked against the model card on September 16. The separate GPT-5.6 prefix/breakpoint/quota rules are not applied to Astra.
AI-assisted reply.
|
AI-assisted review follow-up — addressed in d4af427, following the main integration in 22695fa. In response to the review:
Also replied separately to all four inline comments: copyable ids, unverified Chat No live Bedrock inference or end-to-end migration was run. The documented account/API verification gate remains in place. |
herosjourney
left a comment
There was a problem hiding this comment.
Re-review at d4af4273 (previous: 4d32998). Delta: 2 commits (1 main-merge + d4af4273), consumers of the Astra SSOT brought current.
Ran: full agent-advisor suite both trees (uv run --group dev pytest: 335/335 each), full llm-to-bedrock suite both trees (265/265 each) — 1,200 total, matching the PR body. Loaded preflight_bedrock.py / iam_policy.py / bedrock_pricing.py directly and probed openai.gpt-6-astra, us.openai.gpt-6-astra, global.openai.gpt-6-astra against is_mantle_model/is_mantle_gpt and the static pricing table. cmp on all 26 changed files (both trees). cross-plugin-drift.ts (275 identical, 25 allowlisted — unchanged baseline). mise run build locally: exit 0. git merge-tree against origin/main (clean) and pr-267 (conflicts, pre-existing).
| Prior finding | Status at head |
|---|---|
Blocking 1 — regressed lifecycle-drift tests (test_pool_keys_cover_every_selectable_model, test_no_pool_model_is_legacy_or_excluded) |
Fixed at d4af4273 — re-probed: both tests pass in isolation and the full 335-test suite is green in both trees, matching the body's reported count. |
| Blocking 2 — llm-to-bedrock execute path couldn't run Astra (Converse preflight, runtime-only IAM, no static price) | Fixed at d4af4273 — re-probed by loading the modules directly: is_mantle_model("openai.gpt-6-astra") == True (routes to mantle probe with an Astra-specific quota note); is_mantle_model on the us./global. CRIS forms is False, correctly falling through to the standard runtime probe rather than mantle — this is more precise than my suggested blanket startswith("openai.gpt-6") fix, since it doesn't mis-route the CRIS ids. Static pricing present for all three id forms at the card's rates. resolve-bedrock-model-id.md gained Case C for Astra; openai-to-bedrock.md behavior-delta doc updated. |
| Blocking 3 — AI-only Clarify route had no Astra option | Fixed at d4af4273 — re-probed: Q5 picker in clarify-ai-only.md now has option 12 (GPT-6 Astra), and the Pro row offers Astra/Sol/Nova 2 Pro, matching clarify-ai.md's mapping. |
| Should-fix 4 — quota formula omitted Astra's 10× burndown; guardrails claimed runtime fallback "exists only for GPT-5.6" | Fixed at d4af4273 — bedrock-quotas.md's formula now states output_burndown_multiplier = 10 for Astra runtime, 5 for Claude runtime, 1 only where verified. The stale guardrails sentence was removed rather than reworded — also resolves the contradiction cleanly. |
| Should-fix 5 — Discover preview mapped Pro to Nova 2 Pro while Design mapped Pro to Astra | Fixed at d4af4273 — discover-preview.md now carries a gpt-6-astra source row and its Pro mapping (GPT-6 Astra; Sol for lower cost; or Nova 2 Pro) matches Design's. |
| Should-fix 6 — landing order vs #267/#269/#262 | #269/#262 now merged into main and this PR is rebased on top (body confirms). #267 is still open and still conflicts on the two pricing-cache.md files (git merge-tree pr-267 pr-283 — conflicts). Not this PR's defect; still a landing-order note for whichever of #267/#283 merges second. |
Nits (Model ID column, n-suppression scope, catalog disclaimer changelog, "30m" cache-write qualifier) |
All 4 fixed as described in your inline replies — re-verified each directly in the diff. |
New in delta: none beyond the fixes above and the main-merge.
Verdict: Approve — supersedes my prior Request changes. All three Blocking findings and both Should-fix items are resolved and re-verified independently (not taken on the reported counts alone). Should-fix 6 remains open only as an inter-PR landing-order note against #267, which is not blocking for this PR.
herosjourney
left a comment
There was a problem hiding this comment.
[🤖 AI review 🤖]
Re-review at d4af4273 (unchanged since my prior APPROVED review on 9/16). No new commits, no new open findings — content-wise this still has my approval.
New since then: mergeable flipped to CONFLICTING / mergeStateStatus: DIRTY. Root cause: main advanced (PR #267, merged 2026-09-16) and edited the exact same lines in pricing-cache.md — both plugin copies — that this PR edits. Confirmed by merging origin/main into this branch in a scratch worktree:
CONFLICT (content): advisor/plugins/aws-startup-advisor/skills/gcp-to-aws/references/shared/pricing-cache.md
CONFLICT (content): migrate/plugins/migration-to-aws/skills/gcp-to-aws/references/shared/pricing-cache.md
This is a landing-order conflict, not a quality issue with this PR. Two hunks per file, both reconcilable:
**Last updated:**header line — this PR adds a "GPT-6 Astra rates added: 2026-09-09" line above the old2026-08-24date; main bumped the base date to2026-09-03. Resolution: keep2026-09-03and keep the Astra addendum line under it.- Multi-provider pricing table — this PR adds a
GPT-6 Astrarow; main addedrestricted (...)status wording + a newClaude Fable 5.1row (and widened the Status column for the longer text). Resolution: keep main'srestrictedFable 5 / Fable 5.1 rows and add this PR's GPT-6 Astra row, using the wider Status column.
@leon1418 — could you rebase/merge main and resolve those two hunks so this can land? Everything else (Astra onboarding across ai-model-lifecycle.md, openai-on-bedrock.md, openai_model_recommendation.py, the model catalog JSON) is untouched by the conflict and still stands as approved.
|
AI-assisted follow-up to the September 17 review. Merged current main Local validation on the merge result: The obsolete #267 landing-dependency wording is updated in the PR body. GitHub now reports this head mergeable without content conflicts; its CI checks are pending. Please re-review the merge resolution; the earlier fixes and inline replies remain in place. |
|
[🤖 AI review 🤖] Updated to The combined review found two gaps that our earlier review missed: remaining Markdown executor/Design/Generate consumers still used GPT-5-only API rules, and ROI text imposed a fixed 10% premium. These are now corrected across both plugins. Revalidation also caught and corrected a legacy missing-path default inconsistency introduced during the fix. Evaluation and rewriting now share one normalization step. Validation: 1,250 local Python tests pass (336 + 289 per plugin), including literal API/image/retry/resume/ROI/default-contract tests. Repository lint, formatting, mirror checks, Bandit and update-range Gitleaks pass. Actual OCR delegation, one fresh isolated general reviewer and the parent repository review completed; the final convergence gate has no remaining findings. The PR body is updated. All 9 GitHub checks now pass on this head; target-account inference was not performed. Approval remains a human action; no APPROVE review or thread-resolution action was submitted. |
|
[🤖 AI review 🤖] Follow-up to the main-integration feedback: The conflict repair preserves main's shared/vendored AI layout and the earlier Astra fixes. Both plugins and their GCP/Azure consumers retain the same Astra policy, lifecycle and quota rules, with local API facts/prices. The combined review also caught two newly integrated Azure consumer mismatches: parent phase gates still rejected supported GPT runtime profiles, and the final recommendation still imposed a fixed premium. Both are corrected and revalidated; these came from the changed upstream contract, not a new issue in the previous reviewed source. Local validation: 1,358 Python tests pass (374 agent-advisor + 305 llm-to-bedrock per plugin), plus lint, formatting, shared/mirror checks, Bandit and update-range Gitleaks. Actual OCR delegation, one isolated general reviewer and parent review completed; final convergence gate has no remaining findings. No live inference or generated customer application was run. The PR description is updated. CI for the new head is pending. No approval, merge, review dismissal or thread resolution was submitted. |
Astra must remain on its selected Bedrock API throughout migration. This change adds the dated Astra catalog and fixes the consumers that could otherwise recommend Astra, evaluate its bare Mantle id through Converse, generate the wrong base path, or replace supported Chat Completions with Responses.
Behavior
/openai/v1; runtime retains supported US Geo / Global CRIS ids. Keep selected Chat or Responses through Design, Generate, evaluation and rewriting.n, hosted-state and account availability unverified where no probe exists.Validation
Local validation at
85e254c5: 374 agent-advisor + 305 llm-to-bedrock tests per plugin, 1,358 total. The 40 execution-contract cases per plugin cover literal evaluator snippets, Mantle/CRIS routing, image payloads, retries/resume, ROI and legacy defaults. Repository lint, formatting, mirror/contract checks, Bandit and the update-range Gitleaks scan pass.startups-hybrid-v1completed with actual OCR delegation, one isolated general reviewer, the parent repository review, impact-map reconciliation and the convergence-v1 evidence gate. No remaining verified findings. No live inference or end-to-end generated customer application was run; target-account verification remains required.GitHub CI for
85e254c5is pending; the local results above are separate from CI.Main integration
Normal merge
42348740integrates mainca384f14without rebasing or force-pushing. Main moved the AI rules intoskills/shared/aiand per-skill vendored copies. Astra selection, lifecycle and quota rules now survive in both plugins' canonical files and GCP/Azure copies, with the required consumer-local facts and prices.The Azure consumer's schema, Design/Generate parent gates and final recommendation are aligned with the shared Astra API/region and rate-derived ROI contracts. A supported runtime CRIS target is accepted while a bare Mantle id remains prohibited on runtime. Prior executable Astra behavior is preserved; unrelated main changes are retained.