01The bar, in one sentence
Every Quilt repo โ whether a 200-line CLI or a 50k-line monorepo โ is held to the same standard. Not a different bar for "internal" vs "public", not a different bar for "research" vs "production", not a different bar for hardware vs software. One bar, one set of rules, audited quarterly.
The bar has eight layers. Each is a prerequisite for the next โ you can't claim L5 (great docs) on a repo that fails L1 (no LICENSE). The layers stack bottom-up: foundation (L1) is the price of admission; ecosystem (L8) is the long game.
The hour-clock test
If a new contributor can't go from git clone to a merged PR in under 60 minutes, the bar has been failed. Not because the contributor is bad โ because the repo is unprepared. Every gap between "I want to help" and "here is my PR" is a layer the repo is missing.
02The 8 layers
Each layer is named, scoped, and auditable. The pyramid below stacks them from L1 (foundation) to L8 (ecosystem). Click a layer to jump to its detail.
โณ โฑ โฒ โฑ L8 โฒ Ecosystem โ monorepo, Nix, fleet ops โฑโโโโโโโโโโฒ โฑ L7 โฒ Operations โ issues, security policy โฑโโโโโโโโโโโโโโฒ โฑ L6 โฒ Release โ semver, SBOM, signing โฑโโโโโโโโโโโโโโโโโโฒ โฑ L5 โฒ Docs โ landing, API ref, tutorial โฑโโโโโโโโโโโโโโโโโโโโโโฒ โฑ L4 โฒ Quality โ lint, types, security โฑโโโโโโโโโโโโโโโโโโโโโโโโโโฒ โฑ L3 โฒ Test โ unit, integration, e2e โฑโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฒ โฑ L2 โฒ Build โ lockfile, reproducible โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ L1 Hygiene โ license, README, git โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ FOUNDATION
Hygiene
Build
Test
Quality
Docs
Release
Operations
Ecosystem
03The 15 repos โ current state
Every repo in the Quilt ecosystem, audited against L1โL4. The score is a weighted average (25% per layer) of the four auditable layers. L5โL8 are tracked separately because they're harder to score numerically.
Status cells: โ = present and current ยท ~ = partial or stale ยท โ = missing.
| Repo | Type | License | CHANGELOG | CI | Tests | Examples | Score |
|---|---|---|---|---|---|---|---|
| quilt | TS core, monorepo | โ | โ | โ | โ (82) | โ | 9/10 |
| quilt-live | TS, single-file browser | โ | โ | โ | โ (146) | โ | 9/10 |
| quilt-rust | Rust, core bindings | โ | โ | โ | โ (68) | โ | 8/10 |
| quilt-cloudflare | TS, workers | โ | โ | โ | โ (5) | โ | 8/10 |
| quilt-ai | TS, model bridge | โ | โ | โ | โ (6) | โ (6) | 8/10 |
| quilt-evolve | TS, self-improve | โ | โ | โ | โ (13) | โ (3) | 8/10 |
| quilt-codespace | TS, Codespaces template | โ | โ | โ | ~ (smoke) | โ | 8/10 |
| quilt-time | TS, time-series | โ | โ | โ | โ (17) | โ | 7/10 |
| quilt-vault | TS, secrets | โ | โ | โ | โ (10) | โ | 7/10 |
| quilt-zk | TS, zero-knowledge | โ | โ | โ | โ (7) | โ | 7/10 |
| quilt-flow | TS, dataflow | โ | โ | โ | โ (8) | โ | 7/10 |
| quilt-agent | TS, agent class | โ | โ | โ | ~ | โ | 7/10 |
| quilt-mesh | TS, p2p mesh | โ | โ | โ | ~ | โ | 6/10 |
| quilt-vision | TS, vision bridge | โ | โ | โ | ~ | โ | 6/10 |
| quilt-esp32 | Rust, embedded (no_std) | โ | โ | โ | ~ (2) | โ | 6/10 |
The picture has lifted significantly. After the standards pass, all 15 repos now have LICENSE, CI, CODEOWNERS, SECURITY.md, Dependabot, and .editorconfig. The remaining gaps are real engineering work โ examples that work, examples that run, docs sites, signed releases. Those are L5-L6 and the 1-year bar.
04The top 10 improvements
Ranked by leverage โ repos affected divided by effort. Impact = repos touched. Effort = person-hours for a competent contributor.
Apache-2.0 LICENSE to 11 reposci.yml to all 15 reposCHANGELOG.md to 14 reposCODEOWNERS and SECURITY.md to 15 reposdependabot.yml per repo. Weekly group updates for npm + GitHub Actions. Dependabot opens the PRs; we just review and merge. Catches security advisories automatically.quilt corestrict: true, noUncheckedIndexedAccess: true, exactOptionalPropertyTypes: true. Fix what breaks. The core ships to the most users โ worth the one-time pain to make the types actually mean something.cargo clippy -- -D warnings in Rust reposexamples/* directory, installs deps, and runs the example. Fail CI if any example errors.quilt, quilt-live, quilt-rust, quilt-time, quilt-vault. Each gets a VitePress site with: landing, getting-started, API ref generated from TSDoc/rustdoc, a working tutorial, a changelog mirror. The others link to these.05L1 โ Hygiene
Foundation. The six files every repo must have. A repo that fails L1 can't be depended on, can't be vendored, can't be legally used. Tick the boxes below as you check each one off โ the score at the bottom updates live.
Hygiene
price of admission- LICENSE โ Apache-2.0 at the repo root. No exceptions, no "MIT for now". The full Apache-2.0 text, not a one-liner link.
- README โ badges (CI, npm/crates, license), one-paragraph "what is this", quick-start that runs in <5 minutes, 1โ3 code examples.
- CHANGELOG.md โ or
RELEASE-v*.mdnotes. "Keep a Changelog" format. One line per change is enough; just keep it current. - .gitignore โ language-appropriate, excludes
node_modules/target/.env/dist. Never commit a build artifact. - .editorconfig โ UTF-8, LF line endings, 2-space indent (4 for Python), trailing newline. Contributors with different editors produce the same diff.
- CODE_OF_CONDUCT โ or a link to the org-level one (Contributor Covenant is the default). A repo with no CoC is a repo where bad behavior becomes "the maintainer's problem" later.
06L2 โ Build
Reproducibility. A repo that builds differently on your machine than on mine is broken. L2 is about removing "works on my machine" as an acceptable answer.
Build
reproducible, single-command- Lockfile committed โ
package-lock.json,yarn.lock,pnpm-lock.yaml,Cargo.lock, orpoetry.lock. The lockfile is the build's memory; without it, "build" is a fresh guess every time. - Single command to build โ
npm run build,cargo build,make. The README's quick-start must end with this command. Nocd src && ./configure && make && make install. - Single command to test โ
npm test,cargo test,make test. One command, exit 0 = green, anything else = broken. - Reproducible builds โ Two clones on two machines produce byte-identical artifacts. Requires deterministic timestamps (
SOURCE_DATE_EPOCH), no embedded machine paths, no non-deterministic ordering. - Versioned (semver) โ Every release follows MAJOR.MINOR.PATCH. Breaking change = MAJOR bump. Version in the package manifest, in the tag, and (where the language allows) in the importable symbol.
- Pinned toolchain โ
.nvmrcwith the exact Node version,rust-toolchain.tomlwith the exact Rust channel,.python-versionfor pyenv,go.modwith the Go directive. Even a README line is better than nothing.
07L3 โ Test
Trust. A repo with no tests is a repo where every change is a roll of the dice. L3 is what turns "I think this works" into "CI says this works".
Test
unit, integration, e2e- Unit tests for every public function โ Every exported function has at least one test covering the happy path. Edge cases (empty, null, max-int) get tests too, but happy path is non-negotiable.
- Integration tests for cross-module flows โ Tests that touch two or more internal modules. Catches the bug where A and B both pass unit tests but together produce nonsense. Usually in
test/integration/. - End-to-end tests โ At least one test that exercises the repo as a black box โ runs the binary, calls the API, runs the CLI. Catches the bug where every unit test passes but the binary segfaults on startup.
- CI runs on every PR โ GitHub Actions (or equivalent). Runs lint + test on every push and PR. Required status checks prevent merge if CI is red.
- Coverage reported โ
nyc,cargo-tarpaulin,coverage.py, or language equivalent. Target 80% for core, 60% for adapters. Coverage is a smell-test, not a goal. - Smoke tests for binaries โ If the repo produces a binary (CLI, server, daemon), a CI job that downloads the build artifact, runs
--version, and exits cleanly. Catches the "succeeded but non-functional" build.
08L4 โ Quality
Discipline. A repo that builds and tests but emits 200 warnings and 47 TODOs is a repo that has stopped caring. L4 is what separates "works" from "is well-made".
Quality
lint, types, security, docs- Lint passes with zero warnings โ ESLint with
--max-warnings=0, Clippy with-D warnings,golangci-lint run --max-issues-per-linter=0. Warnings in CI block the merge. - Type check passes with strict settings โ TypeScript:
strict: true,noUncheckedIndexedAccess: true. Rust: deny onunsafe_codein the public API. Go:go vet+staticcheck. - No compiler warnings โ C++:
-Wall -Wextra -Wpedantic -Werror. C#: treat warnings as errors. If a warning can't be fixed, an explicit// ignore: reasoncomment, not silence. - No security advisories โ
npm audit/cargo audit/pip-auditclean. Dependabot enabled and not behind on updates. Critical and high CVEs fixed within 7 days. - Heavy header comments โ Every public file starts with a 5โ15 line block comment: what this file is, why it exists, what it depends on, who owns it. A maintainer can
catany file and know in 30 seconds. - Public API documented โ TSDoc / rustdoc / JSDoc / godoc on every exported symbol. One-line summary, parameters with types, return value, errors, 1-line example. No
/** TODO */stubs.
09The 1-year bar โ where we want to be
The audit is the floor, not the ceiling. The 1-year bar is what we hold ourselves to as a growing ecosystem. By the end of next year, every Quilt repo should pass the full L1โL8 audit.
-D warnings across the Rust. Zero-warning builds. Documented public APIs.The vision
By the end of next year, the Quilt ecosystem should be a peer to Rust, React, or Postgres in engineering quality. Not in users โ in the calm confidence a senior engineer feels when they git clone a Quilt repo, run the tests, read the docs, and ship a change without ever needing to ask permission.
10What done right is not
The bar is easy to mistake for a checklist of good feelings. It is not. It is a checklist of measurable things a new contributor can verify in an hour. The following are all things that look like progress and aren't.
"It builds and tests pass"
- That's L2 (and maybe L3)
- Says nothing about docs, examples, security, or how the next contributor gets unblocked
- "Passes" with 0% coverage is a coin flip
- A passing CI is the floor, not the ceiling
Hour-clock test passes
- Clone โ install โ test in <10 min
- README points to a working example
- Example runs in <5 min on a fresh machine
- Docs answer "where do I start?" in one sentence
- The next contributor can ship in <60 min total
- Not: "It has a fancy landing page." A landing page with no working example is L5 with no L3 โ it's marketing, not engineering. The first thing a contributor sees should be
git clone, not hero copy. - Not: "I rewrote it in Rust." A rewrite trades one set of maintenance costs for another, and unless the new implementation is also L1โL4 compliant, the rewrite reduces engineering quality. A TS repo that passes the bar is better than a Rust repo that doesn't.
- Not: "I added a logo." Decoration. The only thing a logo proves is that someone opened Figma. The bar measures whether a contributor can ship a change, not whether the repo looks good in a browser tab.
- Not: "It has a Discord." Community is downstream of the bar, not a substitute for it. People join Discords for repos that are worth depending on. Chasing the order is a fool's errand.
- Not: "Most of the warnings are pre-existing." There is no such thing as a "pre-existing" warning. Every warning in the codebase is a vote against the next contributor's time. The right number is zero.
The standard, restated
Clone, build, test, read docs, find an example, ship a change โ in under an hour. If any of those six steps takes longer than 10 minutes, the bar has been failed. There is no other metric. The hour is the metric.
11Score yourself
Tick the boxes in the L1โL4 sections above as you check each item off in your own fork. The bar compliance score updates live โ at 100%, your repo passes the L1โL4 audit and is eligible for the org-level quilt monorepo (L8).
Bar compliance ยท live
Until the score reads 100%, the repo is on the audit list and is reviewed against this bar on every quarterly cycle. The audit template lives at docs/audit-2026-q1.md in the org repo.
Where to go from here
Three doors, depending on what brought you here.