Wetware World

Format reference

Acceptance criteria

What a criterion carries, the assay it names, the sampling plan and decision rule behind it, the result row that answers it, the disposition derived from that row, and the yield reported across a lot.

Statistics
9
Comparators
6
Assay terms
13
Diagnostics
46

Definition

An acceptance criterion in WWD is the obligation a lot is released against. Every criterion MUST carry an immutable UUID, an optional human tag, a title, a target, a measurand, a statistic, a comparator, a limit or expected category, a method, a criticality and a provenance, and it MUST declare which causal axis it tests. The Core statistic vocabulary is closed to value, mean, median, sd, cv, proportion, count, min and max. The Core comparator vocabulary is closed to >=, <=, range, equals, negative and pass. Criticality is critical, major or minor. A criterion MAY carry a sampling plan and a decision rule of kind point_estimate, test, confidence_bound or tolerance_interval. A criterion names an assay method, and where that method is a term of the Core assay registry the registry fixes the quantities it measures and the conditions the criterion MUST state. Acceptance criteria belong to the design. Every measured result references exactly one criterion UUID, is stated in the unit the criterion names, and reports the statistic the criterion constrains. A consumer recomputes satisfaction from the measured value, the comparator and the limit, and MUST NOT rely on a recorded status. Lot disposition is derived from the recomputed verdicts, and a yield statement identifies the criterion it summarises.

A criterion is the obligation a supplier accepts and the rule a lot is released against. It states one measurand, one statistic over that measurand, one comparator and one limit, under a named method with stated conditions. A location requirement and a dispersion requirement are separate linked criteria, so median force >= 500 uN and cv <= 0.20 are two criteria rather than one compound statistic.

Acceptance criteria belong to the design. Measured results belong to identified realizations. A package with no measured results is as-designed; a package with one or more is as-built in addition to carrying its unchanged design. Mode is derived as as_built := measured_results is nonempty and a hand-authored mode flag is refused. A library MUST NOT declare acceptance criteria, realizations or measured results.

The parts of a criterion

What the specification requires and what it permits.

Criterion structure, WWD 0.1 section 15.1
Key Status Carries Constraint
idMUSTImmutable UUID, unique within the package.It changes when measurand, target, statistic, comparator, limit, sampling population or decision rule changes materially, and a superseded identifier is not reused.
tagMAYHuman-readable label such as AC-001.Wording, tag and method metadata may be clarified without changing the identifier.
titleMUSTThe name of the requirement.Median twitch force, Alignment floor, Culture age at ship.
targetMUSTWhat the criterion applies to.A component or region identifier, such as region/active.
measurandMUSTThe quantity and its unit.On a registered property the unit is the registered canonical unit.
statisticMUSTThe sample statistic the limit constrains.Closed to value, mean, median, sd, cv, proportion, count, min, max.
comparatorMUSTThe relation between statistic and limit.Closed to >=, <=, range, equals, negative, pass.
limitMUSTThe threshold, or the expected category.A range limit is an object with low and high. A pass or negative comparator carries a method decision instead of a number.
methodMUSTThe assay and its stated conditions.A functional value without its assay method and conditions is invalid.
criticalityMUSTcritical, major or minor.Disposition policy identifies which levels govern pass, conditional release or rejection.
provenanceMUSTWhere the target value came from.Declared as for any other assertion in the package.
tests_axisMUSTcontrol or response.A criterion on a control asks whether the protocol was executed as written. A criterion on a response asks whether the biology delivered.
samplingMAYThe sampling plan.Sample size n, sampling unit, source population or lot, selection method, stratification, replacement policy, destructiveness, independent_batches.
populationMAYThe elements the statistic is computed over.States what it is a population of, and either that it includes every element or the inclusion rule that selects them.
decision_ruleMAYHow the comparison is decided.point_estimate, test, confidence_bound or tolerance_interval. The default is point_estimate.

Criteria are closed objects. A misspelled key is indistinguishable from an omitted one, so a criterion carrying smapling in place of sampling states no sample size. An unknown key inside a criterion, a sampling plan, a decision rule, a field, a biological population, a realization or a measured result is reported as K01_UNKNOWN_KEY.

A criterion identifier remains unchanged when wording, tag or method metadata is clarified without changing the acceptance proposition. It changes when measurand, target, statistic, comparator, limit, sampling population or decision rule changes materially, and a superseded identifier is not reused. Changing an acceptance limit is a semantic revision.

Statistical form

Statistic, comparator, limit, sample size, decision rule.

The statistic vocabulary is closed to value, mean, median, sd, cv, proportion, count, min, max. The comparator vocabulary is closed to >=, <=, range, equals, negative, pass. A numeric comparator carries dimensionally compatible limits. A range comparator declares inclusive or exclusive endpoints. A negative comparator identifies what analyte, organism, event or signal must be absent and by what detection method. A pass comparator references a method with an explicit pass decision.

Where the measurand is a registered property, its unit is the registered canonical unit, and a criterion stated in a unit that does not express its quantity kind is refused. A proportion or yield limit lies within the closed interval [0, 1]. A limit on a non-negative quantity is not negative. An order-parameter limit lies within [0, 1]. A range declares a low bound not greater than its high bound, and a range of zero width is written with the equals comparator instead.

Decision rules, WWD 0.1 section 15.3
KindWhat it decidesDeclares
point_estimateThe default rule.Compares the declared sample statistic directly with the criterion limit.
testA statistical test.Declares null and alternative hypotheses, alpha, sidedness, and algorithm or standard. Also declares a sample size, without which it can be neither executed nor reproduced.
confidence_boundA bound on a parameter.Declares confidence level, sidedness, parameter and method. A confidence interval MUST NOT be labeled a tolerance interval.
tolerance_intervalAn interval covering a stated share of the population.Declares population coverage, confidence, sidedness and method. Also declares a sample size. A specification interval MUST NOT be labeled a confidence or tolerance interval.
Sampling and execution, WWD 0.1 sections 15.2, 15.4 and 15.6
RuleRequirementReading
Sampling unitA plan supporting mean, median, sd, cv, proportion or yield MUST declare its sampling unit from the Core vocabulary or a namespace-qualified term.n = 6 is not a sample size until the document says six of what. Six constructs, six image fields of one construct and six electrodes of one well are three different experiments.
Independent batchesA plan SHOULD declare independent_batches: how many independently produced groups the units were drawn from.Where a test or tolerance_interval rule is applied to units from a single batch, a consumer MUST report the pseudo-replication.
Shared specimensA criterion referring to the same specimens as another MUST reference that criterion or a shared sampling plan.Separate criteria MAY share specimens, method and raw data.
StandardsA plan based on ISO 2859, ISO 3951, ANSI/ASQ Z1.4 or another standard MUST identify the standard version and required parameters.An AQL value MUST NOT be represented as a guaranteed lot defect fraction.
ExecutionA criterion sampling plan MUST be executed as stated, and a result reporting fewer specimens than the plan requires MUST be refused.A producer who measured fewer specimens amends the plan and records the amendment.
Observed sizeA result reporting a distributional statistic MUST state n_observed.Without it a reader cannot distinguish a median of one specimen from a median of a hundred.
SufficiencyA sample size MUST be sufficient for the statistic it supports.A standard deviation or coefficient of variation over a single specimen is zero by construction.
AttainabilityA decision rule MUST be attainable at the sample size declared.For a one-sided sign test the most extreme outcome has probability 2 to the power minus n under the null. At alpha 0.05 this requires at least five specimens, at 0.01 at least seven.
Location and dispersionA location and dispersion requirement MUST be represented as separate linked criteria.median force >= 500 uN and cv <= 0.20 are two criteria, not one compound statistic. A conjunction or disjunction of criteria MUST be explicit.

The named assay

What a criterion method carries, and what the registry requires of a Core term.

A criterion names an assay method. A functional value without its assay method and conditions is invalid, and the criterion identifies the environmental, culture, stimulation, preload, timing and analysis conditions that materially affect the measurement. WWD 0.1 publishes a Core assay registry at registry/core-assays.json, normative for the terms it lists.

A registered assay term fixes the quantities it measures and the conditions that must be stated for two results under it to be comparable, and it fixes whether it requires a fixture and whether it requires a declared analysis population. A method identifier in the wwd.assay: namespace that is not in the registry is refused. A producer needing an assay the registry does not define namespaces it as an extension term or uses an unqualified local identifier, which claims nothing and is checked against nothing. The seven example packages use local identifiers such as WWD-TWITCH-001 and WWD-MEA-001.

Where the method names a registered assay, every condition the assay requires is present in the criterion conditions, the measurand is one of the quantities the assay measures, a required fixture names a component of kind device, and a required analysis population is declared. A population states what it is a population of and either that it includes every element or the inclusion rule that selects them. An inclusion rule stated only as a name is not a rule. A registry addition is additive; adding a required condition to an existing term is a redefinition and requires a new term.

Core assay registry, 13 terms
Assay term Measures Quantity kind Unit Fixture Population Required conditions
wwd.assay:electrode_impedance_spectroscopy wwd:electrode_impedance impedance kohm required required frequency, electrolyte, amplitude
wwd.assay:flow_cytometry_purity wwd:purity, wwd:viability fraction 1 no required marker_panel, gating_strategy, instrument, isotype_control
wwd.assay:force_transducer wwd:peak_twitch_force, wwd:tetanic_force, wwd:passive_tension force uN required no temperature, stimulation_frequency, stimulation_pulse_width, preload, medium
wwd.assay:image_cell_density wwd:seeding_density_areal, wwd:capillary_density areal_density cells/mm2, 1/mm2 no required stain, objective, field_area, software
wwd.assay:mea_burst_analysis wwd:burst_rate, wwd:network_burst_rate, wwd:network_burst_participation event_rate, fraction 1/min, 1 required required temperature, medium, recording_duration, sampling_rate, filter_band, spike_threshold, burst_detector, burst_parameters
wwd.assay:mea_spike_rate wwd:mean_firing_rate, wwd:active_electrode_fraction frequency, fraction Hz, 1 required required temperature, medium, recording_duration, sampling_rate, filter_band, spike_threshold
wwd.assay:mycoplasma_pcr wwd:mycoplasma categorical 1 no no kit, target, positive_control
wwd.assay:optical_contraction_tracking wwd:unloaded_shortening, wwd:contraction_frequency, wwd:spontaneous_beat_rate, wwd:time_to_peak_force, wwd:half_relaxation_time ratio, frequency, signal_duration 1, Hz, ms no no temperature, frame_rate, medium, software
wwd.assay:pillar_deflection_force wwd:peak_twitch_force, wwd:tetanic_force, wwd:passive_tension force uN required no temperature, stimulation_frequency, stimulation_pulse_width, medium
wwd.assay:shear_rheometry wwd:ecm_stiffness, wwd:substrate_modulus modulus kPa no no temperature, matrix_concentration, strain_amplitude, frequency
wwd.assay:sterility_culture wwd:microbial_growth categorical 1 no no media, incubation_temperature, incubation_duration
wwd.assay:structure_tensor_alignment_2d wwd:fiber_alignment, wwd:cell_alignment order_parameter 1 no no stain, objective, measurement_plane, window_size, software
wwd.assay:viability_dye_exclusion wwd:viability fraction 1 no required dye, counting_method

The Core registries in full

The result row

How a measurement is written into a package and linked to its criterion.

Every measured result has an identifier and references exactly one acceptance criterion UUID, which resolves within the package design context. A criterion may have zero, one or many measured results. Appending measured results does not mutate the criteria. A retest is a distinct result and does not erase the original. A result correction preserves revision history and provenance.

Keys of a measured result, WWD 0.1 section 16
KeyCarriesConstraint
idIdentifier for the result.Every measured result MUST have one.
criterionThe criterion UUID this result answers.Exactly one, resolving within the package design context. A dangling reference is a hard error.
statuspass, fail, marginal or not_evaluated.A claim, not evidence. A consumer recomputes satisfaction and uses the recomputed result.
value and unitThe number and the unit it is stated in.A result MUST be stated in the unit its criterion names. Where the units differ, the consumer refuses the comparison rather than converting.
statisticThe statistic reported.It MUST be the statistic the criterion constrains. A median and a mean are different claims about the same specimens.
n_observedThe observed sample size.Required for a distributional statistic, and checked against the plan.
provenance and causal_rolemeasured, and control or response.A result MUST NOT copy a simulated value into the measured-results collection.
realization or specimensWhat was observed.The realization references the exact component design revision realized and declares its identifier scheme.
timestamp and observation_activityWhen, and the activity that produced the number.A result MUST identify both.
computed_bySoftware, algorithm and standard or method.Required where the result is a derived statistic.
raw_dataA link to the evidence.Raw and processed data SHOULD be linked separately.
instrumentThe apparatus reading the number.Carried alongside the method fixture the criterion names.

A criterion and the row that answers it

Taken from muscle-strip-asbuilt.wwd.

criterion AC-001wwd/design.json
{
  "id": "3f7c2a9e-51b4-4c1e-9a77-0d2f8e6b1c44",
  "tag": "AC-001",
  "title": "Median twitch force",
  "target": "region/active",
  "measurand": {
    "quantity": "peak_twitch_force",
    "unit": "uN"
  },
  "statistic": "median",
  "comparator": ">=",
  "limit": 500,
  "criticality": "critical",
  "tests_axis": "response",
  "method": {
    "id": "WWD-TWITCH-001",
    "protocol_ref": "protocol/twitch.md",
    "conditions": {
      "temperature_c": 37,
      "stimulus_hz": 1,
      "preload_mn": 0.5
    }
  },
  "sampling": {
    "unit": "construct",
    "n": 12,
    "selection": "random",
    "destructive": true
  },
  "decision_rule": {
    "kind": "test",
    "alpha": 0.05,
    "sided": "one",
    "note": "one-sided sign test, H0: median < 500 uN"
  }
}

A median over twelve randomly selected constructs, at or above 500 uN, decided by a one-sided sign test at alpha 0.05. The sampling unit is the construct and the test is destructive. Twelve specimens clear the attainability floor of five for that alpha.

result mr-0001wwd/results.json
{
  "id": "mr-0001",
  "criterion": "3f7c2a9e-51b4-4c1e-9a77-0d2f8e6b1c44",
  "status": "pass",
  "value": 612,
  "unit": "uN",
  "statistic": "median",
  "n_observed": 12,
  "provenance": "measured",
  "causal_role": "response",
  "observation_activity": "activity/twitch-assay",
  "raw_data": "data/twitch.csv",
  "instrument": {
    "id": "inst-01",
    "description": "TA.XTplusC, probe P/0.25S"
  },
  "computed_by": {
    "software": "wwd-qc 0.4.1",
    "algorithm": "numpy.median",
    "decision": "scipy sign test, p=0.011 < alpha=0.05"
  }
}

612 uN, the same statistic and the same unit as the criterion, over the twelve specimens the plan required. The row also carries a timestamp. The recorded status is recomputed from 612 uN against >= 500, so the pass is derived rather than trusted.

muscle-strip-asbuilt.wwd, criteria and the rows that answer them
Tag Title Requirement Criticality Axis Observed n Status
AC-001 Median twitch force median >= 500 uN critical response 612 uN 12 pass
AC-002 Twitch force consistency cv <= 0.2 1 major response 0.14 1 12 pass
AC-003 Alignment floor median >= 0.65 1 major response 0.71 1 5 pass
PC-001 Gel stiffness compliance value range 11.0 to 13.0 kPa major control 12.4 kPa - pass

Three criteria on the response axis and one on the control axis. PC-001 is a range on gel stiffness read by rheometry: it asks whether the protocol was executed as written, against a designed value of 12 kPa. The yield statement covers AC-001, with 12 of 12 units meeting it. Context carried alongside the results: wwd:donor_id, wwd:passage_number.

neurontile-asbuilt.wwd, criteria and the rows that answer them
Tag Title Requirement Criticality Axis Observed n Status
NT-001 Active electrode fraction proportion >= 0.8 1 critical response 0.87 1 60 pass
NT-002 Mean firing rate floor median >= 0.1 Hz critical response 3.1 Hz 52 pass
NT-003 Network burst rate median >= 0.0167 Hz critical response 0.11 Hz - pass
NT-004 Network burst participation proportion >= 0.25 1 critical response 0.62 1 60 pass
NT-006 Culture age at ship value range 28 to 35 d critical control 30 d - pass

Five criteria, four on the response axis and one on the control axis. The yield covers NT-001, with 7 of 8 units meeting it. Context carried alongside: wwd:source_line, wwd:days_in_vitro.

Disposition

The vocabulary, and how a lot verdict is derived.

A recorded verdict is a claim. A consumer recomputes the satisfaction of every acceptance criterion from the measured value, the comparator and the limit, and does not rely on a recorded status. Where a recorded status disagrees with the recomputed verdict, the consumer reports the disagreement and uses the recomputed result. A result stated in a unit other than the one its criterion names is refused rather than converted.

Overall disposition is derived from criteria and results and is not stored as an independent fact. The rule is fixed by the specification and is not configurable by a producer. A producer MUST NOT claim all specifications passed when any governing criterion is failed or unevaluated unless the release policy explicitly permits and records the exception. Disposition policy identifies which criticality levels govern pass, conditional release or rejection.

Disposition vocabulary
ValueScopeMeaning
passresultThe value satisfies the comparator against the limit.
failresultThe value does not satisfy the comparator against the limit.
marginalresultThe result is recorded as borderline against its criterion.
not_evaluatedresultThe criterion was not answered by this result.
passlotEvery governing criterion is answered and satisfied on the recomputed numbers.
conditionallotA failing non-critical criterion. The lot is released only where policy permits and records the exception.
faillotA failing critical criterion fails the lot.
incompletelotA critical criterion is unanswered. It MUST NOT be presented as a pass.
not_evaluatedlotNo results are present, so the package is as-designed rather than as-built.

Yield

How many units met a named criterion.

A yield statement identifies the criterion it summarises and carries the number of units tested and the number meeting it. The fraction is units meeting over units tested. A yield MUST NOT claim that more units met a criterion than were tested and MUST NOT report a yield over zero units. Where a yield states both counts and a fraction, the fraction MUST agree with the counts. A yield MUST NOT be computed over fewer units than the plan requires, and MUST agree with the sample size reported by the corresponding measurement.

yieldmuscle-strip-asbuilt.wwd
{
  "criterion": "3f7c2a9e-51b4-4c1e-9a77-0d2f8e6b1c44",
  "units_tested": 12,
  "units_meeting": 12
}

Twelve of twelve against AC-001. The counts are stated and the fraction is derived from them, so there is one number in the file rather than two that can drift apart.

What the validator refuses

Code, trigger, and the change the writer makes.

Acceptance diagnostics, 46 codes
Code Severity Trigger Change
R01_NO_IDERRORA criterion carries no immutable id, or two criteria share one.Give each criterion a UUID unique within the package.
R01_NO_METHODERRORA criterion names no assay method.Name the method. A force number without a test method is uncomparable between two suppliers.
R02_NO_MEASURANDERRORThe criterion states no measurand, or the measurand names no quantity.State the quantity and its unit. The quantity decides which assay answers the criterion.
R02_NO_LIMITERRORA comparator other than pass or negative carries no limit.State the threshold. A criterion with no threshold can never fail.
R02_BAD_LIMITERRORThe limit is not a number, or a range limit is not an object carrying low and high.Give a numeric threshold, or a range object with both bounds.
R02_BAD_STATISTICERRORstatistic is outside the closed Core vocabulary.Use one of value, mean, median, sd, cv, proportion, count, min, max.
R02_BAD_COMPARATORERRORcomparator is outside the closed Core vocabulary.Use one of >=, <=, range, equals, negative, pass.
R02_BAD_CRITICALITYERRORcriticality is outside the Core set.Use critical, major or minor.
R03_BAD_DECISION_RULEERRORdecision_rule names a kind outside the Core set.Use point_estimate, test, confidence_bound or tolerance_interval.
R03_NO_ALPHAERRORA decision rule of kind test declares no alpha.Declare the significance level.
R03_INTERVAL_CONFLATEDERRORA decision rule of one kind carries a label naming another.A confidence interval is not a tolerance interval. Label the rule with its kind.
R03_CONVENIENCE_SAMPLEERRORA test or tolerance_interval rule sits on a plan whose selection is convenience.Use random, systematic or stratified selection, or downgrade the rule to point_estimate.
A8_CRITERION_NO_AXISERRORA criterion has no tests_axis key.Add tests_axis: control or response.
A8_CRITERION_BAD_AXISERRORtests_axis holds a value other than control or response.Set tests_axis to control or response.
U01_CRITERION_UNIT_MISMATCHERRORA criterion on a registered property is stated in a unit other than the registered canonical unit.Restate the criterion in the canonical unit.
U02_DIMENSION_MISMATCHERRORThe unit does not express the quantity kind, or a dimensionless statistic carries a dimensional unit.Use a unit expressing the quantity kind. A coefficient of variation and a count take unit 1.
U03_IMPOSSIBLE_LIMITERRORA proportion limit outside [0, 1], a negative limit on a non-negative quantity, a negative cv limit, an order-parameter limit outside [0, 1], or a range low above its high.State the limit within the range the statistic and the quantity admit.
U04_DEGENERATE_RANGEERRORA range whose low and high are equal.Use the equals comparator where exact equality is intended, or widen the range.
S01_IMPOSSIBLE_SAMPLEERRORThe plan states n = 0, or fewer specimens than the statistic requires.Raise n. A standard deviation or cv over one specimen is zero by construction.
S02_UNATTAINABLE_POWERERRORA one-sided test cannot reach the stated alpha at the stated n.Raise n to the smallest size at which the rule can reject the null.
S03_RULE_WITHOUT_PLANERRORA test or tolerance_interval rule declares no sample size.State sampling.n.
S04_NOT_EXECUTEDERRORA result reports zero specimens, fewer than the plan requires, or too few to define the statistic.Measure the planned sample, or amend the plan and record the amendment.
S05_NO_SAMPLE_SIZEERRORA result reports a distributional statistic and states no n_observed.State n_observed.
S06_YIELD_UNDER_PLANERRORThe yield reports fewer units tested than the plan requires, or disagrees with the corresponding measurement.Compute the yield over the planned units and reconcile it with the result.
S07_NO_SAMPLING_UNITERRORA plan supporting a distributional statistic declares no sampling unit.Declare sampling.unit, such as construct, well, electrode or image field.
S08_PSEUDOREPLICATIONERRORA test or tolerance_interval rule is applied to units drawn from a single batch.Draw from independent batches, or declare independent_batches and downgrade the rule.
Y01_UNREGISTERED_ASSAYERRORA method identifier in the wwd.assay: namespace is not in the Core assay registry.Register the assay, namespace it as an extension, or use an unqualified local identifier.
Y02_ASSAY_CONDITION_MISSINGERRORA registered assay requires a condition the method does not state.Add the condition to method.conditions.
Y03_POPULATION_UNDECLAREDERRORThe assay or the measurand requires a stated analysis population and none is declared.Declare population with the rule selecting the elements the statistic is computed over.
Y04_ASSAY_WRONG_MEASURANDERRORThe named assay does not measure the criterion measurand.Name an assay that measures the quantity, or change the measurand.
Y05_NO_FIXTUREERRORA registered assay requires a fixture and the method names none.Name a component of kind device.
Y06_FIXTURE_NOT_A_DEVICEERRORThe named fixture is not a component of kind device in this package.Carry the instrument as a device component and point the fixture at it.
Y07_POPULATION_NO_RULEERRORA declared population does not say what it is a population of, or states neither completeness nor an inclusion rule.State of, and either all: true or the inclusion rule.
R04_DANGLING_CRITERIONERRORA measured result references a criterion that does not exist.Point the result at an existing criterion UUID.
R05_NO_OBSERVATIONERRORA result identifies no observation activity, or a design with criteria carries no measured results.Add observation_activity, or record the measurements.
R05_RESULTS_INVALIDERRORThe results document, measured_results or a row within it is the wrong shape.Carry measured_results as an array of objects, each with at least an id, a criterion and a value.
R07_CRITICAL_UNEVALUATEDWARNINGA critical criterion has no measured result.Measure it, or expect an incomplete disposition.
M01_RESULT_UNIT_MISMATCHERRORThe result unit differs from the criterion unit.Restate the result in the unit the criterion names. The validator does not convert.
M02_STATISTIC_MISMATCHERRORThe result reports a statistic other than the one the criterion constrains.Report the statistic the criterion names.
M03_VERDICT_CONTRADICTEDERRORThe recorded status disagrees with the value, comparator and limit.Correct the status or the value. The recomputed verdict is used either way.
M04_IMPOSSIBLE_YIELDERRORThe yield claims more units meeting than tested, or reports zero units tested.Correct the counts, or omit the yield.
M05_YIELD_NO_CRITERIONERRORThe yield statement names no criterion.Name the criterion the yield summarises.
M05_YIELD_DANGLINGERRORThe yield names a criterion not in the package.Point the yield at an existing criterion.
M06_YIELD_FRACTION_DISAGREESERRORA stated fraction disagrees with the counts.State the counts and let the fraction be derived.
R06_AUTHORED_MODE_FLAGERRORThe package carries a hand-written as-built flag.Remove it. Mode is derived as measured_results is nonempty.
F09_SIMULATED_AS_MEASUREDERRORA result with provenance simulated sits in measured_results.Move the value to a simulation result linked to its run.

The test suite carries vectors for these paths, among them invalid-criterion-no-axis.wwd, invalid-criterion-no-method.wwd, invalid-criterion-wrong-unit.wwd, invalid-impossible-sample.wwd, invalid-impossible-yield.wwd, invalid-result-unit-mismatch.wwd, invalid-unit-not-canonical.wwd and invalid-convenience-sample-with-test.wwd.

Questions

What must an acceptance criterion carry?

An immutable UUID, an optional human tag, a title, a target, a measurand, a statistic, a comparator, a limit or expected category, a method, a criticality and a provenance. It MUST also declare tests_axis, control or response. A criterion MAY carry a sampling plan and a decision rule. The reference validator reports a criterion with no id as R01_NO_ID, no measurand as R02_NO_MEASURAND, no limit as R02_NO_LIMIT and no method as R01_NO_METHOD.

Why does a criterion name an assay rather than a bare number?

The specification states that a functional value without its assay method and conditions is invalid, and that a criterion MUST identify the environmental, culture, stimulation, preload, timing and analysis conditions that materially affect the measurement. Where the method names a Core assay term, the registry fixes the quantities that assay measures and the conditions that MUST be stated for two results under it to be comparable. A force from pillar deflection is the deflection multiplied by the post bending stiffness, so the registry entry marks the fixture as required.

What statistics and comparators does Core allow?

The statistic vocabulary is closed to value, mean, median, sd, cv, proportion, count, min and max. The comparator vocabulary is closed to >=, <=, range, equals, negative and pass. A numeric comparator carries dimensionally compatible limits. A range comparator declares inclusive or exclusive endpoints and a low bound not greater than its high bound. A negative comparator identifies what must be absent and by what detection method. A pass comparator references a method with an explicit pass decision.

How does a measured result link back to its criterion?

Every measured result carries an identifier and references exactly one acceptance criterion UUID, which MUST resolve within the package design context. A dangling criterion reference is a hard error, reported as R04_DANGLING_CRITERION. The result states status, value, statistic, unit, observed sample size, uncertainty where available, the realization or specimens observed, a timestamp and an observation activity. A derived statistic identifies software, algorithm and standard or method.

What are the disposition values?

A measured result identifies status as pass, fail, marginal or not_evaluated. Lot disposition is derived from the recomputed verdicts: a failing critical criterion fails the lot, a failing non-critical criterion yields a conditional disposition, and an unanswered critical criterion yields an incomplete disposition, which MUST NOT be presented as a pass. The disposition rule is fixed by the specification and is not configurable by a producer.

How is yield computed across a lot?

A yield statement carries units_tested, units_meeting and the criterion it summarises. It MUST NOT claim that more units met a criterion than were tested and MUST NOT report a yield over zero units. Where it states both counts and a fraction, the fraction MUST agree with the counts. A yield MUST NOT be computed over fewer units than the plan requires and MUST agree with the sample size reported by the corresponding measurement. In muscle-strip-asbuilt.wwd the yield is 12 of 12 units against criterion AC-001; in neurontile-asbuilt.wwd it is 7 of 8 against NT-001.

Can a criterion be unsatisfiable?

The specification refuses several forms. A criterion on a registered property MUST use the registered canonical unit, and a criterion stated in a unit that does not express its quantity kind MUST be refused. A proportion or yield limit MUST lie within [0, 1]. A limit on a non-negative quantity MUST NOT be negative. A range whose bounds are equal demands exact equality and is refused in favour of the equals comparator. A one-sided sign test at alpha 0.05 requires at least five specimens and at 0.01 at least seven, because the most extreme possible outcome occurs with probability 2 to the power minus n under the null.

Where do criteria and results live in a package?

Acceptance criteria belong to the design and sit in acceptance_criteria in design.json. Measured results belong to identified realizations and sit in measured_results in results.json, alongside the realization, the context block, the yield statement and the provenance graph. Appending measured results MUST NOT mutate acceptance criteria. Mode is derived as as_built := measured_results is nonempty and MUST NOT be authored as a flag.

Continue

Related pages.