CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cicd

CI/CD pipeline attack category — poisoned pipeline execution, GitHub Actions expression injection, self-hosted runner abuse, secrets/OIDC exfil. Routing skill: fingerprint the CI provider + workflow surface, then load the matching leaf.

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

93%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.

An excellent routing-skill body: lean, executable recon commands, a well-designed sub-skill routing table with explicit load conditions, and a strong safety decision gate. The only weakness is that the recon workflow is conveyed through section ordering rather than an explicit step sequence or feedback loop.

DimensionReasoningScore

Conciseness

The 110-line body is lean and dense: a routing table, provider-fingerprint commands, a risky-surface triage table, grep patterns, and a tool table. Every token earns its place; there is no padding and no explanation of concepts Claude already knows.

5 / 5

Actionability

Fully executable guidance throughout: copy-paste-ready 'gh api', 'grep -rE', 'find', and 'test -f' commands with concrete regexes, plus named tools (gato, actionlint, zizmor) with their specific uses. The risky-surface table pairs each signal with an exact grep.

5 / 5

Workflow Clarity

A logical recon sequence is present (fingerprint provider → enumerate workflow files → triage risky surface → check secret exposure) and the decision gate provides an explicit validation checklist before active testing, so the destructive-operation cap does not apply. However, the sequence is implied by section order rather than explicitly enumerated, and there are no error-recovery feedback loops, which keeps it below a 5.

4 / 5

Progressive Disclosure

This is a routing skill that does progressive disclosure correctly: the sub-skills table pairs each leaf with a 'When to Load' condition and an explicit load_skill() path, and all attack detail is deferred one level deep to the leaves. Core recon commands are appropriately kept inline; no bundle files exist locally, and the leaf references are clearly signaled external paths.

5 / 5

Total

19

/

20

Passed

Description

75%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.

A highly specific, distinctive description that names four concrete attack techniques and the routing behavior, but it omits any explicit 'use when' trigger clause — that guidance exists only in the metadata.when_to_use field, which the description-field rubric does not credit. Trigger keyword coverage in the description itself is good though missing CI-provider synonyms.

Suggestions

Append an explicit 'Use when...' clause to the description itself (e.g., 'Use when the target builds PRs or dependencies via GitHub Actions, GitLab CI, Jenkins, or another CI provider with runners or OIDC tokens') rather than relying on metadata.when_to_use.

Fold one or two natural provider synonyms users would actually say (GitLab CI, Jenkins, pipelines) into the description to improve trigger-term coverage beyond GitHub-specific terms.

Keep the description in third person and retain the technique enumeration as-is — it is the strongest part of the description.

DimensionReasoningScore

Specificity

The description lists multiple concrete, specific capabilities — 'poisoned pipeline execution, GitHub Actions expression injection, self-hosted runner abuse, secrets/OIDC exfil' — plus the routing behavior 'fingerprint the CI provider + workflow surface, then load the matching leaf', giving comprehensive coverage of the category.

5 / 5

Completeness

The 'what' is clearly answered (four named attack techniques plus the routing role), but the description contains no 'Use when...' clause or equivalent explicit trigger guidance; the 'when' lives in metadata.when_to_use instead of the description, which caps completeness at 3 per the rubric guideline.

3 / 5

Trigger Term Quality

Natural trigger terms like 'CI/CD pipeline', 'GitHub Actions', 'self-hosted runner', 'secrets', and 'OIDC' are present and would be said by users needing this skill. However, provider synonyms a user might naturally mention (GitLab CI, Jenkins, CircleCI, buildkite) appear only in metadata.when_to_use, not in the description itself.

4 / 5

Distinctiveness Conflict Risk

'CI/CD pipeline attack category — poisoned pipeline execution, GitHub Actions expression injection, self-hosted runner abuse, secrets/OIDC exfil' carves out a clear niche with distinct triggers and minimal conflict risk against generic supply-chain or code-audit skills.

5 / 5

Total

17

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/exploit/cicd/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.