agentreadme

Report · marked 25 Aug 2026

lfnovo/open-notebook

Ready for an agent to work in without hand-holding.

TypeScript · 37,627 stars · 593 files · branch main

Fix these first

01
Instruction quality
Worth fixing: has no code blocks.
02
Static type checking
A type checker gives an agent an error message instead of a runtime surprise. It's the second-fastest feedback loop after the compiler.

The full marking

Every deduction below names the file or setting it came from.

Instructions 25/27 A+

Whether the repo tells an agent how to behave before it starts guessing.

Agent instruction file 12/12
AGENTS.md is present, which is the format the most tools read.
Also found: CLAUDE.md
Instruction quality 10/12
Specific enough that an agent can act on it.
Worth fixing: has no code blocks.
3,037 characters, a workable length
names the actual commands to run
uses headings, so an agent can skim it
README as an entry point 3/3
README has a clear getting-started section.
Setup 20/20 A+

Whether an agent can install the project and get it running without a human.

Deterministic install 6/6
uv.lock pins the dependency tree.
Found uv.lock
Discoverable commands 6/6
Commands are declared where an agent will look for them.
Makefile
scripts/ directory
Environment config 4/4
.env.example documents what the app needs to run.
Pinned runtime version 2/2
The language runtime version is pinned.
Found .python-version
Reproducible environment 2/2
dockerfile gives a known-good environment.
Verification loop 24/25 A+

Whether an agent can check its own work. This is the category that most decides whether agent output is trustworthy.

Tests exist 8/8
75 test files against 379 source files.
e.g. frontend/src/app/(dashboard)/notebooks/components/ChatColumn.test.tsx, frontend/src/app/(dashboard)/notebooks/components/NoteEditorDialog.test.tsx, frontend/src/app/(dashboard)/settings/api-keys/page.test.tsx
Test command is discoverable 7/7
An agent can find and run `pytest`.
Continuous integration 4/4
4 GitHub Actions workflows define what "passing" means.
Lint and format rules 3/3
pyproject.toml encodes the house style.
Static type checking 2/3
Type checking is configured, but not in strict mode.
A type checker gives an agent an error message instead of a runtime surprise. It's the second-fastest feedback loop after the compiler.
Context economy 20/20 A+

Whether the repo fits in a context window, or fights it.

No committed build output 6/6
No generated directories committed.
.gitignore hygiene 3/3
.gitignore covers 95 patterns.
File sizes fit in context 6/6
No source file is large enough to crowd out a context window.
Repository weight 5/5
About 21.7MB checked out, which is comfortable.

Here is your AGENTS.md

Drafted from what is actually in this repository: the install command from your lockfile, the commands you already declare, your real directory layout. Anything marked TODO needs a person. Save it at the root as AGENTS.md.

AGENTS.md — drafted for lfnovo/open-notebook
undefined

Open the raw markdown  or  curl -o AGENTS.md agentreadme.com/draft/lfnovo/open-notebook.md

Show the mark

The badge re-checks daily, so it keeps up as the repository changes. Use mark again to force it now.

agent ready 97 out of 100

[![agent ready](https://agentreadme.com/badge/lfnovo/open-notebook.svg)](https://agentreadme.com/lfnovo/open-notebook)

Other TypeScript repositories, marked

freeCodeCamp/freeCodeCamp 69 B openclaw/openclaw 68 B nilbuild/developer-roadmap 45 C vuejs/vue 67 B n8n-io/n8n 87 A anomalyco/opencode 80 A-

All TypeScript repositories

Think this mark is wrong?

Every deduction above names the file it came from, so this can be settled by looking. If a check missed something, that is a rule worth fixing.

Open an issue, already filled in