DEDALO Watch Example GitHub EN · IT Get the file
DEDALO
Test Specification Writer

A test specification that is also the program that writes it.

DEDALO writes end-of-line test specifications for electronic devices as one self-contained HTML file: the file is the application and the document at the same time.

Whoever receives it opens it with a double click — nothing to install, no network — reads it, navigates it, edits it and prints it to PDF.

MIT · v1.37.0 · Chrome, Edge, Firefox; Safari from 16.4
TS-EVC-0117.html 1 file
Editor — sections, stages, steps
Document — chapters, appendices, PDF
Revision history — issued snapshots
💾 Save rebuilds the whole file
TS-EVC-0117.html ↓
the downloaded file replaces the original — and is itself an editor
Watch it

A three-and-a-half-minute tour of the editor.

The UI, the header, a global variable, a setup stage, a stage with a step and an acceptance criterion bound to the variable, duplicating a step, a product variant switched live on the printed document, validate and save.

Still writing specs in Word?
See exactly why teams make the switch — one page for whoever writes the specification, one for whoever has to approve changing tools.
Why DEDALO? →
01 / One single file

No install, no account, no server.

Save — the 💾 in the command bar — rebuilds the whole file with the current data and downloads it. The downloaded file replaces the original one and can itself be opened and edited. Nothing else is needed at either end of the exchange.

What the distributed file holds
<!--TSW:DOC--> the document data
<!--TSW:HISTORY--> the revisions, gzipped
<!--TSW:ASSETS--> the pictures, as WebP

On save only those three blocks are replaced: the file is kept in memory exactly as it was opened, and the whole interface is built at runtime.

READING MODE

A file that is the last issued revision word for word — the file as it is handed out — opens straight in reading mode, where nothing leads into the editor. Esc brings the editor back.

A NET, NOT A SAVE

Unsaved work is copied into the browser's own storage every few seconds and offered back after a crash or a window closed by mistake. The file on disk changes when you download it and not before, and the status bar says which of the two you are looking at.

KEYS

Ctrl+S saves, Ctrl+Z / Ctrl+Y undo and redo.

02 / What a specification contains

Stages, steps, points, criteria — each addressed by its code.

The steps refer to the catalogues through a code, and every reference carries both the code and the name of what it points at.

The values shown from here on are taken from the example specification — an invented product, described in full further down.

STG-xx · SET-xx
Stages and setup stages

Stages run once, in the order their prerequisites allow. Setup stages are routines with no place of their own — engage the fixture, power up, power down and discharge — run only where a step calls them, as many times as they are called. Numbered apart, listed apart, drawn in two bands of the graph.

APPLY · MEASURE · SET · GET
Tests → steps

The step carries the high-level description; the detail splits into what is put on the unit and what is read back, each with its points, resource, parameters, command and an optional wait — a number or a variable, «WAIT $PilotSettle» printing as «500 ms (PilotSettle)». A half that speaks over a bus reads SET or GET instead.

RES-xx · CMD-xx · AP-xx
Resources, interfaces, commands

An interface declares the instrument that speaks it and the points it is wired to. A command may state its nominal execution time, its decoding, and where it is defined — «Defined in REF-05» — when its specification is another document.

COMPUTED
Computed measurements

A measurement may be computed from earlier readings — (meter − reference) / reference × 100, judged against $MeterAccuracy — with its formula printed and its inputs named. It names no instrument and validation refuses an input that comes after it.

GRAPH · CONSTRAINTS
Prerequisites and exclusions

Prerequisites between stages, parallel exclusions, stimuli held on exit — checked for cycles, recursion and dangling references, and drawn in the stage graph, which prints in landscape and opens full size on a click. A stage that allows nothing alongside it says so under its own box: ⊘ not with STG-03, STG-05.

VARIABLES · GLOSSARY · NOTES
What holds the document together

Global variables — numbers with a unit, text, enumerations, booleans, ranges — read by every parameter and every limit instead of repeating a number. A glossary of the acronyms the prose uses. Notes in the margin, kept beside the specification and never part of it.

EVERY CODE HAS A CARD
— hover a code, as in the document

In the printed document the steps stay short and refer to the appendices through their codes. On screen, resting the pointer on a code previews its card; a click opens it at the side without losing your place, or opens the entity in the editor.

APPLICATION POINTS ON THE PICTURE
Controller board, component side, with application point markers
01
10
13
TP1
TP2

Only the number of the point is drawn, so the markers stay small; the full name is one hover or one click away. Unless the point is a test point: when its connector names one, the marker shows that name instead, so the drawing speaks the language printed on the board. Every marker also defines the area of the picture worth showing: opening a point gives the crop first.

ACCEPTANCE CRITERIA
3.3 V ±3 %
123
= state B
Abc
^EVC22 v2\.\d+\.\d+$
RegEx
yes
DGT

Numeric limits use the complete TestStand comparison set, named as TestStand names them — the types that pass outside their limits included, and NONE, which records a value and judges nothing. A limit may read a global variable instead of a number; a nominal without a tolerance is an error, not a bare number.

THE TABLE STEP
PP RESISTOR
APPLY · RES-13 [Ω]
CABLE CAPABILITY
GET · CMD-05 [A]
EFFECTIVE LIMIT
GET · CMD-06 [A]
1500 13 13
680 20 20
220 32 $MaxCurrent
WAIT 300 ms — the PP input is filtered

When the same reading is taken for a list of combinations, the step is one table: the columns say what is applied and what is read, with which instrument or command and in which unit; the rows say the combinations, one criterion per cell, typed as the specification writes it. It prints as one table, on the sheet and in the Word file.

03 / Variants and revisions

One base document. Variants as an overlay — nothing is duplicated.

A variant is a set of operations on the base document: anything can be added, changed or removed. The matrix covers the frequent cases; for everything else you pick the variant in the top bar and edit the document — each change becomes a customisation of that variant, marked with an orange frame and undone with ↺.

EVC-22 · base document
EVC-11 · 3 phases, 16 A
two variable values, nothing else
EVC-7 S · single phase, compact
removes a stage, a test, two steps and two points
EVC-22 Pro · LTE modem
adds a command and a test

Codes do not shift under a variant: a stage keeps the code it has in the base document, and a gap in the numbering is how the document says a stage is not run here.

Whatever a variant makes different is written in electric blue wherever it is read — in the base document as in a variant.
Pilot duty cycle: — click it
VALIDATE

You work on a draft. Validate freezes an immutable snapshot — number, date, author, reason, status — and moves the draft to the next number. The history stays inside the file, compressed, and feeds the change record and the comparison between two versions, which produces the differences grouped by chapter.

REVISION MATRIX

The last appendix of the printed document: one column per revision that changed something, one row per thing changed, each cell saying what that revision did to it — added, changed from what to what, removed, moved — coloured by kind. A long text is counted rather than quoted.

MERGE FORWARD

Two revisions consolidate into one: the chosen revision leaves the record and what it changed belongs to the revision that follows. The model is single editor — whoever edits issues the revision and redistributes the file; opening a file with fewer issued revisions warns.

04 / From the existing PDF

A legacy specification, converted with a language model.

Old specifications usually exist as PDFs. IMPORT-GUIDE.md is written to be handed to a model together with the source document: it explains the model of a specification, gives the exact JSON format and the rules for reading a legacy text — what becomes a stimulus and what a measurement, when a repeated block is a setup stage, when a value deserves a variable, and above all not to invent what the source does not say.

The model returns one spec.json; Import data… loads it and lists whatever it could not resolve. The same guide doubles as the conceptual documentation of DEDALO, and the import also accepts a previous Export data file, so the JSON is a round-trip format.

Import report — margin notes
TO CHECK · signed «Import»
The source gives the pilot duty as a range without a tolerance — confirm against the drawing.
CONDITION · signed «Import»
Measured at 25 °C ±5 — stated in the source preamble, not in the step.
LEFT OUT · signed «Import»
§7.4 acoustic check: no instrument and no limit in the source.

What the conversion has to say beside the document does not go into the document: it comes in as notes in the margin, with their file offered from the report. Pictures cannot travel in the JSON — upload them afterwards and place the markers.

05 / Word and print

Same document, same density, on paper and in Word.

.DOCX

Heading styles, so the navigation pane works and the table of contents fills itself in with Ctrl+A, F9; tables with repeating header rows; A4 page setup; a running header with company and product and a footer with document code, revision, confidentiality and «Page X of Y».

NO LIBRARY

A .docx is a ZIP of XML parts, so it is written here directly — nothing to download, the file stays self-contained. Word cannot lay the markers over a picture, so the browser draws each figure onto a canvas first — image plus markers, and the stage graph — and embeds the resulting PNGs.

COMPACT BY DESIGN

A specification is read at the bench. Only the cover, the stages chapter and the appendices start on a new page; stage constraints are one line instead of a table; the step table keeps three columns. The same content that used to take 15 pages takes 10.

15 → 10 pages
06 / The worked example

EVC-22 — the specification of a product that does not exist.

FICTITIOUS
Everything in wallbox.html is invented for the demonstration: Voltaria Energy S.r.l., the Ampère wallbox platform, the EVC-22 AC charge controller and the document TS-EVC-0117 do not exist. No real company, product, limit or measurement is described — the file is there to show the shape a full specification takes, and it is where every number and every picture on this page comes from.
12
test stages
5
setup stages
106
steps
41
contact points
15
instruments
31
commands
3
protocols
25
glossary terms
4
variants
3
issued revisions
THE SEQUENCE
STG-01Fixture and dielectric strength
STG-02Power up and supply rails
STG-03Control Pilot
STG-04Proximity Pilot
STG-05Contactor and socket lock
STG-06Residual current monitoring
STG-07Energy metering
STG-08Front panel
STG-09RFID reader
STG-10Temperature monitoring
STG-11Communications
STG-12Close-out
SET-01 … SET-05 — engage and release the fixture, power up, power down and discharge, vehicle connected in state B
ISSUED REVISIONS
Rev 002026-03-16G. Ferraro
First issue
Rev 012026-05-22G. Ferraro
Residual current monitoring stage; EVC-11 and EVC-7 S variants
Rev 022026-07-14S. Moretti
DC residual current test added; KPI tests marked
any two of them compare, chapter by chapter
THE FOUR PHOTOGRAPHS
Controller board, component side Controller board, solder side Front panel Wiring compartment

Component side, solder side, front panel, wiring compartment — 41 contact points placed across them, each with its markers and its crop.

Open the example →
07 / Try it

Three files. Open one with a double click.

test-spec.html
Empty document
The one to start from.
example.html
A small example FICTITIOUS
LCU-200 lighting control unit: two issued revisions, two variants, an image with markers, populated appendices. An invented product.
wallbox.html
The showcase FICTITIOUS
The EVC-22 example described above: twelve stages, five setup stages, forty-one points, four variants, three revisions. An invented product.
Repository ↗ EDITING-GUIDE.md ↗ IMPORT-GUIDE.md ↗ example-spec.json ↗