Archify Diagrams
tt-a1i/archify
Creates interactive architecture, workflow, sequence, data-flow and lifecycle diagrams as standalone HTML with inline SVG, themes and image or video export.
Detect and analyze edge crossings and overlaps in SVG workflow diagrams using geometric intersection algorithms and visual analysis.
$ npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install oocx/tfplan2md detect-diagram-crossings --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/oocx/tfplan2md.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/detect-diagram-crossings .claude/skills/detect-diagram-crossings && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "detect-diagram-crossings" agent skill from https://github.com/oocx/tfplan2md/tree/main/.agents/skills/detect-diagram-crossings into .claude/skills/detect-diagram-crossings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "detect-diagram-crossings", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/oocx/tfplan2md/tree/main/.agents/skills/detect-diagram-crossingsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install oocx/tfplan2md detect-diagram-crossings --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oocx/tfplan2md.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/detect-diagram-crossings .agents/skills/detect-diagram-crossings && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "detect-diagram-crossings" agent skill from https://github.com/oocx/tfplan2md/tree/main/.agents/skills/detect-diagram-crossings into .agents/skills/detect-diagram-crossings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "detect-diagram-crossings", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install oocx/tfplan2md detect-diagram-crossings --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oocx/tfplan2md.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/detect-diagram-crossings .cursor/skills/detect-diagram-crossings && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "detect-diagram-crossings" agent skill from https://github.com/oocx/tfplan2md/tree/main/.agents/skills/detect-diagram-crossings into .cursor/skills/detect-diagram-crossings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "detect-diagram-crossings", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/oocx/tfplan2md.git --path .agents/skills/detect-diagram-crossings--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install oocx/tfplan2md detect-diagram-crossings --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oocx/tfplan2md.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/detect-diagram-crossings .gemini/skills/detect-diagram-crossings && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "detect-diagram-crossings" agent skill from https://github.com/oocx/tfplan2md/tree/main/.agents/skills/detect-diagram-crossings into .gemini/skills/detect-diagram-crossings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "detect-diagram-crossings", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install oocx/tfplan2md detect-diagram-crossingsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/oocx/tfplan2md.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/detect-diagram-crossings .github/skills/detect-diagram-crossings && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "detect-diagram-crossings" agent skill from https://github.com/oocx/tfplan2md/tree/main/.agents/skills/detect-diagram-crossings into .github/skills/detect-diagram-crossings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "detect-diagram-crossings", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install oocx/tfplan2md detect-diagram-crossings --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oocx/tfplan2md.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/detect-diagram-crossings .opencode/skills/detect-diagram-crossings && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "detect-diagram-crossings" agent skill from https://github.com/oocx/tfplan2md/tree/main/.agents/skills/detect-diagram-crossings into .opencode/skills/detect-diagram-crossings/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "detect-diagram-crossings", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
detect-diagram-crossingsDetect and analyze edge crossings and overlaps in SVG workflow diagrams using geometric intersection algorithms and visual analysis.
Detect Diagram Crossings is an agent skill from oocx/tfplan2md. Detect and analyze edge crossings and overlaps in SVG workflow diagrams using geometric intersection algorithms and visual analysis. Use when validating diagram layouts.
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `README.md`, `detect_all.js` and `detect_all.py`).
It sits in Development, covering Diagrams. The repository describes itself as: Convert terraform plans (json) into human readable markdown for easier review of changes in pull requests. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit aa2fa28. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python and JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodepython3npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Detect Diagram Crossings loads about 4.3k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 2,029 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from oocx/tfplan2md at commit aa2fa28, republished under its MIT licence (© oocx). 2,029 words, ~4,295 tokens.
.claude/skills/detect-diagram-crossings/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Provide a rigorous, multi-method approach to detecting edge crossings and overlaps in SVG flowchart diagrams. This skill combines mathematical geometric analysis with visual inspection to ensure diagrams have clean, crossing-free layouts.
The primary detection method uses parametric line equations to mathematically determine if two line segments intersect.
Algorithm:
Why This Works:
Limitations:
Detects when paths pass through or very close to node bodies (not at connection points).
Algorithm:
<rect> elements: (x, y, width, height)d attribute into individual line segmentsCritical: Segment-by-Segment Analysis
A multi-segment path like M 890 1180 L 550 1180 L 550 820 L 890 820 has THREE segments:
Each segment must be checked independently against ALL nodes. A single path can cross MULTIPLE nodes.
Why This Works:
Detects paths that share segments or start/end points, causing visual confusion.
Algorithm:
Why This Works:
Detects suboptimal path routing that could be improved for visual clarity.
Algorithm:
Shared Start Points: Check if multiple paths originate from the exact same coordinate
Off-Center Connections: For nodes with only one incoming/outgoing path on an edge, verify the connection is centered
Unnecessary Segments: Check if paths use more segments than necessary
Suboptimal Routes: Check if shorter intersection-free routes exist
Why This Works:
Uses actual rendered output to catch visual issues that math might miss.
Algorithm:
Why This Works:
When detecting issues manually (without scripts), follow this checklist:
Create a table of ALL nodes with their bounding boxes:
| Node Name | x-min | x-max | y-min | y-max |
|-----------|-------|-------|-------|-------|
| Developer | 780 | 1000 | 780 | 820 |
| Tech Writer | 490 | 710 | 960 | 1000 |
...For each path, break down the d attribute into individual segments:
Path: "M 890 1180 L 550 1180 L 550 820 L 890 820"
Segments:
1. Horizontal at y=1180: x from 890 to 550
2. Vertical at x=550: y from 1180 to 820
3. Horizontal at y=820: x from 550 to 890For each segment, systematically check against all nodes:
Vertical segment at x=X, y from Y1 to Y2:
Horizontal segment at y=Y, x from X1 to X2:
For each path, check if its start or end point is shared with other paths:
For each pair of paths, check if their segments intersect:
Build the complete node inventory table and verify all nodes are captured.
Decompose ALL paths into segments and verify segment count matches expected.
For each segment, check against ALL nodes (not just visually nearby ones).
Run parametric line intersection detection on all path-path segment pairs.
Check for paths sharing start/end points or overlapping segments.
Analyze rendered screenshot for visual crossing artifacts.
Execute the comprehensive Python detection script:
python3 .agents/skills/detect-diagram-crossings/detect_crossings.py website/ai-workflow.htmlThis will:
Execute the JavaScript detection script for additional quality checks:
node .agents/skills/detect-diagram-crossings/detect_all.js website/ai-workflow.htmlThis performs additional validation including:
Note: The JavaScript script requires Node.js and jsdom. Install dependencies with:
cd .agents/skills/detect-diagram-crossings && npm install jsdomAfter modifying the diagram, re-run both detection scripts to confirm improvements:
python3 .agents/skills/detect-diagram-crossings/detect_crossings.py website/ai-workflow.html
node .agents/skills/detect-diagram-crossings/detect_all.js website/ai-workflow.htmlBoth scripts exit with:
Wrong: Checking only path endpoints or waypoints
Right: Parse d attribute into ALL individual line segments
Wrong: Finding one crossing on a path and moving to next path Right: Check ALL segments of the path against ALL nodes
Wrong: Assuming a path doesn't cross a node because they look far apart Right: Mathematically verify segment coordinates against node bounds
Wrong: Reporting "path crosses Tech Writer" and stopping Right: Continue checking - same path might also cross Documentation, UAT Tester, etc.
Wrong: Only checking for geometric crossings Right: Also check for paths sharing exact start/end coordinates
Symptom: Detections at valid node-to-node connections Fix: Increase endpoint tolerance from 0.01 to 0.05
Symptom: Math says no crossings but visually there are Fix: Check stroke width, arrow markers, and rendering artifacts
Symptom: Proximity warnings but no crossings Fix: Add routing margins, use wider node spacing
CROSSING DETECTION REPORT
=========================
Method 1: Parametric Line Intersection
- Paths analyzed: 30
- Crossings detected: 0
- Status: ✅ PASS
Method 2: Node-Path Proximity
- Nodes analyzed: 25
- Proximity issues: 0
- Status: ✅ PASS
Method 3: Shared Points Analysis
- Shared endpoints: 0
- Overlapping segments: 0
- Status: ✅ PASS
Method 4: Visual Screenshot Analysis
- Resolution: 1920x2000px
- Visual crossings: 0
- Status: ✅ PASS
OVERALL: ✅ NO CROSSINGS DETECTED
Diagram has a clean, crossing-free layout.This example demonstrates the complete detection process for a problematic path.
<!-- UAT rework path -->
<path d="M 890 1180 L 550 1180 L 550 820 L 890 820" stroke="#ff6b6b" .../>| Segment | Type | Fixed Coord | Range |
|---|---|---|---|
| 1 | Horizontal | y=1180 | x: 550-890 |
| 2 | Vertical | x=550 | y: 820-1180 |
| 3 | Horizontal | y=820 | x: 550-890 |
| Node | x-min | x-max | y-min | y-max |
|---|---|---|---|---|
| UAT Tester | 780 | 1000 | 1140 | 1180 |
| Tech Writer | 490 | 710 | 960 | 1000 |
| Documentation | 490 | 710 | 1050 | 1085 |
| Developer | 780 | 1000 | 780 | 820 |
Segment 1 (Horizontal y=1180, x: 550-890):
Segment 2 (Vertical x=550, y: 820-1180):
Segment 3 (Horizontal y=820, x: 550-890):
UAT Rework Path Crossings:
- Segment 1 (y=1180): Touches UAT Tester bottom edge at x=780-890 (start point)
- Segment 2 (x=550): CROSSES Tech Writer (y=960-1000)
- Segment 2 (x=550): CROSSES Documentation (y=1050-1085)
- Segment 3 (y=820): Ends at Developer node (valid endpoint)
ISSUES FOUND: 2 node crossings (Tech Writer, Documentation)© oocx, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files in .agents/skills/detect-diagram-crossings of oocx/tfplan2md.
Open the folder on GitHubat commit aa2fa28
Detect Diagram Crossings next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Detect Diagram Crossings this skilloocx/tfplan2md | 174 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Archify Diagramstt-a1i/archify | 82k | — | ~2.9k | Automated safety check: Pass | MIT | |
| JSON Canvasheyitsnoah/claudesidian | 2.6k | 18 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Diagram Designcathrynlavery/diagram-design | 49k | 1 repos | ~7.6k | Automated safety check: Pass | MIT | |
| Fireworks Tech Graphtisfeng/Easydict | 15k | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Excalidraw Diagramcoleam00/excalidraw-diagram-skill | 5k | 2 repos | ~6.1k | Automated safety check: Pass | None |
tt-a1i/archify
Creates interactive architecture, workflow, sequence, data-flow and lifecycle diagrams as standalone HTML with inline SVG, themes and image or video export.
heyitsnoah/claudesidian
Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections.
cathrynlavery/diagram-design
Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.
tisfeng/Easydict
Create precise SVG technical diagrams, export PNG or offline HTML, and animate supported semantic SVGs to GIF.
coleam00/excalidraw-diagram-skill
Create Excalidraw diagram JSON files that make visual arguments.
Agents365-ai/drawio-skill
Creates and edits editable draw.io diagrams from descriptions, code, infrastructure files, SQL and API schemas, with sync, review, test and export tools.
oocx/tfplan2md
Create a new Agent Skill following project standards and templates.
oocx/tfplan2md
Generate PNG screenshots for release notes using the repository's HtmlRenderer and ScreenshotGenerator tools.
oocx/tfplan2md
Safely rebase the current feature branch on top of the latest origin/main.
oocx/tfplan2md
Determine the next available issue number across all change types (feature, fix, workflow, website) by checking both local docs and remote branches, then reserve it by pushing an empty branch.
oocx/tfplan2md
Run User Acceptance Testing by creating a PR with rendered markdown on GitHub or Azure DevOps.
oocx/tfplan2md
Convert the mermaid diagram in docs/workflow.md to a blueprint-styled SVG for the website.
Categories
Detect and analyze edge crossings and overlaps in SVG workflow diagrams using geometric intersection algorithms and visual analysis. Detect Diagram Crossings is an agent skill from oocx/tfplan2md. Detect and analyze edge crossings and overlaps in SVG workflow diagrams using geometric intersection algorithms and visual analysis.
Detect Diagram Crossings fits situations like: validating diagram layouts; tasks that involve Diagrams.
Run `npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a claude-code`. Or copy the skill folder (.agents/skills/detect-diagram-crossings in oocx/tfplan2md) into .claude/skills/detect-diagram-crossings in your project. Claude Code loads it when a task matches its description.
Run `npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a codex`. Or copy the skill folder (.agents/skills/detect-diagram-crossings in oocx/tfplan2md) into .agents/skills/detect-diagram-crossings in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oocx/tfplan2md --skill detect-diagram-crossings -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/detect-diagram-crossings, .gemini/skills/detect-diagram-crossings, .github/skills/detect-diagram-crossings and .opencode/skills/detect-diagram-crossings in your project.
Going by SKILL.md and its folder, Detect Diagram Crossings needs Python and JavaScript for the scripts in its folder and the command-line tools its instructions call (node, python3 and npm). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Detect Diagram Crossings is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Detect Diagram Crossings: Archify Diagrams (tt-a1i/archify, 82k stars), JSON Canvas (heyitsnoah/claudesidian, 2.6k stars), Diagram Design (cathrynlavery/diagram-design, 49k stars) and Fireworks Tech Graph (tisfeng/Easydict, 15k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
oocx (a GitHub user) maintains it in oocx/tfplan2md, which has 174 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 9, 2026.
Source: oocx/tfplan2md on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.