engineers
actually read.
Syscribe is a plain-text modeling format that maps SysMLv2 semantics onto Markdown files with YAML frontmatter. Version-controlled, diff-friendly, LLM-readable — with a built-in validation engine, traceability queries, an MCP server for LLM agents, and a web browser.
syscribe spec types)syscribe spec validationexport-htmlsyscribe -m model/ validateTraditional MBSE tools keep models in proprietary binary formats: opaque to diff, hostile to code review, and invisible to the LLMs that increasingly assist engineering work. Syscribe puts the model in plain text where it belongs — readable in any editor, diffable in any VCS, and parseable by any tool.
The format enforces SysMLv2 semantics through YAML frontmatter schema validation and cross-reference resolution, so you get modeling rigour without a heavyweight IDE. Requirements carry stable REQ-* IDs that survive renames. TestCases carry TC-* IDs traceable back to requirements. ADRs carry ADR-* IDs that justify every decomposition decision.
Because every element is a separate file, it has a stable URL in any git host. A GitHub permalink to Requirements/Safety/REQ-ENG-SAFE-001.md points to that exact requirement at that exact commit — forever. JIRA tickets, Confluence pages, code review comments, and CI reports can all link directly to a specific requirement, test case, or architecture decision, pinned to a branch tip, release tag, or commit hash.
1--- 2type: Requirement 3id: REQ-ENG-SAFE-001 4name: Safety monitor shall detect all 5 safety faults within 100 ms 6status: approved 7reqDomain: software 8asilLevel: D 9verificationMethod: test 10derivedFrom: 11 - REQ-ENG-SAFE-000 12breakdownAdr: ADR-ENG-SAFE-001 13derivedFromSafetyGoal: SG-ENG-001 14--- 15 16The safety monitor software component 17**shall** detect any single-point safety 18fault within 100 ms of fault onset.
Stable REQ-* IDs survive moves between packages. Derivation, the breakdown ADR, safety-goal linkage and domain are checked across the whole model by the validation engine.
.syscribe.toml with source/target types, cardinality and acyclicity — validated and walkable with follow. Prebuilt syscribe binaries are on the GitHub releases page. To build from source (needed for the web server), use Rust stable.
Point it at any of the bundled demo models. The full report covers element inventory, requirements traceability, and all findings.
The server watches for file-system changes and reloads automatically. Browse the tree, read rendered documentation, and edit diagrams in place.
Trace a requirement end-to-end, find what a component satisfies, or get the next available ID before adding a new element.
I started using LLMs for development as soon as they were usable. The speed was unlike anything I'd seen — hard problems that would have taken weeks collapsed into days. But I came from automotive engineering, and I couldn't stop asking the uncomfortable questions: who reviewed this decision? what requirement does this satisfy? how do I know it's correct?
The automotive world has spent decades building processes — HARA, FMEA, traceability matrices, change notices — that exist because overconfident engineering kills people. An LLM that generates requirements with no formal check is just a faster way to produce undetectable mistakes. The obvious fix — slow the LLM down with process overhead — defeats the point.
Syscribe is my answer to that tension. Plain text so the LLM can write it. A validator so it can't silently be wrong. Git so every decision has an author, a date, and a diff. The speed of LLM-assisted authoring with the rigour that automotive engineering actually requires — not as a compromise, but as a design choice.