Create and manage NAF v4 (NATO Architecture Framework) / ADMBw Logical Specification Viewpoints (L1-L8, Lr) in Sparx Enterprise Architect. Use when the user wants to create L1 (Node Types), L2 (Logical Scenario), L3 (Node Interactions), L4 (Logical Activities), L5 (Logical States), L6 (Logical Sequence), L7 (Information Model), L8 (Logical Constraints), or Lr (Lines of Development) diagrams, add logical elements, create flows and interactions, or work with NAF logical architecture modeling. Also triggers on natural language like "operational performer", "logical node", "operational activity", "information exchange", "logical flow", etc.
This skill enables natural language interaction with Sparx Enterprise Architect's MCP server to create NAF v4 / ADMBw compliant Logical Specification Viewpoints. It translates informal user requests into precise MCP tool calls with correct stereotypes, UML types, and profiles.
When the user requests NAF logical specification modeling:
These rules apply to all NAF v4 modeling tasks:
When the modeling target is unclear, always ask the user where to model:
Default behavior: If not explicitly specified, use the currently open diagram as the modeling target.
Before using element names in any operation, especially when creating connections:
find_elements_by_name to search for elementsThis prevents:
Never apply automatic diagram layout operations:
layout_diagram or similar automatic layout functionsplace_element_on_diagram, but their visual arrangement is left to the user| Viewpoint | ID | Purpose | Common Requests |
|---|---|---|---|
| Node Types | L1 | Define nodes with measures of performance | "Create L1 diagram", "Add operational performer", "Define node capabilities" |
| Logical Scenario | L2 | Specify nodes in context with flows | "Create L2 diagram", "Show information flows", "Add logical scenario" |
| Node Interactions | L3 | Detail interoperability requirements | "Create L3 diagram", "Add operational exchange", "Define node interactions" |
| Logical Activities | L4 | Describe logical operational activities | "Create L4 diagram", "Add operational activity", "Show activity flows" |
| Logical States | L5 | Specify node states and transitions | "Create L5 diagram", "Add state machine", "Define state transitions" |
| Logical Sequence | L6 | Trace event sequences between nodes | "Create L6 diagram", "Add sequence diagram", "Show operational messages" |
| Information Model | L7 | Document business information | "Create L7 diagram", "Add information element", "Define data model" |
| Logical Constraints | L8 | Constrain logical architecture | "Create L8 diagram", "Add operational constraint", "Define logical rules" |
| Lines of Development | Lr | Support acquisition and dependencies | "Create Lr diagram", "Add project milestone", "Show capability roadmap" |
To create a NAF logical specification diagram, use the MCP create_or_update_diagram tool:
{
"name": "<diagram-name>",
"type": "<diagram-type>", // "Custom" for L1-L5, L7, L8, Lr; "Sequence" for L6
"stereotype": "<viewpoint-identifier>", // e.g. "L1", "L2", "L3", "L4", "L5", "L6", "L7", "L8", "Lr"
"packagePath": "<package-path>", // e.g. "Model/Logical Specification"
"extendedProperties": {
"alias": "<full-viewpoint-name>", // e.g. "L1 - Node Types"
"diagramID": "<viewpoint-id>", // e.g. "L1"
"toolbox": "<toolbox-name>" // e.g. "NAFv4-ADMBw-L1-Toolbox"
}
}
Important: L6 (Logical Sequence) uses diagram type "Sequence", all other viewpoints use "Custom".
Example user requests:
To create a NAF logical specification element, use the MCP create_or_update_element tool:
{
"name": "<element-name>",
"type": "<uml-type>", // e.g. "Class", "Activity", "Part", "Port", "Object", "StateMachine"
"stereotype": "<NAF-stereotype>", // e.g. "OperationalPerformer", "OperationalActivity"
"packagePath": "<package-path>",
"notes": "<description>", // User's full description text
"profile": "NAFv4-ADMBw" // Always use this profile
}
Auto-naming logic: When user provides description but no name, generate a concise technical identifier:
Example user requests:
To create connections between elements, use the MCP create_or_update_connector tool:
{
"sourceElementName": "<source-element>",
"targetElementName": "<target-element>",
"connectorType": "<uml-connector-type>", // e.g. "Connector", "InformationFlow", "Dependency", "Abstraction"
"stereotype": "<NAF-stereotype>", // e.g. "OperationalExchange", "IsCapableToPerform"
"packagePath": "<package-path>",
"profile": "NAFv4-ADMBw"
}
Before creating associations, validate:
references/logical_specification_viewpoints.json if not already in contextclient constraintsupplier constraintExample user requests:
When user request could map to multiple stereotypes:
stereotype_mappings.md and JSON dataExample interaction:
User: "Add a node to the diagram"
Claude: "I can create several types of nodes. Which would you like?
1. **OperationalPerformer** - A logical entity that performs operational activities (most common for L1/L2)
2. **OperationalRole** - A usage of a performer in a specific context
3. **OperationalArchitecture** - An entire architecture from operational perspective
Which type fits your needs?"
Load references/stereotype_mappings.md for quick lookup when user uses casual terminology:
For detailed metamodel constraints, properties, and valid connections, reference references/logical_specification_viewpoints.json.
Always in context: Core workflow and mapping principles (this SKILL.md file)
Load on demand:
references/stereotype_mappings.md - When mapping user's natural language to formal stereotypesreferences/logical_specification_viewpoints.json - When validating metaconstraints, checking detailed properties, or resolving complex associationsThis keeps responses efficient while ensuring access to complete metamodel data when needed.
User: "Create L1 diagram with a radar node and surveillance capability"
Actions:
1. Create L1 diagram using create_or_update_diagram
2. Create OperationalPerformer element (type: Class) for "RadarNode"
3. Create Capability element for "SurveillanceCapability"
4. Create Exhibits relationship (type: Abstraction) from RadarNode to SurveillanceCapability
5. Use place_element_on_diagram to add all elements to the diagram
6. Optional: Use layout_diagram for automatic arrangement
User: "Create L2 diagram showing information flows between ISR and C2 nodes"
Actions:
1. Create L2 diagram using create_or_update_diagram
2. Create OperationalPerformer "ISRNode" (type: Class)
3. Create OperationalPerformer "C2Node" (type: Class)
4. Create OperationalRole for ISRNode (type: Part)
5. Create OperationalRole for C2Node (type: Part)
6. Create OperationalConnector (type: Connector) between roles
7. Create OperationalExchange (type: InformationFlow) on connector
8. Create InformationElement "TargetData" for the exchange
9. Place all elements on diagram
User: "Create L4 diagram for target detection activities"
Actions:
1. Create L4 diagram using create_or_update_diagram
2. Create OperationalActivity "DetectTargets" (type: Activity)
3. Create OperationalActivity "ClassifyTargets" (type: Activity)
4. Create OperationalActivity "ReportTargets" (type: Activity)
5. Create OperationalActivityAction elements for activity calls
6. Link activities with OperationalExchange (type: InformationFlow) for data flows
7. Add OperationalPerformer and link with IsCapableToPerform (type: Abstraction)
8. Place elements on diagram
User: "Create L6 sequence diagram for sensor-to-shooter flow"
Actions:
1. Create L6 diagram using create_or_update_diagram (type: "Sequence")
2. Create OperationalRole lifelines for each participant (SensorNode, C2Node, ShooterNode)
3. Create OperationalMessage elements (type: Message) for exchanges
4. Configure message sequence and timing
5. Place lifelines on diagram
6. Messages automatically appear between lifelines
User: "Add operational constraints for secure communications"
Actions:
1. Create or use existing L8 diagram
2. Create OperationalConstraint element (type: Class)
{
"name": "SecureCommunicationsConstraint",
"type": "Class",
"stereotype": "OperationalConstraint",
"notes": "All operational exchanges shall use encrypted communications protocols meeting STANAG requirements.",
"profile": "NAFv4-ADMBw"
}
3. Create Satisfy relationship (type: Dependency) from constraint to affected elements
4. Optional: Create JustifiedBy relationship to DocumentReference for traceability
find_elements_by_name to search for elementlogical_specification_viewpoints.json and check metaconstraintsThis skill includes two reference files for progressive data loading: