Features

Activity Bar

The extension adds a Strata icon to the Activity Bar on the left. Click it to open the Strata panel.

Status Bar

At the bottom of the editor, a status bar item shows:

$(cloud) strata: dev | Phase 5/8    ← healthy workspace
$(warning) strata: 2 issues          ← degraded (warnings/errors)
$(error) strata: broken              ← broken (major issues)

Click it to open the Guide panel. The icon changes color based on workspace health.

Tree Views

Workspace

Shows workspace health, active profile, readiness, and repositories.

  • Health β€” current status (🟒 HEALTHY, 🟑 DEGRADED, πŸ”΄ BROKEN)

  • Profile β€” active profile and list of all profiles

  • Readiness β€” phases complete, next step with command hint

  • Repositories β€” list of registered configuration repositories

Files

All strata YAML documents grouped by kind with validation badges:

πŸ“„ Configurations
  config/main.yaml     βœ… (validated, no issues)
  config/test.yaml     ⚠️ (2 warnings)
πŸ“„ Deployments
  deploy/prd.yaml      ❌ (1 error)

Click a file to open it. Right-click for context menu (validate, build, deploy, show schema).

Repositories

List of configured configuration repositories with clone status, branch, and URL.

πŸ“¦ infra
    Branch: main
    Status: βœ… cloned
πŸ“¦ modules
    Branch: dev
    Status: ⚠️ not cloned

Tools

Availability and version of external tools (terraform, docker, helm, etc.):

🟒 terraform    1.9.0
🟒 docker       27.0.1
πŸ”΄ helm         (not found)

Command Palette

Press Ctrl+Shift+P (or Cmd+Shift+P on Mac) to open the Command Palette. Type β€œstrata” to see all available commands:

  • Strata: Initialize Workspace β€” strata sln init

  • Strata: Validate Current File β€” validate active editor file

  • Strata: Validate All Files β€” scan workspace and validate all strata YAML

  • Strata: Build (Dry Run) β€” strata build run --dry-run

  • Strata: Build β€” strata build run

  • Strata: Deploy (Dry Run) β€” strata deploy run --dry-run

  • Strata: Deploy β€” strata deploy run

  • Strata: Show Guide β€” open readiness checklist

  • Strata: Switch Profile β€” quick-pick to activate a different profile

  • Strata: Export Schemas β€” export and wire JSON schemas to .vscode/settings.json

  • Strata: Open Console β€” open strata interactive console

  • Strata: Show Dependency Graph β€” visualize document relationships

Diagnostics (Problems Panel)

Real-time validation runs on:

  • File save β€” always (if validateOnSave: true)

  • While typing β€” debounced 1.5s (if validateOnType: true)

  • On demand β€” Command Palette β†’ β€œStrata: Validate Current File”

Errors appear as red squiggles in the editor and in the Problems panel (Ctrl+Shift+M).

Each error shows:

  • The exact field path (e.g., spec.provisioner)

  • The error message

  • The value that caused it (if known)

  • Phase information (Phase 1 = structural, Phase 2 = cross-reference)

Quick fixes (when available):

  • β€œDid you mean provisioner?” for typos

  • β€œRemove unknown field” for extra fields (due to extra="forbid")

CodeLens

Inline actions appear above YAML documents:

# [Validate] [Schema] [Build DryRun] [Deploy DryRun] [Guide]
apiVersion: strata.huybrechts.xyz/v1
kind: deployment
  • Validate β€” runs strata validate and shows results

  • Schema β€” opens JSON schema for this kind in a side panel

  • Build DryRun β€” runs strata build run --dry-run in terminal

  • Deploy DryRun β€” runs strata deploy run --dry-run in terminal

  • Guide β€” opens the readiness checklist

File Decorations

Validation badges appear directly in the Explorer file tree:

βœ“  config/main.yaml         ← validated, no issues
⚠️  config/test.yaml        ← warnings
❌ deploy/prd.yaml         ← errors

Badges propagate to parent folders, so a single error in a deeply nested file bubbles up to the root.

Toggle this feature with strata.showFileDecorations setting.

Hover and Go-to-Definition

Cross-references (@repo_name/path/file.yaml) are interactive:

  • Hover β€” shows resolved absolute path and document kind

  • Ctrl+Click β€” opens the referenced file

  • F2 β€” rename the reference across all files

Snippet Provider

When editing a YAML file, type strata: to trigger snippets:

strata:workspace     β†’ full workspace boilerplate
strata:configuration β†’ configuration document
strata:deployment    β†’ deployment document
strata:module        β†’ module (with helm/compose/script choice)
...

Snippets are generated from JSON schemas, so they stay in sync with your version.

Dependency Graph

Open Strata: Show Dependency Graph (Command Palette) to visualize how documents relate.

Nodes are color-coded by kind:

  • πŸ”· configuration

  • πŸ”Ά deployment

  • πŸ”Έ module

  • etc.

Edges show @repo/path references. Click a node to open the file.

Chat Integration

In Copilot Chat, type @strata followed by:

  • Freeform question β€” e.g., @strata what's the current status? β†’ LLM gets workspace context

  • /status β€” table with health, profile, readiness, issues, next step

  • /validate β€” validate current or named file

  • /guide β€” show the 8-phase readiness checklist

  • /build β€” list deployment files with build commands

  • /deploy β€” list deployment files with deploy commands

Follow-ups are suggested after each response.

Auto-Refresh

The extension watches .strata/solution.json for external changes. If the file is created, modified, or deleted outside VS Code (e.g., from the CLI in another terminal), all tree views, status bar, and other UI elements refresh automatically.

Walkthrough

When a workspace has no .strata/ directory, VS Code offers a Walkthrough (Help β†’ Welcome β†’ Walkthroughs). The walkthrough guides you through:

  1. Initialize workspace

  2. Wire YAML schemas

  3. Check readiness

Each step has a button to run the command and a checkmark when complete.

Task Provider

Strata operations are registered as VS Code tasks. Open .vscode/tasks.json to add custom tasks:

{
  "type": "strata",
  "command": "validate",
  "file": "config/main.yaml"
}

or

{
  "type": "strata",
  "command": "build",
  "file": "deploy/prd.yaml",
  "dryRun": true,
  "stage": "infrastructure"
}

Run with Ctrl+Shift+B (or via Command Palette β†’ β€œTasks: Run Task”).