Skip to content

VS Code Extension Overview

The SpecTacular Dashboard is a VS Code extension that provides rich markdown preview, WYSIWYG editing, and specification management.

Extension ID: spectacular-dashboardCurrent Version: 1.6.6

Features

📊 Markdown Dashboard

Preview specifications with enhanced rendering:

  • Status tags - #status/done, #status/pending render as colored badges
  • Wikilinks - [[filename]] clickable navigation between documents
  • Syntax highlighting - Code blocks with language detection
  • Frontmatter display - YAML metadata shown prominently
  • Tables - Rich table rendering
  • Task lists - Checkbox support with visual indicators
  • Images - Embedded image support

✏️ WYSIWYG Editor

Rich text editing powered by TipTap:

  • Formatting toolbar - Bold, italic, headings, lists
  • Tables - Create and edit tables visually
  • Task lists - Add checkboxes with a click
  • Links - Insert markdown links
  • Code blocks - Syntax highlighted editing
  • Frontmatter preservation - YAML metadata maintained
  • Custom extensions - Status tags and wikilinks preserved

📁 Specs Tree View

Navigate specification files in the sidebar:

  • Hierarchical view - Folder structure
  • Markdown files only - Filters .md and .markdown
  • Click to open - Opens file in dashboard
  • Status indicators - Visual status badges
  • Modified indicators - Shows unsaved changes (●)

🔄 Auto Task Status

Automatic status updates based on acceptance criteria:

  • Checkbox monitoring - Detects when all criteria are checked
  • Status updates - Automatically sets status: done
  • Table updates - Updates parent tasks.md table
  • Notifications - Status bar notifications on change

⚡ Real-Time Watching

File system monitoring with debouncing:

  • External changes - Detects git pull, file edits
  • Debounced updates - 300ms delay to batch changes
  • Conflict detection - Warns when local changes exist
  • Automatic reload - Refreshes unmodified files

🎨 Theme Integration

Matches VS Code theme automatically:

  • Light mode - Clean, readable light theme
  • Dark mode - Eye-friendly dark theme
  • Automatic switching - Follows VS Code theme changes
  • Custom styling - Tailwind CSS for consistency

Installation

See Installation Guide for detailed instructions.

Quick install:

  1. Download VSIX from GitHub Releases
  2. In VS Code: Extensions → ... → Install from VSIX
  3. Reload VS Code

Getting Started

Open the Dashboard

  1. Click the SpecTacular icon in the Activity Bar (left sidebar)
  2. Click "Open Dashboard" in the welcome view
  3. Dashboard opens in editor panel

Keyboard shortcut: Configure in VS Code settings

Via Tree View:

  1. Expand folders in Specs Tree
  2. Click file to open
  3. Status badges show completion state

Via Wikilinks:

  1. Click [[filename]] in preview
  2. Jumps to linked document
  3. Works with relative paths

Via Editor:

  1. Open markdown file in VS Code editor
  2. Dashboard auto-previews file
  3. Shows real-time updates

Edit Files

WYSIWYG Mode:

  1. Open file in dashboard
  2. Click Edit button
  3. Use formatting toolbar
  4. Save with Ctrl+S

Text Mode:

  1. Edit in VS Code editor
  2. Dashboard updates automatically
  3. Preserves all markdown syntax

Manage Tasks

Create Task:

markdown
---
type: task
status: pending
---

# Task Title

## Acceptance Criteria
- [ ] First criterion
- [ ] Second criterion
- [ ] Third criterion

Auto-Status:

  1. Check all criteria: - [x]
  2. Save file
  3. Status automatically updates to done
  4. Parent tasks.md table updates

Configuration

Configure the extension in VS Code settings (Ctrl+,):

Dashboard Settings

json
{
  "spectacular.dashboard.theme": "auto",
  "spectacular.dashboard.showTreeView": true,
  "spectacular.dashboard.autoSave": false
}

File Watching

json
{
  "spectacular.fileWatch.enabled": true,
  "spectacular.fileWatch.debounceDelay": 300,
  "spectacular.fileWatch.exclude": [
    "**/node_modules/**",
    "**/.git/**"
  ]
}

Status Tags

json
{
  "spectacular.statusTags.enabled": true,
  "spectacular.statusTags.colors": {
    "done": "#68d391",
    "pending": "#4a9eff",
    "blocked": "#f56565",
    "in-progress": "#f6ad55"
  }
}

Commands

Access via Command Palette (Ctrl+Shift+P):

CommandDescription
Spectacular: Open DashboardOpen dashboard panel
Spectacular: Open Dashboard to SideOpen beside current editor
Spectacular: Refresh TreeRefresh specs tree view
Spectacular: Reveal in TreeHighlight current file in tree
Spectacular: Reveal Specs FolderOpen specs folder in explorer

Keyboard Shortcuts

ShortcutAction
Ctrl+SSave current file
Alt+LeftNavigate back
Alt+RightNavigate forward
Mouse Button 4Navigate back
Mouse Button 5Navigate forward

Status Tags

Visual indicators for task and feature status:

TagDisplayUse For
#status/done🟢 Green checkmarkCompleted tasks
#status/complete🟢 Green checkmarkFinished features
#status/pending⚪ Gray circleNot started
#status/in-progress🔵 Blue half-circleCurrently working
#status/blocked🔴 Red XBlocked items
#status/skipped⏭️ Gray arrowIntentionally skipped

Link between documents using double brackets:

markdown
See the [[implementation-plan]] for details.
Related: [[task-01-setup]], [[task-02-implement]]

# Relative paths
Depends on: [[../database-setup/schema]]

Frontmatter Support

YAML frontmatter is automatically preserved:

markdown
---
type: spec
status: pending
created: 2024-12-22
priority: high
assignee: @username
---

# Specification Title

The extension:

  • ✅ Displays frontmatter prominently
  • ✅ Preserves during WYSIWYG editing
  • ✅ Uses for status tracking
  • ✅ Validates YAML syntax

Troubleshooting

Extension not activating

Solution: Check that your workspace contains:

  • .spectacular/ directory, OR
  • Files in specs/ directory

The extension activates when either is detected.

Dashboard not showing files

Solution:

  1. Check Specs Tree view for files
  2. Verify files have .md or .markdown extension
  3. Refresh tree view (Ctrl+Shift+P → Refresh Tree)

File watching not working

Solution:

  1. Check file watching is enabled in settings
  2. Verify workspace folder is open (not single file)
  3. Check VS Code file watcher limits:
    json
    {
      "files.watcherExclude": {
        "**/node_modules/**": false
      }
    }

WYSIWYG editor not loading

Solution:

  1. Check browser console: View → Developer Tools
  2. Look for CSP errors or script errors
  3. Try opening in read-only mode first
  4. Reload VS Code window

Status not auto-updating

Solution:

  1. Verify file is in tasks/ directory
  2. Check frontmatter has type: task
  3. Ensure acceptance criteria section exists
  4. Check all criteria use checkbox format: - [ ] or - [x]

Advanced Features

Custom Themes

Create custom CSS for dashboard:

  1. Create .vscode/spectacular.css in workspace
  2. Extension loads custom styles
  3. Use VS Code CSS variables

Example:

css
:root {
  --status-done: #10b981;
  --status-pending: #3b82f6;
}

Integration with Claude Code

The extension works seamlessly with Claude Code:

  1. Use /spec command to create specifications
  2. Edit in WYSIWYG editor
  3. Use /tasks to break down specs
  4. Status updates automatically
  5. Navigate via wikilinks

File Tree Filters

Customize which files appear in tree:

json
{
  "spectacular.tree.include": [
    "**/*.md",
    "**/*.markdown"
  ],
  "spectacular.tree.exclude": [
    "**/node_modules/**",
    "**/.git/**",
    "**/dist/**"
  ]
}

Performance Tips

Large Workspaces

For workspaces with many files:

  1. Exclude unnecessary folders in file watcher
  2. Disable auto-preview for faster navigation
  3. Use tree view instead of file explorer
  4. Close unused tabs to free memory

Memory Usage

The extension is lightweight:

  • Dashboard: ~10-20MB
  • File watching: ~5MB
  • Tree view: ~2-5MB

Total: ~20-30MB typical

Next Steps

Released under the MIT License.