analyze-code
CommandAnalyze code quality, identify issues, and suggest improvements.
Create a guided walkthrough for a feature or workflow.
> /plugin marketplace add nimbalyst/nimbalyst> /plugin install nimbalyst-wiki@nimbalyst
packageVersion: 1.0.0 packageId: core description: Create a guided walkthrough for a feature or workflow.
Create a walkthrough guide for: {{arg1}}
Create a multi-step walkthrough that highlights UI elements and guides users through a feature. Walkthroughs appear as floating callouts attached to UI elements.
Read `docs/WALKTHROUGHS.md` for the complete guide on the walkthrough system architecture, including trigger configuration, step definitions, and testing.
Identify what feature or workflow the walkthrough should cover:
**Walkthroughs should pull content from HelpContent** - never hardcode text.
For each step target, check if HelpContent exists:
Each step needs to target a UI element. Check that targets have `data-testid`:
Create a new file in `packages/electron/src/renderer/walkthroughs/definitions/`:
// my-feature-intro.ts
import type { WalkthroughDefinition } from '../types';
import { getHelpContent } from '../../help';
// Pull content from HelpContent registry
const featureHelp = getHelpContent('my-feature-button')!;
const relatedHelp = getHelpContent('my-related-button')!;
export const myFeatureIntro: WalkthroughDefinition = {
id: 'my-feature-intro', // Unique ID (kebab-case)
name: 'My Feature Introduction', // Human-readable name
version: 1, // Increment to re-show after updates
trigger: {
screen: 'agent', // 'files' | 'agent' | '*'
condition: () => { // Optional: only show when condition is true
return document.querySelector('[data-testid="my-feature-button"]') !== null;
},
delay: 2000, // Wait for UI to settle (ms)
priority: 10, // Lower = higher priority (default: 10)
},
steps: [
{
id: 'step-1',
target: { testId: 'my-feature-button' }, // Target by data-testid
title: featureHelp.title, // From HelpContent
body: featureHelp.body,
shortcut: featureHelp.shortcut,
placement: 'right', // 'top' | 'bottom' | 'left' | 'right'
},
{
id: 'step-2',
target: { testId: 'my-related-button' },
title: relatedHelp.title,
body: relatedHelp.body,
placement: 'bottom',
visibilityCondition: () => { // Optional: skip if not visible
return document.querySelector('[data-testid="my-related-button"]') !== null;
},
},
],
};Add the export to `packages/electron/src/renderer/walkthroughs/definitions/index.ts`:
import { myFeatureIntro } from './my-feature-intro';
export const walkthroughs: WalkthroughDefinition[] = [
// ... existing walkthroughs
myFeatureIntro,
];**IMPORTANT**: Keep the walkthrough inventory up to date in `docs/WALKTHROUGHS.md`.
Update the inventory table near the top of the file with the new walkthrough:
| ID | Name | Steps | Screen | Priority | Trigger Condition | | --- | --- | --- | --- | --- | --- | | ... existing entries ... | | `my-feature-intro` | My Feature Introduction | 2 | agent | 10 | Feature button is visible |
The inventory table is the single source of truth for all walkthroughs. It includes:
Use dev helpers in the browser console:
// Reset state to see walkthrough again
window.__walkthroughHelpers.resetState()
// Start the specific walkthrough
window.__walkthroughHelpers.startWalkthrough('my-feature-intro')
// Check current state
window.__walkthroughHelpers.getState()| Field | Type | Description | | --- | --- | --- | | `id` | string | Unique identifier (kebab-case) | | `name` | string | Human-readable display name | | `version` | number | Increment to re-show to users who completed it | | `trigger.screen` | 'files' \| 'agent' \| '*' | Which mode triggers it | | `trigger.condition` | () => boolean | Additional condition (optional) | | `trigger.delay` | number | Delay before showing in ms (optional) | | `trigger.priority` | number | Lower = higher priority, default 10 | | `steps` | WalkthroughStep[] | Array of steps |
| Field | Type | Description | | --- | --- | --- | | `id` | string | Unique step identifier | | `target.testId` | string | Target element's data-testid (preferred) | | `target.selector` | string | CSS selector fallback | | `title` | string | Step title (from HelpContent) | | `body` | string | Step description (from HelpContent) | | `shortcut` | string | Keyboard shortcut (optional) | | `placement` | 'top' \| 'bottom' \| 'left' \| 'right' | Callout position | | `visibilityCondition` | () => boolean | Skip step if returns false (optional) | | `action` | { label, onClick } | Action button (optional) |
Nimbalyst - The open-source visual workspace for Claude Code, Codex, and OpenCode. Run multiple coding agents in parallel, edit their work visually in markdown, mockups, and diagrams, and track tasks. Free, MIT-licensed desktop app for macOS, Windows, Linux, with mobile companion for iOS and Android.
Analyze code quality, identify issues, and suggest improvements.
Audit recent AI coding sessions to find repeated mistakes, speed losses, and missed Nimbalyst tool usage — then propose harness…
Triage pnpm audit findings and produce a prioritized, supply-chain-cautious package-update plan, then apply approved batches
Survey recently triaged GitHub issues, propose the ones safe to fix without a product decision, and fan the selected ones out to…
Gather details and draft an actionable bug report for developers.
Shortcut for "continue working" — pick the work in flight back up exactly where it stopped and keep going until it is done or…