Appendix A. Quick Reference Index
Version: v0.3-current Last Updated: 2026-05-10
Quick lookup index for Culsma source forms, contracts, diagnostics, and conformance evidence. Chapter citations in the rightmost column own detailed rules.
The matrix is divided by language layers. Layer names identify rule ownership, not implementation module layout.
A1. Source and Frontend Resolution
Source-unit structure and names available before core contract checking:
| Area | Surface form / item | Purpose | Key fields or constraints | Detailed reference |
|---|---|---|---|---|
| Source file | include "path.culs"; | Load another source file. | Path names another source unit. | Chapters 3, 4, 5 |
| Library import | import Module; | Make a library module available by name. | Module name enters the active namespace. | Chapters 3, 4, 5 |
| Protocol declaration | protocol name(...) returns (...) { ... } | Define a callable protocol. | Parameters, optional defaults, optional named returns, body. | Chapters 3, 4, 5, 6 |
| Protocol reference | Module.Protocol(arg0, k = v, ...); | Call or inline another protocol through the plan/reference mechanism. | Target must resolve in the active program namespace; named arguments are preferred. | Chapters 3, 5, 8, 9 |
| Protocol include | include ProtocolName; | Include a visible protocol body in the planning context. | Legacy source form; resolution rules are shared with protocol references. | Chapters 3, 4, 5, 9 |
A2. Core Language and Compile-Time Forms
Ordinary protocol-body forms, local bindings, and values that must be decidable before execution:
| Area | Surface form / item | Purpose | Key fields or constraints | Detailed reference |
|---|---|---|---|---|
| Local binding | let x = expr; | Create a protocol-local binding. | New local name, expression value. | Chapters 4, 5, 11 |
| Local assignment | x = expr; | Update an existing protocol-local binding. | Does not mutate material state. | Chapters 4, 5, 11 |
| Result-field assignment | data.result.field = expr; | Update an allowed result field path. | Restricted member path; type checks apply. | Chapters 4, 5, 11 |
| Return | return expr; / return out = expr, ...; | Define protocol output values. | Return value or named return bindings. | Chapters 4, 6, 9 |
| Conditional | if expr { ... } else { ... } | Select a branch from a decidable condition. | Condition must be decidable at the relevant stage. | Chapters 4, 9, 11 |
| Repeat loop | repeat expr { ... } | Repeat a block by count or supported schedule. | Repeat expression or schedule-like source form. | Chapters 4, 6, 9, 11 |
| Loop control | continue; / break; | Continue or exit the nearest repeat block. | Only valid inside repeat. | Chapter 4 |
| Marker set | markers([CD3, CD19]); | Declare a controlled marker set. | Marker item list; marker names are not hardcoded by core grammar. | Chapters 4, 6, 11 |
| Data schema | data_schema(label = "X", fields = [...]); | Declare allowed result fields for open result objects. | Label and field-name list. | Chapters 4, 6, 11 |
| Schema reference | schema_ref = schema_name | Attach a declared result shape to readout/data-producing calls. | Must refer to a declared schema binding. | Chapters 6, 11 |
A3. Domain Call Contracts and Material Behavior
Source-facing domain calls and their material-state effects or constraints:
| Area | Surface form / item | Purpose | Key fields or constraints | Detailed reference |
|---|---|---|---|---|
| Container constructor | container(...), tube(...), well(...), chamber(...), surface(...) | Allocate a logical container or surface. | Container kind, label/spec/capacity/metadata, optional load. | Chapters 4, 6, 7, 11 |
| Plate descriptor | plate(...) | Declare a plate/carrier descriptor used by selectors. | Format or rows/cols, optional carrier metadata. | Chapters 4, 6 |
| Content constructor | content(...), blood(...), reagent(...), buffer(...) | Declare content descriptors for constructor/load boundaries. | kind, type, code, name, attrs; family constructors may inject compatibility/default metadata. | Chapters 4, 6, 7, 8, 11 |
| Mutation | target << [sources...]; | Move, merge, or collect material into a target container/group. | Target, source list, full or quantified transfer style, optional series mapping. | Chapters 4, 6, 7, 8, 11 |
| Agitation | agit(sample = ..., mode = ..., ...) | Apply mixing/agitation behavior to an existing container or group. | Sample, mode, duration/rate/cycles as allowed by the mode. | Chapters 4, 6, 8, 9, 11 |
| Environment scope | with env(...) { ... } | Apply physical environment context to enclosed steps. | Thermal/field/duration/targets and related constraints. | Chapters 4, 6, 8, 9, 10, 11 |
| Requirement scope | with constraint(...) { ... } | Apply device-independent execution requirements. | Requirement names/options; customized form uses schema_ref. | Chapters 4, 6, 8 |
| Separation | sep(sample = ..., program = ...) | Perform a binary separation and return a stable group. | Sample container, sep mechanism program, optional source-retention behavior where allowed. | Chapters 4, 6, 7, 8, 11 |
| Fractionation | frac(sample = ..., program = ...) | Perform ordered fractionation and return an indexed group. | Sample container, frac mechanism program, ordered bins behavior. | Chapters 4, 6, 7, 8, 11 |
| Readout | img(...), ecp(...), phy(...) | Produce observation/data references without material deltas. | Sample, quantity, optional schema_ref; grouped input returns grouped data. | Chapters 4, 6, 9, 11 |
| Unit stream | stream(sample = x, unit = single_cell, panel = p); | Convert a macro sample handle into a unit stream handle. | Sample, unit, optional marker panel. | Chapters 4, 6, 9, 11 |
A3.1 Content Taxonomy Quick Lookup
This table summarizes the canonical content taxonomy defined in Chapter 6. Chapter 6 remains the detailed contract owner.
kind | canonical type values |
|---|---|
bio_entity | organism, organ, tissue, other_bio_entity |
bio_fluid | whole_blood, plasma, serum, buffy_coat, urine, saliva, lymph, cerebrospinal_fluid, tears, semen, ascites, synovial_fluid, bronchoalveolar_lavage_fluid, other_body_fluid |
bio_cellular | cell_line, primary_cells, cell_population, microbial_cells, other_cellular_material |
bio_subcellular | organelle, membrane, vesicle, cytoskeletal_structure, other_subcellular_structure |
bio_molecule_or_virus | dna, rna, protein, virus, other_biomolecule_or_virus |
chemical | organic_compound, inorganic_compound, solvent, detergent, dye, other_chemical |
particulate | beads, resin, particle, other_particulate |
formulation | medium, buffer, supplement, master_mix, gradient_medium, other_formulation |
attrs.role is the role field. It is not a top-level content argument. Use the appropriate canonical other_* type plus attrs for uncommon material identities that are not listed explicitly.
A4. Execution Pipeline and Derived Data
Execution-facing values, programs, and upper-layer workflow entry points above the core source forms:
| Area | Surface form / item | Purpose | Key fields or constraints | Detailed reference |
|---|---|---|---|---|
| Data reference | data_ref / data_group_ref | Represent readout or derived data outputs. | Result payload is not a material container. | Chapters 6, 9, 11 |
| Schedule-like control | schedule(...) when accepted by loop/control contracts | Represent repeat/control timing where supported. | Discrete or time-based scheduling constraints. | Chapters 4, 6, 9, 11 |
| Thermal program | thermal_program(...) | Represent programmatic thermal control. | Used by environment and workflow-level thermal control contracts. | Chapters 6, 11 |
| Mechanism programs | centrifuge_program(...), filtration_program(...), density_gradient_program(...), etc. | Parameterize sep or frac mechanisms. | Program family must match the consuming operator. | Chapters 6, 8, 11 |
| Stdlib portal | Incubate(...), Lyse(...), ExtractDNAPrecipitation(...), etc. | Standard-library workflow entry points. | Portals lower to core language contracts. | Stdlib Portals, Chapters 6, 8, 9 |
A5. Diagnostics and Conformance Evidence
Cross-cutting checks and evidence requirements:
| Area | Surface form / item | Purpose | Key fields or constraints | Detailed reference |
|---|---|---|---|---|
| Diagnostics | SEM_*, TYPE_*, PLAN_*, RT_*, MAT_*, LOAD_*, LIB_* | Diagnostic code families. | Representative codes may be mentioned elsewhere; complete definitions live in Chapter 8. | Chapter 8 |
| Conformance | mapped conformance tests and evidence bundles | Show that an implementation conforms to the baseline. | Evidence categories, change-management rule, and required coverage. | Chapter 12 |
Reading Order
- Start with Chapter 4 for the source form a user can write.
- Use Chapter 6 for operator names, arguments, returns, and constructor field contracts.
- Use Chapter 5 for name resolution and protocol binding.
- Use Chapters 7, 8, 9, 10, and 11 for runtime material behavior, diagnostics, execution, configuration, and type/unit rules.
- Use Chapter 12 for conformance evidence and release-gate coverage.
