# Team workflow: conventions and check profiles Several authors share one tree. These conventions keep parallel work from colliding: explicit imports repaired per package, the right check run for the job, and shared state left untouched. Every rule on this page is a **Team convention** (T): the team keeps it, the compiler does not enforce it. Marks follow the [topic legend](/corpus/#how-this-topic-marks-confidence). **Requires a source checkout:** the check script `verify/ci/run_all.sh` lives in the repository, and the commands below run from its root. ## Explicit imports, repaired per package New packages declare explicit intra-package imports, and the `use self` blocks are generated, not hand-written: the import-repair command regenerates them from the resolution journal. Run it per package, for packages you own. The workspace-wide forms would rewrite the blocks of every package in the tree — including other authors' uncommitted work — so in the shared tree they run only in check mode, never as a rewrite. **(T)** ## Which check run to use The shared check script offers three scopes. The plan listings below are verbatim excerpts of real `--plan` runs, which print the run plan without executing it. ### The ordinary run: core scope ```text $ sh verify/ci/run_all.sh --plan { "format": "law.core-profile-plan/1", "profile": "core", "corpus": "not_checked", "corpus_regeneration": false, "selected": [ "rust", "vectors", "differential", "ogpo" ], "partial": false, ``` The ordinary run checks the core: engine tests plus the fixed scenario set. The plan names four suites and reports the corpus as not checked — subject-matter packages are out of scope here by design, and a core change never obliges anyone to regenerate them. This is the default after an engine change. **(T)** ### Addressed runs: one suite, marked partial ```text $ sh verify/ci/run_all.sh --suite rust --plan { "format": "law.core-profile-plan/1", "profile": "core", "corpus": "not_checked", "corpus_regeneration": false, "selected": [ "rust" ], "partial": true, ``` A suite selector narrows the run to the named suites, and the report says `partial`. Use it for fast iteration on one area; the flag repeats for several suites. **(T)** ### The subject scope: active packages ```text $ sh verify/ci/run_all.sh --corpus --plan { "format": "law.work-profile-plan/1", "profile": "kz-ogpo-vts", "active": [ "kz.corpus.ogpovts", "w3c.wasm_core", "nr.electoral_act_2016", ... ``` The subject scope checks the active subject-matter packages from a private snapshot: it never touches the shared compiled outputs, lockfiles, or registries. Use it when the change is a subject-matter package. The full-corpus form runs only on explicit request — never unasked, and never as an automatic finish to unrelated work. **(T)** ## Leave shared state alone - Never shelve, reset, or discard files you do not own; compare against the base without touching the tree. - Never rewrite published history. - Never regenerate shared compiled outputs, lockfiles, or registries as a side effect of a check run. - Frozen packages report as not checked rather than passing; do not edit their sources or expectations to turn a report green. ## Where to go next - [A package in the corpus](/tutorials/package/) — the per-package habits: manifest, scenarios, provenance, checks. - [N. Package, context, snapshots, case, result, and test](/recipes/n-package/) — the case-work recipes these conventions protect. - [**Packages, cases, and worlds**](/corpus/model/) — the architecture the check scopes are drawn around.