Skip to main content

vulkro-sf coverage-attest and vulkro-sf coverage-risk

Two commands that read the Apex coverage report your test run already produced. coverage-attest checks it against a coverage bar; coverage-risk ranks the gaps by business criticality. Vulkro does not run the tests.

sf apex run test --code-coverage --json > coverage.json
vulkro-sf coverage-attest coverage.json
vulkro-sf coverage-risk coverage.json

coverage-attest​

Checks that org-wide and per-class coverage meet the AgentExchange (formerly AppExchange) Security Review bar of 75%, and names every under-covered class.

Argument or flagWhat it does
<COVERAGE>The Apex coverage JSON report.
--min <pct>Required coverage percentage. Default 75.
--format <table|json>Output format. Default table.

Exit codes: 0 coverage meets the bar, 1 below the bar, 2 error (unreadable file, not a coverage report, unknown --format).

coverage-risk​

Ranks each under-covered class by coverage gap times process criticality, so a gap on a payment class outranks the same gap on a logger. An under-covered class on a high-criticality process raises SF-COVERAGE-RISK-001.

The criticality map lives at .vulkro-sf/business-processes.yaml:

coverage_target: 75 # optional, default 75
processes:
- name: Payment authorization
criticality: 10 # 1 to 10, higher is more critical
patterns: [Payment, Billing, Invoice] # matched against class names
- name: Internal tooling
criticality: 2
patterns: [Logger]
Argument or flagWhat it does
<COVERAGE>The Apex coverage JSON report.
--processes <file>The criticality map. Default .vulkro-sf/business-processes.yaml.
--format <table|json>Output format. Default table.

Exit codes: 0 no high-risk gap, 1 at least one SF-COVERAGE-RISK-001, 2 error (unreadable file, bad map, unknown --format).