skill(apm-integrations): match the sibling module's test DSL (no Java tests in a Groovy family) - #12164
Draft
jordan-wong wants to merge 1 commit into
Draft
skill(apm-integrations): match the sibling module's test DSL (no Java tests in a Groovy family)#12164jordan-wong wants to merge 1 commit into
jordan-wong wants to merge 1 commit into
Conversation
… tests in a Groovy family) Surfaced by the 2026-08-07 cache category gap sweep (jedis-3.0, reference PR #12080). jedis-3.0 is otherwise clean, but the regen wrote its tests in Java/JUnit (src/test/java, AbstractInstrumentationTest) while master and its siblings (jedis-1.4, jedis-4.0) use Groovy/Spock (src/test/groovy). Root cause is a self-contradiction in this skill file: line 7 mandates "Write Groovy/Spock tests ... Full Java instrumentation test support is not yet available", but lines ~136-175 illustrate the no-banner-comments rule with a fully Java AbstractInstrumentationTest example and nothing says which wins. The generation transcript shows the agent read the Groovy prose AND a sibling cache library's Java test (lettuce-5.0) and followed the Java exemplar. That Java choice is the direct trigger of the spurious `_dd.svc_src` CI red a prior report mis-filed as pure master-side infra: the Java DSL's TagsMatcher.defaultTags() (which carries a "// TODO Keep porting default tag logic" gap) enforces exact default tags the Groovy DSL tolerates. Fix: add an unambiguous "match the sibling module's test DSL; a Groovy family stays Groovy" rule next to the mandate, and fence the Java examples as style-only illustrations for modules already on the Java DSL — not a license to migrate a Groovy family. Domain-agnostic (all Java instrumentation), surfaced via cache but not cache-specific. Draft reference — from the toolkit eval-research thread. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 Generated with APM Instrumentation Toolkit
[Reference / skill-fix PR — draft.] From the toolkit eval-research thread; a sharpening of the
apm-integrationsagent skill, not an instrumentation change.What
Fixes a self-contradiction in
references/tests.md:AbstractInstrumentationTestexample, and nothing states which wins.Adds an unambiguous rule — match the sibling module's test DSL; a Groovy family stays Groovy — and fences the Java examples as style-only illustrations for modules already on the Java/JUnit DSL (not a license to migrate a Groovy family to Java).
Why (evidence)
Surfaced by the 2026-08-07 cache-category gap sweep on jedis-3.0 (reference PR #12080). jedis-3.0 is otherwise clean, but the regen wrote its tests in Java/JUnit (
src/test/java,AbstractInstrumentationTest) while master and its siblings (jedis-1.4,jedis-4.0) use Groovy/Spock (src/test/groovy). The generation transcript shows the agent read the Groovy prose and a sibling cache library's Java test (lettuce-5.0) and followed the Java exemplar.That Java choice is the direct trigger of the spurious
_dd.svc_srcCI failure a prior report mis-attributed to pure master-side infra: the Java DSL'sTagsMatcher.defaultTags()(which carries a// TODO Keep porting default tag logicgap) enforces exact default tags the Groovy DSL tolerates. Fixing the skill (so the family stays Groovy) is higher-leverage than patchingTagsMatcher.Domain-agnostic: the contradiction is in the shared skill, so any Java instrumentation generation faces the same fork. Surfaced via cache but not cache-specific.
Scope
One file,
references/tests.md, +3/−1. No instrumentation code changes.🤖 Generated with APM Instrumentation Toolkit