commgraph

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2026 License: MIT

README

CommGraph

Go CI Go Lint Go SAST Go Report Card Docs Docs Visualization License

Communication graph analysis framework for organizational communication patterns.

Overview

CommGraph analyzes communication patterns across multiple platforms (email, Slack, Teams) to understand:

  • Influence: Who has power and authority in communication
  • Information Flow: How information propagates through the organization
  • Coordination: Collaborative activity and project coordination patterns
  • Organizational Structure: Informal vs formal hierarchy

Features

  • Multi-platform support via adapter architecture
  • Configurable weight profiles for different analysis types
  • Thread reconstruction for fragmented email conversations
  • Identity resolution across aliases and platforms
  • Graph database abstraction (via omniretrieve)
  • E-discovery ready (immutable storage, audit trails, EDRM export)

Installation

go install github.com/grokify/commgraph/cmd/commgraph@latest

Quick Start

# Run full pipeline (ingest + analyze)
commgraph pipeline \
    --source=/path/to/emails \
    --format=maildir \
    --internal-domains=company.com \
    --profile=influence \
    --top=20

# Or use separate commands:
commgraph ingest --source=/path/to/mailbox.mbox --format=mbox
commgraph analyze centrality --profile=influence
commgraph export gephi --output=graph.gexf

Documentation

Full documentation is available at grokify.github.io/commgraph.

Specifications

Architecture

┌─────────────────────────────────────────────────────────────┐
│                        CLI / API                            │
├─────────────────────────────────────────────────────────────┤
│                    Analysis Layer                           │
│  (Centrality, Community Detection, Temporal, Anomaly)       │
├─────────────────────────────────────────────────────────────┤
│                     Graph Layer                             │
│  (omniretrieve abstraction, Weight Profiles)                │
├─────────────────────────────────────────────────────────────┤
│                   Processing Layer                          │
│  (Identity Resolution, Thread Reconstruction)               │
├─────────────────────────────────────────────────────────────┤
│                    Ingestion Layer                          │
│  (Adapters: Email, Slack, Teams)                            │
├─────────────────────────────────────────────────────────────┤
│                    Storage Layer                            │
│  (Memory, BadgerDB, Neo4j)                                  │
└─────────────────────────────────────────────────────────────┘

Weight Profiles

CommGraph supports configurable weight profiles for different analysis objectives:

Profile TO CC BCC Mention Reply Use Case
influence 1.0 0.2 0.4 0.1 0.3 Power/authority analysis
information_flow 1.0 0.8 0.9 0.5 0.1 Information propagation
coordination 0.5 0.8 0.3 0.2 1.0 Collaborative activity

Dependencies

License

MIT

Directories

Path Synopsis
Package adapter provides interfaces for ingesting messages from various platforms.
Package adapter provides interfaces for ingesting messages from various platforms.
email
Package email provides adapters for ingesting email messages.
Package email provides adapters for ingesting email messages.
Package analysis provides graph analysis algorithms.
Package analysis provides graph analysis algorithms.
cmd
commgraph command
Command commgraph is a CLI for communication graph analysis.
Command commgraph is a CLI for communication graph analysis.
Package config provides configuration loading for CommGraph.
Package config provides configuration loading for CommGraph.
Package entity defines core domain types for communication graph analysis.
Package entity defines core domain types for communication graph analysis.
Package export provides export functionality for analysis results.
Package export provides export functionality for analysis results.
Package graph provides communication graph operations using the omniretrieve abstraction.
Package graph provides communication graph operations using the omniretrieve abstraction.
Package identity provides identity resolution for communication participants.
Package identity provides identity resolution for communication participants.
Package session provides session file persistence for the commgraph CLI.
Package session provides session file persistence for the commgraph CLI.
Package storage provides interfaces for persisting communication graph data.
Package storage provides interfaces for persisting communication graph data.
Package threading provides thread reconstruction for messages.
Package threading provides thread reconstruction for messages.
Package weight provides configurable weight profiles for graph analysis.
Package weight provides configurable weight profiles for graph analysis.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL