# genai-security-project/crosswalk architecture

> Architecture diagram of the GitHub repository genai-security-project/crosswalk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/genai-security-project/crosswalk
- Repository: https://github.com/genai-security-project/crosswalk

## Overview

GenAI Security Crosswalk maps OWASP LLM, agentic, and data-security risks to controls in industry frameworks. Users explore mappings or score framework coverage, while security teams can generate compliance and incident reports or run red-team evaluations. The graph also shows the data model and query library. The README documents these capabilities; sampled source confirms the library lookup behavior and some evaluation and ingest flows, but not all web-app wiring.

Main entry points: [`docs/index.html`](https://github.com/genai-security-project/crosswalk/blob/main/docs/index.html) (Crosswalk web app), [`data/entries`](https://github.com/genai-security-project/crosswalk/tree/main/data/entries) (Risk entries), [`scripts/query.js`](https://github.com/genai-security-project/crosswalk/blob/main/scripts/query.js) (Query CLI), [`src/index.ts`](https://github.com/genai-security-project/crosswalk/blob/main/src/index.ts) (Crosswalk API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Crosswalk data"]
  node_entrydata[("Risk entries")]
  node_frameworkdata[("Framework registries")]
  node_incidentdata[("Incident records<br/>[incidents.json]")]
end

subgraph group_app["Web application"]
  node_webapp["Crosswalk web app<br/>[index.html]"]
  node_webdata["App data module<br/>[data.js]"]
  node_explorer["Entry explorer<br/>[index.html]"]
  node_coverage["Coverage scoring<br/>[index.html]"]
  node_incidentview["Incident browser<br/>[incidents.js]"]
end

subgraph group_tools["Query and reports"]
  node_querycli["Query CLI<br/>[query.js]"]
  node_compliance["Compliance reports"]
  node_incidentreport["Incident reports"]
  node_ingest["Framework ingest"]
end

subgraph group_evals["Security evaluations"]
  node_evalguides["Evaluation profiles"]
  node_pyriteval["PyRIT evaluations"]
  node_laaf["LAAF crosswalk<br/>[laaf_crosswalk.py]"]
end

subgraph group_library["Programmatic API"]
  node_api["Crosswalk API<br/>[index.ts]"]
end

node_user(("Practitioner"))
node_model(("Configured AI target"))

node_user -->|"opens"| node_webapp
node_webapp -->|"offers exploration"| node_explorer
node_webapp -->|"offers scoring"| node_coverage
node_webapp -->|"offers incidents"| node_incidentview
node_user -->|"queries"| node_querycli
node_querycli -->|"reads"| node_entrydata
node_querycli -->|"reads"| node_incidentdata
node_user -->|"requests report"| node_compliance
node_compliance -->|"reads mappings"| node_entrydata
node_user -->|"requests report"| node_incidentreport
node_incidentreport -->|"reads"| node_incidentdata
node_user -->|"provides framework"| node_ingest
node_ingest -->|"writes"| node_frameworkdata
node_user -->|"runs evaluation"| node_pyriteval
node_pyriteval -->|"sends prompts"| node_model
node_user -->|"provides scan results"| node_laaf
node_laaf -->|"maps findings"| node_entrydata
node_user -->|"queries"| node_api
node_api -->|"loads entries"| node_entrydata
node_api -->|"loads registries"| node_frameworkdata

click node_entrydata "https://github.com/genai-security-project/crosswalk/tree/main/data/entries"
click node_frameworkdata "https://github.com/genai-security-project/crosswalk/tree/main/data/frameworks"
click node_incidentdata "https://github.com/genai-security-project/crosswalk/blob/main/data/incidents.json"
click node_webapp "https://github.com/genai-security-project/crosswalk/blob/main/docs/index.html"
click node_webdata "https://github.com/genai-security-project/crosswalk/blob/main/docs/data.js"
click node_explorer "https://github.com/genai-security-project/crosswalk/blob/main/docs/index.html"
click node_coverage "https://github.com/genai-security-project/crosswalk/blob/main/docs/index.html"
click node_incidentview "https://github.com/genai-security-project/crosswalk/blob/main/docs/incidents.js"
click node_querycli "https://github.com/genai-security-project/crosswalk/blob/main/scripts/query.js"
click node_compliance "https://github.com/genai-security-project/crosswalk/blob/main/scripts/compliance-report.js"
click node_incidentreport "https://github.com/genai-security-project/crosswalk/blob/main/scripts/incidents-report.js"
click node_ingest "https://github.com/genai-security-project/crosswalk/blob/main/scripts/ingest-framework.mjs"
click node_evalguides "https://github.com/genai-security-project/crosswalk/tree/main/evals"
click node_pyriteval "https://github.com/genai-security-project/crosswalk/tree/main/evals/pyrit"
click node_laaf "https://github.com/genai-security-project/crosswalk/blob/main/evals/laaf/laaf_crosswalk.py"
click node_api "https://github.com/genai-security-project/crosswalk/blob/main/src/index.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entrydata,node_frameworkdata,node_incidentdata toneBlue
class node_webapp,node_webdata,node_explorer,node_coverage,node_incidentview toneAmber
class node_querycli,node_compliance,node_incidentreport,node_ingest toneMint
class node_evalguides,node_pyriteval,node_laaf toneRose
class node_api,node_user,node_model toneIndigo
```

## Components

### Crosswalk data

- [Risk entries](https://github.com/genai-security-project/crosswalk/tree/main/data/entries): `data/entries`
- [Framework registries](https://github.com/genai-security-project/crosswalk/tree/main/data/frameworks): `data/frameworks`
- [Incident records](https://github.com/genai-security-project/crosswalk/blob/main/data/incidents.json): `data/incidents.json`

### Web application

- [Crosswalk web app](https://github.com/genai-security-project/crosswalk/blob/main/docs/index.html): `docs/index.html`
- [App data module](https://github.com/genai-security-project/crosswalk/blob/main/docs/data.js): `docs/data.js`
- [Entry explorer](https://github.com/genai-security-project/crosswalk/blob/main/docs/index.html): `docs/index.html`
- [Coverage scoring](https://github.com/genai-security-project/crosswalk/blob/main/docs/index.html): `docs/index.html`
- [Incident browser](https://github.com/genai-security-project/crosswalk/blob/main/docs/incidents.js): `docs/incidents.js`

### Query and reports

- [Query CLI](https://github.com/genai-security-project/crosswalk/blob/main/scripts/query.js): `scripts/query.js`
- [Compliance reports](https://github.com/genai-security-project/crosswalk/blob/main/scripts/compliance-report.js): `scripts/compliance-report.js`
- [Incident reports](https://github.com/genai-security-project/crosswalk/blob/main/scripts/incidents-report.js): `scripts/incidents-report.js`
- [Framework ingest](https://github.com/genai-security-project/crosswalk/blob/main/scripts/ingest-framework.mjs): `scripts/ingest-framework.mjs`

### Security evaluations

- [Evaluation profiles](https://github.com/genai-security-project/crosswalk/tree/main/evals): `evals`
- [PyRIT evaluations](https://github.com/genai-security-project/crosswalk/tree/main/evals/pyrit): `evals/pyrit`
- [LAAF crosswalk](https://github.com/genai-security-project/crosswalk/blob/main/evals/laaf/laaf_crosswalk.py): `evals/laaf/laaf_crosswalk.py`

### Programmatic API

- [Crosswalk API](https://github.com/genai-security-project/crosswalk/blob/main/src/index.ts): `src/index.ts`

### Other components

- **Practitioner**
- **Configured AI target**

## Connections

- Practitioner → Crosswalk web app: opens
- Crosswalk web app → Entry explorer: offers exploration
- Crosswalk web app → Coverage scoring: offers scoring
- Crosswalk web app → Incident browser: offers incidents
- Practitioner → Query CLI: queries
- Query CLI → Risk entries: reads
- Query CLI → Incident records: reads
- Practitioner → Compliance reports: requests report
- Compliance reports → Risk entries: reads mappings
- Practitioner → Incident reports: requests report
- Incident reports → Incident records: reads
- Practitioner → Framework ingest: provides framework
- Framework ingest → Framework registries: writes
- Practitioner → PyRIT evaluations: runs evaluation
- PyRIT evaluations → Configured AI target: sends prompts
- Practitioner → LAAF crosswalk: provides scan results
- LAAF crosswalk → Risk entries: maps findings
- Practitioner → Crosswalk API: queries
- Crosswalk API → Risk entries: loads entries
- Crosswalk API → Framework registries: loads registries
