Ant Design Vue UI
lazzyfu/goInsight
Build, refactor, or review production-grade admin interfaces with Vue 3 + JavaScript + Ant Design Vue 4.x.
Complete guide for adding, updating, and removing tabs in the Primary Sidebar of OrcaQ.
$ npx skills add cin12211/orca-q --skill primary-sidebar -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cin12211/orca-q primary-sidebar --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/cin12211/orca-q.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/primary-sidebar .claude/skills/primary-sidebar && 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 "primary-sidebar" agent skill from https://github.com/cin12211/orca-q/tree/main/.claude/skills/primary-sidebar into .claude/skills/primary-sidebar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary-sidebar", 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/cin12211/orca-q/tree/main/.claude/skills/primary-sidebarType 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 cin12211/orca-q --skill primary-sidebar -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cin12211/orca-q primary-sidebar --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/primary-sidebar .agents/skills/primary-sidebar && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "primary-sidebar" agent skill from https://github.com/cin12211/orca-q/tree/main/.claude/skills/primary-sidebar into .agents/skills/primary-sidebar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary-sidebar", 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 cin12211/orca-q --skill primary-sidebar -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cin12211/orca-q primary-sidebar --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/primary-sidebar .cursor/skills/primary-sidebar && 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 "primary-sidebar" agent skill from https://github.com/cin12211/orca-q/tree/main/.claude/skills/primary-sidebar into .cursor/skills/primary-sidebar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary-sidebar", 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/cin12211/orca-q.git --path .claude/skills/primary-sidebar--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 cin12211/orca-q --skill primary-sidebar -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cin12211/orca-q primary-sidebar --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/primary-sidebar .gemini/skills/primary-sidebar && 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 "primary-sidebar" agent skill from https://github.com/cin12211/orca-q/tree/main/.claude/skills/primary-sidebar into .gemini/skills/primary-sidebar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary-sidebar", 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 cin12211/orca-q primary-sidebarInstalls 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 cin12211/orca-q --skill primary-sidebar -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/primary-sidebar .github/skills/primary-sidebar && 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 "primary-sidebar" agent skill from https://github.com/cin12211/orca-q/tree/main/.claude/skills/primary-sidebar into .github/skills/primary-sidebar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary-sidebar", 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 cin12211/orca-q --skill primary-sidebar -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cin12211/orca-q primary-sidebar --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cin12211/orca-q.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/primary-sidebar .opencode/skills/primary-sidebar && 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 "primary-sidebar" agent skill from https://github.com/cin12211/orca-q/tree/main/.claude/skills/primary-sidebar into .opencode/skills/primary-sidebar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary-sidebar", 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.
primary-sidebarComplete guide for adding, updating, and removing tabs in the Primary Sidebar of OrcaQ.
Primary Sidebar is an agent skill from cin12211/orca-q. Complete guide for adding, updating, and removing tabs in the Primary Sidebar of OrcaQ. Covers the full flow — ActivityBarItemType enum → useActivityBarStore → PrimarySideBar component → Management panel component. Load this skill for any task involving the left sidebar, activity bar tabs, or management panels (Explorer, Schemas, ERD, Roles, Export, Agent).
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases. It works with Vue.js. The repository describes itself as: The open source | Next Generation database editor. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3142fe6. 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 typescript and vue).
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.
Primary Sidebar loads about 2.6k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 521 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 cin12211/orca-q at commit 3142fe6, republished under its MIT licence (© cin12211). 521 words, ~2,554 tokens.
.claude/skills/primary-sidebar/SKILL.md (or your agent's skills folder).The Primary Sidebar is driven by a single active tab value in a Pinia store. The flow is:
ActivityBarItemType (enum) ← Tab identity
useActivityBarStore.activityActive ← Which tab is currently active (persisted)
PrimarySideBar.vue ← Watches activityActive, renders the matching component
Management***.vue ← The actual panel content (KeepAlive'd)The Activity Bar (the narrow icon strip on the far left) calls setActivityActive(type). The Primary Sidebar reacts to the change and swaps the rendered panel — all panels are wrapped in <KeepAlive> so their state is preserved when the user switches tabs.
| Purpose | File |
|---|---|
| Tab type enum + store | core/stores/useActivityBarStore.ts |
| Sidebar shell (switcher) | components/modules/app-shell/primary-side-bar/components/PrimarySideBar.vue |
| Sidebar public API | components/modules/app-shell/primary-side-bar/index.ts |
| All management panels | components/modules/management/ |
| Management public API | components/modules/management/index.ts |
| Shared header component | components/modules/management/shared/components/ManagementSidebarHeader.vue |
| Tab | Panel component file |
|---|---|
| Explorer | components/modules/management/explorer/ManagementExplorer.vue |
| Schemas | components/modules/management/schemas/ManagementSchemas.vue |
| ERD Diagram | components/modules/management/erd-diagram/ManagementErdDiagram.vue |
| Users & Roles | components/modules/management/role-permission/ManagementUsersAndPermission.vue |
| Export | components/modules/management/export/ManagementExport.vue |
| Agent | components/modules/management/agent/ManagementAgent.vue |
PrimarySideBar.vue)<script setup lang="ts">
const activityStore = useActivityBarStore();
const current = shallowRef();
watch(
() => activityStore.activityActive,
() => {
if (activityStore.activityActive === ActivityBarItemType.Explorer)
current.value = ManagementExplorer;
if (activityStore.activityActive === ActivityBarItemType.Schemas)
current.value = ManagementSchemas;
// ... one branch per tab
},
{ immediate: true }
);
</script>
<template>
<div class="w-full h-full flex flex-col" v-if="appConfigStore.layoutSize[0]">
<KeepAlive>
<component :is="current" />
</KeepAlive>
</div>
</template>Key points:
shallowRef (not ref) for the component — avoids deep reactivity on component objects.immediate: true so the correct panel is rendered on first mount.<KeepAlive> preserves scroll position and internal state when switching tabs.layoutSize[0] > 0).In core/stores/useActivityBarStore.ts:
export enum ActivityBarItemType {
Explorer = 'Explorer',
Schemas = 'Schemas',
ErdDiagram = 'ERDiagram',
UsersRoles = 'UsersRoles',
DatabaseExport = 'DatabaseExport',
Agent = 'Agent',
MyNewTab = 'MyNewTab', // ← new
}Create the folder components/modules/management/my-new-tab/ with this structure:
my-new-tab/
├── index.ts ← exports ManagementMyNewTab
├── ManagementMyNewTab.vue ← entry component
├── components/ ← sub-components (optional)
├── hooks/ ← business logic composables (optional)
└── services/ ← API calls (optional)ManagementMyNewTab.vue minimum template:
<script setup lang="ts">
import { ManagementSidebarHeader } from '../shared';
</script>
<template>
<div class="flex flex-col h-full w-full overflow-y-auto">
<ManagementSidebarHeader title="My New Tab" />
<!-- panel content here -->
</div>
</template>index.ts:
export { default as ManagementMyNewTab } from './ManagementMyNewTab.vue';In components/modules/management/index.ts:
export * from './my-new-tab'; // ← add this lineIn components/modules/app-shell/primary-side-bar/components/PrimarySideBar.vue:
// 1. Import the component
import { ManagementMyNewTab } from '#components';
// 2. Add a branch in the watch
watch(
() => activityStore.activityActive,
() => {
// ... existing branches ...
if (activityStore.activityActive === ActivityBarItemType.MyNewTab)
current.value = ManagementMyNewTab;
},
{ immediate: true }
);The Activity Bar icon strip that calls setActivityActive is separate from the management module. Find the component that renders the icon list and add a button:
activityStore.setActivityActive(ActivityBarItemType.MyNewTab);components/modules/management/<tab-name>/Management<Tab>.vue.<tab-name>/hooks/.<tab-name>/components/.useActivityBarStore — see schemasExpandedState, schemaCurrentScrollTop as examples.All panels use the shared header. Props:
| Prop | Type | Default | Purpose |
|---|---|---|---|
title | string | required | Panel title text |
showConnection | boolean | false | Show ConnectionSelector dropdown |
showSchema | boolean | false | Show SchemaSelector dropdown |
workspaceId | string | — | Required when showConnection is true |
showSearch | boolean | false | Show search input |
searchPlaceholder | string | 'Search...' | Input placeholder |
It also accepts a v-model:search for two-way search binding and an #actions slot for icon buttons in the title bar.
Standard usage:
<ManagementSidebarHeader
title="My Panel"
:show-connection="true"
:workspaceId="workspaceId"
:show-search="true"
v-model:search="searchInput"
>
<template #actions>
<Button size="iconSm" variant="ghost" @click="onRefresh">
<Icon name="hugeicons:refresh" class="size-4!" />
</Button>
</template>
</ManagementSidebarHeader>import {
useActivityBarStore,
ActivityBarItemType,
} from '~/core/stores/useActivityBarStore';
const activityStore = useActivityBarStore();
// Switch to a tab
activityStore.setActivityActive(ActivityBarItemType.Schemas);
// Read current active tab
const isSchemas = activityStore.activityActive === ActivityBarItemType.Schemas;The sidebar visibility is controlled by appConfigStore.layoutSize[0]. Use onToggleActivityBarPanel() from useAppConfigStore to open/close it — do NOT manipulate layoutSize directly.
Every non-trivial panel delegates logic to a hook. The hook receives UI callbacks via parameter (avoid importing component refs directly):
// hooks/useMyPanelTree.ts
export function useMyPanelTree(callbacks: {
focusNode: (id: string) => void;
collapseAll: () => void;
expandAll: () => void;
isExpandedAll: ComputedRef<boolean>;
}) {
// state, API calls, event handlers
return {
treeData,
searchInput,
onClickNode,
// ...
};
}Usage in the container:
<script setup lang="ts">
const treePanelRef = useTemplateRef<TreeInstance | null>('treePanelRef');
const { treeData, searchInput, onClickNode } = useMyPanelTree({
focusNode: id => treePanelRef.value?.focusItem(id),
collapseAll: () => treePanelRef.value?.collapseAll(),
expandAll: () => treePanelRef.value?.expandAll(),
isExpandedAll: computed(() => treePanelRef.value?.isExpandedAll ?? false),
});
</script>PrimarySideBar.vue — it is a pure switcher. All logic lives in the management panel or its hooks.shallowRef for the current component — ref() causes deep reactivity overhead on component objects.<component :is="current"> in <KeepAlive> — this preserves scroll position and tree expand state when switching tabs.useActivityBarStore, not into local component state.PrimarySideBar.vue use #components (Nuxt auto-import barrel) — not direct relative paths.index.ts exporting its root component, and be re-exported from components/modules/management/index.ts.© cin12211, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/primary-sidebar of cin12211/orca-q.
Open the folder on GitHubat commit 3142fe6
Primary Sidebar 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 |
|---|---|---|---|---|---|---|
| Primary Sidebar this skillcin12211/orca-q | 224 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Ant Design Vue UIlazzyfu/goInsight | 730 | — | ~2k | Automated safety check: Pass | MIT | |
| Greptimedb Perses DashboardGreptimeTeam/dashboard | 111 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Abp Pro InfrastructureWangJunZzz/abp-vnext-pro | 859 | — | ~258 | Automated safety check: Pass | MIT | |
| MigrationJaguarJack/catch-admin | 935 | — | ~474 | Automated safety check: Pass | Apache-2.0 | |
| Alsacreations Guidelinesalsacreations/kiwipedia | 338 | — | ~900 | Automated safety check: Pass | None |
lazzyfu/goInsight
Build, refactor, or review production-grade admin interfaces with Vue 3 + JavaScript + Ant Design Vue 4.x.
GreptimeTeam/dashboard
Generate Perses dashboards or single panels for GreptimeDB. An agent skill from GreptimeTeam/dashboard.
WangJunZzz/abp-vnext-pro
本项目的基础设施集成规则。修改 CAP 分布式事件、Hangfire、Redis、SignalR、后台任务、租户传播、事务 Outbox 或 Host 集成时使用。
JaguarJack/catch-admin
Generate database migration file for CatchAdmin module. An agent skill from JaguarJack/catch-admin.
alsacreations/kiwipedia
Guidelines techniques et conventions internes d'Alsacréations (Kiwipedia) — HTML, CSS, JavaScript, TypeScript, Vue.js, WordPress, PHP/MySQL, accessibilité, performance, SEO, RGPD, écoconception…
huagelong/devinggo
DevingGo 项目初始化与本地开发环境配置流程。用于用户询问项目初始化、开发环境搭建、依赖检查、配置文件生成、数据库迁移、本地启动后端/前端/Worker 服务、或希望 AI 大模型一步步把 DevingGo 跑起来时。适用于基于本项目 CLI、Makefile、manifest/config、hack/config、admin-ui 前端工作区的初始化排障与启动验证。
cin12211/orca-q
TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling.
cin12211/orca-q
Database performance optimization, schema design, query analysis, and connection management across PostgreSQL, MySQL, MongoDB, and SQLite with ORM integration.
cin12211/orca-q
Playwright E2E testing expert for browser automation, cross-browser testing, visual regression, network interception, and CI integration.
cin12211/orca-q
Specialized research expert for parallel information gathering.
cin12211/orca-q
OrcaQ-specific testing guide. An agent skill from cin12211/orca-q.
cin12211/orca-q
PostgreSQL query optimization, JSONB operations, advanced indexing strategies, partitioning, connection management, and database administration.
Works with
Categories
Complete guide for adding, updating, and removing tabs in the Primary Sidebar of OrcaQ. Primary Sidebar is an agent skill from cin12211/orca-q. Complete guide for adding, updating, and removing tabs in the Primary Sidebar of OrcaQ.
Primary Sidebar fits situations like: databases work in your project.
Run `npx skills add cin12211/orca-q --skill primary-sidebar -a claude-code`. Or copy the skill folder (.claude/skills/primary-sidebar in cin12211/orca-q) into .claude/skills/primary-sidebar in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cin12211/orca-q --skill primary-sidebar -a codex`. Or copy the skill folder (.claude/skills/primary-sidebar in cin12211/orca-q) into .agents/skills/primary-sidebar 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 cin12211/orca-q --skill primary-sidebar -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/primary-sidebar, .gemini/skills/primary-sidebar, .github/skills/primary-sidebar and .opencode/skills/primary-sidebar in your project.
SKILL.md names no scripts, command-line tools or credentials: Primary Sidebar 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.
Primary Sidebar 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.6k tokens (SKILL.md is roughly 10k 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 Primary Sidebar: Ant Design Vue UI (lazzyfu/goInsight, 730 stars), Greptimedb Perses Dashboard (GreptimeTeam/dashboard, 111 stars), Abp Pro Infrastructure (WangJunZzz/abp-vnext-pro, 859 stars) and Migration (JaguarJack/catch-admin, 935 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cin12211 (a GitHub user) maintains it in cin12211/orca-q, which has 224 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on September 21, 2026.
Source: cin12211/orca-q on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.