| name | vibeflow-case-dict |
| description | Use when eliciting VibeCAE requirements, creating, editing, explaining, validating, or extending VibeFlow 0-caseDict/caseDict, mapping user intent to a solver-neutral physical/numerical problem definition, deciding whether a case may advance to geometry, mesh, run, postprocess, or report, and recording unresolved questions, decisions, assumptions, artifacts, and error status in the single source of truth. |
VibeFlow Case Dict
0-caseDict/caseDict is the single source of truth for VibeFlow/VibeCAE parameters. Its core is a unified physical and numerical problem description, not fields organized around any specific software package. Geometry, mesh, solve, post-processing, reporting, and error localization must all be traceable to it. Except for toolchain configuration, no stage may advance independently by bypassing caseDict.
When to Use
- The user has just proposed a new case, and natural language needs to be converted into a structured case definition.
0-caseDict/caseDict needs to be created, completed, explained, validated, or refactored.
- The current stage is blocked and requires follow-up questions about geometry, materials, regions, interfaces, boundaries/loads/initial conditions, mesh, numerical methods, execution, post-processing, or report evidence.
- User intent needs to be mapped to
physicalProblem, materials, boundariesLoadsInitials, mesh, numericalMethod, execution, or a workflow stage.
- Assumptions, user decisions, open questions, artifact paths, error status, and permission to enter the next stage need to be recorded.
- A
caseDict section needs to be explained, including how to fill it and how complete it must be.
What to Read First
- Current case:
0-caseDict/caseDict
- Template source of truth:
StandardCase/0-caseDict/caseDict
- Project-wide rules:
AGENTS.md
- Field guide and stage gates:
references/case-dict-field-guide.md
Invariants
- Preserve parameters the user has already specified explicitly; new content must be traceable to a user, paper, tutorial, CAD source, assumption, or generated artifact.
- Do not fabricate unconfirmed critical values; write them into
intent.openQuestions, mark the relevant fields with confirmed false, and ask using the standard follow-up template.
- Write every physical assumption, engineering simplification, and default choice back to
intent.primaryAssumptions, intent.decisionLog, or provenance.assumptions/decisions.
- Write every blocking error into
errors.entries and update errors.summary; when blocking=true or status=open/investigating, the next stage must not advance.
- Do not write local absolute paths, temporary commands, or one-off shell state into
caseDict; use relative artifact paths such as A-geo/*.step.
- After modification, use an OpenFOAM dictionary syntax checker when possible, or review the text to confirm that braces, semicolons, and comment structure remain intact.
Standard Workflow
- Read the user request,
0-caseDict/caseDict, and, when needed, materials in Ref/ plus StandardCase/0-caseDict/caseDict.
- Determine the current stage:
intent, geometry, mesh, run, post, or report.
- Compare against the stage gates to find gaps, filling only the high-risk fields that must be stable for the current stage.
- For values that can be inferred from sources of truth, write the fields and mark the source; for values that cannot be inferred and would block progress, ask using the standard template.
- Synchronize related sections:
caseMeta, intent, physicalProblem, geometry, materials, regions, interfaces, boundariesLoadsInitials, mesh, numericalMethod, execution, postProcessing, report, provenance, errors, and extensions.
- State whether the next stage may be entered; if not, specify what is missing, what it affects, and which skill should take over.
Stage Gates
- Entering geometry:
caseMeta.dimensions, physicalProblem, geometry.sourceType/generator/topology, geometry.parameters, geometry.coordinateSystem, and geometry.entities are sufficiently clear.
- Entering mesh:
geometry.artifacts, geometry.entities, regions, interfaces, boundariesLoadsInitials.boundarySets, and mesh.meshSource/topology/elementFamilies/qualityTargets are sufficiently clear.
- Entering run:
physicalProblem, materials, regions, interfaces, boundariesLoadsInitials, mesh.artifacts, numericalMethod, and execution are sufficiently clear; software-specific inputs are generated from these unified fields.
- Entering post: usable results exist in
C-run or the target execution directory, and postProcessing.objectives/dataExtraction/visualization/artifacts are sufficiently clear.
- Entering report:
report.sections is clear, and upstream key figures, tables, logs, parameters, and limitations are traceable.
Standard Follow-Up Template
When missing information blocks the current stage, use the following format item by item:
Parameter name:
- Purpose:
- Explanation:
- Recommendation:
Error Recording
When an error or risk is found, write it into errors.entries.error_NNNN, including at least:
title, stage, category, severity, status, blocking
detectedBy, command or stage action, logFile or evidence path
message, suspectedCause, relatedCaseDictPaths, relatedArtifacts
fixOptions, selectedFix, userConfirmationRequired
- After fixing, add
resolution, verifiedBy, verificationLog, and regressionCheck
Output Requirements
- Updated
0-caseDict/caseDict or a clear patch plan.
- Current stage, next stage, ready flags, and blockers.
- Newly added/modified fields and the reasons.
- If progress cannot continue, explain the missing parameters, impact scope, and which skill should handle the next step.
Handoff Rules
- Dimension semantics, physical models, materials, or boundary/load/initial-condition targets are unclear: stay with this skill.
- Geometry parameters are sufficient: hand off to
vibeflow-geometry.
- Geometry artifacts and naming are stable: hand off to
vibeflow-mesh.
- Mesh and boundaries are usable: hand off to
vibeflow-openfoam.
- Solver results are available: hand off to
vibeflow-postprocess.
- Evidence is complete: hand off to
vibeflow-report.