@@ -13,6 +13,7 @@ var AllChecks = []CheckDefinition{
1313 Tech : "📐 Format" ,
1414 FreestyleIncompat : true ,
1515 DependsOn : nil ,
16+ IsFast : true ,
1617 Run : RunOxfmt ,
1718 },
1819
@@ -25,6 +26,7 @@ var AllChecks = []CheckDefinition{
2526 Tech : "🦀 Rust" ,
2627 FreestyleIncompat : true ,
2728 DependsOn : nil ,
29+ IsFast : true ,
2830 Run : RunRustfmt ,
2931 },
3032 {
@@ -65,6 +67,7 @@ var AllChecks = []CheckDefinition{
6567 Tech : "🦀 Rust" ,
6668 FreestyleIncompat : true ,
6769 DependsOn : nil ,
70+ IsFast : true ,
6871 Run : RunCargoMachete ,
6972 },
7073 {
@@ -96,6 +99,7 @@ var AllChecks = []CheckDefinition{
9699 Tech : "🦀 Rust" ,
97100 FreestyleIncompat : true ,
98101 DependsOn : nil ,
102+ IsFast : true ,
99103 Run : RunCfgGate ,
100104 },
101105 {
@@ -106,6 +110,7 @@ var AllChecks = []CheckDefinition{
106110 Tech : "🦀 Rust" ,
107111 FreestyleIncompat : false ,
108112 DependsOn : nil ,
113+ IsFast : true ,
109114 Run : RunLogErrorMacro ,
110115 },
111116 {
@@ -116,6 +121,7 @@ var AllChecks = []CheckDefinition{
116121 Tech : "🦀 Rust" ,
117122 FreestyleIncompat : false ,
118123 DependsOn : nil ,
124+ IsFast : true ,
119125 Run : RunErrorStringMatch ,
120126 },
121127 {
@@ -136,6 +142,7 @@ var AllChecks = []CheckDefinition{
136142 Tech : "🦀 Rust" ,
137143 FreestyleIncompat : false ,
138144 DependsOn : nil ,
145+ IsFast : true ,
139146 Run : RunIpcEnumCamelCase ,
140147 },
141148 {
@@ -197,6 +204,7 @@ var AllChecks = []CheckDefinition{
197204 App : AppDesktop ,
198205 Tech : "🎨 Svelte" ,
199206 DependsOn : []string {"oxfmt" },
207+ IsFast : true ,
200208 Run : RunStylelint ,
201209 },
202210 {
@@ -206,6 +214,7 @@ var AllChecks = []CheckDefinition{
206214 App : AppDesktop ,
207215 Tech : "🎨 Svelte" ,
208216 DependsOn : []string {"desktop-svelte-stylelint" },
217+ IsFast : true ,
209218 Run : RunCSSUnused ,
210219 },
211220 {
@@ -215,6 +224,7 @@ var AllChecks = []CheckDefinition{
215224 App : AppDesktop ,
216225 Tech : "🎨 Svelte" ,
217226 DependsOn : []string {"desktop-svelte-stylelint" },
227+ IsFast : true ,
218228 Run : RunA11yContrast ,
219229 },
220230 {
@@ -223,6 +233,7 @@ var AllChecks = []CheckDefinition{
223233 DisplayName : "a11y-coverage" ,
224234 App : AppDesktop ,
225235 Tech : "🎨 Svelte" ,
236+ IsFast : true ,
226237 Run : RunA11yCoverage ,
227238 },
228239 {
@@ -241,6 +252,7 @@ var AllChecks = []CheckDefinition{
241252 App : AppDesktop ,
242253 Tech : "🎨 Svelte" ,
243254 DependsOn : nil ,
255+ IsFast : true ,
244256 Run : RunImportCycles ,
245257 },
246258 {
@@ -250,6 +262,7 @@ var AllChecks = []CheckDefinition{
250262 App : AppDesktop ,
251263 Tech : "🎨 Svelte" ,
252264 DependsOn : nil ,
265+ IsFast : true ,
253266 Run : RunKnip ,
254267 },
255268 {
@@ -259,6 +272,7 @@ var AllChecks = []CheckDefinition{
259272 App : AppDesktop ,
260273 Tech : "🎨 Svelte" ,
261274 DependsOn : nil ,
275+ IsFast : true ,
262276 Run : RunTypeDrift ,
263277 },
264278 {
@@ -277,6 +291,7 @@ var AllChecks = []CheckDefinition{
277291 App : AppDesktop ,
278292 Tech : "🎨 Svelte" ,
279293 DependsOn : nil ,
294+ IsFast : true ,
280295 Run : RunDesktopE2ELinuxTypecheck ,
281296 },
282297 {
@@ -344,6 +359,7 @@ var AllChecks = []CheckDefinition{
344359 App : AppWebsite ,
345360 Tech : "🚀 Astro" ,
346361 DependsOn : []string {"website-build" },
362+ IsFast : true ,
347363 Run : RunWebsiteHTMLValidate ,
348364 },
349365 {
@@ -370,6 +386,7 @@ var AllChecks = []CheckDefinition{
370386 App : AppApiServer ,
371387 Tech : "⸆⸉ TS" ,
372388 DependsOn : []string {"api-server-eslint" },
389+ IsFast : true ,
373390 Run : RunApiServerTypecheck ,
374391 },
375392 {
@@ -378,6 +395,7 @@ var AllChecks = []CheckDefinition{
378395 App : AppApiServer ,
379396 Tech : "⸆⸉ TS" ,
380397 DependsOn : []string {"api-server-typecheck" },
398+ IsFast : true ,
381399 Run : RunApiServerTests ,
382400 },
383401
@@ -390,6 +408,7 @@ var AllChecks = []CheckDefinition{
390408 Tech : "🐹 Go" ,
391409 FreestyleIncompat : true ,
392410 DependsOn : nil ,
411+ IsFast : true ,
393412 Run : RunGoFmt ,
394413 },
395414 {
@@ -399,6 +418,7 @@ var AllChecks = []CheckDefinition{
399418 App : AppScripts ,
400419 Tech : "🐹 Go" ,
401420 DependsOn : []string {"scripts-go-gofmt" },
421+ IsFast : true ,
402422 Run : RunGoVet ,
403423 },
404424 {
@@ -408,6 +428,7 @@ var AllChecks = []CheckDefinition{
408428 App : AppScripts ,
409429 Tech : "🐹 Go" ,
410430 DependsOn : []string {"scripts-go-gofmt" },
431+ IsFast : true ,
411432 Run : RunStaticcheck ,
412433 },
413434 {
@@ -417,6 +438,7 @@ var AllChecks = []CheckDefinition{
417438 App : AppScripts ,
418439 Tech : "🐹 Go" ,
419440 DependsOn : []string {"scripts-go-gofmt" },
441+ IsFast : true ,
420442 Run : RunIneffassign ,
421443 },
422444 {
@@ -426,6 +448,7 @@ var AllChecks = []CheckDefinition{
426448 App : AppScripts ,
427449 Tech : "🐹 Go" ,
428450 DependsOn : nil ,
451+ IsFast : true ,
429452 Run : RunMisspell ,
430453 },
431454 {
@@ -435,6 +458,7 @@ var AllChecks = []CheckDefinition{
435458 App : AppScripts ,
436459 Tech : "🐹 Go" ,
437460 DependsOn : []string {"scripts-go-gofmt" },
461+ IsFast : true ,
438462 Run : RunGocyclo ,
439463 },
440464 {
@@ -462,6 +486,7 @@ var AllChecks = []CheckDefinition{
462486 App : AppScripts ,
463487 Tech : "🐹 Go" ,
464488 DependsOn : []string {"scripts-go-vet" },
489+ IsFast : true ,
465490 Run : RunGoTests ,
466491 },
467492
@@ -472,6 +497,7 @@ var AllChecks = []CheckDefinition{
472497 App : AppOther ,
473498 Tech : "📏 Metrics" ,
474499 DependsOn : nil ,
500+ IsFast : true ,
475501 Run : RunFileLength ,
476502 },
477503 {
@@ -480,6 +506,7 @@ var AllChecks = []CheckDefinition{
480506 App : AppOther ,
481507 Tech : "📏 Metrics" ,
482508 DependsOn : nil ,
509+ IsFast : true ,
483510 Run : RunClaudeMdReminder ,
484511 },
485512 {
@@ -489,6 +516,7 @@ var AllChecks = []CheckDefinition{
489516 App : AppOther ,
490517 Tech : "🔗 Links" ,
491518 DependsOn : nil ,
519+ IsFast : true ,
492520 Run : RunChangelogCommitLinks ,
493521 },
494522}
@@ -592,6 +620,29 @@ func FilterSlowChecks(defs []CheckDefinition, includeSlow bool) []CheckDefinitio
592620 return result
593621}
594622
623+ // FilterFastChecks keeps only checks marked IsFast (the curated pre-commit
624+ // lane) when `fast` is true; otherwise returns `defs` unchanged. Checks the
625+ // user explicitly named via --check bypass the filter, so
626+ // `--fast --check svelte-check` still runs svelte-check alongside the fast set.
627+ func FilterFastChecks (defs []CheckDefinition , fast bool , namedChecks []string ) []CheckDefinition {
628+ if ! fast {
629+ return defs
630+ }
631+ named := make (map [string ]bool , len (namedChecks ))
632+ for _ , name := range namedChecks {
633+ if c := GetCheckByID (name ); c != nil {
634+ named [c .ID ] = true
635+ }
636+ }
637+ var result []CheckDefinition
638+ for _ , def := range defs {
639+ if def .IsFast || named [def .ID ] {
640+ result = append (result , def )
641+ }
642+ }
643+ return result
644+ }
645+
595646// FilterCIOnlyChecks removes CI-only checks unless we're running in CI mode
596647// or the user explicitly named them via --check. The named-check escape hatch
597648// lets developers verify a CI-only check locally before pushing.
0 commit comments