Name: Scripted Interpretation (normative): Repeatable scripts exist (build, lint, deploy), but they are undocumented and assume a human in the driver seat.
At L1 the team has captured the recurring actions as scripts. There is a way to build, a way to lint, a way to deploy — and those commands produce the same result each time they are run. What is missing is the context that turns a script into something an agent can use unsupervised: the scripts assume a human knows when and why to run them, and the conventions still live in people's heads rather than in machine-readable files.
L1 is roughly where small startups and most early-stage open-source projects find themselves. It is functional, and it is a real improvement over the manual floor. It is also fragile: a single careless commit can regress the fundamentals, because nothing enforces the scripts and nothing documents the environment they expect.
Criteria at L1
L1 criteria build on L0. A repository earns L1 by passing ≥ 80% of L1 criteria and meeting the L0 gate:
DOC-020— Project purpose stated in READMEDOC-030— AGENTS.md or CLAUDE.md presentDOC-040— Environment variables documentedCQV-020— Formatter configured with a single source of truthCQV-030— TypeScript / typed language in strict modeCQV-040— Pre-commit hooks enforce formatter and linterTST-020— Coverage measurement configuredBLD-020— Node / runtime version pinnedBLD-040—.env.exampledocuments every env varOBS-010— Structured loggingOBS-040— Health endpointSEC-030— Dependency audit gateSEC-040— CODEOWNERS presentTIR-010— Issue templates presentTIR-020— Pull request templateDLM-010— CI runs every gate on every PR
How to climb to L2
The L1 → L2 jump is about building a verifiable signal. The defining investment is a meaningful automated test suite that gates changes — so an agent can prove an edit did not break behaviour rather than hoping it didn't. See Getting to Level 2 for a hands-on walkthrough.