Skip to content

Allow dynamically creating linter rules based on schemas#630

Merged
jviotti merged 1 commit into
mainfrom
linter-by-schema
Feb 16, 2026
Merged

Allow dynamically creating linter rules based on schemas#630
jviotti merged 1 commit into
mainfrom
linter-by-schema

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented Feb 16, 2026

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 6 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="test/linter/linter_schema_test.cc">

<violation number="1" location="test/linter/linter_schema_test.cc:93">
P2: Missing `description` assertions compared to the sister test `schema_rule_non_string_description_integer`. That test verifies `std::get<3>(entries.at(0)).description.has_value()` and that the value is non-empty. Add the same assertions here for consistent coverage.</violation>

<violation number="2" location="test/linter/linter_schema_test.cc:643">
P2: Missing `description` assertions compared to the sister test `schema_rule_non_string_description_integer`. Add the `std::get<3>` checks for consistent coverage across all non-string description test variants.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread test/linter/linter_schema_test.cc
Comment thread test/linter/linter_schema_test.cc
@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented Feb 16, 2026

🤖 Augment PR Summary

Summary: Adds a schema-driven linter rule that can be created dynamically from a JSON Schema document.

Changes:

  • Introduced SchemaRule (non-mutating) that validates every encountered subschema as an instance against a compiled “rule schema”.
  • Added LinterInvalidNameError and name validation for rule names derived from the rule schema’s title.
  • Implemented title/description extraction and validation-error formatting in the new src/linter/schema.cc.
  • Updated the linter CMake target to build the new source and link sourcemeta::core::regex.
  • Added comprehensive GTest coverage for pass/fail behavior, title/description edge cases, default dialect handling, and error preservation.

Technical Notes: Rule names are constrained to ^[a-z0-9_/]+$; failures return detailed evaluator output (message + instance location + evaluate path) as the linter outcome description.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

Comment thread src/linter/CMakeLists.txt
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: 0290a29 Previous: 8611dfd Ratio
E2E_Compiler_adaptivecard 68169458.00000615 ns/iter 64239168.55555313 ns/iter 1.06
E2E_Compiler_ansible_meta 27716624.153846137 ns/iter 26822027.115385413 ns/iter 1.03
E2E_Compiler_aws_cdk 475181.005571048 ns/iter 469189.92292227165 ns/iter 1.01
E2E_Compiler_babelrc 2571353.1985294265 ns/iter 2557878.131868235 ns/iter 1.01
E2E_Compiler_clang_format 17502871.67500062 ns/iter 17447807.09999958 ns/iter 1.00
E2E_Compiler_cmake_presets 25444568.407406393 ns/iter 25275713.53571594 ns/iter 1.01
E2E_Compiler_code_climate 2538392.1195653137 ns/iter 2540650.564102527 ns/iter 1.00
E2E_Compiler_cql2 12818614.2407403 ns/iter 12843179.618181983 ns/iter 1.00
E2E_Compiler_cspell 22512863.38709648 ns/iter 22323332.9677423 ns/iter 1.01
E2E_Compiler_cypress 3957361.779661071 ns/iter 3940452.061797987 ns/iter 1.00
E2E_Compiler_deno 7375813.926315507 ns/iter 7320838.520833206 ns/iter 1.01
E2E_Compiler_dependabot 3797575.805405408 ns/iter 3785978.340540562 ns/iter 1.00
E2E_Compiler_draft_04 2682640.0610684166 ns/iter 2679275.450381689 ns/iter 1.00
E2E_Compiler_fabric_mod 4653601.23333312 ns/iter 4637919.430463653 ns/iter 1.00
E2E_Compiler_geojson 21658574.75757672 ns/iter 21439376.272727523 ns/iter 1.01
E2E_Compiler_gitpod_configuration 4764743.843537451 ns/iter 4742569.006756673 ns/iter 1.00
E2E_Compiler_helm_chart_lock 783948.8709315956 ns/iter 783952.1275395454 ns/iter 1.00
E2E_Compiler_importmap 385246.09381895984 ns/iter 384232.11025359115 ns/iter 1.00
E2E_Compiler_jasmine 1407754.9577462906 ns/iter 1446217.8836734495 ns/iter 0.97
E2E_Compiler_jshintrc 4261272.37195174 ns/iter 4265195.743902572 ns/iter 1.00
E2E_Compiler_jsconfig 21074814.15151307 ns/iter 20592080.941175003 ns/iter 1.02
E2E_Compiler_krakend 153994072.00000042 ns/iter 141680415.6000012 ns/iter 1.09
E2E_Compiler_lazygit 32597565.04545728 ns/iter 31780487.99999932 ns/iter 1.03
E2E_Compiler_lerna 1626082.4788734056 ns/iter 1637173.2837210083 ns/iter 0.99
E2E_Compiler_nest_cli 7149340.96938856 ns/iter 7132591.173469721 ns/iter 1.00
E2E_Compiler_omc 164366291.7499853 ns/iter 150850465.74999693 ns/iter 1.09
E2E_Compiler_omnisharp 6463857.074074305 ns/iter 6403873.100917119 ns/iter 1.01
E2E_Compiler_openapi 24101218.172416277 ns/iter 23643466.099999465 ns/iter 1.02
E2E_Compiler_pre_commit_hooks 5137940.708028596 ns/iter 5158134.485294517 ns/iter 1.00
E2E_Compiler_pulumi 3953714.661016718 ns/iter 3945642.1186440624 ns/iter 1.00
E2E_Compiler_semantic_release 1600371.004576807 ns/iter 1606865.3279816268 ns/iter 1.00
E2E_Compiler_stale 1600571.06802727 ns/iter 1588671.7006960595 ns/iter 1.01
E2E_Compiler_stylecop 5706045.262295671 ns/iter 5678352.065040495 ns/iter 1.00
E2E_Compiler_tmuxinator 1951428.6983240712 ns/iter 1955001.358543463 ns/iter 1.00
E2E_Compiler_ui5 48908522.28571216 ns/iter 46460397.40000181 ns/iter 1.05
E2E_Compiler_ui5_manifest 334116436.49998266 ns/iter 308225667.500011 ns/iter 1.08
E2E_Compiler_unreal_engine_uproject 4479510.282051135 ns/iter 4441438.910828165 ns/iter 1.01
E2E_Compiler_vercel 12476341.285713082 ns/iter 12326886.57894773 ns/iter 1.01
E2E_Compiler_yamllint 447736.87187696877 ns/iter 458161.44750320486 ns/iter 0.98
E2E_Evaluator_adaptivecard 36007.18403057201 ns/iter 35566.670125008684 ns/iter 1.01
E2E_Evaluator_ansible_meta 313803.9300979727 ns/iter 311760.5778469674 ns/iter 1.01
E2E_Evaluator_aws_cdk 77059.05795192542 ns/iter 76089.23591588192 ns/iter 1.01
E2E_Evaluator_babelrc 156378.6988087203 ns/iter 157223.10695789705 ns/iter 0.99
E2E_Evaluator_cerebrum_criminal_case 1700337.691943332 ns/iter 1604712.722476959 ns/iter 1.06
E2E_Evaluator_clang_format 138638.06240157745 ns/iter 139137.44848724292 ns/iter 1.00
E2E_Evaluator_cmake_presets 6436760.227272358 ns/iter 5373351.078124866 ns/iter 1.20
E2E_Evaluator_code_climate 285429.1985383549 ns/iter 277498.07985554286 ns/iter 1.03
E2E_Evaluator_cql2 301014.8550596355 ns/iter 308433.2224594163 ns/iter 0.98
E2E_Evaluator_cspell 722204.4390495988 ns/iter 717039.58860103 ns/iter 1.01
E2E_Evaluator_cypress 238595.27185429714 ns/iter 234773.60595040955 ns/iter 1.02
E2E_Evaluator_deno 413389.7190420146 ns/iter 409793.51860604587 ns/iter 1.01
E2E_Evaluator_dependabot 582574.659716428 ns/iter 587050.217535125 ns/iter 0.99
E2E_Evaluator_draft_04 10731864.476924084 ns/iter 8982920.72368403 ns/iter 1.19
E2E_Evaluator_fabric_mod 933450.0452127106 ns/iter 938054.9110225607 ns/iter 1.00
E2E_Evaluator_geojson 31677437.499995038 ns/iter 30782123.043477245 ns/iter 1.03
E2E_Evaluator_gitpod_configuration 309454.58144796087 ns/iter 308487.52483599115 ns/iter 1.00
E2E_Evaluator_helm_chart_lock 447236.1905684741 ns/iter 447114.3178294544 ns/iter 1.00
E2E_Evaluator_importmap 69365.1633217984 ns/iter 68742.5535924617 ns/iter 1.01
E2E_Evaluator_jasmine 165616.88575524496 ns/iter 167786.12687099894 ns/iter 0.99
E2E_Evaluator_jshintrc 1312726.810861508 ns/iter 1314459.8247619062 ns/iter 1.00
E2E_Evaluator_jsconfig 524374.4800601762 ns/iter 528535.8317054618 ns/iter 0.99
E2E_Evaluator_krakend 268146.6917264769 ns/iter 267093.04206140706 ns/iter 1.00
E2E_Evaluator_lazygit 179713.05708409473 ns/iter 180443.83122906013 ns/iter 1.00
E2E_Evaluator_lerna 210144.96312814907 ns/iter 214028.6924001094 ns/iter 0.98
E2E_Evaluator_nest_cli 247895.76843235572 ns/iter 248843.95873699803 ns/iter 1.00
E2E_Evaluator_omc 28013.40519470426 ns/iter 27994.778984783054 ns/iter 1.00
E2E_Evaluator_omnisharp 716887.117404703 ns/iter 714890.9070847725 ns/iter 1.00
E2E_Evaluator_openapi 18559234.36842264 ns/iter 15918135.391305184 ns/iter 1.17
E2E_Evaluator_pre_commit_hooks 590687.8510998124 ns/iter 592658.224916388 ns/iter 1.00
E2E_Evaluator_pulumi 864399.5594058937 ns/iter 855632.9509203067 ns/iter 1.01
E2E_Evaluator_semantic_release 140606.16177957816 ns/iter 141095.6140631254 ns/iter 1.00
E2E_Evaluator_stale 206607.07610305955 ns/iter 206962.5775784645 ns/iter 1.00
E2E_Evaluator_stylecop 365704.1590198236 ns/iter 360490.0865533417 ns/iter 1.01
E2E_Evaluator_tmuxinator 135455.74079754233 ns/iter 135440.365641315 ns/iter 1.00
E2E_Evaluator_ui5 696456.1754032164 ns/iter 699012.7808764774 ns/iter 1.00
E2E_Evaluator_ui5_manifest 3654162.150537583 ns/iter 3303088.9285712526 ns/iter 1.11
E2E_Evaluator_unreal_engine_uproject 538326.3379845038 ns/iter 542389.8731517402 ns/iter 0.99
E2E_Evaluator_vercel 389048.37798781454 ns/iter 385868.304851152 ns/iter 1.01
E2E_Evaluator_yamllint 18193.32122217259 ns/iter 17445.209695403344 ns/iter 1.04
Micro_Draft4_Meta_1_No_Callback 259.0542088263025 ns/iter 263.70085166163824 ns/iter 0.98
Micro_Draft4_Required_Properties 1142.0859974974228 ns/iter 1133.640611637505 ns/iter 1.01
Micro_Draft4_Many_Optional_Properties_Minimal_Match 31.78341627457101 ns/iter 31.780132915746997 ns/iter 1.00
Micro_Draft4_Few_Optional_Properties_Minimal_Match 19.954565526725048 ns/iter 19.946250685866765 ns/iter 1.00
Micro_Draft4_Items_Schema 668.7063153472674 ns/iter 685.0215867512243 ns/iter 0.98
Micro_Draft4_Nested_Object 3.117777739858836 ns/iter 3.1111712242203233 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 387.80355508802 ns/iter 386.0109471672156 ns/iter 1.00
Micro_Draft4_Properties_Triad_Closed 328.0984105466004 ns/iter 328.1139504177736 ns/iter 1.00
Micro_Draft4_Properties_Triad_Required 438.85617013469147 ns/iter 533.6612400000149 ns/iter 0.82
Micro_Draft4_Properties_Closed 78.59979211636427 ns/iter 78.85797908734537 ns/iter 1.00
Micro_Draft4_Non_Recursive_Ref 31.986228941409628 ns/iter 31.891340804813403 ns/iter 1.00
Micro_Draft4_Pattern_Properties_True 273.5699580345287 ns/iter 270.0891339165222 ns/iter 1.01
Micro_Draft4_Ref_To_Single_Property 19.967762362616646 ns/iter 19.944616010515936 ns/iter 1.00
Micro_Draft4_Additional_Properties_Type 59.999564282242154 ns/iter 59.864590562287276 ns/iter 1.00
Micro_Draft4_Nested_Oneof 85.6591679297027 ns/iter 85.65287495123998 ns/iter 1.00
Micro_Draft4_Short_Enum 15.28116550733805 ns/iter 15.050024260316924 ns/iter 1.02
Micro_Draft4_Long_Enum 18.432898327098044 ns/iter 18.52629410163126 ns/iter 0.99
Micro_Draft4_Long_Enum_Short_Strings 15.28006064626987 ns/iter 15.01214201076183 ns/iter 1.02
Micro_Draft4_Type_Object 8.409980320559619 ns/iter 8.411960674219834 ns/iter 1.00
Micro_Draft4_Ref_Single_100 2454559.3146854118 ns/iter 2463164.821052575 ns/iter 1.00
Micro_Draft4_Compile_Ref_Many_Nested 1810002.9201032016 ns/iter 1825694.1250000363 ns/iter 0.99
Micro_Draft4_Compile_Wrap 2403372.467353973 ns/iter 2432248.7534722053 ns/iter 0.99
Micro_Draft6_Property_Names 133.3991426684907 ns/iter 133.48667192680207 ns/iter 1.00
Micro_Draft6_Compile_FHIR 16890603582.00004 ns/iter 15355952414 ns/iter 1.10
Micro_Draft7_If_Then_Else 39.24909264151875 ns/iter 39.47562618139308 ns/iter 0.99
Micro_2019_09_Unevaluated_Properties 52.56230434375883 ns/iter 51.85374199485986 ns/iter 1.01
Micro_2019_09_Compile_Wrap 312403901.49997663 ns/iter 285713119.6666576 ns/iter 1.09
Micro_2019_09_KrakenD_Linter_Check 1263452722.000011 ns/iter 1223498139.0000143 ns/iter 1.03
Micro_2019_09_KrakenD_Linter_Apply 11160445905.999836 ns/iter 10967344935.99996 ns/iter 1.02
Micro_2020_12_Dynamic_Ref 378.3287166627056 ns/iter 365.3385086245252 ns/iter 1.04
Micro_2020_12_Dynamic_Ref_Single 8.730323248884442 ns/iter 8.723950796634274 ns/iter 1.00
Micro_2020_12_Simple_Output_Mask 141257.50773502776 ns/iter 141911.76653930577 ns/iter 1.00
Micro_2020_12_Simple_Output_Annotations 175401.12162163082 ns/iter 171858.77568740133 ns/iter 1.02
Micro_2020_12_Compile_NonCircular_Shared_Refs 1093139.1203124363 ns/iter 1098523.2711598885 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: 0290a29 Previous: 8611dfd Ratio
E2E_Compiler_adaptivecard 58400666.600005016 ns/iter 64995194.44443851 ns/iter 0.90
E2E_Compiler_ansible_meta 26496701.612905607 ns/iter 22823357.14285669 ns/iter 1.16
E2E_Compiler_aws_cdk 323925.90866729966 ns/iter 326409.5202821786 ns/iter 0.99
E2E_Compiler_babelrc 2199275.4906832967 ns/iter 1952787.5611941712 ns/iter 1.13
E2E_Compiler_clang_format 13343165.039214892 ns/iter 13144154.314815111 ns/iter 1.02
E2E_Compiler_cmake_presets 24789156.250002567 ns/iter 25091440.50000194 ns/iter 0.99
E2E_Compiler_code_climate 2019422.3760932914 ns/iter 2009014.8138889514 ns/iter 1.01
E2E_Compiler_cql2 11522148.599999582 ns/iter 11068025.950819781 ns/iter 1.04
E2E_Compiler_cspell 19456043.97222193 ns/iter 19363133.538461577 ns/iter 1.00
E2E_Compiler_cypress 3557098.793814625 ns/iter 3447621.5969386795 ns/iter 1.03
E2E_Compiler_deno 6155338.0789475115 ns/iter 6187827.686440191 ns/iter 0.99
E2E_Compiler_dependabot 3532560.3864732226 ns/iter 3355542.4311928772 ns/iter 1.05
E2E_Compiler_draft_04 1971179.4619720231 ns/iter 2123995.129230794 ns/iter 0.93
E2E_Compiler_fabric_mod 3867413.738693079 ns/iter 5044443.702380991 ns/iter 0.77
E2E_Compiler_geojson 21719708.343749035 ns/iter 27537277.777776547 ns/iter 0.79
E2E_Compiler_gitpod_configuration 4327215.79768782 ns/iter 5009341.2698411085 ns/iter 0.86
E2E_Compiler_helm_chart_lock 537118.9591078393 ns/iter 614113.3733870395 ns/iter 0.87
E2E_Compiler_importmap 252154.24390241384 ns/iter 320418.79860828375 ns/iter 0.79
E2E_Compiler_jasmine 1054763.7835365545 ns/iter 1117349.411411406 ns/iter 0.94
E2E_Compiler_jshintrc 3116083.16326514 ns/iter 3259889.5089286375 ns/iter 0.96
E2E_Compiler_jsconfig 19021436.806449477 ns/iter 19270627.305552855 ns/iter 0.99
E2E_Compiler_krakend 139561933.40000027 ns/iter 148374341.8000131 ns/iter 0.94
E2E_Compiler_lazygit 40308638.27272862 ns/iter 36900556.818176776 ns/iter 1.09
E2E_Compiler_lerna 1508822.5300924885 ns/iter 1245704.9160000223 ns/iter 1.21
E2E_Compiler_nest_cli 5896640.074467996 ns/iter 5983735.0666668955 ns/iter 0.99
E2E_Compiler_omc 165673916.749995 ns/iter 151188656.24998534 ns/iter 1.10
E2E_Compiler_omnisharp 5834279.76190406 ns/iter 5342365.000000199 ns/iter 1.09
E2E_Compiler_openapi 23119943.033335254 ns/iter 19300067.138889037 ns/iter 1.20
E2E_Compiler_pre_commit_hooks 6688019.549382722 ns/iter 3505018.4221105594 ns/iter 1.91
E2E_Compiler_pulumi 4124605.3575128266 ns/iter 2799714.2642275286 ns/iter 1.47
E2E_Compiler_semantic_release 1624700.147347902 ns/iter 1168834.1584157052 ns/iter 1.39
E2E_Compiler_stale 1609790.0333331346 ns/iter 1165962.0646767078 ns/iter 1.38
E2E_Compiler_stylecop 6696780.230088461 ns/iter 4731338.369127713 ns/iter 1.42
E2E_Compiler_tmuxinator 1630897.6426799016 ns/iter 1455389.9759035343 ns/iter 1.12
E2E_Compiler_ui5 54511392.33333417 ns/iter 58305829.916662335 ns/iter 0.93
E2E_Compiler_ui5_manifest 335373167.0000002 ns/iter 353213958.5000209 ns/iter 0.95
E2E_Compiler_unreal_engine_uproject 3547363.873785997 ns/iter 4354171.296296483 ns/iter 0.81
E2E_Compiler_vercel 12595196.12069104 ns/iter 14881998.195654016 ns/iter 0.85
E2E_Compiler_yamllint 326969.93980667595 ns/iter 328737.61457231856 ns/iter 0.99
E2E_Evaluator_adaptivecard 28483.21708433374 ns/iter 30334.299434192042 ns/iter 0.94
E2E_Evaluator_ansible_meta 260280.71188631724 ns/iter 268969.7703112922 ns/iter 0.97
E2E_Evaluator_aws_cdk 54684.28370464936 ns/iter 60628.96015606133 ns/iter 0.90
E2E_Evaluator_babelrc 116760.99881094115 ns/iter 113124.09593924132 ns/iter 1.03
E2E_Evaluator_cerebrum_criminal_case 1460373.1818182166 ns/iter 1097141.8787878507 ns/iter 1.33
E2E_Evaluator_clang_format 119592.60751528422 ns/iter 102819.50336749514 ns/iter 1.16
E2E_Evaluator_cmake_presets 4529499.729032097 ns/iter 3777327.127659433 ns/iter 1.20
E2E_Evaluator_code_climate 187072.26956269998 ns/iter 168673.89663182962 ns/iter 1.11
E2E_Evaluator_cql2 197428.5114006464 ns/iter 200359.52438006512 ns/iter 0.99
E2E_Evaluator_cspell 494099.6911462016 ns/iter 560032.86823734 ns/iter 0.88
E2E_Evaluator_cypress 152857.8893220569 ns/iter 189410.12055838516 ns/iter 0.81
E2E_Evaluator_deno 278451.24831459246 ns/iter 285117.31656917563 ns/iter 0.98
E2E_Evaluator_dependabot 384432.7893863702 ns/iter 400421.38619595754 ns/iter 0.96
E2E_Evaluator_draft_04 5740787.335999812 ns/iter 7664943.719298502 ns/iter 0.75
E2E_Evaluator_fabric_mod 602031.4830157898 ns/iter 751838.4463768256 ns/iter 0.80
E2E_Evaluator_geojson 17080570.1219534 ns/iter 23138811.87878699 ns/iter 0.74
E2E_Evaluator_gitpod_configuration 209550.90517727932 ns/iter 272215.3966354016 ns/iter 0.77
E2E_Evaluator_helm_chart_lock 327620.807277668 ns/iter 392350.56624426943 ns/iter 0.84
E2E_Evaluator_importmap 49928.428870565986 ns/iter 59617.054199998165 ns/iter 0.84
E2E_Evaluator_jasmine 110107.83807404619 ns/iter 108075.32334963875 ns/iter 1.02
E2E_Evaluator_jshintrc 959630.2149659442 ns/iter 991059.7692308127 ns/iter 0.97
E2E_Evaluator_jsconfig 365768.90332331 ns/iter 355789.64874930837 ns/iter 1.03
E2E_Evaluator_krakend 166343.98432364024 ns/iter 161903.21420667286 ns/iter 1.03
E2E_Evaluator_lazygit 111486.12935973472 ns/iter 131875.36655948687 ns/iter 0.85
E2E_Evaluator_lerna 131608.36651012232 ns/iter 133022.5367682619 ns/iter 0.99
E2E_Evaluator_nest_cli 155339.3078272148 ns/iter 162532.65518752366 ns/iter 0.96
E2E_Evaluator_omc 20126.15918872698 ns/iter 16936.952094070923 ns/iter 1.19
E2E_Evaluator_omnisharp 562060.4160000085 ns/iter 476735.3764330895 ns/iter 1.18
E2E_Evaluator_openapi 10493999.999999844 ns/iter 9046953.82432446 ns/iter 1.16
E2E_Evaluator_pre_commit_hooks 758286.1705288258 ns/iter 430636.45361986774 ns/iter 1.76
E2E_Evaluator_pulumi 705124.3633093105 ns/iter 746512.6559030993 ns/iter 0.94
E2E_Evaluator_semantic_release 99823.30681498365 ns/iter 115434.9930262811 ns/iter 0.86
E2E_Evaluator_stale 152551.47250963404 ns/iter 181609.20598993672 ns/iter 0.84
E2E_Evaluator_stylecop 258466.96394322347 ns/iter 325557.8929840237 ns/iter 0.79
E2E_Evaluator_tmuxinator 93725.96169282508 ns/iter 92735.28454774173 ns/iter 1.01
E2E_Evaluator_ui5 426507.88356575323 ns/iter 460514.25645872473 ns/iter 0.93
E2E_Evaluator_ui5_manifest 1992968.9857953938 ns/iter 2465515.9700000696 ns/iter 0.81
E2E_Evaluator_unreal_engine_uproject 474460.79240158 ns/iter 387957.41498742707 ns/iter 1.22
E2E_Evaluator_vercel 252997.9365871161 ns/iter 305822.32609571645 ns/iter 0.83
E2E_Evaluator_yamllint 13141.579947141829 ns/iter 15739.208329821053 ns/iter 0.83
Micro_Draft4_Meta_1_No_Callback 180.57661054367784 ns/iter 233.79932196644845 ns/iter 0.77
Micro_Draft4_Required_Properties 724.0077894924607 ns/iter 943.255469268405 ns/iter 0.77
Micro_Draft4_Many_Optional_Properties_Minimal_Match 21.87584998600502 ns/iter 30.79647556536039 ns/iter 0.71
Micro_Draft4_Few_Optional_Properties_Minimal_Match 11.998686875009453 ns/iter 18.123816650171996 ns/iter 0.66
Micro_Draft4_Items_Schema 470.1047693787041 ns/iter 716.5176607925234 ns/iter 0.66
Micro_Draft4_Nested_Object 2.7180654779766673 ns/iter 4.179789075883946 ns/iter 0.65
Micro_Draft4_Properties_Triad_Optional 267.0734759525198 ns/iter 402.04519149550566 ns/iter 0.66
Micro_Draft4_Properties_Triad_Closed 217.68441188062877 ns/iter 368.51687907702194 ns/iter 0.59
Micro_Draft4_Properties_Triad_Required 293.7076916598565 ns/iter 578.2065456823256 ns/iter 0.51
Micro_Draft4_Properties_Closed 50.52108329999783 ns/iter 98.68851390817088 ns/iter 0.51
Micro_Draft4_Non_Recursive_Ref 23.461771084598325 ns/iter 41.392146534493804 ns/iter 0.57
Micro_Draft4_Pattern_Properties_True 161.57776578798146 ns/iter 313.95758494495794 ns/iter 0.51
Micro_Draft4_Ref_To_Single_Property 12.32192351413817 ns/iter 21.1483049915855 ns/iter 0.58
Micro_Draft4_Additional_Properties_Type 45.1227550504704 ns/iter 74.31813897082053 ns/iter 0.61
Micro_Draft4_Nested_Oneof 59.609384227871345 ns/iter 78.98417695955358 ns/iter 0.75
Micro_Draft4_Short_Enum 9.414575290849598 ns/iter 12.07712814972179 ns/iter 0.78
Micro_Draft4_Long_Enum 14.66070914140306 ns/iter 19.380248589470273 ns/iter 0.76
Micro_Draft4_Long_Enum_Short_Strings 10.479758482469522 ns/iter 14.80832654273459 ns/iter 0.71
Micro_Draft4_Type_Object 5.719583610782804 ns/iter 10.492997677506432 ns/iter 0.55
Micro_Draft4_Ref_Single_100 1733687.394472388 ns/iter 2681163.024271772 ns/iter 0.65
Micro_Draft4_Compile_Ref_Many_Nested 1295205.9817850199 ns/iter 1975778.1606647647 ns/iter 0.66
Micro_Draft4_Compile_Wrap 2104414.6525681536 ns/iter 2553823.875886247 ns/iter 0.82
Micro_Draft6_Property_Names 100.70017772144259 ns/iter 109.7795509086045 ns/iter 0.92
Micro_Draft6_Compile_FHIR 8652878207.999947 ns/iter 18156987749.999985 ns/iter 0.48
Micro_Draft7_If_Then_Else 29.622468578446597 ns/iter 29.041481912197938 ns/iter 1.02
Micro_2019_09_Unevaluated_Properties 37.972397754270986 ns/iter 35.40038606514917 ns/iter 1.07
Micro_2019_09_Compile_Wrap 293376416.4999957 ns/iter 359361708.49998915 ns/iter 0.82
Micro_2019_09_KrakenD_Linter_Check 673113041.9999545 ns/iter 664173958.9999815 ns/iter 1.01
Micro_2019_09_KrakenD_Linter_Apply 5980431625.0000515 ns/iter 6261546124.999882 ns/iter 0.96
Micro_2020_12_Dynamic_Ref 240.95401437277883 ns/iter 266.43727575708135 ns/iter 0.90
Micro_2020_12_Dynamic_Ref_Single 5.766325478363493 ns/iter 6.417015536706586 ns/iter 0.90
Micro_2020_12_Simple_Output_Mask 131282.84824253182 ns/iter 187202.95683932616 ns/iter 0.70
Micro_2020_12_Simple_Output_Annotations 148120.4759414228 ns/iter 217098.30866807996 ns/iter 0.68
Micro_2020_12_Compile_NonCircular_Shared_Refs 834485.541020058 ns/iter 988875.6392544351 ns/iter 0.84

This comment was automatically generated by workflow using github-action-benchmark.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: 0290a29 Previous: 8611dfd Ratio
Micro_2020_12_Dynamic_Ref 448.82117229187224 ns/iter 467.88499508542276 ns/iter 0.96
Micro_2020_12_Dynamic_Ref_Single 9.323656123735129 ns/iter 9.295026049731495 ns/iter 1.00
Micro_2020_12_Simple_Output_Mask 139775.37114024808 ns/iter 138526.24965326226 ns/iter 1.01
Micro_2020_12_Simple_Output_Annotations 175904.90599355282 ns/iter 175321.98845670323 ns/iter 1.00
Micro_2020_12_Compile_NonCircular_Shared_Refs 1262999.808318249 ns/iter 1250293.935483828 ns/iter 1.01
Micro_2019_09_Unevaluated_Properties 47.30786244871516 ns/iter 46.25542164164141 ns/iter 1.02
Micro_2019_09_Compile_Wrap 317367195.99996376 ns/iter 310103815.4999856 ns/iter 1.02
Micro_2019_09_KrakenD_Linter_Check 1289764386.0000017 ns/iter 1193623039.9999204 ns/iter 1.08
Micro_2019_09_KrakenD_Linter_Apply 11569210311.000006 ns/iter 10580588031.000048 ns/iter 1.09
Micro_Draft7_If_Then_Else 45.67024448939477 ns/iter 45.74628518257425 ns/iter 1.00
Micro_Draft6_Property_Names 161.37333970424456 ns/iter 161.31079724066996 ns/iter 1.00
Micro_Draft6_Compile_FHIR 14723045111.000032 ns/iter 13808046429.99999 ns/iter 1.07
Micro_Draft4_Meta_1_No_Callback 221.4418142142741 ns/iter 221.7714388693621 ns/iter 1.00
Micro_Draft4_Required_Properties 793.520425155651 ns/iter 794.7385209005271 ns/iter 1.00
Micro_Draft4_Many_Optional_Properties_Minimal_Match 27.29531374834716 ns/iter 27.343177753997193 ns/iter 1.00
Micro_Draft4_Few_Optional_Properties_Minimal_Match 16.96660231408769 ns/iter 16.99971126772175 ns/iter 1.00
Micro_Draft4_Items_Schema 540.473914809914 ns/iter 535.829370013466 ns/iter 1.01
Micro_Draft4_Nested_Object 3.2792542352366616 ns/iter 3.2746227711239495 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 494.4206308388962 ns/iter 520.322034441542 ns/iter 0.95
Micro_Draft4_Properties_Triad_Closed 408.79949581381976 ns/iter 391.6941766378204 ns/iter 1.04
Micro_Draft4_Properties_Triad_Required 543.8601713112228 ns/iter 541.2289280000095 ns/iter 1.00
Micro_Draft4_Properties_Closed 70.41569113282206 ns/iter 70.32698068415074 ns/iter 1.00
Micro_Draft4_Non_Recursive_Ref 14.13527091810148 ns/iter 14.12977128013384 ns/iter 1.00
Micro_Draft4_Pattern_Properties_True 241.35409841147205 ns/iter 240.51890100312994 ns/iter 1.00
Micro_Draft4_Ref_To_Single_Property 16.911844795559194 ns/iter 16.90252742464999 ns/iter 1.00
Micro_Draft4_Additional_Properties_Type 19.16828273797395 ns/iter 19.173214947807274 ns/iter 1.00
Micro_Draft4_Nested_Oneof 111.96553581310653 ns/iter 111.7548660451568 ns/iter 1.00
Micro_Draft4_Short_Enum 17.76007700965877 ns/iter 17.752853920499735 ns/iter 1.00
Micro_Draft4_Long_Enum 18.886438007298587 ns/iter 19.349833099498465 ns/iter 0.98
Micro_Draft4_Long_Enum_Short_Strings 17.75129836517081 ns/iter 17.758037912579915 ns/iter 1.00
Micro_Draft4_Type_Object 9.316341904055042 ns/iter 9.29481186921037 ns/iter 1.00
Micro_Draft4_Ref_Single_100 2653403.291666543 ns/iter 2616827.1872661486 ns/iter 1.01
Micro_Draft4_Compile_Ref_Many_Nested 1973634.6966291538 ns/iter 1940394.0055248644 ns/iter 1.02
Micro_Draft4_Compile_Wrap 2693793.59459474 ns/iter 2682192.8160919594 ns/iter 1.00
E2E_Compiler_adaptivecard 67949950.39999776 ns/iter 65493893.70001109 ns/iter 1.04
E2E_Compiler_ansible_meta 30524078.608693894 ns/iter 29787750.250003833 ns/iter 1.02
E2E_Compiler_aws_cdk 535021.4920030365 ns/iter 526219.7105263366 ns/iter 1.02
E2E_Compiler_babelrc 2948037.537815257 ns/iter 2895319.344398536 ns/iter 1.02
E2E_Compiler_clang_format 20042186.971428625 ns/iter 19670858.555555366 ns/iter 1.02
E2E_Compiler_cmake_presets 28180728.840002302 ns/iter 27493846.42307772 ns/iter 1.02
E2E_Compiler_code_climate 2943014.493670689 ns/iter 2927648.2803345188 ns/iter 1.01
E2E_Compiler_cql2 14453240.187502084 ns/iter 14220469.836735511 ns/iter 1.02
E2E_Compiler_cspell 24612648.071427297 ns/iter 24092210.655175194 ns/iter 1.02
E2E_Compiler_cypress 4366166.42857135 ns/iter 4297963.098765565 ns/iter 1.02
E2E_Compiler_deno 8429488.27710873 ns/iter 8302443.476191272 ns/iter 1.02
E2E_Compiler_dependabot 4369047.012422083 ns/iter 4313188.969136117 ns/iter 1.01
E2E_Compiler_draft_04 3102517.008849533 ns/iter 3064800.057017149 ns/iter 1.01
E2E_Compiler_fabric_mod 5314984.442748028 ns/iter 5507952.984962309 ns/iter 0.96
E2E_Compiler_geojson 24332634.44827546 ns/iter 23947264.689656455 ns/iter 1.02
E2E_Compiler_gitpod_configuration 5506797.203125302 ns/iter 5387816.330768986 ns/iter 1.02
E2E_Compiler_helm_chart_lock 869956.3457712634 ns/iter 856997.3801242544 ns/iter 1.02
E2E_Compiler_importmap 427083.4957108103 ns/iter 425256.2950819401 ns/iter 1.00
E2E_Compiler_jasmine 1609778.7563218854 ns/iter 1581529.7442396968 ns/iter 1.02
E2E_Compiler_jshintrc 4912872.359155494 ns/iter 4813369.862068643 ns/iter 1.02
E2E_Compiler_jsconfig 23547461.666669276 ns/iter 23060497.399997834 ns/iter 1.02
E2E_Compiler_krakend 156123009.80001238 ns/iter 148886967.40001705 ns/iter 1.05
E2E_Compiler_lazygit 35938990.57894808 ns/iter 35388602.10001076 ns/iter 1.02
E2E_Compiler_lerna 1876281.0454544474 ns/iter 1856980.670184224 ns/iter 1.01
E2E_Compiler_nest_cli 8178633.447060105 ns/iter 8041756.3103451505 ns/iter 1.02
E2E_Compiler_omc 170284319.2500154 ns/iter 159964619.7499851 ns/iter 1.06
E2E_Compiler_omnisharp 7336742.947916974 ns/iter 7246127.999998464 ns/iter 1.01
E2E_Compiler_openapi 27532170.384618506 ns/iter 26946346.730771717 ns/iter 1.02
E2E_Compiler_pre_commit_hooks 5901585.983050902 ns/iter 5862198.831931999 ns/iter 1.01
E2E_Compiler_pulumi 4549472.896103778 ns/iter 4471807.064103126 ns/iter 1.02
E2E_Compiler_semantic_release 1835107.0236219089 ns/iter 1808943.9043924639 ns/iter 1.01
E2E_Compiler_stale 1805540.3582473954 ns/iter 1774915.3316454114 ns/iter 1.02
E2E_Compiler_stylecop 6447165.146789445 ns/iter 6371587.209090731 ns/iter 1.01
E2E_Compiler_tmuxinator 2248474.3826366267 ns/iter 2236359.740506251 ns/iter 1.01
E2E_Compiler_ui5 50707750.428565696 ns/iter 49514117.64285954 ns/iter 1.02
E2E_Compiler_ui5_manifest 335331705.49998206 ns/iter 319378442.5000104 ns/iter 1.05
E2E_Compiler_unreal_engine_uproject 5102730.343065414 ns/iter 5034309.482013453 ns/iter 1.01
E2E_Compiler_vercel 13602372.057691198 ns/iter 13384531.211539315 ns/iter 1.02
E2E_Compiler_yamllint 505075.0274368192 ns/iter 495315.08510645956 ns/iter 1.02
E2E_Evaluator_adaptivecard 33298.36931494182 ns/iter 30276.20750637715 ns/iter 1.10
E2E_Evaluator_ansible_meta 299284.81946825853 ns/iter 289360.33740015974 ns/iter 1.03
E2E_Evaluator_aws_cdk 59062.087289681476 ns/iter 58592.00494627272 ns/iter 1.01
E2E_Evaluator_babelrc 133943.70058746528 ns/iter 133630.620566048 ns/iter 1.00
E2E_Evaluator_cerebrum_criminal_case 1426229.615384431 ns/iter 1376938.928993853 ns/iter 1.04
E2E_Evaluator_clang_format 106588.41551670559 ns/iter 107156.11346355012 ns/iter 0.99
E2E_Evaluator_cmake_presets 5309450.015748037 ns/iter 5127014.7737225 ns/iter 1.04
E2E_Evaluator_code_climate 232628.46852458842 ns/iter 227117.05868997742 ns/iter 1.02
E2E_Evaluator_cql2 317564.7937443479 ns/iter 309958.9717564011 ns/iter 1.02
E2E_Evaluator_cspell 644448.583484547 ns/iter 632782.2983872859 ns/iter 1.02
E2E_Evaluator_cypress 177347.10832065932 ns/iter 176123.33113919693 ns/iter 1.01
E2E_Evaluator_deno 356847.9399699959 ns/iter 350524.5288221446 ns/iter 1.02
E2E_Evaluator_dependabot 495474.9034090353 ns/iter 488950.99162595073 ns/iter 1.01
E2E_Evaluator_draft_04 8143848.841463872 ns/iter 6951072.26041595 ns/iter 1.17
E2E_Evaluator_fabric_mod 908057.3684210429 ns/iter 902279.8067885333 ns/iter 1.01
E2E_Evaluator_geojson 25637914.22222426 ns/iter 24987411.392852925 ns/iter 1.03
E2E_Evaluator_gitpod_configuration 277554.0763116223 ns/iter 271341.39250494115 ns/iter 1.02
E2E_Evaluator_helm_chart_lock 340173.2260573617 ns/iter 331680.3668722417 ns/iter 1.03
E2E_Evaluator_importmap 59319.61981179601 ns/iter 58123.60915549508 ns/iter 1.02
E2E_Evaluator_jasmine 139050.9620455332 ns/iter 139761.67900498927 ns/iter 0.99
E2E_Evaluator_jshintrc 1093612.7536022256 ns/iter 1008049.7456645631 ns/iter 1.08
E2E_Evaluator_jsconfig 477386.2983870214 ns/iter 466197.80548121885 ns/iter 1.02
E2E_Evaluator_krakend 236611.56842103644 ns/iter 242045.64485368913 ns/iter 0.98
E2E_Evaluator_lazygit 171646.76504855326 ns/iter 156348.79689286443 ns/iter 1.10
E2E_Evaluator_lerna 147267.19995741014 ns/iter 147905.01574805038 ns/iter 1.00
E2E_Evaluator_nest_cli 230822.35785733358 ns/iter 226589.6051118708 ns/iter 1.02
E2E_Evaluator_omc 27038.08484167357 ns/iter 25651.99525750537 ns/iter 1.05
E2E_Evaluator_omnisharp 563983.9772356936 ns/iter 554990.9174018322 ns/iter 1.02
E2E_Evaluator_openapi 14140497.117648242 ns/iter 12354941.372548494 ns/iter 1.14
E2E_Evaluator_pre_commit_hooks 532665.68133532 ns/iter 526740.9305137475 ns/iter 1.01
E2E_Evaluator_pulumi 835357.6774195345 ns/iter 831548.8430439358 ns/iter 1.00
E2E_Evaluator_semantic_release 136537.19899438723 ns/iter 134473.95429123344 ns/iter 1.02
E2E_Evaluator_stale 165903.20014258867 ns/iter 168427.01079912842 ns/iter 0.99
E2E_Evaluator_stylecop 340748.1732168363 ns/iter 335799.6920904822 ns/iter 1.01
E2E_Evaluator_tmuxinator 128109.94392012715 ns/iter 126717.04810311788 ns/iter 1.01
E2E_Evaluator_ui5 659638.1047171355 ns/iter 636862.4450548298 ns/iter 1.04
E2E_Evaluator_ui5_manifest 3229352.130045446 ns/iter 3082122.170305478 ns/iter 1.05
E2E_Evaluator_unreal_engine_uproject 506934.95444365294 ns/iter 514994.9462839346 ns/iter 0.98
E2E_Evaluator_vercel 354489.9287532086 ns/iter 347438.47696874384 ns/iter 1.02
E2E_Evaluator_yamllint 12936.439067466426 ns/iter 12873.280998095053 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@jviotti jviotti merged commit 07d16b9 into main Feb 16, 2026
13 checks passed
@jviotti jviotti deleted the linter-by-schema branch February 16, 2026 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant