Skip to content
Back to skills

Reference Scenario Registry

ASecurity

Inspect, filter, and validate the canonical scenario catalog and pinned external provenance registry.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 15, 2026
securitypythonbashkubernetesapisecuritydocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 15, 2026

npx -y skills add sodejm/copilot-operation-plugin-for-security --skill reference-scenario-registry --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Reference Scenario Registry?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Reference Scenario Registry
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sodejm-reference-scenario-registry/badge)](https://www.skillsdirectory.com/skills/sodejm-reference-scenario-registry)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: reference-scenario-registry
description: Inspect, filter, and validate the canonical scenario catalog and pinned external provenance registry.
---

# Reference scenario and provenance registry

Inspect, cross-validate, and query canonical operational security scenarios and their pinned external research provenance:

- **Scenario Registry** (`catalog/scenarios.json`): Canonical scenario definitions mapped to MITRE ATT&CK techniques, environment prerequisites, safety profiles, and provenance citations.
- **Provenance Registry** (`catalog/provenance.json`): Pinned external research sources (S01–S13: cheatsheets, threat research articles, Kubernetes tools, primary documentation) with license bounds, revision pins, and complete item-level inventory mappings.

## CLI Usage

### Validate Registry Integrity

Verify that both registries strictly adhere to their JSON schemas and cross-validate that every scenario references a known source and every inventory item resolves without orphans:

```bash
python3 -m cops scenario validate
```

### List Scenarios

List registered canonical scenarios, with optional filtering:

```bash
python3 -m cops scenario list
python3 -m cops scenario list --family COPS-E10.01
python3 -m cops scenario list --tactic discovery
python3 -m cops scenario list --mode planned
python3 -m cops scenario list --json
```

### Inspect a Scenario

View detailed execution metadata, MITRE ATT&CK mappings, safety constraints, and provenance for a specific scenario:

```bash
python3 -m cops scenario info COPS-E01.01-S01
python3 -m cops scenario info COPS-E01.01-S01 --json
```

### Inspect Provenance Sources

View all pinned research sources or drill into the complete item inventory of a specific source:

```bash
# List all 13 pinned sources
python3 -m cops scenario provenance

# Inspect items for a specific source (e.g. S01 command-cheatsheet, S07 Bad Pods)
python3 -m cops scenario provenance --source S01
python3 -m cops scenario provenance --source S07 --json
```

## Python API

```python
from cops.scenarios import (
    load_scenario_registry,
    load_provenance_registry,
    validate_scenario_and_provenance_integrity,
    list_scenarios,
    get_scenario,
    list_provenance_sources,
    get_provenance_source,
    RegistryError,
)

# Cross-validate integrity
summary = validate_scenario_and_provenance_integrity()
print(f"Validated {summary['scenarios_count']} scenarios across {summary['sources_count']} sources")

# Query scenarios
k8s_scenarios = list_scenarios(family_id="COPS-E10.01")
for s in k8s_scenarios:
    print(s["scenario_id"], s["title"])

# Retrieve single scenario
scen = get_scenario("COPS-E01.01-S01")
print(f"Safety profile: {scen['safety_profile']}")

# Query provenance
source = get_provenance_source("S07")
print(f"Source: {source['name']} ({source['url']})")
```

## Error Codes

- `missing_registry`: Required registry file missing from `catalog/`.
- `invalid_json`: Registry file contains malformed JSON syntax.
- `duplicate_scenario_id`: A scenario identifier was defined more than once.
- `duplicate_source_id`: A source identifier was defined more than once in provenance.
- `duplicate_item_id`: An inventory item identifier was defined more than once across sources.
- `orphan_scenario_provenance`: A scenario references a `source_id` that is not registered in provenance.
- `orphan_inventory_mapping`: An inventory item resolves to a scenario that does not exist in the scenario registry.
- `scenario_not_found`: Requested scenario ID does not exist in registry.
- `source_not_found`: Requested provenance source ID does not exist in registry.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.