About ValidateYAML

A layered YAML validation workbench. Everything runs in your browser: no backend, no account, no uploads.

Engines and budgets

Engine 1.0.0. YAML parsing: yaml (eemeli) 2.9.1. JSON Schema: @cfworker/json-schema 4.1.3 (interpreter, no code generation). Validation runs in a Web Worker that is terminated after 5 seconds; a terminated run is reported as incomplete. Input limit 10 MB; alias expansion limited to 100,000 extra nodes; projection to 1,000,000 nodes; findings list capped at 5,000 (truncation makes the run incomplete).

Performance numbers are targets, not measured guarantees. In the unit-test environment a 1 MiB file with a schema validates in roughly 1–2.5 seconds on a shared container.

Feature status

Requirement IDs follow the product specification. Labels: NATIVE (implemented in-browser), EXPLAIN (explanatory content), APPROX (deliberately partial or heuristic), UNSUPPORTED (not available).

IDRequirementStatusLabelNotes
VY-001Source import/encodingDoneNATIVEUTF-8/16 with BOM detection, invalid-byte offsets, printable-set checks; original bytes kept for download. UTF-32 reported as unsupported.
VY-002YAML version/schema choiceDoneNATIVE1.2 core/JSON/failsafe and 1.1; merge-key toggle; %YAML directive overrides surfaced; Types tab shows effective resolution.
VY-003Syntax validationDoneNATIVEeemeli/yaml document API errors and warnings with exact ranges; multiple findings per file.
VY-004Duplicate key checksDoneNATIVEEvery occurrence listed; reviewed keep-last fix.
VY-005Tag/alias safetyDoneNATIVENo constructors; language tags flagged; unresolved/cyclic aliases; alias expansion bounded (100k extra nodes).
VY-006Multi-document validationDoneNATIVEPer-document statuses in syntax and schema layers; empty docs reported as not assessed.
VY-007Type inspectionDoneNATIVEStyle, tag, resolved type and other-version reading for each scalar.
VY-008Local schema importDoneNATIVEJSON/YAML schema paste/open; dialect detection 2020-12/2019-09/07/06*/04.
VY-009Local reference resolverDoneNATIVERemote $ref never fetched; URI → local schema mapping prompt.
VY-010Required/type/enum/range rulesDoneNATIVEPublished vocabulary; $dynamicRef/$dynamicAnchor and unknown keywords yield incomplete.
VY-011Array/object constraints mapped to spansDoneNATIVEPointer→range map incl. alias and merge provenance; lossy projection stops the layer.
VY-012Findings dashboardDoneNATIVELayer/severity/document filters, muted/suppressed toggles, explicit totals.
VY-013Explanation panelDoneEXPLAINSelf-written catalogue; deterministic vs heuristic shown.
VY-014Safe fix previewDoneNATIVEDiff preview, risk level, revision-bound apply, undo, automatic revalidation; overlap detection for bundles.
VY-015Report exportDoneNATIVEJSON with hashes and versions; source inclusion opt-in; reproducible report id.
VY-016Private local historyDoneNATIVEIndexedDB snapshots, compare, re-run, delete/clear, memory-only mode.
VY-017Invalid-source exportDoneNATIVEDownloads as .draft.yaml; report labels it not validated.
VY-018Domain schema packsPartialAPPROXThree small self-authored subsets (Compose, GitHub Actions, K8s Deployment) with version/date/scope; not official schemas.
VY-019Custom declarative rulesDoneNATIVEAllowlisted DSL; no JS; worker-bounded.
VY-020Cross-file reference checksNot doneUNSUPPORTEDRoadmap. Batch validates files independently.
VY-021Rule severity policyDoneNATIVEdefault/strict/advisory + per-rule overrides; muted kept in reports.
VY-022Suppressions/baselinesPartialNATIVERule+scope+reason+expiry, expired/unmatched visible. Bulk baseline import not built.
VY-023Schema authoring/testingDoneNATIVEEditor, meta-schema subset check, capability report, fixtures.
VY-024Schema inferenceDoneAPPROXLabelled draft with uncertainty notes.
VY-025Batch/ZIP validationDoneNATIVEMulti-file and bounded ZIP; complete/partial/invalid aggregate.
VY-026Diff-aware findingsDoneNATIVENew/resolved/existing by fingerprint.
VY-027CI-compatible report filesPartialAPPROXSARIF 2.1.0-shaped adapter; not validated against the official SARIF schema.
VY-028Regex safetyDoneNATIVEECMAScript u-flag dialect, length budgets, worker termination → incomplete.
VY-029Secret-pattern hintsDoneAPPROXHeuristic, redacted, disclosed false positives/negatives.
VY-030Local explanation assistantNot doneUNSUPPORTEDR3 roadmap; no model is downloaded.
VY-031Large schema/data profilesPartialNATIVE10 MB input limit, 5 s worker budget, node/alias budgets. No per-dialect benchmark published.
VY-032Guaranteed downstream acceptanceNot doneUNSUPPORTEDExcluded by design.
VY-101Vocabulary capability reportDoneNATIVEBefore running, in Schema tab and schema editor.
VY-102Reference dependency graphPartialNATIVERef list with states and document cycles; no visual graph.
VY-103Policy severity profilesDoneNATIVE
VY-104Fix collision detectionPartialNATIVEOverlapping edits skipped and listed; no interactive resolution plan.
VY-105Rule unit-test workbenchDoneNATIVEEmbedded pack tests.
VY-106Schema version migration reviewNot doneUNSUPPORTEDRoadmap; use /yaml-diff with two schemas manually.
VY-107Required coverage dashboardPartialNATIVEPer-layer coverage lines and per-doc statuses; no path-level coverage map.
VY-108Finding fingerprint baselineDoneNATIVEStable local fingerprints used by suppressions, diff, history.
VY-109Suppression expiry reviewDoneNATIVE
VY-110–115R3 backlog (cross-file identity, assertion packs, reproducibility, support bundle, incremental, pack certification)PartialUNSUPPORTEDRe-run reproducibility check exists in Reports; the rest is roadmap.

Known limits

Multi-tab editing is detected (a notice appears when another tab saves the same draft) but not fenced. Local storage is not a backup and can be evicted by the browser. Columns are UTF-16 code units, so an emoji counts as two.