stacktrace-log-triage

作成者: kotlin

Kotlin + Springのスタックトレース、起動ログ、実行時ログ、関連するメトリクスの異常から障害を診断し、ラッパー例外から根本原因を分離する…

npx skills add https://github.com/kotlin/kotlin-backend-agent-skills --skill stacktrace-log-triage

Stacktrace Log Triage

Source mapping: Tier 1 critical skill derived from Kotlin_Spring_Developer_Pipeline.md (SK-15).

Mission

Turn noisy failure evidence into a ranked diagnosis with explicit confidence. Always distinguish symptom, proximate cause, and true root cause.

Gather Evidence First

  • Read the full stack trace, not only the top frame.
  • Read the surrounding log lines before and after the first failure.
  • Capture timestamps, correlation ids, request ids, thread names, and active profiles when available.
  • Read recent relevant code or config changes if they are available.
  • Reuse repository constraints from project-context-ingestion when possible.

Triage Workflow

  1. Find the earliest meaningful failure signal.
  2. Walk the Caused by: chain until it stops getting more specific.
  3. Classify the incident:
    • DI and context startup
    • configuration binding
    • serialization or validation
    • SQL or migration
    • HTTP or timeout
    • security
    • concurrency or locking
    • classpath or version mismatch
  4. Separate what failed from why it failed.
  5. Rank hypotheses when evidence is incomplete.
  6. Propose a quick mitigation and a proper fix separately.

Diagnostic Rules

  • Treat BeanCreationException, InvocationTargetException, and similar wrappers as transport, not diagnosis.
  • Treat the first user-code frame after framework wrappers as high-signal evidence.
  • Use log chronology, not stack depth alone.
  • If the logs are truncated, say so and lower confidence.
  • Prefer an explanation grounded in the observed code path or configuration over pattern-matching from memory.

Advanced Signal Patterns

  • Check suppressed exceptions, root-cause logging one or two lines above the stack trace, and companion failures on adjacent threads. The most useful clue is often not in the main stack at all.
  • Distinguish hard failures from saturation patterns: connection pool exhaustion, thread pool starvation, event-loop blocking, retry storms, and deadlock retries often show up as secondary symptoms first.
  • For SQL failures, inspect vendor codes and SQL state when available. They are often more actionable than the wrapper exception type.
  • For startup failures after version or deploy changes, compare classpath and configuration drift before assuming a code bug.
  • For intermittent failures, weigh time correlation and concurrency context heavily. A race rarely leaves a clean single-thread narrative.
  • For OOM or GC-related incidents, plain stack traces are weak evidence. Thread dumps, heap symptoms, and allocation context matter more.
  • If metrics exist, correlate the first error spike with latency, pool saturation, or downstream dependency degradation rather than treating logs in isolation.
  • If the symptom appears in reactive or coroutine code, verify whether context propagation broke logging correlation before dismissing missing IDs or misleading thread names.

Expert Heuristics

  • The first fix after triage should reduce uncertainty as well as reduce pain. Prefer mitigations that also sharpen diagnosis.
  • If several candidate causes fit, rank them by evidence, blast radius, and reversibility of the proposed mitigation.
  • If the trace points to a framework wrapper, move outward to code and config that changed recently, then inward again through the causal chain.
  • Always state what evidence would falsify the leading hypothesis.

Output Contract

Return these sections:

  • Root cause: confirmed or most likely cause in plain language.
  • Confidence: confirmed, high, medium, or low.
  • Evidence: the log line, exception, config fact, or code path supporting the diagnosis.
  • Hotfix: the safest immediate containment or unblocking step.
  • Long-term fix: the proper code or configuration correction.
  • Reproduction and verification: how to reproduce, test, and monitor the fix.

Safety Rules

  • Label hypotheses as hypotheses.
  • Do not recommend risky schema changes, version upgrades, or broad refactors as a hotfix unless the incident truly leaves no safer option.
  • Do not claim certainty when the logs are incomplete.
  • Do not ignore alerting or monitoring implications after the fix.

Kotlin-Specific Checks

  • Watch for platform-type NullPointerException.
  • Watch for coroutine stack traces that obscure the original call path.
  • Watch for missing Kotlin compiler plugins causing runtime behavior gaps.
  • Watch for Jackson plus Kotlin constructor issues that surface as generic deserialization errors.

Quality Bar

A good run of this skill gives the user a path from failure evidence to safe remediation. A bad run repeats the top exception, ignores the Caused by: chain, or offers a dangerous hotfix without explaining the risk.

kotlinのその他のスキル

kotlin-backend-jpa-entity-mapping
kotlin
KotlinのデータクラスはDTOには自然ですが、JPAエンティティには危険です。Hibernateはデータクラスが破壊する同一性セマンティクスに依存しています。全フィールドに対するequals/hashCodeは状態変更後にSet/Mapのメンバーシップを破損させ、自動生成されるcopy()は管理対象エンティティのデタッチされた重複を作成します。
kotlin-tooling-agp9-migration
kotlin
Android Gradle Plugin 9.0により、同一モジュール内でAndroidアプリケーションおよびライブラリプラグインがKotlin Multiplatformプラグインと互換性がなくなります。このスキルは、移行手順を案内します。
kotlin-tooling-cocoapods-spm-migration
kotlin
KMPプロジェクトをCocoaPods(kotlin("native.cocoapods"))からSwift Package Manager(swiftPMDependencies DSL)に移行します — pod()をswiftPackage()に置き換え、…
kotlin-tooling-immutable-collections-0-5-x-migration
kotlin
Kotlin(およびJava)コードをkotlinx.collections.immutable 0.3.x / 0.4.xから最新の0.5.xに移行します。0.5.x系では、コピーを返すすべてのメソッドの名称が変更されています…
kotlin-tooling-java-to-kotlin
kotlin
Javaソースファイルを、各ステップで5つの不変条件をチェックする規律ある4ステップ変換手法を用いて、慣用的なKotlinに変換します。アノテーションサイトターゲット、ライブラリのイディオム、APIの保存を処理するフレームワーク対応変換をサポートします。
kotlin-tooling-native-build-performance
kotlin
iOSをターゲットとするKotlin Multiplatformプロジェクトにおける遅いKotlin/Nativeコンパイルとリンクを診断し、修正します。ユーザーがiOSの遅さや…を報告した場合に使用します。
kotlin-spring-proxy-compatibility
kotlin
Diagnose and prevent Kotlin plus Spring proxy failures around `@Transactional`, `@Cacheable`, `@Async`, method security, retry, configuration proxies, and JPA…
ci-cd-containerization-advisor
kotlin
再現可能なビルド、イメージ、デプロイメントパイプラインをKotlinとSpringアプリケーション向けに設計します。CI検証、レイヤードコンテナ、ロールアウトの安全性などを含みます。