docs: adopt two-step rename+translate commit structure in xtend-to-java skill#1453
Merged
joaodinissf merged 1 commit intoJul 13, 2026
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>
adb278a to
9762bdf
Compare
This was referenced Jul 11, 2026
rubenporras
approved these changes
Jul 13, 2026
joaodinissf
added a commit
to joaodinissf/dsl-devkit
that referenced
this pull request
Jul 15, 2026
Applies the adversarially-verified findings of the skill review (13-agent Opus panel over the stacked dsldevkit#1453+dsldevkit#1461 state; 25 confirmed findings): Cuts: duplicate string-decision list in 00-decisions; duplicated commit-message fence in multi-file-batch; four known-pitfalls rows that were verbatim checklist echoes; copyright restatements reduced to pointers (formatting-and-commit stays canonical). Staleness/contradictions: one-file-conversion step 8 and the checklist final invariant now teach the two-step rename+translate scheme; stale hard-coded rule counts dropped; overview slice branch now based on upstream/master; import order stated once (java.* -> org.* -> com.*, junit inside org, static block separate) and aligned in rule 11 and the pitfalls row; == equality rule gains the primitive-operand carve-out (enums stay object-form); rollback recipe corrected for two-step slices (reset --hard HEAD~N / revert both shas, never -m 1) and stated once; SKILL.md lambda cheat-sheet aligned with 07 (expression form); Pairs guidance defers to the no-xbase.lib pitfall; dead "ledger's Method 1" pointer removed. Small additions: trailing-\s trap noted at point of use in 4.3; stable-rule-ID legend in the checklist header; overview Step 0 leads with the bash listing; examples no longer claim their whitespace WAS verified (they illustrate; real migrations must verify) and use the PMD-safe explicit StringBuilder capacity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ANGM7L3BaEGfGUmPVKRt4
joaodinissf
added a commit
that referenced
this pull request
Jul 16, 2026
Applies the adversarially-verified findings of the skill review (13-agent Opus panel over the stacked #1453+#1461 state; 25 confirmed findings): Cuts: duplicate string-decision list in 00-decisions; duplicated commit-message fence in multi-file-batch; four known-pitfalls rows that were verbatim checklist echoes; copyright restatements reduced to pointers (formatting-and-commit stays canonical). Staleness/contradictions: one-file-conversion step 8 and the checklist final invariant now teach the two-step rename+translate scheme; stale hard-coded rule counts dropped; overview slice branch now based on upstream/master; import order stated once (java.* -> org.* -> com.*, junit inside org, static block separate) and aligned in rule 11 and the pitfalls row; == equality rule gains the primitive-operand carve-out (enums stay object-form); rollback recipe corrected for two-step slices (reset --hard HEAD~N / revert both shas, never -m 1) and stated once; SKILL.md lambda cheat-sheet aligned with 07 (expression form); Pairs guidance defers to the no-xbase.lib pitfall; dead "ledger's Method 1" pointer removed. Small additions: trailing-\s trap noted at point of use in 4.3; stable-rule-ID legend in the checklist header; overview Step 0 leads with the bash listing; examples no longer claim their whitespace WAS verified (they illustrate; real migrations must verify) and use the PMD-safe explicit StringBuilder capacity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ANGM7L3BaEGfGUmPVKRt4
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.
Summary
Replaces the xtend-to-java skill's single-commit rule with a two-step rename → translate structure (first applied in #1452):
git mvof the.xtendsources to.java, content unchanged. The 100%-similarity rename edge meansgit log --followandgit blamepermanently traverse the migration boundary (a combined delete+add only preserves history when the finished Java stays above Git's similarity threshold, which heavy rewrites don't).Documented trade-offs: the rename commit intentionally does not compile (one
git bisect skipon master after rebase-merge; PR CI builds only the head), and the aggregate Files-changed tab is unaffected by commit structure (its old/new pairing depends only on end-state content similarity).Touches:
formatting-and-commit.md(main rewrite),validation-checklist.mdrule 22,multi-file-batch.mdcommit section.🤖 Generated with Claude Code