Java Stage
03 June 2026 · 14:35 — 15:20 · Bucharest
These patterns come from maintaining several Java and open source projects with AI-assisted workflows.
They worked in my context. Your codebase, team, and constraints may differ.
Age is not the problem. Unsafe change is.
// AI makes unsafe change compound sooner.“Start with bounded readiness work that makes the repository easier to change.”
README.md tells a person how to use it.
AGENTS.md tells an agent how to change it.
The agent shouldn't have to reason about the whole
repo to make a local change.
httpclient-vertx{,-5}
Reason once, where it's expensive.
Implement many times, where it's cheap.
Helm.rollback("r")
.toRevision(n).call() → Release
HelmKubernetesTest./mvnw test -pl helm-java
AGENTS.md was the map.
SKILL.md is the ritual.
#1337.
#1337 using TDD and project conventions.
#1337 using TDD and project conventions, then run adversarial review agents and address substantive findings before returning to me.
→ returns reviewable work
make generate-model← canonical command (~15 min)refToJavaTypeMappings in pom.xmlapi/core/v1beta1refToJavaTypeMappingsclusterapi.v1beta1 → clusterapi.core.v1beta1But text doesn't push back.
https://kubernetes.default.svc/.JUnit gives the agent a behavior breadcrumb
why these tests survived the AI era
tedious maintenance
agent territory
the loop you remember from 2010 is now
the loop your agent is trapped in
measured on my projects:
every lower tier buys confidence at a cost
// the agent is trapped in this loop too. shrink it.
case in point:
Fabric8 CI
Actions runners bill by the minute. The biggest lever is wall-clock.
Triggered by a flaky PodTest.testExecWithExitCode. Root cause: cleanUpOnce() synchronously shut down the SerialExecutor, discarding the queued handleExitStatus — so any caller of exec() could lose the parsed exit code.
Surfaced via flake #7756. Any production transport that drops the close handshake under load left callers blocked on a latch forever.
Flake report on SharedProcessorTest. Root cause: SerialExecutor.execute() after shutdown — any production code stopping an informer mid-flight could hit the same NPE.
Discipline. Just renamed.
AI just made the cost of skipping it obvious.
git add AGENTS.mdSKILL.md
AI takes the repetitive grind.
You keep the judgment.