Skip to content

Commit a4a250f

Browse files
authored
Merge pull request #99 from Integration-Automation/dev
Add 37 utility modules (web platform, security, AI, i18n, backend, governance, emerging tech)
2 parents 65277b4 + c0c12ab commit a4a250f

238 files changed

Lines changed: 21919 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,85 @@ je_web_runner/
118118
├── test_debt_dashboard/ # Inventory of skip/xfail/TODO/_skip markers with age + CODEOWNERS
119119
├── sla_tracker/ # % suites finishing under SLA threshold, weekly/daily bucketing
120120
├── bug_repro_stability/ # Repeat probe N times, classify deterministic/flaky/non-reproducible
121-
└── test_owners_map/ # CODEOWNERS parser + override layer + unowned-test audit
121+
├── test_owners_map/ # CODEOWNERS parser + override layer + unowned-test audit
122+
├── popover_assert/ # <dialog>/popover open/close/invoker assertions
123+
├── cookie_store_api/ # Async cookieStore API harvest + change-event assertions
124+
├── speculation_rules/ # Speculation Rules (prerender/prefetch) verification + no-double-fire
125+
├── web_locks/ # Multi-tab Web Locks contention harness + deadlock/serialise assertions
126+
├── storage_buckets/ # Storage Buckets API isolation + durability + IDB-isolation checks
127+
├── hydration_streaming/ # Streaming SSR per-boundary timing + arrival/interactive assertions
128+
├── memory_pressure_emulate/ # CDP memory/CPU pressure emulation profiles + run-under-profile
129+
├── third_party_block_test/ # Vendor-by-vendor block-resilience matrix
130+
├── bundle_diff_pr/ # PR bundle delta (added/removed/grew) + markdown report + growth gate
131+
├── prompt_injection_scanner/ # LLM jailbreak payload library + canary-leak scan
132+
├── cors_matrix/ # CORS preflight matrix probe + credentials/origin policy assertions
133+
├── oauth_pkce_replay/ # Replay OAuth state/PKCE verifier; confirm server rejects
134+
├── cookie_chips_audit/ # CHIPS Partitioned cookie compliance auditor
135+
├── sbom_diff/ # CycloneDX SBOM diff (added/removed/upgrade/license/vuln)
136+
├── failure_auto_tag/ # Heuristic + LLM failure auto-tagger (flaky-locator/timeout/js-error...)
137+
├── test_self_describe/ # Reverse-engineer Gherkin Given/When/Then from action JSON
138+
├── pr_title_generator/ # Conventional-Commits PR title from diff + commit history
139+
├── action_refactor_suggester/ # Rule-based action-JSON refactor smells (hard sleep / positional xpath...)
140+
├── rtl_layout_verify/ # RTL layout direction / logical-property / bidi-isolation audit
141+
├── dst_boundary_test/ # DST spring-forward/fall-back gap & overlap detection + scheduled-fire model
142+
├── number_currency_locale/ # Number/currency/date locale-format assertion helpers
143+
├── wcag22_touch_target/ # WCAG 2.2 SC 2.5.8 target-size auditor with spacing-circle exception
144+
├── graphql_n_plus_1/ # N+1 query detector for GraphQL operations
145+
├── mq_assert/ # Kafka/RabbitMQ/SQS-style message-queue publish assertions
146+
├── grpc_streaming_assert/ # gRPC streaming (unary/server/client/bidi) frame/status/half-close
147+
├── webhook_signature_verify/ # GitHub/Stripe/Slack/generic HMAC webhook verifier
148+
├── test_roi_scorer/ # Find-rate/cost/coverage/recency-weighted ROI score per test
149+
├── pre_merge_gate_dsl/ # Declarative pre-merge gate rules (when/require) over PrFacts
150+
├── commit_msg_trigger/ # Parse [skip ci]/[ci e2e]/[ci shard=3/8]/tickets from commit message
151+
├── flakiness_graveyard/ # Quarantine/revive/bury ledger with TTL for stale flaky tests
152+
├── test_blame_owner/ # CODEOWNERS + git-blame + HEAD + default → test owner chain
153+
├── webgpu_pixel_verify/ # WebGPU canvas pixel readback + mean/solid/tile-diff assertions
154+
├── webhid_mock/ # WebHID device shim with input/output report harness
155+
├── webusb_mock/ # WebUSB device shim with control/bulk transfer capture
156+
├── webserial_mock/ # Web Serial UART shim + line write capture
157+
├── webcodecs_assert/ # WebCodecs chunk codec/resolution/keyframe/framerate assertions
158+
├── speech_api_assert/ # SpeechSynthesis/SpeechRecognition mock + spoke/lang assertions
159+
├── webauthn_mock/ # WebAuthn / FIDO2 / Passkey navigator.credentials shim
160+
├── credential_management/ # navigator.credentials password/federated autofill mock
161+
├── payment_request_assert/ # Payment Request API + Apple/Google Pay sheet validation
162+
├── three_d_secure_flow/ # 3DS challenge / frictionless / fallback path assertions
163+
├── rag_grounding_assert/ # RAG citation + grounding + hallucination phrase scan
164+
├── llm_token_cost_tracker/ # Per-test token/$ ledger + per-model rate card + budget
165+
├── streaming_chat_assert/ # TTFT / inter-token gap / UTF-8 / dup-or-OOS chunk assertions
166+
├── tool_call_assert/ # LLM tool/function call name+order+arg-schema assertions
167+
├── hallucination_probe/ # Ground-truth probe runner + hallucination rate budget
168+
├── web_push_assert/ # VAPID subscription + endpoint + userVisibleOnly + showNotification
169+
├── background_sync_assert/ # Background Sync register/fire/retry/lastChance assertions
170+
├── wake_lock_assert/ # Screen wake lock acquire/release/leak/re-acquire detection
171+
├── pip_assert/ # Picture-in-Picture (video + document) enter/exit/size assertions
172+
├── web_share_assert/ # navigator.share recorder + payload + fallback assertions
173+
├── compression_streams/ # CompressionStream gzip/deflate/brotli round-trip + ratio budget
174+
├── compute_pressure/ # Compute Pressure API fake observer + throttle reaction assertions
175+
├── touch_gesture/ # tap/swipe/pinch/long-press CDP-frame builder + event assertions
176+
├── viewport_audit/ # viewport meta + safe-area-inset + WCAG 1.4.4 scalable audit
177+
├── virtual_keyboard/ # visualViewport before/after + keyboard inset + focused-visible
178+
├── pull_to_refresh/ # overscroll-behavior + threshold + refresh handler + network refetch
179+
├── email_deliverability/ # SPF/DKIM/DMARC + List-Unsubscribe + BCC leak header audit
180+
├── inbox_render_outlook/ # Outlook/Gmail/Apple Mail render compatibility pre-flight
181+
├── push_delivery/ # FCM/APNs payload size + required fields + PII + collapse + TTL
182+
├── lcp_image_audit/ # LCP image preload + no-lazy + fetchpriority=high assertions
183+
├── font_loading_strategy/ # @font-face display + size-adjust + FOIT/FOUT/FOFT verification
184+
├── resource_hints_audit/ # preload/prefetch/preconnect used vs declared + preload-as audit
185+
├── critical_css_audit/ # Inline-CSS-in-head + first-packet budget + preload-blocking-CSS
186+
├── lighthouse_regression/ # Lighthouse score regression vs baseline + CWV metric budget
187+
├── dom_xss_taint/ # source→sink JS instrumentation + canary-based taint detection
188+
├── csp_violation_parser/ # CSP report-uri / report-to parser + recon heuristic
189+
├── hsts_preload_audit/ # HSTS preload-list compliance (max-age + includeSubDomains + preload)
190+
├── tls_cipher_audit/ # Live TLS handshake + version + cipher allowlist + subject check
191+
├── cookie_scope_abuse/ # Session-like cookie scope / HttpOnly / Secure / SameSite audit
192+
├── test_dup_dry/ # Structural action-JSON duplicate + prefix-overlap detection
193+
├── snapshot_diff_approval/ # Baseline/pending/rejected snapshot register + approval workflow
194+
├── failure_cluster_dbscan/ # Failure-message tokeniser + DBSCAN root-cause clustering
195+
├── test_naming_lint/ # should_when / given_when_then / camel_subject naming linter
196+
├── openapi_drift/ # Live API vs spec drift (undocumented / zombie / status / method)
197+
├── api_version_compat/ # Old-client vs new-server backward-compat response/request matrix
198+
├── rate_limit_assert/ # 429 / Retry-After / X-RateLimit headers + recovery assertions
199+
└── har_to_openapi/ # HAR → OpenAPI 3.1 path/method/query/schema reverse engineering
122200
```
123201

124202
## Design Patterns & Architecture

README.md

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,6 +1064,199 @@ only what you use).
10641064
- **`cross_tab_sync`** — Multi-page BroadcastChannel / storage
10651065
propagation asserts.
10661066

1067+
### Modern web platform & runtime APIs
1068+
1069+
Modules covering newer browser surfaces that are awkward to drive
1070+
through plain WebDriver:
1071+
1072+
- **`popover_assert`**`<dialog>` / popover open / close / invoker
1073+
/ "only one modal" assertions.
1074+
- **`cookie_store_api`** — Async `cookieStore` API harvest +
1075+
change-event assertions + secure-only enforcement.
1076+
- **`speculation_rules`** — Speculation Rules (`prerender` /
1077+
`prefetch`) verification, prerendering activation, no-double-fire.
1078+
- **`web_locks`** — Multi-tab Web Locks contention harness with
1079+
deadlock + serialisation + acquired-count assertions.
1080+
- **`storage_buckets`** — Storage Buckets API isolation, durability
1081+
hint, and IDB-per-bucket isolation checks.
1082+
- **`hydration_streaming`** — Streaming SSR per-boundary timing
1083+
(arrival, interactive) + order assertions.
1084+
- **`web_push_assert`** — Push subscription VAPID key match,
1085+
endpoint allowlist, `userVisibleOnly`, `showNotification` payload.
1086+
- **`background_sync_assert`** — Background Sync register / fire /
1087+
retry / `lastChance` (quota-exhaustion) assertions.
1088+
- **`wake_lock_assert`** — Screen wake lock acquire / release / leak
1089+
/ re-acquire-on-visibility detection.
1090+
- **`pip_assert`** — Picture-in-Picture (video + Document PiP)
1091+
enter / exit / size assertions.
1092+
- **`web_share_assert`**`navigator.share` payload recording +
1093+
fallback-UI assertions.
1094+
- **`compression_streams`**`CompressionStream` gzip / deflate /
1095+
brotli round-trip + compression ratio budget.
1096+
- **`compute_pressure`** — Compute Pressure API fake observer + app
1097+
throttle-reaction assertions.
1098+
1099+
### Modern auth, payments, identity
1100+
1101+
- **`webauthn_mock`** — Deterministic `navigator.credentials` shim
1102+
for Passkey / FIDO2 / WebAuthn flows; build canned credentials by
1103+
user.
1104+
- **`credential_management`** — Password / Federated Credential
1105+
Management API mock + autofill / `preventSilentAccess` assertions.
1106+
- **`payment_request_assert`** — Payment Request API shim + Apple
1107+
Pay / Google Pay sheet validation (currency, shipping, `complete()`).
1108+
- **`three_d_secure_flow`** — 3-D Secure 2.x branch model
1109+
(frictionless / challenge / fallback / reject) + silent-finalize
1110+
detection.
1111+
1112+
### Mobile-web specific
1113+
1114+
- **`touch_gesture`**`tap` / `swipe` / `pinch` / `long_press`
1115+
CDP-frame builder + event assertions.
1116+
- **`viewport_audit`** — Viewport meta + safe-area-inset audit +
1117+
WCAG 1.4.4 user-scalable audit.
1118+
- **`virtual_keyboard`**`visualViewport` before / after + keyboard
1119+
inset CSS variable + focused-element visibility.
1120+
- **`pull_to_refresh`**`overscroll-behavior` + threshold + refresh
1121+
handler + network-refetch assertions for PWAs.
1122+
1123+
### LLM / AI feature testing
1124+
1125+
- **`rag_grounding_assert`** — RAG citation in retrieved set,
1126+
lexical overlap, unsupported-claim phrase scan.
1127+
- **`llm_token_cost_tracker`** — Per-test token / $ ledger with
1128+
per-model rate card + budget assertion.
1129+
- **`streaming_chat_assert`** — TTFT / inter-token gap / UTF-8
1130+
cleanliness / duplicate-or-OOS chunk assertions for streaming chat.
1131+
- **`tool_call_assert`** — LLM tool / function-call name + ordering
1132+
+ JSON Schema argument validation.
1133+
- **`hallucination_probe`** — Ground-truth probe runner + refusal
1134+
detection + hallucination-rate budget.
1135+
1136+
### Email & notification delivery
1137+
1138+
- **`email_deliverability`** — SPF / DKIM / DMARC headers +
1139+
`List-Unsubscribe` (Gmail/Yahoo bulk rules) + BCC-leak audit.
1140+
- **`inbox_render_outlook`** — Outlook (Word renderer) / Gmail /
1141+
Apple Mail render-compatibility pre-flight findings.
1142+
- **`push_delivery`** — FCM / APNs payload size + required fields
1143+
+ PII scan + collapse key + TTL validation.
1144+
1145+
### Performance budgets (cont.)
1146+
1147+
- **`memory_pressure_emulate`** — CDP memory / CPU pressure
1148+
emulation profiles + run-under-profile assertions.
1149+
- **`third_party_block_test`** — Vendor-by-vendor block-resilience
1150+
matrix (no-vendor / blocked / passed).
1151+
- **`bundle_diff_pr`** — PR bundle delta (added / removed / grew) +
1152+
growth-gate + markdown report.
1153+
- **`lcp_image_audit`** — LCP image preloaded + no `loading="lazy"`
1154+
+ `fetchpriority="high"` assertions.
1155+
- **`font_loading_strategy`**`@font-face` `font-display` strategy
1156+
+ `size-adjust` fallback for FOUT / FOIT / FOFT verification.
1157+
- **`resource_hints_audit`**`preload` / `prefetch` / `preconnect`
1158+
used vs declared + `preload as=` validation.
1159+
- **`critical_css_audit`** — Inline-CSS-in-`<head>` budget + render-
1160+
blocking external stylesheet preload audit.
1161+
- **`lighthouse_regression`** — Lighthouse score regression vs
1162+
baseline + Core Web Vitals metric budgets.
1163+
1164+
### Security & headers (cont.)
1165+
1166+
- **`prompt_injection_scanner`** — LLM jailbreak payload library +
1167+
canary-leak detection.
1168+
- **`cors_matrix`** — CORS preflight matrix probe + credentials /
1169+
origin policy assertions.
1170+
- **`oauth_pkce_replay`** — Confirm authorization server rejects
1171+
replayed OAuth state / PKCE verifier.
1172+
- **`cookie_chips_audit`** — CHIPS Partitioned cookie compliance
1173+
(third-party requires Partitioned + Secure + SameSite=None).
1174+
- **`sbom_diff`** — CycloneDX SBOM diff (added / removed / upgrade
1175+
/ license / vulnerability gates).
1176+
- **`webhook_signature_verify`** — GitHub / Stripe / Slack / generic
1177+
HMAC webhook signature verifier.
1178+
- **`dom_xss_taint`** — Lightweight DOM-XSS taint tracking via JS
1179+
instrumentation + canary detection.
1180+
- **`csp_violation_parser`** — CSP `report-uri` / `report-to`
1181+
payload parser + recon-attempt heuristic.
1182+
- **`hsts_preload_audit`** — HSTS preload-list compliance
1183+
(`max-age` ≥ 1y + `includeSubDomains` + `preload`).
1184+
- **`tls_cipher_audit`** — Live TLS handshake + version + cipher
1185+
allowlist + certificate subject check.
1186+
- **`cookie_scope_abuse`** — Session-like cookie scope (apex domain
1187+
/ `Path=/`) + `HttpOnly` / `Secure` / `SameSite` audit.
1188+
1189+
### Backend integration (cont.)
1190+
1191+
- **`graphql_n_plus_1`** — N+1 query detector with per-field SQL
1192+
template repetition + cartesian-fanout heuristic.
1193+
- **`mq_assert`** — Kafka / RabbitMQ / SQS-style message-queue
1194+
publish assertions (drain + matcher + idempotency + ordering).
1195+
- **`grpc_streaming_assert`** — gRPC streaming (unary / server /
1196+
client / bidi) frame count + size + order + half-close assertions.
1197+
- **`openapi_drift`** — Live API vs OpenAPI spec drift (undocumented
1198+
endpoint / method / status, zombie endpoints).
1199+
- **`api_version_compat`** — Old-client vs new-server backward-compat
1200+
matrix on response shape + required request fields.
1201+
- **`rate_limit_assert`** — 429 + `Retry-After` + `X-RateLimit-*`
1202+
monotonic + recovery-after-wait assertions.
1203+
- **`har_to_openapi`** — HAR → OpenAPI 3.1 reverse engineering
1204+
(path templates, query params, response schemas).
1205+
1206+
### QA governance & DevX (cont.)
1207+
1208+
- **`failure_auto_tag`** — Heuristic + LLM failure auto-tagger
1209+
(`flaky-locator` / `timeout` / `js-error` / `network-5xx` …).
1210+
- **`test_self_describe`** — Reverse-engineer Gherkin
1211+
`Given / When / Then` paragraph from action JSON.
1212+
- **`pr_title_generator`** — Conventional-Commits PR title from
1213+
diff + commit history.
1214+
- **`action_refactor_suggester`** — Action-JSON refactor smells
1215+
(hard sleep, positional XPath, duplicated locator, click-wait-click).
1216+
- **`test_roi_scorer`** — Find-rate × cost × coverage × recency
1217+
weighted ROI score per test.
1218+
- **`pre_merge_gate_dsl`** — Declarative `when` / `require` pre-merge
1219+
gate rules over a `PrFacts` snapshot.
1220+
- **`commit_msg_trigger`** — Parse `[skip ci]` / `[ci e2e]` /
1221+
`[ci shard=3/8]` / `Closes #123` from commit message.
1222+
- **`flakiness_graveyard`** — Quarantine / revive / bury ledger with
1223+
TTL for stale flaky tests.
1224+
- **`test_blame_owner`** — CODEOWNERS + git-blame + HEAD + default
1225+
→ test-owner resolution chain.
1226+
- **`test_dup_dry`** — Structural action-JSON duplicate + prefix-
1227+
overlap detection (extract-helper opportunity).
1228+
- **`snapshot_diff_approval`** — Baseline / pending / rejected
1229+
snapshot register + approval workflow.
1230+
- **`failure_cluster_dbscan`** — Failure-message tokeniser + DBSCAN
1231+
root-cause clustering (pure-Python, no sklearn).
1232+
- **`test_naming_lint`**`should_when` / `given_when_then` /
1233+
`camel_subject` naming convention linter.
1234+
1235+
### i18n / a11y (cont.)
1236+
1237+
- **`rtl_layout_verify`** — RTL direction + logical-property
1238+
(`margin-inline-start`) + bidi-isolation audit.
1239+
- **`dst_boundary_test`** — DST spring-forward / fall-back gap &
1240+
overlap detection + scheduled-fire model.
1241+
- **`number_currency_locale`** — Number / currency / date locale-
1242+
format assertion helpers (incl. Indian lakh grouping).
1243+
- **`wcag22_touch_target`** — WCAG 2.2 SC 2.5.8 target-size auditor
1244+
with spacing-circle exception.
1245+
1246+
### Emerging-tech device APIs
1247+
1248+
- **`webgpu_pixel_verify`** — WebGPU canvas pixel readback + mean /
1249+
solid-colour / tile-diff assertions.
1250+
- **`webhid_mock`** — WebHID device shim with input / output report
1251+
capture harness.
1252+
- **`webusb_mock`** — WebUSB device shim with control / bulk
1253+
transfer capture.
1254+
- **`webserial_mock`** — Web Serial UART shim + line-write capture.
1255+
- **`webcodecs_assert`** — WebCodecs chunk codec / resolution /
1256+
keyframe-interval / framerate assertions.
1257+
- **`speech_api_assert`**`SpeechSynthesis` / `SpeechRecognition`
1258+
mock + utterance / language / volume assertions.
1259+
10671260
For per-module reference also see [`CLAUDE.md`](CLAUDE.md), the
10681261
auto-generated [`docs/reference/command_reference.md`](docs/reference/command_reference.md),
10691262
and the Sphinx chapter under

0 commit comments

Comments
 (0)