# VASMC

Models can now create and evolve prompts and skills independently; maintaining their sources, dependencies, and language variants offers little practical return.

## 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-09-27
- Status: archived
- Tags: cli, markdown, compiler, prompt, skills

## Content

<aside className="project-retirement-notice" aria-label="Retirement notice">
  <h2>Retirement notice: How an AI scaffold became obsolete</h2>
  **Project status: retiring.** VASMC is no longer recommended for new projects, and no new features are planned. Existing code, packages, and documentation remain available while current users migrate; existing commands have not been disabled.
  I once thought prompts and skills were worth managing as software assets: composing them from source files, pinning dependencies, generating language variants, and maintaining their provenance and version relationships over time. I already expected models to absorb the capabilities supplied by general AI scaffolding. What I overestimated was the practical return from maintaining those relationships over the long term.
  VASMC began in February 2026. Just seven months later, in my actual work, models can often form the prompt or skill a project needs, or consult existing material and then maintain their own versions within the project. Older instructions can still help, but subsequent changes within a project need not remain tied to the original source; that source may itself quickly stop being maintained or lose its relevance. Maintaining precise relationships between source files, dependencies, generated outputs, and language variants has gradually become work with little practical return.
  I have therefore decided to stop expanding VASMC. This decision reflects how often it is used and the effort required to maintain it in my actual work. Project intent, constraints, important history, and what AI actually based its actions on, what it changed, and what people ultimately accepted still deserve careful preservation.
  For executable prompts and skills, multiple languages mainly serve human readers; in my actual workflow, people rarely read those instructions directly anymore, so precompiled language variants add little value. Projects that need pinned instruction artifacts can continue using the existing version and retain the release checks they need during migration.
  See [The Half-Life of AI Scaffolding](/en/notes/half-life-of-ai-scaffolding/). A tool can still run without being worth continued maintenance.
</aside>

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 for existing projects

These commands remain for existing projects and migration reference. Starting a new project with VASMC is no longer recommended.

```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.
