# Eazyr

> Make an unfamiliar or undocumented repo easy to run. Use when someone cannot get a project running, when onboarding a new developer, or when asked to write a QUICKSTART, a setup/prerequisite check ("doctor") script, or a documented .env.example. Also use when setup instructions are missing, stale, or spread across a wiki, a chat thread, and someone's head — or to audit whether a repo is onboardable at all.

- Skill: `buildfastwithai/eazyr` (Agent Skill)
- Install (CLI): `npx skillmds@latest add buildfastwithai/eazyr`
- Raw SKILL.md: https://api.skillmd.com/api/skills/buildfastwithai/eazyr/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: buildfastwithai (https://skillmd.com/u/buildfastwithai)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/buildfastwithai/eazyr

---


# eazyr

Turn "clone it and good luck" into a five-minute path from clone to a running app.

You produce an **onboarding kit** that lives in the repo:

| Artifact | Purpose |
| --- | --- |
| `QUICKSTART.md` | The shortest correct path from clone to "it works" |
| `scripts/doctor.sh` + `scripts/doctor.ps1` | Runnable checks that fail loudly *before* setup wastes an hour |
| `.env.example` | Every variable the app reads, documented, with safe defaults |

## The one rule

**Never write a step you have not verified against the repo.** Invented steps are worse
than absent ones — they cost the reader the time it takes to discover they're fake.

This ships with a scanner so you don't have to rely on memory. `eazyr scan --json`
returns detected facts with the file each one came from. Prefer it over reading twenty
files by hand, and cite its provenance rather than guessing.

If a fact is missing, write `> **TODO:**` and say what you'd need. Never fill the hole
with something plausible.

## Workflow

### 1. Scan

```bash
npx eazyr scan --json
```

Returns: `ecosystems` (stack, package manager, version ranges, real commands from the
manifest), `env.vars` (each with `required`, `secret`, and `sources: ["file:line"]`),
`compose` and `services`, `ports`, `verify` (health endpoint or test command), `steps`
(the ordered setup path), and `gaps` (what's missing).

Read the human summary first if you just want orientation:

```bash
npx eazyr scan
```

**The scanner is a strong first pass, not an oracle.** It is regex-based, skips
`node_modules`, and caps at 4000 files. Verify anything surprising by opening the file it
cites. If `ecosystems` is empty or `truncated` is true, fall back to reading the repo
yourself — `references/detect.md` is the manual lookup table.

### 2. Generate the first draft

```bash
npx eazyr init          # add --force to overwrite, --dry-run to preview
```

Writes all four files from the scan. Existing files are skipped unless `--force`, so this
is safe to run in a repo that already has some docs.

This is a **draft, not a deliverable.** It knows the facts; it does not know your project.

### 3. Edit it into something true

This is the part only you can do. Work through the generated files and:

- **Resolve every `TODO`.** The generator emits one wherever it couldn't determine a fact.
- **Read the sources.** For each `sources: ["src/config.ts:14"]`, open that line and write
  what the variable actually *does*. "Stripe API key" beats a repeated variable name.
- **Name where secrets come from.** `STRIPE_SECRET_KEY` → "Create a test-mode key at
  dashboard.stripe.com/apikeys". The generator cannot know this; a reader is stuck without it.
- **Check CI.** `.github/workflows/` is the setup that provably works. If it does something
  the quickstart doesn't, the quickstart is wrong.
- **Fix the ordering** if the project has a real constraint the scanner missed — a seed
  step that must precede first boot, a service that needs a warm-up.
- **Cut what isn't on the critical path.** Under 120 lines. Everything else is README material.

`references/quickstart.md` has the section-by-section spec, `references/doctor.md` the
check conventions, `references/detect.md` the manual detection table.

### 4. Verify

```bash
npx eazyr doctor        # runs the derived checks against this machine, writes nothing
bash scripts/doctor.sh  # and confirm the committed script agrees
```

Then run the install and start commands if you can. Best effort, in this order:

1. `doctor` passes, and fails informatively when you unset a required variable.
2. The install step completes.
3. The app starts and the verify step returns what the quickstart claims.

Report honestly: what you ran, what passed, what you could not check. If you couldn't run
the app, say so plainly rather than implying the path is proven.

## When the scanner comes up empty

Unrecognised stack, or a repo too unusual to detect? Fall back to the manual workflow —
the artifacts are still the goal:

1. Read CI, then the task runner, then the container files. CI has to pass, so it doesn't lie.
2. Reconstruct: prerequisites → clone → install → configure → services → run → verify.
3. Copy `assets/doctor.sh` and `assets/doctor.ps1` into `scripts/`, and edit only the
   `CHECKS` block — the runner is complete.
4. Write `QUICKSTART.md` from `assets/QUICKSTART.template.md`.

## Scope

Write the kit and the scripts that support it. Don't refactor the project, change its
dependencies, or rewrite the main README — `QUICKSTART.md` links from the README, it
doesn't replace it. Never copy a real value out of an existing `.env`; use a placeholder
and say you did.

## Files

- `references/detect.md` — manual stack detection, per ecosystem
- `references/quickstart.md` — QUICKSTART.md section spec
- `references/doctor.md` — check catalog and script conventions
- `assets/QUICKSTART.template.md`, `assets/doctor.sh`, `assets/doctor.ps1`,
  `assets/env.example.template` — the templates `init` fills in

