internationalcolorconsortium/iccdev/clusterfuzzlite
Claude Code and agent skill by internationalcolorconsortium/iccdev
- community
Checking that the SKILL.md file is still in the repository.
Build, test, or update the iccDEV ClusterFuzzLite libFuzzer integration across ASan, UBSan, and MSan.
Install
npx vskill@latest install internationalcolorconsortium/iccdev/clusterfuzzliteSKILL.md
ClusterFuzzLite Integration
Use this skill for .clusterfuzzlite/**, .github/workflows/ci-clusterfuzzlite.yml, or the ClusterFuzzLite mode in .github/ci/cfl/build.sh.
Contract
- Treat libFuzzer as the single fuzzing engine and
address,undefined, and
memory as three separate sanitizer builds.
- Build all three in-process groups in ClusterFuzzLite:
core
(profileparse, cmmapply, profilevisualize, writerserialize), formats (xmlparse, jsonparse, connectconfig), and assessment (pawgreport).
- Forward the GitHub matrix group and patch mode through
CFL_EXTRA_*; the
official action builds a fresh GITHUB_SHA clone, so pre-step checkout file mutations do not reach the builder container.
- Forward and independently recompute the deterministic source-content digest.
Reject a builder snapshot that differs from the Actions checkout; the official action may otherwise fall back to its current clone when a queued commit becomes unreachable after a history rewrite.
- Keep the CLI-fidelity wrappers in the local CFL smoke lane; they launch child
tools and do not provide useful parent-process coverage feedback.
- Consume
CC,CXX,CFLAGS,CXXFLAGS, andLIB_FUZZING_ENGINEfrom the
OSS-Fuzz build environment. Do not combine hard-coded ASan flags with MSan.
- Require matching Clang 21 or Clang 22 compilers. The pinned OSS-Fuzz builder
supplies Clang 22; do not allow an older fallback.
- Keep tools and zlib disabled. Enable XML/JSON only for targets that consume
those libraries. The XML memory build must use the pinned instrumented libxml2 produced by the repository bootstrap.
- For
memory, build the pinned MSan libc++ and libc++abi before compiling the
fuzzers. Reject libstdc++ or a libc++ outside that runtime in ldd; for xmlparse, also reject libxml2 outside the bundled runtime. Replay the pinned #2687 artifact through every emitted target. Do not classify a dependency report from an uninstrumented runtime as iccDEV.
- Package tracked ICC, XML, and JSON fixtures only for the matching target
family. Keep the shared profile/text options and profile/XML/JSON dictionaries aligned with explicit local CFL limits.
- Keep
cmmapplycontrol bytes outside the ICC header so direction, intent,
and interpolation can mutate without corrupting the profile-size field.
- Keep a schema-shaped IccConnect seed and dedicated config dictionary. Drive
fromJson()/toJson() round trips for top-level and nested CIccCfg* objects before adding another configuration target.
- Keep the workflow limited to manual dispatch and the nightly schedule. Manual
dispatch defaults to one address/core smoke job; run_mode=full and the schedule use all nine group/sanitizer combinations.
- Keep the manual fuzz duration selectable as whole minutes from 2 through 45,
validate it before the sanitizer matrix, pass it as the budget for each target group, and retain a 2-minute per-group budget for scheduled runs.
- Keep corpus pruning runnable after a fuzz finding. Keep coverage an explicit
manual option that emits a ClusterFuzzLite artifact without broadening repository permissions.
- Before fuzzing, republish the latest valid exact-name corpus artifacts with
one-day retention. Use the GitHub artifact name filter so the pinned runner does not paginate the repository-wide artifact history; preserve an existing corpus and use an empty TAR only for a true cold start.
- Keep one temporary CFL patch per open MSan issue. Attempt patches in order,
report drift or already-integrated fixes, and continue the default workflow; reserve --strict for local patch-stack maintenance. Remove only the patch for an issue whose normal source fix has landed.
- Pin every action to a full commit SHA and the builder image to a digest.
Expansion Order
After strengthening an existing target, prefer a multi-profile CMM chain, separate XML/JSON serializers, and V5 display-observer conversion, in that order. Add image or carrier targets only with instrumented MSan dependencies. Do not copy the local research inventory wholesale; require a public in-process seam, structured seed, and distinct attribution boundary.
Local Validation
From an OSS-Fuzz checkout, run for each sanitizer in address, undefined, and memory:
Also run:
Report each build, instrumentation check, and bounded run separately. An MSan failure is not equivalent to an ASan or UBSan failure and must not be hidden by fallback flags or an allowed-broken-target percentage. Record the resolved C++ runtime for every MSan fuzzer, the XML target's resolved libxml2, and the #2687 one-shot replay result.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.github/skills/clusterfuzzlite/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/internationalcolorconsortium/iccdev/clusterfuzzlite)