docs(flaky-tests): document webhook event schemas with field descriptions#548
Conversation
…ions PR #3519 added descriptive metadata to the three Flaky Tests webhook event schemas published via Svix. Each event type now has per-field descriptions visible in the Svix app portal. Add reference tables for test_case.monitor_status_changed, v2.test_case.status_changed, and test_case.investigation_completed to the Flaky Tests webhooks page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
😎 Merged successfully - details. |
|
Claude finished @samgutentag's task in 1m 17s —— View job Review complete
The documentation adds clear, well-structured reference tables for all three Flaky Tests webhook event types. Overall it's a solid addition. I left 5 inline comments covering the following issues — all are minor and non-blocking:
No blocking issues — documentation is accurate, complete, and well-organized. ✅ |
| | `type` | string | Always `test_case.monitor_status_changed` | | ||
| | `timestamp` | string (ISO 8601) | When the event occurred | | ||
| | `monitor.id` | string (UUID) | Unique identifier for the monitor | | ||
| | `monitor.type` | string | The type of monitor (e.g. `pass_on_retry`) | |
There was a problem hiding this comment.
Missing comma after "e.g." — should be "e.g., pass_on_retry" per standard English style. Same issue appears on lines 44 and 71.
| | `monitor.type` | string | The type of monitor (e.g. `pass_on_retry`) | | |
| | `monitor.type` | string | The type of monitor (e.g., `pass_on_retry`) | |
|
|
||
| #### `v2.test_case.status_changed` | ||
|
|
||
| Emitted when a test case changes status (e.g. becomes flaky or is resolved), triggered by a monitor. |
There was a problem hiding this comment.
Two issues:
- Missing comma after "e.g."
- The trailing "triggered by a monitor" reads as an awkward dangling modifier. Consider rephrasing for clarity.
| Emitted when a test case changes status (e.g. becomes flaky or is resolved), triggered by a monitor. | |
| Emitted when a test case changes status (e.g., becomes flaky or is resolved), as triggered by a monitor. |
| | `test_case.classname` | string | Test classname | | ||
| | `test_case.file_path` | string | File path of the test | | ||
| | `test_case.html_url` | string | URL to the test detail page in Trunk | | ||
| | `test_case.codeowners` | string[] | Code owners associated with the test | |
There was a problem hiding this comment.
Type notation inconsistency: string[] here but array is used for the facts field (line 70). Pick one convention and apply it consistently throughout the tables.
| | `test_case.codeowners` | string[] | Code owners associated with the test | | |
| | `test_case.codeowners` | array of strings | Code owners associated with the test | |
| | `timestamp` | string (ISO 8601) | When the event occurred | | ||
| | `previous_status` | string | The prior status of the test case | | ||
| | `new_status` | string | The updated status of the test case | | ||
| | `triggered_by.monitor_id` | string | Unique identifier of the triggering monitor | |
There was a problem hiding this comment.
The monitor.id field in the first table is typed as string (UUID), but this analogous ID field is just string. If it's always a UUID, use string (UUID) for consistency.
| | `triggered_by.monitor_id` | string | Unique identifier of the triggering monitor | | |
| | `triggered_by.monitor_id` | string (UUID) | Unique identifier of the triggering monitor | |
| | `markdown_summary` | string | Markdown-formatted summary of findings and recommendations | | ||
| | `failure_message` | string | The original failure message that triggered the investigation | | ||
| | `facts` | array | Facts discovered during the investigation | | ||
| | `facts[].fact_type` | string | Category of the fact (e.g. `GIT_BLAME`) | |
There was a problem hiding this comment.
Missing comma after "e.g." (same issue as lines 28 and 44).
| | `facts[].fact_type` | string | Category of the fact (e.g. `GIT_BLAME`) | | |
| | `facts[].fact_type` | string | Category of the fact (e.g., `GIT_BLAME`) | |
|
Triage status (2026-05-05): up to date with main. Needs review before merge. |
|
Claude finished @samgutentag's task in 1m 17s —— View job Review complete
This synchronize event was a merge from
All findings are minor style/consistency nits — no blocking issues. The documentation itself is accurate, complete, and well-organized. |
| | `type` | string | Always `test_case.monitor_status_changed` | | ||
| | `timestamp` | string (ISO 8601) | When the event occurred | | ||
| | `monitor.id` | string (UUID) | Unique identifier for the monitor | | ||
| | `monitor.type` | string | The type of monitor (e.g. `pass_on_retry`) | |
There was a problem hiding this comment.
Missing comma after "e.g." — should be "e.g., pass_on_retry" per standard English style. Same issue appears on lines 44 and 71.
| | `monitor.type` | string | The type of monitor (e.g. `pass_on_retry`) | | |
| | `monitor.type` | string | The type of monitor (e.g., `pass_on_retry`) | |
| | `test_case.classname` | string | Test classname | | ||
| | `test_case.file_path` | string | File path of the test | | ||
| | `test_case.html_url` | string | URL to the test detail page in Trunk | | ||
| | `test_case.codeowners` | string[] | Code owners associated with the test | |
There was a problem hiding this comment.
Type notation inconsistency: string[] here, but array is used for the facts field (line 70). Pick one convention and apply it consistently throughout the tables.
| | `test_case.codeowners` | string[] | Code owners associated with the test | | |
| | `test_case.codeowners` | array of strings | Code owners associated with the test | |
|
|
||
| #### `v2.test_case.status_changed` | ||
|
|
||
| Emitted when a test case changes status (e.g. becomes flaky or is resolved), triggered by a monitor. |
There was a problem hiding this comment.
Two issues:
- Missing comma after "e.g."
- The trailing "triggered by a monitor" reads as a dangling modifier. Consider rephrasing for clarity.
| Emitted when a test case changes status (e.g. becomes flaky or is resolved), triggered by a monitor. | |
| Emitted when a test case changes status (e.g., becomes flaky or is resolved), as triggered by a monitor. |
| | `timestamp` | string (ISO 8601) | When the event occurred | | ||
| | `previous_status` | string | The prior status of the test case | | ||
| | `new_status` | string | The updated status of the test case | | ||
| | `triggered_by.monitor_id` | string | Unique identifier of the triggering monitor | |
There was a problem hiding this comment.
The monitor.id field in the first table is typed as string (UUID), but this analogous ID field is just string. If it's always a UUID, use string (UUID) for consistency.
| | `triggered_by.monitor_id` | string | Unique identifier of the triggering monitor | | |
| | `triggered_by.monitor_id` | string (UUID) | Unique identifier of the triggering monitor | |
| | `markdown_summary` | string | Markdown-formatted summary of findings and recommendations | | ||
| | `failure_message` | string | The original failure message that triggered the investigation | | ||
| | `facts` | array | Facts discovered during the investigation | | ||
| | `facts[].fact_type` | string | Category of the fact (e.g. `GIT_BLAME`) | |
There was a problem hiding this comment.
Missing comma after "e.g." (same issue as lines 28 and 44).
| | `facts[].fact_type` | string | Category of the fact (e.g. `GIT_BLAME`) | | |
| | `facts[].fact_type` | string | Category of the fact (e.g., `GIT_BLAME`) | |
|
Verification status (2026-05-07, re-verified): Verified: customers can use this. Ready to publish.
Review nits applied in commit
Suggested next action: flip out of draft and merge. |
Five small consistency and grammar fixes flagged by the Claude review bot on 2026-04-14 and re-flagged on 2026-05-06. None blocking, all applied verbatim to the bot's suggestion or with a minor adjustment. * Add comma after "e.g." on lines 28, 44, and 71 (style) * Line 38: change `string[]` to `array of strings` for consistency with the prose-form types used elsewhere in the file (line 70 uses `array`, parenthetical qualifiers used throughout) * Line 44: rephrase to "Emitted when a test case changes status (e.g., becomes flaky or is resolved), as triggered by a monitor." Removes the dangling modifier. * Line 52: change `triggered_by.monitor_id` type from `string` to `string (UUID)` for consistency with `monitor.id`, `repository.id`, `test_case.id`, and `investigation_id` elsewhere in the same file. Confirmed by inspection of the eng PR's example payload, which emits a UUID. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Claude finished @samgutentag's task in 36s —— View job Review complete
All five previously-flagged nits are resolved in
I re-read the file end-to-end for any remaining typos, grammar issues, or formatting inconsistencies and found none. Type notation is consistent across all three tables ( No blocking issues. Documentation is accurate, complete, and ready to merge. ✅ |
|
Claude finished @samgutentag's task in 1m 7s —— View job Review complete
All five previously flagged review nits are resolved at
Re-read the file end-to-end for any remaining typos, grammar issues, or formatting inconsistencies — none found. Type notation is uniform across all three tables ( No blocking issues. Documentation is accurate, complete, and ready to merge. ✅ |
Summary
test_case.monitor_status_changed,v2.test_case.status_changed, andtest_case.investigation_completedSource
Test plan