Kotlin Coroutines Flows
affaan-m/ECC
Kotlin Coroutines and Flow patterns for Android and KMP — structured concurrency, Flow operators, StateFlow, error handling, and testing.
Create and edit pi-flows flows and agents from the main session.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard edit-flow --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/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.pi/skills/edit-flow .claude/skills/edit-flow && 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 "edit-flow" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/edit-flow into .claude/skills/edit-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-flow", 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/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/edit-flowType 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 BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard edit-flow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.pi/skills/edit-flow .agents/skills/edit-flow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "edit-flow" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/edit-flow into .agents/skills/edit-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-flow", 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 BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard edit-flow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.pi/skills/edit-flow .cursor/skills/edit-flow && 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 "edit-flow" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/edit-flow into .cursor/skills/edit-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-flow", 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/BlackBeltTechnology/pi-agent-dashboard.git --path .pi/skills/edit-flow--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 BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard edit-flow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.pi/skills/edit-flow .gemini/skills/edit-flow && 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 "edit-flow" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/edit-flow into .gemini/skills/edit-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-flow", 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 BlackBeltTechnology/pi-agent-dashboard edit-flowInstalls 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 BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .github/skills && cp -r skills-src/.pi/skills/edit-flow .github/skills/edit-flow && 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 "edit-flow" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/edit-flow into .github/skills/edit-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-flow", 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 BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard edit-flow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.pi/skills/edit-flow .opencode/skills/edit-flow && 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 "edit-flow" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/edit-flow into .opencode/skills/edit-flow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "edit-flow", 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.
edit-flowCreate and edit pi-flows flows and agents from the main session.
Edit Flow is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Create and edit pi-flows flows and agents from the main session. Use when the user wants to create a new flow, add or change an agent, or edit an existing flow/agent. Covers agent frontmatter, flow YAML, step types, model references, the flowagents and flowwrite tools, write locations, and how to fix validation errors.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `SKILL.md.AGENTS.md`).
The repository describes itself as: Real-time web dashboard for pi coding-agent sessions. Multi-session view, live chat mirroring, integrated terminal, diff viewer, pi-flows execution, and mobile-first remote… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e23e533. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Edit Flow loads about 2.3k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 789 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 BlackBeltTechnology/pi-agent-dashboard at commit e23e533, republished under its MIT licence (© BlackBeltTechnology). 789 words, ~2,290 tokens.
.claude/skills/edit-flow/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You are creating and editing pi-flows flows and agents directly in this session. Two tools do the writing (both validate before writing and return diagnostics on failure):
flow_agents — op: "list" returns the agent catalog; op: "write" validates and writes an agent .md to .pi/flows/agents/<name>.md (filename derived from the agent's frontmatter name).flow_write — namespace (default custom), name, content. Validates and writes a flow to .pi/flows/flows/<namespace>/<name>.yaml, which auto-registers as the /<namespace>:<name> command.These tools derive their write locations from the discovery convention — there is no raw path. Writing to a name that already exists overwrites it (that is how you edit).
The edit-flow tools are off by default. They are active only when
flows.editFlow: trueis set in.pi/settings.json(project, when trusted) or~/.pi/agent/settings.json(global). Ifflow_agents/flow_writeare not available, tell the user to enable that setting and restart the session.
flow_agents with op: "list" to see existing agents and their inputs, outputs, and source_type. Reuse built-in/local agents where they fit.flow_agents op: "write". Do not repurpose infrastructure agents (flow-decision, project-context-reader) for unrelated tasks.flow_write. Wire every declared input. Fix any validation diagnostics and retry./<namespace>:<name>).Editing an existing flow/agent = read the current file, change it, then write it back with the same tool and the same name/namespace.
.md)YAML frontmatter + Markdown body (the system prompt).
---
name: code-reviewer
description: Reviews source code for quality and correctness
model: @coding
thinking: medium
tools: read, grep, find
inputs:
- research_context
outputs:
- name: findings
description: Categorized issues found
- name: verdict
description: "pass" or "fail"
access:
read:
- "src/**"
write:
- "src/**"
bash:
deny:
- "rm -rf *"
card:
label: "Reviewer"
metric: "default"
architect:
use_when: "User wants code reviewed for quality"
produces: "A findings report and a pass/fail verdict"
depends_on: "An implementer must have produced code"
domain: "review"
---
# System Prompt
You are a code reviewer. Task: ${{task}}
Context: ${{input.research_context}}| Field | Required | Notes |
|---|---|---|
name | Yes | Unique. Filename = <name>.md. Referenced as agent: <name> in steps. |
description | Yes | One line. Shown in catalog. |
model | Yes | See Model references. |
tools | Yes | Comma-separated. Guard blocks anything not listed. Standard: read, write, edit, grep, find, ls, bash, ask_user, skill_read. |
thinking | No | off/minimal/low/medium/high/xhigh. Overrides any :level suffix in model. |
skills | No | Comma-separated skill names injected into the prompt. |
inputs | No | Names → ${{input.NAME}} in the prompt. Flow step must wire each one. |
outputs | No | Names (or {name, description} objects). Become finish parameters and ${{result.STEP.NAME}} downstream. |
interactive | No | true allows mid-task UI prompts. Default false. |
output | No | Output file hint (display only). |
access | No | read/write glob allowlists; bash.deny command patterns. * = segment, ** = any depth. |
card | No | label, metric (default/files/tests/custom), role. |
architect | No | use_when/produces/depends_on/domain metadata surfaced in flow_agents op: list. |
The model: field accepts three forms. Prefer @role. Use the other two when a specific model is required regardless of role config, or when the user explicitly asks for a non-role model.
| Form | Example | When |
|---|---|---|
@role (preferred) | model: @coding | Default. Resolves via the active role→model map (/roles). Built-in roles: @planning, @coding, @fast, @architect. |
provider/model[:thinking] | model: anthropic/claude-haiku-4-5:high | A specific provider+model is required; optional :thinking suffix sets the thinking level. |
bare model-id | model: claude-haiku-4-5 | A specific model id with no provider qualifier; thinking comes from the thinking: field or none. |
A thinking: field always overrides any :thinking suffix in model.
.yaml)name: my-flow # REQUIRED
description: What it does # REQUIRED
max_concurrent: 3 # optional (default 4)
task_required: true # optional — prompt for task if invoked with no args
task_prompt: "Task:" # optional
steps:
- id: research
agent: code-reviewer
task: Review ${{task}}name is the frontmatter name; the command name comes from the on-disk location (namespace/name you pass to flow_write). Every step needs a unique id. Step type is usually inferred from which fields are present; set type: explicitly when ambiguous.
- id: impl
agent: implementer
task: Implement ${{task}}
blockedBy: [research]
inputs:
ctx: ${{result.research.summary}}
on_complete: verify # optional cross-segment jump
on_error: handler # optionalagent: in autonomous mode) picks a branch.- id: choose
type: fork
question: Which strategy?
options: [Fast, Full]
branches: { Fast: fast-impl, Full: full-impl }
agent: flow-decision # autonomous-mode decider
allowCustom: false
multiSelect: falseoptions exactly.- id: has-gaps
type: conditional
check: research.artifacts # stepId.field
present: gap-filler
absent: finalizefinish({ branch }) to choose.- id: complexity
type: agent-decision
agent: analyzer
task: Simple or complex?
branches: { simple: quick, complex: thorough }- id: should-fix
type: agent-loop-decision
agent: flow-decision
task: Iteration ${{loop.should-fix.iteration}}/${{loop.should-fix.max}}. ${{result.verify.summary}}
loop_target: fixer # jump back
exit_target: done # continue forward
max_iterations: 3- id: sub
type: flow-ref
path: "project/changes/*/exec.yaml" # glob ok
on_complete: verifyExpanded in task, inputs values, and question. Not validated — a typo silently becomes empty string.
${{task}} — the user task.${{input.NAME}} — input wired into this step.${{result.STEP_ID.status|summary|artifacts|files|fullOutput|OUTPUTNAME}} — STEP_ID is the step id, not the agent name.${{loop.STEP_ID.iteration|max}} — loop counters.Wire data between steps via inputs: (agent declares names in frontmatter, step supplies values). Prefix an input value with file:// to inject file content verbatim; that file's producer step must be in blockedBy.
| Content | Tool | Lands at |
|---|---|---|
| Agent | flow_agents op: write | .pi/flows/agents/<name>.md |
| Flow | flow_write | .pi/flows/flows/<namespace>/<name>.yaml → /<namespace>:<name> |
Project-local definitions (.pi/flows/) override package and built-in ones.
Both tools validate before writing. On failure they return { written: false, diagnostics: [...] } and write nothing. Read each diagnostic's message and suggestion, fix the content, and call the tool again. Common cases:
name, description, model, tools for agents; name, description for flows) → add it.flow_agents op: write, then retry flow_write.inputs: block.tools: → use a valid tool name (see the standard list above) or an extension-registered tool name.© BlackBeltTechnology, 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 1 other file in .pi/skills/edit-flow of BlackBeltTechnology/pi-agent-dashboard.
Open the folder on GitHubat commit e23e533
Edit Flow 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 |
|---|---|---|---|---|---|---|
| Edit Flow this skillBlackBeltTechnology/pi-agent-dashboard | 315 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Kotlin Coroutines Flowsaffaan-m/ECC | 275k | 4 repos | ~2k | Automated safety check: Pass | MIT | |
| Kotlin Coroutines Flowsaffaan-m/ECC | 275k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Channel Message Flowsopenclaw/openclaw | 392k | 1 repos | ~306 | Automated safety check: Pass | MIT | |
| Login Flownexu-io/open-design | 100k | — | ~334 | Automated safety check: Pass | Apache-2.0 | |
| Project Flow Opsaffaan-m/ECC | 275k | 3 repos | ~787 | Automated safety check: Pass | MIT |
affaan-m/ECC
Kotlin Coroutines and Flow patterns for Android and KMP — structured concurrency, Flow operators, StateFlow, error handling, and testing.
affaan-m/ECC
Android および KMP 向けの Kotlin コルーチンと Flow パターン — 構造化並行性、Flow オペレーター、StateFlow、エラーハンドリング、テスト。
openclaw/openclaw
A skill your agent uses when running QA Lab channel message flow evidence.
nexu-io/open-design
Mobile login and authentication flow screens. An agent skill from nexu-io/open-design.
affaan-m/ECC
Operate execution flow across GitHub and Linear by triaging issues and pull requests, linking active work, and keeping GitHub public-facing while Linear remains the internal execution layer.
nexu-io/open-design
A lo-fi multi-screen MOBILE flow wireframe — three or four phone frames laid out in a row on a board, showing a connected user flow (Onboarding → Home feed → Item detail → Confirm).
BlackBeltTechnology/pi-agent-dashboard
Browser automation via the agent-browser CLI. An agent skill from BlackBeltTechnology/pi-agent-dashboard.
BlackBeltTechnology/pi-agent-dashboard
Monitor and control the pi-dashboard server. An agent skill from BlackBeltTechnology/pi-agent-dashboard.
BlackBeltTechnology/pi-agent-dashboard
Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…
BlackBeltTechnology/pi-agent-dashboard
Diagnose problems in the running pi-agent-dashboard system: server.log, /api/health, bridge WebSocket connectivity, vitest triage, known-issue FAQ entries.
BlackBeltTechnology/pi-agent-dashboard
Disciplined implementation in pi-agent-dashboard: the rebuild matrix (extension→reload, server→restart, client→build+restart, openspec-apply→full rebuild) plus the project's code discipline rules.
BlackBeltTechnology/pi-agent-dashboard
Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…
Create and edit pi-flows flows and agents from the main session. Edit Flow is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Create and edit pi-flows flows and agents from the main session.
Edit Flow fits situations like: the user wants to create a new flow; change an agent; edit an existing flow/agent.
Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a claude-code`. Or copy the skill folder (.pi/skills/edit-flow in BlackBeltTechnology/pi-agent-dashboard) into .claude/skills/edit-flow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a codex`. Or copy the skill folder (.pi/skills/edit-flow in BlackBeltTechnology/pi-agent-dashboard) into .agents/skills/edit-flow 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 BlackBeltTechnology/pi-agent-dashboard --skill edit-flow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/edit-flow, .gemini/skills/edit-flow, .github/skills/edit-flow and .opencode/skills/edit-flow in your project.
SKILL.md names no scripts, command-line tools or credentials: Edit Flow is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Edit Flow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k 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 Edit Flow: Kotlin Coroutines Flows (affaan-m/ECC, 275k stars), Kotlin Coroutines Flows (affaan-m/ECC, 275k stars), Channel Message Flows (openclaw/openclaw, 392k stars) and Login Flow (nexu-io/open-design, 100k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
BlackBeltTechnology (a GitHub organization) maintains it in BlackBeltTechnology/pi-agent-dashboard, which has 315 GitHub stars. The repository holds 66 skills in this directory. The repository was last updated on October 8, 2026.
Source: BlackBeltTechnology/pi-agent-dashboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.