Create and manage NAF v4 (NATO Architecture Framework) / ADMBw Architecture Foundation/Metadata Viewpoints (A1-A8, Ar) in Sparx Enterprise Architect. Use when the user wants to create A1 (Meta-Data Definitions), A2 (Architecture Products), A3 (Architecture Correspondence), A4 (Methodology Used), A5 (Architecture Status), A6 (Architecture Version), A7 (Architecture Compliance), A8 (Standards), or Ar (Architecture Roadmap) diagrams, add architecture metadata elements, create associations between architecture descriptions, or work with NAF architecture foundation modeling. Also triggers on natural language like "architectural description", "view", "viewpoint", "concern", "standard", "protocol", "architecture correspondence", etc.
This skill enables natural language interaction with Sparx Enterprise Architect's MCP server to create NAF v4 / ADMBw compliant Architecture Foundation/Metadata Viewpoints. It translates informal user requests into precise MCP tool calls with correct stereotypes, UML types, and profiles.
When the user requests NAF architecture metadata 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 |
|---|---|---|---|
| Meta-Data Definitions | A1 | Define meta-data tags for searching and discovery | "Create A1 diagram", "Add classification" |
| Architecture Products | A2 | Specify architecture structure and products | "Add view", "Create viewpoint", "Link concern" |
| Architecture Correspondence | A3 | Define relations between architecture descriptions | "Link architectures", "Create reference" |
| Methodology Used | A4 | Specify methodology for architecting activities | "Document methodology", "Add metadata" |
| Architecture Status | A5 | Track version numbers and approval status | "Track status", "Add milestone" |
| Architecture Version | A6 | Show complete architecture history | "Show version history", "Link versions" |
| Architecture Compliance | A7 | Specify architecture meta-data compliance | "Add compliance info", "Create same-as link" |
| Standards | A8 | Define technical and non-technical standards | "Add standard", "Create protocol", "Protocol stack" |
| Architecture Roadmap | Ar | Show architecture project history and future | "Create roadmap", "Show sequence" |
To create a NAF architecture metadata diagram, use the MCP create_or_update_diagram tool:
{
"name": "<diagram-name>",
"type": "Custom", // NAF diagrams are always Custom type
"stereotype": "<viewpoint-identifier>", // e.g. "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "Ar"
"packagePath": "<package-path>", // e.g. "Model/Architecture"
"extendedProperties": {
"alias": "<full-viewpoint-name>", // e.g. "A1 - Meta-Data Definitions"
"diagramID": "<viewpoint-id>", // e.g. "A1"
"toolbox": "<toolbox-name>" // e.g. "NAFv4-ADMBw-A1-Toolbox"
}
}
Example user requests:
To create a NAF architecture metadata element, use the MCP create_or_update_element tool:
{
"name": "<element-name>",
"type": "<uml-type>", // e.g. "Package", "Class", "Object", "Note", "Part"
"stereotype": "<NAF-stereotype>", // e.g. "ArchitecturalDescription", "View", "Viewpoint"
"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. "Dependency", "Realization"
"stereotype": "<NAF-stereotype>", // e.g. "DescribedBy", "CompliesViewpoint"
"packagePath": "<package-path>",
"profile": "NAFv4-ADMBw"
}
Before creating associations, validate:
references/architecture_metadata_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 stakeholder element"
Claude: "I can create several types of stakeholder elements. Which would you like?
1. **ActualOrganization** - A specific organization instance
2. **ActualPerson** - An individual human being
3. **ActualPost** - A specific post/role instance
4. **Organization** - An organization type/template
5. **Person** - A person type/template
6. **Post** - A post/role type/template
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/architecture_metadata_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/architecture_metadata_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 A2 diagram with viewpoints and concerns"
Actions:
1. Create A2 diagram using create_or_update_diagram
2. Create ArchitecturalDescription element (type: Package)
3. Create 2-3 Viewpoint elements (type: Class)
4. Create 2-3 Concern elements (type: Class)
5. Create ConcernForViewpoint connectors (type: Dependency)
6. Use place_element_on_diagram to add all elements to the diagram
7. Optional: Use layout_diagram for automatic arrangement
User: "Add architectural description: System architecture for the command and control system."
Actions:
1. Extract key concepts: command, control, system
2. Generate concise name: "C2SystemArchitecture" or "AD-C2System"
3. Create element using create_or_update_element:
{
"name": "C2SystemArchitecture",
"type": "Package",
"stereotype": "ArchitecturalDescription",
"notes": "System architecture for the command and control system.",
"profile": "NAFv4-ADMBw",
"packagePath": "<current-package>"
}
User: "View X complies with Viewpoint Y"
Actions:
1. Verify both elements exist using find_elements_by_name
2. Load architecture_metadata_viewpoints.json to check CompliesViewpoint metaconstraints
3. Validate: X should be View (client)
4. Validate: Y should be Viewpoint (supplier)
5. Create connector using create_or_update_connector:
{
"sourceElementName": "X",
"targetElementName": "Y",
"connectorType": "Dependency",
"stereotype": "CompliesViewpoint",
"profile": "NAFv4-ADMBw"
}
User: "Create TCP/IP protocol stack"
Actions:
1. Create Protocolstack element named "TCP/IP Stack" (type: Class)
2. Create Protocol elements for each layer (e.g., "TCP", "IP", "Ethernet")
3. Create ProtocolLayer elements (type: Part) to define the stack composition
4. Link ProtocolLayers to the Protocolstack using appropriate relationships
5. Add all elements to the A8 diagram
find_elements_by_name to search for elementarchitecture_metadata_viewpoints.json and check metaconstraintsThis skill includes two reference files for progressive data loading: