Agent skill

Dashboard Plugin Scaffold

by BlackBeltTechnology in BlackBeltTechnology/pi-agent-dashboard

Scaffold a new pi-dashboard plugin in the dashboard monorepo, OR augment an existing pi-extension project on disk with dashboard plugin contributions.

MITAuto-check passedDevelopment

Install Dashboard Plugin Scaffold

skills CLI
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill dashboard-plugin-scaffold -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install BlackBeltTechnology/pi-agent-dashboard dashboard-plugin-scaffold --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/dashboard-plugin-skill/.pi/skills/dashboard-plugin-scaffold .claude/skills/dashboard-plugin-scaffold && rm -rf skills-src

Use ~/.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/

Facts

Skill name
dashboard-plugin-scaffold
GitHub stars
315
Token cost
~2.4k tokens
SKILL.md length
616 words
Files
7 (incl. references)
Skills in repo
66
Repo updated
First seen
Licence
MIT

At a glance

Scaffold a new pi-dashboard plugin in the dashboard monorepo, OR augment an existing pi-extension project on disk with dashboard plugin contributions.

  • Works in 2 steps: Up-front ask_user batch → Branch on mode
  • The user asks to create a dashboard plugin
  • SKILL.md covers Step 1 — Up-front ask_user batch, Step 2 — Branch on mode, Step 3a — New mode and Step 3b — Augment mode preflight, plus 2 more sections
  • Calls node, npm and jq

What it does

Dashboard Plugin Scaffold is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Scaffold a new pi-dashboard plugin in the dashboard monorepo, OR augment an existing pi-extension project on disk with dashboard plugin contributions. Hybrid skill: a single askuser batch up front, then prescriptive steps the agent follows. Use when the user asks to "create a dashboard plugin", "add dashboard support to my extension", "scaffold a plugin", or similar.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/build-integration.md`, `references/manifest-schema.md` and `references/plugin-context-api.md`).

It sits in Development, covering Monorepo tooling and Project scaffolding. 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.

When your agent uses it

  • The user asks to create a dashboard plugin
  • Add dashboard support to my extension
  • Scaffold a plugin

Example prompts

  • “create a dashboard plugin”
  • “add dashboard support to my extension”
  • “scaffold a plugin”
  • “/dashboard-plugin-scaffold”

Requirements

  • Node.js

Workflow steps

2 steps, taken from the step headings in SKILL.md.

  1. Up-front ask_user batch
  2. Branch on mode

What it can do on your machine

Read from SKILL.md and the folder at commit 86e8e4d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • npm
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dashboard Plugin Scaffold loads about 2.4k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 99 tokens; SKILL.md has 616 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~99
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.8k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from BlackBeltTechnology/pi-agent-dashboard at commit 86e8e4d, republished under its MIT licence (© BlackBeltTechnology). 616 words, ~2,438 tokens.

Download SKILL.mdSave it as .claude/skills/dashboard-plugin-scaffold/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
dashboard-plugin-scaffold
description
Scaffold a new pi-dashboard plugin in the dashboard monorepo, OR augment an existing pi-extension project on disk with dashboard plugin contributions. Hybrid skill: a single ask_user batch up front, then prescriptive steps the agent follows. Use when the user asks to "create a dashboard plugin", "add dashboard support to my extension", "scaffold a plugin", or similar.
license
MIT
metadata.author
pi-dashboard
metadata.version
1.0

Dashboard Plugin Scaffold

Two modes, one skill. Mode new scaffolds packages/<id>-plugin/ inside the dashboard monorepo. Mode augment retrofits an existing pi-extension at the current working directory with a pi-dashboard-plugin manifest field and a src/dashboard/ React subtree.

Step 1 — Up-front ask_user batch

Use the ask_user tool, method batch, with these questions in order:

#MethodTitleNotes
1select"Mode"options: ["new — scaffold a fresh packages/<id>-plugin/ in this dashboard monorepo", "augment — retrofit an existing pi-extension at cwd with dashboard plugin contributions"]
2input"Plugin id (kebab-case)"(mode new only) — validated ^[a-z][a-z0-9-]*$, must not collide with existing packages/<id>-plugin/
3input"Display name"(mode new only) — free text, e.g. "Acme Plugin"
4input"Priority (default 100; lower = earlier)"(mode new only) — integer string
5multiselect"Slot claims"(mode new only) — options: see references/slot-taxonomy.md for the 10 React slots
6confirm"Scaffold a server entry (REST routes + WS handlers)?"(mode new only) — default true
7confirm"Scaffold a bridge entry (pi extension that loads in every pi session)?"(mode new only) — default false, high blast radius
8confirm"Scaffold a configSchema.json?"(mode new only) — default true

Skip questions 2-8 entirely if mode is augment. The augment-mode questions come after the analysis, in step 4b.

Step 2 — Branch on mode

If the user picked new, jump to Step 3a — New mode.

If the user picked augment, jump to Step 3b — Augment mode preflight.


Step 3a — New mode

3a.1 Validate inputs
bash
# Confirm the dashboard monorepo root by walking up for openspec/ + packages/
ROOT=$(pwd)
while [ "$ROOT" != "/" ] && [ ! -d "$ROOT/openspec" ]; do ROOT=$(dirname "$ROOT"); done
[ -d "$ROOT/openspec" ] || { echo "Not inside the dashboard monorepo (no openspec/ dir found)" >&2; exit 1; }
[ -d "$ROOT/packages" ] || { echo "Monorepo missing packages/ dir" >&2; exit 1; }

# Validate id
echo "<id>" | grep -qE '^[a-z][a-z0-9-]*$' || { echo "id must be kebab-case" >&2; exit 1; }

# Refuse collision
[ ! -d "$ROOT/packages/<id>-plugin" ] || { echo "packages/<id>-plugin already exists" >&2; exit 1; }

Substitute <id> with the user-provided id throughout.

3a.2 Run the renderer

The renderer lives in this skill's parent package as a bin script:

bash
# Locate the bin script (works whether the skill is installed globally or per-workspace)
SKILL_PKG=$(node -e "console.log(require.resolve('@blackbelt-technology/pi-dashboard-plugin-skill/package.json'))" | xargs dirname)
RENDERER="$SKILL_PKG/src/bin/scaffold.ts"

# Pass answers as JSON via stdin
cat <<JSON | node --import "$(node -e "import('@blackbelt-technology/pi-dashboard-shared/jiti-register.ts')")" "$RENDERER"
{
  "mode": "new",
  "id": "<id>",
  "displayName": "<displayName>",
  "priority": <priority>,
  "slots": [<slotsJsonArray>],
  "server": <true|false>,
  "bridge": <true|false>,
  "configSchema": <true|false>,
  "outDir": "$ROOT/packages/<id>-plugin"
}
JSON

The renderer writes:

packages/<id>-plugin/
├─ package.json                    (with pi-dashboard-plugin manifest)
├─ tsconfig.json
├─ vitest.config.ts
├─ README.md
├─ configSchema.json               (only if user opted in)
├─ src/
│  ├─ client.tsx                   (one section per claimed slot)
│  ├─ server/index.ts              (only if user opted in)
│  └─ bridge/index.ts              (only if user opted in)
└─ test/
   └─ index.test.ts
3a.3 Register the workspace
bash
"$SKILL_PKG/src/scripts/register-workspace.sh" "<id>-plugin"

This is idempotent — re-running on an already-registered workspace is a no-op.

3a.4 Print next-steps
Next steps:
  1. cd $ROOT && npm install
  2. npm run build                 # build the client + plugin
  3. curl -X POST http://localhost:8000/api/restart   # restart dashboard server
  4. npm run reload                # reload all connected pi sessions
  5. Open the dashboard, navigate to your slot, see the scaffold render.

Done with mode new.


Step 3b — Augment mode preflight

3b.1 Verify cwd is a pi extension
bash
[ -f package.json ] || { echo "No package.json at cwd" >&2; exit 1; }
PEER=$(jq -r '.peerDependencies["pi-coding-agent"] // .dependencies["pi-coding-agent"] // empty' package.json)
[ -n "$PEER" ] || { echo "package.json does not declare pi-coding-agent — not a pi extension" >&2; exit 1; }
3b.2 Run the grep prelude
bash
SKILL_PKG=$(node -e "console.log(require.resolve('@blackbelt-technology/pi-dashboard-plugin-skill/package.json'))" | xargs dirname)
"$SKILL_PKG/src/scripts/grep-tui-surface.sh" > /tmp/tui-callsites.json
cat /tmp/tui-callsites.json

The output is a deterministic JSON list { "callsites": [...] }. Each entry has { file, line, callsite, category } where category is tui-prompt, tui-custom, tool-register, extension-ui, or banned (session-replacement calls).

3b.3 Drive the analysis (LLM step)

For each callsite (skip those with category: "banned" after surfacing the bridge invariant warning):

  1. Read ±20 lines around the callsite.
  2. Match against references/tui-to-dashboard-mapping.md (the canonical mapping table).
  3. Emit a port proposal:
    ts
    {
      file: string,
      line: number,
      callsite: string,
      mappedSlot: SlotId | null,             // null = already-dashboard-aware
      status: "needs-port" | "optional-port" | "already-dashboard-aware",
      componentSuggestion: string | null,
      notes: string,
    }

Collate into a markdown table. Show it to the user.

Show full SKILL.md (241 more words)Show less
3b.4 Per-callsite confirmation (ask_user)

Filter to proposals with status of needs-port or optional-port. Use:

ask_user method=multiselect
  title="Which TUI callsites should port to the dashboard?"
  options=[<proposal[i].file:proposal[i].line — proposal[i].callsite → proposal[i].mappedSlot>, …]

Then confirm:

ask_user method=confirm
  title="Proceed with manifest injection and src/dashboard/ scaffold?"
3b.5 Run the renderer
bash
cat <<JSON | node ... "$SKILL_PKG/src/bin/scaffold.ts"
{
  "mode": "augment",
  "outDir": ".",
  "confirmedProposals": [<proposal[i] for each user-checked option>],
  "addServer": <true if any proposal needs server hooks>
}
JSON

The renderer:

  1. Adds @blackbelt-technology/dashboard-plugin-runtime and @blackbelt-technology/pi-dashboard-shared as dependencies (preserves existing deps; sorted alphabetically).
  2. Injects the pi-dashboard-plugin manifest field into package.json (top-level, JSON-safe edit via jq).
  3. Adds ./client, ./server (if applicable), ./bridge (if applicable) entries to exports.
  4. Sets pi-dashboard-plugin.requiredApi to ^0.x (the v0.x lock).
  5. Creates src/dashboard/client.tsx with stubs for each confirmed claim.
  6. Creates src/dashboard/server.ts only if any proposal needed server hooks.

It does NOT modify any other source file.

3b.6 Print next-steps
Next steps:
  1. npm install
  2. npm run build                 # build your project
  3. Test in pi: pi  (the original TUI surface still works)
  4. Test in dashboard: until node_modules scan ships, link into the dashboard
     monorepo: cd <dashboard-repo> && npm link <your-package-path>
     OR clone your project into <dashboard-repo>/packages/ as a workspace.
  5. When ready: npm publish
     (a future dashboard release will discover your package via node_modules)

Done with mode augment.


Guardrails

  • Never run npm publish, npm run build, or restart the dashboard server. The skill prints next-steps; the user runs them.
  • Never edit existing source files in augment mode — only package.json (manifest injection) and new files under src/dashboard/.
  • Refuse to run augment mode if pi-coding-agent is not declared as a dep or peerDep.
  • Refuse to run new mode outside the dashboard monorepo (no openspec/ in any ancestor).
  • Refuse to overwrite an existing packages/<id>-plugin/ in new mode.
  • Bridge entry defaults to OFF. Only emit if the user explicitly opts in.
  • Per-callsite confirmation is mandatory in augment mode — never inject a manifest claim derived from an un-confirmed callsite.

References

© BlackBeltTechnology, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (references) in packages/dashboard-plugin-skill/.pi/skills/dashboard-plugin-scaffold of BlackBeltTechnology/pi-agent-dashboard.

  • SKILL.md
  • references/build-integration.md
  • references/manifest-schema.md
  • references/plugin-context-api.md
  • references/server-context-api.md
  • references/slot-taxonomy.md
  • references/tui-to-dashboard-mapping.md

Open the folder on GitHubat commit 86e8e4d

Compare with similar skills

Dashboard Plugin Scaffold 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.

Dashboard Plugin Scaffold compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dashboard Plugin Scaffold this skillBlackBeltTechnology/pi-agent-dashboard315—~2.4kAutomated safety check: PassMIT
Run Nx Generatornrwl/nx29k2 repos~592Automated safety check: NotesMIT
Create Vechain Dappvechain/x-app-template450—~1.8kAutomated safety check: PassMIT
Create Saleor Packagesaleor/apps162—~608Automated safety check: PassCustom licence
Light Project StructureLight0305/Light-skills640—~3kAutomated safety check: NotesMIT
Creating Luna Appmizchi/luna.mbt173—~1.4kAutomated safety check: PassNone

Similar skills

  • Run Nx generators with prioritization for workspace-plugin generators.

    29k GitHub starsUsed in 2 repos~592 tokens
    DevelopmentAuto-check: notes
  • Create Vechain Dapp

    vechain/x-app-template

    Scaffold a VeChain dApp with Next.js, VeChain Kit, Chakra UI v3, and GitHub Pages deployment.

    450 GitHub stars~1.8k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Scaffold a new shared package in the saleor-apps monorepo under ./packages/.

    162 GitHub stars~608 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Light Project Structure

    Light0305/Light-skills

    Audits, scaffolds and safely migrates research project folder structures, keeping existing repositories read-only until you approve exact moves from a plan.

    640 GitHub stars~3k tokensUpdated 3 mo ago
    DevelopmentAuto-check: notes
  • Creating Luna App

    mizchi/luna.mbt

    A skill your agent uses when scaffolding a new standalone CSR app that uses luna (@lunaui/luna) outside the luna.mbt monorepo — running npx @lunaui/luna new, choosing TSX vs MoonBit, or fixing a…

    173 GitHub stars~1.4k tokensUpdated 23 days ago
    DevelopmentAuto-check passed
  • Adk Readme Writer

    BrainDAO/adk-ts

    ADK-TS README specialist. An agent skill from BrainDAO/adk-ts.

    119 GitHub stars~2.6k tokensUpdated 3 mo ago
    DevelopmentAuto-check: notes

More from BlackBeltTechnology/pi-agent-dashboard

All 66 skills in this repo
  • Browser

    BlackBeltTechnology/pi-agent-dashboard

    Browser automation via the agent-browser CLI. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    315 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • CI Troubleshoot

    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…

    315 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Debug Dashboard

    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.

    315 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Implement

    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.

    315 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Pi Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Monitor and control the pi-dashboard server. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    315 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Session To Guideline

    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…

    315 GitHub stars~3.2k tokensUpdated today
    Auto-check passed

Categories

Questions about Dashboard Plugin Scaffold

What does Dashboard Plugin Scaffold do?

Scaffold a new pi-dashboard plugin in the dashboard monorepo, OR augment an existing pi-extension project on disk with dashboard plugin contributions. Dashboard Plugin Scaffold is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Scaffold a new pi-dashboard plugin in the dashboard monorepo, OR augment an existing pi-extension project on disk with dashboard plugin contributions.

When should I use Dashboard Plugin Scaffold?

Dashboard Plugin Scaffold fits situations like: the user asks to create a dashboard plugin; add dashboard support to my extension; scaffold a plugin.

How do I install Dashboard Plugin Scaffold in Claude Code?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill dashboard-plugin-scaffold -a claude-code`. Or copy the skill folder (packages/dashboard-plugin-skill/.pi/skills/dashboard-plugin-scaffold in BlackBeltTechnology/pi-agent-dashboard) into .claude/skills/dashboard-plugin-scaffold in your project. Claude Code loads it when a task matches its description.

How do I install Dashboard Plugin Scaffold in Codex?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill dashboard-plugin-scaffold -a codex`. Or copy the skill folder (packages/dashboard-plugin-skill/.pi/skills/dashboard-plugin-scaffold in BlackBeltTechnology/pi-agent-dashboard) into .agents/skills/dashboard-plugin-scaffold in your project. Codex loads it when a task matches its description.

Can I use Dashboard Plugin Scaffold in Cursor, Gemini CLI or GitHub Copilot?

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 dashboard-plugin-scaffold -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dashboard-plugin-scaffold, .gemini/skills/dashboard-plugin-scaffold, .github/skills/dashboard-plugin-scaffold and .opencode/skills/dashboard-plugin-scaffold in your project.

What does Dashboard Plugin Scaffold need to run?

Going by SKILL.md and its folder, Dashboard Plugin Scaffold needs the command-line tools its instructions call (node, npm and jq). Our summary lists: Node.js.

Does Dashboard Plugin Scaffold access the network?

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.

Is Dashboard Plugin Scaffold safe to install?

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.

What licence does Dashboard Plugin Scaffold use?

Dashboard Plugin Scaffold is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dashboard Plugin Scaffold use?

About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.4k tokens, read only when the agent opens those files.

What are the alternatives to Dashboard Plugin Scaffold?

Skills that share tags, products or a category with Dashboard Plugin Scaffold: Run Nx Generator (nrwl/nx, 29k stars), Create Vechain Dapp (vechain/x-app-template, 450 stars), Create Saleor Package (saleor/apps, 162 stars) and Light Project Structure (Light0305/Light-skills, 640 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dashboard Plugin Scaffold?

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.