CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

enforce-sbom

Add an SBOM Policy Enforcement (SscaEnforcement / CdSscaEnforcement) step to an existing Harness pipeline to verify SBOM attestations and apply OPA SBOM policy sets. Supports CI, Security, and CD (Deployment) including CI-only pipelines — if no Deploy stage exists, add one via Phase 3b (service, environment, infra, containerized step group) then place CdSscaEnforcement before deploy. Supports container images and repositories from Artifact Registry, Third-Party registries (docker, ECR, GCR, GAR, ACR), and Git. Matches Pipeline Studio SBOM Policy Enforcement UI. Only works with existing pipelines (may append a Deploy stage). Use when asked to enforce SBOM policies, add SBOM policy enforcement, verify SBOM attestation in pipeline, or block non-compliant components. Trigger phrases: enforce SBOM, SBOM policy enforcement, SBOM policy step, verify SBOM policy, SscaEnforcement, add policy enforcement after SBOM.

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

81%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable, well-sequenced operational skill: complete YAML patterns, a phase-by-phase wizard with explicit confirm-before-write checkpoints, error-retry loops, and troubleshooting keyed to specific error codes, with real one-level-deep local references. Its main weaknesses are redundancy (the CD-on-CI-only rule and the do-not-execute rule are each restated 3-5 times) and reliance on cross-skill reference paths that are not part of this bundle.

Suggestions

Consolidate the CD-on-CI-only guidance, currently repeated across the Interaction model (items 11-12), the phase table row 3b, the 'CD edge case (mandatory workflow)' section, Performance Notes, and Troubleshooting, into a single authoritative Phase 3b section and reference it from the other locations.

Slim the wizard phase table to the breadcrumb plus phase names and defer the per-phase actions to references/interactive-wizard-flow.md, which already documents every phase in full.

Copy the essential patterns from the sibling-skill references (cd-containerized-step-group.md, sbom-orchestration-step.md, entity-sbom.md) into this skill's references/ directory - or inline the key YAML fragments - so the skill remains navigable when the /create-sbom and /create-policy skills are not installed.

DimensionReasoningScore

Conciseness

The body is mostly efficient - terse tables, imperative bullets ("Fetch before configure", "Never guess image tags"), no explanations of concepts Claude already knows - but it could be tightened: the CD-on-CI-only rule is restated in the Interaction model ("Never block CD on 'no Deployment stage'"), the phase table row 3b, a dedicated "CD edge case (mandatory workflow)" section, Performance Notes, and Troubleshooting, and "do not call harness_execute" / "Do not execute pipelines" appears three times. This matches the anchor 'Mostly efficient but includes some unnecessary explanation or could be tightened' rather than 2, since the padding is repetition of actionable rules, not concept filler.

3 / 5

Actionability

Fully executable guidance: a copy-paste-ready SscaEnforcement YAML block with placeholders, variants for policy-only and no-verification, the concrete harness_update call with "body: { yamlPipeline: \"<updated pipeline YAML>\" }", a complete summary template, and error-code-keyed fixes ("DUPLICATE_IDENTIFIER - rename enforce_sbom", "Invalid policy.policySets - use policy set identifiers, not display names"). CD YAML is fully covered in the local reference (sbom-enforcement-step.md has 'Full example - CI' and 'CD Deployment (containerized step group)' sections), so specific examples cover the common cases, matching the score-5 anchor.

5 / 5

Workflow Clarity

The wizard is explicitly sequenced (Phases 0-10 plus 3b with a breadcrumb) with explicit validation checkpoints - "Fetch before configure" (harness_get before questions), "Confirm before write" (Phase 10 confirm before harness_update), "Do not modify unrelated steps, variables, or failure strategies" - and a real error-recovery feedback loop: "On validation errors, read the API message, fix fields (often verifyAttestation shape or policy.policySets), retry", plus a thorough symptom-to-fix Troubleshooting section. This matches the anchor 'Clear sequence with explicit validation steps; feedback loops for error recovery'.

5 / 5

Progressive Disclosure

Good structure: the two local references are real, clearly signaled, and one level deep ("Wizard: references/interactive-wizard-flow.md", "Full UI mapping: references/sbom-enforcement-step.md"), and the body appropriately keeps the overview inline. It falls short of 5 because several referenced paths point outside the bundle - skills/platform/create-sbom/references/cd-containerized-step-group.md, skills/platform/create-sbom/references/sbom-orchestration-step.md, and skills/observability-governance/create-policy/references/entity-sbom.md do not exist in this skill's bundle - so navigation breaks if the sibling skills are not installed, and the body's wizard phase table duplicates content in interactive-wizard-flow.md.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: it states concrete capabilities (verify attestations, apply OPA policy sets, append a Deploy stage for CI-only pipelines), enumerates supported stages and artifact sources, defines explicit scope limits, and provides both a 'Use when' clause and a dedicated trigger-phrase list covering natural synonyms. Its only mild weakness is length - internal detail like 'via Phase 3b (service, environment, infra, containerized step group)' is body-level implementation leaking into the description - but this costs nothing on the rubric's dimensions.

DimensionReasoningScore

Specificity

Multiple concrete actions with comprehensive coverage: "Add an SBOM Policy Enforcement (SscaEnforcement / CdSscaEnforcement) step to an existing Harness pipeline to verify SBOM attestations and apply OPA SBOM policy sets" is augmented by "if no Deploy stage exists, add one via Phase 3b (service, environment, infra, containerized step group) then place CdSscaEnforcement before deploy" and enumerated sources ("Artifact Registry, Third-Party registries (docker, ECR, GCR, GAR, ACR), and Git"). This matches the score-5 anchor 'Lists multiple specific concrete actions; comprehensive coverage' - not 4, since no stage type or source type is left uncovered.

5 / 5

Completeness

Both 'what' and 'when' are explicit and concrete: the what is "verify SBOM attestations and apply OPA SBOM policy sets" with scope limits ("Only works with existing pipelines (may append a Deploy stage)"), and the when is "Use when asked to enforce SBOM policies, add SBOM policy enforcement, verify SBOM attestation in pipeline, or block non-compliant components" plus a separate trigger-phrase list. This exactly matches the anchor 'Clearly and explicitly answers both what AND when with concrete trigger phrases'.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage: the explicit "Trigger phrases: enforce SBOM, SBOM policy enforcement, SBOM policy step, verify SBOM policy, SscaEnforcement, add policy enforcement after SBOM" list is reinforced by the use-when clause's "verify SBOM attestation in pipeline, or block non-compliant components" - a symptom-style phrase users would genuinely say. These are the natural synonyms for this domain (there are no file extensions to cover), matching the score-5 anchor rather than 4's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers: every trigger is enforcement-oriented ("enforce SBOM", "add policy enforcement after SBOM") and clearly separated from sibling SBOM-generation skills, with the boundary "Only works with existing pipelines (may append a Deploy stage)" preventing overlap with pipeline-creation skills. This matches the score-5 anchor 'Clear niche with distinct triggers; minimal conflict risk' - the only conceivable overlap is with /create-sbom on the shared term 'SBOM', which neither description triggers on in isolation.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

harness/harness-ai

Path

plugins/claude/skills/enforce-sbom/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.