circular-dependency-control

Detect and classify circular dependencies across Kotlin class, package, and Gradle module boundaries.

1|Updated Mar 14, 2026
One-click install
npx skills add https://github.com/agnaldo4j/kanban-vision-api-kt --skill circular-dependency-control
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: circular-dependency-control
Source: https://github.com/agnaldo4j/kanban-vision-api-kt/tree/main/.claude/skills/circular-dependency-control
Command: npx skills add https://github.com/agnaldo4j/kanban-vision-api-kt --skill circular-dependency-control

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill addresses the architectural decay caused by circular dependencies, which lead to tight coupling, fragile builds, and runtime initialization errors in Kotlin projects.

Core Features & Use Cases

  • Multi-level Detection: Identifies cycles at the class, package, and Gradle module levels.
  • Resolution Patterns: Provides canonical refactoring strategies like Dependency Inversion, Mediator patterns, and Ref Objects.
  • Use Case: Use this during PR reviews or package restructuring to ensure your domain model remains a Directed Acyclic Graph (DAG), preventing the "spaghetti" dependency effect.

Quick Start

Use the circular-dependency-control skill to audit the domain model package for any bidirectional import cycles.

Frequently Asked Questions about circular-dependency-control

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect circular dependencies in a Kotlin codebase?

Detect circular dependencies in Kotlin by using static analysis across class, package, and Gradle module boundaries to identify tight coupling and enforce unidirectional dependency flow.

What is the best way to resolve circular dependencies between Gradle modules?

Resolve Gradle module cycles by applying canonical refactoring strategies like Dependency Inversion, Mediator patterns, and Ref Objects to prevent tight coupling and architectural decay.

How do I prevent spaghetti dependencies during package restructuring?

Prevent spaghetti dependencies during package restructuring by applying architectural fitness functions to audit the domain model, ensuring it remains a Directed Acyclic Graph (DAG).

Does this circular dependency detection work across class, package, and module boundaries?

Yes, circular dependency detection operates across class, package, and Gradle module boundaries in Kotlin projects to classify cycles and enforce clean architecture constraints.

Why do circular dependencies cause fragile builds and runtime initialization errors?

Circular dependencies cause fragile builds and runtime initialization errors because they create tight coupling and architectural decay, preventing the unidirectional dependency flow required for stable initialization.