为 DeepSeek Harness 注入 Archify 技术图 Skill:让 dsh 在对话里读仓库生成五种交互式系统地图(架构/工作流/时序/数据流/生命周期),产出可分享 HTML。
- 语言
- HTML
- License
- MIT
- 分支
- main
安装
$ dsh plugin --profile web add github:tt-a1i/archify在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
一句话定位
把 Archify 技术图 Skill 挂到 DeepSeek Harness 上,让 dsh 在聊天里读取代码、产出五种带校验的交互式系统地图(架构/工作流/时序/数据流/生命周期),最终生成可分享的自包含 HTML 文件。
核心能力
- 在 dsh 对话里直接说一句话即可让 agent 加载 Archify Skill,按 typed JSON 描述生成并校验图
- 支持五种图类型:组件架构图、CI/CD 类工作流、API 调用时序、数据流与生命周期/状态机
- 生成单个自包含 HTML 文件,内置深浅主题切换、节点搜索、上下游可达路径探查、对比视图与有限动效
- 提供架构 Before/Delta/After 对比模式,可读出新增、删除、变化、移动与重路由等差异事实
- 校验流程在 schema、布局、HTML/SVG、连线、标签-路径间距等多层失败时返回结构化 JSON 修复提示,而不是直接抛错
- 无任何网络请求、无遥测、无原生模块依赖,适配器侧只做文件系统路径解析
技术实现
- 语言: TypeScript-free,纯 ESM JavaScript(Node.js)
- 关键依赖:
node:module(createRequire 解析包路径)、node:path(拼接 Skill 目录)、@deepseek-ai/dsh-skill-filesystem(DSH 内置 Skill provider) - 架构模式: 通过
cordis.patch.yml向宿主 DSH 注入 1 个名为archify-skill-filesystem的 Skill provider(includeDefaultRoots: false),由bundledSkillDirJS 表达式把 Skill 根目录锚到当前已安装 npm 包内 - 入口文件:
integrations/deepseek-harness/lib/index.js(21 行,导出name、PACKAGE_NAME、resolveArchifySkillRoot);实际 Skill 入口是archify/bin/archify.mjs
适用场景
DSH 用户在和 agent 对话描述「我想看看这个仓库长什么样」「把这条 CI/CD 流程画出来」「给我一个登录请求的时序图」时,agent 就能加载 Archify Skill 去读仓库、生成 typed JSON、跑校验、产出可直接分享的 HTML。它特别适合做架构评审、PR 前后对比、文档插图这类需要把口头描述固化成可视材料的场景。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness | 0.1.0-rc.6(开发者预览版) | 适配器明确仅在该 DSH 版本上验证,未承诺跨版本兼容 |
| Node.js | ^22.19.0 或 >=24.0.0 | integrations/deepseek-harness/package.json#engines 强制;Archify 主工具自身最低 Node 18 |
| 平台 | macOS / Windows / Linux | 跨平台;Windows 下 lib/index.js 不依赖 npm/cmd shim,但 Archify 主 CLI 在 Windows 上有专门的 launcher 兼容逻辑(resolve-cli.mjs) |
| 原生模块 | 无 | adapter-security.test.mjs 强制 lib 不含 node:http/net/dgram/child_process 等关键字;Archify 主工具零依赖运行 |
安装方式
dsh plugin --profile web add github:tt-a1i/archify
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
providerName | 字符串 | 在 DSH 内显示的 Skill 提供者名称,agent 调用时看到的标识 | archify-plugin(写死在 cordis.patch.yml) |
includeDefaultRoots | 布尔 | 是否同时启用 DSH 内置的默认 Skill 根目录 | false(仅加载本插件打包的 Archify Skill,避免污染) |
bundledSkillDir | 路径表达式 | 指向已安装 npm 包内 skills/ 子目录的绝对路径;通过 createRequire(baseUrl).resolve('@tt-a1i/archify-dsh/package.json') 反向解析 | 安装时由 JS 表达式自动计算 |
这三项均在
integrations/deepseek-harness/cordis.patch.yml中固化,普通用户无需也不能修改;如需调整,只能 fork 适配器后重新打包。
常见问题
Q: 这个插件是 DeepSeek 官方出品的吗?
A: 不是。仓库和适配器 README 都明确标注「Community integration」「not an official DeepSeek product」,仅在开发者预览版 @deepseek-ai/dsh@0.1.0-rc.6 上验证可用,不代表跨版本稳定承诺。
Q: 安装之后我怎么调用它?
A: 在 dsh 对话里直接说「Use the archify skill to map this repository's runtime architecture」或其中文表述,agent 会加载 Skill、按校验流程生成图。Skill 内部调用 node bin/archify.mjs validate/deliver/preview 需要 dsh 赋予 shell 权限。
Q: 生成的图为什么不出现在 dsh Web 的 Produced Files 列表里?
A: 因为 Archify 通过 shell 写出 HTML/JSON 文件,不会自动进入 Produced Files 通道。需要让 agent 在交付完图后,把生成的 specification JSON 和 HTML 的「精确工作区绝对路径」返回给你,你从工作区里直接打开这些文件。
Q: 这个适配器会在我电脑上偷偷开端口、上报数据或读我的 key 吗?
A: 不会。integrations/deepseek-harness/lib/index.js 全文件只有 1 个导出函数 resolveArchifySkillRoot;仓库测试 adapter-security.test.mjs 强制断言该目录不含 child_process、fetch、node:http/https/net/dgram、setInterval/setTimeout/Worker/cluster、telemetry/opentelemetry/otlp、process.env.*TOKEN、tools.register 等关键词。没有 telemetry、没有网络请求、没有 prepare/install/postinstall 钩子。
Q: 卸载命令是什么?
A: 上游 README 写法为 dsh plugin --profile web remove @tt-a1i/archify-dsh(按 npm 包名移除)。该命令只会移除适配器和 Skill 注入,不会删掉你之前生成的 HTML/JSON 文件。
Q: 升级 dsh 之后还能用吗?
A: 适配器当前仅在开发者预览版 @deepseek-ai/dsh@0.1.0-rc.6 上验证,README 明确写「It is not a stable cross-version guarantee」。等 dsh 进入正式版本后需要看适配器是否同步发布新版。
Q: Archify 适合做实时监控、PR 风险评估、生产部署状态展示吗?
A: 不适合。Archify 强调「authored facts only」,所有连接、上下游可达范围、架构对比结果都来自用户写入的 typed JSON,不去探测运行时基础设施;生成的图明确不声明风险、爆炸半径、合并安全性或运行影响。
上手难度
入门 — 调用方式只是 dsh 对话里加一句「Use the archify skill ...」,用户不需要写 JSON 也不需要记 CLI;Archify Skill 内部会引导 agent 自己读取仓库、生成 typed JSON 并跑校验。
已知问题与限制
- 适配器处于
v0.1.0,仅在@deepseek-ai/dsh@0.1.0-rc.6(开发者预览版)上验证,不是稳定的跨版本保证 - 生成的 HTML/JSON 不会自动出现在 dsh Web 的 Produced Files 列表里,必须由 agent 返回精确工作区路径后由用户手动打开
- 适配器上游 README 推荐的安装形式是
dsh plugin --profile web add @tt-a1i/archify-dsh@0.1.0(npm 精确版本),而非从 git 源安装;marketplace 的github:tt-a1i/archify形式是否可用取决于 dsh 自身的解析器,本仓库测试docs-contract.test.mjs主动禁止文档里出现github:tt-a1i/archify的写法 - Archify Skill 主工具本身为
v2.14.0,且仍在持续演进(CHANGELOG 显示频繁修复 wide desktop 排版、label 间距等),与适配器版本号是各自独立的两套号 - 适配器不注册原生 render/validate/deliver 工具、不暴露 Web 客户端、不接入 Web Produced Files 通道、不做网络请求或遥测,这意味着所有 Archify 能力必须经由 Skill + shell 调用
English · 简体中文

Archify
Turn a codebase or system description into a polished, interactive system map — directly in chat.
Archify is an agent skill for Raven, Cursor, Claude Code, Codex CLI, and OpenCode. Give it a system description or repository; get an interactive, shareable technical map.
- Open it and present — five diagram types, four presets, dark/light themes, built-in brand marks, and finite motion
- Review architecture changes before merge — compare two validated snapshots as Before / Delta / After, with exact added, removed, changed, moved, and rerouted facts
- Every interaction stays grounded — search nodes, optionally open revision-verified source, trace upstream/downstream authored reach and exact routes, compare roles, and play guided stories without inventing topology
- One file, ready to trust and share — typed JSON IR and deterministic checks produce self-contained HTML plus PNG, SVG, WebM, and 1200×630 share cards
Current stable version: v2.15.0. See Changelog.
Project page · Scenario guide · Proof Lab
npx skills add tt-a1i/archify -g
Using Cursor? Open the agent-aware quick start for exact global and project commands.
Then ask your agent: Use archify to map this repository's runtime architecture.
❤️ Sponsors
Thanks to APINEBULA for sponsoring Archify. APINEBULA offers unified access to Claude, GPT, Gemini, and more. Register through the Archify link and use Archify for a 10% discount.
Sponsored by EverMind, building memory infrastructure for agents. Its memory-first, self-evolving agent harness Raven supports Archify as a Skill, bringing verified, interactive system maps into Raven workflows.
See Archify in action
These are generated Archify artifacts, not product mockups. Click a frame to open its live, shareable state.
Three real generated artifacts. Signal Flow · Blueprint · Classic · open the interactive Proof Lab ↗
| Guided story | Route probe | Semantic lens |
|---|---|---|
![]() | ![]() | ![]() |
| Play one finite named chapter. | Inspect the shortest authored directed path. | Compare real traffic between semantic roles. |
The Proof Lab contains all 11 checked-in scenarios, their JSON sources, named views, and validation receipts.
A real repository, mapped from source
Archify traced mco-org/mco at 9f1a1cf and produced this checked map. Open it ↗ · trace reach ↗ · typed source
Preview
Same diagram, two themes, one click to switch:
| Dark | Light |
|---|---|
![]() | ![]() |
The Export menu copies PNG to the clipboard and downloads static or motion formats:

Use Copy Share Card when you want a canonical 1200×630 image for a README, release, or social post.
After tracing a route, Export → Route Share Card downloads that authored path as a 1200×630 PNG with the full diagram retained for context.

After tracing authored Upstream or Downstream reach, Export → Reach Share Card captures that exact reading without claiming runtime impact.

Open examples/web-app.html locally to try the complete viewer.
Quick start
1. Install
npx skills add tt-a1i/archify -g
For an explicit, non-interactive Cursor install:
npx -y skills add tt-a1i/archify --skill archify --agent cursor --global --copy --yes
To try without installing:
npx skills use tt-a1i/archify@archify --agent codex
DSH community opt-in: dsh plugin --profile web add @tt-a1i/archify-dsh@0.1.0
The agent switcher covers cursor, codex, claude-code, and opencode. For Raven's manual ZIP install, extract archify.zip into ~/.raven/workspace/skills; it yields ~/.raven/workspace/skills/archify. Raven is not a switcher target.
2. Ask for one bounded view
Analyze this repository, then use archify to create a high-level runtime architecture diagram.
Show 8–12 core components, one primary path, external dependencies, and trust boundaries.
Put supporting detail in cards instead of adding more edges.
For a focused flow:
Use archify to draw this login flow: Browser -> Web App -> API -> JWT validation ->
Redis session lookup -> PostgreSQL fallback. Keep the cache-miss path secondary.
3. Refine in chat
Continue with focused requests such as add Redis, move auth to the left, or highlight the rollback path. Archify keeps the typed source available for targeted iteration.
Choose the right diagram
| Type | Best for | Include in your prompt |
|---|---|---|
| Architecture | Components, services, storage, boundaries | Scope, core components, primary path |
| Workflow | CI/CD, approvals, tool calls, runbooks | Participants, order, branches, exceptions |
| Sequence | API calls, cache fallback, auth, async traces | Callers, callees, returns, timing |
| Data Flow | Pipelines, lineage, PII, consumers | Sources, transforms, stores, boundaries |
| Lifecycle | States, retries, waits, terminal outcomes | States, events, retry and cancellation paths |
For a production deployment review, Architecture can optionally enable the
deployment-ownership engineering profile. It fails closed when owners,
single-region placement, private database scope, or named boundary crossings
are missing. It is never enabled silently and validates authored facts—not live
infrastructure. See the checked deployment proof.
For design or PR review, Architecture Delta compares validated Before / Delta / After snapshots with a machine receipt. Select an exact authored change or play one finite Review—viewer-only, with no impact, risk, or merge-safety inference.
node archify/bin/archify.mjs compare architecture base.json head.json architecture-delta.html --json
Not sure which one fits? Use the interactive scenario guide, or ask the zero-dependency CLI:
node archify/bin/archify.mjs guide "Show an API request with Redis cache miss"
node archify/bin/archify.mjs guide "Map Kafka topics, consumer groups, replay, and DLQ" --json
Workflow keeps the happy path clear across lanes:

Sequence explains one interaction over time:

Data Flow makes movement and sensitivity boundaries explicit:

Lifecycle separates progress, waits, retries, and terminal outcomes:

Architecture examples: web-app · Archify pipeline · grid placement · desktop agent
Why Archify
- Layout judgment over generic auto-layout — the agent chooses hierarchy, spacing, routes, and emphasis; shared automatic endpoints spread deterministically instead of piling arrows on one midpoint.
- Typed JSON IR — every renderer-backed mode has a schema and reproducible source.
- Atomic validation before delivery — schema, layout, HTML/SVG, route, and label-to-route clearance checks must all pass before a showcase artifact replaces the last known good output.
- Failures come with a repair receipt —
validate --jsonanddeliver --jsonreturn stable rule codes, the exact subject, measured evidence, and only supported repair controls instead of a Node stack or an unstructured retry guess. - Last-good live preview — an optional desktop loop watches one JSON file, refreshes only after the latest candidate passes every gate, and keeps the previous verified diagram visible when a save is incomplete or invalid.
- Truthful interaction — focus, upstream/downstream reach, exact routes, role comparison, and stories reuse authored nodes and relationships instead of inventing topology or claiming runtime impact.
- Source evidence, only when requested — Evidence-backed Architecture nodes mark themselves
SRC nand open Git-verified files and line ranges pinned to one public commit; ordinary artifacts stay source-free. - Portable by default — the result is one HTML file; exports remain full-diagram and free of temporary viewer state.
Archify is not a general-purpose drawing editor or a Mermaid theme. It turns technical intent into a communication artifact.
How it works
| Step | What happens |
|---|---|
| Generate | The agent creates typed JSON IR from your description. |
| Validate | Bundled validators and layout rules check the source; failures identify the exact local repair in machine-readable JSON. |
| Preview (optional) | A loopback-only desktop session watches one source and reloads only verified revisions; failures keep the last-good artifact. |
| Deliver | A same-directory candidate is rendered and checked; only a passing artifact atomically replaces the target, then optional --open launches that exact file. |
| Iterate | The agent updates the source while unrelated structure stays stable. |
Useful repository commands:
cd archify
node bin/archify.mjs doctor
node bin/archify.mjs demo /tmp/archify-demo
node bin/archify.mjs guide "Show CI/CD checks, approval, deploy, and rollback"
node bin/archify.mjs validate workflow examples/agent-tool-call.workflow.json --quality showcase --json
node bin/archify.mjs preview workflow examples/agent-tool-call.workflow.json /tmp/workflow.html --quality showcase
node bin/archify.mjs deliver workflow examples/agent-tool-call.workflow.json /tmp/workflow.html --quality showcase --open --json
preview is an explicit desktop authoring mode, not a default background service: it binds only to 127.0.0.1 on a random port, watches the one named JSON file, preserves the last verified output through failures, and stops with Ctrl-C. Add --no-open for tests or when you will open the printed local URL yourself. It adds no runtime to the generated HTML.
Use deliver --open for a one-shot interactive local handoff. It is off by default, runs only after the verified artifact is committed, and never turns a successful delivery into a failure when the OS opener is unavailable; JSON stays on stdout and the absolute manual-open path goes to stderr.
On failure, validate --json and deliver --json still emit exactly one JSON object. Read diagnostics[] and change only the named subject using its supportedFixes; do not rewrite the whole diagram or exceed the Skill's two focused correction rounds. Deterministic diagnostics remain separate from visual review.
Optional motion and presentation styling are explicit:
{
"meta": {
"animation": "trace",
"visual_preset": "signal-flow"
}
}
Omit animation for a truly static diagram. classic remains default; editorial adds a warm publication look.
Explore and share the output
| Action | Control |
|---|---|
| Open the factual Diagram Guide | ? |
| Find and focus a semantic node | / |
| Trace upstream/downstream authored reach | Focus a node → Upstream / Downstream |
| Probe a directed route and inspect its journey | R or PATH |
| Compare one or two semantic roles | L or LENS |
| Open the live overview radar | M or MAP |
| Play a guided story / change chapter | P / [ ] |
| Enter Presentation Stage | F |
Choose visual style (S cycles) / toggle theme / open Export | S / T / E |
| Zoom or reset | + / - / 0 |
Stable links can restore #focus=<id>, #focus=<id>&reach=upstream|downstream, #relation=<id>, #route=<source>~<target>, #lens=<kind>~<kind>, and #view=<view-id>. Reader-driven motion is finite, respects prefers-reduced-motion, and never enters canonical exports.
The complete generation and viewer contract lives in archify/SKILL.md.
Installation options
| Surface | Install location or method | Capability |
|---|---|---|
| Raven | Manual ZIP into ~/.raven/workspace/skills → ~/.raven/workspace/skills/archify | Full renderer + validation workflow |
| Claude Code | ~/.claude/skills/ or .claude/skills/ | Full renderer + validation workflow |
| Codex CLI | ~/.agents/skills/ or .agents/skills/ | Full renderer + validation workflow |
| opencode | ~/.config/opencode/skills/, .opencode/skills/, or .agents/skills/ | Full renderer + validation workflow |
| Claude.ai | Upload archify.zip under Settings → Capabilities → Skills | Depends on Node.js access in the sandbox |
| Project Knowledge | Upload archify.zip to the project | Prompt-driven architecture fallback |
DeepSeek Harness: Community integration, not an official DeepSeek product; developer-preview @deepseek-ai/dsh@0.1.0-rc.6, Node `^22.19.0 | >=24.0.0. Install: dsh plugin --profile web add @tt-a1i/archify-dsh@0.1.0; invoke: Use the archify skill to map this repository's runtime architecture.; remove: dsh plugin --profile web remove @tt-a1i/archify-dsh`. No telemetry. Shell files need exact workspace paths, not Web Produced Files. Details. |
Reference and scope
Automatic Mermaid parsing, general-purpose auto-layout, hosted sharing, and WYSIWYG editing are intentionally outside the current scope.
License
MIT — free to use, modify, and distribute.
Contributing
Issues, pull requests, and real-world diagrams are welcome. Start with the contribution guide, use the reproducible bug form for failures, or submit a validated diagram through the community showcase form.








