Skip to content

Since the last run

Overall −7 points

yarnia-quest/yarnia (opens in a new tab)

A well-structured TypeScript codebase with strong agent navigation and test coverage, though held back by fragmented verification and a lack of containerized setup.

TypeScript★ 00 open issuesOther
Overall score: 71 out of 100
Holding

last scored 2026-09-14 · both lenses

Readiness lenses

The same repo, two ways: how ready it is for an AI coding agent, and for a human newcomer. Switch lenses to see each one's score and checks.

How ready the repo is for an AI coding agent to read, build, and operate it.

71 / 100

17 of 40 checks passed across 6 categories.

  • Machine Orientation

    85

    Clear and comprehensive agent guidance across root README and CLAUDE.md, with minor localized gaps.

    The repository provides a clear README and a comprehensive CLAUDE.md file detailing repo layout, stack, domains, and build/run commands for all subcomponents (api, app, marketing). It clears the Solid band (70–89) by offering explicit instructions and structured documentation, though minor sub-readme gaps prevent it from reaching exemplary status.

  • Reproducible Setup

    60

    The setup is workable via Node and Just scripts, but lacks containerization and automated environment bootstrapping.

    The repository provides package-lock.json and explicit API backend scripts via Node, but lacks containerization (no Dockerfile, docker-compose, or devcontainer), and frontend configuration relies on manual .env copying and build-time --dart-define files rather than unified lockfiles. While tests and tasks run via npm and just, the absence of container/environment automation keeps setup in the Workable band.

  • Code Navigability

    85

    Clear module boundaries, clean TypeScript layout, and well-separated services make this codebase very easy for an agent to navigate.

    Code Navigability is solid and well-structured, with clear module boundaries across api/ (Hono backend), app/flutter/ (client), and instant/ (InstantDB schema), supported by typed TypeScript signatures in api/src/ and a clean file tree. The repository uses consistent naming and separation of concerns (e.g., prompt.ts, auth.ts, safety.ts), though strict null-checks or lint rules are partially implicit rather than uniformly enforced across all subprojects. Overall, an agent can reliably localize and edit the exact modules needed.

  • Verification Surface

    65

    Comprehensive test suites and CI workflows exist, but verification is fragmented across subdirectories without a unified task runner interface.

    The repository features extensive test files under `api/test/` (Vitest) and multiple CI workflows in `.github/workflows/`, but lacks explicit runnable check/lint scripts in a root package.json or task runner, placing it solidly in the Workable band.

  • Agent Safety

    75

    Secret hygiene is solid with env templates, though security policies and ownership boundaries lack explicit configuration.

    Secret hygiene is maintained via gitignored env files and an api/.env.example template, and the repo lacks committed env files or secret-shaped hits. However, it lacks a SECURITY.md file and CODEOWNERS, leaving security policies and ownership unestablished for agents. Therefore, this clears the Solid band with minor gaps.

  • Context Economy

    60

    Workable context economy, weighed down by untagged media assets and ideation bulk.

    The repository includes large generated asset directories, marketing videos, and ideation drafts (`ideation/`, `video/`) without explicit `.gitignore` exclusion tuning or linguist markers to isolate build/asset bulk from AI agent context. The detected signals indicate clean node_modules and build outputs, but the extensive unindexed media and documentation weigh down navigation. This clears the 50–69 Workable band.

  • Machine Orientation

    2 checks passed8 problems found

    • lowAgent instructions stay lean

      A bloated instructions file burns context and measurably hurts more than it helps.

      Fix: Trim AGENTS.md to the load-bearing commands and conventions; link out to the rest.

    • lowRepository description set

      The one-line description is the fastest orientation signal an agent reads.

      Fix: Set the GitHub repository description to a single clear sentence.

    • lowllms.txt present

      An llms.txt is the emerging machine-orientation standard — a curated map for LLMs.

      Fix: Add an llms.txt pointing at the key docs and entry points.

    • lowTopics set

      GitHub topics situate the repo's domain and stack for an agent at a glance.

      Fix: Add a few GitHub topics describing the domain and stack.

    • lowArchitecture doc

      An ARCHITECTURE doc hands an agent the module map instead of making it infer one.

      Fix: Add an ARCHITECTURE.md describing the major components and how they fit.

    • lowREADME shows usage

      A usage/example section tells an agent how the project is actually invoked.

      Fix: Add a Usage or Examples section to the README with a runnable snippet.

    • lowExamples directory

      An examples/ directory gives an agent runnable, copyable references for the API.

      Fix: Add an examples/ directory with small, runnable usage samples.

    • lowContribution conventions are written down

      A contributor guide is where an agent learns the branch, commit, and review conventions it must follow.

      Fix: Add a CONTRIBUTING.md stating the branch naming, commit format, and how a change gets reviewed.

    • README present — An agent reconstructs what the repo is and how to work in it from the README first.
    • Agent instructions file — AGENTS.md / CLAUDE.md is the direct, machine-read channel for entry points and conventions.
  • Reproducible Setup

    3 checks passed3 problems found

    • mediumRuntime / toolchain pinned

      An unpinned runtime makes an agent guess the version a clean environment needs.

      Fix: Pin the runtime with .nvmrc / .tool-versions / an engines field / packageManager.

    • mediumContainer or dev-container

      A Dockerfile / compose / devcontainer removes 'works on my machine' from setup.

      Fix: Add a Dockerfile, a compose file, or a .devcontainer so the environment is declared, not assumed.

    • lowDev container

      A .devcontainer gives an agent a one-command, fully-declared environment.

      Fix: Add a .devcontainer so the toolchain is declared, not assumed.

    • Lockfile committed — Without a lockfile two clones can resolve different dependency trees — the build isn't reproducible.
    • Env template present — A .env.example tells an agent which configuration keys it must supply to run.
    • README documents setup — Explicit install/setup steps are what let an agent go from clone to running.
  • Code Navigability

    2 checks passed3 problems found

    • lowTypeScript strict mode on

      Strict typing gives an agent typed signatures to anchor an edit on, not guesses.

      Fix: Turn on `strict` in tsconfig.json.

    • low.editorconfig present

      An .editorconfig keeps whitespace and encoding consistent, so diffs stay legible.

      Fix: Add an .editorconfig pinning indentation, charset, and final-newline.

    • lowTyped public API

      A declared `types` entry gives an agent typed signatures to anchor an edit on.

      Fix: Ship type declarations and point package.json `types`/`typings` at them.

    • Conventional source layout — A recognised src/ · lib/ · app/ layout lets an agent localise code without spelunking.
    • Formatter configured — A formatter config (Prettier/Biome/rustfmt/…) keeps style uniform across the tree.
  • Verification Surface

    3 checks passed4 problems found

    • mediumTest command defined

      A `test` script is the documented, discoverable way to run the suite.

      Fix: Add a `test` script (package.json / Makefile / Taskfile) that runs the suite.

    • lowLint command defined

      A linter an agent can run catches a class of mistakes before they ship.

      Fix: Add a `lint` script and a linter config.

    • lowTypecheck command

      A typecheck script lets an agent catch type errors before they ship.

      Fix: Add a `typecheck` script (e.g. `tsc --noEmit`).

    • lowBuild command

      A documented build command is the discoverable way for an agent to produce artifacts.

      Fix: Add a `build` script that produces the distributable.

    • Tests present — Runnable tests are the ground truth an agent checks its own edits against.
    • CI configured — Readable CI is the feedback loop an agent reads to know what 'green' means here.
    • Task runner present — A Makefile / Taskfile / justfile gives an agent a single index of the project's commands.
  • Agent Safety

    5 checks passed3 problems found

    • mediumSecurity policy

      A SECURITY.md is where an autonomous security agent reads this repo's rules before acting on it.

      Fix: Add a SECURITY.md stating the disclosure channel and the repo's security rules.

    • lowCODEOWNERS present

      CODEOWNERS marks the 'don't touch without review' zones an agent should respect.

      Fix: Add a CODEOWNERS file marking the sensitive paths.

    • lowAutomated dependency updates

      Dependabot / Renovate keeps dependencies patched without a human in the loop.

      Fix: Enable Dependabot or Renovate.

    • No committed .env — A tracked real .env hands secrets to anything — including an agent — that reads the repo.
    • No exposed secrets — Secret-shaped literals in tracked files are a live credential leak.
    • .gitignore covers env files — An ignore rule for .env is what keeps the next careless commit from leaking secrets.
    • .gitignore present — A .gitignore is the first guard against an agent committing secrets or build junk.
    • License makes the code reusable — Without a license an agent cannot safely copy, redistribute, or vendor any of this code.
  • Context Economy

    2 checks passed2 problems found

    • lowGenerated / vendored files marked

      A .gitattributes linguist marker tells tools (and agents) what to skip.

      Fix: Mark generated/vendored paths in .gitattributes (linguist-generated / linguist-vendored).

    • lowNo oversized source file

      A single file in the hundreds of KB blows past an agent's effective context window.

      Fix: Split the largest files along their natural seams.

    • Dependencies not vendored in — A committed node_modules / vendor tree drowns the real signal an agent needs.
    • Build output not committed — Generated dist/ · build/ output is noise an agent has to read past.

Where the grip slips

  1. lowVerification Surface+7 pts if fixed

    Missing unified root verification scripts

    No root-level package.json or task runner scripts to unify verification across the subprojects (api, app, marketing).

    Fix: Add a root package.json with workspace scripts for running tests and type-checking across all packages.

  2. mediumReproducible Setup+5 pts if fixed

    Missing containerized setup

    Missing Dockerfile or docker-compose setup for reproducible environment containerization.

    Fix: Add a Dockerfile and docker-compose.yml to containerize the API and client services.

  3. mediumContext Economy+4 pts if fixed

    Bulk generated assets and ideation artifacts lack linguist markers

    Large media and ideation artifact directories (`video/`, `ideation/results/deck.pdf`, MP4s) consume context window space without linguist exclusion markers.

    Fix: Add `.gitattributes` with `linguist-generated` rules for binary assets, PDFs, and generated video files.

  4. lowReproducible Setup+2 pts if fixed

    Unpinned runtime versions and missing devcontainer

    No pinned dependencies or container definitions for deterministic execution across environments.

    Fix: Pin core runtime versions in a tool-versions file and provide a standard devcontainer.

  5. lowAgent Safety+2 pts if fixed

    Missing SECURITY.md

    Missing SECURITY.md vulnerability reporting policy and instructions.

    Fix: Add a SECURITY.md file explaining how to report vulnerabilities securely.

  6. lowMachine Orientation+2 pts if fixed

    Subdirectory READMEs missing

    Missing dedicated README files inside subdirectories like app/flutter/ or infra/ relying solely on root-level guidance.

    Fix: Add brief README files in subdirectories or consolidate all onboarding instructions cleanly into root documentation.

  7. lowCode Navigability+2 pts if fixed

    Inconsistent strictness across monorepo boundaries

    tsconfig.json sets strict: true in api/, but flutter lint rules and strictness vary in app/flutter/.

    Fix: Enable strict analysis options across all subprojects and add explicit code-nav architectural notes in a CONTRIBUTING or ARCHITECTURE doc.

  8. lowAgent Safety+1 pts if fixed

    Missing CODEOWNERS

    Missing CODEOWNERS file for explicit ownership boundaries.

    Fix: Add a .github/CODEOWNERS file defining ownership boundaries for sensitive paths.

Show your score

Latch badge
[![Latch score](https://latch.fyi/api/badge/c2ca761d-d271-43ce-9481-12e5981c19fa)](https://latch.fyi/yarnia-quest/yarnia)

Share this analysis

https://latch.fyi/yarnia-quest/yarnia

Fixed some issues? Re-analyze to measure your progress →

Copy the whole report

Grab the entire verdict in one go — a Markdown block for a README or an issue, plain text, or a prompt you can paste straight into an LLM.

Was this verdict fair?

One tap helps — or tell us more.