Skip to content
Agentmart
Submit a tool

new-scanner

Scaffold a new vulnerability scanner implementation with tests following the project's existing pattern.

Skill by konflux-ci

IndexedApache-2.0★ 5
Write a review

Chalk Labs

Need help deploying new-scanner?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/konflux-ci-new-scanner

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Scaffold a new vulnerability scanner implementation with tests following the project's existing pattern. Use when adding support for a new scanner tool.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/new-scanner

Tools it pre-approves 4

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash
  • Read
  • Write
  • Edit

What's inside

Skill name
new-scanner
Description
Scaffold a new vulnerability scanner implementation with tests following the project's existing pattern. Use when adding support for a new scanner tool.
License
Apache-2.0
Allowed tools
Bash, Read, Write, Edit
Instructions
86 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves any shell command

Files (1)

  • SKILL.md

SKILL.md (first lines)

# New Scanner

Scaffold a complete scanner implementation for `$name` using the `$cli` CLI tool.

**Validate `$name` first:** it must be a valid Python identifier (lowercase letters, numbers, underscores only). If it contains dashes, spaces, or other invalid characters, normalize it (e.g., `my-scanner` becomes `my_scanner`) and use the normalized form for file names, class names, and method names throughout.

## Step 1: Discover the CLI

Run `$cli --help` to learn available subcommands and flags. Identify:
- The version flag (e.g., `--version`, `version`)
- How to scan an SBOM file
- How to scan a container image
- How to get JSON output

## Step 2: Discover the JSON structure

Run both example commands provided by the user:

Image scan:
```
$example_image
```

SBOM scan:
```
$example_sbom
```

Inspect the JSON output from each and identify:
- Where vulnerability entries live in the JSON hierarchy
- The field name for the vulnerability/CVE ID
- The field names for package name and installed version

## Step 3: Read the existing pattern

Read these files to understand the conventions:
- `diffused/diffused/scanners/base.py` — abstract base class with 4 required methods
- `diffused/diffused/scanners/trivy.py` — reference implementation
- `diffused/diffused/scanners/registry.py` — the `SCANNERS` map where scanners are registered
- `diffused/tests/scanners/test_trivy.py` — reference test structure
- `diffused/tests/conftest.py` — shared fixtures (`test_image`, `test_sbom_path`)

## Step 4: Create the scanner implementation

Create `diffused/diffused/scanners/$name.py`:
- Subclass `BaseScanner`
- Implement all 4 abstract methods using the discovered CLI commands and JSON structure:
  - `scan_sbom()` — run the scanner on `self.sbom`, parse JSON into `self.raw_result`
  - `scan_image()` — run the scanner on `self.image`, parse JSON into `self.raw_result`
  - `process_result()` — parse `self.raw_result` into `self.processed_result` (a `defaultdict[str, set[Package]]` mapping CVE IDs to sets of Package objects)
  - `get_version()` — static method, return the scanner version string
- Add a `_run_$name_command(self, cmd, operation)` helper with 120s timeout
- Follow the error handling convention: store errors in `self.error`, do not raise from scan/process methods
- Use `logging` for all log messages

## Step 5: Create the test file

Create `diffused/tests/scanners/test_$name.py`:
- Use the discovered JSON output as sample test data in fixtures
- Cover: initialization, scan_sbom, scan_image, process_result, get_version
- Use `unittest.mock` (`patch`, `MagicMock`) for subprocess mocking
- Reuse fixtures from `conftest.py` (`test_image`, `test_sbom_path`)
- Follow the same test structure as `test_trivy.py`

## Step 6: Register the scanner

Edit `diffused/diffused/scanners/registry.py`:
- Add an import for the new scanner class
- Add an entry to the `SCANNERS` dict (used by `get_scanner_class()`, which both `VulnerabilityDiffer` and `ScanReport` select scanners through)

Edit `diffusedcli/diffusedcli/cli.py`:
- Add `$name` to the `click.Choice` list in the `--scanner` option
- Check for any scanner-specific restrictions in the CLI commands (e.g., SBOM scanning guards) and update them if the new scanner supports those features

## Step 7: Run tests

Run `tox -e py39-pytest,py39-pytest-cli` and fix any failures until tests pass with 100% code coverage on the new scanner file.

## Step 8: Summary

Present a summary:
- Files created and modified
- CLI commands and JSON fields discovered
- Any manual steps remaining

From konflux-ci/diffused, Apache-2.0.

Signals

Stars
5
Forks
6
Open issues
0
Last commit (this folder)
Oct 22, 2026 (9 days ago)
Last release
Sep 8, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from konflux-ci

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get new-scanner running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying new-scanner?

CallGet help
Cite this page

new-scanner skill. Agent Mart. https://agentmart.dev/skills/konflux-ci-new-scanner (last updated 2026-10-24)