CtrlK
BlogDocsLog inGet started
Tessl Logo

simon/skills

Auto-generated tile from GitHub (10 skills)

92

1.16x
Quality

94%

Does it follow best practices?

Impact

92%

1.16x

Average score across 44 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

task.mdevals/scenario-13/

Preparing Commits for a Node.js Core Module Contribution

Problem/Feature Description

Your team maintains a fork of Node.js core that follows the same contribution standards as the upstream project. Three separate bug fixes and a small documentation update have been developed and are ready to be committed. The project's CI pipeline enforces strict commit message formatting — any non-conforming message will cause the pipeline to reject the pull request before review even begins.

The changes span several Node.js subsystems: a race condition fix in the streams pipeline, a correction to the fs.readdir return type documentation, a missing error-code entry in the crypto module's error catalog, and a test addition covering an edge case in the HTTP/1.1 keep-alive handling. Each change must be committed separately with a message that will pass the upstream validation tooling. The project uses core-validate-commit as its canonical checker — the same tool used in the Node.js project itself.

A colleague will review your commit messages before you open the pull request, so they need to be ready for scrutiny: correct format, appropriate subsystem tags, and a body that explains the why where the change isn't self-evident.

Output Specification

Produce the following files:

  • commit-messages.txt — Contains all four commit messages, clearly separated. Each message should be complete and ready to be passed directly to git commit -m.
  • validation-results.txt — Contains the output of running core-validate-commit (via npx core-validate-commit) against each of the four commit messages. Show which messages pass and which (if any) fail, along with any error output.

The four changes to commit are described here — write an appropriate commit message for each:

  1. Streams pipeline race: Fixed a timing issue where stream.pipeline() could emit 'close' before the writable side had fully flushed, causing downstream consumers to read incomplete data. This affects users who rely on the 'close' event to know when data is safe to read. References issue #47821 in the nodejs/node repository.

  2. fs.readdir docs: The documentation for fs.readdir() incorrectly stated that the callback receives an array of Buffer objects when the encoding option is set to 'buffer'; it actually receives an array of Buffer objects only when explicitly requested. Clarified the wording. References issue #48102.

  3. crypto error catalog: The ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE error was missing from the errors documentation page, causing confusion for addon authors who encountered it. Added the missing entry with a description. Fixes issue #47990.

  4. HTTP keep-alive test: Added a regression test for the case where an HTTP/1.1 server incorrectly closed a keep-alive connection when the client sent a Connection: keep-alive header along with a Content-Length: 0 body. No issue number — this is a proactive coverage addition spotted during a code review.

evals

README.md

tile.json