2020 crashes_found : ${{ steps.check.outputs.crashes_found }}
2121 crash_count : ${{ steps.check.outputs.crash_count }}
2222 first_crash_name : ${{ steps.check.outputs.first_crash_name }}
23+ artifact_url : ${{ steps.upload_artifacts.outputs.artifact-url }}
2324 steps :
2425 - uses : runs-on/action@v2
2526 with :
7576 echo "No crashes found"
7677 fi
7778 - name : Archive crash artifacts
79+ id : upload_artifacts
7880 if : steps.check.outputs.crashes_found == 'true'
7981 uses : actions/upload-artifact@v4
8082 with :
@@ -131,6 +133,7 @@ jobs:
131133 CRASH_FILE : ${{ needs.io_fuzz.outputs.first_crash_name }}
132134 CRASH_COUNT : ${{ needs.io_fuzz.outputs.crash_count }}
133135 WORKFLOW_RUN : https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
136+ ARTIFACT_URL : ${{ needs.io_fuzz.outputs.artifact_url }}
134137 BRANCH : ${{ github.ref_name }}
135138 COMMIT : ${{ github.sha }}
136139 uses : anthropics/claude-code-action@v1
@@ -150,6 +153,7 @@ jobs:
150153 - Stack trace (lines with `#0`, `#1`, etc.)
151154 - Error message ("panicked at" or "ERROR:")
152155 - Crash location (top user code frame, not std/core/libfuzzer)
156+ - Debug output (look for "Output of `std::fmt::Debug`:" section before the crash)
153157 3. Read the source code at the crash location to understand root cause
154158
155159 ## Step 2: Check for Duplicates
@@ -224,32 +228,35 @@ jobs:
224228
225229 **Root Cause**: [Your analysis]
226230
231+ **Debug Output** (if available):
232+ ```
233+ [Include any Debug: output or structured debug information from the fuzzer log]
234+ ```
235+
227236 ### Summary
228237
229238 - **Target**: `file_io`
230239 - **Crash File**: `$CRASH_FILE`
231- - **Total Crashes**: $CRASH_COUNT
232240 - **Branch**: $BRANCH
233241 - **Commit**: $COMMIT
234- - **Timestamp**: [current UTC time]
235- - **Workflow**: $WORKFLOW_RUN
242+ - **Crash Artifact**: $ARTIFACT_URL
236243
237244 ### Reproduction
238245
239- 1. Download the crash artifact from the workflow run :
240- - **Workflow run **: $WORKFLOW_RUN
241- - Look for the artifact named `io-fuzzing-crash-artifacts` at the bottom of the workflow run page
242- - Download and extract the zip file
246+ 1. Download the crash artifact:
247+ - **Direct download **: $ARTIFACT_URL
248+ - Or find `io-fuzzing-crash-artifacts` at: $WORKFLOW_RUN
249+ - Extract the zip file
243250
244251 2. Reproduce locally:
245252 ```bash
246253 # The artifact contains file_io/$CRASH_FILE
247- cargo +nightly fuzz run file_io file_io/$CRASH_FILE
254+ cargo +nightly fuzz run --sanitizer=none file_io file_io/$CRASH_FILE
248255 ```
249256
250257 3. Get full backtrace:
251258 ```bash
252- RUST_BACKTRACE=full cargo +nightly fuzz run file_io file_io/$CRASH_FILE
259+ RUST_BACKTRACE=full cargo +nightly fuzz run --sanitizer=none file_io file_io/$CRASH_FILE
253260 ```
254261
255262 ---
@@ -268,6 +275,7 @@ jobs:
268275 - CRASH_FILE: $CRASH_FILE
269276 - CRASH_COUNT: $CRASH_COUNT
270277 - WORKFLOW_RUN: $WORKFLOW_RUN
278+ - ARTIFACT_URL: $ARTIFACT_URL (direct link to crash artifact)
271279 - BRANCH: $BRANCH
272280 - COMMIT: $COMMIT
273281
0 commit comments