Verdicts and receipts

Every push is evaluated at its exact head against the pinned FCID. The check summary carries introduced findings; the details link opens the receipt.

Verdicts

Verdict states
Verdict
Check
Meaning
passsuccessevery Fragment on this head is the canonical one
blockfailureintroduced findings, listed in the check summary with the repair command
indeterminateaction_requiredthe truth is not known: the plan was too large, the FCID moved, or the analysis failed. It holds. It never becomes a pass by waiting.

How a head is evaluated

evaluate()
push at exact head
        │
        ▼
evaluate(head, pinned FCID)
        │
   ┌────┼──────────────┐
   ▼    ▼              ▼
 pass  block     indeterminate
   │    │              │
   ▼    ▼              ▼
success failure   action_required
                  (holds; never a pass)

Receipts

A receipt is the persisted evaluation behind a verdict: evr_ and a hash of the result. It is public, read-only and carries no personal data, so a reviewer without an account can read exactly why a head was blocked.

receipt
evr_…
verdict: block
FCID: 69793552072061f8ea29849fbb350c2d772a5082ed6fad02ce8deec385a0274d
introduced:
  FUI1004 Replace <button> with <Button> from @usefragments/ui

What a receipt carries

The report carries source text in named fields: offending literals, messages that may quote them, structured rule facts, authored exception and bypass reasons, and compiled package vocabulary. It never uploads whole files, whole source lines or function bodies.

Receipt fields
Field
Type
Purpose
Carriage
schemaVersion"fragments-governance-report:v1"Pins the accepted wire shape and compatibility policy.
generatedAtISO-8601 stringRecords when the CLI produced the report.
root.{workspaceRoot,packageRoot,packageName}string fieldsIdentifies the scanned workspace and package roots.
hook.{installedAt,mode,agents[]}installation metadataDescribes the local hook installation that produced evidence.
git.{baseRef,headSha,branch,repoFullName,pullRequestNumber}Git and provider identifiersAttaches results to the correct repository, commit and pull request.
summary.{filesScanned,rulesActive,presetsLoaded[],groupCount,occurrenceCount,ignoredCount,classnamesScanned,classnamesDynamic,classnamesResolved,totalFindings,errorCount,warnCount,infoCount,passed}counts, verdict and active preset namesReports scan volume and result totals without finding rows.derived
summary.ignoredByReason.{reason}configured reason name → countCounts ignored findings by the reason configured by the repository.derived
summary.countsBySeverity.{error,warn,info}severity countsCounts findings in each fixed severity bucket.derived
summary.countsByCategory.{category}configured category name → countCounts findings by the rule categories present in the scan.derived
summary.integrity.{status,declared,fatalForCi,blockingCapable,summary}governance-integrity verdictExplains whether the resolved policy is capable of enforcement.derived
summary.integrity.families[].{id,armed,reason,remediation}integrity-family statusExplains the enforcement readiness of each governance family.derived
summary.integrity.families[].rules[]rule identifiersNames the active rules contributing to an integrity family.derived
summary.integrity.armed[]integrity-family identifiersNames the governance families capable of enforcement.derived
summary.integrity.remediations[]remediation messagesExplains how to make an inert or degraded policy effective.derived
summary.integrity.configDiagnostics[].{code,kind,severity,path,message}configuration diagnosticsReports inert or conflicting authored governance configuration.structured-source
summary.integrity.roster.{configured,active,inert}rule roster countsCounts configured, active and inert governance rules.derived
summary.countsByBaselineState.{baselined,new}baseline-state countsSeparates accepted baseline debt from newly introduced findings.derived
groups[].{groupId,ruleId,category,severity,packageRoot,filePath}finding group metadataIdentifies each grouped rule failure and repository-relative path.
groups[].messagestringExplains the failure and may quote the offending source literal.source-literal
groups[].normalizedOffense.kindnormalized-offense categoryNames the kind of source offense represented by the group.derived
groups[].normalizedOffense.rawnormalized source offenseCarries the exact offending source substring.source-literal
groups[].normalizedOffense.canonicalnormalized source offenseCarries the derived canonical representation of the offense.derived
groups[].occurrences[].occurrenceIdstable occurrence identifierIdentifies one occurrence within a finding group.derived
groups[].occurrences[].location.{file,line,column,endLine,endColumn}repository-relative locationPlaces each occurrence at its exact file/line/column range.
groups[].occurrences[].area.{areaId,areaName,criticality,owners[],matchedGlob}area identifiers, owners and criticalityCarries the configured product-area classification for the file.structured-source
groups[].occurrences[].evidence[].factIdfact identifierLinks the occurrence to the extracted fact supporting it.derived
groups[].occurrences[].evidence[].fact.kindfact discriminatorNames the extracted rule-fact shape.
groups[].occurrences[].evidence[].fact.location.{file,line,column,endLine,endColumn}repository-relative locationLocates the source-backed fact used as evidence.
groups[].occurrences[].evidence[].fact.{ruleSpecificField}extensible rule-specific fact fieldsCarries rule-specific parsed facts; fields may include selectors, properties and source values.structured-source
groups[].suggestedReplacement.{kind,from,to,certainty,reason}deterministic replacementCarries the deterministic replacement the CLI can apply.derived
groups[].suggestedReplacement.edit.{file,start,end,replacement}deterministic edit rangeLocates and describes the exact edit the CLI can apply.derived
suppressions[].{id,kind,file,line,column,code,expiresOn,attachedLine,attachedTo,directive}directive identity, location and attachment metadataReports matched in-source governance directives.
suppressions[].reasonauthored directive reasonCarries the repository-authored reason for the suppression.source-literal
bypassEvents[].{code,file,line}rule code and source locationRecords directives that actually bypassed a finding in this run.
bypassEvents[].reasonauthored directive reasonCarries the repository-authored reason for the bypass.source-literal
bypassEvents[].area.{areaId,areaName,criticality,matchedGlob}configured product-area metadataClassifies the bypass by its configured product area.structured-source
hookEvents[].{eventId,kind,ruleId,code,file,mode,agent,timestamp,reasonClass}bounded hook decision receiptsReports deny, downgrade, suppression and fail-open decisions.
packageVocabularies[].{source,packageName,status,manifestPath,digest,commit}compiled canonical-package vocabulary recordsPublishes package vocabulary proposed by authoritative local discovery.structured-source
packageVocabularies[].roots[].{name,members[]}compiled component roots and membersPublishes the canonical component vocabulary discovered from the package.structured-source
adoption.{metricVersion,adoptedUsages,ownableUsages}versioned component-identity usage countsRecords the exact numerator and denominator used for adoption history.derived
adoption.adopted[].{componentKey,displayName,canonicalTarget,usageCount}bounded adopted component-identity summariesExplains which canonical components account for current adopted call sites without uploading source.derived
adoption.shadows[].{componentKey,displayName,canonicalTarget,usageCount}bounded component-identity summariesExplains which shadow components are moving the adoption curve without uploading source.derived
health.{metricVersion,checkedSites,violatingSites}versioned contract-site countsRecords how many sites contract-scope rules inspected and how many distinct sites carried a finding.derived
health.populations.{componentUsages,tokenReferences}per-population site countsNames the measured populations behind the checked-site denominator.derived
topology.areaImpact[].{areaId,areaName,beforeOpen,afterOpen,introduced,persistent,resolved}area identifiers and before/after countsReports bounded product-area impact totals.derived
contractHash64-character FCIDPins the exact compiled contract enforced by the run.derived
source"ci"Identifies the report producer.
gateRung"ci" | "cli"Identifies the enforcement rung that produced the verdict.
diffOnlybooleanStates whether the scan was restricted to changed files.
failOnWarningsbooleanStates whether warnings were gating for this run.

What is never uploaded

Reports do not contain whole files, whole source lines, function bodies, secrets, environment variables, or dependency source. There is no source-excerpt upload option. Separately, Cloud may read a connected repository file through the GitHub App to verify a finding still exists at its claimed location; file contents are not persisted as report data.

Next steps