# handsomestwei/patent-disclosure-skill architecture

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

- Interactive diagram: https://gitdiagram.com/handsomestwei/patent-disclosure-skill
- Repository: https://github.com/handsomestwei/patent-disclosure-skill
- Video tour (about a minute): https://gitdiagram.com/handsomestwei/patent-disclosure-skill/video

## Overview

中国专利.skill is a collection of agent-invoked patent workflows, not one monolithic application. Its documented capabilities span invention-disclosure drafting, application preparation, docket coordination, patent reading and mapping, office-action assistance, claim charts, bibliographic search, and policy briefs. The README supports these as separate user-facing branches; sampled source and the SOURCE INDEX support selected internal links. Most skill implementations were not sampled, so their internal workflows are represented at subsystem level rather than inferred.

Main entry points: [`skills/patent-map/tools/vault_index.py`](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/vault_index.py) (Vault Index), [`skills/patent-application`](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-application) (Application Files), [`skills/patent-map/tools/embed_layout.py`](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/embed_layout.py) (Map Embeddings), [`skills/patent-oa/tools/ingest_case.py`](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-oa/tools/ingest_case.py) (Case Ingestion)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Patent Authoring"]
  node_disclosure["Disclosure Drafting"]
  node_application["Application Files"]
  node_docket["Docket Workflow"]
end

subgraph group_research["Patent Research"]
  node_reader["Patent Reading"]
  node_map["Patent Map"]
  node_search["Patent Search"]
end

subgraph group_response["Examination Support"]
  node_oa["Office-Action Aid"]
  node_chart["Claim Charts"]
  node_policy["Policy Briefs"]
end

subgraph group_shared["Shared Internals"]
  node_docx["Word Export<br/>[md_to_docx.py]"]
  node_figure["Application Figures"]
  node_docket_validate["Docket Validation<br/>[validate_docket.py]"]
  node_oa_ingest["Case Ingestion<br/>[ingest_case.py]"]
  node_oa_embed["Text Embeddings<br/>[embed.py]"]
  node_oa_store[("Case Store<br/>[store.py]")]
  node_reader_common["Reader Configuration<br/>[common.py]"]
  node_map_index["Vault Index<br/>[vault_index.py]"]
  node_map_embed["Map Embeddings<br/>[embed_layout.py]"]
  node_map_models[("Model Store<br/>[model_store.py]")]
  node_map_cache[("Map Cache<br/>[map_cache.py]")]
  node_search_cli["Search CLI<br/>[cnipa_search.py]"]
  node_derived_query["Derived Queries<br/>[derived_query.py]"]
end

node_user(("Patent User"))
node_cnipa["CNIPA Search"]

node_user -->|"draft disclosure"| node_disclosure
node_user -->|"prepare application"| node_application
node_user -->|"coordinate case"| node_docket
node_user -->|"interpret patent"| node_reader
node_user -->|"explore portfolio"| node_map
node_user -->|"search publications"| node_search
node_user -->|"draft response"| node_oa
node_user -->|"compare claims"| node_chart
node_user -->|"review policy"| node_policy
node_application -->|"export Word"| node_docx
node_application -->|"render figures"| node_figure
node_docket -->|"validate docket"| node_docket_validate
node_oa_ingest -->|"embed cases"| node_oa_embed
node_oa_ingest -->|"store cases"| node_oa_store
node_oa_embed -->|"provide vectors"| node_oa_store
node_reader -->|"resolve configuration"| node_reader_common
node_map_index -->|"build layout"| node_map_embed
node_map_index -->|"use models"| node_map_models
node_map_index -->|"use cache"| node_map_cache
node_map_embed -->|"load models"| node_map_models
node_map_embed -->|"use cache"| node_map_cache
node_search_cli -->|"derive query"| node_derived_query
node_search_cli -->|"query publications"| node_cnipa

click node_disclosure "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-disclosure"
click node_application "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-application"
click node_docket "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-docket"
click node_reader "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-reader"
click node_map "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-map"
click node_search "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-search"
click node_oa "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-oa"
click node_chart "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-chart"
click node_policy "https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-exam-policy"
click node_docx "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-application/tools/md_to_docx.py"
click node_figure "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-application/tools/render_invention_figures.py"
click node_docket_validate "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-docket/tools/validate_docket.py"
click node_oa_ingest "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-oa/tools/ingest_case.py"
click node_oa_embed "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-oa/tools/embed.py"
click node_oa_store "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-oa/tools/store.py"
click node_reader_common "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-reader/tools/shared/common.py"
click node_map_index "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/vault_index.py"
click node_map_embed "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/embed_layout.py"
click node_map_models "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/model_store.py"
click node_map_cache "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/map_cache.py"
click node_search_cli "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-search/tools/cnipa_search.py"
click node_derived_query "https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-search/tools/derived_query.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_disclosure,node_application,node_docket,node_user toneBlue
class node_reader,node_map,node_search toneAmber
class node_oa,node_chart,node_policy toneMint
class node_docx,node_figure,node_docket_validate,node_oa_ingest,node_oa_embed,node_oa_store,node_reader_common,node_map_index,node_map_embed,node_map_models,node_map_cache,node_search_cli,node_derived_query toneRose
class node_cnipa toneIndigo
```

## Components

### Patent Authoring

- [Disclosure Drafting](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-disclosure): `skills/patent-disclosure`
- [Application Files](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-application): `skills/patent-application`
- [Docket Workflow](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-docket): `skills/patent-docket`

### Patent Research

- [Patent Reading](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-reader): `skills/patent-reader`
- [Patent Map](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-map): `skills/patent-map`
- [Patent Search](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-search): `skills/patent-search`

### Examination Support

- [Office-Action Aid](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-oa): `skills/patent-oa`
- [Claim Charts](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-chart): `skills/patent-chart`
- [Policy Briefs](https://github.com/handsomestwei/patent-disclosure-skill/tree/main/skills/patent-exam-policy): `skills/patent-exam-policy`

### Shared Internals

- [Word Export](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-application/tools/md_to_docx.py): `skills/patent-application/tools/md_to_docx.py`
- [Application Figures](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-application/tools/render_invention_figures.py): `skills/patent-application/tools/render_invention_figures.py`
- [Docket Validation](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-docket/tools/validate_docket.py): `skills/patent-docket/tools/validate_docket.py`
- [Case Ingestion](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-oa/tools/ingest_case.py): `skills/patent-oa/tools/ingest_case.py`
- [Text Embeddings](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-oa/tools/embed.py): `skills/patent-oa/tools/embed.py`
- [Case Store](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-oa/tools/store.py): `skills/patent-oa/tools/store.py`
- [Reader Configuration](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-reader/tools/shared/common.py): `skills/patent-reader/tools/shared/common.py`
- [Vault Index](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/vault_index.py): `skills/patent-map/tools/vault_index.py`
- [Map Embeddings](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/embed_layout.py): `skills/patent-map/tools/embed_layout.py`
- [Model Store](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/model_store.py): `skills/patent-map/tools/model_store.py`
- [Map Cache](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-map/tools/map_cache.py): `skills/patent-map/tools/map_cache.py`
- [Search CLI](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-search/tools/cnipa_search.py): `skills/patent-search/tools/cnipa_search.py`
- [Derived Queries](https://github.com/handsomestwei/patent-disclosure-skill/blob/main/skills/patent-search/tools/derived_query.py): `skills/patent-search/tools/derived_query.py`

### Other components

- **Patent User**
- **CNIPA Search**

## Connections

- Patent User → Disclosure Drafting: draft disclosure (evidence: `README.md`)
- Patent User → Application Files: prepare application (evidence: `README.md`)
- Patent User → Docket Workflow: coordinate case (evidence: `README.md`)
- Patent User → Patent Reading: interpret patent (evidence: `README.md`)
- Patent User → Patent Map: explore portfolio (evidence: `README.md`)
- Patent User → Patent Search: search publications (evidence: `README.md`)
- Patent User → Office-Action Aid: draft response (evidence: `README.md`)
- Patent User → Claim Charts: compare claims (evidence: `README.md`)
- Patent User → Policy Briefs: review policy (evidence: `README.md`)
- Application Files → Word Export: export Word (evidence: `skills/patent-application/tools/md_to_docx.py`)
- Application Files → Application Figures: render figures (evidence: `skills/patent-application/tools/render_invention_figures.py`)
- Docket Workflow → Docket Validation: validate docket (evidence: `skills/patent-docket/tools/emit_tracker.py`)
- Case Ingestion → Text Embeddings: embed cases (evidence: `skills/patent-oa/tools/ingest_case.py`)
- Case Ingestion → Case Store: store cases (evidence: `skills/patent-oa/tools/ingest_case.py`)
- Text Embeddings → Case Store: provide vectors (evidence: `skills/patent-oa/tools/store.py`)
- Patent Reading → Reader Configuration: resolve configuration (evidence: `skills/patent-oa/tools/ingest_case.py`)
- Vault Index → Map Embeddings: build layout (evidence: `skills/patent-map/tools/vault_index.py`)
- Vault Index → Model Store: use models (evidence: `skills/patent-map/tools/vault_index.py`)
- Vault Index → Map Cache: use cache (evidence: `skills/patent-map/tools/vault_index.py`)
- Map Embeddings → Model Store: load models (evidence: `skills/patent-map/tools/embed_layout.py`)
- Map Embeddings → Map Cache: use cache (evidence: `skills/patent-map/tools/embed_layout.py`)
- Search CLI → Derived Queries: derive query (evidence: `skills/patent-search/tools/cnipa_search.py`)
- Search CLI → CNIPA Search: query publications (evidence: `skills/patent-search/tools/cnipa_search.py`)
