بنقرة واحدة
synthesize-repair-build
Repair fuzz scaffold after build failures with strategy change and mapping consistency.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Repair fuzz scaffold after build failures with strategy change and mapping consistency.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Classify reproduced crashes into harness bug, upstream bug, or inconclusive using evidence only.
Generate complete fuzz scaffold artifacts aligned to selected targets and execution plan.
Discover, update, and rank vulnerability candidates before execution planning.
Apply minimal evidence-driven build fixes in fuzz scaffold files for next build attempt.
Repair scaffold for coverage replan cycles using seed and harness feedback as primary signals.
Re-plan targets and scaffold strategy after build-stage failures using diagnostic-first reasoning.
| name | synthesize_repair_build |
| description | Repair fuzz scaffold after build failures with strategy change and mapping consistency. |
| compatibility | opencode |
| metadata | {"stage":"synthesize-repair-build","owner":"tianheng"} |
Repairs scaffold files under fuzz/ for build-stage failures.
Use this skill in repair mode when the previous build failed.
repair_* diagnostics from coordinator contextfuzz/fuzz/execution_plan.json (if present)fuzz/fuzz/build.py or fuzz/build.shfuzz/README.mdfuzz/repo_understanding.jsonfuzz/build_strategy.jsonfuzz/build_runtime_facts.jsonfuzz/harness_index.json aligned to fuzz/execution_plan.jsonKnown Issues note in repair artifacts (README or repo_understanding) for unresolved blockersStrategy Delta note in repair artifacts that states what changed versus the previous failed attemptOutput Path Contract note declaring executable fuzzer outputs must be written to fuzz/out/fuzz/out/replay/<fuzzer> must be built with -fprofile-instr-generate -fcoverage-mapping for every native fuzzerfuzz/ and ./done; upstream/demo/contrib/example code is read-only and build repair must adapt harness/build glue instead.fuzz/harness_index.json so each execution target maps to existing harness.fuzz/build.py:
.c sources must use clang.cc/.cpp/.cxx sources must use clang++clang++ as universal compiler for mixed C/C++fuzz/build.py:
cmake binary directly, e.g. ["cmake", "-S", ...] and ["cmake", "--build", ...]sys.executable, "-m", "cmake" or python -m cmake; the runtime image does not guarantee the Python cmake packageapi_surface_exception with non-empty reason and evidence.non_public_api_usage, replace offending symbols first.main() in harness source;LLVMFuzzerTestOneInput (or language-equivalent fuzz entrypoint) as the only fuzz entry.uint8_t or size_t must include the standard headers that define them (<stdint.h> and <stddef.h> or C++ equivalents) in the harness source.fuzz/out/, including fuzz/out/replay/<name>, must link a runnable entrypoint. Prefer -fsanitize=fuzzer,address,undefined for both primary and replay executables; -fsanitize=fuzzer-no-link alone causes undefined reference to main unless a separate replay main() wrapper is compiled and linked to call LLVMFuzzerTestOneInput.fopen(argv[1], ...), read(argv[1], ...), manual corpus file loops).fuzz/repo_understanding.json.fuzz/system_packages.txt when the build actually fails on a missing external library (a concrete cmake/pkg-config "not found"/"No such file" error for a third-party dependency). It declares vcpkg ports to install — do NOT add ports speculatively. Self-contained projects (single-file or plain make/Makefile libraries with no external link deps, e.g. tomlc99-style parsers) need an EMPTY or absent file; declaring ports there triggers an unnecessary vcpkg bootstrap that wastes a build cycle. Never list a library that the repo already vendors/builds itself.fuzz/system_packages.txt (one per line, lowercase).fuzz/out/ and avoid root-level fuzz/ binary outputs.fuzz/out/replay/; replay binaries must be separately linked with LLVM profile coverage instrumentation and must be runnable executables, not fuzzer-no-link objects without main().CFLAGS/CXXFLAGS containing -fprofile-instr-generate -fcoverage-mapping.clang/clang++ (for example -DCMAKE_C_COMPILER=clang and -DCMAKE_CXX_COMPILER=clang++, or CC=clang CXX=clang++); do not pass LLVM coverage flags to /usr/bin/cc/GCC.subprocess compile commands must start with the compiler executable (clang or clang++); append sanitizer/coverage flags after the compiler, never as cmd[0].main() must not be linked into libFuzzer harnesses unless rewritten/guarded.fuzz/out/replay/.fuzz/out/ as the sole text of ./done (run echo 'fuzz/out/' > ./done; do not copy the file's contents).