Real-Time Validation & Diagnostics
The extension provides real-time validation feedback as you edit, powered by strata validate. Errors appear as squiggly underlines in the editor and in VS Code’s Problems panel.
When Validation Runs
Validation is triggered by:
On save (default: enabled)
Every time you save a YAML file, the extension runs
strata validateResults appear in the Problems panel immediately
While typing (default: disabled)
If
strata.validateOnType: true, the extension validates after 1.5 seconds of inactivityUseful for tight feedback loops, but can be chatty if you have slow hardware
On demand
Command Palette → “Strata: Validate Current File” (validates active editor)
Command Palette → “Strata: Validate All Files” (scans workspace with progress bar)
Right-click file in Files tree → “Validate”
CodeLens → click “Validate” above a YAML document
Problems Panel
Open the Problems panel with Ctrl+Shift+M (or Cmd+Shift+M on Mac). All strata validation errors appear here.
PROBLEMS
─────────────────────────────────────────────────
Strata ❌ 3 errors, ⚠️ 1 warning
config/main.yaml
3:5 Error Unknown field 'specc' (did you mean 'spec'?)
12:0 Error Missing required field 'provisioner'
deploy/production.yaml
8:2 Warning Deprecated field 'replicas' — use 'instances' instead
42:1 Error @infra/modules/api.yaml not found in repository 'infra'
Error anatomy:
config/main.yaml
3:5 Error Unknown field 'specc'
↑ ↑ ↑
file line:col severity + message
Click an error to jump to that line in the editor.
Error Details
Hover over a red squiggle to see full error details:
Unknown field 'specc' (did you mean 'spec'?)
[Phase 1] Structural validation (Pydantic)
Field: spec
Got value: {...}
The tooltip shows:
Error message — what’s wrong
Phase — validation phase (Phase 1 = structural, Phase 2 = cross-reference/dynamic)
Field — exact field path that failed (e.g.,
spec.provisioner)Got value — the actual value that didn’t validate (if known)
Quick Fixes
When available, VS Code shows a Quick Fix bulb (💡) next to errors.
Common quick fixes:
Typo suggestion
Error: “Unknown field ‘replicas’ (did you mean ‘instances’?)”
Fix: “Rename to ‘instances’” → one-click fix
Remove unknown field
Error: “Unknown field ‘foo’ — extra fields are not allowed”
Fix: “Remove unknown field ‘foo’” → deletes the line
Add missing field
Error: “Missing required field ‘provisioner’”
Fix: “Add ‘provisioner:’ line” → inserts the field
Access quick fixes via:
Click the 💡 icon that appears when hovering over a squiggle
Ctrl+.(orCmd+.on Mac) when your cursor is on the error line
Validation Phases
Strata validation happens in two phases:
Phase 1: Structural (Pydantic)
Checks the YAML against the schema:
Unknown fields (
extra="forbid")Type mismatches (e.g., string instead of list)
Missing required fields
Enum value violations
These run first and are always fast.
Phase 2: Dynamic (Cross-Reference & Profile)
Checks references and profile-specific rules:
@repo_name/path/file.yamlreferences resolve correctlyReferenced files are valid
Secret references exist
Environment variables are available in the active profile
These can be slower because they involve file I/O and profile state.
Validation Coverage
Only strata YAML documents are validated. The extension identifies them by checking for apiVersion: strata.* in the first 20 lines.
Valid strata prefixe: strata.huybrechts.xyz/v1
If a YAML file doesn’t have one of these prefixes, it’s not validated by strata (though the YAML extension may still check it).
File Decorations
In the Explorer file tree, validated files show badges:
✓ config/main.yaml ← green checkmark (validated, no issues)
⚠️ config/test.yaml ← yellow warning badge
❌ deploy/prd.yaml ← red error badge
Badges propagate to parent folders, so a single error bubbles up the tree.
Toggle with strata.showFileDecorations setting.
Error Change Notifications
When you save a file and validation runs:
New errors → notification appears: “2 new validation errors in config/main.yaml”
Errors fixed → notification appears: “Validation passed for deploy/prd.yaml”
No change → silent (no notification)
Notifications are only triggered by on-save validation, not by manual validation commands (to avoid spam).
Configuration
strata.validateOnSave— Run validation on file save (default:true)strata.validateOnType— Run validation with 1.5s debounce while typing (default:false)
Both can be toggled in Settings without reloading the extension.
Troubleshooting
“Strata validation failed: strata: command not found”
→ The CLI is not in your $PATH. Fix:
Install strata:
pip install strataOr set
strata.cliPathto the full path (e.g.,/home/user/.local/bin/strata)
“Validation passed but I see errors”
→ You may have other linters enabled (ESLint, YAML extension). Check the “Source” column in the Problems panel to see which tool reported each error.
Validation is slow
→ Phase 2 (cross-reference) validation can be slow with many files. Try:
Disable
validateOnTypeif it’s onUse on-demand validation (Command Palette → Validate Current File) instead of on-save
Check
strata audit list --lastto see how long the CLI call took
No validation errors but I expect some
→ The file might not be recognized as a strata document. Check:
Does it have
apiVersion: strata.*in the first 20 lines?Is it in the workspace root or a known repository?
Click “Validate Current File” to force validation (not just on-save)