Each module’s report attributes only that module’s own classes, from that module’s test forks under -Pcoverage. graphitron’s figures are generator-source coverage from its unit and pipeline tiers; `graphitron-sakila-example’s figures are coverage of generated code from the compilation and execution tiers. CI regenerates this page on every trunk push. Regenerate locally with `mvn verify -Plocal-db -Pcoverage, then mvn -pl roadmap-tool exec:java -q -Dexec.args='source-coverage .'.

Two kinds of generator code are missing from every figure below, for two different reasons. Generator code that runs in the Maven JVM during graphitron:generate is never instrumented at all: the agent attaches to test forks only, so those executions are uncollected. Generator code that runs in another module’s test JVM (GeneratorDeterminismTest invokes the generator in-process in graphitron-sakila-example) is collected into that module’s exec data, but discarded at report time, because a module’s report analyses only its own classes.

Read the per-tier columns as slices, not as a decomposition: each column covers only the classes its -Dgroups=<tier> run selected, cross-cutting classes fall into none of them, and the slices do not sum to the combined figure. Renderer arm tests, a unit-tier family the tier guide endorses for per-arm structural assertions, land in the unit column by design; a raw unit-versus-pipeline comparison attributes that deliberate unit testing to the arm the doctrine is skeptical of.

Coverage by module

Module Line Branch Method

graphitron

87.8%

76.6%

91.8%

graphitron-lsp

94.7%

75.1%

93.5%

graphitron-maven-plugin

61.1%

53.8%

75.6%

graphitron-mcp

91.6%

77.4%

96.9%

graphitron-model

24.3%

18.3%

11.6%

graphitron-roadmap-tool

80.8%

70.9%

88.9%

graphitron-sakila-example

76.5%

49.0%

64.1%

graphitron by package

Package names are shortened by dropping the no.sikt.graphitron. prefix. The per-tier columns are line coverage from that tier’s run alone.

Package Line Branch Method unit line pipeline line

command

85.2%

61.3%

97.0%

57.1%

82.5%

docs

70.7%

67.4%

77.3%

70.7%

0.0%

facts

92.8%

80.3%

92.6%

82.6%

90.9%

plan

90.1%

80.0%

94.4%

34.7%

89.8%

render

87.6%

73.0%

93.8%

56.0%

84.8%

rewrite

91.0%

81.2%

94.8%

58.3%

83.6%

rewrite.capture

90.1%

75.3%

97.5%

75.4%

80.5%

rewrite.catalog

87.8%

82.3%

82.4%

83.4%

79.3%

rewrite.compile

88.4%

80.1%

95.2%

46.4%

77.8%

rewrite.dependency

82.4%

65.2%

90.5%

82.4%

77.0%

rewrite.derive

94.7%

70.1%

91.1%

23.8%

94.7%

rewrite.diagnostics

85.1%

60.3%

100.0%

15.9%

85.1%

rewrite.generators

69.9%

58.4%

78.4%

37.9%

60.7%

rewrite.generators.schema

94.3%

80.9%

96.6%

84.9%

83.6%

rewrite.generators.util

96.5%

86.9%

85.8%

51.2%

76.0%

rewrite.lint

97.2%

83.5%

95.7%

29.2%

93.3%

rewrite.lint.rules

95.0%

77.4%

98.0%

18.8%

95.0%

rewrite.model

84.2%

71.6%

87.8%

61.7%

77.3%

rewrite.schema

88.9%

68.2%

98.0%

88.9%

83.0%

rewrite.schema.federation

93.6%

83.5%

100.0%

72.9%

72.0%

rewrite.schema.input

92.5%

74.2%

95.2%

92.5%

54.2%

rewrite.selection

91.3%

78.8%

93.2%

91.3%

30.0%

rewrite.session

95.2%

84.8%

100.0%

95.2%

77.4%

rewrite.walker

91.0%

86.1%

100.0%

80.1%

86.3%

rewrite.walker.internal

92.7%

91.7%

100.0%

92.7%

85.4%

graphitron classes with the most missed lines

The 25 classes with the most missed lines. A bounded list, not the whole story; the package table above is complete.

Class Missed lines Line

rewrite.generators.TypeFetcherGenerator

809

68.6%

rewrite.FieldBuilder

329

90.1%

rewrite.generators.MultiTablePolymorphicEmitter

259

75.8%

rewrite.generators.FetcherEmitter

198

44.4%

rewrite.capture.GraphitronFactCapture

173

78.4%

rewrite.GraphitronSchemaValidator

119

86.3%

rewrite.generators.ArgCallEmitter

109

29.7%

rewrite.BuildContext

86

91.1%

rewrite.TenantBindingIndex.Fold

79

81.3%

rewrite.generators.GeneratorUtils

79

63.1%

rewrite.ServiceCatalog

77

89.9%

rewrite.capture.SdlFactCapture

66

87.8%

rewrite.generators.JooqRecordInstantiationEmitter

64

75.4%

rewrite.compile.PlanCompileGraph.Builder

52

79.8%

rewrite.TypeBuilder

50

94.2%

rewrite.generators.TenantDslEmitter

46

65.2%

rewrite.generators.util.OneOfDirectiveSdlGenerator

46

0.0%

rewrite.EnumMappingResolver

44

59.6%

render.ConditionGlueRenderer

43

83.1%

rewrite.generators.schema.GraphitronSchemaClassGenerator

42

84.6%

plan.LauncherCommands

40

90.8%

render.BatchedRowsFragments

39

90.2%

rewrite.InputBeanResolver

35

92.1%

docs.CommandRelationFragment

34

70.4%

render.RoutineWriteFetcherRenderer

33

74.4%

Classification leaves beside class coverage

One row per sealed leaf in the hierarchies the inference-axis report enumerates, joining that leaf’s classifier-trace count with its implementing class’s line coverage. Traces with low coverage: the classification is demonstrated while most of its class never runs. No traces and no coverage: dead weight. No traces with high coverage: the class is exercised by something other than the corpus, usually a test asserting the classifier rather than the classification. Traces with high coverage is the healthy case. Only the first two are actionable.

Hierarchy Leaf Traces Line

GraphitronField

GraphitronField.UnclassifiedField

1566

100.0%

RootField

MutationField.DmlTableField

361

84.6%

RootField

MutationField.MutationBulkDmlRecordField

117

75.0%

RootField

MutationField.MutationDmlRecordField

105

100.0%

RootField

MutationField.MutationRoutineWriteField

63

57.1%

RootField

MutationField.MutationRoutineWriteRecordField

52

68.2%

RootField

MutationField.MutationServicePolymorphicField

26

75.0%

RootField

MutationField.MutationServiceRecordField

287

42.9%

RootField

MutationField.MutationServiceTableField

23

50.0%

RootField

MutationField.MutationServiceTableInterfaceField

29

80.0%

RootField

QueryField.QueryInterfaceField

50

83.3%

RootField

QueryField.QueryNodeField

72

100.0%

RootField

QueryField.QueryNodesField

30

50.0%

RootField

QueryField.QueryServicePolymorphicField

31

75.0%

RootField

QueryField.QueryServiceRecordField

818

71.4%

RootField

QueryField.QueryServiceTableField

71

100.0%

RootField

QueryField.QueryServiceTableInterfaceField

34

80.0%

RootField

QueryField.QueryTableField

3734

66.7%

RootField

QueryField.QueryTableInterfaceField

194

100.0%

RootField

QueryField.QueryUnionField

153

100.0%

ChildField

ChildField.BatchedInterfaceField

60

83.3%

ChildField

ChildField.BatchedPivotField

40

76.9%

ChildField

ChildField.BatchedTableField

720

81.3%

ChildField

ChildField.BatchedTableInterfaceField

76

73.7%

ChildField

ChildField.BatchedUnionField

43

83.3%

ChildField

ChildField.ColumnBackedField

5708

100.0%

ChildField

ChildField.ColumnBackedReferenceField

171

92.9%

ChildField

ChildField.ComputedField

54

100.0%

ChildField

ChildField.ErrorsField

198

66.7%

ChildField

ChildField.InterfaceField

51

91.7%

ChildField

ChildField.NestingField

204

100.0%

ChildField

ChildField.ParticipantColumnReferenceField

44

62.5%

ChildField

ChildField.PivotField

53

100.0%

ChildField

ChildField.PivotSlotField

0

75.0%

ChildField

ChildField.RecordCompositeField

36

85.7%

ChildField

ChildField.RecordReadField

1180

47.6%

ChildField

ChildField.ServiceRecordField

150

81.8%

ChildField

ChildField.ServiceTableField

111

100.0%

ChildField

ChildField.SingleRecordIdField

34

87.5%

ChildField

ChildField.SingleRecordIdFieldFromReturning

58

50.0%

ChildField

ChildField.TableField

489

93.3%

ChildField

ChildField.TableInterfaceField

35

75.0%

ChildField

ChildField.UnionField

37

91.7%

InputField

InputField.ColumnBackedField

1487

100.0%

InputField

InputField.ColumnBackedReferenceField

171

100.0%

InputField

InputField.ConditionOwnedField

50

80.0%

InputField

InputField.NestingField

77

100.0%

InputField

InputField.UnboundField

63

85.7%

GraphitronType

PojoResultType.Backed

138

-

GraphitronType

GraphitronType.ConnectionType

430

100.0%

GraphitronType

GraphitronType.EdgeType

430

100.0%

GraphitronType

GraphitronType.EnumType

11544

100.0%

GraphitronType

GraphitronType.ErrorType

271

85.7%

GraphitronType

GraphitronType.FacetValueType

64

100.0%

GraphitronType

GraphitronType.FacetsType

49

100.0%

GraphitronType

GraphitronType.InterfaceType

739

100.0%

GraphitronType

GraphitronType.JavaRecordInputType

116

100.0%

GraphitronType

GraphitronType.JavaRecordType

531

100.0%

GraphitronType

GraphitronType.JooqRecordInputType

20

100.0%

GraphitronType

GraphitronType.JooqRecordType

21

100.0%

GraphitronType

GraphitronType.JooqTableRecordInputType

141

100.0%

GraphitronType

GraphitronType.JooqTableRecordType

461

100.0%

GraphitronType

GraphitronType.NestingType

177

100.0%

GraphitronType

GraphitronType.NodeType

737

100.0%

GraphitronType

GraphitronType.PageInfoType

321

100.0%

GraphitronType

GraphitronType.PojoInputType

2562

100.0%

GraphitronType

GraphitronType.RootType

3870

100.0%

GraphitronType

GraphitronType.ScalarType

8644

100.0%

GraphitronType

GraphitronType.TableInterfaceType

235

100.0%

GraphitronType

GraphitronType.TableType

4841

100.0%

GraphitronType

GraphitronType.UnclassifiedType

59

100.0%

GraphitronType

GraphitronType.UnionType

274

100.0%