Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when enrolling a project in OSS-Fuzz, running its helper workflow locally, or reproducing an OSS-Fuzz report. Not for remote, credential, publish, deploy, or irreversible changes.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
| Field | Bound contract |
|---|---|
| Trigger | User needs to enroll an open-source project in OSS-Fuzz, run its helper workflow locally, or reproduce an OSS-Fuzz report. |
| Authority | Reversible local: writes only named local artifacts (oss-fuzz clone, Docker images, project enrollment files); rollback is docker rmi for images and filesystem deletion for the clone. No remote mutation. |
| Side effect | OSS-Fuzz project integration files, Docker image builds, and local fuzzing campaign artifacts written to the oss-fuzz working directory. |
| Done | Task A: the project Docker image builds, fuzzers compile with AddressSanitizer, and the named harness executes. Task B: projects/<project_name>/project.yaml, Dockerfile, and build.sh are present and structurally valid. |
| Input | Required | Description |
|---|---|---|
project_name | Required | OSS-Fuzz project identifier (slug used in infra/helper.py commands and the projects/ subdirectory). |
harness_name | Required for local run | Fuzzer executable name inside the project's build output directory. |
language | Required for enrollment | Project language (e.g. c++, python, rust, go). |
main_repo | Required for enrollment | URL of the project's primary source repository. |
sanitizer | Optional | Sanitizer for build_fuzzers: address (default), undefined, coverage. |
fuzzer_args | Optional | Extra arguments passed through to the fuzzer binary. |
oss_fuzz_dir | Optional | Local path of the cloned oss-fuzz repository; defaults to ./oss-fuzz. |
primary_contact | Required for enrollment | Maintainer email for project.yaml. |
docker is available and the user has permission to run containers (docker info exits 0). Done when: docker info exits 0.oss_fuzz_dir does not exist or is not a git repository:
oss_fuzz_dir="${oss_fuzz_dir:-./oss-fuzz}"
git clone https://github.com/google/oss-fuzz "$oss_fuzz_dir"
Done when: the oss-fuzz repository is cloned and present at oss_fuzz_dir.oss_fuzz_dir="${oss_fuzz_dir:-./oss-fuzz}"
cd "$oss_fuzz_dir"
Done when: the working directory is the oss-fuzz directory.project_name="${project_name:?project_name is required}"
uv run --no-project python infra/helper.py build_image --pull "$project_name"
If build_image reports the project directory does not exist under projects/, stop and return enrollment-missing. Done when: the project Docker image builds successfully or enrollment-missing is returned.project_name="${project_name:?project_name is required}"
sanitizer="${sanitizer:-address}"
uv run --no-project python infra/helper.py build_fuzzers --sanitizer="$sanitizer" "$project_name"
Capture stdout/stderr. If the build exits non-zero, return build-failed with the captured output. Done when: fuzzers compile with the configured sanitizer and stdout/stderr are captured.project_name="${project_name:?project_name is required}"
harness_name="${harness_name:?harness_name is required}"
fuzzer_args="${fuzzer_args:-}"
uv run --no-project python infra/helper.py run_fuzzer "$project_name" "$harness_name" ${fuzzer_args:+"$fuzzer_args"}
Observe for at least 10 seconds. If the harness exits with a sanitizer report, return crash-detected with the report path. Otherwise return harness-ran. Done when: the harness runs for at least 10 seconds and returns harness-ran or crash-detected.$main_repo or an associated harness repository. Done when: a compatible harness is confirmed at $main_repo or the associated repository.projects/<project_name>/ under the oss-fuzz directory. Done when: the project directory is created.projects/<project_name>/project.yaml:
homepage: "<main_repo>"
language: "<language>"
primary_contact: "<primary_contact>"
main_repo: "<main_repo>"
fuzzing_engines:
- libfuzzer
sanitizers:
- address
Extend sanitizers and fuzzing_engines if the task specifies additional values. Done when: project.yaml is written with all required fields and any extensions.projects/<project_name>/Dockerfile using gcr.io/oss-fuzz-base/base-builder as the base image; add language-specific and project-specific RUN commands to install build dependencies. Do not copy source code directly; use git clone in the Dockerfile. Done when: Dockerfile is written with the base image and git clone for source.projects/<project_name>/build.sh as an executable script:
#!/bin/bash -eu.$CXX, $CXXFLAGS, $LIB_FUZZING_ENGINE, $SRC, and $OUT as provided by the OSS-Fuzz environment.$OUT if present.
Done when: build.sh is written as an executable script with all four elements.enrollment-artifacts-written listing the three files and their paths. Done when: the three artifact paths are returned.| Failure class | Trigger | Result |
|---|---|---|
docker-unavailable | docker info exits non-zero | Return blocked: docker-unavailable. Do not attempt container operations. |
enrollment-missing | projects/<project_name> absent and task is local run | Return blocked: enrollment-missing. Enrollment is out of scope for local-run unless explicitly requested. |
build-failed | build_fuzzers exits non-zero | Return failed: build-failed with captured stderr. Do not proceed to run step. |
crash-detected | Harness exits with ASan/UBSan report | Return crash-detected with the report file path. Do not suppress or dismiss the report. |
rollback | Any step fails; Docker images written by this session | Rollback: docker rmi $(docker images --filter=reference="gcr.io/oss-fuzz/$(basename "$project_name")*" -q) 2>/dev/null; delete the oss_fuzz_dir clone if this session created it. |
| Outcome | Output |
|---|---|
| Local run, build success, no crash | done: harness-ran: fuzzer is running and producing coverage or execution output. |
| Local run, crash detected | crash-detected: <report-path>: sanitizer report written to the build output directory. |
| Enrollment artifacts written | done: enrollment-artifacts-written: project.yaml, Dockerfile, build.sh paths listed. |
| Build failed | failed: build-failed: full build log for diagnosis. |
| Prerequisites not met | blocked: <failure-class>: reason stated, no progress claimed. |
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when configuring ADC sampling time, DMA-driven ADC, calibration, or DAC channel setup on bare-metal MCUs. Not for the DMA stream itself: use dma-baremetal.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when creating AF_XDP sockets, configuring UMEM and XSK rings, writing an XDP redirect program, or choosing copy versus zero-copy mode. Not for full kernel bypass: use dpdk.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when a redacted, trimmed agent transcript must be appended to a GitHub PR or issue body, with human approval and preview. Not for automated or model-initiated insertion.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential, publish, deploy, or irreversible changes.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.