Repository navigation
diago diff warns when an edit gave something a new id, and the plugin draws a change diagram by
one procedure. Nothing v0.7.1 accepts is rejected and nothing draws differently. The one new
failure is scripts/diago-render --strict on a revision that raises the new warning.
Diffs:
-
A new advisory,
id-drift. diago diff raises it when it adds an element while it removes
another of the same kind that reads the same, under another id: a node, group, class, package
or actor with the same label, or an edge or relation with the same ends and label. That is
most likely one thing whose id changed between the versions, which the diff draws twice, once
removed and once added. The warning is on the added element and names the old id to give back:warning: id-drift after.nodes[0]: node "API" is added and a node with the same label removed under the id "api": if it is the same node, keep the id "api"
An edge without an
idof its own never raises it (edge-without-idcovers that case).
checknever raises it, since it needs both versions. When the thing really was replaced and
keeps its label, addid-driftto the new spec'signore.
Plugin:
- A change diagram is made one way: the before state written as
<slug>.v1.json, copied to
<slug>.v2.json, the copy edited keeping the id of everything that stays, thendiago diff.
The illustrating skill spells out the procedure and the shortcuts that break it (writing v2
from scratch, marking changes in a single spec), and the SessionStart hook states it in
every session. - A diff is shown however much changed. The one exception is a rewrite: more than half of the
old version's nodes and edges removed, with noid-drift. - A diagram in chat runs
diagoitself.scripts/diago-renderhandles a review document's
diagrams; it is a plugin file and not a command on PATH, so the skills and the hook name it
by its full path. It relays a revision'sid-driftas a lint line, and--strictfails on
it. - The diagramming skill has a section on showing a change, and its cheatsheet documents the
class fieldsstereotype,type_params,static,abstract,directedand
legend_labels, the top-levelthemekey, and every advisory.