The constructor is workspace-scopedIt starts at face aggregate configs, follows project references, then admits canonical roots below packages.
Three gates can silently select nothing.
A package directory without face aggregates is an intentionally empty workspace.
TypeScript include patterns do not register packages. Parsed references do.
The canonical package root must live below workspace packages. External symlinks still fail.
Stage the package. Preserve the proof.
pin
→upstream commitstage
→packages/communitydiscover
→package + faceemit
exact file setValidate both directions.
Require exact exports and files entries for Host, Client, and Remote output.
A declared Typert surface with zero emitted artifacts must fail the build with discovery evidence.
Six release gates.
- 01The aggregate explicitly references the staged package config.
- 02The real package root passes workspace containment.
- 03Discovery returns the expected package and face.
- 04Generation returns the exact required artifact allowlist.
- 05The packed tarball preserves exports, files, and digests.
- 06A clean browser consumer crosses the generated strict Remote codec.
Primary evidence.
Make every generated byte reproducible.
The canonical guide includes the staging workflow, provenance record, manifest contracts, failure router, supported API proposal, and sixteen acceptance gates.
Read the complete guide