Back to home

Predicate Specification

dev.pedigree/ai-authorship/v1

Status: DraftVersion: 1.0.0Date: 2026-05-16

Abstract

This document specifies the dev.pedigree/ai-authorship/v1 predicate type, an extension of the in-toto Attestation Framework designed to record the provenance of AI-authored source code. Every commit produced by an AI agent carries an attestation containing this predicate. The attestation binds the commit SHA to a structured record of who wrote the code, which model generated it, what instructions governed the agent, and whether a human approved the result.

Predicate Fields

FieldTypeDescription
schemaVersionstringAlways "1.0.0"
authorship.kindenum"human" | "ai-assisted" | "ai-autonomous"
authorship.humanSharenumber|nullFraction of human contribution [0.0, 1.0]
authorship.humanApproverobject|nullOIDC identity of the human who approved
agent.toolstringAI tool name (e.g. "ibm-bob", "cursor")
agent.modelstringModel identifier (e.g. "granite-3.3-8b-instruct")
agent.modelProviderstringProvider hosting the model (e.g. "watsonx.ai")
execution.modeSlugstringThe Bob Mode slug active during generation
execution.skillHashesarraySHA-256 hashes of Skill content files
execution.agentsMdHashstringSHA-256 hash of AGENTS.md at commit time
execution.promptHashstringSHA-256 hash of the prompt/instruction
scope.filesTouchedstring[]Relative paths of files modified
scope.riskClassenum"low" | "medium" | "high"
policy.satisfiedbooleanWhether the AGENTS.md policy is satisfied

Authorship Kinds

  • human -- The commit was written entirely by a human. The agent and execution sections may be absent.
  • ai-assisted -- A human and AI agent collaborated. humanShare records the estimated human contribution. humanApprover identifies who reviewed the AI output.
  • ai-autonomous -- The AI agent generated the commit independently. humanShare is null. The agent may still require policy approval.

Validation Rules

  • authorship.kind MUST be one of the three defined values.
  • All SHA fields MUST be lowercase hex, prefixed with sha256: except digest.sha1.
  • scope.riskClass MUST be one of low, medium, or high.
  • policy.satisfied === false MUST cause CI to fail.
  • When kind === "ai-assisted", humanShare MUST be in [0.0, 1.0].

Security Considerations

  • Predicates MUST be signed via DSSE. Unsigned predicates carry no trust.
  • The skillHashes array provides tamper evidence for workflow definitions. A changed Skill produces a distinguishable attestation.
  • The agentsMdHash field ensures the policy document has not been modified between attestation creation and verification.
View full spec on GitHub