# bear2u/my-skills architecture

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

- Interactive diagram: https://gitdiagram.com/bear2u/my-skills
- Repository: https://github.com/bear2u/my-skills

## Overview

This repository is a Claude Code skills hub, with card-news generation among its documented capabilities. Its clearest runtime workflow takes user- or AI-prepared card text, optionally selects background images, and renders image files; it also contains web-content utilities, a landing-page example, and a TODO app example. The source excerpts show key generator and TODO call paths, but many listed skills and several demo modules were not sampled, so their internal wiring is left out.

Main entry points: [`test-project/src/app/actions.ts`](https://github.com/bear2u/my-skills/blob/master/test-project/src/app/actions.ts) (TODO actions), [`test-project/src/app/page.tsx`](https://github.com/bear2u/my-skills/blob/master/test-project/src/app/page.tsx) (TODO page), [`test-project/src/db/index.ts`](https://github.com/bear2u/my-skills/blob/master/test-project/src/db/index.ts) (SQLite database), [`skills/card-news-generator/interactive_generator.py`](https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator/interactive_generator.py) (Interactive cards)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cards["Card generation"]
  node_card_manual["Interactive cards"]
  node_card_auto["Card series<br/>[auto_generator.py]"]
  node_card_render["Card renderer<br/>[generate_card.py]"]
  node_v2_auto["V2 series<br/>[auto_generator.py]"]
  node_v2_manual["V2 interactive"]
  node_v2_render["V2 renderer<br/>[generate_card.py]"]
  node_code_auto["Code series"]
  node_code_render["Code card renderer"]
end

subgraph group_web["Web utilities"]
  node_web_search["Web search<br/>[search.py]"]
  node_markdown_extract["Markdown extraction"]
  node_dynamic_fetch["Dynamic content fetch"]
end

subgraph group_landing["Landing example"]
  node_landing_page["Landing page<br/>[page.tsx]"]
  node_landing_sections["Page sections"]
end

subgraph group_todo["TODO example"]
  node_todo_page["TODO page<br/>[page.tsx]"]
  node_todo_actions["TODO actions<br/>[actions.ts]"]
  node_todo_validation["Input validation<br/>[validations.ts]"]
  node_todo_schema["TODO schema<br/>[schema.ts]"]
  node_todo_db[("SQLite database<br/>[index.ts]")]
  node_todo_init["Database setup<br/>[init.ts]"]
  node_todo_components["TODO components"]
end

node_user(("User"))
node_todo_user(("TODO user"))

node_user -->|"enters card details"| node_card_manual
node_user -->|"provides series input"| node_card_auto
node_card_manual -->|"calls renderer"| node_card_render
node_card_auto -->|"renders cards"| node_card_render
node_user -->|"provides series input"| node_v2_auto
node_user -->|"enters card details"| node_v2_manual
node_v2_auto -.->|"renders cards"| node_v2_render
node_v2_manual -->|"calls renderer"| node_v2_render
node_user -.->|"provides code content"| node_code_auto
node_code_auto -->|"generates code cards"| node_code_render
node_user -.->|"requests search"| node_web_search
node_user -.->|"submits webpage"| node_markdown_extract
node_user -.->|"requests content"| node_dynamic_fetch
node_user -.->|"views page"| node_landing_page
node_landing_page -.->|"renders sections"| node_landing_sections
node_todo_user -.->|"uses TODO app"| node_todo_page
node_todo_page -->|"loads TODOs"| node_todo_actions
node_todo_page -->|"renders UI"| node_todo_components
node_todo_actions -->|"validates input"| node_todo_validation
node_todo_actions -->|"queries TODOs"| node_todo_schema
node_todo_actions -->|"uses database"| node_todo_db
node_todo_actions -->|"initializes database"| node_todo_init
node_todo_init -->|"runs setup SQL"| node_todo_db
node_todo_db -->|"loads schema"| node_todo_schema

click node_card_manual "https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator/interactive_generator.py"
click node_card_auto "https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator/auto_generator.py"
click node_card_render "https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator/generate_card.py"
click node_v2_auto "https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator-v2/auto_generator.py"
click node_v2_manual "https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator-v2/interactive_generator.py"
click node_v2_render "https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator-v2/generate_card.py"
click node_code_auto "https://github.com/bear2u/my-skills/blob/master/backup/code-card-news-generator/auto_code_generator.py"
click node_code_render "https://github.com/bear2u/my-skills/blob/master/backup/code-card-news-generator/generate_code_card.py"
click node_web_search "https://github.com/bear2u/my-skills/blob/master/skills/web-search/scripts/search.py"
click node_markdown_extract "https://github.com/bear2u/my-skills/blob/master/extract-markdown.js"
click node_dynamic_fetch "https://github.com/bear2u/my-skills/blob/master/fetch-dynamic-content.js"
click node_landing_page "https://github.com/bear2u/my-skills/blob/master/landing-page-v2-test/app/page.tsx"
click node_landing_sections "https://github.com/bear2u/my-skills/tree/master/landing-page-v2-test/components"
click node_todo_page "https://github.com/bear2u/my-skills/blob/master/test-project/src/app/page.tsx"
click node_todo_actions "https://github.com/bear2u/my-skills/blob/master/test-project/src/app/actions.ts"
click node_todo_validation "https://github.com/bear2u/my-skills/blob/master/test-project/src/lib/validations.ts"
click node_todo_schema "https://github.com/bear2u/my-skills/blob/master/test-project/src/db/schema.ts"
click node_todo_db "https://github.com/bear2u/my-skills/blob/master/test-project/src/db/index.ts"
click node_todo_init "https://github.com/bear2u/my-skills/blob/master/test-project/src/db/init.ts"
click node_todo_components "https://github.com/bear2u/my-skills/tree/master/test-project/src/components"

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_card_manual,node_card_auto,node_card_render,node_v2_auto,node_v2_manual,node_v2_render,node_code_auto,node_code_render,node_user,node_todo_user toneBlue
class node_web_search,node_markdown_extract,node_dynamic_fetch toneAmber
class node_landing_page,node_landing_sections toneMint
class node_todo_page,node_todo_actions,node_todo_validation,node_todo_schema,node_todo_db,node_todo_init,node_todo_components toneRose
```

## Components

### Card generation

- [Interactive cards](https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator/interactive_generator.py): `skills/card-news-generator/interactive_generator.py`
- [Card series](https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator/auto_generator.py): `skills/card-news-generator/auto_generator.py`
- [Card renderer](https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator/generate_card.py): `skills/card-news-generator/generate_card.py`
- [V2 series](https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator-v2/auto_generator.py): `skills/card-news-generator-v2/auto_generator.py`
- [V2 interactive](https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator-v2/interactive_generator.py): `skills/card-news-generator-v2/interactive_generator.py`
- [V2 renderer](https://github.com/bear2u/my-skills/blob/master/skills/card-news-generator-v2/generate_card.py): `skills/card-news-generator-v2/generate_card.py`
- [Code series](https://github.com/bear2u/my-skills/blob/master/backup/code-card-news-generator/auto_code_generator.py): `backup/code-card-news-generator/auto_code_generator.py`
- [Code card renderer](https://github.com/bear2u/my-skills/blob/master/backup/code-card-news-generator/generate_code_card.py): `backup/code-card-news-generator/generate_code_card.py`

### Web utilities

- [Web search](https://github.com/bear2u/my-skills/blob/master/skills/web-search/scripts/search.py): `skills/web-search/scripts/search.py`
- [Markdown extraction](https://github.com/bear2u/my-skills/blob/master/extract-markdown.js): `extract-markdown.js`
- [Dynamic content fetch](https://github.com/bear2u/my-skills/blob/master/fetch-dynamic-content.js): `fetch-dynamic-content.js`

### Landing example

- [Landing page](https://github.com/bear2u/my-skills/blob/master/landing-page-v2-test/app/page.tsx): `landing-page-v2-test/app/page.tsx`
- [Page sections](https://github.com/bear2u/my-skills/tree/master/landing-page-v2-test/components): `landing-page-v2-test/components`

### TODO example

- [TODO page](https://github.com/bear2u/my-skills/blob/master/test-project/src/app/page.tsx): `test-project/src/app/page.tsx`
- [TODO actions](https://github.com/bear2u/my-skills/blob/master/test-project/src/app/actions.ts): `test-project/src/app/actions.ts`
- [Input validation](https://github.com/bear2u/my-skills/blob/master/test-project/src/lib/validations.ts): `test-project/src/lib/validations.ts`
- [TODO schema](https://github.com/bear2u/my-skills/blob/master/test-project/src/db/schema.ts): `test-project/src/db/schema.ts`
- [SQLite database](https://github.com/bear2u/my-skills/blob/master/test-project/src/db/index.ts): `test-project/src/db/index.ts`
- [Database setup](https://github.com/bear2u/my-skills/blob/master/test-project/src/db/init.ts): `test-project/src/db/init.ts`
- [TODO components](https://github.com/bear2u/my-skills/tree/master/test-project/src/components): `test-project/src/components`

### Other components

- **User**
- **TODO user**

## Connections

- User → Interactive cards: enters card details
- User → Card series: provides series input (evidence: `skills/card-news-generator/auto_generator.py`)
- Interactive cards → Card renderer: calls renderer (evidence: `skills/card-news-generator/interactive_generator.py`)
- Card series → Card renderer: renders cards (evidence: `skills/card-news-generator/auto_generator.py`)
- User → V2 series: provides series input (evidence: `skills/card-news-generator-v2/auto_generator.py`)
- User → V2 interactive: enters card details
- V2 series → V2 renderer: renders cards
- V2 interactive → V2 renderer: calls renderer (evidence: `skills/card-news-generator-v2/interactive_generator.py`)
- User → Code series: provides code content
- Code series → Code card renderer: generates code cards (evidence: `backup/code-card-news-generator/auto_code_generator.py`)
- User → Web search: requests search
- User → Markdown extraction: submits webpage
- User → Dynamic content fetch: requests content
- User → Landing page: views page
- Landing page → Page sections: renders sections
- TODO user → TODO page: uses TODO app
- TODO page → TODO actions: loads TODOs (evidence: `test-project/src/app/page.tsx`)
- TODO page → TODO components: renders UI (evidence: `test-project/src/app/page.tsx`)
- TODO actions → Input validation: validates input (evidence: `test-project/src/app/actions.ts`)
- TODO actions → TODO schema: queries TODOs (evidence: `test-project/src/app/actions.ts`)
- TODO actions → SQLite database: uses database (evidence: `test-project/src/app/actions.ts`)
- TODO actions → Database setup: initializes database (evidence: `test-project/src/app/actions.ts`)
- Database setup → SQLite database: runs setup SQL (evidence: `test-project/src/db/init.ts`)
- SQLite database → TODO schema: loads schema (evidence: `test-project/src/db/index.ts`)
