#220 by GitHub stars

kucherenko/jscpd

Copy/paste detector for source code. 220+ languages, Rust engine, SARIF/HTML/badge reporters, GitHub Action, MCP server for AI agents.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/code-migration/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Local scripts

ef9797468008 → cbd542396ba3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → ef9797468008

No earlier version was observed for comparison.

Compare on GitHub

skills/codebase-refactoring/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

ef9797468008 → cbd542396ba3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → ef9797468008

No earlier version was observed for comparison.

Compare on GitHub

skills/compare-codebases/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Local scripts

ef9797468008 → cbd542396ba3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → ef9797468008

No earlier version was observed for comparison.

Compare on GitHub

skills/dry-refactoring/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Local scripts

ef9797468008 → cbd542396ba3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → ef9797468008

No earlier version was observed for comparison.

Compare on GitHub

skills/jscpd/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Local scripts

ef9797468008 → cbd542396ba3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → ef9797468008

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit cbd542396ba309598f418f5e53ab1ca6214cdba5

6.5kGitHub stars
38stars in 7 days
5skills in this repository
239commits in 30 days

Heat

6.8
  • Star growth, last 7 daysAhead of 74% of tracked repositories
  • Star growth, last 24 hoursAhead of 84% of tracked repositories
  • Rank movement, last 7 daysAhead of 68% of tracked repositories
  • Commits, last 30 daysAhead of 97% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 6, 20266,508

Individual skills in this repository

How it works

code-migration

When your agent uses it

Move code from one implementation to another function by function, tests first and code second, and check two implementations of one app for parity, with jscpd --compare as the progress measure and a coverage map binding each function to its tests. Use when porting a library or app to another language or framework (Java to Kotlin, JavaScript to Rust, a Python library to TypeScript, an iOS app to Android), when asked what is left to port, or when comparing the Android and iOS versions of an app.

What it loads into context

Frontmatter

114 tokens

Always available to the agent

SKILL.md

4,705 tokens

When the skill is activated

Reference documents

7,958 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Setup
  2. Measure
  3. Plan: tests first, then code
  4. Parity between two implementations
  5. Reading pairs
  6. Misses
  7. Options
  8. Rules

Files

  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • SKILL.mdcore19,895 bytes
  • ../compare-codebases/SKILL.mddoc13,043 bytes
  • ../jscpd/SKILL.mddoc18,368 bytes
Read SKILL.md

# code-migration

`jscpd --compare SOURCE TARGET` pairs every function of one folder with the function of the other folder that does the same job, in any pair of languages, and lists the functions that have no counterpart. This skill uses it to measure a port: what is ported, what is left, and whether the port you just wrote was recognized.

A port runs in two phases: the tests first, then the code they check. A coverage report of the source's tests tells which tests exercise which function, so each function is ported together with the tests that prove it works. See [Plan: tests first, then code](#plan-tests-first-then-code).

Two words are used throughout:

- **source**: the implementation you port from, such as the iOS app, the Python library, or the JavaScript package;
- **target**: the implementation you port to, such as the Android app, the Rust crate, or the TypeScript rewrite.

Neither has to be old or new. The source may stay in production and keep changing, and the target may already hold features the source lacks. For two implementations that both live on (`ios/` and `android/`), the same report shows parity; see [Parity](#parity-between-two-implementations).

jscpd finds functions in JavaScript, TypeScript, JSX, TSX, Vue, Svelte, Astro, Python, Rust, Go, Java, Kotlin, C#, C, C++, PHP, Ruby, Scala and Swift. The [compare-codebases](../compare-codebases/SKILL.md) skill explains how the comparison pairs functions and how to check its result; the [jscpd](../jscpd/SKILL.md) skill covers the rest of the tool.
View the complete source on GitHub

Skills included

  • code-migration
  • codebase-refactoring
  • compare-codebases
  • dry-refactoring
  • jscpd

Repository facts

License
MIT
Created
May 29, 2013
Last pushed
Nov 3, 2026
Forks
274
Open issues
46
Project activity
Active

Rank over the last 12 weeks

Now #220 · best #176 · down 15 in 30 days

  1. #213 on Oct 28
  2. #216 on Oct 29
  3. #219 from Oct 30 to Nov 1
  4. #220 on Nov 2
  5. #221 on Nov 3
  6. #220 since Nov 4
64 earlier periods
  1. #170 on Aug 2
  2. #173 from Aug 7 to Aug 8
  3. #172 on Aug 9
  4. #176 from Aug 10 to Aug 11
  5. #174 on Aug 12
  6. #177 on Aug 13
  7. #179 on Aug 14
  8. #178 from Aug 15 to Aug 17
  9. #180 on Aug 18
  10. #179 on Aug 19
  11. #177 on Aug 20
  12. #179 on Aug 21
  13. #176 on Aug 22
  14. #184 on Aug 23
  15. #183 on Aug 24
  16. #184 on Aug 25
  17. #186 on Aug 26
  18. #187 on Aug 27
  19. #185 on Aug 28
  20. #188 on Aug 29
  21. #186 from Aug 30 to Aug 31
  22. #191 on Sep 1
  23. #185 on Sep 2
  24. #192 on Sep 3
  25. #189 on Sep 4
  26. #191 on Sep 5
  27. #188 on Sep 6
  28. #191 from Sep 7 to Sep 8
  29. #193 from Sep 9 to Sep 11
  30. #194 on Sep 12
  31. #195 from Sep 13 to Sep 14
  32. #194 on Sep 15
  33. #195 from Sep 16 to Sep 17
  34. #197 on Sep 18
  35. #195 on Sep 19
  36. #197 on Sep 20
  37. #198 on Sep 21
  38. #199 from Sep 22 to Sep 23
  39. #198 on Sep 24
  40. #199 on Sep 25
  41. #200 on Sep 26
  42. #202 on Sep 28
  43. #201 on Sep 29
  44. #200 on Sep 30
  45. #202 on Oct 1
  46. #203 on Oct 2
  47. #200 on Oct 3
  48. #199 on Oct 4
  49. #201 on Oct 5
  50. #202 on Oct 6
  51. #205 on Oct 7
  52. #203 on Oct 8
  53. #207 on Oct 9
  54. #204 on Oct 10
  55. #205 on Oct 11
  56. #208 on Oct 12
  57. #209 on Oct 13
  58. #207 from Oct 14 to Oct 15
  59. #205 on Oct 16
  60. #207 on Oct 17
  61. #209 from Oct 18 to Oct 19
  62. #208 on Oct 20
  63. #209 from Oct 21 to Oct 24
  64. #212 on Oct 25

Before you install

Local scripts

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 49 notes
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/code-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • No broad tool permissions
  • No dangerous shell commands
  • 8 network referencesin 1 file: skills/jscpd/SKILL.md:267
  • No hidden or obfuscated text
  • No instruction overrides
  • No executable scripts
  • No access to secrets
  • No requests to vote in Hot
Show all 8 signals by file

skills/jscpd/SKILL.md

  • Network accessline 267
    npx skills add https://github.com/kucherenko/jscpd --skill dry-refactoring
  • Network accessline 267
    npx skills add https://github.com/kucherenko/jscpd --skill dry-refactoring
  • Network accessline 267
    npx skills add https://github.com/kucherenko/jscpd --skill dry-refactoring
  • Network accessline 267
    npx skills add https://github.com/kucherenko/jscpd --skill dry-refactoring
  • Network accessline 275
    npx skills add https://github.com/kucherenko/jscpd --skill codebase-refactoring
  • Network accessline 275
    npx skills add https://github.com/kucherenko/jscpd --skill codebase-refactoring
  • Network accessline 275
    npx skills add https://github.com/kucherenko/jscpd --skill codebase-refactoring
  • Network accessline 275
    npx skills add https://github.com/kucherenko/jscpd --skill codebase-refactoring

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 8 facts

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skills/code-migration/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/code-migration/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/code-migration/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/code-migration/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/code-migration/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/code-migration/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

kucherenko/jscpd: #220 on hotskills, 6.5k stars

[![kucherenko/jscpd on hotskills](https://hotskills.dev/badge/kucherenko-jscpd.svg)](https://hotskills.dev/skill/kucherenko-jscpd/)