Field note
How does the whole studio work on one real dataset?
Walk the fictional Northbank tree survey from a downloadable delimited file through dataset context, six field folios, a shared value set, the deterministic review, a reader review, a frozen edition and an exported handoff packet.
About this walkthrough
This page runs the whole studio once on the fictional Neighbourhood tree inventory that ships in the repository, and hands you the survey rows it was built from so you can import them and follow along station by station.
Everything in it is invented. There is no Northbank survey and no real tree, location, person or organisation is described. The dataset is small on purpose: six fields, one shared value set, one missing code, and two fields deliberately left in a needs-review state so that a clean-looking document and an honestly unfinished one can be compared side by side.
Start with the survey file
The file below is written by the studio's own CSV writer from the fictional Northbank survey, and this site does not build unless it parses back through the studio's own delimited importer and profiles to exactly the six field names, blank counts, primitive types and bounded distinct counts the sample documents. It is plain comma-separated UTF-8 text you can open in any editor.
Step 1: dataset context before columns
Open the Dataset context station first and write what one row is. The sample says: one record represents one observed tree within the fictional Northbank survey boundary. It adds a purpose, a collection period of 1 to 14 April 2026, a steward described as the inventory documentation lead, version 0.9 and a review cadence of once per field season.
Doing this before the columns is not a stylistic preference. A reader who does not know whether a row is a tree or an observation of a tree cannot correctly read any column in the file, and a definition written without that settled will quietly assume one of the two.
Step 2: import the structure
Open the Import structure station and load the downloaded file. The parser refuses anything it cannot read cleanly: unbalanced quotes, text after a closing quote, ragged rows, duplicate or empty headers and reserved names are errors rather than silent repairs. It then profiles what it can observe: for each of the six columns, the primitive types it saw, how many cells were blank, a bounded distinct count and a length range.
When profiling finishes the rows are released. The project keeps the field names and those bounded aggregates; it never stores a source record, and it will never offer to fill an example from your data.
Step 3: write the six folios
This is the part no import can do. tree_id is declared text with the identifier role, even though its values look numeric, because leading zeros matter and arithmetic on a key is meaningless. observed_on is a date with the date-time role. species_code is a text dimension carrying one missing code, UNK, with its own meaning. trunk_cm is a number measure with the unit centimetres and a definition naming the circumference and the survey team's stated measuring height.
condition is a text dimension bound to a shared value set. access_note is free text and is left marked needs-review, which is the honest state for a field whose content is whatever a field worker chose to write on the day.
Step 4: the value set
Open the Value sets station and build Tree condition categories: good meaning no issue recorded during the bounded visual observation, watch meaning a follow-up observation was requested, and unknown labelled Not rated. Each code carries both a label and a meaning, because good and watch on their own leave the threshold between them to the reader's imagination.
Bind the set from condition. Do not bind it from anything that merely sounds similar; a shared set means a later edit reaches every bound field at once.
Step 5: run the deterministic review
The review reports what a rule can genuinely see. On the sample it finds that access_note has no label and no definition, and that two fields remain in needs-review. It does not report that condition is fine, because it has no way to know whether two observers applied watch the same way.
Read each finding as a question for a person. Fix what is genuinely missing, and record why anything stays open.
Step 6: take two fields to a real reader
Open the Reader review station and pick condition and access_note, the two the lint could not judge. Ask somebody who did not write the dictionary to explain what watch means and when they would expect to see it, in their own words. If the answer is a paraphrase of the label, the definition has not worked yet.
Record the reader, the question, the result and the note. One clear result is bounded evidence about one reader, not a certification for every audience.
Step 7: freeze and hand it over
Freeze an edition at the Editions station. The studio takes a digest over the dataset context, the fields and the value sets as they stand, and the edition becomes read-only while the working project carries on. Later, the comparison view lists exactly what moved: fields added or removed, and authored properties such as label, definition, declared type, role, unit, required, status, value set, universe or derivation that now differ.
Then export the handoff packet. The reader page is a self-contained HTML document with no script, no tracking, no remote asset and no form action, carrying one card per field. Beside it are the machine-readable files, the findings, the review evidence, the editions, a continuation checkpoint, a manifest and a SHA-256 list.
What the finished dictionary is and is not
What you have is a portable, internally consistent account of what one row represents, what each field means, which values are allowed and what absence means, who owns each definition, what a real reader understood, and exactly which version was handed over. That is genuinely useful to somebody who receives the dataset six months from now with no access to whoever built it.
What you do not have is a verdict. Nothing here establishes that the definitions are true, that the data matches them, that the dataset is fit for an analysis, that a repository will accept it, or that any regulatory or privacy requirement is met. The studio formats what you wrote and points at what is missing. Every claim in the document is still yours.
What this does not do
- Nothing on this page certifies a dataset, a definition, a privacy posture or a repository submission.
- The studio wrote none of the six definitions; a person did, and a person has to.
- A frozen edition with a digest records a point in time. It is not an approval and not a signature.
Do this in the studio
Do the whole sequence once on the sample before you point the studio at a dataset you care about.
- Open the studio and load the Neighbourhood tree inventory sample.
- Work the stations in order, reading what each one actually stores.
- Freeze an edition, export the packet, and open the reader page with the studio closed.
Open the studio at the Overview station