# yb2460/harness-anything architecture

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

- Interactive diagram: https://gitdiagram.com/yb2460/harness-anything
- Repository: https://github.com/yb2460/harness-anything

## Overview

This repository combines command-line agents for office documents, Zotero research workflows, and Adobe design applications, plus standalone WPS-generated presentation projects. The main interaction pattern is CLI command → domain operation → application or library data, with Zotero also providing academic skills and citation/rendering capabilities. The graph preserves README-documented capabilities where source excerpts are unavailable; connections are limited to documented relationships or imports listed in the SOURCE INDEX, so some internal call paths remain unspecified.

Main entry points: [`cli_anything/zotero/zotero_cli.py`](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/zotero_cli.py) (Zotero CLI), [`cli_anything/wps/wps_cli.py`](https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/wps_cli.py) (WPS CLI), [`cli_anything/zotero/utils/zotero_http.py`](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/zotero_http.py) (Zotero HTTP client), [`illustrator-harness/agent-harness/illustrator/illustrator_cli.py`](https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/illustrator_cli.py) (Illustrator CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_wps["WPS Office"]
  node_wps_cli["WPS CLI<br/>[wps_cli.py]"]
  node_wps_session["Project session<br/>[session.py]"]
  node_wps_writer["Writer editing<br/>[writer.py]"]
  node_wps_calc["Calc editing<br/>[calc.py]"]
  node_wps_impress["Impress editing<br/>[impress.py]"]
  node_wps_export["Document export<br/>[export.py]"]
  node_wps_design["PPT design system"]
end

subgraph group_zotero["Zotero Research"]
  node_z_cli["Zotero CLI<br/>[zotero_cli.py]"]
  node_z_discovery["Runtime discovery<br/>[discovery.py]"]
  node_z_catalog["Library catalog<br/>[catalog.py]"]
  node_z_imports["Reference imports<br/>[imports.py]"]
  node_z_notes["Notes<br/>[notes.py]"]
  node_z_render["Citations &amp; export<br/>[rendering.py]"]
  node_z_analysis["Research analysis<br/>[analysis.py]"]
  node_z_experimental["Experimental tools<br/>[experimental.py]"]
  node_z_skills["Academic skills<br/>[skills_bridge.py]"]
  node_z_session["CLI session state<br/>[session.py]"]
  node_z_sqlite[("Zotero database<br/>[zotero_sqlite.py]")]
  node_z_http["Zotero HTTP client<br/>[zotero_http.py]"]
  node_z_paths["Profile paths<br/>[zotero_paths.py]"]
end

subgraph group_illustrator["Illustrator Design"]
  node_i_cli["Illustrator CLI<br/>[illustrator_cli.py]"]
  node_i_project["Project operations<br/>[project.py]"]
  node_i_artwork["Artwork editing"]
  node_i_export["Artwork export<br/>[export.py]"]
  node_i_backend["AI backend<br/>[ai_backend.py]"]
end

subgraph group_photoshop["Photoshop Design"]
  node_p_cli["Photoshop CLI<br/>[photoshop_cli.py]"]
  node_p_project["Project operations<br/>[project.py]"]
end

subgraph group_presentations["WPS Presentations"]
end

node_wps_user(("CLI user"))
node_wps_office["WPS / Office"]
node_z_user(("Researcher"))
node_z_app["Zotero application"]
node_i_user(("Design agent"))
node_i_app["Illustrator"]
node_p_user(("Design agent"))

node_wps_user -->|"runs commands"| node_wps_cli
node_wps_cli -->|"manages state"| node_wps_session
node_wps_cli -->|"edits text"| node_wps_writer
node_wps_cli -->|"edits sheets"| node_wps_calc
node_wps_cli -->|"edits slides"| node_wps_impress
node_wps_cli -->|"exports files"| node_wps_export
node_wps_cli -->|"applies presets"| node_wps_design
node_wps_export -->|"automates COM"| node_wps_office
node_z_user -->|"runs commands"| node_z_cli
node_z_cli -->|"discovers runtime"| node_z_discovery
node_z_cli -->|"manages catalog"| node_z_catalog
node_z_cli -->|"imports references"| node_z_imports
node_z_cli -->|"manages notes"| node_z_notes
node_z_cli -->|"renders citations"| node_z_render
node_z_cli -->|"runs analysis"| node_z_analysis
node_z_cli -->|"runs experiments"| node_z_experimental
node_z_cli -->|"bridges skills"| node_z_skills
node_z_cli -->|"tracks session"| node_z_session
node_z_discovery -->|"locates profile"| node_z_paths
node_z_discovery -->|"checks endpoints"| node_z_http
node_z_catalog -->|"reads library data"| node_z_sqlite
node_z_catalog -->|"queries local API"| node_z_http
node_z_imports -->|"uses library data"| node_z_sqlite
node_z_imports -->|"uses connector"| node_z_http
node_z_notes -->|"resolves items"| node_z_sqlite
node_z_notes -->|"saves notes"| node_z_http
node_z_render -->|"resolves references"| node_z_catalog
node_z_render -->|"fetches rendered output"| node_z_http
node_z_analysis -->|"uses references"| node_z_catalog
node_z_analysis -->|"uses notes"| node_z_notes
node_z_experimental -->|"uses database"| node_z_sqlite
node_z_http -.->|"calls local API"| node_z_app
node_i_user -->|"runs commands"| node_i_cli
node_i_cli -->|"routes project"| node_i_project
node_i_cli -->|"routes editing"| node_i_artwork
node_i_cli -->|"routes export"| node_i_export
node_i_cli -.->|"uses backend"| node_i_backend
node_i_project -->|"automates COM"| node_i_app
node_p_user -->|"runs commands"| node_p_cli
node_p_cli -->|"routes project"| node_p_project

click node_wps_cli "https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/wps_cli.py"
click node_wps_session "https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/session.py"
click node_wps_writer "https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/writer.py"
click node_wps_calc "https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/calc.py"
click node_wps_impress "https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/impress.py"
click node_wps_export "https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/export.py"
click node_wps_design "https://github.com/yb2460/harness-anything/tree/master/cli_anything/wps/styles"
click node_z_cli "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/zotero_cli.py"
click node_z_discovery "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/discovery.py"
click node_z_catalog "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/catalog.py"
click node_z_imports "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/imports.py"
click node_z_notes "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/notes.py"
click node_z_render "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/rendering.py"
click node_z_analysis "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/analysis.py"
click node_z_experimental "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/experimental.py"
click node_z_skills "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/skills_bridge.py"
click node_z_session "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/session.py"
click node_z_sqlite "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/zotero_sqlite.py"
click node_z_http "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/zotero_http.py"
click node_z_paths "https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/zotero_paths.py"
click node_i_cli "https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/illustrator_cli.py"
click node_i_project "https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/core/project.py"
click node_i_artwork "https://github.com/yb2460/harness-anything/tree/master/illustrator-harness/agent-harness/illustrator/core"
click node_i_export "https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/core/export.py"
click node_i_backend "https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/utils/ai_backend.py"
click node_p_cli "https://github.com/yb2460/harness-anything/blob/master/photoshop-harness/agent-harness/cli_anything/photoshop/photoshop_cli.py"
click node_p_project "https://github.com/yb2460/harness-anything/blob/master/photoshop-harness/agent-harness/cli_anything/photoshop/core/project.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_wps_cli,node_wps_session,node_wps_writer,node_wps_calc,node_wps_impress,node_wps_export,node_wps_design,node_wps_user toneBlue
class node_z_cli,node_z_discovery,node_z_catalog,node_z_imports,node_z_notes,node_z_render,node_z_analysis,node_z_experimental,node_z_skills,node_z_session,node_z_sqlite,node_z_http,node_z_paths toneAmber
class node_i_cli,node_i_project,node_i_artwork,node_i_export,node_i_backend toneMint
class node_p_cli,node_p_project toneRose
class node_wps_office,node_z_user,node_z_app,node_i_user,node_i_app,node_p_user toneIndigo
```

## Components

### WPS Office

- [WPS CLI](https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/wps_cli.py): `cli_anything/wps/wps_cli.py`
- [Project session](https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/session.py): `cli_anything/wps/core/session.py`
- [Writer editing](https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/writer.py): `cli_anything/wps/core/writer.py`
- [Calc editing](https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/calc.py): `cli_anything/wps/core/calc.py`
- [Impress editing](https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/impress.py): `cli_anything/wps/core/impress.py`
- [Document export](https://github.com/yb2460/harness-anything/blob/master/cli_anything/wps/core/export.py): `cli_anything/wps/core/export.py`
- [PPT design system](https://github.com/yb2460/harness-anything/tree/master/cli_anything/wps/styles): `cli_anything/wps/styles`

### Zotero Research

- [Zotero CLI](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/zotero_cli.py): `cli_anything/zotero/zotero_cli.py`
- [Runtime discovery](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/discovery.py): `cli_anything/zotero/core/discovery.py`
- [Library catalog](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/catalog.py): `cli_anything/zotero/core/catalog.py`
- [Reference imports](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/imports.py): `cli_anything/zotero/core/imports.py`
- [Notes](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/notes.py): `cli_anything/zotero/core/notes.py`
- [Citations & export](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/rendering.py): `cli_anything/zotero/core/rendering.py`
- [Research analysis](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/analysis.py): `cli_anything/zotero/core/analysis.py`
- [Experimental tools](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/experimental.py): `cli_anything/zotero/core/experimental.py`
- [Academic skills](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/skills_bridge.py): `cli_anything/zotero/utils/skills_bridge.py`
- [CLI session state](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/core/session.py): `cli_anything/zotero/core/session.py`
- [Zotero database](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/zotero_sqlite.py): `cli_anything/zotero/utils/zotero_sqlite.py`
- [Zotero HTTP client](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/zotero_http.py): `cli_anything/zotero/utils/zotero_http.py`
- [Profile paths](https://github.com/yb2460/harness-anything/blob/master/cli_anything/zotero/utils/zotero_paths.py): `cli_anything/zotero/utils/zotero_paths.py`

### Illustrator Design

- [Illustrator CLI](https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/illustrator_cli.py): `illustrator-harness/agent-harness/illustrator/illustrator_cli.py`
- [Project operations](https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/core/project.py): `illustrator-harness/agent-harness/illustrator/core/project.py`
- [Artwork editing](https://github.com/yb2460/harness-anything/tree/master/illustrator-harness/agent-harness/illustrator/core): `illustrator-harness/agent-harness/illustrator/core`
- [Artwork export](https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/core/export.py): `illustrator-harness/agent-harness/illustrator/core/export.py`
- [AI backend](https://github.com/yb2460/harness-anything/blob/master/illustrator-harness/agent-harness/illustrator/utils/ai_backend.py): `illustrator-harness/agent-harness/illustrator/utils/ai_backend.py`

### Photoshop Design

- [Photoshop CLI](https://github.com/yb2460/harness-anything/blob/master/photoshop-harness/agent-harness/cli_anything/photoshop/photoshop_cli.py): `photoshop-harness/agent-harness/cli_anything/photoshop/photoshop_cli.py`
- [Project operations](https://github.com/yb2460/harness-anything/blob/master/photoshop-harness/agent-harness/cli_anything/photoshop/core/project.py): `photoshop-harness/agent-harness/cli_anything/photoshop/core/project.py`

### Other components

- **CLI user**
- **WPS / Office**
- **Researcher**
- **Zotero application**
- **Design agent**
- **Illustrator**
- **Design agent**

## Connections

- CLI user → WPS CLI: runs commands (evidence: `README.md`)
- WPS CLI → Project session: manages state (evidence: `cli_anything/wps/wps_cli.py`)
- WPS CLI → Writer editing: edits text (evidence: `cli_anything/wps/wps_cli.py`)
- WPS CLI → Calc editing: edits sheets (evidence: `cli_anything/wps/wps_cli.py`)
- WPS CLI → Impress editing: edits slides (evidence: `cli_anything/wps/wps_cli.py`)
- WPS CLI → Document export: exports files (evidence: `cli_anything/wps/wps_cli.py`)
- WPS CLI → PPT design system: applies presets (evidence: `cli_anything/wps/wps_cli.py`)
- Document export → WPS / Office: automates COM (evidence: `README.md`)
- Researcher → Zotero CLI: runs commands (evidence: `README.md`)
- Zotero CLI → Runtime discovery: discovers runtime (evidence: `cli_anything/zotero/zotero_cli.py`)
- Zotero CLI → Library catalog: manages catalog (evidence: `cli_anything/zotero/zotero_cli.py`)
- Zotero CLI → Reference imports: imports references (evidence: `cli_anything/zotero/zotero_cli.py`)
- Zotero CLI → Notes: manages notes (evidence: `cli_anything/zotero/zotero_cli.py`)
- Zotero CLI → Citations & export: renders citations (evidence: `cli_anything/zotero/zotero_cli.py`)
- Zotero CLI → Research analysis: runs analysis (evidence: `cli_anything/zotero/zotero_cli.py`)
- Zotero CLI → Experimental tools: runs experiments (evidence: `cli_anything/zotero/zotero_cli.py`)
- Zotero CLI → Academic skills: bridges skills (evidence: `cli_anything/zotero/zotero_cli.py`)
- Zotero CLI → CLI session state: tracks session (evidence: `cli_anything/zotero/zotero_cli.py`)
- Runtime discovery → Profile paths: locates profile (evidence: `cli_anything/zotero/core/discovery.py`)
- Runtime discovery → Zotero HTTP client: checks endpoints (evidence: `cli_anything/zotero/core/discovery.py`)
- Library catalog → Zotero database: reads library data (evidence: `cli_anything/zotero/core/catalog.py`)
- Library catalog → Zotero HTTP client: queries local API (evidence: `cli_anything/zotero/core/catalog.py`)
- Reference imports → Zotero database: uses library data (evidence: `cli_anything/zotero/core/imports.py`)
- Reference imports → Zotero HTTP client: uses connector (evidence: `cli_anything/zotero/core/imports.py`)
- Notes → Zotero database: resolves items (evidence: `cli_anything/zotero/core/notes.py`)
- Notes → Zotero HTTP client: saves notes (evidence: `cli_anything/zotero/core/notes.py`)
- Citations & export → Library catalog: resolves references (evidence: `cli_anything/zotero/core/rendering.py`)
- Citations & export → Zotero HTTP client: fetches rendered output (evidence: `cli_anything/zotero/core/rendering.py`)
- Research analysis → Library catalog: uses references (evidence: `cli_anything/zotero/core/analysis.py`)
- Research analysis → Notes: uses notes (evidence: `cli_anything/zotero/core/analysis.py`)
- Experimental tools → Zotero database: uses database (evidence: `cli_anything/zotero/core/experimental.py`)
- Zotero HTTP client → Zotero application: calls local API
- Design agent → Illustrator CLI: runs commands (evidence: `README.md`)
- Illustrator CLI → Project operations: routes project (evidence: `README.md`)
- Illustrator CLI → Artwork editing: routes editing (evidence: `README.md`)
- Illustrator CLI → Artwork export: routes export (evidence: `README.md`)
- Illustrator CLI → AI backend: uses backend
- Project operations → Illustrator: automates COM (evidence: `README.md`)
- Design agent → Photoshop CLI: runs commands (evidence: `README.md`)
- Photoshop CLI → Project operations: routes project (evidence: `photoshop-harness/agent-harness/cli_anything/photoshop/photoshop_cli.py`)
