fix
Fix MTHDS bundles
Automatically fix issues in MTHDS method bundles.
Process
Prerequisite: See CLI Prerequisites
Step 1: Validate and Identify Errors
Always use -L pointing to the bundle's own directory to avoid namespace collisions:
mthds-agent pipelex validate <file>.mthds -L <bundle-directory>/
Parse the JSON output:
- If
success: true— nothing to fix, report clean status - If
error_type: "ValidateBundleError"— iterate throughvalidation_errorsarray and fix each (Step 2) - If model/config error — see Error Handling Reference (cannot be fixed by editing the .mthds file)
Step 2: Fix .mthds Validation Errors
Use the error_type field from each validation error to determine the fix:
| Error Type | Fix Strategy |
|---|---|
missing_input_variable |
Add the missing variable(s) to the parent pipe's inputs line |
extraneous_input_variable |
Remove the unused variable(s) from the pipe's inputs line |
input_stuff_spec_mismatch |
Correct the concept type in inputs to match what the sub-pipe expects |
inadequate_output_concept |
Change the output field to the correct concept type |
inadequate_output_multiplicity |
Add or remove [] from the output concept |
circular_dependency_error |
Restructure the method to break the cycle |
llm_output_cannot_be_image |
Use PipeImgGen instead of PipeLLM for image generation |
img_gen_input_not_text_compatible |
Ensure PipeImgGen input is text-based (use ImgGenPrompt) |
invalid_pipe_code_syntax |
Rename the pipe to valid snake_case |
unknown_concept |
Add the concept definition to the bundle, or fix the typo |
batch_item_name_collision |
Rename input_item_name (or batch_as) to a distinct singular form of the list name. Also update the branch pipe's inputs to use the new item name. |
For error type descriptions, see Error Handling — Validation Error Types.
Step 3: Fix TOML Formatting Issues
These aren't always reported by validation but cause problems:
Multi-line inputs — must be on a single line:
# WRONG
inputs = {
a = "A",
b = "B"
}
# CORRECT
inputs = { a = "A", b = "B" }
Pipe ordering — controllers before sub-pipes:
# CORRECT: main pipe first, then sub-pipes in execution order
[pipe.main_workflow]
type = "PipeSequence"
steps = [
{ pipe = "step_one", result = "intermediate" },
{ pipe = "step_two", result = "final" }
]
[pipe.step_one]
...
[pipe.step_two]
...
Missing required fields — add with sensible defaults:
descriptionon every pipe and concepttypeon every pipeoutputon every pipe
Step 4: Re-validate
After applying fixes, re-validate:
mthds-agent pipelex validate <file>.mthds -L <bundle-directory>/
Continue the fix-validate loop until success: true is returned. Some fixes reveal new issues — for example, fixing a missing_input_variable may expose an input_stuff_spec_mismatch on the newly added input.
If the fix-validate loop gets stuck or errors are unclear, re-run with --log-level debug for additional context:
mthds-agent --log-level debug pipelex validate <file>.mthds -L <bundle-directory>/
Step 5: Report Results
- List all changes made (which pipes were modified and how)
- Show the final validation result
- Flag any remaining warnings or suggestions
Reference
- CLI Prerequisites — read at skill start to check CLI availability
- Error Handling — read when CLI returns an error to determine recovery
- MTHDS Agent Guide — read for CLI command syntax or output format details
- MTHDS Language Reference — read when writing or modifying .mthds TOML syntax
- Native Content Types — read when fixing type mismatches involving native concepts, to verify available attributes