# detekt










<LinkCard
  title="detekt"
  description="Kotlin の静的解析ツール。ルールの有効・無効は YAML の設定ファイルに書く。"
  href="https://detekt.dev/"
/>

detekt では、ルールの有効・無効やしきい値を YAML の設定ファイルで設定できます。

設定ファイルとベースラインも、アーキテクチャ定義に書いて katachi に伝えておくのがおすすめです。

```kt collapse
// ProjectArchitecture.kt
@file:OptIn(ExperimentalKatachiApi::class)

import me.tbsten.katachi.ExperimentalKatachiApi
import me.tbsten.katachi.dsl.architecture

val projectArchitecture = architecture {
    "Tools".group {
        detekt()
    }
}

// roles/Detekt.kt
@file:OptIn(ExperimentalKatachiApi::class)

import me.tbsten.katachi.ExperimentalKatachiApi
import me.tbsten.katachi.dsl.DeclarationContainerScope

private const val detektConfigDir = "config/detekt"

fun DeclarationContainerScope.detekt() =
    "Detekt".group {
        "Config" {
            title = "detekt の設定ファイル"
            summary = "detekt のルールの有効・無効としきい値を書く YAML"
            layout {
                detektConfigDir / "*.yml".file()
            }
        }

        "Baseline" {
            title = "detekt のベースライン"
            summary = "既存の指摘を許容するための baseline.xml（無くてもよい）"
            layout {
                detektConfigDir / "baseline.xml".file().optional()
            }
        }
    }
```

<SnippetIsStartingPoint />