Token导航 LogoToken导航TokenDH.com
开发可写文件github未标认证来源可访问许可证需确认审计通过

generate-workflow-diagram生成工作流程图

Agent Skill

generate-workflow-diagram 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

441

周安装

18

GitHub Stars

12

下载量

141
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:generate-workflow-diagram(生成工作流程图)
来源仓库:https://github.com/pjt222/development-guides
仓库路径:skills/generate-workflow-diagram
安装命令:
npx skills add https://github.com/pjt222/development-guides --skill generate-workflow-diagram
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/pjt222/development-guides --skill generate-workflow-diagram

简介

用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态或代码变更时使用。
  • 通过 GitHub 安装,使用 npx skills add 命令添加技能。
  • 需确认权限范围和维护状态,注意是否触发联网或文件读写。
  • generate-workflow-diagram 属于开发类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Generate Workflow Diagram

Generate a themed Mermaid flowchart diagram from putior workflow data and embed it in documentation.

When to Use

  • After annotating source files and ready to produce the visual diagram
  • Regenerating a diagram after workflow changes
  • Switching themes or output formats for different audiences
  • Embedding workflow diagrams in README, Quarto, or R Markdown documents

Inputs

  • Required: Workflow data from put(), put_auto(), or put_merge()
  • Optional: Theme name (default: "light"; options: light, dark, auto, minimal, github, viridis, magma, plasma, cividis)
  • Optional: Output target: console, file path, clipboard, or raw string
  • Optional: Interactive features: show_source_info, enable_clicks

Procedure

Step 1: Extract Workflow Data

Obtain workflow data from one of three sources.

library(putior)

# From manual annotations
workflow <- put("./src/")

# From manual annotations, excluding specific files
workflow <- put("./src/", exclude = c("build-workflow\\.R$", "test_"))

# From auto-detection only
workflow <- put_auto("./src/")

# From merged (manual + auto)
workflow <- put_merge("./src/", merge_strategy = "supplement")

The workflow data frame may include a node_type column from annotations. Node types control Mermaid shapes:

node_typeMermaid ShapeUse Case
"input"Stadium ([...])Data sources, configuration files
"output"Subroutine [[...]]Generated artifacts, reports
"process"Rectangle [...]Processing steps (default)
"decision"Diamond {...}Conditional logic, branching
"start" / "end"Stadium ([...])Entry/terminal nodes

Each node_type also receives a corresponding CSS class (e.g., class nodeId input;) for theme-based styling.

Expected: A data frame with at least one row, containing id, label, and optionally input, output, source_file, node_type columns.

On failure: If the data frame is empty, no annotations or patterns were found. Run analyze-codebase-workflow first, or check that annotations are syntactically valid with put("./src/", validate = TRUE).

Step 2: Select Theme and Options

Choose a theme appropriate for the target audience.

# List all available themes
get_diagram_themes()

# Standard themes
# "light"   — Default, bright colors
# "dark"    — For dark mode environments
# "auto"    — GitHub-adaptive with solid colors
# "minimal" — Grayscale, print-friendly
# "github"  — Optimized for GitHub README files

# Colorblind-safe themes (viridis family)
# "viridis" — Purple→Blue→Green→Yellow, general accessibility
# "magma"   — Purple→Red→Yellow, high contrast for print
# "plasma"  — Purple→Pink→Orange→Yellow, presentations
# "cividis" — Blue→Gray→Yellow, maximum accessibility (no red-green)

Additional parameters:

  • direction: Diagram flow direction — "TD" (top-down, default), "LR" (left-right), "RL", "BT"
  • show_artifacts: TRUE/FALSE — show artifact nodes (files, data); can be noisy for large workflows (e.g., 16+ extra nodes)
  • show_workflow_boundaries: TRUE/FALSE — wrap each source file's nodes in a Mermaid subgraph
  • source_info_style: How source file info is displayed on nodes (e.g., as subtitle)
  • node_labels: Format for node label text

Expected: Theme names printed. Select one based on context.

On failure: If a theme name is not recognized, put_diagram() falls back to "light". Check spelling.

Step 3: Custom Palette with put_theme() (Optional)

If the 9 built-in themes don't match your project's palette, create a custom theme with put_theme().

# Create custom palette — unspecified types inherit from base theme
cyberpunk <- put_theme(
  base = "dark",
  input    = c(fill = "#1a1a2e", stroke = "#00ff88", color = "#00ff88"),
  process  = c(fill = "#16213e", stroke = "#44ddff", color = "#44ddff"),
  output   = c(fill = "#0f3460", stroke = "#ff3366", color = "#ff3366"),
  decision = c(fill = "#1a1a2e", stroke = "#ffaa33", color = "#ffaa33")
)

# Use the palette parameter (overrides theme when provided)
mermaid_content <- put_diagram(workflow, palette = cyberpunk, output = "raw")
writeLines(mermaid_content, "workflow.mmd")

put_theme() accepts input, process, output, decision, artifact, start, and end node types. Each takes a named vector c(fill = "#hex", stroke = "#hex", color = "#hex"). Unset types inherit from the base theme.

Expected: Mermaid output with your custom classDef lines. Node shapes from node_type are preserved; only colors change. All node types use stroke-width:2px — override not currently supported via put_theme().

On failure: If the palette object is not a putior_theme class, put_diagram() raises a descriptive error. Ensure you pass the return value of put_theme(), not a raw list.

Fallback — manual classDef replacement: For fine-grained control beyond what put_theme() offers (e.g., per-type stroke widths), generate with a base theme and replace classDef lines manually:

mermaid_content <- put_diagram(workflow, theme = "dark", output = "raw")
lines <- strsplit(mermaid_content, "\n")[[1]]
lines <- lines[!grepl("^\\s*classDef ", lines)]
custom_defs <- c("  classDef input fill:#1a1a2e,stroke:#00ff88,stroke-width:3px,color:#00ff88")
mermaid_content <- paste(c(lines, custom_defs), collapse = "\n")

Step 4: Generate Mermaid Output

Produce the diagram in the desired output mode.

# Print to console (default)
cat(put_diagram(workflow, theme = "github"))

# Save to file
writeLines(put_diagram(workflow, theme = "github"), "docs/workflow.md")

# Get raw string for embedding
mermaid_code <- put_diagram(workflow, output = "raw", theme = "github")

# With source file info (shows which file each node comes from)
cat(put_diagram(workflow, theme = "github", show_source_info = TRUE))

# With clickable nodes (for VS Code, RStudio, or file:// protocol)
cat(put_diagram(workflow,
  theme = "github",
  enable_clicks = TRUE,
  click_protocol = "vscode"  # or "rstudio", "file"
))

# Full-featured
cat(put_diagram(workflow,
  theme = "viridis",
  show_source_info = TRUE,
  enable_clicks = TRUE,
  click_protocol = "vscode"
))

Expected: Valid Mermaid code starting with flowchart TD (or LR depending on direction). Nodes are connected by arrows showing data flow.

On failure: If the output is flowchart TD with no nodes, the workflow data frame is empty. If connections are missing, check that output filenames match input filenames across nodes.

Step 5: Embed in Target Document

Insert the diagram into the appropriate documentation format.

GitHub README (```mermaid code fence):

## Workflow

flowchart TD A["Extract Data"] --> B["Transform"] B --> C["Load"]

Quarto document (native mermaid chunk via knit_child):

# Chunk 1: Generate code (visible, foldable)
workflow <- put("./src/")
mermaid_code <- put_diagram(workflow, output = "raw", theme = "github")
# Chunk 2: Output as native mermaid chunk (hidden)
#| output: asis
#| echo: false
mermaid_chunk <- paste0("```{mermaid}\n", mermaid_code, "\n```")
cat(knitr::knit_child(text = mermaid_chunk, quiet = TRUE))

R Markdown (with mermaid.js CDN or DiagrammeR):

DiagrammeR::mermaid(put_diagram(workflow, output = "raw"))

Expected: Diagram renders correctly in the target format. GitHub renders mermaid code fences natively.

On failure: If GitHub doesn't render the diagram, ensure the code fence uses exactly ``` `mermaid `` (no extra attributes). For Quarto, ensure the knit_child() approach is used since direct variable interpolation in {mermaid}` chunks is not supported.

Validation

  • put_diagram() produces valid Mermaid code (starts with flowchart)
  • All expected nodes appear in the diagram
  • Data flow connections (arrows) are present between connected nodes
  • Selected theme is applied (check init block in output for theme-specific colors)
  • Diagram renders correctly in the target format (GitHub, Quarto, etc.)

Common Pitfalls

  • Empty diagrams: Usually means put() returned no rows. Check annotations exist and are syntactically valid.
  • All nodes disconnected: Output filenames must exactly match input filenames (including extension) for putior to draw connections. data.csv and Data.csv are different.
  • Theme not visible on GitHub: GitHub's mermaid renderer has limited theme support. The "github" theme is specifically designed for GitHub rendering. The %%{init:...}%% theme block may be ignored by some renderers.
  • Quarto mermaid variable interpolation: Quarto's {mermaid} chunks don't support R variables directly. Use the knit_child() technique described in Step 5.
  • Clickable nodes not working: Click directives require a renderer that supports Mermaid interaction events. GitHub's static renderer does not support clicks. Use a local Mermaid renderer or the putior Shiny sandbox.
  • Self-referential meta-pipeline files: Scanning a directory that includes the build script generating the diagram causes duplicate subgraph IDs and Mermaid errors. Use the exclude parameter to skip them at scan time: workflow <- put("./src/", exclude = c("build-workflow\\.R$", "build-workflow\\.js$"))
  • show_artifacts = TRUE too noisy: Large projects may generate many artifact nodes (10–20+), cluttering the diagram. Use show_artifacts = FALSE and rely on node_type annotations to mark key inputs/outputs explicitly.

Related Skills

  • annotate-source-files — prerequisite: files must be annotated before diagram generation
  • analyze-codebase-workflow — auto-detection can supplement manual annotations
  • setup-putior-ci — automate diagram regeneration in CI/CD
  • create-quarto-report — embed diagrams in Quarto reports
  • build-pkgdown-site — embed diagrams in pkgdown documentation sites

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.16%
按下载量换算50

Claude

29.42%
按下载量换算41

Cursor

18.86%
按下载量换算27

Gemini CLI

7.71%
按下载量换算11

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

可写文件

该 Skill 可能写入或修改本地文件,使用前需要确认目标目录和修改范围。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills