Documentation scope
Documentation scope
Loaded 1 documentation files (depth ≤2, cap 6; external links disabled).
Greenhorn / literal onboarding audit
Verified path
The documented verification command `npm test` exited 0 in the isolated executor.
Evidence, in order
A proposed command, its independent ruling, and its Docker result share one step. Nothing is silently skipped.
Documentation scope
Loaded 1 documentation files (depth ≤2, cap 6; external links disabled).
Command lifecycle
npm installLICENSEDFRICTIONDocumentation evidenceThen install dependencies: npm install
The supplied README explicitly documents the proposed command in the Quick Start, Examples, and Running Tests sections, and the state includes a package.json.
SHELL RECEIVED: YESAccepted command reached the isolated Docker executor.
added 403 packages, and audited 404 packages in 24s 88 packages are looking for funding run `npm fund` for details 8 vulnerabilities (1 low, 4 moderate, 2 high, 1 critical) To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm warn deprecated superagent@8.1.2: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net npm warn deprecated uuid@8.3.2: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). npm warn deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm warn deprecated supertest@6.3.4: Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net npm warn deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me npm warn deprecated eslint@8.47.0: This version is no longer supported. Please see https://eslint.org/version-support for other options. npm notice npm notice New major version of npm available! 10.9.8 -> 12.0.1 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.1 npm notice To update run: npm install -g npm@12.0.1 npm notice
Command lifecycle
npm testLICENSEDFRICTIONDocumentation evidenceThen run `npm test`:
The proposed command is stated verbatim in the documented test-running instructions.
SHELL RECEIVED: YESAccepted command reached the isolated Docker executor.
> express@5.2.1 test
> mocha --require test/support/env --reporter spec --check-leaks test/ test/acceptance/
Route
✔ should work without handlers
✔ should not stack overflow with a large sync stack
.all
✔ should add handler
✔ should handle VERBS
✔ should stack
.VERB
✔ should support .get
✔ should limit to just .VERB
✔ should allow fallthrough
errors
✔ should handle errors via arity 4 functions
✔ should handle throw
✔ should handle throwing inside error handlers
✔ should handle throw in .all
✔ should handle single error handler
Router
✔ should return a function with router methods
✔ should support .use of other routers
✔ should support dynamic routes
✔ should handle blank URL
✔ should handle missing URL
✔ handle missing method
✔ should not stack overflow with many registered routes (60ms)
✔ should not stack overflow with a large sync route stack
✔ should not stack overflow with a large sync middleware stack
.handle
✔ should dispatch
.multiple callbacks
✔ should throw if a callback is null
✔ should throw if a callback is undefined
✔ should throw if a callback is not a function
✔ should not throw if all callbacks are functions
error
✔ should skip non error middleware
✔ should handle throwing inside routes with params
✔ should handle throwing in handler after async param
✔ should handle throwing inside error handlers
FQDN
✔ should not obscure FQDNs
✔ should ignore FQDN in search
✔ should ignore FQDN in path
✔ should adjust FQDN req.url
✔ should adjust FQDN req.url with multiple handlers
✔ should adjust FQDN req.url with multiple routed handlers
.all
✔ should support using .all to capture all http verbs
.use
✔ should require middleware
✔ should reject string as middleware
✔ should reject number as middleware
✔ should reject null as middleware
✔ should reject Date as middleware
✔ should be called for any URL
✔ should accept array of middleware
.param
✔ should require function
✔ should reject non-function
✔ should call param function when routing VERBS
✔ should call param function when routing middleware
✔ should only call once per request
✔ should call when values differ
parallel requests
✔ should not mix requests (54ms)
app.all()
✔ should add a router per method
✔ should run the callback for a method just once
app
.engine(ext, fn)
✔ should map a template engine
✔ should throw when the callback is missing
✔ should work without leading "."
✔ should work "view engine" setting
✔ should work "view engine" with leading "."
HEAD
✔ should default to GET
✔ should output the same headers as GET requests
app.head()
✔ should override
app
✔ should inherit from event emitter
✔ should be callable
✔ should 404 without routes
app.parent
✔ should return the parent when mounted
app.mountpath
✔ should return the mounted path
app.path()
✔ should return the canonical
in development
✔ should disable "view cache"
in production
✔ should enable "view cache"
without NODE_ENV
✔ should default to development
app.listen()
✔ should wrap with an HTTP server
✔ should callback on HTTP server errors
✔ accepts port + hostname + backlog + callback
✔ accepts just a callback (no args)
✔ server.address() gives a { address, port, family } object
app
.locals
✔ should default object with null prototype
.settings
✔ should contain app settings
OPTIONS
✔ should default to the routes defined
✔ should only include each method once
✔ should not be affected by app.all
✔ should not respond if the path is not defined
✔ should forward requests down the mi
…truncatedSuccess criterion
The documented test command is `npm test`; the evidence shows `npm test` exited 0, and the documentation names no later success state.
Independent verification
The documented verification command `npm test` exited 0 in the isolated executor.
Documentation corpus
README.mdlocalEnvironment & boundary
Ubuntu 24.04 container, new filesystem state, source copied inside at run start. Codex reasons in a separate empty host scratch directory; the Azure GPT-5.6 key stays on the host. Only accepted commands reach the container shell.
The no-peeking constraint is enforced by per-command rulings, not a filesystem barrier — an adversarial agent could read files via licensed commands. Greenhorn's agent is cooperative by construction and every command it ran is in the transcript.
You are a brand-new developer on your first day. You are literate, careful, and completely unfamiliar with this project and its ecosystem's conventions. 1. Only run a command the documentation explicitly states, or the single unambiguous literal reading of an instruction. 2. Ambiguous instruction (multiple reasonable readings)? Do not choose. Halt that path and record every reading you see. 3. On failure: read the error, re-read the docs for a documented remedy. Never debug from your own knowledge. 4. Never install/configure/invoke anything the docs never mentioned. 5. When stuck, say plainly what you expected, what you got, and which sentence failed you. 6. Undocumented environment values (keys, URLs) = dead end. Never invent.
# Deliberately small and inspectable: no project state, dotfiles, or cached package manager data. FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates curl git \ && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ && apt-get install -y --no-install-recommends nodejs \ && rm -rf /var/lib/apt/lists/* /root/.npm WORKDIR /workspace ENTRYPOINT []