Write Another Form
Ask for the Builder or Low-level form of a blueprint when the model needs Python, such as a payload function, or SimPy itself. An assistant with the skill writes a form that gives the same records as the blueprint, and checks that it does.
Ask
What the Assistant Does
The skill gives the assistant the rules that keep the forms equal:
- A time in YAML and in the Builder takes a unit. The Low-level
DistributionConfigtakes seconds only, so the unit goes in a comment. - The Low-level form draws each time through
sampler.sample(env.registry.get_config("<sim_id>.<path>")), as the YAML does, so it draws the same numbers at the same seed. - Builder and Low-level code use only the names
from desflow import ...gives, never a private attribute. - A Python file runs with
python <file>and prints its records withConsoleEgress(format="json").
Then it runs the skill's check on the three files. The check runs each form at the model's seed and the two after it, and compares every record with the YAML's:
Each line is a check that passed. A failed check names the file and line, and what to write instead. seed and start time fails on a model without a fixed logical_start_time, because the timestamps of two runs then differ, so the drafted shop sets one.
Full Files
The three forms of the shop from Draft a Model. Writing a Model explains how the three ways relate.