Create and manage NAF v4 (NATO Architecture Framework) / ADMBw Concepts Viewpoints (C1-C8, Cr) in Sparx Enterprise Architect. Use when the user wants to create C1 (Capability Taxonomy), C2 (Enterprise Vision), C3 (Capability Dependencies), C4 (Standard Processes), C5 (Effects), C7 (Performance Parameters), C8 (Planning Assumptions), or Cr (Capability Roadmap) diagrams, add capability elements, create associations between capabilities, enterprises, activities, or work with NAF concepts modeling. Also triggers on natural language like "capability", "enterprise vision", "enduring task", "desired effect", "measure of effectiveness", etc.
This skill enables natural language interaction with Sparx Enterprise Architect's MCP server to create NAF v4 / ADMBw compliant Concepts Viewpoints. It translates informal user requests into precise MCP tool calls with correct stereotypes, UML types, and profiles.
When the user requests NAF concepts 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 |
|---|---|---|---|
| Capability Taxonomy | C1 | Organize capabilities in taxonomies | "Create C1 diagram", "Add capability with MoE" |
| Enterprise Vision | C2 | Strategic context for capabilities | "Show enterprise vision", "Add enterprise goal" |
| Capability Dependencies | C3 | Show capability dependencies | "Show dependencies", "X depends on Y" |
| Standard Processes | C4 | Specify standard operational activities | "Add standard process", "Map to capability" |
| Effects | C5 | Describe operational effects | "Show desired effect", "Add achieved effect" |
| Performance Parameters | C7 | Express capability requirements with MoEs | "Add performance parameter", "Define measure" |
| Planning Assumptions | C8 | Document assumptions for implementation | "Add planning assumption", "Strategic constraint" |
| Capability Roadmap | Cr | Identify capability gaps and roadmap | "Create roadmap", "Add project milestone" |
To create a NAF concepts 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. "C1", "C2", "C3", "C4", "C5", "C7", "C8", "Cr"
"packagePath": "<package-path>", // e.g. "Model/Concepts"
"extendedProperties": {
"alias": "<full-viewpoint-name>", // e.g. "C1 - Capability Taxonomy"
"diagramID": "<viewpoint-id>", // e.g. "C1"
"toolbox": "<toolbox-name>" // e.g. "NAFv4-ADMBw-C1-Toolbox"
}
}
Example user requests:
To create a NAF concept element, use the MCP create_or_update_element tool:
{
"name": "<element-name>",
"type": "<uml-type>", // e.g. "Class", "Activity", "Object", "Part"
"stereotype": "<NAF-stereotype>", // e.g. "Capability", "EnterpriseVision"
"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", "Abstraction", "Generalization"
"stereotype": "<NAF-stereotype>", // e.g. "CapabilityDependency", "Exhibits"
"packagePath": "<package-path>",
"profile": "NAFv4-ADMBw"
}
Before creating associations, validate:
references/concept_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 constraint about security"
Claude: "I can create several types of constraints. Which would you like?
1. **StrategicConstraint** - A rule governing a capability at strategic level
2. **OperationalConstraint** - A rule governing logical architectural elements
3. **ResourceConstraint** - A rule governing structural/functional implementation aspects
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/concept_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/concept_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 C1 diagram with capability hierarchy"
Actions:
1. Create C1 diagram using create_or_update_diagram
2. Create parent Capability element (type: Class)
3. Create 2-3 child Capability elements (type: Class)
4. Create CapabilityGeneralization connectors (type: Generalization) from child to parent
5. Use place_element_on_diagram to add all elements to the diagram
6. Optional: Use layout_diagram for automatic arrangement
User: "Add capability: The enterprise's ability to provide coordinated air support to ground forces in contested environments."
Actions:
1. Extract key concepts: air support, ground forces, coordinated
2. Generate concise name: "AirSupportCapability" or "CAP-AirSupport"
3. Create element using create_or_update_element:
{
"name": "AirSupportCapability",
"type": "Class",
"stereotype": "Capability",
"notes": "The enterprise's ability to provide coordinated air support to ground forces in contested environments.",
"profile": "NAFv4-ADMBw",
"packagePath": "<current-package>"
}
User: "Create enterprise vision for digital transformation"
Actions:
1. Create C2 diagram using create_or_update_diagram
2. Create EnterpriseVision element (type: Class) with name "DigitalTransformation2030"
3. Create 2-3 EnterpriseGoal elements (type: Class)
4. Create AlignsWithGoal connectors (type: Dependency) from goals to vision
5. Create Capability elements that support the vision
6. Place all elements on diagram
User: "Capability X depends on Capability Y"
Actions:
1. Verify both elements exist using find_elements_by_name
2. Load concept_viewpoints.json to check CapabilityDependency metaconstraints
3. Validate: X should be Capability (client)
4. Validate: Y should be Capability (supplier)
5. Create connector using create_or_update_connector:
{
"sourceElementName": "X",
"targetElementName": "Y",
"connectorType": "Dependency",
"stereotype": "CapabilityDependency",
"profile": "NAFv4-ADMBw"
}
User: "Show desired and achieved effects for capability"
Actions:
1. Create C5 diagram using create_or_update_diagram
2. Create Capability element (desirer)
3. Create ActualState elements for desired effects (e.g., ActualMeasurementSet)
4. Create CapabilityConfiguration or ActualResource elements (achievers)
5. Create DesiredEffect connectors (type: Dependency) from capability to actual states
6. Create AchievedEffect connectors (type: Dependency) from achievers to actual states
7. Optional: Create RealizedDesiredEffect to link achieved to desired
User: "Create capability roadmap with project milestones"
Actions:
1. Create Cr diagram using create_or_update_diagram
2. Create Capability elements
3. Create FieldedCapability or CapabilityConfiguration elements
4. Create ActualProject elements
5. Create ActualProjectMilestone elements
6. Create Exhibits connectors (type: Abstraction) from configurations to capabilities
7. Create OwnedMilestone connectors (type: Dependency) from projects to milestones
8. Create MilestoneDependency connectors (type: Dependency) between milestones
9. Optional: Create VersionReleased/VersionWithdrawn for capability increments
find_elements_by_name to search for elementconcept_viewpoints.json and check metaconstraintsThis skill includes two reference files for progressive data loading: