Use when the user wants to define one OpenUSim experiment and converge on a runnable experiment specification before any generation or execution.
Turn one natural-language OpenUSim goal into one stable experiment-spec.md.
Only solve one blocking planning slot per turn, but make sure topology shape and routing intent are explicit before handoff. Unless the user explicitly asks to preconfigure TP mappings, default on-demand transport_channel_mode behavior is acceptable.
Do not use this skill to verify repo startup or to interpret completed run results.
Output one line (using user's language) telling the user about the planning process, then bind the user-provided facts and ask for the next input. Follow the steps below:
broad, , or .semi-specifiedreference-basedgoaltopology_shape — validate parameter constraints from topology-options.md immediately (e.g. host_num % leaf_sw_num == 0); reject invalid values before proceedingrouting_intentworkload — for non-builtin workloads, follow the custom-traffic-skeleton decomposition steps in workload-options.mdnetwork_overrides — verify parameter keys exist in the runtime catalog; for enum parameters, verify values against the catalog description or C++ source (see spec-to-toolchain.md "Parameter value validation boundary"); warn the user if a value cannot be confirmedobservabilityapproval_ready1/2/3/4 choices only when they help the user decide.YYYYMMDD-<semantic-name> (e.g., 20260322-clos-32hosts-bw-test), form path as scratch/{case_name}/
b. Create case directory if not exists
c. Use Write tool to create {case_dir}/experiment-spec.md (template: ../openusim-references/spec-rules.md)
d. Verify spec completeness (use Read tool, check all required sections exist)
e. Announce handoff readiness ("Spec written at {case_dir}/experiment-spec.md, ready to hand off to run stage")custom-graph or a supported family.All experiment cases are created under scratch/ with the following naming convention:
scratch/YYYYMMDD-<semantic-name>/
YYYYMMDD: Date stamp (e.g., 20260322)<semantic-name>: Short semantic description (e.g., clos-32hosts-bw-test, ring-8nodes-a2a)Examples:
scratch/20260322-clos-32hosts-bw-test/scratch/20260322-ring-8nodes-a2a/The experiment-spec.md is written inside this directory: scratch/YYYYMMDD-<name>/experiment-spec.md
This {case_dir} is passed to openusim-run-experiment for generation and execution.
Stay in this skill when:
Hand off to openusim-run-experiment when:
{case_dir} determined){case_dir} (full path to case directory under scratch/)Before handoff, ensure {case_dir}/experiment-spec.md exists on disk with all required sections from ../openusim-references/spec-rules.md. The file must contain:
custom-graph realization factson-demand, unless the user explicitly asked for preconfigured TP mappings)Return to openusim-welcome when:
openusim-welcome, openusim-analyze-resultsopenusim-run-experimentopenusim-welcome../openusim-references/topology-options.md../openusim-references/workload-options.md../openusim-references/spec-rules.md../openusim-references/spec-to-toolchain.md../openusim-references/topology-options.md../openusim-references/workload-options.md../openusim-references/spec-rules.md../openusim-references/spec-to-toolchain.mdcustom-graph.transport_channel.csv even though the default path should stay on-demand unless they explicitly want fixed TP mappings.--mtp-threads as core experiment-definition slots.host_num % leaf_sw_num == 0 for clos-spine-leaf).custom-traffic-skeleton in workload-options.md provides a concrete decomposition path.