System Analysis Workflow

The System Analysis workflow examines codebases and documentation to extract system purpose, intended users, and business context. This workflow is perfect for understanding unfamiliar systems, generating threat models, or creating system documentation.

Overview

  • Workflow ID: system_analysis
  • Primary Use Case: System understanding and threat modeling preparation
  • Output: JSON report with system characteristics

Quick Start

# Analyze current project
fraim run system_analysis --location .

# Analyze with business context
fraim run system_analysis --location . \
  --business-context "E-commerce platform for small businesses"

# Focus on specific areas
fraim run system_analysis --location . \
  --focus-areas "authentication,data_processing,api_endpoints"

# Analyze remote repository
fraim run system_analysis --location https://github.com/company/app

Analysis Output

The workflow generates a comprehensive JSON report containing:

System Characteristics

{
  "system_purpose": "E-commerce platform providing online shopping capabilities",
  "intended_users": ["customers", "merchants", "administrators"],
  "business_context": "B2B marketplace for small to medium businesses",
  "key_features": ["product catalog", "payment processing", "order management"],
  "user_roles": ["buyer", "seller", "admin", "support"],
  "external_integrations": ["payment gateway", "shipping API", "email service"],
  "data_types": ["personal information", "payment data", "product information"]
}

Analysis Metadata

{
  "confidence_score": 0.85,
  "files_analyzed": 12,
  "analysis_summary": "Analyzed 12 files to understand system characteristics...",
  "total_chunks_processed": 15
}

Workflow-Specific Options

--business-context <TEXT>

Provide additional business context to improve analysis accuracy.
# Financial services context
fraim run system_analysis --location . \
  --business-context "Banking application for retail customers"

# Healthcare context  
fraim run system_analysis --location . \
  --business-context "Patient management system for medical practices"

# E-commerce context
fraim run system_analysis --location . \
  --business-context "Online marketplace connecting buyers and sellers"

--focus-areas <AREAS>

Specify particular areas to emphasize during analysis.
# Authentication focus
fraim run system_analysis --location . \
  --focus-areas "authentication,authorization,user_management"

# Data processing focus
fraim run system_analysis --location . \
  --focus-areas "data_processing,database,api_endpoints"

# Security focus
fraim run system_analysis --location . \
  --focus-areas "security,encryption,access_control,audit_logging"
Common focus areas:
  • authentication - User authentication and session management
  • authorization - Access control and permissions
  • data_processing - Data handling and storage
  • api_endpoints - API design and external interfaces
  • user_management - User roles and account management
  • payment_processing - Financial transactions
  • security - Security controls and measures
  • compliance - Regulatory and compliance features
  • integration - External system integrations
  • monitoring - Logging and observability

Common Use Cases

1. Threat Modeling Preparation

# Generate system understanding for threat modeling
fraim run system_analysis --location . \
  --business-context "Customer-facing web application" \
  --focus-areas "authentication,data_processing,external_integrations"

2. Security Assessment Kickoff

# Understand system before security review
fraim run system_analysis --location . \
  --focus-areas "security,authentication,data_processing"

3. Onboarding New Team Members

# Generate system overview for new developers
fraim run system_analysis --location . \
  --business-context "Internal tool for customer support team"

4. Compliance Documentation

# Understand system for compliance assessment
fraim run system_analysis --location . \
  --business-context "Healthcare data processing system" \
  --focus-areas "data_processing,compliance,security"

5. Legacy System Analysis

# Analyze unfamiliar legacy system
fraim run system_analysis --location . \
  --business-context "Legacy financial reporting system"

GitHub Actions

name: System Analysis
on:
  workflow_dispatch:
    inputs:
      business_context:
        description: 'Business context for analysis'
        required: false
        default: 'Web application'

jobs:
  system-analysis:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Run Fraim System Analysis
        uses: fraim-dev/fraim-action@8d763963b80e2551c7ec3f5bdbd77bad6ce7658c
        with:
          anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
          workflow: system_analysis
          workflow_args: |
            {
              "business-context": "${{ github.event.inputs.business_context }}",
              "focus-areas": ["security", "authentication", "data_processing"]
            }
      
      - name: Upload Analysis
        uses: actions/upload-artifact@v3
        with:
          name: system-analysis
          path: fraim_output/system_analysis_*.json

Available workflow_args

ArgumentTypeDefaultDescription
chunk-sizeinteger500Number of lines per chunk
limitintegernullLimit the number of files to scan
globsarray of stringsnullFile patterns to include (uses workflow defaults if not provided)
max-concurrent-chunksinteger5Maximum number of chunks to process concurrently
business-contextstring""Additional business context to consider during analysis
focus-areasarray of stringsnullSpecific areas to focus on (e.g., authentication, data_processing, api_endpoints)

Documentation Generation

# Generate system overview for documentation
fraim run system_analysis --location . \
  --business-context "Internal API for user management" \
  --output ./docs/analysis/

Output File Structure

The workflow generates timestamped JSON files:
fraim_output/
└── system_analysis_myapp_20240915_143022.json