Greenhorn / literal onboarding audit

example-tiny-api (seeded gap)

DEAD END

A literal newcomer followed the repository’s written path. Every proposed command received an independent contract ruling before it could reach the container shell.

Read the docsRule each commandExecute in DockerVerify the checkpoint
DEAD END

No licensed next action remained

Verification evidenceNo documented checkpoint could be independently verified in this run.
2026-07-17T09:12:00.000Z

Literal execution trace

Every rule, shell handoff, and observed result remains inspectable. Long command output is tucked away, never discarded.

  1. Documentation scope

    Documentation scope

    Read README.md. It says to install dependencies but names no package manager or command.

  2. Command proposal

    npm install

    AMBIGUOUSAMBIGUOUS
    Documentation evidence
    Install the dependencies and start the server.

    The docs specify an outcome, not one executable command.

    Literal readings considered
    • npm install
    • npm ci

    SHELL RECEIVED: NOBlocked before execution.

  3. Documentation finding

    npm install

    INFERENCEBLOCKER
    Documentation evidence
    No licensing sentence found in the README or its explicitly linked docs.

    No licensed action remains. A newcomer cannot choose a package-manager command.

  4. Literal stop

    Literal stop

    Expected an exact setup command; got a generic instruction. No documented remedy exists after the full-doc retry pass.

What the newcomer was allowed to read

  • README.mdlocal

How this run was contained

Read the isolation statement

Fixture mode is deterministic for the product demo; it does not claim a container run.

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 []