# keyurmishra/hackerrank-orchestrate-october26 architecture

> Architecture diagram of the GitHub repository keyurmishra/hackerrank-orchestrate-october26, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/keyurmishra/hackerrank-orchestrate-october26
- Repository: https://github.com/keyurmishra/hackerrank-orchestrate-october26

## Overview

Ghost Data Still Exists is a deterministic deletion-audit agent. It takes deletion requests and supplied identity, activity, policy, and evidence files; resolves identity and resource ownership; reconstructs state at each audit time; classifies intent and applies retention and remediation rules; then emits ordered findings, remediation, and verification steps to CSV. The README documents the stages and capabilities; the pipeline excerpt confirms orchestration calls. Reader-level wiring and the command-line entry point’s internals were not sampled, so those links rely on README statements.

Main entry points: [`code/pipeline.py`](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/pipeline.py) (Audit orchestrator), [`code/loaders.py`](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/loaders.py) (Input loaders), [`code/rules.py`](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/rules.py) (Policy decisions), [`code/main.py`](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/main.py) (Command entry point)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inputs["Audit inputs"]
  node_requests["Deletion requests"]
  node_identities["Identity records"]
  node_activity["System activity"]
  node_policy["Deletion policy<br/>[deletion_rules.csv]"]
  node_manifest["Evidence manifest<br/>[evidence_files.csv]"]
end

subgraph group_evidence["Evidence and identity"]
  node_loaders["Input loaders<br/>[loaders.py]"]
  node_evidence_index["Evidence index<br/>[index.py]"]
  node_evidence_readers["Evidence readers"]
  node_record_model["Evidence records<br/>[common.py]"]
  node_identity["Identity resolver<br/>[identity.py]"]
  node_linker["Resource linker<br/>[linker.py]"]
end

subgraph group_decisions["Audit decisions"]
  node_state["Audit-time state<br/>[state.py]"]
  node_classifier["Intent classifier<br/>[classifier.py]"]
  node_rules["Policy decisions<br/>[rules.py]"]
  node_pipeline["Audit orchestrator<br/>[pipeline.py]"]
end

subgraph group_results["Plan and output"]
  node_planner["Step planner<br/>[planner.py]"]
  node_entrypoint["Command entry point<br/>[main.py]"]
  node_csv_output["Audit output<br/>[output.csv]"]
end

node_operator(("Audit operator"))

node_operator -->|"runs audit"| node_entrypoint
node_requests -->|"loads requests"| node_loaders
node_identities -->|"loads identities"| node_loaders
node_activity -->|"loads activity"| node_loaders
node_policy -->|"loads policy"| node_loaders
node_manifest -->|"loads manifest"| node_loaders
node_loaders -->|"supplies cases"| node_pipeline
node_evidence_readers -->|"builds records"| node_record_model
node_evidence_index -->|"parses evidence"| node_evidence_readers
node_pipeline -->|"creates index"| node_evidence_index
node_pipeline -->|"resolves identity"| node_identity
node_pipeline -->|"links resources"| node_linker
node_pipeline -->|"gets states"| node_state
node_pipeline -->|"checks intent"| node_classifier
node_pipeline -->|"decides compliance"| node_rules
node_pipeline -->|"builds plan"| node_planner
node_rules -->|"loads rules"| node_loaders
node_rules -->|"uses email rule"| node_record_model
node_entrypoint -->|"audits cases"| node_pipeline
node_entrypoint -->|"writes CSV"| node_csv_output

click node_requests "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/deletion_requests.csv"
click node_identities "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/user_identities.csv"
click node_activity "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/system_activity.csv"
click node_policy "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/deletion_rules.csv"
click node_manifest "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/evidence_files.csv"
click node_loaders "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/loaders.py"
click node_evidence_index "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/evidence/index.py"
click node_evidence_readers "https://github.com/keyurmishra/hackerrank-orchestrate-october26/tree/main/code/evidence"
click node_record_model "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/evidence/common.py"
click node_identity "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/identity.py"
click node_linker "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/linker.py"
click node_state "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/state.py"
click node_classifier "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/classifier.py"
click node_rules "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/rules.py"
click node_pipeline "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/pipeline.py"
click node_planner "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/planner.py"
click node_entrypoint "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/main.py"
click node_csv_output "https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/output.csv"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_requests,node_identities,node_activity,node_policy,node_manifest toneBlue
class node_loaders,node_evidence_index,node_evidence_readers,node_record_model,node_identity,node_linker toneAmber
class node_state,node_classifier,node_rules,node_pipeline toneMint
class node_planner,node_entrypoint,node_csv_output toneRose
class node_operator toneIndigo
```

## Components

### Audit inputs

- [Deletion requests](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/deletion_requests.csv): `dataset/deletion_requests.csv`
- [Identity records](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/user_identities.csv): `dataset/user_identities.csv`
- [System activity](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/system_activity.csv): `dataset/system_activity.csv`
- [Deletion policy](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/deletion_rules.csv): `dataset/deletion_rules.csv`
- [Evidence manifest](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/dataset/evidence_files.csv): `dataset/evidence_files.csv`

### Evidence and identity

- [Input loaders](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/loaders.py): `code/loaders.py`
- [Evidence index](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/evidence/index.py): `code/evidence/index.py`
- [Evidence readers](https://github.com/keyurmishra/hackerrank-orchestrate-october26/tree/main/code/evidence): `code/evidence`
- [Evidence records](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/evidence/common.py): `code/evidence/common.py`
- [Identity resolver](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/identity.py): `code/identity.py`
- [Resource linker](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/linker.py): `code/linker.py`

### Audit decisions

- [Audit-time state](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/state.py): `code/state.py`
- [Intent classifier](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/classifier.py): `code/classifier.py`
- [Policy decisions](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/rules.py): `code/rules.py`
- [Audit orchestrator](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/pipeline.py): `code/pipeline.py`

### Plan and output

- [Step planner](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/planner.py): `code/planner.py`
- [Command entry point](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/code/main.py): `code/main.py`
- [Audit output](https://github.com/keyurmishra/hackerrank-orchestrate-october26/blob/main/output.csv): `output.csv`

### Other components

- **Audit operator**

## Connections

- Audit operator → Command entry point: runs audit (evidence: `README.md`)
- Deletion requests → Input loaders: loads requests (evidence: `README.md`)
- Identity records → Input loaders: loads identities (evidence: `README.md`)
- System activity → Input loaders: loads activity (evidence: `README.md`)
- Deletion policy → Input loaders: loads policy (evidence: `README.md`)
- Evidence manifest → Input loaders: loads manifest (evidence: `README.md`)
- Input loaders → Audit orchestrator: supplies cases (evidence: `README.md`)
- Evidence readers → Evidence records: builds records (evidence: `README.md`)
- Evidence index → Evidence readers: parses evidence (evidence: `README.md`)
- Audit orchestrator → Evidence index: creates index (evidence: `code/pipeline.py`)
- Audit orchestrator → Identity resolver: resolves identity (evidence: `code/pipeline.py`)
- Audit orchestrator → Resource linker: links resources (evidence: `code/pipeline.py`)
- Audit orchestrator → Audit-time state: gets states (evidence: `code/pipeline.py`)
- Audit orchestrator → Intent classifier: checks intent (evidence: `code/pipeline.py`)
- Audit orchestrator → Policy decisions: decides compliance (evidence: `code/pipeline.py`)
- Audit orchestrator → Step planner: builds plan (evidence: `code/pipeline.py`)
- Policy decisions → Input loaders: loads rules (evidence: `code/rules.py`)
- Policy decisions → Evidence records: uses email rule (evidence: `code/rules.py`)
- Command entry point → Audit orchestrator: audits cases (evidence: `README.md`)
- Command entry point → Audit output: writes CSV (evidence: `README.md`)
