AtomaLive showcase
โ† All finished work

Word frequency counter command-line tool

Report & data7 deliveries63 min 46 s in total$1.06 in total

Step 1 of 7

The request

Word frequency counter command-line tool

Read the full request

Build a dependency-free Node command-line tool, wordfreq.js, that reads a text file given as its only argument and prints the ten most frequent words with their counts, one per line as "word count", most frequent first, ties broken alphabetically. Words are lowercased sequences of letters; everything else separates words. With no argument or an unreadable file it prints a usage or error message to stderr and exits with status 1. Include a small sample text file and a README with an example run and its exact output.

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. Delivered3 files handed over.

The result

  • README.md450 B
  • sample.txt146 B
  • wordfreq.js746 B
Time5 min 41 s
Cost$0.08
Finished2026-09-29

Step 2 of 7

The request

Add --top N and --json flags to wordfreq.js

Read the full request

Extend the existing wordfreq.js command-line tool without breaking its current behaviour: add an optional --top N flag that prints the N most frequent words instead of ten (N must be a positive integer; anything else prints an error to stderr and exits with status 1), and an optional --json flag that prints the same result as a JSON array of {"word", "count"} objects. Update the README with an example of each flag and its exact output.

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. Delivered3 files handed over.

The result

  • README.md906 B
  • sample.txt146 B
  • wordfreq.js1.3 KB
Time6 min 41 s
Cost$0.07
Finished2026-09-29

Step 3 of 7

The request

Add --min-length flag to wordfreq tool

Read the full request

Extend the existing wordfreq.js command-line tool without breaking its current behaviour or its --top and --json flags: add an optional --min-length N flag that ignores words shorter than N letters before counting (N must be a positive integer; anything else prints an error to stderr and exits with status 1). The flags combine, for example --min-length 4 --top 3 --json. Update the README with an example of the new flag, alone and combined with the others, and its exact output.

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. Delivered3 files handed over.

The result

  • README.md2.4 KB
  • sample.txt146 B
  • wordfreq.js1.7 KB
Time8 min 06 s
Cost$0.16
Finished2026-09-30

Step 4 of 7

The request

Add --exclude flag to wordfreq.js and update README

Read the full request

Extend the existing wordfreq.js command-line tool without breaking its current behaviour or its --top, --json and --min-length flags: add an optional --exclude WORDS flag that takes a comma-separated list of words and leaves them out of the counts (matched case-insensitively; an empty list prints an error to stderr and exits with status 1). The flags combine. Update the README with an example of the new flag, alone and combined with the others, and its exact output.

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. Delivered3 files handed over.

The result

  • README.md3.0 KB
  • sample.txt146 B
  • wordfreq.js2.2 KB
Time9 min 41 s
Cost$0.19
Finished2026-09-30

Step 5 of 7

The request

Add --format csv output option to wordfreq

Read the full request

Extend the existing wordfreq.js command-line tool without breaking its current behaviour or its --top, --json, --min-length and --exclude flags: add an optional --format csv flag that prints a word,count header line and then one word,count line per result, in the same order. It combines with --top, --min-length and --exclude; combined with --json, or given any value other than csv, it prints an error to stderr and exits with status 1. Update the README to document --format csv with an example and its exact output.

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. Delivered3 files handed over.

The result

  • README.md1.8 KB
  • sample.txt146 B
  • wordfreq.js2.7 KB
Time24 min 17 s
Cost$0.44
Finished2026-09-30

Step 6 of 7

The request

Restore wordfreq.js README docs with examples and error cases

Read the full request

Restore the README of the wordfreq.js command-line tool without changing the tool: every flag (--top, --json, --min-length, --exclude, --format csv) gets an example command with its exact output, as earlier versions of the README had, and the README states each error case with the message printed to stderr and exit status 1: a missing or unreadable file, an invalid --top or --min-length, an empty --exclude, and an invalid --format or --format csv combined with --json.

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. Delivered3 files handed over.

The result

  • README.md2.2 KB
  • sample.txt146 B
  • wordfreq.js2.7 KB
Time6 min 43 s
Cost$0.09
Finished2026-10-01

Step 7 of 7

The request

Add usage flags and example to README

Read the full request

Update the README of the wordfreq.js command-line tool without changing the tool or any other file: add a usage line near the top that lists every flag the tool accepts (--top N, --json, --min-length N, --exclude WORDS, --format csv), and one example that combines --min-length, --exclude and --top, with its exact output. Keep every example and error message the README already has.

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. Delivered3 files handed over.

The result

  • README.md2.5 KB
  • sample.txt146 B
  • wordfreq.js2.7 KB
Time2 min 37 s
Cost$0.03
Finished2026-10-01

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