# ly-xxx/ace-taffy-skill architecture

> Architecture diagram of the GitHub repository ly-xxx/ace-taffy-skill, 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/ly-xxx/ace-taffy-skill
- Repository: https://github.com/ly-xxx/ace-taffy-skill

## Overview

永雏塔菲.skill combines an instruction-driven persona skill for Codex/Claude Code with a research pipeline that collects public Weibo/Bilibili material and prepares speech and style data. The primary user workflow is to invoke the skill with a writing or roleplay request; the agent uses the skill definition and persona references to produce a response. The secondary workflow refreshes public sources, transcribes selected video audio, audits transcripts, and builds corpus/training artifacts. README documents additional style-analysis capabilities; unsampled tool wiring is not assumed.

Main entry points: [`sources/transcripts`](https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/transcripts) (Transcript files), [`tools/build_corpus_public.py`](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/build_corpus_public.py) (Corpus builder), [`tools/download_bilibili_media.py`](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/download_bilibili_media.py) (Media download), [`sources/raw`](https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/raw) (Raw captures)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Persona Runtime"]
  node_skill["Skill instructions<br/>[SKILL.md]"]
  node_persona["Persona profile<br/>[persona.md]"]
  node_meta["Skill metadata<br/>[meta.json]"]
  node_prompts["Task prompts"]
end

subgraph group_collection["Public Sources"]
  node_weibo_collector["Weibo collection"]
  node_bili_collector["Bilibili collection"]
  node_raw_sources[("Raw captures")]
end

subgraph group_speech["Speech Data"]
  node_media_download["Media download"]
  node_media[("Downloaded media")]
  node_transcribe["Audio transcription"]
  node_transcripts[("Transcript files")]
  node_batch_stt["Batch STT"]
  node_audit["Transcript audit"]
  node_audit_output[("Audit artifacts")]
  node_training["Training selection"]
  node_training_output[("Training selections")]
end

subgraph group_knowledge["Style Knowledge"]
  node_references["Persona references"]
  node_corpus["Corpus builder"]
  node_processed[("Processed corpus")]
  node_style_bank["Style bank builder"]
  node_pattern_analysis["Speech-pattern analysis"]
end

node_user(("Skill user"))
node_agent(("Codex / Claude Code"))
node_weibo_service(("Weibo"))
node_bili_service(("Bilibili"))

node_user -->|"requests output"| node_agent
node_agent -->|"loads instructions"| node_skill
node_agent -->|"reads persona"| node_persona
node_agent -->|"reads metadata"| node_meta
node_agent -->|"uses prompts"| node_prompts
node_agent -->|"consults guidance"| node_references
node_agent -->|"returns draft"| node_user
node_weibo_collector -->|"fetches public posts"| node_weibo_service
node_bili_collector -->|"fetches public data"| node_bili_service
node_weibo_collector -->|"writes captures"| node_raw_sources
node_bili_collector -->|"writes captures"| node_raw_sources
node_media_download -->|"downloads streams"| node_bili_service
node_media_download -->|"writes media"| node_media
node_batch_stt -->|"runs downloader"| node_media_download
node_batch_stt -->|"runs transcription"| node_transcribe
node_transcribe -->|"writes transcripts"| node_transcripts
node_audit -->|"reads transcripts"| node_transcripts
node_audit -->|"writes audit results"| node_audit_output
node_training -->|"reads audit data"| node_audit_output
node_training -->|"writes selections"| node_training_output
node_corpus -->|"reads captures"| node_raw_sources
node_corpus -->|"reads transcripts"| node_transcripts
node_corpus -->|"writes corpus"| node_processed
node_style_bank -->|"reads corpus data"| node_processed
node_pattern_analysis -->|"analyzes speech"| node_transcripts

click node_skill "https://github.com/ly-xxx/ace-taffy-skill/blob/main/SKILL.md"
click node_persona "https://github.com/ly-xxx/ace-taffy-skill/blob/main/persona.md"
click node_meta "https://github.com/ly-xxx/ace-taffy-skill/blob/main/meta.json"
click node_prompts "https://github.com/ly-xxx/ace-taffy-skill/tree/main/prompts"
click node_references "https://github.com/ly-xxx/ace-taffy-skill/tree/main/references"
click node_weibo_collector "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/collect_weibo_public.py"
click node_bili_collector "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/collect_bilibili_public.py"
click node_raw_sources "https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/raw"
click node_media_download "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/download_bilibili_media.py"
click node_media "https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/media"
click node_transcribe "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/transcribe_audio.py"
click node_transcripts "https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/transcripts"
click node_batch_stt "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/batch_bilibili_stt.py"
click node_audit "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/audit_transcripts.py"
click node_audit_output "https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/processed"
click node_training "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/build_training_set.py"
click node_corpus "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/build_corpus_public.py"
click node_processed "https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/processed/corpus"
click node_style_bank "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/build_style_bank.py"
click node_pattern_analysis "https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/analyze_meow_pattern.py"
click node_training_output "https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/processed/training"

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_persona,node_meta,node_prompts,node_user toneBlue
class node_weibo_collector,node_bili_collector,node_raw_sources toneAmber
class node_media_download,node_media,node_transcribe,node_transcripts,node_batch_stt,node_audit,node_audit_output,node_training,node_training_output toneMint
class node_references,node_corpus,node_processed,node_style_bank,node_pattern_analysis toneRose
class node_agent,node_weibo_service,node_bili_service toneIndigo
```

## Components

### Persona Runtime

- [Skill instructions](https://github.com/ly-xxx/ace-taffy-skill/blob/main/SKILL.md): `SKILL.md`
- [Persona profile](https://github.com/ly-xxx/ace-taffy-skill/blob/main/persona.md): `persona.md`
- [Skill metadata](https://github.com/ly-xxx/ace-taffy-skill/blob/main/meta.json): `meta.json`
- [Task prompts](https://github.com/ly-xxx/ace-taffy-skill/tree/main/prompts): `prompts`

### Public Sources

- [Weibo collection](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/collect_weibo_public.py): `tools/collect_weibo_public.py`
- [Bilibili collection](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/collect_bilibili_public.py): `tools/collect_bilibili_public.py`
- [Raw captures](https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/raw): `sources/raw`

### Speech Data

- [Media download](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/download_bilibili_media.py): `tools/download_bilibili_media.py`
- [Downloaded media](https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/media): `sources/media`
- [Audio transcription](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/transcribe_audio.py): `tools/transcribe_audio.py`
- [Transcript files](https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/transcripts): `sources/transcripts`
- [Batch STT](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/batch_bilibili_stt.py): `tools/batch_bilibili_stt.py`
- [Transcript audit](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/audit_transcripts.py): `tools/audit_transcripts.py`
- [Audit artifacts](https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/processed): `sources/processed`
- [Training selection](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/build_training_set.py): `tools/build_training_set.py`
- [Training selections](https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/processed/training): `sources/processed/training`

### Style Knowledge

- [Persona references](https://github.com/ly-xxx/ace-taffy-skill/tree/main/references): `references`
- [Corpus builder](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/build_corpus_public.py): `tools/build_corpus_public.py`
- [Processed corpus](https://github.com/ly-xxx/ace-taffy-skill/tree/main/sources/processed/corpus): `sources/processed/corpus`
- [Style bank builder](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/build_style_bank.py): `tools/build_style_bank.py`
- [Speech-pattern analysis](https://github.com/ly-xxx/ace-taffy-skill/blob/main/tools/analyze_meow_pattern.py): `tools/analyze_meow_pattern.py`

### Other components

- **Skill user**
- **Codex / Claude Code**
- **Weibo**
- **Bilibili**

## Connections

- Skill user → Codex / Claude Code: requests output
- Codex / Claude Code → Skill instructions: loads instructions
- Codex / Claude Code → Persona profile: reads persona
- Codex / Claude Code → Skill metadata: reads metadata
- Codex / Claude Code → Task prompts: uses prompts
- Codex / Claude Code → Persona references: consults guidance
- Codex / Claude Code → Skill user: returns draft
- Weibo collection → Weibo: fetches public posts
- Bilibili collection → Bilibili: fetches public data
- Weibo collection → Raw captures: writes captures
- Bilibili collection → Raw captures: writes captures
- Media download → Bilibili: downloads streams
- Media download → Downloaded media: writes media
- Batch STT → Media download: runs downloader
- Batch STT → Audio transcription: runs transcription
- Audio transcription → Transcript files: writes transcripts
- Transcript audit → Transcript files: reads transcripts
- Transcript audit → Audit artifacts: writes audit results
- Training selection → Audit artifacts: reads audit data
- Training selection → Training selections: writes selections
- Corpus builder → Raw captures: reads captures
- Corpus builder → Transcript files: reads transcripts
- Corpus builder → Processed corpus: writes corpus
- Style bank builder → Processed corpus: reads corpus data
- Speech-pattern analysis → Transcript files: analyzes speech
