Linter Rules Reference
ModelScript ships 804 diagnostic rules across 43 languages. This page is generated from each language's rule catalog (for example languages/modelica/src/errors.ts), so codes, severities and message templates match what the tools report. Text in <angle brackets> is filled in from your model.
Running the linters
Diagnostics appear as you type in VS Code and the web IDE through the language server. From the command line:
# Languages handled by the unified linter (detected by file extension)
msx lint ./models
msx lint ./models --format json --strict
# Domain formats with their own command
msx spice lint SensorFrontEnd.netThe CLI column below shows which command reports each language's rules.
Rule index
| Language | Package | Rules | CLI |
|---|---|---|---|
| ModelScript | @modelscript/modelscript | 10 | Language server / API |
| Modelica | @modelscript/modelica | 307 | msx lint |
| SysML v2 / KerML | @modelscript/sysml2 | 48 | msx lint |
| ReqIF | @modelscript/reqif | 10 | msx reqif lint |
| SSP | @modelscript/ssp | 14 | msx lint |
| OWL2 | @modelscript/owl2 | 24 | msx lint |
| STEP (ISO 10303) | @modelscript/step | 8 | msx lint |
| OpenSCAD | @modelscript/scad | 8 | msx lint |
| CFD (SU2 / OpenFOAM) | @modelscript/cfd | 8 | msx lint |
| FEA (CalculiX / Abaqus / NASTRAN) | @modelscript/fea | 8 | msx lint |
| C | @modelscript/c | 10 | msx lint |
| Fortran | @modelscript/fortran | 15 | msx lint |
| JSBSim | @modelscript/jsbsim | 10 | msx jsbsim lint |
| NASA ROCETS | @modelscript/rocets | 14 | msx lint |
| CCSDS | @modelscript/ccsds | 8 | msx ccsds lint |
| EASY5 | @modelscript/easy5 | 12 | msx lint |
| AUTOSAR | @modelscript/autosar | 15 | msx autosar lint |
| MATLAB Simulink | @modelscript/simulink | 10 | msx simulink lint |
| GT-SUITE | @modelscript/gtsuite | 15 | msx lint |
| ASAM OpenDRIVE | @modelscript/opendrive | 8 | msx opendrive lint |
| ASAM OpenSCENARIO | @modelscript/openscenario | 10 | msx openscenario lint |
| GENSYS | @modelscript/gensys | 6 | msx gensys lint |
| SIMPACK | @modelscript/simpack | 6 | msx simpack lint |
| PSCAD / EMTDC | @modelscript/pscad | 17 | msx lint |
| PSS/E | @modelscript/psse | 13 | msx psse lint |
| OpenDSS | @modelscript/opendss | 10 | msx opendss lint |
| OLGA | @modelscript/olga | 13 | msx olga lint |
| PipelineStudio | @modelscript/lps | 12 | msx lint |
| ECLIPSE | @modelscript/eclipse | 10 | msx eclipse lint |
| RELAP5-3D | @modelscript/relap5 | 10 | msx relap5 lint |
| SIMA / SIMO / RIFLEX | @modelscript/sima | 15 | msx lint |
| SPICE | @modelscript/spice | 10 | msx lint |
| Verilog-A / AMS | @modelscript/verilog-a | 10 | msx verilog-a lint |
| IBIS | @modelscript/ibis | 9 | msx ibis lint |
| Touchstone | @modelscript/touchstone | 10 | msx touchstone lint |
| URDF / Xacro | @modelscript/urdf | 8 | msx lint |
| PLCopen / IEC 61131-3 | @modelscript/plcopen | 10 | msx plcopen lint |
| MSC Adams | @modelscript/adams | 9 | msx adams lint |
| EnergyPlus | @modelscript/energyplus | 8 | msx energyplus lint |
| EPANET | @modelscript/epanet | 8 | msx epanet lint |
| EPA SWMM | @modelscript/swmm | 13 | msx swmm lint |
| Aspen Plus / HYSYS | @modelscript/aspen | 15 | msx aspen lint |
| SBML | @modelscript/sbml | 10 | msx sbml lint |
ModelScript
Native systems modeling & query language. 10 rules · @modelscript/modelscript · Source: languages/modelscript/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M1001 | parse-error | error | Parse error. |
M2001 | undefined-variable | error | Variable '<name>' is not declared in current scope. |
M2002 | duplicate-declaration | error | Identifier '<name>' is already declared in this scope. |
M2003 | unknown-type | error | Type '<typeName>' is not recognized. |
M3001 | type-mismatch | error | Type mismatch: cannot assign '<sourceType>' to '<targetType>'. |
M3002 | invalid-binary-operand | error | Operator '<op>' cannot be applied to operands of type '<type>'. |
M4001 | non-iterable-collection | error | Expression '<expr>' in 'for' clause is not iterable. |
M4002 | flwor-unbound-variable | error | Variable '<varName>' in FLWOR clause is not bound in preceding 'for' or 'let' clauses. |
M5001 | argument-count-mismatch | error | Function '<fnName>' expects <expected> arguments, but got <actual>. |
M5002 | unknown-struct-field | error | Struct '<structName>' has no field named '<fieldName>'. |
Modelica
Acausal multi-domain physics. 307 rules · @modelscript/modelica · Source: languages/modelica/src/errors.ts, languages/modelica/src/lints/index.ts · Language guide
M1xxx — Syntax & parse
| Code | Rule | Severity | Message |
|---|---|---|---|
M1000 | identity-arg-count | error | Wrong number of arguments to identity. |
M1001 | parse-error | error | Parse error. |
M1002 | parse-missing | error | Parse error: '<expected>' expected. |
M1003 | empty-array-constructor | error | Parse error: Empty array constructors are not valid in Modelica. |
M1003 | emptyarrayconstructor | error | Empty array constructor '<target>' is not valid in Modelica. |
M1004 | identity-first-arg-integer | error | First argument to identity in component <compName> must be Integer expression. |
M1005 | subscripted-modifier | error | Subscripting modifiers is not allowed. Apply the modification on the whole identifier using an array-expression or an each-modifier. |
M1099 | wasm-flattener-unsupported | error | [ModelicaFlattener] Model '<rootName>' could not be flattened using strict WASM backend. |
M2xxx — Name & scope resolution
| Code | Rule | Severity | Message |
|---|---|---|---|
M2001 | duplicate-element | error | An element with name <name> is already declared in this scope. |
M2002 | variable-not-found | error | Variable <name> not found in scope <scope>. |
M2002 | variablenotfound | error | Variable <vName> not found in scope <className>. |
M2003 | class-not-found | error | Class <className> not found in scope <scope> (looking for a function or record). |
M2003 | typenotfound | error | Class or type '<fullType>' not found in scope. |
M2004 | modifier-not-found | error | In modifier of '<componentName>', class or component '<modName>' not found in '<className>'. |
M2005 | identifier-mismatch | error | The identifier at start and end are different. |
M2005 | identifiermismatch | error | Parse error: The identifier at start and end are different |
M2006 | modified-element-not-found | error | Modified element <modName> not found in class <className>. |
M2007 | modifier-class-not-found | error | In modifier (<modText>), class or component <modName> not found in <<className>>. |
M2011 | same-name-type-shadowing | error | Found a component with same name when looking for type <typeSpec>. |
M2012 | class-not-found-in-scope | error | Class <className> not found in scope <scope>. |
M2013 | base-class-not-found-in-scope | error | Base class <className> not found in scope <scope>. |
M2014 | partial-base-class | error | Part <partName> of base class name <extName> is not a class. |
M2015 | base-class-ambiguous | error | The base class name <partName> was found in one or more base classes: <candidateNames>. |
M2016 | base-class-found-in | error | <partName> was found in base class <baseName>. |
M2038 | partial-lookup-disallowed | error | <className> is partial, name lookup is not allowed in partial classes. |
M2090 | finaloverridenotification | info | From here: |
M2090 | from-here | notification | From here: |
M2091 | redeclare-final-component-notification | info | From here: |
M2091 | redeclarefinalcomponentnotification | info | From here: |
M2092 | redeclare-constant-component-notification | info | From here: |
M2092 | redeclareconstantcomponentnotification | info | From here: |
M2093 | duplicate-modification-notification | info | From here: |
M2093 | duplicatemodificationnotification | info | From here: |
M2094 | missing-inner | warning | No corresponding 'inner' declaration found for component .<typeName> <componentName> declared as 'outer'. The existing 'inner' components are: <inners> Check if you have not misspelled the 'outer' component name. Please declare an 'inner' component with the same name in the top scope. Continuing flattening by only considering the 'outer' component declaration. |
M2094 | missinginner | warning | No corresponding 'inner' declaration found in scope for outer component '<target>'. |
M2095 | from-here-trace | notification | From here: |
M2096 | redeclare-non-replaceable-notification | info | From here: |
M2096 | redeclarenonreplaceablenotification | info | From here: |
M2097 | protected-modification-notification | info | From here: |
M2097 | protectedmodificationnotification | info | From here: |
M3xxx — Type system & operator / function signatures
| Code | Rule | Severity | Message |
|---|---|---|---|
M3001 | type-mismatch-binding | error | Type mismatch in binding <componentName> = <actualExpr>, expected subtype of <expectedType>, got type <actualType>. |
M3001 | typemismatchbinding | error | Type mismatch in binding <target>, expected subtype of <expName>, got type <actName>. |
M3002 | type-mismatch-modifier | error | Type mismatch: '<modName>' expects type '<expectedType>' but got '<actualType>'. |
M3002 | typemismatchmodification | error | Type mismatch in binding or modification expression '<target>'. |
M3003 | not-plug-compatible | error | The connectors in connect(<ref1>, <ref2>) are not type compatible. |
M3004 | not-a-connector | error | <which> is not a valid connector. |
M3005 | redeclare-type-mismatch | error | Redeclare of '<redeclaredName>': type '<newType>' is not compatible with constraining type '<constrainingType>'. |
M3006 | function-arg-type-mismatch | error | Type mismatch for positional argument <argPosition> in <callExpr>. The argument has type: <argTypeSignature> expected type: <expectedTypeSignature> |
M3007 | connect-invalid-form | error | <ref> is not a valid form for a connector, connectors must be either c1.c2...cn or m.c (where c is a connector and m is a non-connector). |
M3008 | extends-type-mismatch | error | In extends of '<className>': redeclared '<redeclaredName>' of type '<newType>' is not compatible with original type '<originalType>'. |
M3009 | array-index-type-mismatch | error | Array index type mismatch: expected Integer or Boolean, but got '<actualType>'. |
M3009 | arrayindextypemismatch | error | Array index '<target>' has invalid type: expected Integer or Boolean. |
M3010 | unit-mismatch | warning | Unit mismatch: Left-hand side has unit '<lhsUnit>' but right-hand side has incompatible unit '<rhsUnit>'. |
M3010 | unitmismatchbinding | warning | Unit mismatch in equation '<target>'. |
M3010 | unitmismatchequation | warning | Unit mismatch in equation '<target>'. |
M3011 | binary-op-type-mismatch | error | Cannot resolve type of expression <expr>. The operands have types <type1>, <type2> in component <NO_COMPONENT>. |
M3012 | optimization-objective-type | error | Optimization objective must be a scalar Real, but got type '<typeStr>'. |
M3013 | optimization-constraint-type | error | Optimization constraints must evaluate to scalar Real or Boolean expressions, but got type '<typeStr>'. |
M3014 | builtin-attribute-type-mismatch | error | Type mismatch in binding <attrName> = <bindingText>, expected subtype of <expectedType>, got type <actualType>. |
M3015 | attribute-type-mismatch | error | Variable <varName>: Wrong type on builtin attribute <attrName> (type was: <actualType>, expected: <expectedType>). |
M3016 | conditional-type-mismatch | error | Type error in conditional '<condExpr>'. Expected Boolean, got <actualType>. |
M3017 | connect-types-inconsistent | error | The type of variables <r0Raw> type: <type0> and <r1Raw> type: <type1> are inconsistent in connect equations. |
M3018 | array-element-type-mismatch | error | Array constructor elements have inconsistent types in '<exprText>'. |
M3018 | arrayelementtypemismatch | error | Array element type mismatch in '<target>'. |
M3019 | no-matching-function | error | No matching function found for <callExpr> of type <callSig> candidates are <candidateSig> |
M3020 | type-mismatch-modifier-binding | error | Type mismatch in modifier of component <compName>, expected type <expectedType>, got modifier <exprText> of type <actualType>. |
M3021 | function-return-type-mismatch | error | Function '<funcName>' returns type '<actualType>' but '<expectedType>' expected. |
M4xxx — Structural, inheritance, modification & connector semantics
| Code | Rule | Severity | Message |
|---|---|---|---|
M4000 | dimension-not-parameter | error | Expression '<exprName>' that determines the size of dimension '<dim>' of '<callText>' is not an evaluable parameter expression. |
M4001 | extends-cycle | error | extends <baseName> causes an instantiation loop. |
M4001 | extendscycle | error | Extends cycle detected for '<target>'. |
M4002 | duplicate-modification | error | Duplicate modification of element <elementName> on <kind> <componentName>. |
M4002 | duplicatemodification | error | <outerName>.<innerOrKind> |
M4003 | array-dimension-mismatch | error | Type mismatch in binding '<componentName> = <exprText>', expected array dimensions [<expectedShape>], got [<actualShape>]. |
M4003 | arrayshapemismatch | error | Array shape mismatch: declared dimension does not match initializer element count in '<target>'. |
M4004 | unbalanced-model | warning | The <classKind> '<name>' is not balanced: <nEquations> equation(s) and <nVariables> variable(s). |
M4004 | unbalancedmodel | warning | Model '<target>' is not balanced: <value> equations for <value> variables. |
M4005 | protected-modification | error | Protected element '<elementName>' may not be modified, got '<modText>'. |
M4005 | protectedmodification | error | Protected element '<eName>' may not be modified, got '<mText>'. |
M4006 | external-with-algorithm | error | Element is not allowed in function context: algorithm |
M4006 | externalwithalgorithm | error | Element '<target>' is not allowed in function context with algorithm section. |
M4007 | function-public-variable | error | Invalid public variable <varName>, function variables that are not input/output must be protected. |
M4007 | functionpublicvariable | error | Invalid public variable <varName>, function variables that are not input/output must be protected. |
M4008 | array-subscript-count-mismatch | error | Wrong number of subscripts in <refStr> (<actualCount> subscripts for <expectedCount> dimensions). |
M4009 | function-default-arg-cycle | error | The default value of <paramName> causes a cyclic dependency. |
M4010 | function-invalid-var-type | error | Invalid type <typeName> for function component <varName>. |
M4011 | function-protected-io | error | Invalid protected variable <varName>, function variables that are input/output must be public. |
M4011 | functionprotectedio | error | Invalid protected variable <varName>, function variables that are input/output must be public. |
M4012 | function-arg-variability | error | Function argument <paramName>=<argExpr> in call to <funcName> has variability <actualVariability> which is not a <requiredVariability> expression. |
M4013 | nested-when-statement | error | Nested when statements are not allowed. |
M4013 | nestedwhen | error | Nested when statements are not allowed. |
M4014 | tuple-expression-context | error | Tuple expressions may only occur on the left side of an assignment or equation with a single function call on the right side. Got the following expression: <exprText>. |
M4014 | tupleexpressioncontext | error | Tuple expressions may only occur on the left side of an assignment or equation with a single function call on the right side. |
M4015 | within-in-script | error | The within directive is not allowed in script mode. |
M4016 | statement-in-standard-mode | error | Top-level statements are not allowed in standard Modelica mode. |
M4017 | restriction-violation | error | <what> are not allowed in <classKind>. |
M4017 | restrictionviolation | error | Algorithm sections are not allowed in <kindStr>. |
M4018 | partial-instantiation | error | Illegal to instantiate partial class <className>. |
M4019 | redeclare-non-replaceable | error | Redeclaration with a new type requires '<elementName>' to be replaceable. |
M4019 | redeclarenonreplaceable | error | Redeclaration with a new type requires '<eName>' to be replaceable. |
M4020 | builtin-time-invalid | error | time is not allowed in a function. |
M4020 | reservedbuiltintime | error | Identifier time is reserved for the built-in element with the same name. |
M4020 | timeinfunction | error | time is not allowed in a function. |
M4021 | range-step-too-small | error | Step size <stepSize> in range is too small. |
M4022 | enum-range-with-step | error | Range of type enumeration <enumType> may not specify a step size. |
M4022 | enumrangewithstep | error | Range of type enumeration '<target>' may not specify a step size. |
M4023 | connect-in-when | error | connect may not be used inside when-equations (found <connectExpr>). |
M4023 | connectinwhen | error | connect may not be used inside when-equations (found <target>). |
M4024 | connect-in-initial | error | Connect equations are not allowed in initial equation sections. |
M4024 | connectininitial | error | Connect equations are not allowed in initial equation sections. |
M4025 | connect-in-non-param-if | error | connect may not be used inside if-equations with non-parametric conditions (found <connectExpr>). |
M4025 | connectinnonparamif | error | connect may not be used inside if-equations with non-parametric conditions (found <target>). |
M4026 | final-override | error | Trying to override final element <elementName> with modifier '<modText>'. |
M4026 | finaloverride | error | Trying to override final element <eName> with modifier '<mText>'. |
M4027 | variability-binding-mismatch | error | Component <componentName> of variability <compVariability> has binding '<bindingExpr>' of higher variability <bindingVariability>. |
M4027 | variabilitybindingmismatch | error | Component <compName> of variability parameter has binding '<target>' of higher variability continuous. |
M4028 | partial-type-component | error | Component '<componentName>' has partial type '<typeName>'. |
M4028 | partialtypecomponent | error | Component '<target>' has partial type. |
M4029 | component-binding-restriction | error | Component '<componentName>' may not have a binding equation due to class specialization '<classKind>'. |
M4030 | outer-modifier | error | Modifier '<modText>' found on outer element <elementName>. |
M4030 | outermodifier | error | Modifier '<modNode>' found on outer element <nameNode>. |
M4031 | array-index-out-of-bounds | error | Subscript '<index>' for dimension <dimensionIndex> (size = <dimensionSize>) of <arrayName> is out of bounds. |
M4031 | arrayindexoutofbounds | error | Subscript 'index' for dimension <dimIndex> (size = <dimSize>) of array is out of bounds. |
M4032 | function-invalid-prefix | error | Invalid prefix <prefix> on formal parameter <varName>. |
M4032 | functioninvalidprefix | error | Invalid prefix '<target>' on formal parameter in function. |
M4033 | function-multiple-algorithm | error | Function <funcName> has more than one algorithm section or external declaration. |
M4033 | functionmultiplealgorithm | error | Function <name> has more than one algorithm section or external declaration. |
M4034 | replaceable-base-class | error | Class '<className>' in 'extends <extendsText>' is replaceable, the base class name must be transitively non-replaceable. |
M4034 | replaceablebaseclass | error | Class '<target>' in 'extends <target>' is replaceable, the base class name must be transitively non-replaceable. |
M4035 | cyclic-dimension-dependency | error | Dimension <dimNum> of <varName>, '<exprText>', could not be evaluated due to a cyclic dependency. |
M4036 | package-variable-not-constant | error | Variable <varName> in package <packageName> is not constant. |
M4037 | connector-variability | error | Invalid variability <variability> on connector '<connectorName>'. |
M4037 | connectorvariability | error | Invalid variability <pfx> on connector '<compName>'. |
M4038 | flow-outside-connector | warning | Prefix 'flow' used outside connector declaration. |
M4038 | flowoutsideconnector | warning | Prefix '<target>' used outside connector declaration. |
M4039 | discrete-not-on-lhs | error | Following variable is discrete, but does not appear on the LHS of a when-statement: '<varName>'. |
M4039 | discretenotonlhs | error | Following variable is discrete, but does not appear on the LHS of a when-statement: '<target>'. |
M4040 | protected-element-modification | error | Protected element '<varName>' may not be modified, got '<modText>'. |
M4041 | negative-dimension | error | Negative dimension index (<dim>) for component <varName>. |
M4041 | negativedimension | error | Negative dimension index (-1) for component component. |
M4042 | constant-has-no-value | error | Constant '<qualifiedName>' has no value. |
M4042 | constanthasnovalue | error | Constant '<target>' has no value. |
M4043 | constant-variability-violation | error | Component <componentName> of variability constant has binding '<bindingText>' of higher variability <bindingVariability>. |
M4043 | constantvariabilityviolation | error | Component <compName> of variability constant has binding '<target>' of higher variability <varbNode>. |
M4044 | non-array-modification | error | Non-array modification '<modText>' for array component '<componentName>', possibly due to missing 'each'. |
M4044 | nonarraymodification | error | Non-array modification '<fullMod>' for array component, possibly due to missing 'each'. |
M4045 | modified-element-not-found-cst | error | Modified element <modName> not found in class <className>. |
M4045 | modifiedelementnotfound | error | Modified element <eText> not found in class <tText>. |
M4046 | constant-not-fixed | error | Constant '<componentName>' must be fixed but has 'fixed = false' |
M4046 | constantnotfixed | error | Constant declaration '<target>' must be fixed. |
M4047 | cardinality-invalid-context | error | cardinality may only be used in the condition of an if-statement/equation or an assert. |
M4047 | cardinalityinvalidcontext | error | Operator '<target>' may only be used in the condition of an if-statement/equation or an assert. |
M4048 | cardinality-expected-component | error | Expected <name> to be a component, but found class instead. |
M4048 | cardinalityexpectedcomponent | error | Expected <target> to be a component, but found class instead. |
M4049 | break-on-non-component | error | Invalid use of break on non-component '<name>'. |
M4049 | breakonnoncomponent | error | Invalid use of break on non-component '<ident>'. |
M4050 | break-component-invalid-type | error | Invalid use of break on component '<name>', component must be a model, block, or connector. |
M4050 | breakcomponentinvalidtype | error | Invalid use of break on component '<ident>', component must be a model, block, or connector. |
M4051 | break-connect-not-found | error | No matching element found for '<connText>'. |
M4051 | breakconnectnotfound | error | No matching element found for '<target>'. |
M4052 | redeclare-final-component | error | Redeclaration of final component <name> is not allowed. |
M4052 | redeclarefinalcomponent | error | Redeclaration of final component <eName> is not allowed. |
M4053 | redeclare-constant-component | error | Redeclaration of constant component <name> is not allowed. |
M4053 | redeclareconstantcomponent | error | Redeclaration of constant component <eName> is not allowed. |
M4054 | stream-unbalanced-connector | error | Invalid stream connector <connectorName>: A stream connector must have exactly one flow variable, this connector has <flowCount> flow variables. |
M4054 | streamunbalancedconnector | error | Invalid stream connector .<cName>: A stream connector must have exactly one flow variable, this connector has <fCount> flow variables. |
M4055 | cannot-connect-expandable-with-non-expandable | error | Cannot connect expandable connector <expName> with non-expandable connector <nonExpName>. |
M4055 | cannotconnectexpandablewithnonexpandable | error | Cannot connect expandable connector <expRef> with non-expandable connector <nonExpRef>. |
M4056 | duplicate-inherited-element-not-identical | error | Duplicate elements (due to inherited elements) not identical: first element is: <currText> second element is: <prevText> |
M4057 | expandable-connector-flow-element | error | Prefix 'flow' on component '<compName>' not allowed in class specialization 'expandable connector'. |
M4057 | expandableconnectorflowelement | error | Prefix 'flow' on component '<compName>' not allowed in class specialization 'expandable connector'. |
M4058 | recursive-definition | error | Declaration of element <elemName> causes recursive definition of class <className>. |
M4059 | max-recursion-depth-exceeded | error | The maximum recursion depth of <depth> was reached, probably due to mutually recursive definitions. |
M4061 | redeclare-non-inherited | error | Illegal redeclare of element <elementName>, no inherited element with that name exists. |
M4061 | redeclarenoninherited | error | Illegal redeclare of element <eName>, no inherited element with that name exists. |
M4062 | invalid-external-object | error | External object <className> contains invalid element '<elemName>'. |
M4063 | class-extends-non-inherited | error | Base class targeted by class extends <className> not found in the inherited classes. |
M4063 | classextendsnoninherited | error | Invalid redeclaration of class <eName>, class extends only allowed on inherited classes. |
M4064 | protected-in-connector | error | Protected sections are not allowed in connector. |
M4064 | protectedinconnector | error | Protected sections are not allowed in <kindStr>. |
M4065 | equationinconnector | error | Equations are not allowed in connector. |
M4065 | equations-in-connector | error | Equations are not allowed in connector. |
M4066 | algorithm-in-connector | error | Algorithm sections are not allowed in connector. |
M4066 | algorithminconnector | error | Algorithm sections are not allowed in connector. |
M4067 | external-object-missing-constructor | error | External object <className> is missing a constructor. |
M4068 | redeclare-condition-attribute | error | Invalid redeclaration of <elementName>, a redeclare may not have a condition attribute. |
M4068 | redeclareconditionattribute | error | Invalid redeclaration of <eName>, a redeclare may not have a condition attribute. |
M4069 | external-object-return-restriction | error | Function <fnName> returns an external object, but the only function allowed to return this object is <extObjName>.constructor. |
M4070 | external-non-function | error | Class specialization violation: <className> is a <specialization>, which may not contain an external declaration. |
M4070 | externalnonfunction | error | Class specialization violation: <name> is a <kindStr>, which may not contain an external declaration. |
M4071 | external-invalid-language | error | '<lang>' is not a valid language for an external function. |
M4072 | external-invalid-arg-expr | error | Expression <expr> cannot be an external argument. Only identifiers, scalar constants, and size-expressions are allowed. |
M4073 | external-invalid-arg-size-const | error | Invalid external argument '<expr>', the dimension index must be a constant expression. |
M4074 | external-array-return-not-allowed | error | The lhs (result) of the external function declaration has array type (<typeStr>), but this is not allowed in the specification. You need to pass it as an input to the function (preferably also with a size()-expression to avoid out-of-bounds errors in the external call). |
M4075 | invalid-type-prefix-flow-nested | error | Invalid type prefix 'flow' on variable <varName>, due to existing type prefix 'flow'. |
M4076 | parameter-bound-contradiction | error | Contradictory bounds for parameter '<paramName>': lower bound '<lower>' exceeds upper bound '<upper>'. |
M4076 | parameterboundcontradiction | error | Contradictory bounds for parameter 'parameter': lower bound 'min' exceeds upper bound 'max'. |
M4077 | loop-termination-inconclusive | error | Loop over '<loopVar>' with condition '<condition>' cannot be proven to terminate. |
M4078 | terminate-in-function | error | terminate is not allowed in a function. |
M4078 | terminateinfunction | error | terminate is not allowed in a function. |
M4079 | return-outside-function | error | 'return' may not be used outside function. |
M4079 | returnoutsidefunction | error | 'return' may not be used outside function. |
M4080 | cyclic-constants-or-parameters | error | Cyclically dependent constants or parameters found in scope <scopeName>: {<cycleList>} (ignore with -d=ignoreCycles). |
M4081 | cyclic-function-components | error | Cyclically dependent function components found: {<cycleList>} |
M4082 | connector-non-parameter-subscript | error | Connector '<connRef>' has non-parameter subscript '<subscriptText>'. |
M4083 | enum-duplicate-literal | error | Enumeration has duplicate names: <dup> in list of names <list>. |
M4084 | enum-reserved-attribute-literal | error | Invalid use of reserved attribute name <name> as enumeration literal. |
M4091 | break-outside-loop | error | 'break' must be inside a for or while loop, or enclose a connect equation. |
M4091 | breakoutsideloop | error | 'break' may only be used in a while- or for-loop. |
M4092 | binding-dimension-mismatch | error | Type mismatch in binding '<componentName> = <bindingText>', expected array dimensions [<expectedDims>], got [<actualDims>]. |
M4093 | unused-input-variable | warning | Unused input variable <varName> in function <funcName>. |
M4094 | cardinality-in-condition-only | error | cardinality may only be used in the condition of an if-statement or if-equation. |
M4095 | conditional-expression-not-evaluated | error | The conditional expression <condText> could not be evaluated. |
M4096 | dimensions-must-be-parameter | error | Dimensions must be parameter or constant expression (in <callStr>). |
M4097 | called-function-partial | error | Called function '<fnName>' is partial. |
M4098 | class-specialization-violation | error | Class specialization violation: <className> <errorDetail>. |
M4099 | cannot-connect-undeclared-expandable-connectors | error | Cannot connect undeclared connectors <c1> with <c2>. At least one of them must be declared. |
M4101 | top-level-outer-element | error | The model can't be instantiated due to top-level outer element '<elementName>', it may only be used as part of a simulation model. |
M4102 | inner-not-found-existing-decl | error | An inner declaration for outer element '<elementName>' could not be found, and could not be automatically generated due to an existing declaration of that name. |
M4103 | missing-redeclare-keyword | error | Missing redeclare keyword on attempted redeclaration of class <className>. |
M4104 | invalid-redeclaration-class-as-component | error | Invalid redeclaration of class <className> as component. |
M4105 | duplicate-redeclare | error | <name> is already redeclared in this scope. |
M4106 | invalid-redeclaration-prefix | error | Invalid redeclaration '<newPrefix> <name>', original element is declared '<origPrefix>'. |
M4107 | invalid-redeclaration-component-as-class | error | Invalid redeclaration of component <compName> as class. |
M4108 | redeclare-enum-not-subtype-generic | error | Redeclaration of enumeration '<name>' is not a subtype of the redeclared element (use enumeration(😃 for a generic replaceable enumeration). |
M4109 | redeclare-enum-not-subtype | error | Redeclaration of enumeration '<name>' is not a subtype of the redeclared element. |
M4110 | invalid-type-prefix-conflict | error | Invalid type prefix '<newPrefix>' on component <compName>, due to existing type prefix '<existingPrefix>'. |
M4111 | invalid-redeclaration-basic-type-attribute | error | Invalid redeclaration of <attrName>, attributes of basic types may not be redeclared. |
M4112 | extends-other-base-class | error | Found other base class for extends <baseName> after instantiating extends. |
M4113 | external-object-missing-destructor | error | External object <className> is missing a destructor. |
M4114 | invalid-connector-variability | error | Invalid variability <variability> on connector '<compName>'. |
M4115 | external-object-not-replaceable | error | '<elemName>' may not be replaceable. |
M4116 | operator-encapsulation | error | Operator <recordName>.'<opName>' is not encapsulated. |
M4117 | operator-constructor-outputs | error | Operator <recordName>.'constructor' must have exactly one output. |
M4118 | operator-constructor-output-type | error | Output '<outputName>' in operator <recordName>.'constructor' must be of type <recordName>, got type <actualType>. |
M4119 | variable-in-package-not-constant | error | Variable <varName> in package <pkgName> is not constant. |
M4120 | ambiguous-operator-overload | error | Ambiguous matching overloaded operator functions found for <exprText>. Candidates are: <candidatesText> |
M4121 | no-matching-operator-function | error | No matching function found for <callExprText>. Candidates are: <candidatesText> |
M4122 | cannot-resolve-operator-type | error | Cannot resolve type of expression <exprText>. The operands have types <leftType>, <rightType> in component <NO_COMPONENT>. |
M5xxx — Equations, algorithms & control-flow analysis
| Code | Rule | Severity | Message |
|---|---|---|---|
M5001 | equation-type-mismatch | error | Type mismatch in equation <lhsExpanded>=<rhsExpanded> of type <lhsType>=<rhsType>. |
M5001 | equationtypemismatch | error | Type mismatch in equation <eqText2> of type <lName>=<rName>. |
M5002 | constrainedby-type-mismatch | error | Replaceable '<componentName>': default type '<defaultType>' is not compatible with constraining type '<constrainingType>'. |
M5003 | if-branch-type-mismatch | error | If-equation branch type mismatch: '<varName>' assigned type '<branchType>' but expected '<expectedType>'. |
M5004 | connect-flow-mismatch | error | Cannot connect flow component <flowComp> to non-flow component <nonFlowComp>. |
M5004 | connectflowmismatch | error | Cannot connect flow component <flowRef>.<elemIdent> to non-flow component <nonFlowRef>.<elemIdent>. |
M5005 | division-by-zero | error | Division by zero: <lhs> / 0. |
M5005 | divisionbyzero | error | Division by literal zero in '<target>'. |
M5006 | assignment-type-mismatch | error | Type mismatch in assignment in <target> := <source> of <targetType> := <sourceType> |
M5006 | assignmenttypemismatch | error | Type mismatch in assignment in <target> of <tName> := <vName> |
M5007 | for-iterator-not-1d | error | Iterator <iteratorName>, has type <shape>, but expected a 1D array expression. |
M5007 | foriteratornot1d | error | Iterator iterator, has type Real, but expected a 1D array expression. |
M5008 | assignment-to-constant | error | Trying to assign to constant component in <componentName> := <exprText> |
M5008 | assignmenttoconstant | error | Trying to assign to constant component <idNode>. |
M5009 | assignment-to-input | error | Trying to assign to input component '<componentName>'. |
M5009 | assignmenttoinput | error | Trying to assign to input component <idNode>. |
M5010 | homotopy-recommended | info | Equation contains steep nonlinearity '<term>' without homotopy. Consider wrapping with homotopy(actual, simplified). |
M5011 | assignment-to-parameter | error | Trying to assign to parameter component in <componentName> := <exprText> |
M5012 | assignment-to-iterator | error | Assignment to iterator '<iteratorName>'. |
M5013 | not-a-stream-variable | error | Operand '<operand>' to operator '<operator>' is not a stream variable. |
M5013 | notastreamvariable | error | Operand '<aText>' to operator '<fText>' is not a stream variable. |
M5014 | assignment-to-non-variable | error | Component '<componentName>' may not be assigned to due to class specialization '<specialization>'. |
M5015 | function-call-contains-subscripts | error | Function call <cref> contains subscripts. |
M5016 | tuple-subscript-not-allowed | error | Tuple expression can not be subscripted. |
M5017 | when-illegal-context | error | A when-statement may not be used inside a function or a while, if, or for-clause. |
M5017 | whenillegalcontext | error | A when-statement may not be used inside a function or a while, if, or for-clause. |
M5018 | reduction-invalid-expr-type | error | Invalid expression '<exprText>' of type <actualType> in <op> reduction, expected <expectedText>. |
M5019 | failed-to-deduce-dimension | error | Failed to deduce dimension <dimIdx> of <varName> due to missing binding equation. |
M5020 | output-not-definitely-assigned | error | Output variable '<varName>' in function '<funcName>' is not definitely assigned on all control flow paths. |
M5021 | uninitialized-variable-read | warning | Variable '<varName>' is read before being definitely assigned. |
M5022 | unreachable-statement | warning | Unreachable statement detected. |
M5023 | elsewhen-variable-mismatch | error | The same variables must be solved in elsewhen clause as in the when clause. |
M5023 | elsewhenvariablemismatch | error | The same variables must be solved in elsewhen clause as in the when clause. |
M5024 | reinit-type-mismatch | error | The first argument to reinit must be a subtype of Real, but <varName> has type <actualType>. |
M5025 | implicit-iterator-subscript-missing | error | Identifier <iterName> of implicit for iterator must be present as array subscript in the loop body. |
M5026 | implicit-iteration-dim-mismatch | error | Dimension <dim1> of <name1> and <dim2> of <name2> differs when trying to deduce implicit iteration range. |
M5027 | when-condition-not-discrete | error | When-condition '<condText>' is not a discrete-time expression. |
M5028 | when-if-branch-lhs-mismatch | error | The branches of an if-equation inside a when-equation must have the same set of component references on the left-hand side. |
M5029 | clocked-when-has-elsewhen | error | Clocked when equation can not contain elsewhen part. |
M5030 | clocked-when-branch-in-when | error | Clocked when branch in when equation. |
M5031 | invalid-when-lhs | error | Invalid left-hand side of when-equation: <lhsStr>. |
M5032 | when-conditional-expected-boolean | error | Type error in when conditional '<condStr>'. Expected Boolean scalar or vector, got Clock. |
M5033 | reinit-not-continuous | error | The first argument to reinit must be a continuous time variable, but <varName> is <variability>. |
M5034 | eval-external-builtin | error | Internal error NFCeval.evalBuiltinCall: unimplemented case for <funcName> |
M5035 | argument-not-differentiable | error | Argument '<argName>' of der is not differentiable. |
M5036 | invalid-size-index | error | Invalid index <dim> in call to size of <arrName>, valid index interval is [1,<maxDim>]. |
M5037 | function-no-named-parameter | error | Function <funcName> has no input parameter named <paramName>. |
M5038 | when-in-initial-equation | error | when-clause is not allowed in initial section. |
M5039 | size-first-arg-not-array | error | The first argument of size(<argText>) must be an array expression. |
M5040 | reinit-outside-when | error | Operator reinit may only be used in the body of a when equation. |
M5041 | reinit-in-algorithm | error | Operator reinit may not be used in an algorithm section (use translation flag --allowNonStandardModelica=reinitInAlgorithms to ignore). |
M5042 | reinit-arg1-not-variable | error | The first argument to reinit must be a variable of type Real or an array of such variables. |
M5043 | illegal-end-usage | error | 'end' can not be used outside array subscripts. |
M5044 | reinit-arg2-type-mismatch | error | Type mismatch for positional argument 2 in reinit(=<argText>). The argument has type: <actualType> expected type: <expectedType> |
M6xxx — Synchronous clocks, state machines & purity
| Code | Rule | Severity | Message |
|---|---|---|---|
M6001 | mixed-clock-domains | error | Clocked expression '<exprText>' mixes signals from different clock domains. |
M6001 | mixedclockdomains | error | Mixed clock domains in expression '<target>' without explicit conversion operator. |
M6002 | sample-factor-not-positive | error | Sub-clock factor must be a positive integer. |
M6002 | samplefactornotpositive | error | Sample factor '<target>' must be a positive non-zero integer. |
M6003 | previous-outside-clocked | error | Operator 'previous()' may only be applied to clocked discrete-time variables in '<exprText>'. |
M6003 | previousoutsideclocked | error | previous() can only be called on clocked discrete variables, but '<target>' is unclocked. |
M6004 | hold-in-continuous | error | Operator 'hold()' converts a clocked signal to continuous-time and cannot be used inside a clocked partition: '<exprText>'. |
M6004 | holdincontinuous | error | hold() operator cannot be called in continuous equation section without boundary causality. |
M6010 | duplicate-initial-state | error | A state machine partition must have at most one initialState() call. |
M6010 | duplicateinitialstate | error | More than one state marked as initialState in state machine '<target>'. |
M6020 | impure-called-in-pure | error | Impure function '<callText>' cannot be called inside a pure function. |
M6020 | impurecalledinpure | error | Pure function cannot call impure function '<target>'. |
M6021 | impure-in-equation-section | error | Impure function '<callText>' may only be called inside a when-equation or when-statement. |
M6021 | impureinequationsection | error | Impure function '<target>' may only be called in algorithm sections or when equations. |
M6040 | break-connection-not-found | error | Connection '<connText>' in 'break' modifier does not exist in base class. |
SysML v2 / KerML
Systems architecture & requirements. 48 rules · @modelscript/sysml2 · Source: languages/sysml2/src/errors.ts · Language guide
S1xxx — Syntax, parsing & naming conventions
| Code | Rule | Severity | Message |
|---|---|---|---|
S1001 | parse-error | error | Parse error: <detail>. |
S1002 | parse-missing | error | Expected token missing: '<expected>'. |
S1003 | definition-naming | warning | Definition '<name>' should start with an uppercase letter |
S1004 | usage-naming | warning | Usage '<name>' should start with a lowercase letter |
S1005 | package-naming | warning | Package '<name>' should start with an uppercase letter |
S2xxx — Scoping & name resolution
| Code | Rule | Severity | Message |
|---|---|---|---|
S2001 | duplicate-member | warning | Duplicate member '<name>' in '<scope>' |
S2002 | symbol-not-found | error | Symbol '<name>' not found in scope. |
S2003 | allocation-target-unresolved | error | Allocation target '<target>' could not be resolved |
S2003 | unresolved-target | error | Allocation target '<target>' could not be resolved |
S2004 | allocation-source-unresolved | error | Allocation source '<source>' could not be resolved |
S2004 | unresolved-source | error | Allocation source '<source>' could not be resolved |
S2005 | unresolved-import | error | Import '<pkg>' could not be resolved. |
S2006 | unresolved-transition-state | error | Transition state '<stateName>' could not be resolved in enclosing state machine. |
S3xxx — Type system & static checking
| Code | Rule | Severity | Message |
|---|---|---|---|
S3001 | type-mismatch | error | Type mismatch: cannot assign value of type '<actualType>' to feature '<featureName>' with declared type '<declaredType>'. |
S3002 | incompatible-port-connection | error | Incompatible port connection between '<p1>' (<t1>) and '<p2>' (<t2>). |
S3003 | dimensional-mismatch | error | Dimensional mismatch: cannot assign value of dimension '<actualDim>' to feature '<featureName>' with declared dimension '<targetDim>'. |
S3004 | invalid-multiplicity-bounds | error | Invalid multiplicity bounds: lower bound (<lower>) cannot be greater than upper bound (<upper>). |
S3005 | target-not-requirement | error | Target '<target>' is not a Requirement |
S3006 | verify-target-not-a-requirement | error | Verify target '<target>' is not a Requirement |
S3007 | dimensional-connection-mismatch | error | Dimensional mismatch in connection between '<sourceName>' (<sourceDim>) and '<targetName>' (<targetDim>). |
S4xxx — Structural & metamodel semantics
| Code | Rule | Severity | Message |
|---|---|---|---|
S4001 | circular-specialization | error | Circular specialization: '<name>' transitively specializes itself |
S4002 | circular-satisfaction | error | Circular satisfaction: '<name>' transitively satisfies itself |
S4003 | empty-definition | info | Definition '<name>' has no members |
S4004 | abstract-requirement-violation | error | Cannot make an existing concrete requirement abstract. |
S4005 | ontological-inconsistency | error | Ontological inconsistency detected in '<name>'<detail> |
S4006 | missing-subject | info | Requirement '<name>' should have a specified subject or satisfy relation |
S4007 | empty-package | info | Package '<name>' has no members |
S4008 | requirement-without-constraint | info | Requirement '<name>' has no constraints or textual documentation |
S4009 | empty-verification-case | info | Verification case '<name>' has no verify requirements or sub-actions |
S4010 | missing-verification-objective | warning | Verification case '<name>' has no verification objective or verify statement |
S4011 | unverified-requirement | warning | Requirement '<name>' is not verified by any verification case in package '<pkgName>' |
S5xxx — Behavior, state machines & formal verification
| Code | Rule | Severity | Message |
|---|---|---|---|
S5001 | constraint-violated | error | Constraint '<name>' evaluates to false |
S5002 | requirement-failed | error | Requirement '<name>' has constraint(s) that evaluate to false |
S5003 | broken-interface-contract | error | Broken interface contract on '<name>': <reason> |
S5003 | interface-contract-broken | error | Broken interface contract on '<name>': <reason> |
S5004 | activity-cfa-unreachable | warning | <detail> |
S5005 | activity-soundness-violation | error | <detail> |
S5006 | definite-assignment-violation | error | Variable '<name>' may be used before definite assignment |
S5007 | statemachine-nondeterministic | error | Non-deterministic guards detected: <detail> |
S5008 | statemachine-deadlock | error | Deadlock gap detected in transition guards: <detail> |
S5009 | satisfying-violated-requirement | error | Part '<partName>' cannot satisfy requirement '<reqName>': <violations> |
S5010 | conflicting-requirements | error | Conflicting requirements in '<pkgName>': <conflictNames> cannot be simultaneously satisfied.<witnessStr> |
S5011 | interprocedural-contract-violation | error | <detail> |
S5012 | loop-non-terminating | warning | <detail> |
S5013 | decision-table-non-exhaustive | warning | Decision node '<decideName>' is not exhaustive: <detail> |
S5014 | decision-table-nondeterministic | error | Decision node '<decideName>' has overlapping branch guards: <detail> |
S5015 | decision-table-dead-branch | warning | Decision node '<decideName>' has dead branch(es): <detail> |
S5016 | activity-safety-violation | error | <detail> |
ReqIF
Requirements interchange & contract entailment. 10 rules · @modelscript/reqif · Source: languages/reqif/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7001 | dangling-requirement-relation | error | Requirement relation '<relId>' references missing <role> requirement '<missingId>'. |
M7002 | type-attribute-mismatch | error | Attribute '<attrName>' expected type '<expectedType>', but got value '<actualValue>'. |
M7003 | circular-requirement-hierarchy | error | Circular requirement hierarchy detected at '<reqId>' along cycle path [<cyclePath>]. |
M7004 | unverified-leaf-requirement | warning | Leaf requirement '<reqId>' has no outgoing 'verifies' or 'satisfies' relation. |
M7005 | unbounded-formal-contract | warning | Requirement '<reqId>' is marked safety/functional but lacks a bounded mathematical contract. |
M7006 | duplicate-spec-object-id | error | Duplicate requirement identifier '<reqId>' declared in specification. |
M7007 | missing-mandatory-attribute | error | Requirement '<reqId>' is missing mandatory attribute '<attrName>'. |
M7008 | empty-specification | warning | Specification '<specId>' contains no requirement hierarchies. |
M7009 | unresolved-type-reference | error | Element '<elementId>' references undefined type '<typeRef>'. |
M7010 | invalid-contract-comparator | error | Requirement '<reqId>' specifies invalid contract comparator '<comp>'. |
SSP
FMU system structure & parameterization. 14 rules · @modelscript/ssp · Source: languages/ssp/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
S7001 | SSP_EMPTY_CONNECTOR_NAME | error | Connector in <owner> has an empty name. |
S7002 | SSP_DUPLICATE_CONNECTOR | error | Duplicate connector '<name>' declared in <owner>. |
S7003 | SSP_INVALID_CONNECTOR_KIND | error | Invalid connector kind '<kind>'. Must be input, output, inout, parameter, or calculatedParameter. |
S7004 | SSP_EMPTY_COMPONENT_NAME | error | Component declared with an empty name attribute. |
S7005 | SSP_DUPLICATE_COMPONENT | error | Duplicate component '<name>' in system. |
S7006 | SSP_EMPTY_SOURCE | error | Component '<comp>' has an empty or missing source FMU URI. |
S7007 | SSP_UNDEFINED_COMPONENT | error | Referenced component '<comp>' is not defined in system elements. |
S7008 | SSP_UNDEFINED_CONNECTOR | error | Referenced connector '<conn>' not found on component '<comp>'. |
S7009 | SSP_CONNECTOR_TYPE_MISMATCH | error | Connection type mismatch: '<startType>' cannot connect to '<endType>'. |
S7010 | SSP_CONNECTOR_CAUSALITY_CONFLICT | error | Connection violates causal flow rules. |
S7011 | SSP_CYCLIC_CONNECTION | error | Connection creates an algebraic loop or cyclic dependency without delay. |
S7012 | SSP_INVALID_EXPERIMENT_BOUNDS | error | DefaultExperiment stopTime must be strictly greater than startTime. |
S7013 | SSP_CONNECTOR_UNIT_MISMATCH | warning | Connector unit mismatch: '<startUnit>' connected to '<endUnit>'. |
S7014 | SSP_ALGEBRAIC_FEEDTHROUGH_LOOP | error | Algebraic feedthrough loop detected across connected components: <cyclePath>. |
OWL2
Ontologies & description-logic reasoning. 24 rules · @modelscript/owl2 · Source: languages/owl2/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
O1001 | parse-error | error | Syntax error near '<snippet>'. |
O1002 | undeclared-prefix | error | Prefix '<prefix>:' used in abbreviated IRI '<iri>' is not declared. |
O1003 | duplicate-prefix | warning | Prefix '<prefix>:' is declared multiple times in the ontology header. |
O1004 | invalid-iri | error | Invalid or malformed IRI '<iri>'. |
O1005 | insufficient-arity | error | OWL 2 construct '<construct>' requires at least <minArity> arguments, but got <actualArity>. |
O2001 | undeclared-entity | warning | Entity '<iri>' is used as a <role> without an explicit Declaration axiom. |
O2002 | duplicate-declaration | warning | Duplicate Declaration(<kind>(<iri>)) in ontology. |
O2003 | reserved-vocabulary-declaration | error | Cannot declare or redefine built-in OWL 2 / RDF / RDFS / XSD vocabulary IRI '<iri>'. |
O3001 | illegal-property-punning | error | Illegal OWL 2 DL punning: '<iri>' is used as both '<kindA>' and '<kindB>' (ObjectProperty, DataProperty, and AnnotationProperty vocabularies must be disjoint). |
O3002 | expected-object-property | error | Expected an ObjectProperty in '<construct>', but '<iri>' is declared as a DataProperty. |
O3003 | expected-data-property | error | Expected a DataProperty in '<construct>', but '<iri>' is declared as an ObjectProperty. |
O3004 | expected-class-expression | error | Expected a Class expression in '<construct>', but '<iri>' is a Datatype. |
O3005 | invalid-datatype | warning | Datatype '<datatypeIri>' is not in the standard OWL 2 datatype map. |
O3006 | datatype-literal-mismatch | error | Lexical value '<literal>' is not a valid literal for datatype '<datatypeIri>'. |
O4001 | non-simple-property-restriction | error | OWL 2 DL global restriction violation: non-simple (transitive or composite) property '<propertyIri>' cannot be used in '<construct>'. |
O4002 | contradictory-property-characteristics | error | Object property '<propertyIri>' has contradictory characteristics '<charA>' and '<charB>'. |
O4003 | property-hierarchy-cycle | warning | Cycle detected in property hierarchy: '<cycle>'. |
O4004 | class-hierarchy-cycle | info | SubClassOf cycle detected (equivalent classes): '<cycle>'. |
O4005 | self-referential-axiom | warning | Redundant or contradictory self-referential axiom '<axiomType>' on '<iri>'. |
O5001 | functional-property-clash | error | Functional/InverseFunctional property '<propertyIri>' violation: <detail>. |
O5002 | negative-assertion-clash | error | Negative property assertion on '<propertyIri>' for '<subjectIri>' clashes with asserted or inferred value '<target>'. |
O5003 | unsatisfiable-class | error | Class '<classIri>' is unsatisfiable (equivalent to owl:Nothing): <reason>. |
O5004 | ontology-inconsistent | error | Ontology is logically inconsistent: <explanation> |
O6001 | profile-el-violation | warning | Construct '<construct>' is outside the OWL 2 EL profile. |
STEP (ISO 10303)
B-Rep CAD assemblies & AP242 PMI. 8 rules · @modelscript/step · Source: languages/step/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M1001 | step-syntax-error | error | STEP file syntax error: <detail>. |
M1002 | missing-header-section | error | STEP exchange file is missing mandatory 'HEADER;' section. |
M1003 | missing-schema-declaration | warning | STEP header lacks a recognized 'FILE_SCHEMA' declaration (e.g. AP203, AP214, AP242). |
M1004 | missing-data-section | error | STEP exchange file is missing mandatory 'DATA;' section. |
M1005 | unresolved-entity-reference | error | Referenced STEP entity '#<entityId>' is not defined in the DATA section. |
M1006 | duplicate-entity-id | error | Entity ID '#<entityId>' is declared more than once in the DATA section. |
M1007 | empty-data-section | warning | STEP DATA section contains no entity records. |
M1008 | unsupported-ap-schema | warning | Application Protocol schema '<schema>' may not support complete PMI or B-Rep extraction. |
OpenSCAD
Parametric constructive solid geometry. 8 rules · @modelscript/scad · Source: languages/scad/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
K1001 | SCAD_UNDEFINED_VARIABLE | error | Undefined variable '<name>'. |
K1002 | SCAD_UNDEFINED_FUNCTION | error | Undefined function '<name>'. |
K1003 | SCAD_UNDEFINED_MODULE | error | Undefined module '<name>'. |
K1004 | SCAD_DIVISION_BY_ZERO | error | Division by zero in expression. |
K1005 | SCAD_INVALID_DIMENSION | error | Invalid non-positive dimension (<val>) in '<param>': dimensions must be > 0. |
K1006 | SCAD_ARGUMENT_COUNT | error | Too many arguments to '<name>': expected at most <expected>, got <actual>. |
K1007 | SCAD_UNKNOWN_PARAMETER | error | Unknown parameter '<param>' in call to '<callable>'. |
K1008 | SCAD_DUPLICATE_DECLARATION | warning | Variable '<name>' is assigned multiple times in the same scope. |
CFD (SU2 / OpenFOAM)
Computational fluid dynamics meshes. 8 rules · @modelscript/cfd · Source: languages/cfd/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
C1001 | cfl-stability-violation | warning | Courant-Friedrichs-Lewy stability number '<cfl>' exceeds recommended maximum limit for explicit scheme. |
C1002 | unresolved-mesh-file | error | Referenced grid mesh file '<mesh>' cannot be located or is invalid. |
C1003 | missing-inlet-boundary | warning | CFD domain '<name>' lacks a declared inlet boundary condition or stagnation state. |
C1004 | missing-outlet-boundary | warning | CFD domain '<name>' lacks a declared outlet boundary condition or pressure exit. |
C1005 | unphysical-freestream-mach | error | Freestream Mach number '<mach>' is non-physical or outside valid range [0, 25]. |
C1006 | unphysical-reynolds-number | error | Freestream Reynolds number '<re>' must be strictly positive. |
C1007 | negative-surface-area | error | Aerodynamic reference area '<area>' must be strictly positive. |
C1008 | turbulent-viscosity-ratio | warning | Turbulent eddy viscosity ratio '<ratio>' is non-physical. |
FEA (CalculiX / Abaqus / NASTRAN)
Finite-element structural analysis. 8 rules · @modelscript/fea · Source: languages/fea/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
F1001 | zero-elastic-modulus | error | Material '<mat>' has non-positive Young's modulus '<val>'. |
F1002 | poisson-ratio-limit | error | Poisson's ratio '<val>' for material '<mat>' violates physical stability bounds (-1.0 < nu < 0.5). |
F1003 | unconstrained-rigid-body | warning | Structural mesh '<name>' has only '<count>' constrained boundary nodes; rigid-body motion may be unconstrained. |
F1004 | empty-mesh | error | FEA deck '<name>' does not contain any defined finite elements. |
F1005 | missing-material-definition | error | Element set '<elset>' lacks an assigned material specification or section. |
F1006 | degenerate-element-nodes | error | Element '<elemId>' of type '<type>' contains duplicate or degenerate node references. |
F1007 | negative-yield-stress | error | Plastic yield strength '<val>' for material '<mat>' must be strictly positive. |
F1008 | negative-density | warning | Mass density '<val>' for material '<mat>' must be strictly positive for dynamic analysis. |
C
Numerical & embedded C integration. 10 rules · @modelscript/c · Source: languages/c/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8401 | uninitialized-variable | warning | Local variable '<varName>' may be read before being initialized. |
M8402 | constant-division-by-zero | error | Division or modulo by constant zero detected in arithmetic expression. |
M8403 | array-bounds-overflow | error | Static array subscript '<arrName>[<index>]' exceeds declared dimension bound of <bound>. |
M8404 | unreachable-code | warning | Unreachable statements detected following unconditional 'return', 'break', or 'goto'. |
M8405 | assignment-in-conditional | warning | Assignment operator '=' used inside conditional expression; did you mean '=='? |
M8406 | algebraic-dependency-cycle | error | Procedural algebraic dependency cycle detected without state lag: '<cycle>'. |
M8407 | null-pointer-dereference | error | Dereference of statically known NULL pointer in expression '<expr>'. |
M8408 | function-prototype-mismatch | error | Function '<fnName>' signature conflicts with declaration: expected '<expected>', got '<actual>'. |
M8409 | missing-return-value | error | Non-void function '<fnName>' with return type '<returnType>' reaches end of body without returning a value. |
M8410 | implicit-lossy-conversion | info | Implicit floating-point to integer conversion from '<fromType>' to '<toType>' may cause lossy truncation. |
Fortran
Legacy scientific subroutines. 15 rules · @modelscript/fortran · Source: languages/fortran/src/lints/index.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M4070 | undeclared-variable | error | Variable '<varName>' referenced without declaration under strict typing. |
M4071 | uninitialized-variable | warning | Variable '<varName>' may be used before being assigned a value. |
M4072 | constant-division-by-zero | error | Division by constant zero detected in arithmetic expression. |
M4073 | storage-bounds-overflow | error | Storage array index <arrayName>(<index>) exceeds allocated capacity of <maxCapacity>. |
M4074 | dead-code-after-return | warning | Unreachable statements detected following unconditional RETURN. |
M4075 | do-loop-index-mutation | error | DO-loop index variable '<indexVar>' is modified within its loop body. |
M4076 | procedural-algebraic-loop | warning | Algebraic cycle detected among procedural assignments without time-step lag: <cycleStr>. |
M4077 | common-block-mismatch | error | COMMON block '/<blockName>/' definition conflict: <reason>. |
M4078 | array-dimension-underflow | error | Array '<arrName>' declared with non-positive dimension size (<dim> <= 0). |
M4079 | obsolete-arithmetic-if | info | Three-way arithmetic IF is obsolescent; prefer structured IF/THEN/ELSE. |
M4080 | identifier-mismatch | error | End <unitKind> identifier '<endName>' does not match '<startName>'. |
M4081 | intent-in-mutation | error | Dummy argument '<varName>' declared with 'INTENT(IN)' cannot be modified. |
M4082 | invalid-statement-syntax | error | Syntax error in Fortran statement: <detail>. |
M4083 | unclosed-block | error | Unclosed or mismatched '<blockName>' block structure. |
M4084 | math-domain-violation | error | Intrinsic math function '<fnName>' evaluated outside its real domain with argument '<argVal>'. |
JSBSim
6-DOF flight dynamics. 10 rules · @modelscript/jsbsim · Source: languages/jsbsim/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8901 | missing-aircraft-name | error | JSBSim <fdm_config> element is missing required 'name' attribute. |
M8902 | non-positive-reference-area | error | Wing reference area (<val>) must be strictly positive. |
M8903 | non-positive-wingspan-chord | error | Wing metric '<param>' (<val>) must be strictly positive. |
M8904 | non-positive-empty-weight | error | Aircraft empty weight (<val>) must be strictly positive. |
M8905 | invalid-inertia-tensor | error | Moments of inertia tensor is invalid: <reason>. |
M8906 | missing-aerodynamics-section | error | Aircraft model does not define any aerodynamic force/moment coefficients in <aerodynamics>. |
M8907 | missing-landing-gear | warning | Aircraft model defines no landing gear bogies in <ground_reactions>; ground interaction is disabled. |
M8908 | negative-engine-thrust | error | Engine '<engineName>' specifies negative maximum thrust (<val>). |
M8909 | undefined-fcs-input | warning | FCS channel '<channelName>' references input property '<inputProperty>' not bound in flight control. |
M8910 | unrealistic-cg-location | warning | Center of gravity (<cgX>) is significantly far from aerodynamic center (<aeroX>); aircraft may have extreme pitch instability. |
NASA ROCETS
Liquid rocket engine transients. 14 rules · @modelscript/rocets · Source: languages/rocets/src/lints/index.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8001 | unconnected-fluid-port | error | Fluid port '<comp>.<port>' is not connected in the propellant flow circuit. |
M8002 | fluid-type-mismatch | error | Incompatible fluid stream connection '<conn>': cannot mix '<fromFluid>' into '<toFluid>' without a combustion chamber. |
M8003 | shaft-power-imbalance | error | Turbopump shaft '<shaftId>' power imbalance: <reason>. |
M8004 | unbalanced-flow-split | error | Mass conservation failure at junction '<junct>': inlet and outlet flow mismatch exceeds tolerance (|\u0394m| = <value> kg/s). |
M8005 | pump-cavitation-risk | warning | Pump '<pumpId>' inlet suction pressure is below required NPSH margin (margin: <value> kPa). Cavitation risk. |
M8006 | negative-chamber-pressure | error | Non-physical pressure at '<comp>': computed pressure is <val> Pa (must be > 0). |
M8007 | combustion-temperature-limit | warning | Gas temperature at '<comp>' (<value> K) exceeds throat thermal structural limit (<limitK> K). |
M8008 | invalid-valve-schedule | error | Invalid valve actuation profile for '<valveId>': <reason>. |
M8009 | choked-flow-inconsistency | warning | Supersonic nozzle expansion at '<comp>' is not choked (pressure ratio Pc/Pa = <value> < 1.89). |
M8010 | user-fortran-routine-error | error | Fortran user routine in component '<comp>' has syntax or semantic error: <msg>. |
M8011 | extreme-mixture-ratio | warning | Engine mixture ratio (O/F = <value>) at '<comp>' is outside stable combustion limits. |
M8012 | missing-fluid-table | error | Propellant fluid table for '<fluid>' is not loaded in the session. |
M8013 | turbine-overspeed-hazard | warning | Turbopump shaft '<shaft>' speed (<value> RPM) exceeds maximum burst rating (<maxRpm> RPM). |
M8014 | closed-flow-circuit | error | Pump '<pumpId>' discharge is completely blocked with no open valve or recirculation path. |
CCSDS
Astrodynamics & spacecraft telemetry. 8 rules · @modelscript/ccsds · Source: languages/ccsds/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8201 | sub-orbital-impact-trajectory | error | Sub-orbital pericenter radius <rp> km is below Earth radius <earthRadius> km, resulting in atmospheric re-entry or impact. |
M8202 | telemetry-bit-packing-overlap | error | Telemetry bit packing overlap in container '<containerName>': entry '<entryName>' starts at bit <bitOffset> before previous entry '<prevEntry>' ends at bit <endBit>. |
M8203 | hyperbolic-unbounded-orbit | warning | Orbit eccentricity <eccentricity> indicates a hyperbolic or parabolic trajectory. |
M8204 | unrecognized-reference-frame | error | Unrecognized or non-inertial reference frame '<refFrame>'. |
M8205 | missing-epoch-timestamp | error | Ephemeris point missing valid timestamp at index <index>. |
M8206 | non-monotonic-ephemeris-epochs | error | Ephemeris timestamp '<epoch>' is not strictly greater than previous timestamp '<prevEpoch>'. |
M8207 | duplicate-parameter-name | error | Duplicate telemetry parameter declaration for '<paramName>'. |
M8208 | negative-spacecraft-mass | error | Spacecraft mass <massKg> kg must be strictly positive. |
EASY5
Dynamic simulation & linear control. 12 rules · @modelscript/easy5 · Source: languages/easy5/src/lints/index.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7001 | unconnected-input-port | warning | Input port '<comp>.<port>' has no incoming connection. |
M7002 | csmf-algebraic-loop | error | Direct feedthrough algebraic loop detected with no continuous state or delay: <value>. |
M7003 | duplicate-component-id | error | Duplicate component identifier '<id>' in model. |
M7004 | uninitialized-state | info | Continuous state in component '<comp>' defaults to 0.0 with no explicit S0 specified. |
M7005 | improper-transfer-function | error | Transfer function in component '<comp>' is improper: numerator degree (<degNum>) exceeds denominator degree (<degDen>). |
M7006 | parameter-out-of-bounds | error | Parameter '<param>' in component '<comp>' is out of valid bounds: <reason>. |
M7007 | port-dimension-mismatch | error | Connection width mismatch from '<from>' (dim <dim1>) to '<to>' (dim <dim2>). |
M7008 | state-index-out-of-bounds | error | State index S(<idx>) in component '<comp>' exceeds allocated continuous states (<max>). |
M7009 | sample-rate-mismatch | warning | Sample rate mismatch between '<from>' (<rate1>s) and '<to>' (<rate2>s) without rate transition block. |
M7010 | user-fortran-syntax-error | error | User Fortran subroutine in '<comp>' has defect: <detail> |
M7011 | unstable-linear-pole | warning | Component '<comp>' has open-loop pole in right-half plane (Re = +<value>), indicating open-loop instability. |
M7012 | table-extrapolation-hazard | warning | Component '<comp>' references table '<tableName>' without bounded extrapolation protection. |
AUTOSAR
Classic & Adaptive software architecture. 15 rules · @modelscript/autosar · Source: languages/autosar/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7401 | unconnected-mandatory-port | error | Required port '<portName>' on component '<compName>' (<typeName>) is unconnected in composition '<compSwc>'. |
M7402 | interface-mismatch | error | Interface mismatch in connector '<connName>': Provider port '<pPort>' provides '<pIf>' while requester port '<rPort>' requires '<rIf>'. |
M7403 | data-element-type-mismatch | warning | Data element '<deName>' in interface '<ifName>' has no data type reference. |
M7403 | invalid-runnable-period | error | Timing event for runnable '<symbol>' defines non-positive period (<period> s). |
M7404 | duplicate-short-name | error | Duplicate SHORT-NAME '<name>' detected in package '<pkg>'. |
M7405 | invalid-data-type-mapping | error | Invalid data type mapping for '<dtName>': <reason>. |
M7405 | wcet-budget-overflow | error | Execution time WCET (<wcetMs> ms) of runnable '<runnableName>' exceeds its timing event period (<periodMs> ms). |
M7406 | circular-composition-dependency | error | Circular software component composition dependency detected: <path>. |
M7406 | overlapping-pdu-bits | error | Signals '<sigA>' and '<sigB>' overlap bit index <bitIdx> in PDU '<pduName>'. |
M7407 | missing-software-address-method | warning | Variable data prototype '<variable>' lacks a declared SwAddrMethod memory section mapping. |
M7407 | pdu-exceeds-frame-capacity | error | PDU '<pduName>' length (<pduLen> bytes) exceeds CAN frame '<frameName>' payload capacity (<frameLen> bytes). |
M7408 | cyclic-runnable-dependency | error | Cyclic data dependency detected between runnables: '<value>'. |
M7408 | incompatible-port-interface-direction | error | Port '<portName>' interface direction violation: <reason>. |
M7409 | missing-internal-behavior | warning | Atomic software component '<swcName>' lacks internal behavior definition. |
M7410 | untriggered-runnable | info | Runnable entity '<rName>' in SWC '<swcName>' has no associated RTE trigger event. |
MATLAB Simulink
Block diagrams & control systems. 10 rules · @modelscript/simulink · Source: languages/simulink/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7201 | unconnected-input-port | error | Input port <portNumber> on block '<blockName>' (<blockType>) is unconnected. All input ports must be driven or terminated with a Ground block. |
M7202 | direct-feedthrough-algebraic-loop | error | Direct-feedthrough algebraic loop detected across blocks: [<loopNames>]. Control loops with direct algebraic feedthrough must contain at least one state delay (Integrator or UnitDelay) or will require an iterative non-linear solver. |
M7203 | unresolved-subsystem-link | error | SubSystem block '<blockName>' has no defined sub-diagram or unresolved library reference. |
M7204 | port-index-out-of-bounds | error | Block '<blockName>' has invalid port index <portNumber>. Port numbers must be positive integers (1, 2, ...). |
M7205 | multirate-sample-time-conflict | warning | Block '<blockName>' has invalid SampleTime <sampleTime>. SampleTime must be >= 0 (discrete) or -1 (inherited). |
M7206 | non-numeric-parameter | error | Block '<blockName>' parameter '<paramName>' contains non-finite value <value>. Parameters must evaluate to finite Real numbers. |
M7207 | invalid-bus-selector | error | BusSelector block '<blockName>' references signal '<signalName>' absent from the incoming bus schema from '<sourceBlock>'. |
M7208 | duplicate-block-name | error | Duplicate block name '<blockName>' found in subsystem scope '<systemName>'. Block names within a system must be unique. |
M7209 | divide-by-zero-risk | warning | Product/Divide block '<blockName>' performs division operations with inputs '<inputs>'; ensure denominator signal is protected against division by zero. |
M7210 | missing-integrator-initial-condition | info | Integrator block '<blockName>' does not specify an explicit 'InitialCondition'; defaulting to 0.0. |
GT-SUITE
Engine, powertrain & thermal flow. 15 rules · @modelscript/gtsuite · Source: languages/gtsuite/src/lints/index.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M9001 | cfl-acoustic-violation | warning | Pipe '<pipeId>' cell length violates acoustic CFL condition: simulation dt (<value> \xB5s) exceeds stability limit (<value> \xB5s). |
M9002 | compressor-surge-hazard | warning | Compressor '<compId>' operating point (PR = <value>, \u1E41 = <value> kg/s) falls into the aerodynamic surge region. |
M9003 | compressor-choke-limit | warning | Compressor '<compId>' mass flow (<value> kg/s) exceeds maximum choke/stonewall sonic flow capacity. |
M9004 | valve-profile-overlap-error | error | Valve '<valveId>' kinematic profile defect: <reason>. |
M9005 | compression-ratio-invalid | error | Cylinder '<cylId>' compression ratio (<value>) is physically unrealistic (must be between 6.0 and 26.0). |
M9006 | unconnected-plenum-node | error | Flow split or plenum '<plenumId>' has no connected flow paths or boundary conditions. |
M9007 | discharge-coefficient-out-of-bounds | warning | Valve or orifice '<valveId>' discharge coefficient (<value>) is non-physical (must satisfy 0.0 < Cd <= 1.0). |
M9008 | knock-margin-deficit | warning | Cylinder '<cylId>' operates in severe autoignition/knock hazard (CR = <value>, ignition anchor = <value>\xB0 CA BTDC). |
M9009 | missing-boundary-pressure | error | Environment node '<envId>' has invalid or uninitialized static pressure (<= 0 Pa). |
M9010 | turbine-expansion-ratio-excess | warning | Turbine '<turbId>' expansion ratio (<value>) exceeds single-stage choked limit (> 4.5). |
M9011 | intercooler-effectiveness-invalid | warning | Intercooler '<icId>' thermal effectiveness (<value>) violates 2nd Law of Thermodynamics (must satisfy 0.0 < eff <= 1.0). |
M9012 | air-fuel-equivalence-out-of-bounds | error | Air-fuel equivalence ratio lambda (<value>) is outside combustible flammability limits (0.50 <= lambda <= 2.50). |
M9013 | negative-pipe-dimensions | error | Pipe '<pipeId>' has non-positive <dim> (<value> m). |
M9014 | injector-timing-conflict | error | Injector '<injId>' start of injection (<value>\xB0 CA) falls outside valid cycle window (-360\xB0 to +720\xB0). |
M9015 | isolated-shaft-inertia | warning | Turbocharger shaft '<shaftId>' has no linked compressor or turbine rotating components. |
ASAM OpenDRIVE
Road network geometry. 8 rules · @modelscript/opendrive · Source: languages/opendrive/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7801 | road-tangency-discontinuity | error | Tangency discontinuity between geometry segments in road '<roadId>' at s=<s>: position gap <value>m, heading gap <value>rad. |
M7802 | unlinked-lane-boundary | error | Unlinked lane connection: lane '<laneId>' in road '<roadId>' links to non-existent <dir> lane '<targetId>'. |
M7803 | clothoid-curvature-divergence | error | Clothoid curvature rate of change in road '<roadId>' at s=<s> diverges (<value> 1/m^2). |
M7804 | overlapping-junction-paths | warning | Connecting path in junction '<junctionId>' between road '<road1>' and '<road2>' conflicts without priority control. |
M7805 | elevation-gradient-extreme | warning | Extreme elevation gradient in road '<roadId>' at s=<s>: slope <value>% exceeds standard 15% safety threshold. |
M7806 | negative-lane-width | error | Negative or zero lane width in lane '<laneId>' of road '<roadId>' at sOffset=<sOffset>m. |
M7807 | duplicate-road-id | error | Duplicate road ID '<roadId>' detected in roadway network. |
M7808 | missing-center-lane | error | Lane section in road '<roadId>' at s=<s> is missing mandatory center lane (ID 0). |
ASAM OpenSCENARIO
Driving scenarios & RSS safety margins. 10 rules · @modelscript/openscenario · Source: languages/openscenario/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8501 | dangling-entity-reference | error | Entity '<entityName>' referenced in '<contextName>' is not defined in Entities catalog. |
M8502 | unsatisfiable-trigger | warning | Trigger condition '<conditionName>' is unsatisfiable: <reason>. |
M8503 | unreachable-road-position | error | Road position specifies invalid road ID '<roadId>' or lane index '<laneId>'. |
M8504 | cyclic-event-trigger | error | Circular trigger condition detected between event '<eventA>' and event '<eventB>'. |
M8505 | missing-ego-entity | error | Scenario does not define an autonomous vehicle under test ('ego' vehicle). |
M8506 | negative-speed-target | error | Speed action '<actionName>' specifies negative target velocity '<speed>' m/s. |
M8507 | excessive-deceleration | warning | Action demands deceleration '<decel>' m/s² for '<entityName>', exceeding vehicle limit '<limit>' m/s². |
M8508 | imminent-collision-initial-state | error | Initial positions for '<entityA>' and '<entityB>' violate collision envelope (distance: <value> m). |
M8509 | empty-maneuver-group | warning | Maneuver group '<groupName>' specifies no actors or no maneuvers. |
M8510 | invalid-condition-delay | error | Trigger condition '<condName>' specifies negative activation delay '<delay>' s. |
GENSYS
Railway vehicle dynamics & track. 6 rules · @modelscript/gensys · Source: languages/gensys/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
G1001 | invalid-body-mass | error | Body '<name>' has non-positive mass (<mass> kg). |
G1002 | non-positive-inertia | error | Body '<name>' has non-positive principal inertia tensor components. |
G1003 | dangling-body1-reference | error | Coupling '<name>' references unknown body1 '<body1>'. |
G1004 | dangling-body2-reference | error | Coupling '<name>' references unknown body2 '<body2>'. |
G1005 | invalid-track-gauge | error | Track specification defines non-positive or unphysical gauge (<gauge> m). |
G1006 | unclosed-rail-profile | warning | Wheel-rail contact profile '<profileName>' curve has discontinuous slope or is unclosed. |
SIMPACK
Spatial multibody dynamics. 6 rules · @modelscript/simpack · Source: languages/simpack/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
K7001 | invalid-body-mass | error | Body '<id>' has non-positive mass (<mass> kg). |
K7002 | dangling-body-reference | error | Marker '<markerId>' references unknown parent body '<bodyId>'. |
K7003 | unknown-from-marker | error | Joint '<jointId>' references unknown from-marker '<marker>'. |
K7004 | unknown-to-marker | error | Joint '<jointId>' references unknown to-marker '<marker>'. |
K7005 | overconstrained-mobility | warning | Mechanism is overconstrained according to Grübler-Kutzbach criterion (Mobility = <mobility> < 0). |
K7006 | baumgarte-divergence | warning | Joint '<jointId>' Baumgarte stabilization parameter '<param>' is non-positive or divergent (<val>). |
PSCAD / EMTDC
Electromagnetic transients (EMT). 17 rules · @modelscript/pscad · Source: languages/pscad/src/lints/index.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M6001 | floating-electrical-node | error | Electrical node '<nodeName>' is floating with no closed connections. |
M6002 | transformer-winding-mismatch | warning | Transformer '<xfmrName>' <side> rating (<ratedKv> kV) does not match connected bus base (<busKv> kV). |
M6003 | invalid-parameter-bounds | error | Component '<elemName>' parameter '<paramName>' = <val> is invalid: <reason>. |
M6004 | weak-grid-warning | warning | Point of Interconnection '<poiBus>' has low Short-Circuit Ratio (SCR = <value> < 1.5). IBR control stability risks detected. |
M6005 | csmf-unresolved-input | error | CSMF control block '<blockId>' references unresolved upstream signal block '<missingInputId>'. |
M6006 | line-travel-time-underflow | error | Transmission line '<lineId>' wave propagation delay (<value> us) is smaller than simulation time step (<value> us). Reduce time step or use a lumped pi-section model. |
M6007 | sync-machine-reactance-order | error | Synchronous machine '<machineId>' violates physical d-axis reactance hierarchy (Xd=<xd> >= Xd'=<xdPrime> >= Xd''=<xdSub> pu required). |
M6008 | mov-arrester-under-rated | warning | MOV surge arrester '<arresterId>' reference voltage (<value> kV) is below connected bus '<busName>' nominal phase-to-ground peak voltage (<value> kV), causing continuous thermal conduction. |
M6009 | duplicate-component-id | error | Duplicate component or bus ID '<id>' declared in schematic module '<modName>'. |
M6010 | bus-voltage-conflict | error | Conductive net shorts bus '<busA>' (<kvA> kV) directly to bus '<busB>' (<kvB> kV) without an intervening transformer. |
M6011 | port-domain-mismatch | error | Wire '<wireId>' connects control signal port '<sigPort>' directly to 3-phase electrical port '<elecPort>'. |
M6012 | csmf-algebraic-loop | error | CSMF control blocks form an algebraic loop with no state or delay element: <cycle>. |
M6013 | parallel-ideal-sources | error | Ideal voltage sources <sourceIds> are connected in parallel at bus '<busName>', making the nodal matrix singular. |
M6014 | parallel-low-impedance-sources | warning | Voltage sources <sourceIds> are connected in parallel at bus '<busName>' with no declared source impedance; a stiff default impedance is assumed and large circulating currents may result. |
M6015 | limiter-permanently-saturated | warning | Limiter '<blockId>' is permanently saturated: its input stays within [<inLo>, <inHi>] but its output limits are [<limLo>, <limHi>]. |
M6016 | component-check-failed | error | Component '<cmpName>' check failed: <reason>. |
M6017 | component-check-warning | warning | Component '<cmpName>' check warning: <reason>. |
PSS/E
Transmission power flow. 13 rules · @modelscript/psse · Source: languages/psse/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
P1001 | bus-not-found | error | <entityKind> '<id>' references non-existent <busRole>bus <busId>. |
P1002 | generator-negative-power | warning | Generator '<genId>' at bus <busId> has negative active power output (<pg> MW). |
P1003 | duplicate-equipment-id | error | Duplicate generator ID '<genId>' at bus <busId>. |
P2001 | isolated-bus | warning | Bus <busId> ('<busName>') is isolated with 0 in-service connecting branches or transformers. |
P2002 | missing-slack-bus | error | Power network base case contains 0 slack/swing buses (Bus Type 3). Power flow solution cannot be anchored. |
P2003 | multiple-slack-buses | warning | Power network base case contains <count> swing buses without explicit multi-island partitioning. |
P2004 | voltage-out-of-bounds | warning | Initial voltage magnitude at bus <busId> (<value> pu) is outside standard operational limits [0.8, 1.2 pu]. |
P3001 | generator-reactive-limits-inverted | error | Generator '<genId>' at bus <busId> has inverted reactive limits: Qmin (<qMin> MVAR) > Qmax (<qMax> MVAR). |
P3002 | generator-power-limits-inverted | error | Generator '<genId>' at bus <busId> has inverted active power limits: Pmin (<pMin> MW) > Pmax (<pMax> MW). |
P3003 | generator-scheduled-voltage-bounds | warning | Generator '<genId>' scheduled voltage Vs = <vs> p.u. is outside the typical operating band [0.8, 1.2]. |
P4001 | branch-invalid-reactance | error | Transmission branch '<ckt>' between bus <fromBus> and <toBus> has zero or negative reactance X = <x> p.u. |
P4002 | branch-base-kv-mismatch | warning | Branch '<ckt>' connects bus <fromBus> (<fromKv> kV) to bus <toBus> (<toKv> kV) without a transformer. |
P4003 | transformer-tap-out-of-bounds | warning | Transformer '<ckt>' between bus <fromBus> and <toBus> has off-nominal tap ratio <ratio> outside typical limits [0.7, 1.3]. |
OpenDSS
Unbalanced distribution & DER hosting. 10 rules · @modelscript/opendss · Source: languages/opendss/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8401 | unconnected-bus-node | error | <elemType> '<elemName>' references undefined bus node '<busName>'. |
M8402 | phase-count-mismatch | error | Element '<elemName>' (<elemPhases> phases) connected to bus '<busName>' with different phase count (<busPhases>). |
M8402 | transformer-impedance-zero | error | Transformer '<xfmrName>' specifies non-positive leakage reactance (xhl=<xhl>); must be > 0. |
M8403 | load-pf-out-of-range | warning | Load '<loadName>' specifies power factor (<pf>) outside valid range (0 < |pf| <= 1.0). |
M8403 | transformer-voltage-mismatch | warning | Transformer '<xfmrName>' winding <winding> rated voltage (<value> kV) differs from nominal bus voltage (<value> kV). |
M8404 | reverse-power-hosting-risk | warning | Total DER generation capacity on feeder '<feederName>' (<value> kW) exceeds upstream transformer thermal rating (<value> kVA). |
M8405 | missing-circuit-definition | error | OpenDSS script defines circuit elements without declaring a 'New Circuit' voltage source. |
M8406 | negative-load-power | error | Load '<loadName>' specifies negative active power (<value> kW); use Generator or Storage for net generation. |
M8407 | zero-or-negative-line-length | error | Line '<lineName>' specifies invalid non-positive length (<len>). |
M8408 | missing-line-code | error | Line '<lineName>' references undefined LineCode '<codeName>'. |
OLGA
Transient multiphase flow assurance. 13 rules · @modelscript/olga · Source: languages/olga/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7001 | cfl-condition-violation | error | Simulation timestep maxDt (<maxDt> s) violates convective/acoustic CFL stability limit (<value> s). |
M7002 | invalid-pipe-dimensions | error | Pipe section '<sectionId>' has invalid geometry: <reason>. |
M7003 | missing-boundary-condition | error | Flowpath '<flowpath>' has no defined <missing> boundary condition. |
M7004 | steep-elevation-warning | warning | Pipe section '<sectionId>' has steep inclination (<value>\xB0), risking hydrodynamic slugging. |
M7005 | fully-closed-choke-hazard | error | Choke valve '<chokeName>' is fully closed (opening = 0) with no active bypass route. |
M7006 | severe-slugging-hazard | warning | Severe slugging geometry detected on flowpath '<flowpath>' (seabed dip to steep riser). |
M7007 | pig-stuck-hazard | error | Pig '<pigName>' required differential pressure (<value> bar) exceeds maximum available (<value> bar). |
M7008 | pvt-table-missing-or-invalid | error | PVT fluid table validation error: <detail>. |
M7009 | wax-deposition-risk | warning | Fluid temperature (<value>\xB0C) on flowpath '<flowpath>' drops below Wax Appearance Temperature (<value>\xB0C). |
M7010 | sand-erosion-or-dropout-hazard | warning | Sand transport issue on section '<sectionId>': <reason>. |
M7011 | sour-service-metallurgy-violation | error | H2S partial pressure (<value> bar) on flowpath '<flowpath>' violates NACE MR0175 material limit (<value> bar). |
M7012 | asphaltene-precipitation-hazard | warning | Operating pressure (<value> bar) on flowpath '<flowpath>' enters Asphaltene Onset Pressure envelope (<value> bar). |
M7013 | heatexchanger-parameter-violation | error | Heat exchanger '<hxName>' parameter violation: <detail>. |
PipelineStudio
Gas & liquid pipeline hydraulics. 12 rules · @modelscript/lps · Source: languages/lps/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8001 | maop-exceeded | error | Pipe '<pipeName>' operating pressure (<value> bar) exceeds Maximum Allowable Operating Pressure (<value> bar). |
M8002 | compressor-surge-hazard | error | Compressor '<compName>' operating flow (<value> m\xB3/h) is below the aerodynamic surge limit (<value> m\xB3/h). |
M8003 | compressor-stonewall-limit | warning | Compressor '<compName>' throughput (<value> m\xB3/h) approaches sonic choke/stonewall limit (<value> m\xB3/h). |
M8004 | unconnected-pipeline-node | error | Node '<nodeName>' is isolated and has no connecting pipes or equipment links. |
M8005 | delivery-pressure-deficit | error | Delivery node '<nodeName>' is hydraulically unreachable from any supply or storage cavern. |
M8006 | erosional-velocity-hazard | warning | Gas velocity in pipe '<pipeName>' (<value> m/s) exceeds API RP 14E erosional limit (<value> m/s). |
M8007 | liquid-column-separation | error | Transient pressure in pipe '<pipeName>' (<value> bar) drops below liquid vapor pressure (<value> bar), risking cavitation. |
M8008 | hydrogen-embrittlement-risk | warning | Hydrogen blend fraction in pipe '<pipeName>' (<value>%) exceeds 10% on steel without fracture toughness certification. |
M8009 | batch-transmix-excess | warning | Batch transmix interface on pipe '<pipeName>' exceeds allowable contamination threshold: <detail>. |
M8010 | joule-thomson-freezing | warning | Joule-Thomson throttling across regulator '<regName>' reduces outlet temperature to <value>\xB0C, risking ice/hydrate blockage. |
M8011 | pump-npsh-deficit | error | Pump '<pumpName>' net positive suction head available (<value> m) is below required NPSHr (<value> m). |
M8012 | line-pack-depletion-risk | warning | Network total line pack is depleting rapidly: <detail>. |
ECLIPSE
Reservoir engineering. 10 rules · @modelscript/eclipse · Source: languages/eclipse/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8701 | missing-reservoir-phases | error | RUNSPEC section does not specify any active fluid phases ('OIL', 'WATER', or 'GAS'). |
M8702 | invalid-grid-dimensions | error | Reservoir grid dimensions must be strictly positive integers (got <nx> x <ny> x <nz>). |
M8703 | porosity-out-of-range | error | Reservoir porosity (<val>) must be strictly positive and less than 1.0. |
M8704 | negative-permeability | error | Reservoir permeability '<prop>' (<val> mD) must be strictly positive. |
M8705 | non-monotonic-pvt-table | error | PVT table '<table>' has non-monotonic pressure progression (<prevP> -> <curP>). |
M8706 | dangling-well-completion | error | Well completion for '<wellName>' at (<i>,<j>,<k>) exceeds grid boundary (<nx>,<ny>,<nz>). |
M8707 | non-monotonic-saturation-table | error | Relative permeability table '<table>' has non-monotonic saturation progression (<prevSat> -> <curSat>). |
M8708 | undefined-well-reference | error | Keyword '<contextKeyword>' references well '<wellName>' not defined in WELSPECS. |
M8709 | invalid-well-control-target | error | Well '<wellName>' specifies invalid control target for '<mode>' (<val>). |
M8710 | negative-formation-volume-factor | error | PVT property specifies non-positive formation volume factor B_<phase> (<fvf>). |
RELAP5-3D
Reactor thermal-hydraulics & kinetics. 10 rules · @modelscript/relap5 · Source: languages/relap5/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8601 | dangling-volume-connection | error | Junction '<junctionId>' specifies undefined <end>-volume '<volId>'. |
M8602 | unclosed-trip-logic-cutset | error | Trip logic '<parentTripId>' references undefined child trip ID '<childTripId>'. |
M8603 | negative-heat-capacity | error | Heat structure '<hsId>' specifies non-positive conductivity (<k> W/m-K) or capacity (<cp> J/m³-K). |
M8604 | sonic-choked-flow-singularity | warning | Junction '<junctionId>' flagged for critical sonic choked flow transition. |
M8605 | missing-kinetics-delayed-groups | error | Point kinetics model specifies <count> delayed groups; standard reactor kinetics requires 6 precursor groups. |
M8606 | negative-prompt-neutron-lifetime | error | Prompt neutron generation time '<lambda>' s must be strictly positive. |
M8607 | adverse-volume-elevation | warning | Volume '<volId>' elevation change dz (<dz> m) exceeds physical volume length (<length> m). |
M8608 | negative-junction-loss-coefficient | error | Junction '<junctionId>' specifies negative form loss coefficient (K_forw=<kForw>, K_rev=<kRev>). |
M8609 | invalid-time-step-bounds | error | Minimum time step (<minDt> s) exceeds maximum time step (<maxDt> s). |
M8610 | negative-pressure-state | error | Volume '<volId>' specifies non-positive thermodynamic pressure (<p> Pa). |
SIMA / SIMO / RIFLEX
Marine operations & riser dynamics. 15 rules · @modelscript/sima · Source: languages/sima/src/lints/error-codes.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7001 | negative-metacentric-height | error | Hydrostatic instability on vessel '<vessel>': negative <gmType> metacentric height (GM = <value> m < 0). |
M7002 | line-length-underflow | error | Mooring line '<line>' total length (<value> m) is less than water depth (<value> m), causing immediate vertical anchor snap load. |
M7003 | acoustic-courant-violation | error | Time step dt=<value>s exceeds Courant axial acoustic wave limit (<value>s) for segment '<seg>'. |
M7004 | unconnected-attachment-node | error | Mooring line '<line>' references unresolved fairlead attachment '<fairleadId>' not found on any vessel. |
M7005 | rao-frequency-extrapolation | warning | Environmental wave peak frequency (<value> rad/s) is outside hydrodynamic RAO table range [<value>, <value>] rad/s. |
M7006 | invalid-stiffness-hierarchy | error | Non-physical cross-sectional stiffness on segment '<seg>': <prop> (<val>) must be strictly positive. |
M7007 | unphysical-seabed-friction | warning | Unrealistic seabed friction coefficient (\u03BC = <value>): expected value between 0.0 and 2.0. |
M7008 | missing-hydrostatic-matrix | error | Vessel '<vessel>' has zero or missing hydrostatic restoring matrix C; floating body cannot equilibrate in heave/roll/pitch. |
M7009 | duplicate-line-identifier | error | Duplicate line identifier '<id>' declared in the slender system. |
M7010 | slack-compression-hazard | warning | Mooring line '<line>' has negligible pre-tension under severe sea state (Hs > 8m), risking compression slack-snap loading. |
M7011 | morison-drag-unspecified | warning | Segment '<seg>' in wave zone has zero Morison drag coefficient (Cd = 0); hydrodynamic damping will be neglected. |
M7012 | anchor-uplift-warning | warning | Catenary line '<line>' exhibits vertical uplift angle (<value>\xB0) at anchor; drag-embedment anchors will pull out. |
M7013 | mass-matrix-asymmetric | error | Vessel '<vessel>' structural mass matrix is asymmetric at index (<r>, <c>). |
M7014 | qtf-symmetry-violation | warning | Vessel '<vessel>' 2nd-order drift force QTF matrix violates conjugate symmetry. |
M7015 | exceeds-minimum-bend-radius | error | Line '<line>' minimum radius of curvature (<value> m) is below allowable MBR (<value> m). |
SPICE
Analog circuit simulation. 10 rules · @modelscript/spice · Source: languages/spice/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7101 | spice-floating-node | error | Floating node '<nodeName>' has no DC reference path to ground. |
M7102 | spice-voltage-loop | error | Voltage source '<vName>' forms a closed loop of ideal voltage sources without series resistance. |
M7103 | spice-current-cutset | error | Node '<nodeName>' is connected strictly to ideal current sources (current cutset). |
M7104 | spice-unresolved-subcircuit | error | Subcircuit '<subName>' is referenced by '<compName>' but not defined. |
M7105 | spice-invalid-passive-value | error | Passive component '<compName>' has invalid non-positive value <val>. |
M7106 | spice-timestep-violation | error | Transient analysis directive specifies invalid timestep '<tstep>' or stop time '<tstop>'. |
M7107 | spice-duplicate-device | error | Duplicate component name '<compName>' detected in circuit scope. |
M7108 | spice-missing-model | error | Active device '<compName>' references undefined model '<modelName>'. |
M7109 | spice-pin-count-mismatch | error | Subcircuit instance '<compName>' connects <nodeCount> pins but definition '<subName>' expects <portCount> ports. |
M7110 | spice-malformed-directive | warning | Malformed or unsupported directive '<dirName>'. |
Verilog-A / AMS
Analog compact device models. 10 rules · @modelscript/verilog-a · Source: languages/verilog-a/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7601 | unassigned-analog-branch | error | Electrical port pair '<p>' and '<n>' has no constitutive branch equation in analog block. |
M7602 | discontinuous-derivative-expression | warning | Discontinuous time-derivative operator '<func>()' used inside conditional branch statement. |
M7603 | invalid-parameter-range | error | Parameter '<name>' default value <val> violates declared range '<range>'. |
M7604 | unbounded-exponential-growth | warning | Unbounded exponential function 'exp()' used instead of safe 'limexp()' in '<ctx>'. |
M7605 | port-discipline-mismatch | error | Port '<port>' has no declared discipline or mismatch with module domain. |
M7606 | undefined-node-reference | error | Branch access '<branch>' references undeclared node '<node>'. |
M7607 | duplicate-module-declaration | error | Duplicate module declaration for '<name>'. |
M7608 | zero-resistance-branch | error | Potential contribution '<branch>' forms an unconstrained ideal short-circuit. |
M7609 | floating-internal-node | warning | Internal node '<node>' is declared but never referenced in any analog branch equation. |
M7610 | unsupported-analog-primitive | warning | Unsupported or deprecated analog primitive '<primitive>'. |
IBIS
I/O buffer behavioral models. 9 rules · @modelscript/ibis · Source: languages/ibis/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8303 | non-monotonic-iv-curve | warning | IBIS model '<modelName>' contains non-monotonic slope in '<tableType>' table between <value>V and <value>V. |
M8305 | missing-pin-model-binding | error | Component pin '<pinName>' references undefined model '<modelName>'. |
M8316 | missing-component-pins | error | Component '<compName>' declaration has no defined pins in '[Pin]' section. |
M8317 | invalid-voltage-range | error | IBIS model '<modelName>' has invalid [Voltage Range]: min (<value>V) is greater than max (<value>V). |
M8318 | clamping-diode-divergence | warning | Model '<modelName>' clamp table '<clampType>' diverges to excessive current (<value>A). |
M8319 | missing-pullup-pulldown | error | Driver model '<modelName>' of type '<modelType>' is missing both I/V tables ([Pullup]/[Pulldown]) and [Ramp] slew rates. |
M8320 | negative-die-capacitance | error | IBIS model '<modelName>' specifies non-positive die capacitance C_comp '<val>'. |
M8321 | negative-package-parasitic | error | Component '<compName>' package parasitic '<param>' has non-positive value '<val>'. |
M8322 | no-models-defined | error | IBIS file contains no buffer [Model] definitions. |
Touchstone
RF & signal-integrity S-parameters. 10 rules · @modelscript/touchstone · Source: languages/touchstone/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8301 | passivity-violation | error | N-port scattering matrix violates passivity criterion (spectral norm <norm> > 1.0) at frequency <freq>. |
M8302 | causality-violation | error | Kramers-Kronig causality relation violated across frequency sweep: '<detail>'. |
M8304 | frequency-grid-non-monotonic | error | Frequency grid is not monotonically increasing: step from <prevFreq> to <currFreq> is non-increasing. |
M8306 | missing-option-line | warning | Missing '#' option line; defaulting to '# GHz S MA R 50'. |
M8307 | invalid-parameter-format | error | Invalid Touchstone parameter token or format '<token>'. |
M8308 | incomplete-matrix-data | error | Incomplete N-port matrix row: expected <expected> values, received <received>. |
M8309 | negative-reference-resistance | error | Reference resistance '<r>' must be strictly positive. |
M8310 | asymmetric-reciprocal-network | warning | Asymmetry in reciprocal S-parameter network: |S<i><j> - S<j><i>| = <diff> exceeds threshold. |
M8311 | no-frequency-points | error | Touchstone file contains no valid frequency parameter points. |
M8312 | duplicate-frequency-point | error | Duplicate frequency sample point '<freq>' encountered in sweep. |
URDF / Xacro
Robot kinematics & dynamics. 8 rules · @modelscript/urdf · Source: languages/urdf/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7501 | unresolved-parent-link | error | Joint '<jointName>' references non-existent parent link '<linkName>'. |
M7502 | kinematic-loop | error | Closed kinematic chain or duplicate parent detected at link '<linkName>' (URDF requires open tree). |
M7503 | invalid-inertia-tensor | error | Link '<linkName>' defines non-physical inertia tensor: <reason>. |
M7504 | invalid-joint-limits | error | Joint '<jointName>' defines invalid limits (lower: <lower> >= upper: <upper>). |
M7505 | missing-mesh-resource | warning | Visual mesh URI '<uri>' on link '<linkName>' may not resolve at runtime. |
M7506 | massless-link | warning | Link '<linkName>' has zero mass and no inertial specification. |
M7507 | zero-norm-joint-axis | error | Joint '<jointName>' defines a zero-norm rotation/translation axis [0, 0, 0]. |
M7508 | continuous-joint-with-limits | warning | Joint '<jointName>' is declared 'continuous' but specifies upper/lower limits. |
PLCopen / IEC 61131-3
PLC control software. 10 rules · @modelscript/plcopen · Source: languages/plcopen/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7701 | unassigned-variable-read | error | Variable '<name>' is read before being assigned or initialized in POU '<pouName>'. |
M7702 | cyclic-task-overrun | warning | Computational complexity in task '<taskName>' (<stmtCount> statements) may exceed cycle time '<interval>'. |
M7703 | recursive-pou-call | error | Recursive invocation of POU '<calleeName>' detected in '<callerName>'. Recursion is prohibited in IEC 61131-3. |
M7704 | io-mapping-collision | error | Hardware I/O address collision at '<address>': multiple variables ('<var1>', '<var2>') assigned to same output. |
M7705 | type-mismatch-assignment | error | Type mismatch in assignment to '<varName>': expected '<expectedType>', got '<actualType>'. |
M7706 | timer-preset-negative | error | Timer preset time '<value>' for '<timerName>' cannot be negative. |
M7707 | unbounded-loop-detected | warning | Loop in POU '<pouName>' does not have a deterministic bounded termination condition. |
M7708 | unknown-pou-type | error | Unknown or unresolvable POU or function block type '<typeName>' instantiated in '<instanceName>'. |
M7709 | unreachable-code | warning | Unreachable code detected after '<stmtKind>' statement in POU '<pouName>'. |
M7710 | invalid-task-interval | error | Task '<taskName>' specifies invalid or non-positive periodic interval '<interval>'. |
MSC Adams
Mechanical system dynamics. 9 rules · @modelscript/adams · Source: languages/adams/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7301 | overconstrained-mobility | error | Mechanism is overconstrained according to Grübler-Kutzbach criterion (Mobility = <mobility> < 0). |
M7302 | gimbal-lock-orientation | warning | Euler orientation angles for marker '<markerId>' indicate near-gimbal-lock singularity (psi = <value>\xB0). |
M7303 | dangling-marker-reference | error | <source> references non-existent marker '<targetId>'. |
M7304 | non-physical-inertia-tensor | error | Part '<partId>' has non-physical inertia tensor: <reason>. |
M7305 | massless-part-floating | error | Moving part '<partId>' has zero or negative mass without kinematic grounding. |
M7307 | coincident-joint-markers | warning | Joint '<jointId>' uses identical I and J markers ('<iMarker>'). |
M7308 | negative-spring-damping | error | Spring-damper '<springId>' defines non-physical negative <param> (<value>). |
M7309 | missing-ground-part | error | Dataset does not define a ground reference body ('PART/... GROUND'). |
M7310 | unconstrained-part | warning | Part '<partId>' is completely disconnected from joints or force elements (floating rigid body). |
EnergyPlus
Building energy & HVAC. 8 rules · @modelscript/energyplus · Source: languages/energyplus/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M7901 | unmatched-interzone-surface | error | Interzone surface '<surfName>' in zone '<zoneName>' specifies outside boundary object '<targetSurf>' which does not exist or has mismatched reciprocal boundary. |
M7902 | non-convex-surface-polygon | warning | Surface polygon '<surfName>' in zone '<zoneName>' violates planar convexity, which may impair solar raytracing and view factor calculations. |
M7903 | missing-thermal-properties | error | Material '<matName>' has non-positive thermal property '<prop>' (<val>), violating second law of thermodynamics. |
M7904 | unconnected-hvac-zone | error | HVAC component '<hvacName>' references non-existent thermal zone '<zoneName>'. |
M7905 | excessive-surface-absorption | warning | Material '<matName>' has solar absorptance coefficient <value>, which exceeds the physical maximum of 1.0. |
M7906 | duplicate-zone-name | error | Duplicate thermal zone identifier '<zoneName>' detected in building model. |
M7907 | unreferenced-construction | error | Building surface '<surfName>' references undefined construction '<constName>'. |
M7908 | zero-thickness-material | error | Opaque material '<matName>' has invalid non-positive thickness (<value>m). |
EPANET
Pressurized water distribution. 8 rules · @modelscript/epanet · Source: languages/epanet/src/lints/rules.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8101 | isolated-hydraulic-node | error | Hydraulic node '<nodeId>' is isolated with no connecting pipes or pumps. |
M8102 | negative-pressure-risk | warning | Junction '<nodeId>' elevation (<value>m) exceeds maximum network source head (<value>m), risking cavitation and dry-out. |
M8103 | non-monotonic-pump-curve | error | Pump head curve '<curveId>' violates decreasing monotonicity: head increases from <value> to <value> between flow <value> and <value>. |
M8104 | zero-length-pipe | error | Pipe link '<pipeId>' has non-positive physical length (<value>m). |
M8105 | zero-diameter-pipe | error | Pipe link '<pipeId>' has non-positive internal diameter (<value>mm). |
M8106 | duplicate-node-id | error | Duplicate node identifier '<nodeId>' detected in water network topology. |
M8107 | duplicate-link-id | error | Duplicate link identifier '<linkId>' detected in water network topology. |
M8108 | unreferenced-node-in-link | error | Link '<linkId>' references undefined endpoint node '<nodeId>'. |
EPA SWMM
Stormwater & urban drainage. 13 rules · @modelscript/swmm · Source: languages/swmm/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8201 | dangling-node-reference | error | Link '<linkId>' references undefined <role> node '<nodeId>'. |
M8202 | adverse-conduit-slope | warning | Conduit '<conduitId>' has adverse slope: inlet elevation (<value>) is lower than outlet elevation (<value>). |
M8203 | missing-cross-section | error | Conduit '<conduitId>' has no hydraulic cross-section definition in '[XSECTIONS]'. |
M8204 | unsupported-outfall-type | error | Outfall '<outfallId>' specifies unsupported boundary condition type '<type>'. |
M8205 | surcharge-overflow-risk | warning | Junction '<junctionId>' rim elevation (<value>) is lower than connected conduit crown (<value>), creating surcharge overflow risk. |
M8206 | duplicate-node-id | error | Duplicate node identifier '<nodeId>' declared in network. |
M8207 | duplicate-link-id | error | Duplicate link identifier '<linkId>' declared in network. |
M8208 | negative-roughness | error | Conduit '<conduitId>' specifies non-positive Manning's roughness coefficient (n = <n>). |
M8209 | zero-length-conduit | error | Conduit '<conduitId>' specifies non-positive length (<len>). |
M8210 | isolated-network-node | warning | Junction '<nodeId>' has no connected conduits or hydraulic links (isolated node). |
M8211 | subcatchment-outlet-not-found | error | Subcatchment '<subId>' references non-existent discharge outlet '<outletId>'. |
M8212 | weir-offset-negative | error | Weir '<weirId>' specifies negative crest height offset (<offset>). |
M8213 | invalid-discharge-coefficient | error | Link '<linkId>' specifies non-positive discharge coefficient (Cd = <cd>). |
Aspen Plus / HYSYS
Chemical process flowsheets. 15 rules · @modelscript/aspen · Source: languages/aspen/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8101 | unconnected-stream-port | error | Stream '<streamName>' connected to block '<blockName>' inlet has no producing source block outlet. |
M8102 | tear-stream-unconverged | error | Circular flowsheet loop detected involving block '<blockName>' without designated tear stream. |
M8103 | invalid-eos-parameter | error | Component '<compName>' lacks critical properties for property method '<propertyMethod>'. |
M8104 | negative-component-fraction | error | Stream '<streamName>' specifies negative component molar fraction for '<compName>' (<val>). |
M8105 | column-reboiler-heat-deficit | warning | Column '<blockName>' duty results in non-positive reboiler boil-up. |
M8106 | duplicate-block-id | error | Duplicate block ID '<blockId>' declared in flowsheet. |
M8107 | duplicate-component-id | error | Duplicate component ID '<compId>' declared in COMPONENTS. |
M8108 | fractions-sum-invalid | warning | Component mole fractions in stream '<streamName>' sum to <value>, expected 1.0. |
M8109 | feed-stage-out-of-range | error | Column '<blockName>' feed stage <stage> is out of bounds (1..<nStages>). |
M8110 | product-stage-out-of-range | error | Column '<blockName>' product stage <stage> is out of bounds (1..<nStages>). |
M8111 | missing-flowsheet-entry | warning | Block '<blockName>' has parameter declarations but is not connected in FLOWSHEET. |
M8112 | stream-temperature-negative | error | Stream '<streamName>' specifies non-physical absolute temperature <temp> K. |
M8113 | stream-pressure-negative | error | Stream '<streamName>' specifies non-positive pressure <pres> bar. |
M8114 | radfrac-stages-too-few | error | RadFrac column '<blockName>' has fewer than 2 stages (<nStages>). |
M8115 | reflux-ratio-negative | error | Column '<blockName>' reflux ratio (<rr>) must be non-negative. |
SBML
Biochemical reaction networks. 10 rules · @modelscript/sbml · Source: languages/sbml/src/errors.ts · Language guide
| Code | Rule | Severity | Message |
|---|---|---|---|
M8801 | missing-model-id | error | SBML <model> element is missing required 'id' attribute. |
M8802 | undefined-compartment-reference | error | Species '<speciesId>' references undefined compartment '<compartmentId>'. |
M8803 | undefined-species-reference | error | Reaction '<reactionId>' references undefined <role> species '<speciesId>'. |
M8804 | negative-compartment-size | error | Compartment '<compartmentId>' defines non-positive size (<size>). |
M8805 | negative-initial-amount-concentration | error | Species '<speciesId>' specifies negative initial amount/concentration (<val>). |
M8806 | empty-reaction | error | Reaction '<reactionId>' must define at least one reactant or product. |
M8807 | missing-kinetic-law | warning | Reaction '<reactionId>' does not define a kineticLaw rate law equation. |
M8808 | negative-stoichiometry | error | Species reference for '<speciesId>' in reaction '<reactionId>' specifies non-positive stoichiometry (<stoich>). |
M8809 | undefined-kinetic-parameter | warning | Kinetic law formula in reaction '<reactionId>' references identifier '<id>' not found in parameters or species. |
M8810 | circular-species-assignment | info | Reaction '<reactionId>' lists '<speciesId>' as both reactant and product with identical stoichiometry; consider defining as modifier. |

