Agent skill

create-prompt

Create prompts for sidecar workspaces. Covers prompt structure (name, ticketMode, body), template variables (ticket with fallbacks), config file locations (global vs project), and scope overrides. Use when creating or modifying prompts in sidecar config files.

Stars 940
Forks 70

Install this agent skill to your Project

npx add-skill https://github.com/marcus/sidecar/tree/main/.claude/skills/create-prompt

SKILL.md

Creating Prompts

Prompts are reusable templates that configure the initial context for agents when creating workspaces. They help standardize common workflows like code reviews, bug fixes, or feature implementation.

Config File Locations

Scope Path Override Priority
Global ~/.config/sidecar/config.json Lower
Project .sidecar/config.json (in project) Higher

Project prompts override global prompts with the same name (case-sensitive match).

Config Format

json
{
  "prompts": [
    {
      "name": "Code Review",
      "ticketMode": "optional",
      "body": "Do a detailed code review of {{ticket || 'open reviews'}}.\nFocus on correctness, edge cases, and test coverage."
    }
  ]
}

Prompt Fields

name (required)

Display name shown in the prompt picker. Keep it concise.

ticketMode (optional)

Controls how the ticket/task field behaves:

Mode Behavior
optional Task field shown, can be empty (default)
required Task must be selected before creating
none Task field is hidden, prompt stands alone

body (required)

The prompt text sent to the agent. Supports template variables. Use \n for newlines.

Template Variables

{{ticket}}

Expands to the selected task ID. Returns empty string if no task selected.

json
"body": "Fix issue {{ticket}}."
// With task td-abc123: "Fix issue td-abc123."
// Without task: "Fix issue ."

{{ticket || 'fallback'}}

Expands to task ID, or the fallback text if no task selected.

json
"body": "Review {{ticket || 'all open items'}}."
// With task td-abc123: "Review td-abc123."
// Without task: "Review all open items."

Only single quotes work for fallback text:

  • {{ticket || 'default'}} -- works
  • {{ticket || "default"}} -- does NOT work

Examples

Task-Required Workflow

json
{
  "name": "Implement Task",
  "ticketMode": "required",
  "body": "Begin work on {{ticket}}. Use td to track progress.\nRead the task description carefully before starting."
}

Standalone Workflow

json
{
  "name": "Run Tests",
  "ticketMode": "none",
  "body": "Run the full test suite. Fix any failures.\nReport a summary when complete."
}

Flexible Workflow

json
{
  "name": "Code Review Session",
  "ticketMode": "optional",
  "body": "Start a review session for {{ticket || 'open reviews'}}.\nCreate td tasks for any issues found."
}

Backlog Refinement

json
{
  "name": "Backlog Refinement",
  "ticketMode": "none",
  "body": "Start a backlog refinement session. Use td to find all tasks in the backlog starting with the oldest. For each task:\n\n1. Determine relevance - has it been implemented, is it still needed? If not relevant, comment on the task and close it. If questionable, leave open with notes.\n\n2. Update tasks with out-of-date code references to reflect the current state of the codebase.\n\nUse sub-agents to analyze multiple tasks in parallel. Present a report of findings and changes when complete."
}

Default Prompts

If no config file exists, the app creates one with 5 built-in templates:

  • Begin Work on Ticket (required)
  • Code Review Ticket (required)
  • Plan to Epic (No Impl) (none)
  • Plan to Epic + Implement (none)
  • TD Review Session (none)

Press d in the prompt picker to install defaults if none are configured.

Scope Indicators

In the prompt picker, prompts show their source:

  • [G] - Global prompt (from ~/.config/sidecar/)
  • [P] - Project prompt (from .sidecar/)

Important Notes

  • Prompt names must match exactly (case-sensitive) for project overrides
  • Only single quotes work in fallback syntax
  • ticketMode defaults to optional if omitted
  • Config files are loaded when creating a workspace; restart the app to reload
  • Keep names short (they appear in a table with limited width)
  • Use \n for newlines in prompt bodies

Expand your agent's capabilities with these related and highly-rated skills.

marcus/sidecar

merge-strategy

Git merge strategies, conflict resolution approaches, merge vs rebase recommendations, and branch integration patterns in sidecar. Covers pull strategy menu, direct merge workflow, squash merge, commit message templates, configurable defaults, and protected branches. Use when working on git merge features or making decisions about merge strategies.

940 70
Explore
marcus/sidecar

keyboard-shortcuts

Reference for keyboard shortcut implementation, keybinding registration, shortcut parity with vim and other TUI tools, and the complete shortcut assignment table across all sidecar plugins. Use when adding or modifying keyboard shortcuts, checking shortcut assignments, resolving key conflicts, or assessing alignment with vim conventions.

940 70
Explore
marcus/sidecar

profile-memory

Profile memory usage in sidecar using Go pprof, system tools, and heap analysis. Covers identifying memory leaks, goroutine leaks, file descriptor accumulation, and CPU profiling. Use when investigating memory issues, profiling performance, debugging memory leaks, or diagnosing unresponsive plugins.

940 70
Explore
marcus/sidecar

create-theme

Create custom color themes for Sidecar, including base theme selection, color overrides, gradient borders, tab styles, per-project themes, community themes, and programmatic theme registration. Use when creating or modifying themes, adjusting UI appearance, or debugging color/style issues. See references/palette-reference.md for the full color palette with all keys and per-theme values.

940 70
Explore
marcus/sidecar

feature-flags

Creating and using feature flags in sidecar for gating experimental functionality. Covers flag registration, checking flags in code, config file and CLI overrides, and priority resolution. Use when adding feature flags, toggling features, or gating new functionality behind flags.

940 70
Explore
marcus/sidecar

drag-pane

Drag-and-drop pane resizing implementation for two-pane plugin layouts. Covers mouse event handling via the internal/mouse package, hit region registration, drag delta calculation, width clamping, state persistence, and pane layout management. Use when working on pane resizing, drag interactions, layout management, or adding drag-to-resize to a new plugin.

940 70
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results