Skip to content

Releases: Raja0sama/vibex

v0.2.1 — the demo, on the page

Choose a tag to compare

@Raja0sama Raja0sama released this 20 Sep 09:18

Documentation, README and landing page. No change to the CLI, the renderers, the
schemas, or anything a generated file contains.

Changed

  • The README leads with the skill rather than the CLI, and folds its reference material into collapsible sections.
  • The demo is shown rather than promised: a linked thumbnail in the README, and an embedded player on the landing page.
  • Attribution is now a Prior art section crediting the wider diagrams-as-code field — Mermaid, PlantUML, Structurizr, DBML, Graphviz and archify — instead of naming a single project.
  • The landing page gained depth, and its nav no longer swallows the heading you jumped to.
  • Article drafts are no longer tracked; content/ is ignored.

v0.2.0 — four diagram types and documentation as a fact graph

Choose a tag to compare

@Raja0sama Raja0sama released this 20 Sep 09:18

Four diagram types, documentation as a checkable fact graph, and a release list
built from git history.

Changed

  • Redesigned the generated viewer shell: icon toolbar with segmented zoom/export controls, dot-grid canvas, floating hint pill, sectioned side panel, scrollable detail tables that drop empty columns, tinted note cards, styled scrollbars, and a print stylesheet.
  • Dashboard: brand mark, per-type colour dots in the sidebar, a totals strip on the overview, tiles that lift on hover, and a two-column stat grid on phones.
  • Diagram boxes get a soft drop shadow; the theme button now shows the theme you are switching to.
  • C4 diagrams redesigned. Databases and queues now have their own fills (teal, indigo) instead of sharing the container blue, so the legend swatches finally match the canvas; the swatches also echo each shape. Boxes hug their content and share one height per diagram, with the text block centred rather than top-aligned. Person elements read as a head over shoulders. Databases are proper cylinders with both caps. Boundaries get a tinted frame, a label tag that straddles the top edge, and a more solid frame the deeper they nest. Drill down ↗ is an underlined footer instead of a corner note. Edge labels are slightly smaller and grow a dotted leader when obstacle avoidance pushes them off their own line.
  • C4 edge routing gets lanes. Every edge crossing a gap used to turn at the same midpoint, so their turning segments — and the labels riding on them — stacked into one column. Edges sharing a gap are now spread across the gap by greedy interval colouring, which separates only the turns that actually overlap, so simple diagrams route exactly as before. Turns are clamped inside the gap so no lane runs over a box. routeOrthogonal takes an offset.channel and reports the corridor it used; channelOffsets assigns the lanes. ERD, endpoints and lifecycle still route down the middle.

Fixed

  • Lifecycle transitions crossing the same gap all turned at its midpoint, stacking their labels into one column. Lifecycle now uses the same lane assignment as C4 and ERD — every diagram type has it.
  • When no free spot existed for a label, placeLabel took the first candidate that cleared the other labels, which could be one sitting across a node's title. It now measures the overlap and takes the least bad position, and searches further off the line before giving up. Across the eleven diagrams this repository ships, labels sitting on a node went from four to none — and a test now parses the rendered SVG and fails if that ever regresses.
  • The Prisma importer wrote 1 enums into the subtitle, which is the first line a reader sees of an imported diagram.
  • The dashboard sorted C4 diagrams alphabetically, so a set of levels read component, context, container. Within C4 it now sorts by zoom — landscape, context, container, component — because that is the order a reader drills in.
  • The demo's Changes panel was built from vibeX's own commit history and shown beside the Relay specs, so a fictional parcel network's release notes read "fix the clean-install gate". The changelog describes the repository being documented, not the tool doing the documenting; the showcase now carries a fixture describing a fictional Relay release, like the rest of it.
  • The documentation-diff placeholder told the reader to pass --specs, which fires equally when --specs was passed and the range simply had no start commit to compare against. It now names the actual reason, and the CLI warns at the point the range is chosen.
  • ERD relationships crossing the same gap all turned at its midpoint, stacking their cardinality labels into one column — the same defect fixed for C4, now using the same lane assignment.
  • The clean-install CI gate ran npm pack --pack-destination /tmp/pkg without creating that directory. It passed locally, where the directory already existed, and failed on the first real runner.
  • The example documentation anchored into test/fixtures/, which npm pack does not ship. A freshly installed package running vibex demo therefore opened on 22 unverifiable claims — the worst possible first impression for a tool whose pitch is documentation you can trust. The fixture moved to examples/shop-repo/ (it is an example, and it is the code the example documentation describes), and CI now installs the packed tarball and runs the demo, failing on any unverifiable claim rather than trusting a hand-maintained file list.
  • Dashboard hash routing only ran on first load, so #docs-1, a pasted deep link, and browser back/forward did nothing on an already-open page. There is now one router, wired to hashchange.
  • renderSpec threw a TypeError on any spec whose diagram_type has no diagram renderer. It now reports not-a-diagram and names what to run instead.
  • Dashboard: every panel but the last rendered its boxes invisibly. The drop-shadow filter was referenced from the shared SVG stylesheet, and because CSS cascades across the whole document all four panels resolved to the last panel's namespaced filter id — a reference the other panels do not contain, which suppresses the element entirely. The filter now rides on the elements themselves, so each panel resolves its own copy.

Added

  • The showcase now shows the breadth. Nine diagrams instead of four: all three C4 levels with working drill-down, a second data model imported from a real schema.prisma, a GraphQL API imported from a real .graphql SDL, and a second lifecycle drawn top-to-bottom against the first one's left-to-right — the same renderer, a visibly different shape. Both importers run against files committed beside the output, so the demo proves they work rather than asserting it.
  • A Changes panel in the dashboard. A changelog.json beside the specs becomes a panel, or pass --changelog. Each entry links to its commit in the repository the commits came from — not the one a spec happens to describe — and the specs it touched are chips that open those diagrams. Reworded claims are shown as the change they were, old wording struck through beside the new, which is the thing a file diff buries.
  • vibex changelog builds a release list from commit history. With --specs it also reports what those commits did to the documentation — claims written, reworded, superseded and removed — which is the part a reader of a changelog cannot otherwise see. Derived facts are counted rather than named, because ninety machine-generated sentences appearing is not news. Conventional-commit prefixes are honoured where a project uses them; where it does not, sections are inferred from the files each commit touched and the output says so, because a reader who thinks the headings were chosen deliberately will draw conclusions from them. A commit that touches a renderer and a workflow is not internal: internal means every path was.
  • Proposals. meta.proposed marks a spec as describing something that does not exist. It renders with a banner, a distinct badge, and a stamp drawn into the SVG so an exported image still says so; its claims read proposed rather than verified, and --check ignores it because there is nothing to drift from. The validator refuses an anchored claim inside one — there is no code to anchor to — and warns when a proposal carries no trail back to whoever made it. A document that merely derives facts from a proposed spec marks those facts proposed too.
  • Intake. Four issue forms, a triage workflow, and a dispatcher that resolves an issue's vibex block against the current build. A claim id that no longer exists, a diagram nobody named, or a proposal with no stated problem gets a specific question posted back rather than a confident wrong pull request. The authoring step is gated on ANTHROPIC_API_KEY: without one the queue still triages and answers, it just writes nothing. Nothing merges — every path ends at a pull request with the drift check running on it.
  • Report it from where you noticed it. Every claim, and every node's details panel, now carries a link that opens a prefilled issue on the project's own repository. The body holds a fenced vibex block with the claim id, the spec and node it is about, its confidence, and the exact commit the reader was looking at — so whoever picks the issue up, person or agent, does not have to reconstruct where the reader was standing. The docs toolbar adds the three intents that are not about one claim: request a document, report a gap, propose a change. GitHub and GitLab are understood; any other host gets no link rather than one that opens a 404, and a project with no meta.repository gets none at all.
  • A public showcase. showcase/ is a fictional parcel delivery network — 16 containers, 13 tables, 17 operations, a twelve-state parcel lifecycle with retry loops and a recoverable failure, and two documents totalling 129 claims with nine stated gaps. GitHub Pages now builds the demo from it rather than from the bundled examples: a different domain, at the depth the tool is actually for, while examples/ stays small and didactic for the skill to read as a pattern. It ships with the repository, not the npm package, and the deploy fails if it ever publishes a claim it could not verify.
  • examples/order.lifecycle.json replaces the previous lifecycle example and ties into orders.erd.json, so the bundled set is now one coherent system rather than a shop plus an unrelated flow.
  • docs: a fact graph for the system, for people and for agents. A new spec type whose unit is a claim — one checkable sentence with a source — rather than a page of prose. Three kinds of source: derived (computed from a diagram spec by one of ten fixed generators, so the sentence cannot disagree with the diagram), anchored (prose pinned to a file and symbol by a content hash), and asserted (a person, with a date). A claim cannot declare its own confidence; t...
Read more