Skip to content

Releases: AmethystLuna/dsh-model-everything

v0.5.0 — 架构可视化:一个新的组件

Choose a tag to compare

@AmethystLuna AmethystLuna released this 26 Oct 17:22

架构可视化:一个新的组件

0.5.0 把「画图」做成插件的第三个组件——和平共处是刻意的:它不带引擎,关掉另两行照样能画。一个只想要「把 Mermaid 画出来」的部署,装同一个包、只开这一行就够。

三个工具,三个不同的问题

工具 回答 不回答
diagram_render 这张图长什么样 图里说的系统对不对
diagram_review 每个包多宽、嵌套多深、整图多少节点 这些包该不该存在
diagram_diff 哪个边界新增/消失/改名/换父组,哪个组件换了归属 这个改动是不是改进

父子分组是一等公民

  • Mermaid subgraph 与 PlantUML package 都读成边界,边界可嵌套;布局按「组内竖排、父组包住子组」算——成员飘在包外的分层图,并没有在表达包含关系。
  • 点一个边界就把它折成一个盒子,再点展开。折叠是模型变换,连线会跟着改指到盒子上。
  • 归属由解析器显式给出(DiagramGroup.parent),布局只查表;手写模型没填时才退回推断,且有父不存在 / 成环 / 多组声明三种守卫。

画不了的行会说清楚

序列表、类图、甘特图、click/classDef,以及 PlantUML 的 actor/note,一律按行号拒绝。悄悄丢掉生命线的时序图看起来是完整的,这比不画更糟。

深浅色与配色

背景亮度决定用深色板还是浅色板;四套方案:default、github(Primer 真实色值)、high-contrast、print。底色画在 SVG 里,所以换皮肤也改不了图的对比度。

右栏白板

独立标签页:贴源码就出图,可缩放、适配宽度、切配色、点分组折叠。不读任何工具结果,所以工具那一侧怎么改都影响不到它。

其它

  • 新增技能 model-everything-diagram,路由语料 103 条用例 / 8 个技能。
  • 渲染器拆成「一份模型 + 每记法一个解析器 + 布局/绘制/输出」,五个纯模块 100% 语句与分支覆盖。
  • 在 DSH 0.2.1-rc.4 上完成完整的兼容性七步(安装、挂载、内容、启动、真实调用、卸载),并记录在 DSH-COMPATIBILITY.md。这一轮抓到并修掉一个真缺陷:scheme 参数枚举少了一套配色,rc.4 的参数校验直接拒绝。

升级

无需改动:0.4.x 直接升,没有删除或重命名。

0.3.0 — automata, cards, one routing table

Choose a tag to compare

@AmethystLuna AmethystLuna released this 22 Oct 16:34
5ec000e

A new family, a card every report carries, and one routing table the documents and the code both read.

Added

  • model_automaton_verify — decides a finite-word language: empty, unreachable, trap states, and
    the relation to another automaton (equivalent, subset, superset). A failed relation returns the
    shortest witness word, replayable through both machines. Nine check codes; a search that hits its
    product cap reports AUT009_UNDECIDED rather than claiming equality.
  • A card for every report. Each report tool projects a small payload — verdict, counts, the first
    finding, the next step — and renders it as a card, while the model keeps the full text. Two views over
    one value, not a second computation.
  • One routing table (src/routing.ts): what each tool owns and which tool takes the adjacent case.
    The card carries it, and the toolset map is generated from it — the generator refuses to write a map
    for a tool the table does not cover.

Changed

  • uml_structure_verify states what the graph is (and can build it from a source tree with
    repoPath); model_design_review judges the design against the rules it declared. The two
    descriptions now point at each other, which took the routing corpus from 32/36 to 36/36.
  • A truncated search now reports an escalation instead of suggesting a larger maxStates: reduce the
    model, then SPIN for partial-order reduction, NuSMV for symbolic search, CBMC for bounded SAT.
  • The cost claim is stated by size: several times the baseline on a fixture of a few hundred lines,
    back to 0.93x–1.11x on objects of tens of thousands of lines across hundreds of files.
  • The usage section is nine scenarios in 81 lines, each saying what to hand over, which field to read,
    and what the tool does not do.

Verified

  • npm run check (lint plus every suite, including the new automaton, presentation, routing,
    tool-routing and tool-contract suites) is green.
  • A mount round on dsh 0.1.7-rc.2: install through the profile's package manager, dump-config, the
    packaged skills and locale, a headless boot with a bad key, a real report from the installed copy,
    uninstall. Fourteen tools register; the row is gone afterwards.
  • Re-ran the one case with a measured advantage: 0.88x the baseline's cost across three trials, with
    nine of nine plugin trials passing against the baseline's six of nine.

The tag points at the release commit. The two commits after it record the mount round and the
regression check; neither changes the published tarball.

dsh-model-everything 0.2.0

Choose a tag to compare

@AmethystLuna AmethystLuna released this 20 Oct 17:53
a321794

A model can come from a file, a truncated check can be printed on its own, and the text got smaller.

  • model_verify, model_datamodel_verify and model_design_review take modelPath: the model comes from a JSON file in the workspace in any formatting. It is the alternative to an inline model; passing both is refused, and the refusal is a report with ran: false.
  • check: "<id>" prints one check in full when the digest truncated it. The digest had promised that since 0.1.0 and no tool could do it.
  • reportView: "full" is compact JSON instead of pretty-printed: the same object, 37% fewer characters on a large report.
  • States that share an ignored-event set print as one line with a count, not one line per state: the largest report in the evaluation went from 4,941 to 3,636 characters.
  • The entry skill says the same thing in fewer words (37,478 to 31,000 characters) and no longer repeats the tool descriptions or the report fields the model already has.
  • The README's cordis.patch.yml example was wrong: a row with name inserts a second row instead of overriding the first one's config. It now shows the id-only override that was verified.

Measured on dsh 0.2.1-rc.2: install from the packed tarball, both rows mounted with the gate enabled, model_verify answering through modelPath and inline, check printing, uninstall leaving no row. Evidence in DSH-COMPATIBILITY.md.

dsh-model-everything 0.1.0

Choose a tag to compare

@AmethystLuna AmethystLuna released this 18 Oct 04:31
975549a

First published release.

A modelling and review toolset for designs, plans and code: the claim is turned into a model and the model is decided, instead of the answer being reasoned out again.

  • Verification: one machine (states, transitions, invariants, budget/deadline/probability checks), several machines composed (handshakes, deadlock, and a shared location decided - C3 declaration, C4 unordered write, C5 lost update), refactoring regression (before/after models, deadlock and invariant continuity).
  • Data models and migrations: keys, domains, referential integrity, migration coverage, rollback symmetry, before/after data equivalence.
  • Design review: layering, responsibility ownership, substitutability, interface width, plus the graph's shape (cycles and the fewest edges that break them).
  • Interleaving scan: mines concurrency claims across five families and routes each to the checker that can decide it; it does not prove safety, and says so.
  • Diagrams: render, parse, review and round-trip every UML 2.5 family the notations can carry; component/package/class/deployment drawings are audited as dependency graphs.
  • Export to UPPAAL, TLA+, PRISM and SPIN; report diffing for a change that must not move the behaviour.

Seven skills carry the doctrine and route each question to its domain. An optional second component injects one routing prompt at the start of a session; it is on by default and can be switched off per deployment.

Compatibility is measured, not assumed: DSH-COMPATIBILITY.md records one row per dsh release, including the row for this published artifact.