Greenhorn / literal onboarding audit

axios-9d2abce4

DEAD END
axios/axios @ a092bae5 2026-07-18 15:22:19 UTC Codex · gpt-5.6-terra (build default) GPT-5.6 Luna · Azure AI Foundry (build default) Transcript JSON

The literal path stopped here.

No documentation sentence licensed a next action.
No further command proposed

I expected the documented two-command hook setup to be complete. `npm rebuild husky` exited 0, but README documents the remaining action only as the chained command `npm rebuild husky && npx husky`; it does not explicitly license `npx husky` as a standalone command, while the contract forbids chaining. The instruction that fails is: “The command must be the next ONE shell command explicitly licensed by the documentation. No … chaining.”

NO FURTHER COMMAND REACHED THE SHELL

Command lifecycles

A proposed command, its independent ruling, and its Docker result share one step. Nothing is silently skipped.

  1. 1

    Documentation scope

    Greenhorn loaded docs

    Documentation scope

    Loaded 2 documentation files (depth ≤2, cap 6; external links disabled).

  2. 2

    Command lifecycle

    Codex proposedGPT-5.6 ruledDocker executed
    npm ciLICENSEDFRICTION
    Documentation evidenceAfter your first install, enable the git hooks manually:

    The proposed command is explicitly shown in the repository's local setup instructions, and the project state confirms npm and a lockfile are present.

    Literal readings considered
    • README.md explicitly shows `npm ci` as the first command in the local setup sequence.
    • The state identifies this as a Node project using npm and includes `package-lock.json`.
    • README.md states that `npm ci` runs with lifecycle scripts ignored by the project-level `.npmrc`.

    SHELL RECEIVED: YESAccepted command reached the isolated Docker executor.

    Docker resultexit 1
    Show command output
    npm error code EUSAGE
    npm error
    npm error `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
    npm error
    npm error Missing: conventional-commits-parser@6.4.0 from lock file
    npm error
    npm error Clean install a project
    npm error
    npm error Usage:
    npm error npm ci
    npm error
    npm error Options:
    npm error [--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling]
    npm error [--global-style] [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
    npm error [--include <prod|dev|optional|peer> [--include <prod|dev|optional|peer> ...]]
    npm error [--strict-peer-deps] [--foreground-scripts] [--ignore-scripts] [--no-audit]
    npm error [--no-bin-links] [--no-fund] [--dry-run]
    npm error [-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
    npm error [-ws|--workspaces] [--include-workspace-root] [--install-links]
    npm error
    npm error aliases: clean-install, ic, install-clean, isntall-clean
    npm error
    npm error Run "npm help ci" for more info
    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
    npm error A complete log of this run can be found in: /root/.npm/_logs/2026-07-18T15_22_41_370Z-debug-0.log
  3. 3

    Command lifecycle

    Codex proposedGPT-5.6 ruledDocker executed
    npm installLICENSEDFRICTION
    Documentation evidenceAll `npm install` / `npm ci` runs in a contributor or maintainer checkout skip lifecycle scripts by default.

    `npm install` is explicitly documented and is licensed by the repository's default `ignore-scripts=true` configuration. It may require the documented manual Husky setup afterward, so the consequence is friction rather than a blocker.

    Literal readings considered
    • The proposed command is explicitly covered by the repository's project-level `.npmrc` setting.
    • Lifecycle scripts, including `prepare`, will not run automatically.
    • Git hooks require the documented manual setup afterward.

    SHELL RECEIVED: YESAccepted command reached the isolated Docker executor.

    Docker resultexit 0
    Show command output
    added 653 packages, and audited 654 packages in 18s
    
    127 packages are looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    
    npm warn deprecated git-raw-commits@5.0.1: Deprecated and no longer maintained. Use @conventional-changelog/git-client instead.
  4. 4

    Command lifecycle

    Codex proposedGPT-5.6 ruledDocker executed
    npm ciLICENSEDFRICTION
    Documentation evidenceAfter your first install, enable the git hooks manually:

    The proposed command is explicitly shown in the repository's local setup instructions, and the project state confirms npm and a lockfile are present.

    Literal readings considered
    • README.md explicitly shows `npm ci` as the first command in the local setup sequence.
    • The state identifies this as a Node project using npm and includes `package-lock.json`.
    • README.md states that `npm ci` runs with lifecycle scripts ignored by the project-level `.npmrc`.

    SHELL RECEIVED: YESAccepted command reached the isolated Docker executor.

    Docker resultexit 0
    Show command output
    added 656 packages, and audited 657 packages in 6s
    
    128 packages are looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    
    npm warn deprecated git-raw-commits@5.0.1: Deprecated and no longer maintained. Use @conventional-changelog/git-client instead.
  5. 5

    Command lifecycle

    Codex proposedGPT-5.6 ruledDocker executed
    npm rebuild huskyLICENSEDFRICTION
    Documentation evidencenpm rebuild husky && npx husky

    README.md explicitly instructs contributors to run `npm rebuild husky && npx husky` after installation, which unambiguously licenses `npm rebuild husky`.

    Literal readings considered
    • The proposed command is explicitly included as the first command in the documented setup sequence.
    • The repository is an npm-managed Node project.

    SHELL RECEIVED: YESAccepted command reached the isolated Docker executor.

    Docker resultexit 0
    Show command output
    rebuilt dependencies successfully
  6. 6

    Literal stop

    Codex stopped

    Literal stop

    I expected the documented two-command hook setup to be complete. `npm rebuild husky` exited 0, but README documents the remaining action only as the chained command `npm rebuild husky && npx husky`; it does not explicitly license `npx husky` as a standalone command, while the contract forbids chaining. The instruction that fails is: “The command must be the next ONE shell command explicitly licensed by the documentation. No … chaining.”

What the newcomer could read

  • README.mdlocal
  • THREATMODEL.mdlocal

How the run was contained

Read the isolation statement

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.

Read the newcomer contract
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.
Inspect the container Dockerfile
# 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 []