# VASMC

A Markdown compiler for prompts, skills, and AI project documentation that builds .vasm.md source into .md output and records follow-up work.

## Metadata

- HTML: https://glenzli.com/en/projects/vasmc/
- Markdown: https://glenzli.com/en/projects/vasmc.md
- Collection: Projects
- Language: en
- Published: 2026-07-03
- Updated: 2026-08-27
- Status: active
- Tags: cli, markdown, compiler, prompt, skills

## Content

VASMC is a Markdown compiler for prompts, skills, and AI project documentation. It expands `.vasm.md` source into `.md` output and records work that still needs attention in `.vasmc/build-report.yaml`.

The build path handles deterministic operations such as import expansion, dependency locking, language filtering, output routing, and policy diagnostics. Translation, semantic review, and project-context checks are completed by the AI editor or developer running the build.

  ![VASMC building Markdown output and a follow-up report from source files](/images/projects/vasmc-banner.webp)

## Build flow

```bash
npm install -g @vasm/cli
vasmc init
vasmc build
```

`.vasm.md` is the maintenance surface; generated `.md` files are build output. Source files can declare imports, target languages, output routes, and compilation format. The resulting Markdown can be consumed by editors, Agents, and documentation systems.

    **Deterministic compilation**
    The CLI parses source, expands imports, locks dependencies, filters language blocks, and writes output files.

    **Build report**
    Verification, translation, and policy-review work is written to YAML. An action in the report does not mean the work has been completed.

    **Source boundary**
    Content changes normally return to `.vasm.md` and rebuild rather than being maintained in generated files.

    **Optional semantic checks**
    `vasm-console` can use an external model for lint and diff checks, separate from the deterministic compiler path.

## Boundaries

VASMC handles Markdown source, builds, and follow-up handoff. Policy checks cover manifests, dependencies, format boundaries, and content signals; semantic judgment remains with the developer or AI editor running the build.

The project consists of `@vasm/core`, the `@vasm/cli` package that provides `vasmc`, and the optional `@vasm/console` package.
