Back to skills
SKILL.md
Create Gsn Diagram
ASecurityGSN (Goal Structuring Notation) diagrams + OMG SACM 2.2 XML export from compliance graph. Supports taxonomy context mapping (Mind tags → SACM Context nodes), OSCAL evidence linking, and Lean4 proof references.
- 6 stars
- 0 votes
- 0 copies
- 5 views
- Added September 11, 2026
Works with
Security analysis
96/100- Uses curl or wget to download content
Pro scans all 5 files and shows the line behind each finding
npx -y skills add grahama1970/agent-skills --skill create-gsn-diagram --agent claude-codeAre you the author of Create Gsn Diagram?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/grahama1970-create-gsn-diagram)---
name: create-gsn-diagram
description: >
GSN (Goal Structuring Notation) diagrams + OMG SACM 2.2 XML export from compliance graph.
Supports taxonomy context mapping (Mind tags → SACM Context nodes), OSCAL evidence linking,
and Lean4 proof references.
triggers:
- "gsn diagram"
- "gsn render"
- "safety case diagram"
- "sacm export"
- "assurance case xml"
allowed-tools:
- Bash
provides:
- create-gsn-diagram
- sacm-export
composes:
- memory
- task-monitor
- taxonomy
- export-oscal
- lean4-prove
- agentic-evals
disciplines:
- compliance-security
- content-creation
---
# create-gsn-diagram
Generate Goal Structuring Notation (GSN) assurance case diagrams from the
SPARTA compliance graph stored in ArangoDB. Supports three output formats:
| Format | Standard | Use Case |
|--------|----------|----------|
| **SVG/PNG** | Graphviz | Human-readable diagrams |
| **DOT** | Graphviz | Manual rendering, CI pipelines |
| **SACM XML** | OMG SACM 2.2 | Machine-readable, tool interoperability |
## Standards Alignment
| Standard | Status | Integration |
|----------|--------|-------------|
| **GSN** | De facto | Visual notation (boxes, circles, parallelograms) |
| **OMG SACM 2.2** | Approved (2024) | XML export via `export-sacm` |
| **ISO/IEC 15026** | Published (2019) | Assurance case concepts |
| **OSCAL** | NIST v1.1 | Evidence references in Solution nodes |
| **SPARTA Taxonomy** | Internal | Mind tags → SACM Context nodes |
## Usage
### Render GSN diagram (SVG/PNG)
```bash
./run.sh render --control AC-1
./run.sh render --framework NIST-800-171 --output ./diagrams/
```
### Export DOT notation
```bash
./run.sh export-dot --control AC-1
./run.sh export-dot --control AC-1 | dot -Tsvg > diagram.svg
```
### Export SACM XML (machine-readable)
```bash
# To stdout
./run.sh export-sacm --control AC-1 --dry-run
# To file
./run.sh export-sacm --control AC-1 --output ac1_assurance.xml
# Full framework
./run.sh export-sacm --framework SPARTA --output sparta_assurance.xml
```
## SACM Export Features
The `export-sacm` command produces OMG SACM 2.2 compliant XML with:
### Taxonomy → Context Mapping
SPARTA Mind tags (Detect, Evade, Exploit, Harden, Isolate, Model, Persist, Restore)
are mapped to SACM `InformationElement` (Context) nodes:
```xml
<arg:InformationElement gid="C2" name="C2: Tactical scope: Harden, Detect">
<base:implementationConstraint content="taxonomy:mind=Harden,Detect"/>
</arg:InformationElement>
```
This enables:
- Filtering assurance cases by tactical category
- Validating tactical alignment across refinement chains
- Machine queries like "show all Harden arguments"
### OSCAL Evidence References
Solution nodes can reference OSCAL Assessment Result findings:
```xml
<arti:ArtifactReference gid="Sn1" name="Sn1: QRA evidence">
<arti:externalReference location="oscal-ar://findings/ac1_qra" type="OSCAL-AR"/>
</arti:ArtifactReference>
```
### Lean4 Proof References
Solution nodes can reference formal proofs:
```xml
<arti:ArtifactReference gid="Sn2" name="Sn2: Formal proof">
<arti:externalReference location="lean4://proofs/ac1_theorem" type="Lean4-Proof"/>
</arti:ArtifactReference>
```
## Options
| Flag | Description |
|-----------------|-----------------------------------------------------|
| `--control` | NIST/CMMC/SPARTA control ID (e.g. `AC-1`, `SA-1`) |
| `--framework` | Framework name; processes all controls under it |
| `--output` | Output file path (format auto-detected by command) |
| `--dry-run` | Generate sample output without querying ArangoDB |
## Integration Architecture
```
┌─────────────────────────────────────────────────────────────────────┐
│ /memory recall → control + QRA evidence + taxonomy │
│ ↓ │
│ GSNGraph (internal model with taxonomy metadata) │
│ ├─→ graph_to_dot() → SVG/PNG (human-readable) │
│ └─→ graph_to_sacm() → SACM XML (machine-readable) │
│ ↓ │
│ /review-assurance-case (47 checks) │
│ /export-oscal (evidence export) │
│ /lean4-prove (formal proofs) │
└─────────────────────────────────────────────────────────────────────┘
```
## Common Mistakes
### WRONG: Rendering without checking ArangoDB connectivity
```bash
./run.sh render --control AC-1 # fails silently if ArangoDB is down
```
### RIGHT: Use --dry-run to test, or verify ArangoDB first
```bash
./run.sh render --control AC-1 --dry-run # works without ArangoDB
# Or verify: curl -s http://127.0.0.1:8529/_api/version
```
### WRONG: Using export-dot when you need machine-readable output
```bash
./run.sh export-dot --control AC-1 > assurance.txt # not machine-parseable
```
### RIGHT: Use export-sacm for tool interoperability
```bash
./run.sh export-sacm --control AC-1 --output assurance.xml
```
### WRONG: Ignoring taxonomy context in assurance arguments
```bash
# Building an argument without tactical scope = weak argument
```
### RIGHT: Include taxonomy context (automatic with DB queries)
```bash
./run.sh export-sacm --control SA-1 # Mind tags auto-included as Context nodes
```
Files in this skill
- SKILL.md
- fixtures/agentic_eval.json
- pyproject.toml
- run.sh
- sanity.sh
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.