Metadata-Version: 2.5
Name: oak-understory-shared-engineering-bench
Version: 0.1.1
Summary: an Understory commons: shared discipline assets, no seat.
Requires-Python: >=3.13
Requires-Dist: cambium-ai<0.5,>=0.3
Requires-Dist: oak-understory-common<3,>=2
Provides-Extra: dev
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Description-Content-Type: text/markdown

# oak-understory-shared-engineering-bench

An Understory **commons**: shared discipline assets, no seat.

A commons is machinery several faculties use — the shared bench the engineering faculties are measured on. It holds no
constitutional power, fills no post, and never appears in `understory.toml`.

## ⭐⭐ The one thing a commons may NEVER do

**Hold a stoplist, or construct an `Expertise`.**

A stoplist is the DOMAIN IDENTITY. Two faculties that inherit one from a shared
package are, to the Scout, *the same domain* — so every "cross-domain" match
between them is a topic match. Nothing goes red, no test fails, and the run
answers a different question from the one that was asked. That is the failure this
whole engine exists to refuse, and it would arrive here disguised as reuse.

Enforced two ways, deliberately: the `commons_stoplist` check across the tree, and
this package's own suite walking every module from the inside — because a check
that runs in one place is a check somebody can move a file out from under.

⚠️ Note the asymmetry with `family`. `commons` is a SHARED-MACHINERY relation;
`family` is a TAXONOMIC one. Conflating them was a live bug — the console grouped
by `commons` and filed engineering under Biomedicine.

## Install

```sh
pip install oak-understory-shared-engineering-bench
```

Part of the OakQuant `oq-sync` set. See
`understory/docs/repositories-and-packaging.md` for where this package may live
and what it may import.
