Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>MarkSpecNew to Visual Studio Code? Get it now.
MarkSpec

MarkSpec

driftsys

|
11 installs
| (0) | Free
MarkSpec language support — diagnostics, completions, and entry block scaffolding for traceable industrial documentation.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MarkSpec for VS Code

Author traceable requirements, specifications, and tests in Markdown — with live validation, traceability navigation, and AI assistance built in.

MarkSpec is a Markdown flavor and toolchain for traceable industrial documentation. You write requirements, architecture, and tests as ordinary Markdown entry blocks; MarkSpec stamps each with a stable ID, links them with trace relations (Satisfies:, Verified-by:, Derived-from:, …), and validates the whole graph. It targets ISO 26262 and ASPICE compliance workflows — but works for any project that needs requirements that stay connected to their tests and don't rot.

This extension brings the MarkSpec language server into VS Code, so the traceability graph is live as you type.

No separate install required. The extension bundles the version-matched markspec binary for your platform and runs it for you.

A MarkSpec entry block

- [SRS_BRK_0001] Sensor debouncing

  The sensor driver shall debounce raw inputs over a 20 ms window.

      Id: 01HGW2Q8MNP3RSTVWXYZABCDEF
      Satisfies: SYS_BRK_0012
      Verified-by: SWT_BRK_0001
      Labels: ASIL-B

The display ID SRS_BRK_0001 is the human-readable handle; the Id: ULID is stamped automatically. Satisfies: and Verified-by: are trace links — the extension validates, navigates, and renames across all of them.

What you get

Live validation. Broken references, missing or duplicate IDs, malformed entries, attribute and type errors, and uppercase modal verbs (SHALL → shall) surface as squiggles within about a second of typing — each carrying an MSL-… diagnostic code. Many come with a one-click quick fix.

Authoring without boilerplate.

  • Type - [ on a list line to scaffold a complete entry block, pre-filled with a fresh ULID and the next display ID for each type your profile declares.
  • Trace-attribute completion suggests only the IDs the active profile allows in that slot (e.g. Satisfies: on a software requirement offers system requirements).
  • Type: and Labels: values complete from the active profile catalog.
  • Quick-fix code actions for common diagnostics: lowercase a modal verb, remove a generated attribute, "did you mean…" type suggestions, deduplicate attributes, and more.

Navigate the graph.

  • Hover any display ID for a rendered Markdown preview of the target entry.
  • Go to definition (F12) and find all references (Shift+F12) across the whole project.
  • Project-wide rename (F2) of a display ID, updating every whole-token occurrence in every file.
  • Outline view and Ctrl+T workspace search by display ID or title.
  • CodeLens and inlay hints showing dependents and the satisfies-chain inline.
  • Folding, document highlights, and per-entry semantic-token coloring.

Source code is part of the graph. Entry blocks and trace links written in doc comments — Rust, Kotlin, Java, C/C++, TypeScript, JavaScript, C# — are indexed alongside Markdown. A unit test's /// Satisfies: SRS_BRK_0001 links straight to the requirement it verifies.

Readable entry blocks. Each entry is marked with a colored left bar and label pills (red-bordered when a label isn't in the profile catalog), with themed admonitions for light, dark, and high-contrast color themes.

AI integration. The extension registers the MarkSpec MCP server, so GitHub Copilot and other MCP-aware assistants can query your requirements and traceability graph directly instead of grepping Markdown. An optional inline completion provider feeds workspace entry context to the model for requirement-aware suggestions.

Requirements

The extension activates when your workspace contains a .markspec.yaml file (the project activator). In a MarkSpec project it indexes your entries on open and reports the entry count in the status bar; in a plain Markdown or source repository it stays inert and writes nothing to disk.

New to MarkSpec? The documentation walks through setting up a project and choosing a profile.

Configuration

Setting Default What it does
markspec.server.path (bundled binary) Path to the markspec binary. Empty uses the bundled, version-matched binary; markspec uses your PATH; an absolute path uses a dev build.
markspec.mcp.enabled true Register the MarkSpec MCP server with VS Code for Copilot and other MCP clients.
markspec.inlineCompletion.enabled true Enable the MarkSpec requirement-aware inline completion provider.
markspec.inlineCompletion.maxWorkspaceEntries 200 Maximum workspace entries packed into the AI prompt context.
markspec.trace.server off Trace LSP traffic (messages / verbose) for debugging.
markspec.trace.logPath (workspace .markspec/lsp.log) Override the LSP event-log path.

Commands

Both are available from the Command Palette (Ctrl/Cmd+Shift+P):

  • MarkSpec: Show Output — open the LSP output channel.
  • MarkSpec: Install CLI to PATH — make the bundled markspec binary available in your terminal.

Beyond the editor

The bundled markspec CLI does more than the editor surfaces live — prose-style linting (EARS, passive voice, INCOSE), PDF and static-site rendering, coverage and traceability-matrix reports, and an upstream lockfile with external-sync tracking. Run MarkSpec: Install CLI to PATH, then markspec --help.

Learn more

  • Documentation
  • Language specification
  • Source, issues & discussions

License

MIT — see LICENSE.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft