Implement planned topic: 0017-jackson-3#203
Open
skill-temporal-developer-updater[bot] wants to merge 1 commit into
Open
Implement planned topic: 0017-jackson-3#203skill-temporal-developer-updater[bot] wants to merge 1 commit into
skill-temporal-developer-updater[bot] wants to merge 1 commit into
Conversation
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.
Validation Report —
jackson-3Branch:
draft/0017-jackson-3Scope validated: the working-tree modification to
references/java/data-handling.md(the only delta againstmain;git log main..HEADis empty — the change is uncommitted on this branch).Filled plan:
VALIDATION_PLAN.md.Go / no-go
converters-and-encryption.mdx:227, used to anchor the "Jackson 2'sJacksonJsonPayloadConverter" framing) is mechanically valid but does not support the version label in the cited sentence.JacksonJsonPayloadConverter,DefaultDataConverter,WorkflowClientOptions,ObjectMapper) appear indocs/develop/java/.Jackson 3is absent from the docs clone, as expected; that absence is taggedplanned-content:orVERIFY:.--profile,TEMPORAL_TLS_CLIENT_*,tcld service-account,--output text/jsonl,:7233) or topic-specific patterns (fabricated Jackson 3 symbol names).references/integrations.mdand correctly does not createreferences/java/integrations/jackson-3.md.VERIFY:-flagged as unknown. No Public-Preview / pre-GA admonition is present, despite the standard> [!NOTE]convention being used elsewhere in this skill for less-speculative features. An AI agent generating code against this section will produce code that references a nonexistent or fabricated symbol.Overall verdict: RE-RUN AUTHORING
Triggered by Check 4 below the 95 % threshold and by Check 6 pattern 4/5 (prescriptive guidance on an unverified API surface, no admonition). The fundamental issue is that the entire
## Jackson 3 (opt-in)section is grounded on a pipeline-internalinfo.jsontopic stub and aVERIFY:tag, not on docs — so the skill is asking an AI agent to generate code for a feature that is not in the released documentation and whose API surface the author themselves does not yet know.Check 1 findings
The four docs citations resolve to existing files and lines. Three of them carry their weight; one is on a borderline line for the specific claim it anchors.
Finding 1.1 — weak citation: line 227 for the "Jackson 2's" retronym
references/java/data-handling.md:42<!-- docs/develop/java/best-practices/converters-and-encryption.mdx:227 -->JacksonJsonPayloadConverter."JacksonJsonPayloadConverter, use the following:"JacksonJsonPayloadConverteris "the default JSON path" (that framing is supported elsewhere in the same file, around theDefaultDataConverterchain, but not at line 227), and it does not label the class as "Jackson 2's". The version label is an interpretive retronym introduced by the author to set up the Jackson-3 contrast; the docs clone never says "Jackson 2" anywhere.JacksonJsonPayloadConverter) is true and supported elsewhere. The citation just points at the wrong line for the version-label part of the claim.Finding 1.2 —
planned-content:citation usagereferences/java/data-handling.md:42and:44<!-- planned-content: 0017-jackson-3/info.json -->pipeline/planned-content/skill-temporal-developer/0017-jackson-3/info.jsonexists and contains:"description": "Java can opt into Jackson 3 payload conversion with a new startup API while remaining wire-compatible with Jackson 2 converters."planned-content:). It points at a one-sentence pipeline-internal description, not at documentation. Whether that is an acceptable grounding source for prescriptive content in a shipped skill is a design call for authoring — flagged for visibility.Check 2 findings
None. All Java type / class tokens introduced by the new section appear in
docs/develop/java/best-practices/converters-and-encryption.mdx(and other Java docs). The Jackson 3 absence is expected and tagged.Check 3 findings
None. No universal or topic-specific regression patterns appear in the modified file.
Check 4 findings
Per-claim breakdown. Claims numbered against §3 Check 4 of
VALIDATION_PLAN.md.Claim 1 — "The Java SDK's default JSON path runs through Jackson 2's
JacksonJsonPayloadConverter."converters-and-encryption.mdx:227.JacksonJsonPayloadConverter, use the following:".JacksonJsonPayloadConverterfor the current path. The "Jackson 2" retronym doesn't change generated code.Claim 2 — "A separate Jackson 3 payload-conversion path is available as an opt-in, selected via a new startup API."
planned-content/0017-jackson-3/info.json.Claim 3 — "Payloads written by the Jackson 3 path remain readable by Jackson 2 converters on the other side of the wire, and vice versa — a worker on Jackson 3 can interoperate with a client still on Jackson 2 without re-encoding history."
planned-content/0017-jackson-3/info.json.Claim 4 — "Switch to the Jackson 3 path by calling the Jackson 3 opt-in startup API … when constructing your
DefaultDataConverter, then install the converter onWorkflowClientOptionsthe same way as today."converters-and-encryption.mdx:239,247.withPayloadConverterOverrides-on-DefaultDataConverter-in-WorkflowClient-options pattern. Line 247 is the code line.withPayloadConverterOverrides(new YourCustomPayloadConverter());.DefaultDataConverter"): unverified — explicitly flagged by the in-lineVERIFY:comment. The phrase "when constructing yourDefaultDataConverter" gives the timing but not the call; an agent has no way to produce concrete code from this without inventing a symbol.WorkflowClientOptionsthe same way as today"): matches lines 239 and 247.enableJackson3(),withJackson3(),JacksonJson3PayloadConverter, etc.) or stop and ask the user. The first path produces broken code; the second negates the value of having the section. TheVERIFY:tag is in an HTML comment, so its visibility to an agent depends on how the agent reads the file.Claim 5 — "Customising the underlying
ObjectMapper(modules, serialisation features) is still how you tune behaviour — Jackson 3'sObjectMapperlives in a different package and is constructed through a builder, so the surrounding Jackson 2 idiom in the section above does not transfer verbatim.":239,247is anchored on the prior sentence).ObjectMappercustomisation is still how you tune behaviour"): supported by the existing Jackson Integration section and by docs line 232.ObjectMapperlives in a different package and is constructed through a builder"): no citation in the authored file, not in the docs clone, not ininfo.json. The claim is about an external library (Jackson 3 itself) and the skill has no source for it. Whether or not it is factually true of Jackson 3, the skill's citation convention is bypassed here — there is no<!-- jackson: … -->, no<!-- VERIFY: … -->, no<!-- undocumented: … -->. The author is asserting a fact from training-data memory.Tally.
VERIFY:tag): claim 4 sub-claim a → 1 of 7 sub-claims.Check 5 findings
Not applicable (see Go/no-go row 5).
Check 6 findings
Finding 6.1 (MAJOR) — prescriptive guidance against an unverified API surface, no admonition.
references/java/data-handling.md:46.VERIFY:comment is inside an HTML comment block; the prose around it reads as confident, finished instruction.references/java/integrations/spring-ai.md:9-10, which uses the standard convention for a less-speculative case (Spring AI integration is released and documented):Finding 6.2 (MINOR) — uncited factual claim about Jackson 3's
ObjectMapperpackage and builder.references/java/data-handling.md:46, second half ("Jackson 3'sObjectMapperlives in a different package and is constructed through a builder, so the surrounding Jackson 2 idiom in the section above does not transfer verbatim.").Finding 6.3 (MINOR) — "no behavioural gain" framing in "When to opt in" bullet.
references/java/data-handling.md:51.No workaround disclosures (pattern 1) detected. The section does not show the agent how to circumvent any documented constraint — it offers a supported (if unreleased) opt-in path.
Statistics
Recommendation
RE-RUN AUTHORING on
references/java/data-handling.mdlines 40–53. Two options for the next pass:docs/develop/java/(and/or sdk-java release notes / javadoc). Then re-author the section against real symbols. Until then, do not ship a prescriptive opt-in section.WorkflowClientOptionsthe same way as the existing Jackson 2 path." Plus the standard> [!NOTE]Public-Preview-style admonition. Drop claim 5 sub-claim b or move it under the same admonition.Authoring should also:
ObjectMapperpackage/builder.End of report.