11build :
2- maxIssues : -1 # Report all issues without failing (baseline phase)
2+ maxIssues : 0
33
44complexity :
55 LongMethod :
66 threshold : 60
7+ # Ktor route/plugin/service functions and E2E tests are monolithic by convention
8+ excludes : ['**/routes/**', '**/plugins/**', '**/services/**', '**/test/**']
79 LongParameterList :
810 functionThreshold : 8
911 constructorThreshold : 10
@@ -13,6 +15,8 @@ complexity:
1315 thresholdInInterfaces : 20
1416 CyclomaticComplexMethod :
1517 threshold : 20
18+ # Ktor route extension functions have many branches by design
19+ excludes : ['**/routes/**']
1620 NestedBlockDepth :
1721 threshold : 5
1822
@@ -33,8 +37,39 @@ style:
3337 - ' 0'
3438 - ' 1'
3539 - ' 2'
40+ - ' 3'
41+ - ' 5'
42+ - ' 8'
3643 - ' 10'
44+ - ' 16'
45+ - ' 24'
46+ - ' 32'
47+ - ' 44'
48+ - ' 50'
49+ - ' 60'
50+ - ' 64'
3751 - ' 100'
52+ - ' 128'
53+ - ' 256'
54+ - ' 1000'
55+ - ' 1024'
56+ - ' 3600'
57+ - ' 4096'
58+ - ' 8080'
59+ - ' 8192'
60+ - ' 10_240'
61+ - ' 1_048_576'
62+ # Bitmasks
63+ - ' 0xFF'
64+ # HTTP status codes
65+ - ' 400'
66+ - ' 401'
67+ - ' 403'
68+ - ' 404'
69+ - ' 409'
70+ - ' 413'
71+ - ' 415'
72+ - ' 429'
3873 ignoreHashCodeFunction : true
3974 ignorePropertyDeclaration : true
4075 ignoreLocalVariableDeclaration : true
@@ -49,19 +84,54 @@ style:
4984 WildcardImport :
5085 active : true
5186 excludeImports :
87+ # Ktor server framework
5288 - ' io.ktor.server.routing.*'
5389 - ' io.ktor.server.application.*'
5490 - ' io.ktor.server.response.*'
5591 - ' io.ktor.server.request.*'
92+ - ' io.ktor.server.auth.*'
93+ - ' io.ktor.server.plugins.*'
94+ - ' io.ktor.server.websocket.*'
95+ - ' io.ktor.server.engine.*'
96+ - ' io.ktor.server.netty.*'
97+ - ' io.ktor.server.testing.*'
5698 - ' io.ktor.http.*'
99+ - ' io.ktor.websocket.*'
100+ - ' io.ktor.utils.io.*'
101+ - ' io.ktor.serialization.*'
102+ # Ktor client (test code)
103+ - ' io.ktor.client.call.*'
104+ - ' io.ktor.client.request.*'
105+ - ' io.ktor.client.request.forms.*'
106+ - ' io.ktor.client.statement.*'
107+ - ' io.ktor.client.plugins.*'
108+ - ' io.ktor.client.plugins.contentnegotiation.*'
109+ # Exposed ORM
57110 - ' org.jetbrains.exposed.sql.*'
111+ # Kotlin/Kotlinx
112+ - ' kotlinx.coroutines.*'
113+ - ' kotlinx.serialization.*'
114+ - ' kotlinx.serialization.json.*'
115+ # Project internal packages
116+ - ' dev.kidsync.server.db.*'
117+ - ' dev.kidsync.server.models.*'
118+ - ' dev.kidsync.server.services.*'
119+ - ' dev.kidsync.server.plugins.*'
120+ - ' dev.kidsync.server.routes.*'
121+ # Java stdlib
122+ - ' java.util.*'
58123 ReturnCount :
59124 max : 5
60125 ForbiddenComment :
61126 active : false # Allow TODO/FIXME comments during development
62127 UnusedPrivateMember :
63128 active : true
64129 allowedNames : ' serialVersionUID'
130+ ThrowsCount :
131+ active : true
132+ max : 4
133+ # Ktor route and service functions use throw for HTTP error responses
134+ excludes : ['**/routes/**', '**/services/**']
65135
66136exceptions :
67137 TooGenericExceptionCaught :
0 commit comments