Repository navigation
fix(docs): sync parity rows with the Smithy models (7,612 ops); gate rows, service pages and landing pages - #2740
Merged
Merged
Conversation
…vice pages
parity.md's Ops column feeds every headline count, and nothing checked it
against the code. Ten rows were below the operations fakecloud dispatches
and conformance-tests:
- aws-models refreshes added ops that shipped without the row moving:
S3 107->112 (object annotations), KMS 53->54 (GetKeyLastUsage),
RDS 163->164 (DescribeServerlessV2PlatformVersions), Bedrock Runtime
10->11 (InvokeGuardrailChecks), Backup 109->115 (access points),
WAFv2 55->59 (revenue statistics).
- rows written below the model and never revisited: Lambda 73->88
(durable executions, capacity providers), CloudFront 147->167,
Bedrock 103->108, CloudWatch 54->55.
Operation total 7,553 -> 7,612; Bedrock family 216 -> 222. Service pages
also disagreed with their own rows ("57 of 57" DynamoDB, "802 of 802"
EC2, "44 of 44" Kinesis, "115 of 115" Logs, "126 of 126" Cognito,
"All 49" CloudWatch, "73 of 73" Lambda, "147 of 147" CloudFront).
check-doc-counts.sh now:
- compares each parity row (summed per docs slug) with its Smithy
model's unique operation count, using the model -> slug map in
generate-operations-index.sh, and fails when a modeled service has no
row (AWS Batch is listed as pending until it is wired into conformance);
- checks each docs/services page's own headline count against its row;
- reads the Bedrock phrasings it missed ("N ops across 4 APIs",
"N of N Bedrock-family", "(Bedrock N, Bedrock Runtime N, ...)");
- matches aggregator aliases ("WAF v2", "SSO Admin", ...) to their rows.
…ew passes Landing pages say "**53 KMS operations**" (number before name), which no per-service pattern read: KMS, RDS, DynamoDB, S3, SES (110 -> 116) and Cognito User Pools (122 -> 132) were stale. Also CloudFront's intro "147 operations." and _index.md's "(all 109 ops)" for Backup. Gate: read number-first claims; read a bare ". N operations." sentence on service pages; ignore "N of M" prose when N != M; do not take a comma-grouped total as a Bedrock "N ops across" claim; C-locale key sort for the rows-vs-models join; fail when no model file resolves instead of letting jq read stdin.
…ns; gate both Four aggregate rows in docs/services/_index.md contradicted their own count cell (EKS 65/70, OpenSearch 93/96, Account Management 15/18, Identity Store 19/22) and dynamodb-emulator.md's description said 57. Gate: check every "(all N ops)" trailer against its row's count cell; check bare "N operations" on single-service landing pages against that service's row; treat "N of M" as a claim whenever M is one of the page's counts; accept "**53** KMS operations"; fold the per-service phrasings into one grep per service.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
check-doc-counts.shwas green, butparity.md's Ops column (which every headline count is summed from) had fallen behind the code. Nothing compared it with the models.Canonical values after this PR: 106 services, 7,612 operations (was 7,553), 257,288/257,288 variants, Bedrock family 222 (was 216), 31 Lambda runtimes.
Parity rows fixed (each op checked for a real dispatch arm + handler)
GetKeyLastUsageDescribeServerlessV2PlatformVersionsInvokeGuardrailCheckssupported_actions()and conformance since AprilThe new rule: a row equals the number of unique operations in its Smithy model(s). That is already true of the other 96 rows, and conformance probes every one of those ops.
Service pages that disagreed with their own row
57 of 57DynamoDB (58),802 of 802EC2 (807),44 of 44Kinesis (45),115 of 115CloudWatch Logs (118),126 of 126Cognito User Pools (132),All 49CloudWatch (55),73 of 73Lambda,147 of 147CloudFront, plus S3/KMS/RDS/Backup/WAFv2/Bedrock.Landing pages and aggregate rows
Number-first landing-page claims:
**53 KMS operations**(54), RDS 163 (164), DynamoDB 57 (58, body and description), S3 107 (112), SES 110 (116), Cognito User Pools 122 (132). Aggregate rows whose(all N ops)trailer contradicted the row's own count: Backup 109/115, EKS 65/70, OpenSearch 93/96, Account Management 15/18, Identity Store 19/22. CloudFront's intro paragraph said147 operations..Gate hardening (
scripts/check-doc-counts.sh)generate-operations-index.sh'sSERVICES. A service page with a model but no parity row fails the gate.N of N,**N operations**,All N operations,N-operation) is checked against that page's row(s).<N> Bedrock operationsregex missed:N ops across 4 APIs,N of N Bedrock-family,(Bedrock N, Bedrock Runtime N, ...),### Bedrock (N actions).| WAF v2 | 55 |never matchedWAFv2;SERVICE_ALIASESmaps nine of these to their rows.**53 KMS operations**,**53** KMS operations). This phrasing is folded into the existing per-service grep, so it costs no extra process spawns.(all N ops)trailers must match their row's count cell.LANDING_PAGES): any bareN operationson the page must equal that service's row (or the Bedrock family).To check each new pass, I injected drift for that class alone and confirmed the gate FAILS with the expected message: row-vs-model, missing-row, service-page headline (including
57 of 58), service-page sentence, Bedrock "across", Bedrock list, alias, number-first, bold number, trailer and bare landing-page count. Negative checks:1 of 3 shardson a service page and7,612 operations across 106 services, including Bedrockboth pass. Run time is about 21s.Found, handled separately
AWS Batch (
crates/fakecloud-batch, 45 ops, registered in the server since June) has noaws-models/service-map.jsonentry, so the conformance probe never measured it, and it has no parity row. Adding the map entry probes 0/1257: every request returns 404, because the harness has no wiring for Batch. A separate PR is wiring Batch into conformance and adding its row. Until that lands,PENDING_PARITY_ROW=(batch)holds the gate's missing-row check open; the gate fails once the row exists and the entry is still there.Skipped deliberately
website/content/blog/**andmarketing/**are point-in-time. Timestream's ops-index lists 34 (Write + Query share 4 names), and the row's 30 is the unique count.Post-merge
Sync the GitHub repo description (currently "7,553 operations").
Test plan
bash scripts/check-doc-counts.shpassesbash scripts/generate-operations-index.shproduces no diffzola build(templateindex.htmlchanged).rschangesSummary by cubic
parity.md's Ops column had drifted from the code: ten rows were below what fakecloud dispatches and conformance-tests, and every headline count (service pages, landing pages, aggregators) is summed from it. Fixed the rows and the pages that contradicted them, and extendedcheck-doc-counts.shto fail on this class of drift. Canonical totals move from 7,553 to 7,612 operations; the Bedrock family goes 216 → 222.Parity fixes
(all N ops)trailer contradicted the count cell fixed for Backup, EKS, OpenSearch, Account Management, and Identity Store.Gate hardening
N ops across,N of N Bedrock-family, list form), aggregator aliases (WAF v2→WAFv2), number-first claims,(all N ops)trailers, and bareN operationson single-service landing pages are all checked.Written for commit 0a6f333. Summary will update on new commits.