Skip to content

fix(gcp-to-aws): stop recommending classic Bedrock Agents (closed to new customers 2026-07-30) - #161

Merged
icarthick merged 4 commits into
awslabs:mainfrom
herosjourney:feat/bedrock-agents-classic-eol
Jul 22, 2026
Merged

fix(gcp-to-aws): stop recommending classic Bedrock Agents (closed to new customers 2026-07-30)#161
icarthick merged 4 commits into
awslabs:mainfrom
herosjourney:feat/bedrock-agents-classic-eol

Conversation

@herosjourney

@herosjourney herosjourney commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

AWS moved classic Bedrock Agents (bedrock-agent) to maintenance mode: it is closed to new customers as of July 30, 2026 (AWS announcement, maintenance mode guide). The gcp-to-aws AI path still recommended classic Bedrock Agents as a migration target in 11 places — and those recommendations carry 2–4 week timelines, so a customer starting today would reach Bedrock Agents onboarding after the cutoff. This PR removes every such recommendation and replaces it with AgentCore (Harness by default, Runtime for code-defined loops), which is AWS's official migration target and already what the plugin's own agentic questions (Q23–Q26) recommend. This also closes an internal inconsistency: Q14/Q17 said "Bedrock Agents" while Q23–Q26 said AgentCore.

Changes

  • clarify-ai.md: Q14 answer rows A/E/F and D+F combination row, Q17 agentic-workflows row → AgentCore (Harness/Runtime, Gateway for MCP); added a guardrail note under the Q14 table with the EOL date and announcement link so the recommendation cannot silently regress
  • clarify.md: two combination-trigger rows (OpenAI Agents SDK, Multi-agent + MCP) → AgentCore
  • design-ai.md: capability map row Vertex AI Agent Builder → Bedrock AgentCore (Harness)
  • ai-openai-to-bedrock.md: Assistants-API case 4 target → AgentCore (Harness sessions/memory, action groups as MCP tools via Gateway, gateway-fronted knowledge bases) with an explicit never-target-classic note; Converse-vs-Mantle feature list → AgentCore integration
  • ai-gemini-to-bedrock.md: ecosystem-advantage list → AgentCore

Relationship to other PRs

Independent — based directly on current main (includes #154 and #157). No overlap with open PRs; the workshop/estimate/pricing branches do not touch these lines.

Test plan

  • Repo-wide sweep: zero remaining "Bedrock Agents" recommendations (all mentions are now either AgentCore or the explicit classic/maintenance-mode warnings); no hits in fixtures, vendored trees, or workshop files
  • Verified none of the replaced strings are referenced by fixtures or asserters
  • mise run fmt clean
  • Full mise run build green (160/160 checks, no vulnerabilities)

@herosjourney
herosjourney requested a review from a team as a code owner July 20, 2026 19:16
…e mode, closed to new customers 2026-07-30)
@herosjourney
herosjourney force-pushed the feat/bedrock-agents-classic-eol branch from 6d41d21 to e05127b Compare July 20, 2026 19:26

@rsmets rsmets 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.

thanks for this catch

icarthick and others added 2 commits July 22, 2026 21:55
Clean merge to current main. The classic Bedrock Agents EOL sweep is intact:
zero remaining 'Bedrock Agents' migration recommendations in gcp-to-aws (all
mentions are AgentCore or explicit classic/maintenance-mode warnings). Full build green.
@icarthick
icarthick merged commit 75602e2 into awslabs:main Jul 22, 2026
8 checks passed
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 11, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 13, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 14, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
leon1418 pushed a commit to leon1418/startups that referenced this pull request Aug 14, 2026
…and IaC

Keeps the migration-to-aws skills' externally-sourced facts current: two monitors on a weekly
schedule, a judge that decides what a change means and how far it reaches, and a draft PR for a
human to review. Nothing merges without a person.

Why: of 176 non-vendored skill markdown files, 37 contain any URL and 8 carry a date marker, so
most facts cannot be re-verified by anything. Every stale-fact fix in this repo's history (awslabs#161,
awslabs#97, awslabs#131, awslabs#72) was found by a human noticing.

Two monitors, deliberately separate:
- recheck — re-fetch each fact's own source URL and re-extract the field. Answers only "does what
  we said still hold?"
- announcement scan — the AWS What's New feed, filtered by the 27 existing decision-refs/
  design-refs files. No separate topic list to maintain: the skill's own knowledge files ARE the
  filter, so it cannot fall out of date.

The AgentCore runtime-instances launch (2026-08-06) drove every rule. Its value did not change —
its SHAPE did. microVMs still cap sessions at 8h; the new EC2-backed option runs 14 days. A
value-diff would have rewritten 8h to 14d, which is wrong. Meanwhile the real damage was in ~13
derived judgments across two skills, three of which reversed. Hence: URL re-extraction rather
than semantic search for recheck, a schema_change verdict distinct from value_change, and blast
radius computed by searching real file content.

Measured end to end (see the POC README): recheck agreed on all 6 piloted facts across 3
identical runs; the scan kept 12 of 100 items with the acceptance item among them; the judge
returned schema_change with 13 locations and 3 flipped conclusions; apply.py wrote 13/13 to a
clean tree and 0/13 on a second run (idempotent); a ticked dashboard checkbox came back as a
queued request the next scan consumed.

Three defects the POC found, all now guarded or recorded:
- a per-second Fargate rate compared against a per-hour stored value, on a fact eligible for
  automatic editing — a 3600x error away from an auto-PR. Fixed with a mechanical magnitude
  guard, since the single-location rule did not protect against it.
- a rewrite that updated a reason string while leaving the hard_constraints rule it justifies
  untouched — fluent prose over unchanged behaviour, invisible in the diff. Recorded as the one
  place review cannot substitute for a mechanical check.
- blast radius is unstable between runs: 9 locations one run, 13 the next, neither a superset.

infra/kb-autoupdate.yaml deploys the whole thing as one weekly CodeBuild job in the maintainer's
own account, pushing to a fork and opening PRs upstream — nothing is added to this repository.
Checkov clean (44 passed, 0 failed, 1 documented skip: a log bucket cannot log to itself).

Not deployed, and automatic PRs are not authorised by this: the build order still calls for
running silently for several weeks first.
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.

3 participants