Documentation

Data & telemetry

The governance report contract, field by field. This page is rendered from the same disclosure manifest checked against the CLI wire shape.

What leaves CI

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

Governance report field families
Field family
Type
Purpose
Source 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.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

Governance reports do not contain whole files, whole source lines, function bodies, secrets, environment variables, or dependency source. There is no source-excerpt upload option.

Direct repository access

Separately from the CI report, Fragments Cloud may read a connected repository file through the installed GitHub App to verify that a reported finding still exists at its claimed location. The read uses the repository permission granted at connection time; file contents are not persisted as governance-report data.

Versioning and DPA

fragments-governance-report:v1 is frozen. Compatible releases may add optional fields; removing, renaming, or changing the meaning of a field requires a new schema version. A data processing addendum is available on request from hello@usefragments.com.