Campaign Evidence Matrix
Campaign: 1-trick-out-01-remove-before-merge
This document records what the campaign actually demonstrates about the ten
boring reasons from the talk abstract. It begins with hypotheses and
Not exercised classifications. Implementation issues must replace those
initial values only when durable campaign evidence exists.
The ignorance-reduction plan and generated implementation issues define the mandatory update timing and completion gates. In particular, the current issue's evidence must be recorded and merged before the next serial issue begins.
Field definitions
| Field | Meaning |
|---|---|
| Reason | The ordered reason from the abstract |
| Agentic failure mode | The weakness it is meant to constrain |
| Repository mechanism | Compiler, Maven, test, analyzer, workflow, telemetry, or deployment control |
| Implementation task | The trick-out issue and PR that introduce, exercise, or verify it |
| Observed campaign event | A concrete success, failure, correction, or non-event |
| Artifact | CI run, log, PR, review, trace, JFR, screenshot, or post-mortem |
| Confidence | Strong, Moderate, Weak, Unsupported, or Not exercised |
| Slide implication | Main slide, Brief mention, Appendix, Cut, or TBD |
Update rules
- Preserve the reason numbering and ordering.
- Treat the failure modes and mechanisms below as initial hypotheses, not evidence.
- Update every applicable summary row after implementation, validation, and review-feedback resolution for an issue.
- Identify implementation work with exact issue and PR numbers.
- Link or name durable artifacts precisely: commit SHA, GitHub Actions run and job, check name, repository-relative artifact path, log, trace, profile, screenshot, or post-mortem section.
- Distinguish a mechanism being installed from being executed, detecting a problem, preventing a problem, or materially improving the work.
- Record silent or negative results. If the work did not exercise a reason,
leave or set its confidence to
Not exercisedand explain the non-event. - Do not invent evidence or upgrade confidence because a tool merely passed.
- Do not delete earlier evidence. Update the summary and append a dated issue-specific entry to the evidence log.
- Put reusable implementation guidance in
campaign-lessons.md, not here.
Summary matrix
| Reason | Agentic failure mode | Repository mechanism | Implementation task | Observed campaign event | Artifact | Confidence | Slide implication |
|---|---|---|---|---|---|---|---|
| 1. Type system | Hallucinated APIs, incompatible values, invalid generics, and domain or layer leakage | Java compiler and Maven compiler configuration | Issue #4 / PR #12; Issue #5 / PR #13 | Issue #5 compiled 95 main and 11 test sources with -Xlint:all -Werror; a controlled nonexistent-method fixture failed with javac's cannot find symbol diagnostic. Hosted source-gates also passed on the tested SHA. |
Tested SHA b19c8c9f2a67822ff5c3abc4a7de888dee353e79; successful Main Build run #36804048610, source-gates job/check 110185685393; source-gates artifact 11136618790, digest sha256:fdfd048be3d64bde3462a70ab6a289cb4abf49f8ada206abae821265e636942e; supporting files compiler.log, test-compiler.log, and compiler-negative.log |
Strong hosted and local implementation evidence | Brief mention |
| 2. Testing ecosystem | Behavior that compiles but is incomplete, incorrect, or regressive | JUnit, Arquillian, Open Liberty integration tests, architecture tests, and acceptance checks | Issue #2 / PR #9; Issue #6 / PR #14; fixture baseline repair | The safety-net implementation adds a reproducible inventory (8 active test classes, 3 dormant, 0 removed), two facade/DTO boundary tests, and a compiled-dependency DDD layer baseline. On the exact primary merge SHA, the canonical unit tier passed 27/27 with zero skipped tests, the managed Open Liberty tier passed 4/4 with zero skipped tests, all negative controls passed, and the production-WAR acceptance lifecycle passed root, Administration dashboard, seeded detail, and REST JSON contracts while proving cleanup. The later fixture baseline repair replaced the brittle exact-four-test assertion with a named-method and zero-failure contract that still passes the feature-free four-test suite and permits a valid fifth test. | Primary merge SHA 0858b99c14e6d47649008716116504dcdab3bced; successful Main Build run #36818583169, formatting job/check 110228986496, source-gates job/check 110229082017, and build job/check 110229409615; fixture baseline repair SHA 94950cfceefc85edaec68eb6b61a16e0e6779ecc, successful Main Build run #36956818505, formatting job/check 110681507992, source-gates job/check 110681594814, build job/check 110681940309, and test-reports-liberty artifact 11206483198, digest sha256:19b0c9c08136763bbb8f947581e35680c6770717d0a82cf7a89311578ea4af53 |
Strong exact-SHA hosted evidence plus repository implementation evidence | Brief mention |
| 3. Backwards compatibility culture | Accidental migration away from Java 17, Java EE 7, javax.*, existing contracts, or established runtime behavior |
Compiler release, dependency and API constraints, compatibility tests, and repository instructions | Issue #4 / PR #12 | The focused contract passed for Java 17, Java EE 7 provided API, WAR identity, Liberty feature/deployment, and production javax.* source; all seven isolated negative controls rejected their intended boundary. The packaged WAR reached /cargo-tracker/rest/cargo with seeded ABC123 over Open Liberty and stopped cleanly. Hosted formatting and build jobs passed on the validated implementation HEAD and uploaded the compatibility report and runtime evidence. |
Validated implementation HEAD a3bee8d24ec54e6b3587ccf0cec443969d0609bd; successful Main Build run #36801557821, formatting job/check 110176804872, build job/check 110176909417, and compatibility-contract artifact 11135847970, digest sha256:1de927b096f1ceaef7c1a3aae9c9f1bb2cafcbcc9ee53b5b3ae4ef1324f2018f |
Strong hosted implementation evidence plus runtime proof | Main slide |
| 4. Deep static analysis | Defects, architectural violations, maintainability problems, or security findings not rejected by compilation | Static analyzers, architecture rules, and security-oriented source analysis selected by the resolved plan | Issue #5 / PR #13 | SpotBugs 4.10.4 with Max effort and Low threshold reported zero selected production findings after correcting five shared SimpleDateFormat instances, the null booking result, and the unwritten route field. A temporary null dereference failed as priority-1 NP_ALWAYS_NULL. Hosted source-gates also passed on the tested SHA. |
Tested SHA b19c8c9f2a67822ff5c3abc4a7de888dee353e79; successful Main Build run #36804048610, source-gates job/check 110185685393; source-gates artifact 11136618790, digest sha256:fdfd048be3d64bde3462a70ab6a289cb4abf49f8ada206abae821265e636942e; supporting files spotbugs.xml, spotbugs.tsv, and analyzer-negative.log; configuration/source demo/config/spotbugs-exclude.xml, demo/scripts/ci/verify-source-gates.sh |
Strong hosted and local implementation evidence | Brief mention |
| 5. Build system maturity and dependency management | Dependency sprawl, version drift, non-reproducible builds, plugin drift, or unapproved repositories | Maven dependency management, Enforcer rules, convergence checks, plugin controls, and dependency/security analysis | Issue #3 / PR #10; Issue #4 / PR #12 | Issue #3 established the authoritative dependency gate. Issue #4 added direct Jakarta/framework/runtime dependency rejection, validated true project-level negative fixtures, and added schema/hash-checked compatibility artifact metadata. | Issue #3 PR Main Build run 36792676155 and exact-SHA push run 36793581535; Issue #4 validated implementation HEAD a3bee8d24ec54e6b3587ccf0cec443969d0609bd, successful Main Build run #36801557821, build job/check 110176909417, compatibility-contract artifact 11135847970 |
Strong hosted dependency and compatibility enforcement evidence | Brief mention |
| 6. Code formatting and style enforcement | Noisy diffs and inconsistent independently generated code | Spotless and any additional narrowly justified style checks | Issue #3 / PR #10; Issue #5 / PR #13 | Issue #5 preserved the historical ratchet and the formatting-first job; the controlled malformed Java fixture failed Spotless with the remediation command. Hosted formatting and source-gates jobs also passed on the tested SHA. |
Tested SHA b19c8c9f2a67822ff5c3abc4a7de888dee353e79; successful Main Build run #36804048610, formatting job/check 110185574947, source-gates job/check 110185685393; source-gates artifact 11136618790, digest sha256:fdfd048be3d64bde3462a70ab6a289cb4abf49f8ada206abae821265e636942e; supporting file formatting-negative.log plus demo/scripts/ci/verify-source-gates.sh |
Strong hosted and local implementation evidence | Brief mention |
| 7. Virtual threads and structured concurrency | Ad hoc concurrency, unmanaged task lifetimes, and unnecessary platform-thread complexity | A bounded Java 21-or-later spike isolated from the Java 17 Cargo Tracker baseline | Unassigned | Not yet exercised; the primary application baseline is Java 17 | None yet | Not exercised | TBD |
| 8. Observability stack | Opaque runtime failures and insufficient evidence for diagnosis | Structured logs, metrics, traces, correlation, OpenTelemetry artifacts, and JVM/process diagnostics | Issue #7 / PR #16; Issue #8 / PR #17 | On final reviewed SHA 87d6768d9eed2a29efee6357107f383a00c0ab5e, the successful Main Build correlated both fixed-ID requests across transcript, server spans, and Liberty access logs; exported nonempty JVM metrics; and passed negative controls for unavailable Collector, incompatible instrumentation, missing telemetry, broken correlation, unsafe exemplar/cargo data, secret-like content, and an invalid request without a diagnostic signal. Separately, issue #8 captured per-launch JVM flags, GC logs, JFR summaries, RSS/CPU samples, startup/request/cleanup outcomes for the hosted Java/jaz comparison; this adds diagnostic coverage without changing issue #7's evidence. |
Issue #7: run 36839380274, build job 110295058827; otel-telemetry artifact 11151111829, digest sha256:e5e180578fb5f31f8fe53a9a96f371bb1ddd86c697f68b3d3016842878dfbf21; liberty-logs artifact 11151376069, digest sha256:928e88ef86f80ae017256cf6d9e4b1662238a668e0722c9d9799d745bae9c3a6; supporting files traces.json, metrics.json, request-transcript.jsonl, redaction-check.txt, observability-access.log, messages.log, and observability-negative-controls.txt. Issue #8: run 36918453972, comparison artifact 11191258963, digest sha256:a0a221a61cbae90e63a5c792e70cc723817920ba64d4c5fd8551651d959d1461; status.txt, run-order.tsv, mode-summary.tsv, and paired-comparison.tsv |
Strong: issue #7 exact-SHA hosted observability and redaction gates passed; issue #8 exact-head hosted job published JVM/process/JFR/GC diagnostics for all 15 launches. | Main slide |
| 9. JVM performance tuning | Poor heap sizing, garbage-collector choices, startup behavior, or resource utilization under container limits | Repeatable workload, JVM/process diagnostics, JFR, GC evidence, and java versus jaz comparison |
Issue #8 / PR #17 | The hosted five-cycle comparison completed all 15 launches across direct Java, bypassed jaz, and tuned jaz; all passed functional, diagnostic, resource, and cleanup gates. Resolved tuned JVM settings and launcher integration were recorded. Ordinary measurements remain diagnostic only; no performance winner is claimed. |
Implementation HEAD 3e141c26cfbd6e5469aeebd2b627b620b28ab725; Main Build run 36918453972 (attempt 1; PR merge-test SHA 8ce8b6e0bfaaa8c40d5951ffd7e1c7d5d867bd14), formatting job 110558201739, source-gates job 110558380614, and build job 110558962626; four immutable artifacts and SHA-256 digests are recorded in the Issue #8 evidence log below. |
Strong hosted evidence that the bounded workload and three launcher modes passed functional, diagnostic, resource, and cleanup gates on one runner; measurements do not justify selecting a performance winner or establish AKS-limit behavior. | Brief mention |
| 10. Breadth of deployment options | Environment-coupled code or packaging that cannot move between realistic runtime targets | Repeatable deployment of the same Cargo Tracker artifact or container to Azure execution models | Unassigned | Not yet exercised | None yet | Not exercised | TBD |
Issue-specific evidence log
Append one subsection for every implementation issue, even when it produces no meaningful evidence. Keep entries in serial issue order.
Issue #2: Establish the Open Liberty-only baseline
- PR: #9
- Implementation commit:
bc6c3e387ccf5b3cab5e14b5ab4d91d512ef426b(pre-merge; do not treat as a future merge commit) - Completed: 2026-09-30 UTC
- Reasons expected to be exercised: 2, 3, 5, 6
- Reasons actually exercised: 2, 3, 5, 6
- Implementation result: Removed Payara/Cargo/GlassFish runtime paths and guidance; retained Open Liberty as the sole active-by-default profile to preserve the resolved Maven validation tiers. Preserved Java 17, Java EE 7,
javax.*, WAR packaging, andcargo-tracker.war. - Observed events:
- Spotless passed; the clean package passed all 28 tests (including four managed Open Liberty tests).
- The production-WAR lifecycle deployed the WAR, started Liberty with the 90-second bound, observed server/application readiness, and received HTTP 200
application/jsoncontaining seededABC123; the EXIT cleanup invokedliberty:stopsuccessfully. - The canonical profile-excluded compile and 24-test unit tiers passed; the explicit Liberty integration tier passed four tests; canonical package produced the WAR without a Liberty runtime directory.
- A temporary unsupported-server fixture was found by the same search that returned no unsupported-server guidance in the demo.
- Main Build push run #36754101720, attempt 2, passed for implementation commit
bc6c3e387ccf5b3cab5e14b5ab4d91d512ef426b:formattingjob/check 110022167006 andbuildjob/check 110022310098 both succeeded. The run has no artifacts. - The evidence-matrix update commit
bb9a8f033ac14935a235cd0710aed95efd1014d0also passed Main Build push run #36754242738, attempt 2:formattingjob/check 110022156492 andbuildjob/check 110022342235 both succeeded. This run has no artifacts.
- Durable artifacts:
- Local deployable WAR identity:
demo/target/cargo-tracker.war, 8,232,335 bytes, SHA-25693b8fc97ab3b8afcd44b1a062cbada335af79f5a764865a2e1fe2ed47e0c5419. This was produced and deployed locally; it is not represented as a hosted workflow artifact. - Supporting configuration/source:
demo/pom.xml,demo/src/main/liberty/config/server.xml,demo/src/test/resources/arquillian.xml, anddemo/src/main/java/org/eclipse/cargotracker/interfaces/booking/socket/RealtimeCargoTrackingService.java. - Hosted CI evidence: implementation push run #29 / ID
36754101720on commitbc6c3e387ccf5b3cab5e14b5ab4d91d512ef426b, with successfulformattingjob/check ID110022167006andbuildjob/check ID110022310098; current evidence update push run #31 / ID36754242738on commitbb9a8f033ac14935a235cd0710aed95efd1014d0, with successfulformattingjob/check ID110022156492andbuildjob/check ID110022342235. Both runs have no artifacts.
- Local deployable WAR identity:
- Evidence assessment: Strong for hosted formatting/build and local unit/integration/runtime lifecycle. The hosted workflow verifies formatting and Maven build; the production HTTP readiness assertion and guaranteed Liberty shutdown were verified locally, not by hosted acceptance CI.
- Candidate reusable lessons: Keep the
openlibertyprofile excludable while canonical fast tiers use-P!openliberty; flattening the plugin into the main build would change those commands.
Issue #3: Make CI authoritative and establish the Maven/dependency foundation
- PR: #10
- Implementation commit:
c98096d70caad040bd8c3613a630c7c064cc13e2 - Merged commit:
ff40701729cbfac46e2bcb6cd17fcd14a5dfeff0 - Completed: 2026-09-30 UTC
- Reasons expected to be exercised: 5, 6
- Reasons actually exercised: 5, 6
- Implementation result: Established serial formatting-first CI, Maven Enforcer governance, reproducible dependency inventories, advisory delta gating, negative controls, and immutable build/dependency artifacts.
- Observed events:
- Successful Main Build PR run 36792676155, attempt 1, validated synthetic merge SHA
37099baee55ca89517a83a3a555b436ffe1f4387for implementation HEADc98096d70caad040bd8c3613a630c7c064cc13e2. - PR
formattingjob/check 110148953240 andbuildjob/check 110149060803 passed in serial order. - PR #10 merged as primary merge SHA
ff40701729cbfac46e2bcb6cd17fcd14a5dfeff0. - Successful Main Build push run 36793581535, attempt 1, validated that exact SHA on
edburns/dd-3016202-cargotracker-devoxx-be-2026-experiment. formattingjob/check 110151794413 andbuildjob/check 110151881020 passed in serial order.- Required negative controls rejected Java range, Maven range, unversioned plugin, duplicate dependency, banned dependency, unauthorized repository, dependency convergence, malformed formatting, corrupted WAR checksum, and known-vulnerable Log4j advisory fixtures.
- Current and baseline inventories each contained 108 resolved coordinates; the full-coordinate delta was empty and no matching new HIGH/CRITICAL advisories were returned.
- Successful Main Build PR run 36792676155, attempt 1, validated synthetic merge SHA
- Durable artifacts:
- PR
build-contractartifact ID11133305135, URL, digestsha256:d3219a3cdb329839b8aadc1229132c4402b4b24917be45d4db8c8f0e4b53aec1. - PR
dependency-reportsartifact ID11132736102, URL, digestsha256:70ef51f9e344ea1c1d7e77dd7f2ae07bb0a06bdfb4e01ca2fcb00388f70ee690. build-contractartifact ID11132333582, URL, digestsha256:62a97f70663473867dc7f4646b79e0632da775ddfe82dfa1a01df8682070fc72; supporting filesenforcer-negative-controls.txt,war-inventory.txt,war.sha256, andartifact-metadata.json.dependency-reportsartifact ID11132333587, URL, digestsha256:7b1f547c05280d8c5b270b38e00c95192112514bab64de41d780fe1e8bd8e7aa; supporting fileseffective-pom.xml,dependency-tree.txt,resolved-plugins.txt,vulnerability-report.json,vulnerability-report.txt, andartifact-metadata.json.
- PR
- Evidence assessment: Strong for both the final PR synthetic-merge validation and the authoritative exact-SHA experiment-branch push run with immutable artifacts.
- Candidate reusable lessons: Keep formatting first, retain the historical Spotless ratchet, and record synthetic-merge SHA separately from implementation HEAD.
Issue #4: Enforce the Java 17 and Java EE 7 compatibility contract
- PR: #12
- Implementation commit:
a3bee8d24ec54e6b3587ccf0cec443969d0609bd(validated implementation HEAD) - Completed: 2026-10-01 UTC
- Reasons expected to be exercised: 1, 3, 5
- Reasons actually exercised: 1, 3, 5
- Implementation result: Added focused POM, Liberty, and production-source assertions; isolated negative fixtures; repository agent instructions; and a single deployed Open Liberty acceptance lifecycle with bounded evidence.
- Observed events:
- Local compatibility validation passed for compiler release 17,
javax:javaee-api:7.0in provided scope, WAR packaging/final name,javaee-7.0, WAR location, and/cargo-tracker. - Negative fixtures rejected a Jakarta import, Jakarta dependency, release 21, JAR packaging, renamed WAR, Spring dependency, and removed
javaee-7.0, each naming the violated boundary. - The packaged WAR deployed and returned seeded
ABC123from/cargo-tracker/rest/cargo; the acceptance script captured deploy/start/readiness/stop evidence and stopped Liberty cleanly. - Hosted Main Build run #36801557821 passed on validated implementation HEAD
a3bee8d24ec54e6b3587ccf0cec443969d0609bd;formattingjob/check 110176804872 andbuildjob/check 110176909417 both succeeded. - Direct Jakarta and Spring dependencies were rejected from the project-level dependency list, and compatibility metadata passed required-field, file-size, and SHA-256 verification.
- Local compatibility validation passed for compiler release 17,
- Durable artifacts:
demo/scripts/ci/verify-compatibility-contract.shdemo/scripts/ci/run-openliberty-acceptance.shdemo/ci-artifacts/compatibility-contract/compatibility-report.txt,negative-controls.txt,liberty-deploy.log,liberty-start.log,liberty-stop.log,readiness.jsonfrom local validationdemo/ci-artifacts/compatibility-contract/liberty-messages-excerpt.txtand compatibility-specificartifact-metadata.json.github/workflows/main.ymlcompatibility-contract upload with 90-day retention
- Hosted artifact:
compatibility-contractartifact 11135847970, digestsha256:1de927b096f1ceaef7c1a3aae9c9f1bb2cafcbcc9ee53b5b3ae4ef1324f2018f. - Evidence assessment: Strong for the validated implementation HEAD hosted contract, negative controls, artifact evidence, and deployed runtime lifecycle.
- Candidate reusable lessons: Keep repository assertions narrow and let the packaged WAR, rather than a managed test-only deployment, define the Open Liberty acceptance boundary.
Issue #5: Strengthen formatting, compiler, type, and static-analysis gates
- PR: #13
- Implementation commit:
64e2cbd - Completed: 2026-10-01 UTC
- Reasons expected to be exercised: 1, 4, 6
- Reasons actually exercised: 1, 4, 6
- Implementation result: Preserved the Spotless ratchet, enabled
-Xlint:all -Werrorfor main and test compilation, fixed the 14 compiler warnings, and added the focused SpotBugs 4.10.4 gate with a 90-daysource-gatesartifact. - Observed events:
- Local formatting passed after applying the historical ratchet; the malformed formatting fixture failed with Spotless's
spotless:applyremediation. - Main and test compilation passed independently with Java 17 and
-Werror; the invented API fixture failed with a file/linecannot find symboldiagnostic. Hostedsource-gatesjob/check 110185685393 passed on tested SHAb19c8c9f2a67822ff5c3abc4a7de888dee353e79. - SpotBugs passed with zero selected production findings after fixing five shared
SimpleDateFormathazards, the permanently null booking result, and the unwritten route field. The null-dereference fixture failed as priority 1NP_ALWAYS_NULLwith a source line. - Source-gate commands disabled the active Open Liberty profile and did not run deployment, readiness, or acceptance lifecycle steps. The successful hosted
formatting,source-gates, andbuildjobs were independently attributable: formatting 110185574947, source-gates 110185685393, and build 110186078979, all on tested SHAb19c8c9f2a67822ff5c3abc4a7de888dee353e79.
- Local formatting passed after applying the historical ratchet; the malformed formatting fixture failed with Spotless's
- Durable artifacts:
demo/pom.xml,demo/config/spotbugs-exclude.xml, anddemo/scripts/ci/verify-source-gates.shdemo/ci-artifacts/source-gates/generated by the source-gates job, includingformatting-negative.log,compiler.log,test-compiler.log,compiler-negative.log,spotbugs.xml,spotbugs.tsv,analyzer-negative.log,durations.tsv, andartifact-metadata.json- Hosted
source-gatesartifact 11136618790, digestsha256:fdfd048be3d64bde3462a70ab6a289cb4abf49f8ada206abae821265e636942e; successful Main Build run #36804048610 tested SHAb19c8c9f2a67822ff5c3abc4a7de888dee353e79 .github/workflows/main.ymlformattingjob/check 110185574947,source-gatesjob/check 110185685393, andbuildjob/check 110186078979- Evidence assessment: Strong for hosted formatting, compiler, test-compiler, SpotBugs, and controlled-failure evidence on tested SHA
b19c8c9f2a67822ff5c3abc4a7de888dee353e79; the local transcript demonstrates the same mechanisms independently.
- Candidate reusable lessons: Keep the compiler and analyzer source gates profile-excluded so they cannot repeat the Open Liberty acceptance lifecycle; keep future SpotBugs suppressions class-and-pattern-specific.
Issue #7: Add CI observability and diagnostic artifacts
- PR: #16
- Implementation commit:
87d6768d9eed2a29efee6357107f383a00c0ab5e - Completed: 2026-10-01 UTC
- Reasons expected to be exercised: 8
- Reasons actually exercised: 8
- Implementation result: Added pinned local OpenTelemetry Java-agent and Collector instrumentation to the existing bounded Liberty acceptance lifecycle, with correlated trace/metric exports, artifact redaction gates, and immutable diagnostic artifacts.
- Observed events:
- Main Build run 36839380274 succeeded on final reviewed SHA
87d6768d9eed2a29efee6357107f383a00c0ab5e; thebuildjob 110295058827 completed observability acceptance and all negative controls. - Both fixed-ID requests were correlated across
request-transcript.jsonl, server spans intraces.json, andobservability-access.log;metrics.jsoncontained nonempty JVM/runtime metrics. - Negative controls explicitly rejected collector unavailability, incompatible instrumentation, missing telemetry, broken correlation, an unsafe query-bearing exemplar with seeded cargo data, secret-like artifact content, and an invalid request without a diagnostic signal. The final artifact scan passed before metadata and artifact upload.
- The workflow uploaded
otel-telemetryandliberty-logsas separate immutable artifacts with schema-1 metadata and inventories.
- Main Build run 36839380274 succeeded on final reviewed SHA
- Durable artifacts:
- Successful Main Build run 36839380274, final reviewed SHA
87d6768d9eed2a29efee6357107f383a00c0ab5e,buildjob 110295058827. otel-telemetryartifact 11151111829, digestsha256:e5e180578fb5f31f8fe53a9a96f371bb1ddd86c697f68b3d3016842878dfbf21; supporting filestraces.json,metrics.json,request-transcript.jsonl,artifact-metadata.json, andredaction-check.txt.liberty-logsartifact 11151376069, digestsha256:928e88ef86f80ae017256cf6d9e4b1662238a668e0722c9d9799d745bae9c3a6; supporting filesobservability-access.log,messages.log, andartifact-metadata.json.- The uploaded
compatibility-contractartifact from the same run containsdemo/ci-artifacts/compatibility-contract/observability-negative-controls.txt. - Implementation sources:
demo/observability/otel-collector-config.yaml,demo/scripts/ci/verify-observability.py,demo/scripts/ci/redact-artifacts.sh,demo/scripts/ci/run-observability-check.sh, anddemo/scripts/ci/run-observability-negative-controls.sh.
- Successful Main Build run 36839380274, final reviewed SHA
- Evidence assessment: Strong: exact-SHA hosted CI passed the full relevant lifecycle and diagnostics, checked final redaction, and published artifacts with recorded IDs and digests. This demonstrates the configured diagnostic path and its exercised failure controls, not external telemetry services or production-wide observability.
- Candidate reusable lessons: Keep telemetry local and artifact-bound; correlate requests with fixed IDs across transcript, spans, and filtered runtime logs, and enforce redaction at both Collector and final-upload boundaries.
Issue #8: Add bounded JVM performance and jaz evidence
- PR: #17
- Implementation HEAD:
3e141c26cfbd6e5469aeebd2b627b620b28ab725(validated pre-merge PR head) - Hosted PR merge-test SHA:
8ce8b6e0bfaaa8c40d5951ffd7e1c7d5d867bd14(artifact metadata; distinct from the implementation HEAD) - Completed: 2026-10-01 UTC
- Reasons expected to be exercised: 9
- Reasons actually exercised: 8 (additional JVM/process diagnostics) and 9
- Implementation result: Added the shared non-containerized workload and performed the five-cycle direct Java, bypassed
jaz, and tunedjazcomparison with JVM/process/JFR/GC diagnostics and immutable evidence artifacts. Hosted measurements are diagnostic evidence, not a performance ranking. - Observed events:
- Successful Main Build run 36918453972, attempt 1, tested implementation HEAD
3e141c26cfbd6e5469aeebd2b627b620b28ab725. The PR merge-test SHA in artifact metadata is8ce8b6e0bfaaa8c40d5951ffd7e1c7d5d867bd14; it is not the implementation HEAD. - The
formattingjob 110558201739,source-gatesjob 110558380614, andbuildjob 110558962626 succeeded. The build ran all 15 repetitions, verified every retained JFR, generated checksummed metadata, passed final performance redaction, and uploaded all four performance artifacts. performance-comparison/status.txtreports all 15 launcher-mode repetitions passed functional, diagnostic, resource, and cleanup gates;run-order.tsvrecords the complete required five-cycle order.mode-summary.tsvandpaired-comparison.tsvpreserve descriptive results; no winner is selected from hosted-runner variation.- Supporting per-mode evidence includes
artifact-metadata.json, per-run GC logs, JFR summaries, selected JVM flags, and, for tunedjaz, theJAZ_DRY_RUN=1output. The logs verify launcher modes, workload equivalence, JVM diagnostics, and cleanup. - Stage 40 Copilot review identified that the JFC transformation changed an event attribute instead of its child
enabledsetting. The correction unconditionally disables all five sensitive event types and requires a zero-count check on every recording before upload; see review thread. - A follow-up review found that resource sampling began only after readiness. The correction distinguishes Liberty status helpers from the server JVM and samples the unique server PID during startup while retaining strict identity checks; see review thread.
- The next review found that artifact metadata was generated after the upload redaction boundary and that post-run gate failures retained a zero exit status. Upload now requires a final scan of the complete artifact directories, and summaries set
exitStatusto1when post-run gates fail; see review thread. - A further review found that failed runs could retain unverified recordings and identified related measurement-integrity gaps. The workflow now rejects any retained JFR with sensitive events; summaries select the server-PID GC log; direct/bypass initial and maximum heap evidence is required and compared; compiler-count tuning is rejected; each repetition has a cleanup-reserving watchdog; and immutable inputs are rehashed before every launch. See review thread.
- The subsequent zero-finding review surfaced two missed no-user-tuning cases. The harness now also rejects
-Xint,-Xcomp, and tuning inside quotedserver.envassignments before launch; see review. - The final implementation review expanded compiler-override rejection and found persistent Derby state outside the Liberty server snapshot. The validated harness rejects batch/tiered/background/threshold compiler controls, restores and hashes an empty database baseline before every launch, and preserves any pre-existing local database; see review thread.
- The final remediation rejects active Liberty before touching Derby state and rejects String Deduplication from every JVM option source; see database preflight and tuning review threads.
- Successful Main Build run 36918453972, attempt 1, tested implementation HEAD
- Durable artifacts:
- Main Build run 36918453972, attempt 1, implementation HEAD
3e141c26cfbd6e5469aeebd2b627b620b28ab725; merge-test SHA8ce8b6e0bfaaa8c40d5951ffd7e1c7d5d867bd14; jobsformatting110558201739,source-gates110558380614, andbuild110558962626. performance-javaartifact 11191254069, digestsha256:b670c2f03802f8589ab78c900d268225e0ca1d715de0ea96de20644241a65232; supportingartifact-metadata.json, per-run GC logs, JFR summaries, and selected JVM flags.performance-jaz-bypassedartifact 11190869300, digestsha256:9cdedb105579884724484721a7e5a4ad7de8a604ad9916e0ed99190fcd869023; supportingartifact-metadata.json, per-run GC logs, JFR summaries, and selected JVM flags.performance-jaz-tunedartifact 11191029124, digestsha256:d5e8568c611aa17d308c3457727264183372d88eb63ea7cc9c25e8d68eb8d662; supportingartifact-metadata.json, per-run GC logs, JFR summaries, selected JVM flags, and tunedJAZ_DRY_RUN=1output.performance-comparisonartifact 11191258963, digestsha256:a0a221a61cbae90e63a5c792e70cc723817920ba64d4c5fd8551651d959d1461; supportingartifact-metadata.json,status.txt,run-order.tsv,mode-summary.tsv, andpaired-comparison.tsv.- Implementation and workload contract:
demo/performance/README.mdanddemo/performance/.
- Main Build run 36918453972, attempt 1, implementation HEAD
- Evidence assessment: Strong for the bounded hosted comparison, functional equivalence, diagnostics, resource envelope, and cleanup across all 15 launches, with immutable artifacts and checksummed inventories. It supports launcher integration and descriptive measurement only; it does not establish a performance winner or AKS-limit behavior.
- Candidate reusable lessons: Treat hosted JVM measurements as diagnostic evidence; retain per-run workload and launch metadata, and do not rank modes based on noisy runner measurements.
Use this template:
### Issue #<number>: <title>
- **PR:** #<number>
- **Merged commit:** `<full SHA>`
- **Completed:** `<UTC timestamp>`
- **Reasons expected to be exercised:** <reason numbers>
- **Reasons actually exercised:** <reason numbers or `None`>
- **Implementation result:** <concise factual summary>
- **Observed events:**
- <what happened, including failures, corrections, and meaningful non-events>
- **Durable artifacts:**
- <exact run URL, job/check name, repository-relative path, log, trace,
profile, screenshot, review thread, or post-mortem section>
- **Evidence assessment:** <why the resulting confidence is Strong, Moderate,
Weak, Unsupported, or Not exercised>
- **Candidate reusable lessons:** <candidate guidance, or `None`; validated
reusable guidance belongs in campaign-lessons.md>
No implementation issue is complete until its subsection has been appended and the corresponding summary rows have been updated.
Fixture baseline repair: extensible BookingServiceTest CI gate
- Implementation commit:
94950cfceefc85edaec68eb6b61a16e0e6779ecc - Completed: 2026-10-02 UTC
- Reason exercised: 2
- Implementation result: Replaced the exact
BookingServiceTestcount of four with a contract that requires the historical four named methods, requires zero failures, errors, and skipped tests, and permits additional valid tests. - Observed events:
- The exact local Open Liberty integration tier passed four tests with zero failures, errors, or skipped tests.
- The revised assertion passed the real four-test Surefire report.
- A derived five-test report containing
testChangeDeadlinepassed the same assertion, proving the gate no longer rejects the fixture's required fifth test merely because the suite grew. - Hosted Main Build passed formatting, source gates, the full build and acceptance pipeline, and artifact publication on the exact implementation SHA.
- Durable artifacts:
- Main Build run #36956818505;
formattingjob/check 110681507992,source-gatesjob/check 110681594814, andbuildjob/check 110681940309. test-reports-libertyartifact 11206483198, digestsha256:19b0c9c08136763bbb8f947581e35680c6770717d0a82cf7a89311578ea4af53.
- Main Build run #36956818505;
- Evidence assessment: Strong exact-SHA hosted evidence plus direct local proof that both the feature-free four-test suite and the planned five-test suite satisfy the repaired contract.
- Candidate reusable lesson: Prefer named required tests and zero-failure/error/skip invariants over a brittle exact suite cardinality when a planned feature intentionally adds tests.
Appendix I: Human observations
- While filling out the ignorance reduction plan, I was frequently guided toward narrowing the possible paths the agents could go. See "1.6 — Executable Java 17 and Java EE 7 compatibility contract". Without narrowing it down, the agents might want to upgrade the system forward: javax → jakarta for example. By explicitly disallowing that, we close down that possible wandering path.