This repository is the source of truth for the LVBT repository standard: the shape every Las Vegans for Better Transit repository has, the commands it answers to, and the rules it checks. It follows Turborepo conventions throughout, so nothing here is specific to LVBT except the rules themselves.
It owns four things:
- the shared packages every repository depends on:
@lasvegasfortransit/eslint-config,@lasvegasfortransit/typescript-config,@lasvegasfortransit/prettier-config,@lasvegasfortransit/vitest-config,@lasvegasfortransit/web-platform, and@lasvegasfortransit/cli(the shared commands, setup, checks, audits, web releases, git hooks, andlvbt-contributionsagent plugin); - the example repositories under
examples/that generate the published repository templates; - the GitHub issue forms and pull request template published by
LasVegasForTransit/.github; - the default-branch ruleset applied to every active organization repository.
Press Use this template on the template that matches what the repository ships: template-basic for libraries, CLIs, and Workers; template-with-astro for an Astro site; template-with-vite-react for a Vite and React application. Or, from a terminal:
gh repo create LasVegasForTransit/<your-repo> --template LasVegasForTransit/template-basic --public --clone
cd <your-repo>
pnpm bootstrap
pnpm checkEach template is published from the matching directory under examples/ here on every release. The
publication workflow vendors the exact tagged lvbt-web preset and points the shared package
dependencies at that local snapshot, so a fresh repository installs without registry credentials.
Inside a repository, pnpm standards:update --release <tag> --apply reviews and applies a newer
standard, and turbo gen workspace scaffolds a new package or app.
Follow the shared developer workflow: bootstrap, develop, check, pull request, staging, then explicit saved-artifact production promotion. Local setup requires no publishing credentials. The command reference defines the interfaces; repositories add application configuration and product checks through the supported extension points.
Guides, the command reference, and the package reference are in docs/.
Pull requests lead with the outcome for a person using the product, then explain the material
behavior or trade-off in complete prose. Follow-ups name unfinished product or reliability
objectives rather than repository chores. Conventional feat titles are reserved for capabilities
people can use or observe; internal groundwork uses a more precise type.
Commit scopes are optional and repository-owned. Every repository declares its durable boundaries in
.lvbt/commit-scopes.txt; the shared validator reads that file for both
commit hooks and pull-request titles. A cross-boundary change omits its scope; a feature name, file
name, task name, or contributor role is never a scope.
Run the complete local check with:
pnpm checkIt formats, lints, and runs every test under tests/, including one that copies each example into a
temporary directory and proves it passes its own checks with the shared packages. This repository
consumes its own packages and hooks.
TransitMapper is the reference consumer. Repository scopes are complete local policy: the shared
tooling supplies the subject grammar and enforcement path, not an organization-wide domain
vocabulary. A repository that needs to weaken another shared contribution rule requires a documented
exception in standards/repositories.json.