Create and manage NAF v4 (NATO Architecture Framework) / ADMBw Physical Resource Specification Viewpoints (P1-P8, Pr) in Sparx Enterprise Architect. Use when the user wants to create P1 (Resource Types), P2 (Resource Structure), P3 (Resource Connectivity), P4 (Resource Functions), P5 (Resource States), P6 (Resource Sequence), P7 (Data Model), P8 (Resource Constraints), or Pr (Configuration Management) diagrams, add resource elements, create associations between resources, or work with NAF physical architecture modeling. Also triggers on natural language like "system", "resource type", "function", "interface", "protocol", "state machine", etc.
This skill enables natural language interaction with Sparx Enterprise Architect's MCP server to create NAF v4 / ADMBw compliant Physical Resource Specification Viewpoints. It translates informal user requests into precise MCP tool calls with correct stereotypes, UML types, and profiles.
When the user requests NAF physical resources 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 |
|---|---|---|---|
| Resource Types | P1 | Catalog resource types with performance characteristics | "Create P1 diagram", "Add system", "Add technology" |
| Resource Structure | P2 | Show resource structure realizing logical architecture | "Show resource structure", "Add capability configuration" |
| Resource Connectivity | P3 | Document networks and physical pathways | "Show connectivity", "Add resource port", "Add protocol" |
| Resource Functions | P4 | Detail function allocation to resources | "Map functions", "Add function action" |
| Resource States | P5 | Identify states and transitions | "Show states", "Add state machine" |
| Resource Sequence | P6 | Define sequence of functions and interactions | "Create sequence", "Add resource message" |
| Data Model | P7 | Describe physical data implementation | "Create data model", "Add data element" |
| Resource Constraints | P8 | Document constraints on resources | "Add constraint", "Show resource constraints" |
| Configuration Management | Pr | Track resource changes over time | "Show configuration", "Add version", "Add milestone" |
To create a NAF physical resources diagram, use the MCP create_or_update_diagram tool:
{
"name": "<diagram-name>",
"type": "Custom", // NAF diagrams are Custom (except P6 which is Sequence)
"stereotype": "<viewpoint-identifier>", // e.g. "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "Pr"
"packagePath": "<package-path>", // e.g. "Model/Physical Resources"
"extendedProperties": {
"alias": "<full-viewpoint-name>", // e.g. "P1 - Resource Types"
"diagramID": "<viewpoint-id>", // e.g. "P1"
"toolbox": "<toolbox-name>" // e.g. "NAFv4-ADMBw-P1-Toolbox"
}
}
Note: P6 - Resource Sequence uses "type": "Sequence" instead of "Custom".
Example user requests:
To create a NAF physical resource element, use the MCP create_or_update_element tool:
{
"name": "<element-name>",
"type": "<uml-type>", // e.g. "Class", "Activity", "Part", "Port", "Object"
"stereotype": "<NAF-stereotype>", // e.g. "System", "Function", "ResourcePort"
"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. "InformationFlow", "Dependency", "Abstraction"
"stereotype": "<NAF-stereotype>", // e.g. "ResourceExchange", "Implements", "HostedOn"
"packagePath": "<package-path>",
"profile": "NAFv4-ADMBw"
}
Before creating associations, validate:
references/physical_resource_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 resource for processing data"
Claude: "I can create several types of resources. Which would you like?
1. **System** - An integrated set of elements accomplishing a defined objective
2. **Software** - An executable computer program for data processing
3. **Function** - An activity performed by a resource
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/physical_resource_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/physical_resource_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 P1 diagram with several system types"
Actions:
1. Create P1 diagram using create_or_update_diagram
2. Create System elements (type: Class) for different system types
3. Optional: Add Technology elements to show technology domains
4. Optional: Add Measurement elements for performance characteristics
5. Use place_element_on_diagram to add all elements to the diagram
6. Optional: Use layout_diagram for automatic arrangement
User: "Show how System X is composed of subsystems A, B, and C"
Actions:
1. Create or find P2 diagram
2. Create System element for "System X" (type: Class)
3. Create ResourceRole elements for subsystems A, B, C (type: Part)
4. Create composition relationships from System X to each ResourceRole
5. Optional: Add ResourceExchange flows between subsystems
6. Place elements on diagram and arrange
User: "Show connectivity between System A and System B via data bus"
Actions:
1. Create or find P3 diagram
2. Create System elements for A and B if not exist
3. Create ResourcePort elements for each system (type: Port)
4. Create ResourceInterface element for "DataBusInterface" (type: Class)
5. Create ResourceConnector between ports (type: Connector)
6. Optional: Add Protocol element showing communication protocol
7. Use ImplementsProtocol to link connector to protocol
8. Place and arrange on diagram
User: "Map function 'Process Data' to System X"
Actions:
1. Create or find P4 diagram
2. Create Function element "ProcessData" (type: Activity) if not exist
3. Create or find System element
4. Create IsCapableToPerform relationship (type: Abstraction):
- Source: System
- Target: Function
5. Optional: Create FunctionAction elements (type: Action) to show function calls
6. Optional: Add FunctionControlFlow and FunctionObjectFlow between actions
7. Place and arrange on diagram
User: "Show states for System X: Idle, Active, Maintenance"
Actions:
1. Create or find P5 diagram
2. Create ResourceStateDescription element (type: StateMachine)
3. Add states within the state machine: Idle, Active, Maintenance
4. Add transitions between states with triggers/events
5. Associate state machine with System X
6. Place on diagram
User: "Show sequence of interactions between Systems A, B, and C"
Actions:
1. Create P6 diagram using type: "Sequence"
2. Create ResourceRole elements for each system (type: Part)
3. Add lifelines for each ResourceRole
4. Create ResourceMessage elements (type: Message) showing exchanges
5. Order messages in sequence
6. Optional: Add timing constraints or conditions
User: "Show data structure for sensor data"
Actions:
1. Create or find P7 diagram
2. Create DataModel package if needed (type: Package)
3. Create DataElement elements (type: Class) for data entities
4. Create relationships between DataElements (associations, compositions)
5. Optional: Add DataRole elements (type: Part) for data usage
6. Optional: Show Implements relationships to logical data model
7. Place and arrange on diagram
User: "Document constraint that System X must comply with security standard Y"
Actions:
1. Create or find P8 diagram
2. Create ResourceConstraint element describing the constraint (type: Class)
3. Create Standard element for "Security Standard Y" (type: Class) if not exist
4. Create ConformsTo relationship from ResourceConstraint to Standard
5. Create Satisfy relationship from System X to ResourceConstraint
6. Optional: Add DocumentReference for regulatory documentation
7. Place and arrange on diagram
User: "Show evolution of System X with versions 1.0, 2.0, and 3.0"
Actions:
1. Create Pr diagram
2. Create WholeLifeConfiguration element (type: Class)
3. Create VersionOfConfiguration elements for each version (type: Part)
4. Create VersionSuccession relationships between versions
5. Optional: Add ActualProject and ActualProjectMilestone elements
6. Optional: Link milestones to versions with VersionReleased relationships
7. Place and arrange on timeline
find_elements_by_name to search for elementphysical_resource_specification_viewpoints.json and check metaconstraintsThis skill includes two reference files for progressive data loading: