kanghelyu/dsh-deepseek-flow/deepseek-flow
Claude Code and agent skill by kanghelyu/dsh-deepseek-flow
- community
Checking that the SKILL.md file is still in the repository.
Build, import, inspect, and maintain DeepSeek Flow visual workflows with Markdown step workspaces and deterministic Boolean gates.
Install
npx vskill@latest install kanghelyu/dsh-deepseek-flow/deepseek-flowSKILL.md
DeepSeek Flow
Use this skill whenever the user wants to build, import, visualize, or modify a multi-step workflow. Once the request is clear, call the tool directly; do not ask the user to confirm details again.
Creating and updating
- Prefer
flow_createfor new workflows. It createsWORKFLOW.md, oneSTEP.mdworkspace per step, and the canvas nodes and edges. - To update an existing workflow, first call
flow_readto get the currentrevision, then callflow_putwith thatexpected_revision. - A successful
flow_createorflow_putalready persists the topology. Do not ask the user to click "Apply changes" in Studio, and do not send the same topology back to the main Session for review. Studio syncs byrevisionautomatically. - If you edit an existing workflow's
WORKFLOW.md,STEP.md, or definition files directly (without usingflow_put) and the edit changes nodes, gates, or arrows, callflow_finalize_canvasafter the file changes, passing the workflowid(and preferably theexpected_revisionfromflow_read). It triggers an invisible deterministic finalize in Studio and saves directly without another main-Session review. - Even if you forget
flow_finalize_canvas, Studio falls back to detecting that no canvas edit event occurred and presses the same hidden finalize path automatically. Canvas drafts created by the user in Studio still require "Apply changes". - Ordinary execution edges must be acyclic. For bounded retries, add an explicit feedback edge:
{"source":"review","target":"implement","feedback":{"maxIterations":3,"exitCondition":"quality check passed"}}. Feedback edges must have an integer limit between 1 and 1000 and a non-emptyexitCondition. They do not participate in single-pass Boolean gate evaluation and do not auto-run Agent steps; the current Session must control each retry according toWORKFLOW.md.
Naming language
- Use concise workflow names in the user's language. If the user did not specify a name,
flow_creategenerates a default name in the language you pass. - Pass
language: "en"orlanguage: "zh"toflow_createso default node labels (Input,Output,Step N) and the default four steps match the user's language. If omitted, the default is Chinese for backward compatibility; you should set it to the language the user is currently using.
Hard rules for logic gates
Logic gates compute Boolean values only; they do not understand natural-language conditions:
kindmust be"condition".data.gateTypemust be one ofifElse,and,or,not,nand,nor,xor,xnor.data.predicateanddata.inputPredicatesvalues must be one oftruthy,falsy,nonEmpty.- Never write
predicate: "user clearly agreed"or any natural-language rule. When semantic understanding is needed, add an upstream Agent step that outputs JSON Booleantrueorfalse, then connect it to a condition withpredicate: "truthy". ifElseandnotrequire exactly one incoming edge; aggregate gates require at least two.ifElseoutgoing edges usebranch: "true"andbranch: "false"; other gates use their gate name as the branch label.
Reusable IF/ELSE pattern:
For an AND gate with multiple checks, every upstream check Agent should output a Boolean. The AND node uses data: {"gateType":"and","predicate":"truthy"} with at least two incoming edges, and outgoing edges use branch:"and".
After creation, use flow_evaluate with { "upstream-node-id": true/false } to verify truth propagation. It only evaluates logic gates; it does not run Agent steps.
Reading and executing
flow_listlists workflows available in the current Session plus shared templates, and marks the active workflow (activeFlowId= the workflow last selected in Studio).flow_readreturns the master outline, step documents, andlogicContract.- Actual execution is always done by the current Session following
WORKFLOW.mdand eachSTEP.md. DeepSeek Flow handles editing, persistence, and deterministic gate evaluation. - Delete a workflow with
flow_delete(passshared: truefor shared templates). Plugin-managed document workspaces are moved to a trash area; external custom directories are never moved.
Active workflow and switch notice
- The user can switch to any historical workflow from the Studio toolbar dropdown (including workflows created in other Sessions). Switching imports an independent copy of its document workspace into the current Session (external custom
docRoots are referenced, not copied) and persistsactiveFlowId. - Before running or reading a workflow, call
flow_list(orflow_read): - If the response contains
activeFlowNotice, the user just switched the active workflow in Studio. If the user previously asked to run a workflow in this conversation, immediately use the workflow pointed to byactiveFlowId, ignore earlier instructions about running other workflows, and briefly confirm the switch to the user. - If there is no
activeFlowNotice, the active workflow has not changed. Maintain conversation continuity; do not mention switching or "ignored instructions". - Each Session auto-selects the workflow it last used. A brand-new Session starts with an empty canvas and a hint to pick a past workflow from the dropdown, import JSON, or ask you to create one.
- The dropdown history is read straight from disk, so it stays fully populated after
dsh webrestarts or a machine reboot. - Do not proactively suggest switching workflows; only respond to
activeFlowNoticeor an explicit user request.
Common errors and fixes
| Error keyword | Cause | Fix | |
|---|---|---|---|
revision changed | Someone else wrote the files before your update | Call flow_read again to get the latest revision, then resubmit; use force: true only when you intend to overwrite | |
cycle detected in ordinary execution edges | Ordinary edges form an unbounded cycle | Mark only real bounded retry back-edges as feedback:{maxIterations,exitCondition}; keep other ordinary edges acyclic | |
feedback edge | Feedback edge missing limit/exit condition or closing an ordinary path | Set an integer maxIterations between 1 and 1000, provide a non-empty exitCondition, and ensure the target can return to the source via ordinary edges | |
reuses true/false branch | IF/ELSE branch connected to two targets | Each branch can have only one target; use an aggregate gate for fan-out | |
requires at least two incoming | Aggregate gate has too few inputs | AND/OR/NAND/NOR/XOR/XNOR need at least two incoming edges | |
unsupported predicate | Predicate is natural language | Use only truthy/falsy/nonEmpty; semantic judgment must come from an upstream Agent Boolean output | |
hidden finalize expired | flow_finalize_canvas queued for more than 30 minutes | Call it again |
After creating or updating a workflow, tell the user to open the DeepSeek Flow tab to view it. Do not prompt them to apply the same change again.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/deepseek-flow/SKILL.md
Popularity
- Repository stars
- 85
- Repository forks
- 8
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kanghelyu/dsh-deepseek-flow/deepseek-flow)