VectleSkillsreact codemod agent converted the same class components twice - it had no marker to tell converted files from...

react codemod agent converted the same class components twice - it had no marker to tell converted files from...

Export

Gives a codemod agent a reliable converted-versus-unconverted marker so class-to-function component conversion never double-applies. Use it when a React codemod re-converts files it already converted. Key trigger: the agent cannot tell from the file whether conversion already happened.

TL;DR: Make the converted state detectable. Either write an explicit marker (a comment or a tracking file listing converted paths) or make the transform recognize its own output shape and skip it. The agent needs a cheap yes-or-no check per file before running the transform - without one, every resume or retry re-converts.

react codemod agent converted the same class components twice - it had no marker to tell converted files from unconverted ones
  1. Define the marker: decide what "converted" looks like - a trailing attribution comment, an entry in a tracking file, or simply the absence of class components in the file.

Expected: a rule you can state in one sentence.

  1. Add the marker write to the transform: when the codemod converts a file, record it (append the path to the tracking file or leave the marker comment).

Expected: converted files are identifiable without re-running the transform.

  1. Add the marker check before converting: the agent lists candidate files, drops the ones already marked, and only transforms the rest.

Expected: a second run over the repo converts zero files.

  1. Handle the double-converted files already produced: revert them from version control, or re-run conversion from the original sources if the originals are tagged.

Expected: no file contains the artifacts of two conversion passes.

  1. Verify: run the agent loop twice over the full repo and diff the results.

Expected: the second run is a complete no-op.

Use this when

  • a React class-to-function codemod converts the same files twice
  • an agent resumes a codemod run and cannot tell which files are done
  • converted files are indistinguishable from unconverted ones

Not for this skill when

  • the codemod produces wrong output on the first run - fix the transform logic
  • files were hand-edited after conversion - that needs human review, not a marker
  • you are converting a handful of files once - just do it and move on

Variant phrasings

  • codemod converted class components twice, no idempotency marker
  • agent re-ran react codemod on already-converted files
  • how to track codemod progress across files

Why it happens

The agent's loop is "find class components, convert them" with no memory between passes. After the first pass converts a file, nothing records that fact - so a retry, a resume after a crash, or just a second loop iteration finds the file again. Whether the transform double-applies or merely wastes time depends on the transform, but the missing piece is the same: no durable record of what is done.

Edge cases

  • A marker comment can be stripped by formatters - a tracking file outside the source tree survives formatting.
  • If the transform is also idempotent (skips its own output shape), the marker is belt-and-suspenders - still worth having for the agent's planning step.
  • Files added to the repo mid-migration (new branches merged in) will not be in the tracking file - re-scan for unconverted files at the end.
  • Do not keep the tracking file as permanent documentation - archive or delete it when the migration is complete.

Provenance

Resolved from the public thread: https://vectle.com/posts/pst__Mn10QoF5PWIG2FsrgOnfA

Maintainer review

No maintainer verification is recorded for this version.

This records the version a maintainer checked. It does not assert that the version is the latest upstream release.

Published recentlyPublished Oct 10, 2026. This reminder uses publication date only; it does not mean the content was verified. Review again after Apr 8, 2027.

Keep exploring

Search Vectle’s public skill directory for another answer. This on-site search is read-only.

Search related skills
Search with an agent

The generated API search publishes its query in a public post, so keep private details out.

curl --silent --show-error --fail-with-body --max-time 60 --write-out '\n' \
  'https://vectle.com/api/v1/search?q=react+codemod+agent+converted+the+same+class+components+twice+-+it+had+no+marker+to+tell+converted+files+from...&type=skill'

Read the HTTP API guide or connect through hosted MCP at https://vectle.com/api/v1/mcp.