#01 bar#02 8 layers#03 15 repos #04 top 10#05 L1#06 L2 #07 L3#08 L4#09 1-year #10 not#11 score

The Quilt Engineering Bar

What "done right" means for every repo in the Quilt ecosystem. Not marketing. Not aspiration. A working checklist a contributor can run through on a Tuesday afternoon.

Done right means a new contributor can clone, build, test, read docs, find an example, and ship a change in under an hour. Everything else is decoration.

โ€” the bar, in one sentence
8 layers15 repos audited top 10 fixes1-year target Apache-2.0
View Audit โ†“ Read the Bar โ†“ Open on GitHub โ†’

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
L1

Hygiene

LICENSE, README, CHANGELOG, .gitignore, .editorconfig, CODE_OF_CONDUCT โ€” the price of admission.
L2

Build

Lockfile, single command to build, single command to test, reproducible, versioned, pinned toolchain.
L3

Test

Unit tests for every public function, integration tests for cross-module flows, e2e in CI, coverage reported.
L4

Quality

Lint passes with zero warnings, strict types, no compiler warnings, no advisories, public API documented.
L5

Docs

Landing page, full API reference, working tutorial, every public function has a docstring with example.
L6

Release

Strict semver, signed tags, generated SBOM, changelog auto-derived from commits, deprecation policy.
L7

Operations

Triage rotation, security advisory process, monthly release cadence, public roadmap, RFC process.
L8

Ecosystem

Cross-repo monorepo build, Nix flake, fleet-wide CI, shared release tooling, internal package registry.

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.

RepoTypeLicenseCHANGELOGCITestsExamplesScore
quiltTS core, monorepoโœ“โœ“โœ“โœ“ (82)โœ“9/10
quilt-liveTS, single-file browserโœ“โœ“โœ“โœ“ (146)โœ“9/10
quilt-rustRust, core bindingsโœ“โœ“โœ“โœ“ (68)โœ“8/10
quilt-cloudflareTS, workersโœ“โœ“โœ“โœ“ (5)โœ“8/10
quilt-aiTS, model bridgeโœ“โœ“โœ“โœ“ (6)โœ“ (6)8/10
quilt-evolveTS, self-improveโœ“โœ“โœ“โœ“ (13)โœ“ (3)8/10
quilt-codespaceTS, Codespaces templateโœ“โœ“โœ“~ (smoke)โœ“8/10
quilt-timeTS, time-seriesโœ“โœ“โœ“โœ“ (17)โœ—7/10
quilt-vaultTS, secretsโœ“โœ“โœ“โœ“ (10)โœ—7/10
quilt-zkTS, zero-knowledgeโœ“โœ“โœ“โœ“ (7)โœ—7/10
quilt-flowTS, dataflowโœ“โœ“โœ“โœ“ (8)โœ—7/10
quilt-agentTS, agent classโœ“โœ“โœ“~โœ“7/10
quilt-meshTS, p2p meshโœ“โœ“โœ“~โœ—6/10
quilt-visionTS, vision bridgeโœ“โœ“โœ“~โœ—6/10
quilt-esp32Rust, 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.

1
Add Apache-2.0 LICENSE to 11 repos
Four repos have it. The other eleven need the standard Apache-2.0 file at the root. 30-second copy-paste per repo and the single highest-leverage change in the audit โ€” without it, none of the repos can be safely depended on by external code.
11 repos~1 hour11ร—
2
Add ci.yml to all 15 repos
Every repo needs a GitHub Actions workflow that runs lint + test on every PR. The same template works for all of them. Without CI, every PR is a coin-flip on whether it broke anything.
15 repos~4 hours4ร—
3
Add CHANGELOG.md to 14 repos
One repo has one. The "Keep a Changelog" format is fine. A single sentence per release is enough; perfection is the enemy of done. Without a changelog, users have no way to know what changed.
14 repos~4 hours3.5ร—
4
Add CODEOWNERS and SECURITY.md to 15 repos
CODEOWNERS auto-assigns reviewers by path. SECURITY.md tells researchers how to report vulnerabilities responsibly. Both are org-level files โ€” write once, copy to every repo.
15 repos~2 hours7.5ร—
5
Add Dependabot to 14 TS repos
A single dependabot.yml per repo. Weekly group updates for npm + GitHub Actions. Dependabot opens the PRs; we just review and merge. Catches security advisories automatically.
14 repos~3 hours4.7ร—
6
Strict TypeScript across quilt core
Turn on strict: 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.
1 repo, ~50k LOC2โ€“3 dayshigh
7
cargo clippy -- -D warnings in Rust repos
quilt-rust and any future Rust crates. Clippy is the strictest linter in the ecosystem; treating warnings as errors in CI is the only way to actually fix them. Zero-warning Rust is a competitive advantage.
2 repos~1 dayhigh
8
Cross-reference audit
Every repo should link to the other 14 in its README. Every example should link back to a doc. Every doc should link to a runnable example. The result is a mesh where you can hop from any artifact to any related one in two clicks.
15 repos~1 day5ร—
9
Verify all examples run in CI
An example that doesn't run is worse than no example โ€” it teaches by negative example. The fix: a CI step that walks every examples/* directory, installs deps, and runs the example. Fail CI if any example errors.
all repos~1 weektrust
10
VitePress docs sites for top 5 packages
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.
5 packages~2 weeksecosystem

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.

L1

Hygiene

price of admission
A repo that can't be legally used, can't be found, and can't be understood is not a repo โ€” it's a folder. L1 is the absolute minimum a contributor needs before they can do anything useful.
  • 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*.md notes. "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.

L2

Build

reproducible, single-command
Builds that take more than one command, require unstated global tools, or produce different output on different days are not builds โ€” they're ceremonies. L2 forces the build to be a function: same inputs, same outputs, every time.
  • Lockfile committed โ€” package-lock.json, yarn.lock, pnpm-lock.yaml, Cargo.lock, or poetry.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. No cd 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 โ€” .nvmrc with the exact Node version, rust-toolchain.toml with the exact Rust channel, .python-version for pyenv, go.mod with 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".

L3

Test

unit, integration, e2e
Tests are the contract between the maintainer and the contributor. Without them, every PR is a debate about whether it broke something. With them, the debate is settled by CI in 90 seconds. The goal isn't 100% coverage โ€” it's confidence.
  • 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".

L4

Quality

lint, types, security, docs
Warnings rot. The day a maintainer merges a PR with 3 new warnings "to fix later" is the day the warning count stops meaning anything. L4 forces the count to zero and keeps it there.
  • 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 on unsafe_code in 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: reason comment, not silence.
  • No security advisories โ€” npm audit / cargo audit / pip-audit clean. 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 cat any 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.

โ†’
L1โ€“L3 by next month
License, CHANGELOG, CI, CODEOWNERS, Dependabot, and the test infra across all 15 repos. Mostly mechanical.
+1 month
โ†’
Cross-reference audit + example-CI
Every example runs in CI. Every repo links to every other relevant repo. Every doc links to a runnable example.
+2 months
โ†’
L4 by Q1 2027
Strict TypeScript across the core. Clippy -D warnings across the Rust. Zero-warning builds. Documented public APIs.
Q1 2027
โ†’
L5 โ€” VitePress docs for the top 5
quilt, quilt-live, quilt-rust, quilt-time, quilt-vault. Landing, getting-started, API ref, tutorial, changelog.
Q2 2027
โ†’
L6 โ€” release engineering
Signed tags. Generated SBOM. Automated release notes. Deprecation policy. Monthly release cadence.
Q3 2027
ยท
L7โ€“L8 โ€” operations & ecosystem
Triage rotation, security advisory inbox, public roadmap, RFC process. Cross-repo monorepo build via Nix, fleet-wide CI, shared release tooling, internal package registry.
Q4 2027

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.

Not this

"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
This

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

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

L1 Hygiene0 / 6
L2 Build0 / 6
L3 Test0 / 6
L4 Quality0 / 6
0%
Start checking items above

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.