Run or update the iccDEV AFL++ manual smoke workflow, seeds, and maintainer documentation.

BSD-3-ClauseAuto-check passedDevelopment

Install Afl Smoke

skills CLI
$ npx skills add InternationalColorConsortium/iccDEV --skill afl-smoke -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install InternationalColorConsortium/iccDEV afl-smoke --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/InternationalColorConsortium/iccDEV.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/afl-smoke .claude/skills/afl-smoke && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
afl-smoke
GitHub stars
183
Token cost
~1.7k tokens
SKILL.md length
637 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Run or update the iccDEV AFL++ manual smoke workflow, seeds, and maintainer documentation.

  • Works in 4 steps: Validate shell syntax and style → Validate workflow syntax and governance → Run a short local AFL smoke before… → …
  • Development work in your project
  • SKILL.md covers Local Checks and Update Rules
  • Calls apt-get, make and bash; reaches github.com

What it does

Afl Smoke is an agent skill from InternationalColorConsortium/iccDEV. Run or update the iccDEV AFL++ manual smoke workflow, seeds, and maintainer documentation.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development. It works with GitHub. The repository describes itself as: iccDEV provides a set of libraries and tools that allow for the interaction, manipulation, and application of ICC color management profiles. The licence is BSD-3-Clause.

When your agent uses it

  • Development work in your project

Example prompts

  • “/afl-smoke”

Requirements

  • Docker

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Validate shell syntax and style
  2. Validate workflow syntax and governance
  3. Run a short local AFL smoke before pushing when AFL++ is installed
  4. When changing AFL++ bootstrap behavior, validate the regression-container

What it can do on your machine

Read from SKILL.md and the folder at commit 3c2425d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • apt-get
    • make
    • bash
    • shellcheck
    • actionlint
    • docker
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Afl Smoke loads about 1.7k tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 637 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~25
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from InternationalColorConsortium/iccDEV at commit 3c2425d, republished under its BSD-3-Clause licence (© InternationalColorConsortium). 637 words, ~1,722 tokens.

Download SKILL.mdSave it as .claude/skills/afl-smoke/SKILL.md (or your agent's skills folder).
name
afl-smoke
description
Run or update the iccDEV AFL++ manual smoke workflow, seeds, and maintainer documentation.

AFL++ Smoke Workflow

Use this skill when changing .github/workflows/ci-afl-smoke.yml, .github/scripts/iccdev-afl-smoke.sh, or AFL smoke seed documentation.

Local Checks

  1. Validate shell syntax and style:

    bash
    bash -n .github/scripts/iccdev-afl-smoke.sh
    shellcheck .github/scripts/iccdev-afl-smoke.sh
  2. Validate workflow syntax and governance:

    bash
    actionlint .github/workflows/ci-afl-smoke.yml
    yamllint -d '{extends: default, rules: {line-length: disable, document-start: disable, truthy: disable}}' .github/workflows/ci-afl-smoke.yml
    .github/scripts/preflight-safety-checks.sh --require-tools
  3. Run a short local AFL smoke before pushing when AFL++ is installed:

    bash
    .github/scripts/iccdev-afl-smoke.sh --seconds 10 --targets dump --exec-timeout-ms 30000
    .github/ci/cfl/build.sh --targets dump,toxml,fromxml,tojson,fromjson,roundtrip,profilevisualize,writerserialize --seconds 30
  4. When changing AFL++ bootstrap behavior, validate the regression-container path with root inside the image:

    bash
    docker run --rm --user 0 ghcr.io/internationalcolorconsortium/iccdev:latest bash -lc '
    set -euo pipefail
    apt-get -o Acquire::Retries=3 -o Dpkg::Use-Pty=0 update -qq
    apt-get install -y -qq --no-install-recommends llvm-22-dev zlib1g-dev >/tmp/apt-install.log
    afl_src=$(mktemp -d)
    git clone --depth 1 --branch dev https://github.com/AFLplusplus/AFLplusplus.git "$afl_src"
    make -C "$afl_src" -j"$(nproc)" CC=clang-22 CXX=clang++-22 afl-fuzz afl-showmap
    make -C "$afl_src" -j"$(nproc)" CC=clang-22 CXX=clang++-22 LLVM_CONFIG=llvm-config-22 -f GNUmakefile.llvm \
      ./afl-cc ./afl-compiler-rt.o ./SanitizerCoveragePCGUARD.so ./cmplog-routines-pass.so
    probe=$(mktemp -d)
    printf "int main(void) { return 0; }\n" > "$probe/test.c"
    printf "int main(void) { return 0; }\n" > "$probe/test.cpp"
    AFL_PATH="$afl_src" AFL_CC=clang-22 AFL_CXX=clang++-22 "$afl_src/afl-clang-fast" -c "$probe/test.c" -o "$probe/test.o"
    AFL_PATH="$afl_src" AFL_CC=clang-22 AFL_CXX=clang++-22 "$afl_src/afl-clang-fast++" -c "$probe/test.cpp" -o "$probe/testxx.o"
    '

Update Rules

  • Treat this area as experimental maintainer scaffolding. The workflows should remain manual/reusable entry points for bounded fuzz checks from master or integration branches, not required merge gates.
  • Do not review files under .github/ci/fuzz-patches/afl or .github/ci/fuzz-patches/cfl as final upstream hardening changes. They are local validation patches; durable fixes must be promoted separately as normal source changes.
  • Keep workflow triggers manual or reusable unless maintainers explicitly widen them.
  • Keep CI AFL++ tooling sourced from https://github.com/AFLplusplus/AFLplusplus/tree/dev and rebuilt against the unified image's Clang/LLVM major version.
  • The unified image packages the compiler runtime needed by its packaged afl-clang-fast for short local smoke checks. The AFL workflow must still rebuild and probe AFL++ wrappers against the selected LLVM version.
  • Require a matching Clang 21 or Clang 22 C/C++ pair. The packaged wrapper uses 21 and the rebuilt workflow wrapper uses 22; reject older or mismatched AFL_CC and AFL_CXX values before configuring iccDEV.
  • Keep the workflow bootstrap narrow: build afl-fuzz, afl-showmap, afl-cc, afl-compiler-rt.o, SanitizerCoveragePCGUARD.so, and cmplog-routines-pass.so. Avoid broad AFL++ targets that enter optional GCC plugin or Nyx paths.
  • Keep the target allow-list inside .github/scripts/iccdev-afl-smoke.sh.
  • Keep the two lanes' target sets distinct. AFL onboarding stays dump,toxml,fromxml,tojson,fromjson,roundtrip,fromcube (the allow-list above); CFL adds the two in-process targets, dump,toxml,fromxml,tojson,fromjson,roundtrip,profilevisualize,writerserialize. profilevisualize and writerserialize are CFL-only and are rejected by the AFL runner. The first six CFL targets remain CLI-fidelity wrappers. Build profilevisualize and writerserialize in-process through public headers, with the engine sources in separate translation units; never include a CLI implementation or call processLuts() from either harness. writerserialize also links Mini{PDF,SVG,TIFF}.cpp to reach the serialization entries (#2116), and needs a corpus that still contains a CLUT seed (#2120).
  • Use .github/ci/fuzz-patches/afl and .github/ci/fuzz-patches/cfl for maintainer-local patch stacks when --patches is requested.
  • Keep ci-docker.yml manual-dispatch publication and regression-image verification in sync with AFL/CFL patch-stack helpers. Dispatch the container rebuild after the checker, applicator, smoke script, .github/ci/cfl/, or fuzz patches change.
  • Run .github/scripts/check-fuzz-patches.sh after editing either patch stack so malformed hunks or stale context are caught before workflow dispatch.
  • Keep manual AFL and CFL workflow inputs aligned: target_ref selects the branch, tag, or ref to check out, optional target_sha pins a full 40-character exact commit, and patch_mode selects all or none. CFL duration must be expressed as seconds per target, not LibFuzzer iteration or execution counts.
  • Keep selected AFL targets running in parallel with AFL++ affinity fallback enabled, and merge per-target summaries in a deterministic order.
  • Treat saved crashes as smoke failures. Report generated saved hangs as warn summary rows only after verifying Linux core_pattern is not piped; otherwise fail on saved hangs because AFL++ can misclassify crashes as timeouts under piped core handlers. Replay and triage hang artifacts before promoting them to regression evidence.
  • Upload any saved crash or hang testcase files as the afl-smoke-findings-<run-id> artifact and list them in the workflow summary. Sanitize uploaded artifact filenames and keep a manifest that records the original AFL paths.
  • Upload smoke logs and summary TSVs as separate artifacts so maintainers can debug failed builds even when no crash or hang artifact was generated.
  • Replay saved findings with .github/scripts/iccdev-fuzz-triage.sh and report the generated summary, logs, and one-line reproducers.
  • Keep numeric workflow options validated by the script, not only by the Actions input UI.
  • Pass workflow inputs through env: before shell use, but do not use unknown AFL_* variable names for workflow inputs because AFL++ warns on mistyped AFL environment variables.
  • Sanitize all summary output.
  • Track only tiny deterministic seeds. Do not commit AFL queues, crashes, hangs, coverage reports, profiler data, or generated build trees.

© InternationalColorConsortium, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/afl-smoke of InternationalColorConsortium/iccDEV.

Open the folder on GitHubat commit 3c2425d

Compare with similar skills

Afl Smoke next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Afl Smoke compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Afl Smoke this skillInternationalColorConsortium/iccDEV183—~1.7kAutomated safety check: PassBSD-3-Clause
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Greplooponyx-dot-app/onyx32k4 repos~3.3kAutomated safety check: PassMIT
Check PRonyx-dot-app/onyx32k2 repos~2.3kAutomated safety check: PassMIT
Setup Matt Pocock Skillsbestofjs/bestofjs3.1k20 repos~1.7kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed
  • Check PR

    onyx-dot-app/onyx

    Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.

    32k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • Setup Matt Pocock Skills

    bestofjs/bestofjs

    Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.

    3.1k GitHub starsUsed in 20 repos~1.7k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed

More from InternationalColorConsortium/iccDEV

All 23 skills in this repo
  • Avx2 Clut Diagnostics

    InternationalColorConsortium/iccDEV

    Diagnose runtime-dispatched AVX2 3D CLUT interpolation, collect trace evidence, validate vector and masked-tail output, and prepare optimization handoff data.

    183 GitHub stars~850 tokensUpdated yesterday
    Auto-check passed
  • Clusterfuzzlite

    InternationalColorConsortium/iccDEV

    Build, test, or update the iccDEV ClusterFuzzLite libFuzzer integration across ASan, UBSan, and MSan.

    183 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • iOS Clut Editor

    InternationalColorConsortium/iccDEV

    Build, review, and maintain the ios-clut-editor profile and 3D CLUT editing proof-of-concept app without repeating prior iOS review-loop failures.

    183 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • iOS Manual Examples

    InternationalColorConsortium/iccDEV

    Maintain the manual iOS example app CMake projects, local Xcode build helpers, device signing guard rails, and documentation.

    183 GitHub stars~796 tokensUpdated yesterday
    Auto-check passed
  • JSON Config Regression

    InternationalColorConsortium/iccDEV

    Validate iccDEV JSON/profile config parser changes with fail-closed regression gates and CLI exercises.

    183 GitHub stars~469 tokensUpdated yesterday
    Auto-check passed
  • Maintainer CI Ctest

    InternationalColorConsortium/iccDEV

    Maintainer workflow for scoping and updating iccDEV CI, CTest, CPack, sanitizer, workflow, and release-gate infrastructure.

    183 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Afl Smoke

What does Afl Smoke do?

Run or update the iccDEV AFL++ manual smoke workflow, seeds, and maintainer documentation. Afl Smoke is an agent skill from InternationalColorConsortium/iccDEV. Run or update the iccDEV AFL++ manual smoke workflow, seeds, and maintainer documentation.

When should I use Afl Smoke?

Afl Smoke fits situations like: development work in your project.

How do I install Afl Smoke in Claude Code?

Run `npx skills add InternationalColorConsortium/iccDEV --skill afl-smoke -a claude-code`. Or copy the skill folder (.github/skills/afl-smoke in InternationalColorConsortium/iccDEV) into .claude/skills/afl-smoke in your project. Claude Code loads it when a task matches its description.

How do I install Afl Smoke in Codex?

Run `npx skills add InternationalColorConsortium/iccDEV --skill afl-smoke -a codex`. Or copy the skill folder (.github/skills/afl-smoke in InternationalColorConsortium/iccDEV) into .agents/skills/afl-smoke in your project. Codex loads it when a task matches its description.

Can I use Afl Smoke in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add InternationalColorConsortium/iccDEV --skill afl-smoke -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/afl-smoke, .gemini/skills/afl-smoke, .github/skills/afl-smoke and .opencode/skills/afl-smoke in your project.

What does Afl Smoke need to run?

Going by SKILL.md and its folder, Afl Smoke needs the command-line tools its instructions call (apt-get, make, bash, shellcheck, actionlint and docker). Our summary lists: Docker.

Does Afl Smoke access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Afl Smoke safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Afl Smoke use?

Afl Smoke is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Afl Smoke use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Afl Smoke?

Skills that share tags, products or a category with Afl Smoke: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Greploop (onyx-dot-app/onyx, 32k stars), Check PR (onyx-dot-app/onyx, 32k stars) and Setup Matt Pocock Skills (bestofjs/bestofjs, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Afl Smoke?

InternationalColorConsortium (a GitHub organization) maintains it in InternationalColorConsortium/iccDEV, which has 183 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 9, 2026.

Source: InternationalColorConsortium/iccDEV on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.