Skip to content

F05 — Visual Form-Based Schema Editor ​

Overview ​

The extension provides a webview panel that renders a json-editor form for the most common JSON Schema keywords. Users can edit schema properties visually and save back to the source file without touching raw JSON.

User Stories ​

  • As a non-developer, I want to edit a schema using form fields instead of raw JSON.
  • As a developer, I want a quick way to adjust required, description, and enum values without navigating deep JSON structures.

Functional Requirements ​

Opening ​

  • F05-FR-01 The command jsonschema.edit MUST open the visual editor panel in ViewColumn.Two.
  • F05-FR-02 The toolbar Edit icon (pencil) MUST be visible only when jsonschema.isJsonSchema is true.
  • F05-FR-03 The panel title MUST indicate the schema filename being edited.

Form Rendering ​

  • F05-FR-04 The panel MUST render a json-editor form pre-populated with the current content of the schema file.
  • F05-FR-05 The form MUST cover at minimum: title, description, type, properties, required, enum, and numeric constraints (minimum, maximum).

Save ​

  • F05-FR-06 A Save button MUST be visible in a sticky bar at the bottom of the form.
  • F05-FR-07 Clicking Save MUST write the form's current value back to the source schema file on disk.
  • F05-FR-08 After a successful save the preview panel for the same file (if open) MUST refresh.

Security ​

  • F05-FR-09 All webview scripts MUST be gated with a nonce-based CSP (see S01).

Acceptance Criteria ​

  1. Opening person.schema.json and clicking the Edit (pencil) icon shows a form with fields for title, description, and the schema's properties.
  2. Changing the title field and clicking Save updates the file on disk.

Requirement traceability ​

Status of each requirement in specs/traceability.json. Test coverage is auto-discovered from [ID] tags in test titles and is not listed here.

RequirementStatusImplementationNote
F05-FR-01manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing
F05-FR-02manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing
F05-FR-03manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing
F05-FR-04manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing
F05-FR-05manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing
F05-FR-06manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing
F05-FR-07manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing
F05-FR-08manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing
F05-FR-09manualsrc/SchemaEditorPanel.tsVS Code API-bound; verified by manual / E2E testing

Documented in ​

Documentation sections tagged spec:F05 (or one of its requirement ids) — 96 of ~185 expected words (52%). The expectation comes from this spec's evaluated complexity of 4.6 (9 documentable requirements — 9 FR — weighted by kind and by each definition's length).

Changes over time ​

  • ac906af2026-06-23docs(specs): add software requirements specification

Released under the MIT License.