Open Trust Commons · OTCS

OTCS-0006 — Project families: one project, several artifacts, honest counts

Class: model_revision · Clock: 45–90 days · Earliest decision: 2026-09-14

Provenance

Two sources, converging.

A design test. A prospective subject with a constitution, a standard, a runtime engine, and predecessor concepts was walked through the registry shape as a dry run. Under the current schema those would become four or five registered projects — inflating every count the gates depend on — or one record that flattens the differences between a specification, an implementation, and a superseded idea.

The registry's own first records. ktp, ktp-demo and abt are a family already: one body of work, three records. QUALIFYING-PROJECTS.md §3 refuses to count several versions of one project separately — but that rule exists only at the counting layer. Nothing in a record states the family, so the counting rule works by maintainer judgement rather than by structure. The founder's own records are the first honest test case, which is the right place to make a structural change before any third party registers.

The defect

The schema can say a project was forked from, superseded by, or depends on another. It cannot say:

The consequences run in both directions. A project with many artifacts either inflates counts or flattens itself. And a reader cannot tell a standalone project from a component that only makes sense inside its family.

What this proposal adds

1. The family block

family:
  umbrella: <project-id>          # the family's primary record; self for the umbrella
  role: umbrella | component | predecessor
  component_kind: specification | implementation | runtime | demo |
                  dataset | evaluator | paper | other     # components only
  status_in_family: active | incorporated | superseded    # predecessors only

2. The counting rule becomes structural

QUALIFYING-PROJECTS.md §1 gains one condition and §3 loses a judgement call:

A family counts as one qualifying project — the umbrella, if it qualifies. Components and predecessors never count separately, whatever their individual states.

roadmap:status computes this from the family block rather than from anyone's opinion about which records are "really" one project.

3. What a family is not

Impact on existing records

ktp becomes the umbrella; ktp-demo declares component / demo; abt remains standalone (it is a distinct method, not a KTP component — and if that judgement is wrong, the dispute process is the right place to say so). The measured count does not change — 1 qualifying project before, 1 after — which is the point: the structure now says what the count already assumed.

Alternatives considered

Phase history

phasedate
SEED2026-07-31
DRAFT2026-07-31

Objections

none recorded

Ballots

none cast

Decision

No decision record exists — the clock binds the founder or it binds nobody.