All Known Implementing Classes:
GradlePluginCoordinate, ModuleCoordinate

public sealed interface SkillSource permits ModuleCoordinate, GradlePluginCoordinate
Common identity contract for anything a resolved skill folder can be generated from: a Maven dependency (ModuleCoordinate) or a Gradle plugin applied via plugins {} (GradlePluginCoordinate).

Implementations supply the same tiered-naming methods SkillNameAssigner escalates through, so dependency- and plugin-sourced candidates can share a single collision-detection pass and land in one shared skill-folder namespace.

  • Method Details

    • artifactNameKey

      String artifactNameKey()
      Shortest, most readable candidate skill name — the first tier SkillNameAssigner tries.
      Returns:
      normalized, untruncated candidate key
    • groupArtifactNameKey

      String groupArtifactNameKey()
      Fallback candidate skill name used only when artifactNameKey() collides with another source in the same run.
      Returns:
      normalized, untruncated candidate key
    • skillName

      String skillName()
      Final, maximally-qualified skill name, used only when groupArtifactNameKey() also collides. Already finalized (length-limited with a hash suffix if needed).
      Returns:
      skill-folder-compatible name
    • finalizeSkillName

      String finalizeSkillName(String normalizedKey)
      Applies the length-limit and deterministic hash-suffix rule to an already-normalized candidate key.
      Parameters:
      normalizedKey - a normalized candidate key
      Returns:
      skill-folder-compatible name, truncated with a hash suffix if needed
    • describe

      String describe()
      Human-readable identity for logging (a GAV string, or plugin:<id>).
      Returns:
      display string