# Dashboard

Use this skill when contributing to InsForge's shared dashboard package.

- Repository: https://github.com/InsForge/InsForge (13274 stars)
- Category: Design
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add InsForge/InsForge --skill dashboard -g -a claude-code -y`
Codex: `npx skills add InsForge/InsForge --skill dashboard -g -a codex -y`
Cursor: `npx skills add InsForge/InsForge --skill dashboard -g -a cursor -y`
Gemini CLI: `npx skills add InsForge/InsForge --skill dashboard -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add InsForge/InsForge`

## Description

Use this skill when contributing to InsForge's shared dashboard package. This is for maintainers editing `packages/dashboard`, which ships in `self-hosting` and `cloud-hosting` modes, and the local `frontend/` shell used for `self-hosting` in this repo.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# InsForge Dev Dashboard

Use this skill for dashboard work in the InsForge repository.

## Scope

- `packages/dashboard/src/**`
- `packages/dashboard/package.json`
- `packages/dashboard/README.md`
- `packages/dashboard/*.config.*`
- `frontend/src/**`
- `frontend/package.json`

## Working Rules

1. Respect the shared-package versus host-app boundary.
   - This dashboard is built with React and TypeScript.
   - `packages/dashboard/` is the source of truth for the dashboard product.
   - The package must support both `self-hosting` and `cloud-hosting` modes.
   - Keep self-hosting-only bootstrap, local env defaults, and shell styling in `frontend/`.
   - Do not let `packages/dashboard/` depend on `frontend/`.
   - If both modes need a capability, define it in the package API first.

2. Preserve dashboard data-flow conventions.
   - Follow the flow `service -> hook -> UI`.
   - Use `apiClient` for HTTP calls so auth refresh and error handling stay consistent.
   - Put request logic in services, data fetching and mutation state in hooks, and rendering/orchestration in UI components and pages.
   - Reuse existing contexts, host abstractions, and hooks before creating new global state.

3. Reuse the existing component layers.
   - Use `@insforge/ui` for generic primitives.
   - Use shared dashboard components when the pattern is already present.
   - Keep reusable dashboard UI in `packages/dashboard/`.
   - Only add UI to `frontend/` when it is specific to the local self-hosting shell.
   - Keep package styles scoped to the dashboard container.

The rest: https://github.com/InsForge/InsForge/blob/HEAD/.agents/skills/insforge-dev/dashboard/SKILL.md
