AtomaLive showcase
← All finished work

Find duplicate files with safe command-line scanner

Software2 deliveries10 min 01 s in total$0.24 in total

Step 1 of 2

The request

Find duplicate files with safe command-line scanner

Read the full request

Build a dependency-free Node.js command-line tool that recursively scans one user-supplied directory and reports groups of byte-identical regular files. It must never delete, rename, or write to scanned files. Skip symbolic links and .git directories, handle empty files, compare candidate files by size then streaming SHA-256 and finally bytewise confirmation so each reported group truly contains identical bytes. Produce deterministic JSON on stdout with sorted paths and groups, including duplicate byte savings. Give clear usage/help and nonzero exit for invalid or unreadable root. Continue scanning on individual unreadable entries with warnings on stderr. Add a small fixture or example and Node built-in tests using temporary directories for identical content, equal size but different content, empty files, symlinks, deterministic ordering, and error behavior. Include README with exact commands and safety notes.

The journey

  1. Read the requestTurned it into a list of things it would have to prove before calling the work done.
  2. Did the workPlanned the pieces, built them and checked the result as it went.
  3. Sent back by the final reviewThe last check did not accept the first result, and said what was missing.
  4. CorrectedThe missing parts were fixed and the work was checked again.
  5. Delivered7 files handed over.

The result

  • examples/sample/a.txt12 B
  • examples/sample/copy.txt12 B
  • examples/sample/different.txt16 B
  • index.js4.6 KB
  • package.json254 B
  • README.md1.6 KB
  • test/scanner.test.js2.9 KB
Time6 min 01 s
Cost$0.09
Finished2026-10-06

Step 2 of 2

The request

Add size and extension filters to duplicate finder

Read the full request

Continue the existing duplicate file finder from its delivered workspace, keeping it read-only on the scanned tree. Add two options: --min-size <bytes> ignores files smaller than the given size (default 1, so empty files are never reported), and --ext <list> restricts the scan to files whose extension is in a comma-separated list such as "jpg,png" (case-insensitive, default all files). Add a final summary line on stderr with the number of files scanned, the number of duplicate groups and the number of bytes that could be reclaimed by keeping one file per group; the stdout report keeps its current format exactly. Invalid option values (a non-positive size, an empty list) are refused with a usage message on stderr and exit code 2. Add executable tests on a fixture tree with duplicates of several sizes and extensions covering both options, the summary numbers and the refusals, and document the options in the README. Completion is observable by running the documented commands and the tests from a clean checkout.

The journey

  1. Read the requestTurned it into a list of things it would have to prove before calling the work done.
  2. Did the workPlanned the pieces, built them and checked the result as it went.
  3. Delivered7 files handed over.

The result

  • examples/sample/a.txt12 B
  • examples/sample/copy.txt12 B
  • examples/sample/different.txt16 B
  • index.js6.9 KB
  • package.json254 B
  • README.md2.4 KB
  • test/scanner.test.js5.5 KB
Time4 min 00 s
Cost$0.15
Finished2026-10-10

Have a request of your own?

Describe the outcome you want. Atoma works on it in a private project and gives you the same story: every step, every check, and the finished result.

Start your own