ccc-browse · git:20260717.b6c4cfe · 2026-07-17 · sha256 038382c6bffe2524
ccc-browse git:20260717.b6c4cfeA
Immutable. This exact content never changes and is served at /api/v1/blob/038382c6bffe2524.
---
name: ccc-browse
description: "Visual, filterable catalog of every CC Commander skill, agent, and command. Cascades from broad category picker into 4-at-a-time detail cards. Use when the user types…"
allowed-tools:
- Read
- Glob
- Grep
- Bash
- Artifact
- AskUserQuestion
argument-hint: "[domains | workflows | agents | all]"
---
# /ccc-browse — Skill + Agent Catalog
A click-first browser for the entire CC Commander surface: 11 CCC domains, 9 workflow skills, 22 specialist agents, plus meta skills. User never scrolls a wall of markdown — we cascade through `AskUserQuestion` 4-at-a-time.
## Response shape (EVERY time)
Output exactly these three sections in order:
### 1. Brand header (one line, markdown)
```
**CC Commander** · v{VERSION} · Browser · 60 skills · 22 agents · 11 domains
```
Read `VERSION` from `${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json`.
### 2. Context strip (one paragraph, markdown)
Count categories live with a single Bash call:
- `ls ${CLAUDE_PLUGIN_ROOT}/skills/ | wc -l` → total skills
- `ls ${CLAUDE_PLUGIN_ROOT}/agents/*.md | wc -l` → agents
- `ls ${CLAUDE_PLUGIN_ROOT}/skills/ccc-* -d 2>/dev/null | wc -l` → ccc-* skills
Render:
> 🧭 Catalog: `<N>` skills · `<M>` agents · `<K>` CCC domains · filter by category below.
### 3. The picker — `AskUserQuestion` with the Cockpit + 4 categories
**Never dump a numbered list. Never ask the user to type a name.** Call `AskUserQuestion`:
```
question: "What do you want to browse?"
header: "CC Commander catalog"
multiSelect: false
options:
- label: "🎛️ Open the Commander Cockpit — the whole catalog, clickable"
description: "Generate and publish the searchable, offline catalog as a living Artifact page."
preview: "Every Commander skill, agent, idea, and prompt pattern in one private client-side page."
- label: "🎯 Domains (11)"
description: "MEGA skills — design, marketing, saas, devops, seo, testing, security, data, research, mobile, makeover."
preview: "Each domain bundles 8-45 sub-skills behind one entry point. Pick one to drill in."
- label: "🛠️ Workflows (9)"
description: "Step-by-step skills — plan, build, review, ship, start, learn, xray, linear, fleet."
preview: "These are the click-first workflows you'll use 80% of the time."
- label: "🤖 Agents (15)"
description: "Specialist personas — architect, builder, debugger, reviewer, qa, security, designer, devops, pm, writer, researcher, data, content, perf, fleet."
preview: "Each agent has a persona voice. Delegate to one from any /ccc flow."
- label: "🗺️ Show everything as grid"
description: "One-shot overview — sorted table of all skills + agents with one-line descriptions."
preview: "No cascading. Dump once and let the user scan. Use when they're window-shopping."
```
Recommendation (⭐):
- User asks for the full, visual, searchable, or offline catalog → ⭐ "🎛️ Open the Commander Cockpit — the whole catalog, clickable"
- First-time browser (no prior `/ccc-browse` use in session) → ⭐ "Workflows (9)" — most actionable
- User came from `/ccc-start` → ⭐ "Domains (11)"
- Argument `all` passed → skip picker, go straight to grid
## Handle the selection
### Commander Cockpit → generate and publish the living page
1. Use the same stable path on every run: `<scratchpad>/commander-cockpit.html`. Do not add timestamps or alternate filenames; republishing the same file preserves the living page URL.
2. From the CC Commander repo root, run:
```bash
node scripts/build-cockpit.mjs --out <scratchpad>/commander-cockpit.html
```
3. Publish that exact file with the Artifact tool using:
- title: `Commander Cockpit`
- favicon: `🎛️`
- description: `Every Commander skill, agent, idea and prompt pattern — clickable, searchable, offline.`
- capabilities: `{downloads: true}` — enables the ⬇ Save button for edited agent profiles; the page feature-detects this capability and hides the button elsewhere.
4. Say that the page is fully client-side and nothing leaves the page. Republish the same file path after Commander upgrades to refresh the catalog while keeping the same URL.
The generator ships in the CC Commander repo. For marketplace-installed users, resolve the repository containing `scripts/build-cockpit.mjs` before running it. If `scripts/` or the generator is absent, say so and fall back to the existing category browse flow below; do not fabricate a Cockpit artifact.
### Domains (11) → cascade
Read `${CLAUDE_PLUGIN_ROOT}/skills/` glob for `ccc-<name>` directories excluding meta (`ccc`, `ccc-start`, `ccc-browse`, `ccc-plan`, etc.).
First `AskUserQuestion` (4 of 11):
```
- 🎨 ccc-design · 41 sub-skills · UI/UX, animation, a11y
- 📢 ccc-marketing · 46 sub-skills · CRO, content, SEO, growth
- 💼 ccc-saas · 21 sub-skills · auth, billing, multi-tenant
- ⋯ Next 4 domains
```
Second `AskUserQuestion` (4 of 11):
```
- 🚀 ccc-devops · 21 sub-skills · CI/CD, deploys, infra
- 🔎 ccc-seo · 20 sub-skills · technical + AI search
- 🧪 ccc-testing · 15 sub-skills · TDD, E2E, coverage
- ⋯ Next 3 domains
```
Third `AskUserQuestion` (3 of 11 + back):
```
- 🔐 ccc-security · 8 sub-skills · OWASP, secrets, CVE
- 📊 ccc-data · 8 sub-skills · SQL, ETL, viz
- 🔬 ccc-research · 8 sub-skills · competitive, lit review
- ↩️ Back to categories
```
(One more pass for ccc-mobile + ccc-makeover.)
On pick → invoke that domain's skill (e.g. `ccc-design`) which runs its own sub-picker.
### Workflows (9) → cascade
Workflows = the click-first skills. Cascade 4-at-a-time:
First picker:
```
- 🚀 /ccc-start · first-run onboarding
- 📋 /ccc-plan · feature planning flow
- 🔨 /ccc-build · scaffold web/API/CLI/mobile
- 🔍 /ccc-review · audit diff/security/perf
```
Second picker:
```
- 🚢 /ccc-ship · deploy + PR workflow
- 🎓 /ccc-learn · extract patterns from session
- 🩻 /ccc-xray · full project health scorecard
- 📌 /ccc-linear · Linear issue board
```
Third picker:
```
- ⚙️ /ccc-fleet · parallel agent batch work
- ↩️ Back to categories
```
On pick → invoke the skill inline.
### Agents (15) → cascade
Read `${CLAUDE_PLUGIN_ROOT}/agents/*.md` frontmatter. Cascade 4-at-a-time across 4 pickers:
Pass 1: architect, builder, debugger, reviewer
Pass 2: qa-engineer, security-auditor, performance-engineer, designer
Pass 3: devops-engineer, product-manager, technical-writer, researcher
Pass 4: data-analyst, content-strategist, fleet-worker, ↩️ Back
Each option:
- `label: "<emoji> <name>"`
- `description: "<first sentence of agent's frontmatter description>"`
- `preview: "Best for: <one-line use case>. Model: <opus|sonnet>. Trigger: /ccc-<flow>."`
On pick → offer two actions via second `AskUserQuestion`:
```
- "Delegate a task to <agent> now" → prompts for task, calls Agent tool
- "Show me the full persona definition" → Read the .md file, render it
- "Which flows use this agent?" → Grep for the agent name in skills/
- "↩️ Back"
```
### Show everything as grid → one-shot dump
Render a single markdown table, sorted alphabetically:
```markdown
| Type | Name | One-liner |
|------|------|-----------|
| 🤖 agent | architect | System design, trade-offs, tech selection |
| 🎯 domain | ccc-design | 41 skills — UI/UX, animation, a11y |
| 🛠️ workflow | ccc-build | Scaffold web/API/CLI/mobile from spec |
| ... | ... | ... |
```
After the grid, one `AskUserQuestion` with 4 follow-ups: "Launch one" / "Filter by keyword" / "Browse categories instead" / "Done".
## Anti-patterns — DO NOT do these
- ❌ Render a single markdown list with 30+ rows and ask the user to type a name
- ❌ Dump raw HTML in code blocks expecting artifact rendering
- ❌ Output ASCII banners or box-drawing tables for the catalog
- ❌ Put more than 4 options in a cascade `AskUserQuestion` — the five-option root picker is the sole exception; always include a "Back" option on cascades
- ❌ Read every agent .md eagerly up front — read on demand only
- ❌ Reference legacy CLI browse commands — this is Desktop-plugin only
## Brand rules
- **Always read `VERSION` from plugin.json** — never hardcode.
- **One-line descriptions only** in picker options — detail goes in the `preview` field.
- **Back option on every cascade past level 1** — lets users un-dive without restarting.
- **Counts always live** — read from filesystem, never hardcode "39 sub-skills" if the count can shift.
## Dispatch after selection
After a user picks any skill or agent, the handler:
1. Reads the SKILL.md (or agent .md) frontmatter
2. Echoes one paragraph of what's about to happen
3. Invokes the skill/agent inline
Never require the user to leave `/ccc-browse` and type another slash command. We stay in-flow.
## Tips for the agent executing this skill
1. Parallel the three count Bash calls into one. Saves a turn.
2. When cascading, maintain a simple state in your responses: "Page 1 of 3 · 4 of 11 shown".
3. If `argument-hint` is `domains`, `workflows`, `agents`, or `all`, skip the root picker and jump to that path.
4. Agent descriptions are in `${CLAUDE_PLUGIN_ROOT}/agents/*.md` frontmatter — read the whole file only on user drill-in.
---
**Bottom line:** one-click Cockpit + four top-level categories → cascaded 4-at-a-time pickers → user drills in → we dispatch to the target skill. No scrolling, no typing, no numbered lists.
---
> ⚙️ **Fable contract:** plan before build · verifier ≠ worker · prove before alarm · loops need gates · leave durable state — `rules/fable-method.md`