mirror of
https://github.com/mvschwarz/openrig.git
synced 2026-10-16 04:59:39 +08:00
FR-1 (A1-amended): test:workspaces enumerates the blocking set readably (daemon + cli + tui); NEW advisory test:ui runs packages/ui vitest at will. lint/build/build:package/test/test:repo byte-untouched — UI typecheck and the shipped UI dist stay blocking. FR-2: docs/reference/developing.md created — gates/lanes table, the no-UI- sync norm verbatim (hooks mirrors unmaintained; a test:ui failure = moved API contract signal, not a broken gate), the wording rule (experimental / maintenance mode / best-effort / CLI primary — never 'deprecated'; zero 'deprecated' hits grep-proven). FR-3: the diff is EXACTLY two files (root package.json + the new doc); no doctor/bundling/ui.enabled/build-package/starter-skill changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
40 lines
1.7 KiB
Markdown
40 lines
1.7 KiB
Markdown
# Developing OpenRig — gates and lanes
|
|
|
|
This is the contributor-facing statement of which checks BLOCK a change and which are
|
|
advisory. There is no external CI at this tip: the root `package.json` script chain IS
|
|
the gate, and the release checklists invoke it.
|
|
|
|
## Blocking gates (must pass before a candidate moves)
|
|
|
|
| Gate | Command | Covers |
|
|
|---|---|---|
|
|
| Typecheck | `npm run lint` | daemon + **ui** + cli + tui tsconfigs — UI typecheck STAYS blocking |
|
|
| Build | `npm run build` | all workspaces — the UI dist ships in the package, so its build STAYS blocking |
|
|
| Repo scripts | `npm run test:repo` | script self-tests, docs guard, skill mirror check |
|
|
| Unit tests | `npm run test:workspaces` | `packages/daemon` + `packages/cli` + `packages/tui` |
|
|
|
|
`npm test` runs `test:repo` and `test:workspaces` — the blocking set is readable in the
|
|
script itself.
|
|
|
|
## Advisory lane
|
|
|
|
| Lane | Command | Meaning |
|
|
|---|---|---|
|
|
| UI unit tests | `npm run test:ui` | runs `packages/ui` vitest at will; NOT part of `npm test` |
|
|
|
|
## The norm (web-UI freeze at 0.5.0)
|
|
|
|
Daemon API changes no longer require UI sync or UI verification; the contract mirrors
|
|
under `packages/ui/src/hooks/` are no longer proactively maintained; a new `test:ui`
|
|
failure signals a moved API contract, not a broken gate.
|
|
|
|
Browser/interaction testing of the web UI is not a contributor gate. (The packaged
|
|
starter-rig agent skills that exercise the UI are product content for user rigs, not
|
|
part of this repo's gates.)
|
|
|
|
## Wording rule
|
|
|
|
The web UI is **experimental**, in **maintenance mode**, supported **best-effort**;
|
|
**the CLI is primary**. There is no scheduled removal and PRs are welcome. Do not
|
|
describe the UI with stronger end-of-life language than this section uses.
|