Frontend Build Timing Audit
openops-cloud/openops
Detects and diagnoses chunk-evaluation timing bugs in the Vite/rolldown production build of react-ui (works-in-dev / broken-in-build i18n regressions, missing UI labels, module-scope t()…
Create a custom web dashboard (React + Vite + Express) inside your sandbox to visualize the agent's Turso database.
$ npx skills add gooseworks-ai/goose-skills --skill create-dashboard -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gooseworks-ai/goose-skills create-dashboard --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/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/design/capabilities/create-dashboard .claude/skills/create-dashboard && 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 "create-dashboard" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/capabilities/create-dashboard into .claude/skills/create-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dashboard", 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/gooseworks-ai/goose-skills/tree/main/skills/design/capabilities/create-dashboardType 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 gooseworks-ai/goose-skills --skill create-dashboard -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gooseworks-ai/goose-skills create-dashboard --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/design/capabilities/create-dashboard .agents/skills/create-dashboard && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-dashboard" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/capabilities/create-dashboard into .agents/skills/create-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dashboard", 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 gooseworks-ai/goose-skills --skill create-dashboard -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gooseworks-ai/goose-skills create-dashboard --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/design/capabilities/create-dashboard .cursor/skills/create-dashboard && 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 "create-dashboard" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/capabilities/create-dashboard into .cursor/skills/create-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dashboard", 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/gooseworks-ai/goose-skills.git --path skills/design/capabilities/create-dashboard--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 gooseworks-ai/goose-skills --skill create-dashboard -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gooseworks-ai/goose-skills create-dashboard --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/design/capabilities/create-dashboard .gemini/skills/create-dashboard && 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 "create-dashboard" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/capabilities/create-dashboard into .gemini/skills/create-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dashboard", 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 gooseworks-ai/goose-skills create-dashboardInstalls 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 gooseworks-ai/goose-skills --skill create-dashboard -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/design/capabilities/create-dashboard .github/skills/create-dashboard && 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 "create-dashboard" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/capabilities/create-dashboard into .github/skills/create-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dashboard", 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 gooseworks-ai/goose-skills --skill create-dashboard -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gooseworks-ai/goose-skills create-dashboard --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/design/capabilities/create-dashboard .opencode/skills/create-dashboard && 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 "create-dashboard" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/design/capabilities/create-dashboard into .opencode/skills/create-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-dashboard", 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.
create-dashboardCreate a custom web dashboard (React + Vite + Express) inside your sandbox to visualize the agent's Turso database.
Create Dashboard is an agent skill from gooseworks-ai/goose-skills. Create a custom web dashboard (React + Vite + Express) inside your sandbox to visualize the agent's Turso database. The dashboard is served on port 3847 and the user sees it live in the "App" tab in Gooseworks. Use when the user asks for a dashboard, visualization, chart, metric view, or any custom UI powered by their agent's data.
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).
It sits in Data & Analytics. It works with Vite, React, Turso and npm. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c650c6d. 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.
Shell commands in SKILL.md call:
npmnodeFrom 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.
Create Dashboard loads about 4.1k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 2,449 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 gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 2,449 words, ~4,078 tokens.
.claude/skills/create-dashboard/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You are helping the user build a custom dashboard from the Gooseworks dashboard template. The app must run on port 3847 from a single Express process that serves both the API routes and the built React UI so it appears in the Gooseworks App tab.
The runnable project folder is /home/user/dashboard. That is the
ONLY directory you should cd into for any npm / build / server
command. Most files inside it are symlinks pointing back into the
canonical source under the agent's workspace folder (the file you'd
see at the canonical path is the same file you'd see through the
symlink — it's one file, two paths). The runnable project folder also
holds two real local directories that must NOT be on the workspace
mount: node_modules (dependencies) and dist (built bundle).
/home/user/dashboard/ ← cd here for everything
package.json, package-lock.json,
server.js, src/, vite.config.ts, … (symlinks → workspace canonical source)
node_modules/, dist/, .vite/, .cache/ (real local dirs — never on workspace)What this means for you:
cd /home/user/dashboard before running npm / vite / node /
any shell command. Tools resolve modules from the node_modules
next to the cwd. Running them from the canonical source path under
the workspace folder will install node_modules directly into the
workspace mount — that puts tens of thousands of files on s3fs,
hits its filesystem-semantics limits (npm gets ENOTEMPTY on
package renames), and the install will spin forever./home/user/dashboard/src/... (or any
other symlinked path) auto-persist to the workspace mount through
the symlink. There is no separate sync step. You may also edit the
canonical path directly; both paths land in the same file.npm install, npm ci, vite build, or node server.js
from inside the workspace canonical source folder. Those commands
will pollute the workspace with node_modules / dist / build
caches and break future restores./home/user/dashboard. Use that literal path when telling the user where you cd or which file you edited; do not invent shell-variable strings.cd /home/user/dashboard before running npm / vite / node. Edits to symlinked source files inside it propagate to persistent storage automatically; no separate sync step is needed.node_modules and dist are LOCAL only. Never copy them into the workspace folder.Before editing, inspect:
package.json is a symlink (it should be — this confirms the symlink layout is in place)node_modules folder inside the runnable project folder is populatedThen follow this decision flow:
node_modules empty: ask the platform to re-run the start flow (it will set up symlinks + npm install + build + launch).package.json is a real file (not a symlink): the sandbox is in a legacy state — ask the platform to re-run install/start so the symlink layout gets put in place.The platform's start/install orchestrator handles symlink setup, dependency install, build, and launch automatically. You don't run those steps by hand unless something is broken.
Before coding:
Order of preference for every panel, chart, and table:
The user is often non-technical and will not know how to create a schema themselves. Do not fall back to "sample data" the moment a table is missing. Instead, when the DB is reachable but the tables needed for the requested dashboard do not exist:
deals table with id, name, amount, stage, closed_at, plus a revenue_daily rollup if useful). Keep the schema minimal — only the columns the requested charts actually need.If the user declines schema creation, render a calm empty state ("no data yet — connect a table named X with columns A, B, C to see this chart") in stone tones rather than filling the chart with fake numbers.
Never create or alter tables that already contain user data without an explicit instruction. Never drop tables. All table creation must be additive.
Template structure to use:
For each new page:
Keep all dashboard endpoints read-only.
Six layout shells live in src/components/layouts/. The default App.tsx
wraps routes in SidebarLayout. Swap the import + wrapper in App.tsx to
the shell that matches what the user is asking for:
| Shell | Use when the user asks for… |
|---|---|
SidebarLayout (default) | a multi-section app with several pages (analytics, admin, multi-page tool) |
TopNavLayout | a single-purpose dashboard, marketing-style report, or something that wants full-width content |
TopNavTabsLayout | a Stripe-Dashboard-style sectioned view where tabs slice the same workspace |
SplitPaneLayout | inbox / CRM / chat / mail-style apps — list on the left, detail on the right. Pass list and detail as separate props |
CanvasLayout | a one-page report, embed, or screen with no chrome at all |
CenteredLayout | login forms, onboarding screens, single-action surfaces |
Rules:
SplitPaneLayout takes list + detail props instead of children. App.tsx should render the list pane (route-agnostic) and the detail pane (typically a <Routes>) as those two props.Design inspiration: aim for the calm, content-first feel of Linear, Vercel, Stripe, and Notion analytics dashboards. The dashboard should look like a quiet reporting surface, not a colourful BI tool. Density is good; chart-junk is not.
Concrete rules:
src/components/layouts/ (see "Choosing a layout" above) instead of inventing a new chrome. Within whichever shell you pick, keep the main content column generous on whitespace, KPIs as a row of small stat blocks at the top, charts and tables stacked below.When in doubt, look at the existing pages in the template and match their density, spacing, and tone before adding anything new.
The dashboard does not hot-reload on file changes. After editing
source files under /home/user/dashboard/src/..., run npm run build
from /home/user/dashboard. You do not need to restart the server
for src/ edits — the running Express server uses
express.static(dist/public) and reads files from disk on every
request, so the next iframe refresh picks up the freshly-built bundle
automatically (Vite emits new hashed asset filenames; the new
index.html points to them).
Default flow after a src/ edit:
npm run build from /home/user/dashboard.Do not stop, kill, or restart the dashboard server as part of the
normal edit loop. Doing so wastes time and creates a failure mode:
the agent backgrounds node server.js, then polls the background task
waiting for it to "complete" — but a healthy server is a long-lived
process, so the poll loop never resolves and the chat appears frozen.
Only restart the server when one of these is true:
server.js itself (new API route, new middleware, anything
that changes server behavior — Express won't pick those up without a
process restart)./api/health endpoint.If you do launch node server.js yourself, fire-and-forget it
(redirect output to a log file, return immediately) and verify via
the /api/health endpoint. Never poll a background-task output waiting
for the server process to exit — it won't.
Hit the health endpoint:
If the user reports a problem with the dashboard, walk through this list in order before making code changes. Most "the dashboard is broken" reports are environmental, not bugs in the user's pages.
/api/health endpoint). If not, ask the platform to re-run the start flow.package.json. Add it. Then change directory into /home/user/dashboard. Then run npm install. Then rebuild. Never run npm install from anywhere under the workspace folder — that installs node_modules into the workspace mount, which hits s3fs filesystem-semantics limits and spins forever.npm run build from /home/user/dashboard and ask the user to refresh — Express serves the new bundle from disk, so no server restart is needed for src/ edits. Only restart the server if a refresh still shows stale output.dist folder inside the runnable project folder and rebuild.package.json is a real file (not a symlink). The sandbox is in a legacy / pre-symlink state. Ask the platform to re-run the start flow — it will rewire the symlinks and rebuild.If none of the above resolves it, read the server logs, summarize the actual error to the user in plain language, and propose the smallest fix.
End with a direct status message that the dashboard is live in the App tab and ready for further edits.
For every follow-up tweak (this loop is the agent's job, not the user's):
/home/user/dashboard/.... Symlinks persist edits to the workspace automatically; no sync step.npm run build from /home/user/dashboard. Do not restart the server — Express serves the new dist/ automatically on the next request.Restart the server only in the cases listed under "When a restart IS warranted" above (server.js changed, server not running, or the user reports a visible problem).
© gooseworks-ai, 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 skills/design/capabilities/create-dashboard of gooseworks-ai/goose-skills.
Open the folder on GitHubat commit c650c6d
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.
Create Dashboard 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 |
|---|---|---|---|---|---|---|
| Create Dashboard this skillgooseworks-ai/goose-skills | 1.2k | 1 repos | ~4.1k | Automated safety check: Pass | MIT | |
| Frontend Build Timing Auditopenops-cloud/openops | 1.1k | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| Convex Quickstartspokvulcan/poker-planning | 114 | 6 repos | ~3.5k | Automated safety check: Notes | MIT | |
| Convex Self Hostingwaynesutton/markdown-site | 627 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Spotpatchhuanglvjing/spotpatch | 134 | — | ~998 | Automated safety check: Pass | MIT | |
| Pixijs Createpixijs/pixijs-skills | 351 | — | ~3.1k | Automated safety check: Pass | MIT |
openops-cloud/openops
Detects and diagnoses chunk-evaluation timing bugs in the Vite/rolldown production build of react-ui (works-in-dev / broken-in-build i18n regressions, missing UI labels, module-scope t()…
spokvulcan/poker-planning
Creates or adds Convex to an app. An agent skill from spokvulcan/poker-planning.
waynesutton/markdown-site
Integrate Convex static self hosting into existing apps using the latest upstream instructions from get-convex/self-hosting every time.
huanglvjing/spotpatch
为 React 项目建立从浏览器页面元素到精确 JSX/TSX 源码、结构化上下文与可审阅修改的 SpotPatch 工作流。用户提到 SpotPatch、截图沟通前端修改、页面元素定位源码、Vite 或 Next.js 接入、组件数据链路、结构化 Prompt、AI 补丁审阅、安装检查或故障排查时使用此技能。
pixijs/pixijs-skills
A skill your agent uses when scaffolding a new PixiJS v8 project with the create-pixi CLI or adding PixiJS to an existing project.
lablup/backend.ai-webui
Start the project's development server (pnpm dev for backend.ai-webui; discovered from README/package.json elsewhere), deriving the header color, app name, default backend endpoint and login…
gooseworks-ai/goose-skills
Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.
gooseworks-ai/goose-skills
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.
gooseworks-ai/goose-skills
Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.
gooseworks-ai/goose-skills
Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.
gooseworks-ai/goose-skills
Find leads by scraping engagers from a competitor's top LinkedIn posts.
gooseworks-ai/goose-skills
Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…
Categories
Create a custom web dashboard (React + Vite + Express) inside your sandbox to visualize the agent's Turso database. Create Dashboard is an agent skill from gooseworks-ai/goose-skills. Create a custom web dashboard (React + Vite + Express) inside your sandbox to visualize the agent's Turso database.
Create Dashboard fits situations like: the user asks for a dashboard; any custom UI powered by their agents data.
Run `npx skills add gooseworks-ai/goose-skills --skill create-dashboard -a claude-code`. Or copy the skill folder (skills/design/capabilities/create-dashboard in gooseworks-ai/goose-skills) into .claude/skills/create-dashboard in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gooseworks-ai/goose-skills --skill create-dashboard -a codex`. Or copy the skill folder (skills/design/capabilities/create-dashboard in gooseworks-ai/goose-skills) into .agents/skills/create-dashboard 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 gooseworks-ai/goose-skills --skill create-dashboard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-dashboard, .gemini/skills/create-dashboard, .github/skills/create-dashboard and .opencode/skills/create-dashboard in your project.
Going by SKILL.md and its folder, Create Dashboard needs the command-line tools its instructions call (npm and node). Our summary lists: 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.
Create Dashboard 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.1k tokens (SKILL.md is roughly 16k 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 Create Dashboard: Frontend Build Timing Audit (openops-cloud/openops, 1.1k stars), Convex Quickstart (spokvulcan/poker-planning, 114 stars), Convex Self Hosting (waynesutton/markdown-site, 627 stars) and Spotpatch (huanglvjing/spotpatch, 134 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.
Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.