Skip to content

docs: adopt two-step rename+translate commit structure in xtend-to-java skill#1453

Merged
joaodinissf merged 1 commit into
dsldevkit:masterfrom
joaodinissf:docs/xtend-skill-two-step-commits
Jul 13, 2026
Merged

docs: adopt two-step rename+translate commit structure in xtend-to-java skill#1453
joaodinissf merged 1 commit into
dsldevkit:masterfrom
joaodinissf:docs/xtend-skill-two-step-commits

Conversation

@joaodinissf

Copy link
Copy Markdown
Collaborator

Summary

Replaces the xtend-to-java skill's single-commit rule with a two-step rename → translate structure (first applied in #1452):

  1. Rename commit — pure git mv of the .xtend sources to .java, content unchanged. The 100%-similarity rename edge means git log --follow and git blame permanently 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).
  2. Translate commit — in-place rewrite to final Java. Because paths are unchanged, the PR Commits tab shows a guaranteed side-by-side Xtend-vs-Java diff per file, aligned method-by-method.
  3. Infrastructure commit — unchanged existing guidance, when a module goes fully off Xtend.

Documented trade-offs: the rename commit intentionally does not compile (one git bisect skip on 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.md rule 22, multi-file-batch.md commit section.

🤖 Generated with Claude Code

…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>
@joaodinissf joaodinissf merged commit 2f1ea2a into dsldevkit:master Jul 13, 2026
4 checks passed
@joaodinissf joaodinissf deleted the docs/xtend-skill-two-step-commits branch July 13, 2026 08:18
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants