# archify **Repository Path**: xingchiang/archify ## Basic Information - **Project Name**: archify - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-13 - **Last Updated**: 2026-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![Archify 主视觉](docs/assets/archify-readme-hero.png) # Archify **聊两句就画出好看的架构图、技术流程图、调用时序图、数据流图和生命周期图。深色 / 浅色一键切。导出最高 4× 清晰 PNG / JPEG / WebP / SVG,或直接复制到剪贴板。** Archify 是一个可用于 Claude、Codex CLI 和 opencode 的 agent skill:你用大白话描述自己的系统或流程,它就把你的描述变成一张做工精细的技术图 —— 一个单文件 HTML,在浏览器里打开就能切主题、复制到剪贴板、导出成各种图片格式。 - **不需要会画图** —— 把组件和连接关系说给 Claude 就行 - **支持 workflow / sequence / data flow / lifecycle** —— 技术流程、审批链、工具调用、CI/CD、请求调用链、数据管线、PII 边界、状态机都可以画 - **内置主题切换** —— 深色 / 浅色一键切,浏览器记住偏好 - **一键复制到剪贴板** —— 直接贴到 Slack、飞书、微信、Notion、GitHub issue - **导出图片超清晰** —— PNG / JPEG / WebP 全部由浏览器在最高 4× 源分辨率下**原生光栅化**(不是位图放大,没有糊),或导出 SVG 做真矢量 - **SVG 自动跟系统深浅色** —— 导出的 SVG 内嵌两套变量 + `@media (prefers-color-scheme)`,贴到 GitHub README 里,读者切深浅色图跟着切(不用两张 PNG + `` 包起来) - **内置质量闭环** —— renderer 驱动的图会经过 JSON schema 校验、布局检查、HTML/SVG artifact 检查,再做定向迭代 - **语义技术标签** —— 可以把组件写成 `aws.lambda`、`postgres`、`redis`、`github-actions`、`openai` 等;Archify 会把它们映射到合适的视觉类别,不需要完整图标库 - **单文件 HTML** —— 生成的 HTML 零运行时依赖,发一个文件就能分享 - **聊天迭代** —— "把 Redis 挪到左边"、"鉴权服务换成玫红"、"加个 Kafka" ![License](https://img.shields.io/badge/license-MIT-22c55e?style=flat-square) ![Agent Skill](https://img.shields.io/badge/Agent-Skill-7C3AED?style=flat-square) ![Version](https://img.shields.io/badge/version-2.10.0-0891b2?style=flat-square) **[在线落地页 → tt-a1i.github.io/archify](https://tt-a1i.github.io/archify/)**

English

**60 秒开始:** ```bash npx skills add tt-a1i/archify -g ``` 然后告诉你的 agent:`使用 archify 梳理这个仓库的运行时架构。` ## 预览 同一张图,两套主题,一键切换: | 深色 | 浅色 | |---|---| | ![深色主题](docs/assets/archify-dark.png) | ![浅色主题](docs/assets/archify-light.png) | Export 菜单 —— 复制到剪贴板 + 四种格式下载: ![导出菜单](docs/assets/archify-menu.png) 想亲自玩一下:克隆仓库后打开 [`examples/web-app.html`](examples/web-app.html),按 T 切主题,E 打开导出菜单。给 URL 加上 `?theme=light` 或 `?openExport=1` 可以强制初始状态。 ## 图表类型 Archify 现在有五种主要输出: | 类型 | 适合画什么 | 怎么用 | |---|---|---| | **Architecture** | 系统组件、云资源、数据库、缓存、服务边界、安全组 | 直接描述系统结构 | | **Workflow** | 请求生命周期、审批流程、工具调用、CI/CD、运维 runbook、事故响应 | 说明参与方、步骤顺序、关键分支 | | **Sequence** | API 调用链、请求生命周期、缓存回源、鉴权、异步 trace、服务交互 | 说明谁调用谁、先后顺序、返回路径 | | **Data Flow** | 数据管线、ETL/ELT、埋点、PII 隔离、仓库同步、数据血缘、下游消费 | 说明数据来源、处理阶段、存储位置、敏感边界和消费方 | | **Lifecycle** | 状态机、订单/任务/部署/Agent run 生命周期、等待态、重试、取消、超时、终态 | 说明对象有哪些状态、哪些事件触发转移、哪些状态是终态 | Architecture 用来解释系统结构——组件、边界和连接关系。例如: ``` 用 archify 画一张架构图: React 前端调 Node.js API,PostgreSQL + Redis,部署在 AWS CloudFront 后面。 ``` SaaS 样例:[`examples/web-app.html`](examples/web-app.html) 真实仓库示例(renderer 驱动的 JSON IR): - [`examples/archify-repo.html`](examples/archify-repo.html) — 本仓库 skill → JSON IR → 渲染器流水线 - [`examples/maka-architecture.html`](examples/maka-architecture.html) — 第三方桌面 Agent 工作台 Maka Workflow 不是通用流程图的替代品,它更偏“技术沟通图”:有泳道、有语义颜色、有主路径和异步/审批/观测路径。比如: ``` 用 archify 画一个 workflow: 用户提交请求 -> Agent 规划 -> 需要审批时进入 Approval Gate -> 调工具 -> 记录 trace -> 返回结果 ``` 本仓库里有一个可打开的示例:[`examples/workflow-agent-tool-call-rendered.html`](examples/workflow-agent-tool-call-rendered.html)。 ![Workflow 示例](docs/assets/archify-workflow.png) Sequence 用来解释更细的交互顺序,比如: ``` 用 archify 画一个 sequence diagram: 用户打开页面,前端请求 API,API 校验 JWT,读取 Redis,缓存未命中则查 Postgres,返回结果并写入 trace。 ``` 示例:[`examples/sequence-cache-miss-request.html`](examples/sequence-cache-miss-request.html)。 ![Sequence 示例](docs/assets/archify-sequence.png) Data Flow 适合解释“数据资产怎么走”,比如: ``` 用 archify 画一个 data flow: Web 和 Mobile 上报埋点,Edge API 收集事件,Consent Gate 过滤 PII,Kafka 承接事件流, Warehouse 存分析表,Feature Store 做每日特征,Dashboard 和 ML Model 消费下游数据。 ``` 示例:[`examples/dataflow-product-analytics.html`](examples/dataflow-product-analytics.html)。 ![Data Flow 示例](docs/assets/archify-dataflow.png) Lifecycle 用来解释“对象状态怎么变”,比如: ``` 用 archify 画一个 lifecycle diagram: Agent Run 从 Queued 进入 Planning,再进入 Executing 和 Reviewing。需要人工确认时进入 Needs Approval,缺少输入时进入 Blocked;工具失败可以 Failed 后重试,用户取消进入 Cancelled, 超时进入 Expired,成功则进入 Completed。 ``` 示例:[`examples/lifecycle-agent-run.html`](examples/lifecycle-agent-run.html)。 ![Lifecycle 示例](docs/assets/archify-lifecycle.png) ## 版本演进 Archify 基于 [Cocoon-AI/architecture-diagram-generator](https://github.com/Cocoon-AI/architecture-diagram-generator) v1.0(只有深色主题的 HTML 输出)fork 重写。**2.0** 把模板重构成 CSS 变量驱动的可主题化系统,加入客户端导出流水线。**2.1** 加入剪贴板复制 + 键盘导航。**2.2** 加入打印样式 + 本地字体回退。**2.3** 修了位图升采样 bug,所有光栅导出改为最高 4× 原生渲染。**2.4** SVG 导出升级成双主题自持版。**2.5** 加入 workflow / sequence / data-flow / lifecycle 四种渲染器、Mermaid 输入指引、CJK-aware 文本测量、golden 测试和 CI。**2.6** 把 architecture 模式也升级到 schema + layout 校验。**2.7** 强化 workflow:phase header、group、exception lane、mainPath 主路径 lint、同泳道正交连线,以及生成后 HTML/SVG 检查器。**2.8** 加入按需 trace 动效,并拒绝 workflow 连线穿过无关节点。**2.9** 加入统一 CLI(`bin/archify.mjs`)和真实仓库 architecture 示例。**2.10** 加入 validator 修复建议、architecture grid(`row`/`col`)和 `archify inspect` 布局 JSON。 | 能力 | v1.0 | 2.0 | 2.1 | 2.2 | 2.3 | 2.4 | 2.5 | 2.6 | 2.7 | 2.8 | 2.9 | 2.10 | |---|---|---|---|---|---|---|---|---|---|---|---|---| | 深色主题 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 同 | 同 | 同 | | 浅色主题 | — | 切换 | 切换 | 切换 | 切换 + T 快捷键 | 同 | 同 | 同 | 同 | 同 | 同 | 同 | | PNG / JPEG / WebP 下载 | 手动截图 | 2× 位图放大 | 1×/2×/4× 选择器(仍是放大)| 同 | **4× 原生光栅化,不糊** | 同 | **浅色导出泳道配色修复** | 同 | 同 | 同 | 同 | 同 | | SVG 下载 | — | 矢量 + 内联样式(单主题)| 同 | 同 | 同 | **双主题自持**(`@media prefers-color-scheme`)| 同(泳道配色修复)| 同 | 同 | 同 | 同 | 同 | | 复制 PNG 到剪贴板 | — | — | ✓ | 同 | 同(最高 4×)| 同 | **Safari 修复** | 同 | 同 | 同 | 同 | 同 | | 键盘快捷键 | — | — | T/E + 菜单导航 | 同 | 同 | 同 | 同 | 同 | 同 | 同 | 同 | 同 | | 可访问性 | — | — | ARIA + focus-visible | 同 | 同 | 同 | 同(+ 菜单 a11y 修复)| 同 | 同 | 同 | 同 | 同 | | 打印样式表 | — | — | — | ✓ | ✓(+ 横向 + 2 列卡片)| 同 | 同 | 同 | 同 | 同 | 同 | 同 | | 导出时本地字体回退 | — | — | — | ✓ | ✓ | 同 | **+ CJK 字体回退** | 同 | 同 | 同 | 同 | 同 | | 样式模型 | 内联 `fill` / `stroke` | CSS 变量 + 语义 class | 同 | 同 | 同 | 同 | 同 | 同 | 同 | 同 | 同 | 同 | | 类型化渲染器 + schema 校验 | — | — | — | — | — | — | workflow / sequence / data-flow / lifecycle | **+ architecture** | 同 | 同 | 同 | 同 | | Workflow 结构辅助 | — | — | — | — | — | — | 泳道 + 路由连线 | 同 | **phase、group、exception lane、mainPath lint** | **连线穿节点 guard** | 同 | 同 | | 生成后 artifact 检查 | — | — | — | — | — | — | — | — | **✓** | 同 | 同 | 同 | | Trace 动效 | — | — | — | — | — | — | — | — | — | **按需开启** | 同 | 同 | | 统一 CLI | — | — | — | — | — | — | — | — | — | — | **✓** | 同 | | 真实仓库 architecture 示例 | — | — | — | — | — | — | — | — | — | — | **✓** | 同 | | Architecture grid + layout inspect | — | — | — | — | — | — | — | — | — | — | — | **✓** | | Validator 修复建议 | — | — | — | — | — | — | — | — | — | — | — | **✓** | ## 快速上手 ### 1. 一条命令安装 全局安装 Archify,然后按提示选择你使用的 agent: ```bash npx skills add tt-a1i/archify -g ``` 想先试用、不做常驻安装?下面这条命令会用 skill 的临时副本启动 Codex: ```bash npx skills use tt-a1i/archify@archify --agent codex ``` 把 `codex` 换成 `claude-code` 或 `opencode`,即可启动对应 agent。这些命令来自开源的 [`skills` CLI](https://github.com/vercel-labs/skills)。 ### 2. 复制一条 prompt **梳理真实仓库:** ```text 分析这个代码仓库,然后用 archify 生成一张架构图,展示运行时组件、数据流、外部依赖和信任边界。 ``` **解释请求链路:** ```text 用 archify 画出这条登录链路:浏览器 -> Web App -> API -> JWT 校验 -> Redis 会话查询 -> PostgreSQL 回退。清楚标出缓存未命中路径。 ``` **展示交付流程:** ```text 用 archify 生成一张 CI/CD 工作流图:pull request -> 测试 -> 审批门 -> 构建镜像 -> 部署 staging -> 冒烟测试 -> 部署 production;失败时走回滚路径。 ``` 发布版 skill 已内置 standalone Schema validator,安装或临时试用后即可直接 render,无需执行 `npm install`,也没有运行时依赖。 ### 3. 在对话中迭代 继续提出明确的小改动,例如「加一个 Redis」「把鉴权移到左边」「高亮回滚路径」。Archify 会交付一个可在任意浏览器打开的单文件 HTML,并可导出 PNG、JPEG、WebP 或 SVG。 ### 其他安装方式 Archify 打包成标准 agent skill 目录(`archify/SKILL.md`),同一个 [`archify.zip`](archify.zip) 可以用于 Claude、Codex CLI 和 opencode。 **Claude.ai:** 1. 下载 [`archify.zip`](archify.zip) 2. 进入 **Settings → Capabilities → Skills** 3. 点 **+ Add**,上传 zip 4. 打开开关 ![Claude Skills 设置页](docs/assets/claude-skills-settings.png) **Claude Code CLI:** ```bash # 全局(所有项目可用) unzip archify.zip -d ~/.claude/skills/ # 或者仅当前项目 unzip archify.zip -d ./.claude/skills/ ``` **Codex CLI:** ```bash # 全局(所有项目可用) unzip archify.zip -d ~/.agents/skills/ # 或者仅当前项目 unzip archify.zip -d ./.agents/skills/ ``` **opencode:** ```bash # 全局(opencode 原生目录) unzip archify.zip -d ~/.config/opencode/skills/ # 或者仅当前项目 unzip archify.zip -d ./.opencode/skills/ # 也可以复用上面 Codex 的通用 agent 目录 unzip archify.zip -d ~/.agents/skills/ ``` renderer 驱动的图在交付前会走一个小质量闭环: | 步骤 | 做什么 | |---|---| | **生成 JSON IR** | agent 先写 architecture / workflow / sequence / dataflow / lifecycle 的类型化描述,而不是直接手改最终 SVG。 | | **Validate** | 内置 standalone validator 检查 JSON Schema,无需安装运行时依赖。 | | **Render** | 类型化渲染器生成单文件 HTML/SVG。 | | **Check artifact** | 生成后检查器拦截 malformed SVG、非有限坐标、误生成的两点斜线箭头、穿过图例的连线。 | | **Iterate** | 修复尽量落在 JSON IR 或语义 class 上,局部调整不需要整张图从头生成。 | 也可以直接运行最终 artifact 检查: ```bash node scripts/check-render-output.mjs output.html ``` 内置 CLI 对这些 renderer / checker 命令做了一层统一包装: ```bash node bin/archify.mjs doctor node bin/archify.mjs demo /tmp/archify-demo node bin/archify.mjs render workflow examples/agent-tool-call.workflow.json workflow.html node bin/archify.mjs validate workflow examples/agent-tool-call.workflow.json --json node bin/archify.mjs check workflow.html node bin/archify.mjs examples ``` 渲染器生成的图也可以按需开启轻量动效,适合 demo 或演示场景: ```json { "meta": { "title": "Release Flow", "animation": "trace" } } ``` Trace animation 直接运行在生成的 HTML/SVG 里:箭头按顺序流动,节点轻微 pulse;用户开启 `prefers-reduced-motion` 时会自动禁用运动。默认不写 `animation`,输出仍是静态图。 **Claude.ai Projects:** 把 [`archify.zip`](archify.zip) 上传到 Project Knowledge 就行。 三种安装方式的能力差异: | 安装方式 | 能力 | |---|---| | **Claude Code** | 完整 —— 可运行类型化渲染器 + schema 校验 | | **Codex CLI** | 完整 —— 安装到 `~/.agents/skills/` 或 `.agents/skills/` | | **opencode** | 完整 —— 安装到 `.opencode/skills/`、`.agents/skills/` 或其他支持的 skills 目录 | | **Claude.ai 上传 zip** | 通常可用 —— 取决于沙箱是否允许执行 Node.js | | **Project Knowledge** | 仅架构模式 —— 不执行代码,纯 prompt 驱动 | ## 用生成的 HTML 浏览器打开文件,右上角会有两个按钮: - **主题按钮**(Dark / Light)—— 一键切换,持久化保存。快捷键 T。 - **Export 菜单** —— 五个操作:复制到剪贴板 + 4 种格式下载。快捷键 E。 ### Export 菜单 | 操作 | 做什么 | |---|---| | **Copy to clipboard** | 当前图以 PNG 格式直接进系统剪贴板,粘贴到 Slack / Notion / 飞书 / GitHub / Figma | | **Download PNG / JPEG / WebP** | 保存为光栅图。JPEG / WebP 会用当前主题的背景色填充(无透明);PNG 保留透明度 | | **Download SVG** | 矢量导出,所有样式内联,**双主题自持**。内嵌了 dark + light 两套 CSS 变量 + `@media (prefers-color-scheme)` 规则 —— 同一个 `.svg` 贴到 GitHub README / 博客,读者切深浅色图自己跟着切。可以在 Figma / Illustrator 里继续编辑。无损缩放 | 所有光栅导出(复制 + PNG/JPEG/WebP)都由浏览器在**最高 4× 源分辨率**下原生光栅化;超大图会自动降到 3× / 2× 以避开浏览器 canvas 上限。序列化后的 SVG 被设为 `4 × viewBox` 大小,浏览器直接在该分辨率下光栅化矢量,canvas 按自然大小绘制(没有位图升采样)。结果是视网膜屏、演示幻灯、打印输出都真正清晰。 没有倍数选择器 —— 永远选择当前浏览器能稳定生成的最高清晰度。 ### 键盘快捷键 - 任何位置按 T —— 切换主题 - 任何位置按 E —— 打开 Export 菜单 - 菜单里 —— 上下选项 - Home / End —— 跳到第一 / 最后一项 - Enter / Space —— 触发当前项 - Esc —— 关闭菜单 ### URL 参数 - `?theme=light` 或 `?theme=dark` —— 强制启动主题(确定性截图、分享链接、文档嵌入场景) - `?openExport=1` —— 页面加载时自动展开 Export 菜单(演示 / 文档截图) ### 注意事项 - **WebP 兼容性**:依赖浏览器的 canvas 编码器。老版 Safari 不支持时,菜单项会变灰不可选。PNG 和 JPEG 通用。 - **剪贴板支持**:图片复制需要 `ClipboardItem` + `navigator.clipboard.write`(Chromium、Firefox 127+、Safari 16+)。不支持时 Copy 选项变灰。 - **导出字体**:光栅图会使用系统等宽字体回退(`ui-monospace` / Menlo / Consolas),因为沙箱图像渲染上下文拿不到 Google Fonts。本机装了 JetBrains Mono 会自动用上,完全像素级一致。 ## 常用 prompt **Web 应用:** ``` 用 archify 画一张架构图: - React 前端 - Node.js/Express API - PostgreSQL 数据库 - Redis 缓存 - JWT 鉴权 ``` **AWS Serverless:** ``` 用 archify 画: - CloudFront CDN - API Gateway - Lambda(Node.js) - DynamoDB - S3 存静态资源 - Cognito 做鉴权 ``` **微服务:** ``` 用 archify 画一张微服务架构图: - React Web + 移动端 - Kong API Gateway - 用户服务(Go)、订单服务(Java)、商品服务(Python) - PostgreSQL、MongoDB、Elasticsearch - Kafka 做事件流 - K8s 做编排 ``` **数据流 / 埋点分析:** ``` 用 archify 画一个 data flow: - Web App 和 Mobile SDK 产生 clickstream events - Edge API 收集事件 - Consent Gate 过滤身份信息和 PII - Kafka/Event Stream 承接 accepted events - Warehouse 存 normalized facts - Feature Store 每日生成 feature vectors - Dashboards 和 ML Model 消费下游数据 ``` **状态机 / 生命周期:** ``` 用 archify 画一个 lifecycle diagram: - 任务从 Queued 开始 - Planning 生成计划 - Executing 调用工具 - Reviewing 做质量检查 - Needs Approval 和 Blocked 是等待态 - Failed 可重试,Cancelled / Expired / Completed 是终态 ``` ## 语义配色 | 类型 | 颜色 | 用途 | |---|---|---| | Frontend | 青色 | 客户端 / UI / 终端设备 | | Backend | 翠绿 | 服务 / API / 后台进程 | | Database | 紫色 | 数据库 / 存储 / AI/ML | | Cloud / AWS | 琥珀 | 托管云服务 / 基础设施 | | Security | 玫红 | 鉴权 / 安全组 / 加密 | | Message Bus | 橙色 | Kafka / RabbitMQ / SNS / 事件总线 | | External | 灰色 | 第三方 / 通用外部系统 | 每种颜色在深色 / 浅色主题下都有配套取值,切主题会同步切换。 ### 语义技术标签 Archify 不是要内置完整 AWS / Azure / GCP 图标运行时。它把技术名和可选标签当成语义提示,用来辅助配色、分组和文案: | 标签示例 | 视觉类别 | |---|---| | `react`、`nextjs`、`ios`、`android`、`browser` | Frontend | | `node`、`go-service`、`python-worker`、`api-gateway` | Backend | | `postgres`、`mysql`、`redis`、`s3`、`bigquery`、`snowflake` | Database / storage | | `aws.lambda`、`aws.cloudfront`、`gcp.pubsub`、`azure.functions`、`kubernetes` | Cloud / infrastructure | | `auth0`、`cognito`、`oauth`、`vault`、`security-group` | Security | | `kafka`、`rabbitmq`、`sns`、`sqs`、`nats` | Message bus | | `stripe`、`github-actions`、`openai`、`anthropic`、`slack` | External | 当具体技术栈重要时,可以在 prompt 或 JSON IR 里写这些标签。最终输出仍然是自持 HTML/SVG;标签只增强语义样式和布局,不引入重型图标依赖。 ## 实现细节 - **样式模型**:`:root` + `[data-theme="light"]` 上的 CSS 变量;SVG 元素引用语义 class(`c-frontend`、`t-muted`、`a-emphasis` 等)。切换 `` 上的 `data-theme` 会重写包括渐变、网格、箭头、遮罩在内的整张图。 - **导出流水线**:克隆 SVG,内联 host `