vulnmaster NSRL-CAID-to-UCO-Converter .cursorrules file for Python

version: 1.0

# Project-specific rules
rules:
  # Python code style
  python:
    max_line_length: 100
    indent_size: 4
    docstring_style: google
    type_hints: required
    imports:
      standard_lib_first: true
      group_by_type: true

  # Documentation rules
  docs:
    format: markdown
    require_front_matter: false
    glossary_reference: docs/Glossary.md

  # File naming conventions
  naming:
    python_files: snake_case
    doc_files: Title_Case
    test_files: test_*.py

# Project structure
structure:
  docs:
    - Product_Requirements_Document.md
    - App_Flow_Document.md
    - Data_Model_Design_Document.md
    - Progress.md
    - Glossary.md
  data:
    - "*.json"
  output:
    - "uco-*.json"
  tests:
    - "test_*.py"

# Content validation
validation:
  python:
    - check_type_hints
    - verify_docstrings
    - validate_imports
  json:
    - validate_json_schema
    - check_json_ld_context

  # UCO/CASE compliance validation
  uco:
    version: "1.3.0"
    namespaces:
      - "https://ontology.unifiedcyberontology.org/uco/core/"
      - "https://ontology.unifiedcyberontology.org/uco/observable/"
      - "https://ontology.unifiedcyberontology.org/uco/types/"
      - "https://ontology.unifiedcyberontology.org/uco/tool/"
      - "https://ontology.unifiedcyberontology.org/uco/vocabulary/"
      - "https://ontology.unifiedcyberontology.org/uco/identity/"
    required_properties:
      - "core:objectCreatedTime"
      - "core:specVersion"
      - "core:hasFacet"
      - "observable:categories"
      - "observable:hash"
      - "observable:fileName"
      - "observable:filePath"
      - "observable:sizeInBytes"
    relationships:
      - "core:createdBy"
      - "core:derivedFrom"
      - "core:managedBy"
      - "core:isDirectional"

  # Documentation compliance
  documentation:
    ontology_references:
      base_url: "https://ontology.unifiedcyberontology.org/uco/"
      required_sections:
        - "Namespaces"
        - "Property Mappings"
        - "Relationship Types"
    glossary:
      required_terms:
        - "UCO"
        - "Bundle"
        - "Facet"
        - "Provenance"
        - "CASE"
      term_format:
        - "Definition"
        - "Reference"
        - "Example"

# File associations
file_types:
  .py: python
  .md: markdown
  .json:
    format: json-ld
    context:
      - "https://ontology.unifiedcyberontology.org/uco/core/"
      - "https://ontology.unifiedcyberontology.org/uco/observable/"
      - "https://ontology.unifiedcyberontology.org/uco/types/"
      - "https://ontology.unifiedcyberontology.org/uco/vocabulary/"
      - "https://ontology.unifiedcyberontology.org/uco/identity/"

# Paired files
paired_files:
  nsrl_to_uco.py:
    - test_nsrl_to_uco.py
    - docs/App_Flow_Document.md
    - docs/Data_Model_Design_Document.md

# Documentation rules
doc_rules:
  ontology_compliance:
    check_namespaces: true
    validate_properties: true
    verify_relationships: true
  cross_references:
    require_glossary_links: true
    validate_urls: true
  version_tracking:
    uco_version: "1.3.0"
    track_compatibility: true

# Required headers
headers:
  python:
    required:
      - copyright
      - license
      - author
      - version
      - uco_version
      - ontology_compliance

# Ignore patterns
ignore:
  # Python
  - "*.pyc"
  - "__pycache__"
  - "*.pyo"
  - "*.pyd"
  - ".Python"
  - "*.so"
  
  # Virtual Environment
  - "venv"
  - "env"
  - ".env"
  - ".venv"
  
  # IDE
  - ".idea/"
  - ".vscode/"
  - "*.swp"
  - "*.swo"
  
  # Git
  - ".git"
  - ".gitignore"
  
  # Logs and databases
  - "*.log"
  - "*.sqlite"
  
  # Build and distribution
  - "build/"
  - "dist/"
  - "*.egg-info/"
  
  # Testing
  - ".coverage"
  - "htmlcov/"
  - ".pytest_cache/"
  - ".mypy_cache/"

# Custom commands
commands:
  validate_all: "python -m pytest tests/"
  check_types: "mypy ."
  format_code: "black ."
  validate_uco: "case_validate"
bun
golang
python
sqlite

First Time Repository

Converter program to change NIST's NSRL CAID ODATA to Unified Cyber Ontology json

Python

Languages:

Python: 23.6KB
Created: 1/4/2025
Updated: 1/7/2025

All Repositories (1)

Converter program to change NIST's NSRL CAID ODATA to Unified Cyber Ontology json