MVP #5: Influence cluster graph + repeated amplification detection #6

Merged
chrysolambda-ops merged 1 commit from mvp-5-influence-cluster-graph into main 2026-04-01 08:03:05 +00:00
chrysolambda-ops commented 2026-04-01 06:37:36 +00:00 (Migrated from github.com)

Closes #5

Summary

  • harden stdlib-only influence graph implementation at tools/provenance/influence_graph.py
  • emit graph artifact (nodes + edges) from propagation events
  • detect repeated amplification pathways and compute metrics:
    • frequency
    • lag
    • direct vs indirect counts
  • support seed tagging for state-affiliated and influencer accounts
  • preserve uncertainty labels in edge/pathway outputs
  • add/expand fixture + tests:
    • benchmarks/datasets/influence-fixture-001-repeated-amplification.json
    • tools/provenance/test_influence_graph.py

MVP #5 checklist (executable)

  • MVP5-TC01 (P0): graph artifact emission (nodes/edges with required fields)
  • MVP5-TC02 (P0): repeated amplification pathway detection in fixture data
  • MVP5-TC03 (P0): pathway frequency/lag/direct-vs-indirect metrics computed
  • MVP5-TC04 (P0): seed tagging for state-affiliated and influencer nodes
  • MVP5-TC05 (P0): uncertainty propagation preserved in edges/pathways
  • MVP5-TC06 (P1): deterministic rank stability for top pathways
  • MVP5-TC09 (P2): cyclic graph handling without infinite traversal

Adversarial fix wave (PR blocker resolution)

  • ✅ Reject duplicate event IDs deterministically (no silent overwrite of lineage graph state)
    • returns structured uncertainty error: code=duplicate_event_ids with sorted duplicate_event_ids
  • ✅ Handle malformed timestamps gracefully (no uncaught exception)
    • skips affected edge/pathway computations
    • returns structured uncertainty marker: code=invalid_timestamps with invalid_timestamp_event_ids
  • ✅ Added adversarial tests:
    • test_duplicate_event_ids_rejected_deterministically
    • test_malformed_timestamp_marks_uncertainty_without_exception

Test evidence

python3 -m unittest -v tools/provenance/test_influence_graph.py

Output summary:

  • Ran 5 tests
  • OK (5 passed, 0 failed)

Imported from GitHub issue/PR. Originally posted by chrysolambda-ops on 2026-04-01T06:37:36Z.

Closes #5 ## Summary - harden stdlib-only influence graph implementation at `tools/provenance/influence_graph.py` - emit graph artifact (`nodes` + `edges`) from propagation events - detect repeated amplification pathways and compute metrics: - frequency - lag - direct vs indirect counts - support seed tagging for state-affiliated and influencer accounts - preserve uncertainty labels in edge/pathway outputs - add/expand fixture + tests: - `benchmarks/datasets/influence-fixture-001-repeated-amplification.json` - `tools/provenance/test_influence_graph.py` ## MVP #5 checklist (executable) - [x] **MVP5-TC01 (P0):** graph artifact emission (`nodes`/`edges` with required fields) - [x] **MVP5-TC02 (P0):** repeated amplification pathway detection in fixture data - [x] **MVP5-TC03 (P0):** pathway frequency/lag/direct-vs-indirect metrics computed - [x] **MVP5-TC04 (P0):** seed tagging for state-affiliated and influencer nodes - [x] **MVP5-TC05 (P0):** uncertainty propagation preserved in edges/pathways - [x] **MVP5-TC06 (P1):** deterministic rank stability for top pathways - [x] **MVP5-TC09 (P2):** cyclic graph handling without infinite traversal ## Adversarial fix wave (PR blocker resolution) - ✅ Reject duplicate event IDs deterministically (no silent overwrite of lineage graph state) - returns structured uncertainty error: `code=duplicate_event_ids` with sorted `duplicate_event_ids` - ✅ Handle malformed timestamps gracefully (no uncaught exception) - skips affected edge/pathway computations - returns structured uncertainty marker: `code=invalid_timestamps` with `invalid_timestamp_event_ids` - ✅ Added adversarial tests: - `test_duplicate_event_ids_rejected_deterministically` - `test_malformed_timestamp_marks_uncertainty_without_exception` ## Test evidence ```bash python3 -m unittest -v tools/provenance/test_influence_graph.py ``` Output summary: - Ran 5 tests - OK (5 passed, 0 failed) --- Imported from [GitHub issue/PR](https://github.com/Kyvero-Vexus/truth-kit/pull/6). Originally posted by [chrysolambda-ops](https://github.com/chrysolambda-ops) on 2026-04-01T06:37:36Z.
Sign in to join this conversation.
No description provided.