# 863401402/she-love-me architecture

> Architecture diagram of the GitHub repository 863401402/she-love-me, 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/863401402/she-love-me
- Repository: https://github.com/863401402/she-love-me

## Overview

她不一样 is a local-first Agent Skill and chat-history analysis product. Its main workflow guides a user through importing one contact’s WeChat or QQ history, producing normalized messages and statistics, selecting an analysis window, and generating relationship analysis and a report. The README documents additional import formats, emoji handling, and a traditional LLM handoff. The graph follows documented orchestration; several subsystems are represented by their enclosing directories because their source was not sampled.

Main entry points: [`.agents/skills/she-love-me/SKILL.md`](https://github.com/863401402/she-love-me/blob/main/.agents/skills/she-love-me/SKILL.md) (Analysis skill), [`scripts/stats_analyzer.py`](https://github.com/863401402/she-love-me/blob/main/scripts/stats_analyzer.py) (Statistics engine), [`references`](https://github.com/863401402/she-love-me/tree/main/references) (Relationship analysis), [`traditional-deployment/build_llm_package.py`](https://github.com/863401402/she-love-me/blob/main/traditional-deployment/build_llm_package.py) (LLM package builder)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_guidance["Agent workflow"]
  node_skill["Analysis skill<br/>[SKILL.md]"]
end

subgraph group_import["Chat import"]
  node_import_formats["Import converters"]
  node_weflow["WeFlow converter<br/>[convert_weflow.py]"]
  node_cipher_convert["CipherTalk converter"]
  node_qq_import["QQ importer"]
  node_wechat_extract["WeChat extractor"]
  node_markdown["Markdown converter"]
  node_contacts["Contact listing<br/>[list_contacts.py]"]
  node_messages["Contact messages"]
end

subgraph group_analysis["Analysis"]
  node_stats["Statistics engine<br/>[stats_analyzer.py]"]
  node_sampling["Window selection"]
  node_relationship["Relationship analysis"]
end

subgraph group_outputs["Reports and exports"]
  node_emoji["Emoji export<br/>[export_emojis.py]"]
  node_html["HTML report"]
  node_report["Analysis report"]
end

subgraph group_traditional["Traditional handoff"]
  node_traditional["LLM package builder"]
end

node_user(("User"))
node_agent(("Agent platform"))
node_wechat["WeChat exporters"]
node_cipher["CipherTalk"]
node_qce["QQ Chat Exporter"]
node_llm(("Chat model"))

node_user -->|"invokes skill"| node_agent
node_agent -->|"loads"| node_skill
node_skill -->|"guides choices"| node_user
node_skill -.->|"requests contacts"| node_contacts
node_contacts -->|"lists contacts"| node_user
node_skill -.->|"guides export"| node_wechat
node_wechat -.->|"provides local data"| node_wechat_extract
node_skill -.->|"guides export"| node_cipher
node_cipher -.->|"provides export"| node_cipher_convert
node_skill -.->|"guides export"| node_qce
node_qce -->|"serves messages"| node_qq_import
node_skill -.->|"selects import"| node_weflow
node_skill -.->|"selects import"| node_markdown
node_skill -.->|"supports formats"| node_import_formats
node_wechat_extract -->|"writes"| node_messages
node_qq_import -->|"writes"| node_messages
node_cipher_convert -->|"writes"| node_messages
node_weflow -->|"writes"| node_messages
node_markdown -->|"writes"| node_messages
node_skill -->|"runs statistics"| node_stats
node_messages -->|"reads"| node_stats
node_skill -->|"selects window"| node_sampling
node_messages -->|"samples"| node_sampling
node_skill -->|"applies frameworks"| node_relationship
node_stats -->|"supplies metrics"| node_relationship
node_sampling -->|"supplies excerpts"| node_relationship
node_relationship -->|"provides findings"| node_html
node_stats -->|"provides metrics"| node_html
node_html -->|"renders"| node_report
node_skill -.->|"offers export"| node_emoji
node_messages -->|"reads metadata"| node_emoji
node_skill -.->|"offers handoff"| node_traditional
node_messages -.->|"packages"| node_traditional
node_stats -.->|"adds summary"| node_traditional
node_traditional -.->|"builds handoff"| node_llm

click node_skill "https://github.com/863401402/she-love-me/blob/main/.agents/skills/she-love-me/SKILL.md"
click node_import_formats "https://github.com/863401402/she-love-me/tree/main/scripts"
click node_weflow "https://github.com/863401402/she-love-me/blob/main/scripts/convert_weflow.py"
click node_cipher_convert "https://github.com/863401402/she-love-me/blob/main/scripts/convert_ciphertalk.py"
click node_qq_import "https://github.com/863401402/she-love-me/blob/main/scripts/extract_messages_qq.py"
click node_wechat_extract "https://github.com/863401402/she-love-me/blob/main/scripts/extract_messages.py"
click node_markdown "https://github.com/863401402/she-love-me/blob/main/scripts/convert_markdown.py"
click node_contacts "https://github.com/863401402/she-love-me/blob/main/scripts/list_contacts.py"
click node_stats "https://github.com/863401402/she-love-me/blob/main/scripts/stats_analyzer.py"
click node_sampling "https://github.com/863401402/she-love-me/blob/main/scripts/build_chat_history.py"
click node_relationship "https://github.com/863401402/she-love-me/tree/main/references"
click node_emoji "https://github.com/863401402/she-love-me/blob/main/scripts/export_emojis.py"
click node_html "https://github.com/863401402/she-love-me/blob/main/scripts/generate_html_report.py"
click node_traditional "https://github.com/863401402/she-love-me/blob/main/traditional-deployment/build_llm_package.py"

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_skill,node_user toneBlue
class node_import_formats,node_weflow,node_cipher_convert,node_qq_import,node_wechat_extract,node_markdown,node_contacts,node_messages toneAmber
class node_stats,node_sampling,node_relationship toneMint
class node_emoji,node_html,node_report toneRose
class node_traditional,node_agent,node_wechat,node_cipher,node_qce,node_llm toneIndigo
```

## Components

### Agent workflow

- [Analysis skill](https://github.com/863401402/she-love-me/blob/main/.agents/skills/she-love-me/SKILL.md): `.agents/skills/she-love-me/SKILL.md`

### Chat import

- [Import converters](https://github.com/863401402/she-love-me/tree/main/scripts): `scripts`
- [WeFlow converter](https://github.com/863401402/she-love-me/blob/main/scripts/convert_weflow.py): `scripts/convert_weflow.py`
- [CipherTalk converter](https://github.com/863401402/she-love-me/blob/main/scripts/convert_ciphertalk.py): `scripts/convert_ciphertalk.py`
- [QQ importer](https://github.com/863401402/she-love-me/blob/main/scripts/extract_messages_qq.py): `scripts/extract_messages_qq.py`
- [WeChat extractor](https://github.com/863401402/she-love-me/blob/main/scripts/extract_messages.py): `scripts/extract_messages.py`
- [Markdown converter](https://github.com/863401402/she-love-me/blob/main/scripts/convert_markdown.py): `scripts/convert_markdown.py`
- [Contact listing](https://github.com/863401402/she-love-me/blob/main/scripts/list_contacts.py): `scripts/list_contacts.py`
- **Contact messages**

### Analysis

- [Statistics engine](https://github.com/863401402/she-love-me/blob/main/scripts/stats_analyzer.py): `scripts/stats_analyzer.py`
- [Window selection](https://github.com/863401402/she-love-me/blob/main/scripts/build_chat_history.py): `scripts/build_chat_history.py`
- [Relationship analysis](https://github.com/863401402/she-love-me/tree/main/references): `references`

### Reports and exports

- [Emoji export](https://github.com/863401402/she-love-me/blob/main/scripts/export_emojis.py): `scripts/export_emojis.py`
- [HTML report](https://github.com/863401402/she-love-me/blob/main/scripts/generate_html_report.py): `scripts/generate_html_report.py`
- **Analysis report**

### Traditional handoff

- [LLM package builder](https://github.com/863401402/she-love-me/blob/main/traditional-deployment/build_llm_package.py): `traditional-deployment/build_llm_package.py`

### Other components

- **User**
- **Agent platform**
- **WeChat exporters**
- **CipherTalk**
- **QQ Chat Exporter**
- **Chat model**

## Connections

- User → Agent platform: invokes skill
- Agent platform → Analysis skill: loads
- Analysis skill → User: guides choices
- Analysis skill → Contact listing: requests contacts
- Contact listing → User: lists contacts
- Analysis skill → WeChat exporters: guides export
- WeChat exporters → WeChat extractor: provides local data
- Analysis skill → CipherTalk: guides export
- CipherTalk → CipherTalk converter: provides export
- Analysis skill → QQ Chat Exporter: guides export
- QQ Chat Exporter → QQ importer: serves messages
- Analysis skill → WeFlow converter: selects import
- Analysis skill → Markdown converter: selects import
- Analysis skill → Import converters: supports formats
- WeChat extractor → Contact messages: writes
- QQ importer → Contact messages: writes
- CipherTalk converter → Contact messages: writes
- WeFlow converter → Contact messages: writes
- Markdown converter → Contact messages: writes
- Analysis skill → Statistics engine: runs statistics
- Contact messages → Statistics engine: reads
- Analysis skill → Window selection: selects window
- Contact messages → Window selection: samples
- Analysis skill → Relationship analysis: applies frameworks
- Statistics engine → Relationship analysis: supplies metrics
- Window selection → Relationship analysis: supplies excerpts
- Relationship analysis → HTML report: provides findings
- Statistics engine → HTML report: provides metrics
- HTML report → Analysis report: renders
- Analysis skill → Emoji export: offers export
- Contact messages → Emoji export: reads metadata
- Analysis skill → LLM package builder: offers handoff
- Contact messages → LLM package builder: packages
- Statistics engine → LLM package builder: adds summary
- LLM package builder → Chat model: builds handoff
