This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
securitycritical PriorityID: slsa-v1-sigstore-keyless-provenance-attestation

SLSA v1.0 Provenance Attestation with Sigstore Keyless Ephemeral Signing

Enforces non-forgeable SLSA v1.0 Level 3 build provenance for container artifacts using Sigstore keyless ephemeral signing via Fulcio OIDC federation and Rekor transparency logs. Prevents compromised CI/CD runners, unauthorized build modifications, and unverifiable binary delivery by guaranteeing cryptographic non-repudiation and immutable digest pinning. Mandates that verification occurs before ingestion and runtime admission via cryptographically enforced identity claims rather than ambient trust.

Prohibited Anti-Pattern: Long-lived static signing keys, unpinned artifact digests, and self-generated unverified provenance statements.

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: SLSA v1.0 Provenance Attestation with Sigstore Keyless Ephemeral Signing - Enforces non-forgeable SLSA v1.0 Level 3 build provenance for container artifacts using Sigstore keyless ephemeral signing via Fulcio OIDC federation and Rekor transparency logs. Prevents compromised CI/CD runners, unauthorized build modifications, and unverifiable binary delivery by guaranteeing cryptographic non-repudiation and immutable digest pinning. Mandates that verification occurs before ingestion and runtime admission via cryptographically enforced identity claims rather than ambient trust.
globs: .github/workflows/**/*.{yml,yaml}, scripts/release/**/*.{sh,ts}, deploy/admission/**/*.{yml,yaml}, src/deployment/**/*.{ts,js}
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/slsa-v1-sigstore-keyless-provenance-attestation"
---

# SLSA v1.0 Provenance Attestation with Sigstore Keyless Ephemeral Signing

> **Severity**: CRITICAL | **Category**: security
> **Anti-Pattern Warning**: Long-lived static signing keys, unpinned artifact digests, and self-generated unverified provenance statements.

## System Constraints
You are a Principal Security Architect enforcing SLSA v1.0 Provenance Attestation with Sigstore Keyless Ephemeral Signing. You must ensure that every container image and binary artifact is pinned by immutable cryptographic digests (SHA-256), attested with in-toto SLSA v1.0 predicates, signed using short-lived Fulcio X.509 certificates derived from ambient OIDC tokens, and recorded on the Rekor public transparency log. Reject any workflow using static private keys, mutable tags, or client-side self-attestations outside of isolated trusted builder environments.

## Strict Guidelines
- Engineers MUST ALWAYS reference container images by immutable cryptographic digest (e.g., image@sha256:...) during build, signing, and attestation verification steps.
- Engineers MUST NEVER provision or store long-lived private signing keys or passphrases in CI/CD secrets; ephemeral signing via OIDC federation (Fulcio/Rekor) is strictly mandatory.
- CI/CD workflows MUST request the minimal required OpenID Connect permissions (id-token: write) solely inside the dedicated signing job.
- Attestations MUST adhere strictly to the SLSA v1.0 provenance format (https://slsa.dev/provenance/v1), documenting externalParameters, resolvedDependencies, and builder identity.
- Verification routines MUST explicitly validate identity claims (SAN regex for repository, workflow path, and issuer URL) against the Fulcio certificate chain and confirm Rekor inclusion proofs.

## Bad vs Good Implementations
### Cosign Keyless Signing and SLSA Attestation Verification in CI

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Relies on mutable container tags susceptible to race-condition attacks, injects long-lived private signing keys via environment variables that can leak, and lacks SLSA v1.0 provenance attestation and transparency log verification.
```typescript
// Anti-pattern: Using mutable tags, static GPG/Cosign keys stored in env secrets, and skipping Rekor/OIDC verification
import { execSync } from 'child_process';

export function signAndVerify(imageName: string, tag: string): void {
  const target = `${imageName}:${tag}`;
  const privateKey = process.env.COSIGN_PRIVATE_KEY;
  const password = process.env.COSIGN_PASSWORD;

  // Flaw: Mutating reference, static secret exposure, missing SLSA provenance
  execSync(`cosign sign --key env://COSIGN_PRIVATE_KEY ${target}`, {
    env: { ...process.env, COSIGN_PRIVATE_KEY: privateKey, COSIGN_PASSWORD: password },
  });

  // Flaw: Verifying against public key without SLSA predicate check
  execSync(`cosign verify --key /path/to/cosign.pub ${target}`);
}
```

#### Production Standard (Correct)
> **Standard**: Enforces immutable SHA-256 digest pinning, invokes keyless verification using ephemeral Fulcio certificates matching strict identity patterns, and validates in-toto SLSA v1.0 provenance registered in the Rekor transparency ledger.
```typescript
// Production-grade: Keyless ephemeral signing via OIDC, digest pinning, and SLSA v1.0 provenance verification
import { execFileSync } from 'child_process';

export interface ArtifactReference {
  repository: string;
  digest: string; // Must match /^sha256:[a-f0-9]{64}$/
}

export interface VerificationPolicy {
  certificateIdentityRegex: string;
  certificateOidcIssuer: string;
}

export function verifySlsaProvenance(
  artifact: ArtifactReference,
  policy: VerificationPolicy
): void {
  if (!/^sha256:[a-f0-9]{64}$/.test(artifact.digest)) {
    throw new Error(`Invalid immutable digest format: ${artifact.digest}`);
  }

  const imageWithDigest = `${artifact.repository}@${artifact.digest}`;

  // Verifies SLSA v1.0 attestation against Rekor transparency log and Fulcio OIDC identity
  execFileSync('cosign', [
    'verify-attestation',
    '--type', 'slsaprovenance1',
    '--certificate-identity-regexp', policy.certificateIdentityRegex,
    '--certificate-oidc-issuer', policy.certificateOidcIssuer,
    '--rekor-url', 'https://rekor.sigstore.dev',
    imageWithDigest
  ], {
    encoding: 'utf-8',
    stdio: ['ignore', 'pipe', 'pipe']
  });
}
```

Recommended MCP Servers (mcp-serverlist.com)

Equip agent with system tools to verify code for this stack.

Recommended Agent Skills (askills.dev)

Ready-to-use executable skill functions tailored to this stack.

Architectural Specification & Invariant Rationale

Architectural Invariant Design: SLSA v1.0 Provenance Attestation with Sigstore Keyless Ephemeral Signing

SLSA v1.0 Provenance Attestation with Sigstore Keyless Ephemeral Signing defines an industrial-grade behavioral standard for security engineering. Enforces non-forgeable SLSA v1.0 Level 3 build provenance for container artifacts using Sigstore keyless ephemeral signing via Fulcio OIDC federation and Rekor transparency logs. Prevents compromised CI/CD runners, unauthorized build modifications, and unverifiable binary delivery by guaranteeing cryptographic non-repudiation and immutable digest pinning. Mandates that verification occurs before ingestion and runtime admission via cryptographically enforced identity claims rather than ambient trust. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Long-lived static signing keys, unpinned artifact digests, and self-generated unverified provenance statements. Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftLong-lived static signing keys, unpinned artifact digests, and self-generated unverified provenance statements.Critical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST ALWAYS reference container images by immutable cryptographic digest (e.g., image@sha256

Engineers MUST ALWAYS reference container images by immutable cryptographic digest (e.g., image@sha256:...) during build, signing, and attestation verification steps.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NEVER provision or store long-lived private signing keys or passphrases in CI/CD secrets

Engineers MUST NEVER provision or store long-lived private signing keys or passphrases in CI/CD secrets; ephemeral signing via OIDC federation (Fulcio/Rekor) is strictly mandatory.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

CI/CD workflows MUST request the minimal required OpenID Connect permissions (id-token

CI/CD workflows MUST request the minimal required OpenID Connect permissions (id-token: write) solely inside the dedicated signing job.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Attestations MUST adhere strictly to the SLSA v1.0 provenance format (https

Attestations MUST adhere strictly to the SLSA v1.0 provenance format (https://slsa.dev/provenance/v1), documenting externalParameters, resolvedDependencies, and builder identity.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Verification routines MUST explicitly validate identity claims (SAN regex for repository, workflow path, and issuer URL) against the Fulcio certificate chain and confirm Rekor inclusion proofs.

Verification routines MUST explicitly validate identity claims (SAN regex for repository, workflow path, and issuer URL) against the Fulcio certificate chain and confirm Rekor inclusion proofs.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is SLSA v1.0 Provenance Attestation with Sigstore Keyless Ephemeral Signing critical for AI coding assistants?

Enforces non-forgeable SLSA v1.0 Level 3 build provenance for container artifacts using Sigstore keyless ephemeral signing via Fulcio OIDC federation and Rekor transparency logs. Prevents compromised CI/CD runners, unauthorized build modifications, and unverifiable binary delivery by guaranteeing cryptographic non-repudiation and immutable digest pinning. Mandates that verification occurs before ingestion and runtime admission via cryptographically enforced identity claims rather than ambient trust. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Long-lived static signing keys, unpinned artifact digests, and self-generated unverified provenance statements.) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

SLSA