component-and-release-boundarieslisted
Install: claude install-skill robsonkades/agent-skills
# Component and Release Boundaries
## Purpose
This skill uses **release component** for a unit published or deployed on its own schedule and
consumed through a versioned contract. Internal Maven or JPMS modules can still be meaningful
encapsulation/build components; they simply do not acquire the same external compatibility and
release obligations. State which meaning applies before using component metrics.
Prevent shared-library changes from unnecessarily forcing fleet-wide upgrades, and avoid
publication boundaries whose compatibility and release costs exceed their value. A shared
jar or shared version number alone does not establish either failure.
Inspect the project's JDK/compiler release, Maven/Gradle configuration, resolved dependency
graph, module path versus classpath, publication policy and deployed consumer versions.
This skill does not mandate a Java baseline: JPMS requires Java 9+, records Java 16+ and
sealed types Java 17+ without preview. Examples are partial illustrations; do not upgrade
the project or add modules/dependencies just to reproduce their syntax.
## Workflow
1. **Ask what is released, not what is grouped.** If two candidate components have never been
released on different schedules, investigate why. A release train or shared parent version
can coordinate independently buildable components without requiring that coordination.
Preserve justified encapsulation/build boundaries even when publication stays combined.
2. **Name the consumer