▸ Advantages ▸ Easy to wire up dependencies (lint must produce output for health score) ▸ Ecosystem around lint ▸ Lots of existing checks ▸ Violations show up in IDE ▸ Issues ▸ New check = new lint rule = friction. ▸ Platform/build-system speci fi c ▸ Lint is slow ▸ Warnings are suppressible
IMPACT ON HEALTH SCORE: V1 ▸ On dev branch build ▸ Get a list of [modi fi ed, added, deleted] ▸ Calculate local score for only these fi les ▸ Check out main branch and do the same ▸ Diff main score vs dev score ▸ Report to GitHub via PR comment
V1 ▸ Doesn’t work well with lint (sarif output fi les are not in source control) ▸ Doesn’t show diffs if health score itself changes ▸ Mutates git state on CI nodes
IMPACT ON HEALTH SCORE: V2 ▸ Store health score output from main branch build in a json payload ▸ On dev build ▸ Download main branch health score from merge_base_commit ▸ Run health score on dev branch ▸ Diff main vs dev ▸ Post to GitHub
(E.G. QUARTER) ▸ Maintain 2 versions at the same time ▸ [Current]: used to track progress for this quarter ▸ [Next]: used to experiment with new recipe for next quarter
Best with buy in from codebase contributors ▸ May take time to align ▸ Start the conversation and optimize ▸ Some ideas ▸ Disabled tests/lints ▸ Deprecated API usage ▸ A11y violations ▸ Number of fi les in app module (build time bottleneck) ▸ Large Files ▸ .java Files
health score trend ▸ Removed all accessibility lint violations ▸ Large reduction in the use of mocks in favor of fakes ▸ Consistent removal of stale feature fl ags and disabled tests