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

Sigstore Keyless Ephemeral OIDC Artifact Provenance Invariant

Enforces non-repudiable artifact integrity and supply-chain provenance by requiring cryptographic verification against ephemeral Fulcio X.509 certificates and Rekor transparency logs. Artifact admission controllers must reject any artifact lacking an integrated Rekor SET/checkpoint and valid OIDC SAN identity matching designated trusted issuers. Long-lived signing keys and unverified offline bundles are strictly prohibited in the verification pipeline.

Prohibited Anti-Pattern: Admitting Artifacts via Unchecked Public Keys, Bypassing Fulcio OIDC SAN or Rekor Inclusion Proofs

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Sigstore Keyless Ephemeral OIDC Artifact Provenance Invariant - Enforces non-repudiable artifact integrity and supply-chain provenance by requiring cryptographic verification against ephemeral Fulcio X.509 certificates and Rekor transparency logs. Artifact admission controllers must reject any artifact lacking an integrated Rekor SET/checkpoint and valid OIDC SAN identity matching designated trusted issuers. Long-lived signing keys and unverified offline bundles are strictly prohibited in the verification pipeline.
globs: src/security/**/*.{ts,js,go}, src/admission/**/*.{ts,js,go}, src/deploy/**/*.{ts,js,go}, infra/k8s/admission/**/*.{yaml,yml}, .github/workflows/**/*.{yaml,yml}
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/sigstore-keyless-ephemeral-oidc-provenance-invariant"
---

# Sigstore Keyless Ephemeral OIDC Artifact Provenance Invariant

> **Severity**: CRITICAL | **Category**: security
> **Anti-Pattern Warning**: Admitting Artifacts via Unchecked Public Keys, Bypassing Fulcio OIDC SAN or Rekor Inclusion Proofs

## System Constraints
You are a Principal Software Architect enforcing zero-trust supply chain security and Sigstore keyless verification standards. Mandate that all artifact ingestion, pipeline deployments, and admission control logic strictly verify ephemeral OIDC Fulcio certificates, ensure validity within the Rekor log inclusion window, and validate cryptographic inclusion proofs. Never permit long-lived PGP/RSA keys or bypass Rekor transparency checks.

## Strict Guidelines
- Engineers MUST ALWAYS verify the Rekor transparency log inclusion proof (Signed Entry Timestamp / log entry) within the artifact bundle.
- Engineers MUST ALWAYS validate that the certificate issuer (OIDC Provider) matches the approved production identity provider (e.g., https://token.actions.githubusercontent.com).
- Engineers MUST ALWAYS validate the Subject Alternative Name (SAN) URI in the Fulcio ephemeral certificate against the explicit allowed workflow/repository identity.
- Services MUST verify that the Fulcio certificate was active at the integrated timestamp recorded by Rekor, mitigating replay attacks after certificate expiration.
- Engineers MUST NOT fall back to static, long-lived asymmetric keys (RSA, ECDSA) or environment-injected secret keys when verifying build artifacts.
- Components NEVER admit or deploy an unverified container image, binary, or package manifest when the Rekor transparency proof or Fulcio certificate chain is missing or broken.

## Bad vs Good Implementations
### Cosign/Sigstore Node Verification Pipeline

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Disabling the transparency log threshold allows attackers to forge or replay compromised signatures without leaving an immutable audit trail. Omitting certificate issuer and subject identity checks allows any arbitrary Fulcio-issued certificate (e.g., an attacker's personal GitHub account) to sign production workloads.
```typescript
import * as cosign from 'sigstore';

// ANTI-PATTERN: Bypassing Rekor transparency log verification and accepting
// unconstrained SAN identities with a static public key fallback.
export async function verifyArtifactPayload(artifactDigest: string, bundle: any): Promise<boolean> {
  // Flaw 1: Disabling transparency log checks
  // Flaw 2: Ignoring certificate OIDC issuer and subject identity constraints
  const isSignatureValid = await cosign.verify(bundle, {
    tlogOptions: { threshold: 0 }, // DANGEROUS: Bypasses Rekor check entirely
    certificateIssuer: undefined,
    certificateIdentityURI: undefined
  });

  return Boolean(isSignatureValid);
}
```

#### Production Standard (Correct)
> **Standard**: Enforces complete keyless verification: verifies the cryptographic signature against the short-lived Fulcio certificate, validates the exact GitHub Actions OIDC SAN URI identity, and guarantees non-repudiation by validating inclusion in the Rekor transparency log within the certificate's validity window.
```typescript
import { verify, KeylessVerifyOptions } from 'sigstore';

// PRODUCTION INVARIANT: Keyless ephemeral Fulcio X.509 verification with mandatory
// Rekor transparency log validation and strict OIDC SAN subject matching.
export async function verifyArtifactPayload(
  artifactDigest: Buffer,
  bundle: Record<string, unknown>
): Promise<void> {
  const verifyOptions: KeylessVerifyOptions = {
    // Invariant: Rekor log proof is non-negotiable
    tlogOptions: { 
      threshold: 1 
    },
    // Invariant: Certificate was issued by trusted OIDC provider
    certificateIssuer: 'https://token.actions.githubusercontent.com',
    // Invariant: Ephemeral cert Subject Alternative Name (SAN) strictly matches workflow
    certificateIdentityURI: 'https://github.com/my-org/core-infra/.github/workflows/release.yml@refs/heads/main',
    // Invariant: Rekor SET must validate that signing occurred during certificate lifetime
    ctlogOptions: { 
      threshold: 1 
    }
  };

  // Throws an exception if signature, Rekor proof, or SAN identity fails verification
  await verify(bundle, artifactDigest, verifyOptions);
}
```

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: Sigstore Keyless Ephemeral OIDC Artifact Provenance Invariant

Sigstore Keyless Ephemeral OIDC Artifact Provenance Invariant defines an industrial-grade behavioral standard for security engineering. Enforces non-repudiable artifact integrity and supply-chain provenance by requiring cryptographic verification against ephemeral Fulcio X.509 certificates and Rekor transparency logs. Artifact admission controllers must reject any artifact lacking an integrated Rekor SET/checkpoint and valid OIDC SAN identity matching designated trusted issuers. Long-lived signing keys and unverified offline bundles are strictly prohibited in the verification pipeline. 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: Admitting Artifacts via Unchecked Public Keys, Bypassing Fulcio OIDC SAN or Rekor Inclusion Proofs 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 DriftAdmitting Artifacts via Unchecked Public Keys, Bypassing Fulcio OIDC SAN or Rekor Inclusion ProofsCritical
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 verify the Rekor transparency log inclusion proof (Signed Entry Timestamp / log entry) within the artifact bundle.

Engineers MUST ALWAYS verify the Rekor transparency log inclusion proof (Signed Entry Timestamp / log entry) within the artifact bundle.

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 ALWAYS validate that the certificate issuer (OIDC Provider) matches the approved production identity provider (e.g., https

Engineers MUST ALWAYS validate that the certificate issuer (OIDC Provider) matches the approved production identity provider (e.g., https://token.actions.githubusercontent.com).

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

Engineers MUST ALWAYS validate the Subject Alternative Name (SAN) URI in the Fulcio ephemeral certificate against the explicit allowed workflow/repository identity.

Engineers MUST ALWAYS validate the Subject Alternative Name (SAN) URI in the Fulcio ephemeral certificate against the explicit allowed workflow/repository 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.
4

Services MUST verify that the Fulcio certificate was active at the integrated timestamp recorded by Rekor, mitigating replay attacks after certificate expiration.

Services MUST verify that the Fulcio certificate was active at the integrated timestamp recorded by Rekor, mitigating replay attacks after certificate expiration.

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

Engineers MUST NOT fall back to static, long-lived asymmetric keys (RSA, ECDSA) or environment-injected secret keys when verifying build artifacts.

Engineers MUST NOT fall back to static, long-lived asymmetric keys (RSA, ECDSA) or environment-injected secret keys when verifying build artifacts.

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.
6

Components NEVER admit or deploy an unverified container image, binary, or package manifest when the Rekor transparency proof or Fulcio certificate chain is missing or broken.

Components NEVER admit or deploy an unverified container image, binary, or package manifest when the Rekor transparency proof or Fulcio certificate chain is missing or broken.

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 Sigstore Keyless Ephemeral OIDC Artifact Provenance Invariant critical for AI coding assistants?

Enforces non-repudiable artifact integrity and supply-chain provenance by requiring cryptographic verification against ephemeral Fulcio X.509 certificates and Rekor transparency logs. Artifact admission controllers must reject any artifact lacking an integrated Rekor SET/checkpoint and valid OIDC SAN identity matching designated trusted issuers. Long-lived signing keys and unverified offline bundles are strictly prohibited in the verification pipeline. 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 (Admitting Artifacts via Unchecked Public Keys, Bypassing Fulcio OIDC SAN or Rekor Inclusion Proofs) 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

Sigstore