# anbeime/skill architecture

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

- Interactive diagram: https://gitdiagram.com/anbeime/skill
- Repository: https://github.com/anbeime/skill

## Overview

This repository is primarily a catalog and updater for AI-agent skills, with a large collection of local skill packages. The main workflow is to run an update (once or on a schedule), collect and organize skill metadata, persist the catalog, then let users browse or export it. The README also documents catalog statistics and a skill-format validator. Some runtime wiring is inferred from the README and imports; unsampled implementation details are not represented as definite calls.

Main entry points: [`data_manager.py`](https://github.com/anbeime/skill/blob/main/data_manager.py) (Data manager), [`main.py`](https://github.com/anbeime/skill/blob/main/main.py) (CLI entry point), [`scheduler.py`](https://github.com/anbeime/skill/blob/main/scheduler.py) (Update scheduler), [`crawler.py`](https://github.com/anbeime/skill/blob/main/crawler.py) (Skill crawler)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Catalog update"]
  node_main["CLI entry point<br/>[main.py]"]
  node_scheduler["Update scheduler<br/>[scheduler.py]"]
  node_crawler["Skill crawler<br/>[crawler.py]"]
  node_config["Update configuration<br/>[config.py]"]
end

subgraph group_storage["Catalog data"]
  node_manager["Data manager<br/>[data_manager.py]"]
  node_catalog_store[("Catalog JSON<br/>[skills.json]")]
  node_local_store[("Local skill data<br/>[local_skills.json]")]
  node_csv["CSV export<br/>[data_manager.py]"]
end

subgraph group_skills["Skill packages"]
  node_skill_packages["Skill packages"]
  node_content_skills["Content skills"]
  node_video_skills["Video skills"]
  node_document_skills["Document skills"]
  node_agent_skills["Agent teamwork"]
end

subgraph group_validation["Skill validation"]
  node_validator["Skill validator"]
  node_skill_spec["Skill properties<br/>[models.py]"]
end

node_operator(("Operator"))
node_upstream["Skill source"]
node_browser(("Skill store browser"))

node_operator -->|"runs commands"| node_main
node_main -->|"starts updates"| node_scheduler
node_main -->|"reads or exports"| node_manager
node_scheduler -->|"requests crawl"| node_crawler
node_scheduler -->|"persists results"| node_manager
node_crawler -->|"fetches skills"| node_upstream
node_crawler -->|"uses settings"| node_config
node_manager -->|"reads and writes"| node_catalog_store
node_manager -->|"reads local data"| node_local_store
node_manager -->|"exports CSV"| node_csv
node_browser -->|"browses catalog"| node_catalog_store
node_browser -->|"browses skills"| node_skill_packages
node_operator -->|"checks skill"| node_validator
node_validator -->|"checks properties"| node_skill_spec

click node_main "https://github.com/anbeime/skill/blob/main/main.py"
click node_scheduler "https://github.com/anbeime/skill/blob/main/scheduler.py"
click node_crawler "https://github.com/anbeime/skill/blob/main/crawler.py"
click node_config "https://github.com/anbeime/skill/blob/main/config.py"
click node_manager "https://github.com/anbeime/skill/blob/main/data_manager.py"
click node_catalog_store "https://github.com/anbeime/skill/blob/main/data/skills.json"
click node_local_store "https://github.com/anbeime/skill/blob/main/data/local_skills.json"
click node_csv "https://github.com/anbeime/skill/blob/main/data_manager.py"
click node_skill_packages "https://github.com/anbeime/skill/tree/main/skills"
click node_content_skills "https://github.com/anbeime/skill/tree/main/skills/content-creation-publisher"
click node_video_skills "https://github.com/anbeime/skill/tree/main/skills/video-creation-suite"
click node_document_skills "https://github.com/anbeime/skill/tree/main/skills/legal-assistant-skills-main"
click node_agent_skills "https://github.com/anbeime/skill/tree/main/antinet-agentteams"
click node_validator "https://github.com/anbeime/skill/tree/main/tools/skill_validator"
click node_skill_spec "https://github.com/anbeime/skill/blob/main/tools/skill_validator/models.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_main,node_scheduler,node_crawler,node_config,node_browser toneBlue
class node_manager,node_catalog_store,node_local_store,node_csv toneAmber
class node_skill_packages,node_content_skills,node_video_skills,node_document_skills,node_agent_skills toneMint
class node_validator,node_skill_spec toneRose
class node_operator,node_upstream toneIndigo
```

## Components

### Catalog update

- [CLI entry point](https://github.com/anbeime/skill/blob/main/main.py): `main.py`
- [Update scheduler](https://github.com/anbeime/skill/blob/main/scheduler.py): `scheduler.py`
- [Skill crawler](https://github.com/anbeime/skill/blob/main/crawler.py): `crawler.py`
- [Update configuration](https://github.com/anbeime/skill/blob/main/config.py): `config.py`

### Catalog data

- [Data manager](https://github.com/anbeime/skill/blob/main/data_manager.py): `data_manager.py`
- [Catalog JSON](https://github.com/anbeime/skill/blob/main/data/skills.json): `data/skills.json`
- [Local skill data](https://github.com/anbeime/skill/blob/main/data/local_skills.json): `data/local_skills.json`
- [CSV export](https://github.com/anbeime/skill/blob/main/data_manager.py): `data_manager.py`

### Skill packages

- [Skill packages](https://github.com/anbeime/skill/tree/main/skills): `skills`
- [Content skills](https://github.com/anbeime/skill/tree/main/skills/content-creation-publisher): `skills/content-creation-publisher`
- [Video skills](https://github.com/anbeime/skill/tree/main/skills/video-creation-suite): `skills/video-creation-suite`
- [Document skills](https://github.com/anbeime/skill/tree/main/skills/legal-assistant-skills-main): `skills/legal-assistant-skills-main`
- [Agent teamwork](https://github.com/anbeime/skill/tree/main/antinet-agentteams): `antinet-agentteams`

### Skill validation

- [Skill validator](https://github.com/anbeime/skill/tree/main/tools/skill_validator): `tools/skill_validator`
- [Skill properties](https://github.com/anbeime/skill/blob/main/tools/skill_validator/models.py): `tools/skill_validator/models.py`

### Other components

- **Operator**
- **Skill source**
- **Skill store browser**

## Connections

- Operator → CLI entry point: runs commands
- CLI entry point → Update scheduler: starts updates
- CLI entry point → Data manager: reads or exports
- Update scheduler → Skill crawler: requests crawl
- Update scheduler → Data manager: persists results
- Skill crawler → Skill source: fetches skills
- Skill crawler → Update configuration: uses settings
- Data manager → Catalog JSON: reads and writes
- Data manager → Local skill data: reads local data
- Data manager → CSV export: exports CSV
- Skill store browser → Catalog JSON: browses catalog
- Skill store browser → Skill packages: browses skills
- Operator → Skill validator: checks skill
- Skill validator → Skill properties: checks properties
