# jinxiaolong1129/foot-in-the-door-jailbreak architecture

> Architecture diagram of the GitHub repository jinxiaolong1129/foot-in-the-door-jailbreak, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jinxiaolong1129/foot-in-the-door-jailbreak
- Repository: https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak

## Overview

FITD is a research implementation of a multi-turn Foot-in-the-Door jailbreak: it progressively transforms prompts, queries a language model, and records attack outcomes. Separate analysis programs investigate alignment robustness and model internals across attack stages, including semantic attention networks and hidden states. The README also describes benchmark evaluation and pre-generated prompts. The excerpts are partial, so the graph omits uncertain internal calls and does not infer wiring for unsampled modules.

Main entry points: [`FITD.py`](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/FITD.py) (FITD runner), [`analysis copy/main.py`](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis%20copy/main.py) (FITD semantic analysis), [`analysis/main.py`](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis/main.py) (Semantic analysis), [`alignment.py`](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/alignment.py) (Alignment robustness)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_attack["Attack workflow"]
  node_fitd["FITD runner<br/>[FITD.py]"]
end

subgraph group_inputs["Attack inputs"]
  node_benchmarks["Benchmark data"]
  node_prompt_library["Attack prompts"]
end

subgraph group_analysis["Mechanism analysis"]
  node_analysis_main["Semantic analysis<br/>[main.py]"]
  node_analysis_copy_main["FITD semantic analysis<br/>[main.py]"]
  node_semantic_hidden["Hidden-state analysis"]
  node_semantic_attention["Attention analysis"]
  node_semantic_network["Semantic networks"]
  node_alignment["Alignment robustness<br/>[alignment.py]"]
  node_alignment_history["Response-based alignment"]
  node_token_analysis["Token mechanisms<br/>[token_analysis.py]"]
end

subgraph group_outputs["Results"]
  node_attack_results[("Attack results")]
  node_analysis_results[("Analysis outputs")]
  node_alignment_results[("Alignment outputs")]
  node_mechanism_results[("Mechanism outputs")]
end

node_researcher(("Researcher"))
node_llm{{"Language model API"}}

node_researcher -->|"runs"| node_fitd
node_fitd -->|"loads data"| node_benchmarks
node_fitd -->|"uses prompts"| node_prompt_library
node_fitd -->|"queries"| node_llm
node_fitd -->|"saves outcomes"| node_attack_results
node_researcher -->|"runs analysis"| node_analysis_main
node_analysis_main -->|"analyzes networks"| node_semantic_network
node_analysis_main -->|"writes results"| node_analysis_results
node_researcher -->|"runs analysis"| node_analysis_copy_main
node_analysis_copy_main -->|"analyzes states"| node_semantic_hidden
node_analysis_copy_main -->|"analyzes attention"| node_semantic_attention
node_analysis_copy_main -->|"writes results"| node_analysis_results
node_researcher -->|"runs analysis"| node_alignment
node_alignment -->|"samples responses"| node_llm
node_alignment -->|"writes results"| node_alignment_results
node_researcher -->|"runs analysis"| node_alignment_history
node_alignment_history -->|"loads model"| node_llm
node_alignment_history -->|"writes results"| node_alignment_results
node_researcher -->|"runs analysis"| node_token_analysis
node_token_analysis -->|"inspects model"| node_llm
node_token_analysis -->|"writes results"| node_mechanism_results

click node_fitd "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/FITD.py"
click node_benchmarks "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/data"
click node_prompt_library "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/prompts"
click node_attack_results "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/results"
click node_analysis_main "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis/main.py"
click node_analysis_copy_main "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis%20copy/main.py"
click node_semantic_hidden "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis%20copy/semantic_hidden_states.py"
click node_semantic_attention "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis%20copy/semantic_attention.py"
click node_semantic_network "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis/semantic_network.py"
click node_alignment "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/alignment.py"
click node_alignment_history "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis/alignment_with_predefine_response.py"
click node_token_analysis "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/token_analysis.py"
click node_analysis_results "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/analysis/semantic_analysis_results"
click node_alignment_results "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/analysis/alignment_results"
click node_mechanism_results "https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/mechanism_analysis_results"

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_fitd toneBlue
class node_benchmarks,node_prompt_library toneAmber
class node_analysis_main,node_analysis_copy_main,node_semantic_hidden,node_semantic_attention,node_semantic_network,node_alignment,node_alignment_history,node_token_analysis,node_llm toneMint
class node_attack_results,node_analysis_results,node_alignment_results,node_mechanism_results toneRose
class node_researcher toneIndigo
```

## Components

### Attack workflow

- [FITD runner](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/FITD.py): `FITD.py`

### Attack inputs

- [Benchmark data](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/data): `data`
- [Attack prompts](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/prompts): `prompts`

### Mechanism analysis

- [Semantic analysis](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis/main.py): `analysis/main.py`
- [FITD semantic analysis](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis%20copy/main.py): `analysis copy/main.py`
- [Hidden-state analysis](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis%20copy/semantic_hidden_states.py): `analysis copy/semantic_hidden_states.py`
- [Attention analysis](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis%20copy/semantic_attention.py): `analysis copy/semantic_attention.py`
- [Semantic networks](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis/semantic_network.py): `analysis/semantic_network.py`
- [Alignment robustness](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/alignment.py): `alignment.py`
- [Response-based alignment](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/analysis/alignment_with_predefine_response.py): `analysis/alignment_with_predefine_response.py`
- [Token mechanisms](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/blob/main/token_analysis.py): `token_analysis.py`

### Results

- [Attack results](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/results): `results`
- [Analysis outputs](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/analysis/semantic_analysis_results): `analysis/semantic_analysis_results`
- [Alignment outputs](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/analysis/alignment_results): `analysis/alignment_results`
- [Mechanism outputs](https://github.com/jinxiaolong1129/foot-in-the-door-jailbreak/tree/main/mechanism_analysis_results): `mechanism_analysis_results`

### Other components

- **Researcher**
- **Language model API**

## Connections

- Researcher → FITD runner: runs
- FITD runner → Benchmark data: loads data
- FITD runner → Attack prompts: uses prompts
- FITD runner → Language model API: queries
- FITD runner → Attack results: saves outcomes
- Researcher → Semantic analysis: runs analysis
- Semantic analysis → Semantic networks: analyzes networks
- Semantic analysis → Analysis outputs: writes results
- Researcher → FITD semantic analysis: runs analysis
- FITD semantic analysis → Hidden-state analysis: analyzes states
- FITD semantic analysis → Attention analysis: analyzes attention
- FITD semantic analysis → Analysis outputs: writes results
- Researcher → Alignment robustness: runs analysis
- Alignment robustness → Language model API: samples responses
- Alignment robustness → Alignment outputs: writes results
- Researcher → Response-based alignment: runs analysis
- Response-based alignment → Language model API: loads model
- Response-based alignment → Alignment outputs: writes results
- Researcher → Token mechanisms: runs analysis
- Token mechanisms → Language model API: inspects model
- Token mechanisms → Mechanism outputs: writes results
