Skip to content

Since the last run

Overall −2 points

yellow-pine/zsh-github-dark (opens in a new tab)

A lean, agent-friendly zsh theme repository with clear guidelines and test infrastructure, missing only strict environment locking.

Shell★ 90 open issuesMIT License
Overall score: 76 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.

76 / 100

19 of 42 checks passed across 6 categories.

  • Machine Orientation

    85

    Exceptionally well-oriented for an AI agent with clear CLAUDE.md guidelines and test runner instructions.

    The repository features a clear README and a robust CLAUDE.md detailing project structure, linting commands (`zsh -n`, `shfmt`), and test invocation (`./run-tests.sh`). Essential onboarding and machine orientation files are present, placing this firmly in the solid 70–89 band.

  • Reproducible Setup

    45

    Rough setup with an installer and test script but lacking version pins, lockfiles, and containerization.

    The repository lacks explicit lockfiles, package dependency pinning, environment examples, and containerization setup, placing it in the 30-49 Rough band. However, it provides a functional installation script, clear requirements, and a test suite (`run-tests.sh`).

  • Code Navigability

    85

    Well-organized, concise, and navigable file structure that allows an agent to easily locate and modify the exact shell scripts and terminal assets.

    The repository follows a clean conventional layout with clear module boundaries (install.sh, src/.zshrc, src/github-dark.terminal, git-hooks/), consistent naming conventions, and explicit instructions in CLAUDE.md and CONTRIBUTING.md. Files are concise and fit well within context windows, making it easy for an agent to localize and edit the exact code needed. This clears the Solid band with minor gaps (tsStrict is unknown/not applicable since it's a shell project).

  • Verification Surface

    85

    The repository features a dedicated test runner script and CI pipeline, enabling reliable verification for an agent.

    The repository provides a robust custom test script (`./run-tests.sh` with 50 tests) and a comprehensive GitHub Actions CI workflow (`continuous-integration.yml`) that validates shell scripts, formatting, and tests. This firmly places verification surface in the Solid band, allowing an agent to cleanly check its own work.

  • Agent Safety

    85

    Strong agent safety posture with clean secret handling and robust policy files, lacking only explicit .gitignore rules for env files.

    The repository follows solid secret hygiene with no committed .env files or secret-shaped hits, and has comprehensive SECURITY.md and CODEOWNERS policies in place. However, gitignore fails to explicitly cover .env files and related secret patterns, placing it in the solid 70-89 range.

  • Context Economy

    85

    Lean, well-organized codebase with clear agent orientation via CLAUDE.md and zero noise.

    The repository provides a concise and explicit CLAUDE.md file with clear project overview, commands, and architecture, allowing an agent to quickly grasp context. With only 28 files and zero generated or vendored bulk cluttering the tree, the signal-to-noise ratio is exceptionally high, easily clearing the Solid band.

  • Machine Orientation

    6 checks passed4 problems found

    • 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.

    • 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.

    • 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.
    • Agent instructions stay lean — A bloated instructions file burns context and measurably hurts more than it helps.
    • Repository description set — The one-line description is the fastest orientation signal an agent reads.
    • Topics set — GitHub topics situate the repo's domain and stack for an agent at a glance.
    • Contribution conventions are written down — A contributor guide is where an agent learns the branch, commit, and review conventions it must follow.
  • Reproducible Setup

    1 check passed5 problems found

    • highLockfile committed

      Without a lockfile two clones can resolve different dependency trees — the build isn't reproducible.

      Fix: Commit your lockfile (package-lock.json / pnpm-lock.yaml / Cargo.lock / …).

    • 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.

    • lowEnv template present

      A .env.example tells an agent which configuration keys it must supply to run.

      Fix: Ship a .env.example listing every required key with placeholder values.

    • lowDev container

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

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

    • README documents setup — Explicit install/setup steps are what let an agent go from clone to running.
  • Code Navigability

    2 checks passed2 problems found

    • lowFormatter configured

      A formatter config (Prettier/Biome/rustfmt/…) keeps style uniform across the tree.

      Fix: Add a formatter (Prettier, Biome, rustfmt, …) and commit its config.

    • 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.
    • .editorconfig present — An .editorconfig keeps whitespace and encoding consistent, so diffs stay legible.
  • Verification Surface

    1 check passed6 problems found

    • highTests present

      Runnable tests are the ground truth an agent checks its own edits against.

      Fix: Add a test suite an agent can run to verify a change.

    • 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.

    • lowTask runner present

      A Makefile / Taskfile / justfile gives an agent a single index of the project's commands.

      Fix: Add a Makefile / Taskfile / justfile collecting the common commands.

    • 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.

    • CI configured — Readable CI is the feedback loop an agent reads to know what 'green' means here.
  • Agent Safety

    7 checks passed4 problems found

    • medium.gitignore covers env files

      An ignore rule for .env is what keeps the next careless commit from leaking secrets.

      Fix: Add `.env` (and `.env.*`) to .gitignore.

    • mediumPolicy names the threat model

      A scanning agent aims at what the repo says it is defending, and where untrusted input crosses in.

      Fix: Describe the threat model and trust boundaries in SECURITY.md — what is attacker-controlled, and where it reaches trusted code.

    • mediumPolicy scopes what counts as a finding

      With no reportable-finding bar and no out-of-scope list, an automated scan returns noise nobody triages.

      Fix: State in SECURITY.md what counts as a reportable finding, and what is out of scope or accepted risk.

    • lowPolicy gives severity context

      Severity judged against this system beats a generic rating an agent had to guess at.

      Fix: Say in SECURITY.md how severity is judged here — what makes a finding critical for this system.

    • 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.
    • CODEOWNERS present — CODEOWNERS marks the 'don't touch without review' zones an agent should respect.
    • Automated dependency updates — Dependabot / Renovate keeps dependencies patched without a human in the loop.
    • .gitignore present — A .gitignore is the first guard against an agent committing secrets or build junk.
    • Security policy — A SECURITY.md is where an autonomous security agent reads this repo's rules before acting on it.
    • 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. mediumReproducible Setup+6 pts if fixed

    Missing dependency lockfiles and version pinning

    No dependency lockfiles or explicit tool version pinning in the installer or configuration.

    Fix: Pin specific versions of Homebrew dependencies (like lsd) or record expected tool versions in requirements documentation.

  2. mediumReproducible Setup+6 pts if fixed

    No containerization or devcontainer configuration

    No containerfile, devcontainer, or compose setup for isolated agent testing.

    Fix: Add a Dockerfile or devcontainer configuration to make environment setup reproducible in CI and containerized agents.

  3. lowVerification Surface+3 pts if fixed

    Missing standard task runner or lockfile configuration

    Lockfile and task runner signals are absent, though tests and CI workflows are fully functional.

    Fix: None strictly required given the shell-based nature of the project and working CI, but adding a package manager or task runner config could further streamline agent workflows.

  4. lowMachine Orientation+2 pts if fixed

    Missing lockfile/dependency pins

    Lockfiles and dependency management tools are absent (though shell scripts have minimal external requirements).

    Fix: Add explicit dependency specifications or lockfiles if node/brew dependencies expand.

  5. mediumAgent Safety+2 pts if fixed

    Missing .env coverage in .gitignore

    .gitignore does not explicitly cover .env or secret configuration files.

    Fix: Add `.env`, `.env.local`, and `.mcp.json` (if local) to `.gitignore`.

  6. lowCode Navigability+2 pts if fixed

    Absence of type checking configurations (n/a for shell)

    While files are clean and concise, TypeScript strictness or type checking is not applicable/configured for a shell project.

    Fix: Ensure shell script linting and syntax checking (zsh -n) are consistently used in CI as already implemented.

  7. lowContext Economy+1 pts if fixed

    Missing test command in CLAUDE.md common commands

    CLAUDE.md does not reference the test suite runner (`./run-tests.sh`) in its Common Commands section, requiring an agent to dig deeper to find test instructions.

    Fix: Add `./run-tests.sh` to the Common Commands section in CLAUDE.md.

Show your score

Latch badge
[![Latch score](https://latch.fyi/api/badge/fe60c252-7028-46f7-b3ea-aa14c4eaa4d5)](https://latch.fyi/yellow-pine/zsh-github-dark)

Share this analysis

https://latch.fyi/yellow-pine/zsh-github-dark

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.