CtrlK
BlogDocsLog inGet started
Tessl Logo

pantheon-ai/jenkinsfile-toolkit

Complete jenkinsfile toolkit with generation and validation capabilities

97

Quality

97%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Risky

Do not use without reviewing

Overview
Quality
Evals
Security
Files

criteria.jsongenerator/evals/scenario-4/

{
  "context": "Tests whether the agent places input outside the steps block to avoid holding agents, uses fingerprint: true with archiveArtifacts, adds beforeAgent true on when conditions, and includes cleanWs in the post block.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "input outside steps",
      "description": "The input { } directive appears at the stage level (sibling to steps {}), NOT nested inside a steps { } block",
      "max_score": 16
    },
    {
      "name": "fingerprint true",
      "description": "archiveArtifacts includes fingerprint: true",
      "max_score": 14
    },
    {
      "name": "archiveArtifacts present",
      "description": "Jenkinsfile contains an archiveArtifacts directive in the post success block or in a stage",
      "max_score": 8
    },
    {
      "name": "when branch main",
      "description": "The production deployment stage has a when { branch 'main' } or equivalent condition",
      "max_score": 10
    },
    {
      "name": "beforeAgent true",
      "description": "The when block on the deployment stage includes beforeAgent true to skip agent allocation when the condition is false",
      "max_score": 12
    },
    {
      "name": "submitter restricted",
      "description": "The input block includes a submitter field restricting approval to specific users or groups (e.g., 'release-managers')",
      "max_score": 8
    },
    {
      "name": "cleanWs in post",
      "description": "Jenkinsfile post block includes always { cleanWs() } or equivalent workspace cleanup",
      "max_score": 10
    },
    {
      "name": "Declarative syntax",
      "description": "Jenkinsfile uses Declarative pipeline syntax (pipeline { ... }), NOT Scripted (node { ... })",
      "max_score": 8
    },
    {
      "name": "timeout in options",
      "description": "Jenkinsfile options block includes timeout()",
      "max_score": 6
    },
    {
      "name": "buildDiscarder in options",
      "description": "Jenkinsfile options block includes buildDiscarder(logRotator(...))",
      "max_score": 8
    }
  ]
}

generator

evals

instructions.json

summary_infeasible.json

summary.json

SKILL.md

tile.json