docs: xtend-to-java skill — JVM model inferrer rule and missing replacement rows#1465
Merged
joaodinissf merged 3 commits intoJul 15, 2026
Merged
Conversation
…va skill Replace the single-commit rule with a rename -> translate structure: a pure git-mv commit (100% similarity, so git log --follow and blame permanently traverse the migration boundary) followed by an in-place translate commit (guaranteed side-by-side Xtend-vs-Java diff on the PR Commits tab), plus the existing infrastructure-cleanup commit when a module goes fully off Xtend. Documents the accepted trade-offs: the rename commit intentionally does not compile (one bisect-skip on master after rebase-merge), and the aggregate Files-changed tab pairing is unaffected by commit structure (it depends only on end-state content similarity). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…va skill Adds rules/04-templates.md section 4.8 documenting the source-verified StringConcatenation semantics that govern coalescing append-chains into text blocks: append(String) newline normalization (the formal basis for coalescing), the line-scoped whitespace-retracting behaviour of newLineIfNotEmpty(), and the two-arg append(value, indent) continuation re-indent. The conversion rule: newLineIfNotEmpty() may become newLine() only when the last append on the current line is a static non-whitespace literal; it must stay after dynamic line-tails and after indent + conditional values; two-arg appends of potentially multi-line values are never folded; appendImmediate loops stay untouched. Validation checklist gains row 35 enforcing the rule. Distilled from the dsldevkit#1429 round-3 review rework, where these distinctions were byte-verified against an executable harness and an adversarial per-hunk review. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ANGM7L3BaEGfGUmPVKRt4
Adds rules/10-jvm-model-inferrer.md covering the JvmTypesBuilder DSL that the remaining inferrer migrations (CheckJvmModelInferrer and the check generators) are built on: extension-to-explicit-field mapping, dispatch infer, toClass/toMethod/toField/toParameter with Procedure1 initialisers, typeRef via the inherited _typeReferenceBuilder, property-assignment setters, both setBody forms, and the inferrer-specific gate notes (LambdaBodyLength/CONSTANTS-OFF). Anchored to the already-migrated FormatJvmModelInferrer.java with verified line references. Also adds the two missing iterable rows to the replacements table (filterNull, flatten - both recur across the remaining .xtend inventory) and links rule 10 from SKILL.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ANGM7L3BaEGfGUmPVKRt4
rubenporras
approved these changes
Jul 13, 2026
joaodinissf
marked this pull request as ready for review
July 15, 2026 21:48
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.
Closes the highest-severity gap from the skill review: the
JvmTypesBuilder/JVM-model-inferrer DSL had zero coverage, and it is what the hardest remaining migration (CheckJvmModelInferrer.xtend, 646 lines) plus the check generators are built on.New
rules/10-jvm-model-inferrer.md: core mapping table (@Inject extension→ explicit field;dispatch infer→ dispatcher;toClass/toMethod/toField/toParameterwithProcedure1initialisers;typeRefvia the inherited_typeReferenceBuilder; property assignments → setters), bothsetBodyforms (procedure vsStringConcatenationClient), inferrer-specific gate notes (LambdaBodyLength/CONSTANTS-OFFbrackets), and the verification bar. Anchored to the already-migratedFormatJvmModelInferrer.javawith verified line references.references/xtend-library-replacements.md: adds the two missing rows the remaining.xtendinventory uses (filterNull,flatten— incl. the general-Iterable caveat).SKILL.md: rule 10 added to the rules walk.Note: stacked on #1453 + #1461 — their commits appear in this diff until they merge.
🤖 Generated with Claude Code