About FormatYAML

FormatYAML is a source-preserving YAML formatter that runs entirely in your browser. It formats the parsed document model, not a JavaScript object, and proves each result with an independent semantic comparison before you can apply it.

Engine: formatyaml-engine/1.0.0 (yaml 2.9.1). Parser: the ISC-licensed yaml package. Support is defined by the test fixtures shipped with this build, not by a claim to handle “all YAML”. Performance targets from the specification have not been benchmarked.

Feature status

NATIVE: runs locally in this build. APPROX: partial or heuristic. UNSUPPORTED: not built yet. EXCLUDED: will not be built.

IDCapabilityStatusLabelNotes
FY-001Open/paste/drop YAMLDoneNATIVEPaste, file picker, drag & drop. UTF-8 (BOM kept), line endings detected and preserved. Non-UTF-8 files are refused with a message rather than guessed; raw bytes are not kept after decoding.
FY-002Version/schema selectorDoneNATIVEYAML 1.2 core / JSON / failsafe, YAML 1.1; merge keys as a named switch; %YAML directives reported.
FY-003Source and formatted preview, exact diffDoneNATIVEInput untouched until Apply; Myers line diff with classification and .patch export.
FY-004Indentation/style presetsDoneNATIVEValidated options; affected-construct counts in Checks.
FY-005Line width / wrappingDoneNATIVEBlock scalar bodies are kept line-for-line; every value verified.
FY-006Quote-style choicesDoneNATIVEKeep / double / single / plain-when-safe, with YAML 1.1 hazard guard; type changes are blocked.
FY-007Flow/block collection styleDoneNATIVEVerified; conversions that would lose comments are blocked.
FY-008Comment preservationDoneNATIVELexer-based inventory; lost comments block, moved comments are listed.
FY-009Anchor/alias preservationDoneNATIVEAnchors/aliases kept; alias identity checked; never expanded by formatting.
FY-010Block scalar controlsPartialNATIVELiteral/folded/chomping/indicators preserved and verified. Explicit style-changing controls (literal↔folded, chomping) are not offered yet.
FY-011Multi-document streamDoneNATIVEDirectives, --- / ... markers, order and empty documents kept.
FY-012Duplicate-key diagnosticsDoneNATIVEBoth entries kept; equivalence reported as unverified.
FY-013Scalar type inspectorDoneNATIVELexeme, style, tag and resolution under 1.2 core / 1.1 / JSON side by side.
FY-014Semantic equivalence checkDoneNATIVEGraph comparison with exact numbers, tags, alias identity, budget; “unverified” when unprovable.
FY-015Syntax diagnosticsDoneNATIVEExact line/column spans; invalid input is never formatted.
FY-016Safe tags policyDoneNATIVENo constructors; unknown tags kept inert and flagged.
FY-017Export/copyDoneNATIVEFormatted YAML, source, .patch, JSON check report with engine/profile/options.
FY-018Undo/redo/recoveryDoneNATIVEOne transaction per apply; revision-aware previews; IndexedDB draft recovery; private mode.
FY-019Whitespace/invisible viewDoneNATIVETabs, NBSP, zero-width, bidi, control, trailing whitespace; display only.
FY-020Selected-range formattingNot doneUNSUPPORTEDRoadmap. Whole-document formatting only.
FY-021Key sortingDoneNATIVEExplicit operation; scope, order, natural; merge keys first; duplicate/complex skipped.
FY-022Rename/move keyNot doneUNSUPPORTEDRoadmap.
FY-023Compare stylesDoneNATIVEPresets page: two presets on one source, side by side with diff.
FY-024Batch formattingDoneNATIVEFiles or ZIP; per-file status; explicit partial archive with manifest.
FY-025Exportable config/recipeDoneNATIVEVersioned JSON presets; unknown fields rejected.
FY-026YAML↔JSONDoneNATIVELoss report; exact big integers; JSON→YAML verified.
FY-027Lint style rulesPartialNATIVETrailing space, tab indent, long lines, final newline — separate from parse errors. No configurable rule set.
FY-028Domain presetsDoneNATIVEKubernetes, GitHub Actions, Ansible conventions (no platform validation).
FY-029Normalize line endings/BOMDoneNATIVEExplicit options; preserved by default.
FY-030Large-file modePartialAPPROX>1 MiB: manual run with cancel; 10 MiB hard limit; preview capped with an explicit notice. Not benchmarked.
FY-031Local explanation assistantNot doneUNSUPPORTEDRoadmap (R3).
FY-032Execute templates/custom tagsNot doneEXCLUDEDExcluded by design; template markers are flagged and stay inert.
FY-101Style migration comparisonPartialNATIVEPreset comparison works; only one formatter version ships, so cross-version comparison is not available.
FY-102Scalar hazard finderDoneNATIVETypes tab + “keep hazards quoted”, previewed and verified.
FY-103Document boundary controlsPartialNATIVE“Always write ---” option; no per-stream end-marker control.
FY-106Block-scalar value previewPartialNATIVEDecoded values are compared exactly; no dedicated value viewer.
FY-107Comment-only reviewDoneNATIVEDiff filter by change class; comment report in Checks; hidden hunks still exported.
FY-108Deterministic preset lockDoneNATIVEPresets record formatter/parser versions; replay status shown on import.
FY-111Formatting policy reportPartialNATIVEBatch shows formatted vs already-formatted vs invalid per file.
FY-104/105/109/110/112–115Other R2/R3 backlogNot doneUNSUPPORTEDAnchor rename, flow width planner, whitespace cleanup, format-on-save, snippet extraction, sequence reordering, fingerprint, fixture packs: roadmap.

Routes

The planned /yaml-beautifier route is not published: it would duplicate the formatter. Use /yaml-formatter.