Project configuration
A SEK project is a directory containing a .specexplorerkit/config.json descriptor.
It tells sek where the model assembly, Cord scripts, optional SUT binding, and
output directory are.
Schema
{
"model": { "assembly": "Model/bin/Debug/net10.0/Model.dll", "type": "MyApp.MyModel" },
"cord": "Model",
"binding": { "assembly": "Adapter/bin/Debug/net10.0/Adapter.dll", "namespace": "Adapter" },
"out": ".specexplorerkit/out"
}
| Field | Required | Meaning |
|---|---|---|
model.assembly |
for model-mode | path (relative to the project dir) to the built model assembly |
model.type |
for model-mode | fully-qualified model type deriving from ModelProgram |
cord |
yes | directory (or file) containing the .cord script(s) |
binding.assembly |
for sek test |
path to the adapter/SUT assembly |
binding.namespace |
for sek test |
namespace exposing one method per action label |
out |
optional | output directory for .seexpl files (default .specexplorerkit/out) |
Model mode vs behavior mode
- If
model.typeis set,sek exploreruns in model mode — it loads the model assembly and explores the model program. - If
model.typeis empty (or absent), machines are explored in behavior mode — pure Cord behavior over abstract actions, no model assembly needed (as in the Operators sample).
Paths
All paths are resolved relative to the project directory (the folder passed via
--project, or the current directory). Use forward slashes; they work on all
platforms.
Assembly loading
When loading the model (and binding) assemblies, SEK adds their directories to the
resolver so their dependencies load too. If a model depends on another project's
output (e.g., an adapter that references a shared library), make sure both bin
directories are present after build.
Example: the Account sample
{
"model": { "assembly": "Model/bin/Debug/net10.0/Model.dll", "type": "AccountSample.AccountModel" },
"cord": "Model",
"out": ".specexplorerkit/out"
}
Example with a binding (conformance)
{
"model": { "assembly": "Model/bin/Debug/net10.0/Model.dll", "type": "MyApp.MyModel" },
"cord": "Model",
"binding": { "assembly": "Adapter/bin/Debug/net10.0/Adapter.dll", "namespace": "Adapter" },
"out": ".specexplorerkit/out"
}
Related
- CLI reference
- Guide: Running conformance