# VASMC

模型已能独立生成并迭代 prompt、skill 等输入，持续维护源头、依赖和多语言版本已缺少实际回报。

## Metadata

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

## Content

<aside className="project-retirement-notice" aria-label="退役声明">
  <h2>退役声明：一个 AI 脚手架是怎样过期的</h2>
  **项目状态：退役中。** VASMC 不再推荐用于新项目，也不再规划新功能。现有代码、包和文档保留，供已接入的项目逐步迁移；现有命令并未因此停用。
  我曾认为，prompt 和 skill 值得作为软件资产管理：从源文件组合，锁定依赖，生成语言版本，并持续维护它们之间的来源与版本关系。模型会吸收通用 AI 脚手架提供的能力，本就在预期内。我高估的是，在日常使用中，长期维持这套关系能带来多少收益。
  VASMC 于 2026 年 2 月创建。短短七个月后，在我的实际工作中，模型往往已经可以按项目需要形成相应的 prompt 或 skill，也可以参考已有内容，再在项目内独立维护。旧指令仍可提供帮助，但项目中的后续演化未必需要持续依附于它的源头；源头本身也可能很快停止维护或失去参考价值。此时，维持源文件、依赖、生成产物和语言版本之间的精确对应，逐渐成了一项缺少实际回报的工作。
  因此，我决定停止继续扩展 VASMC。这个决定来自它在实际工作中的使用频率和维护负担。项目的意图、约束、重要历史，以及 AI 实际依据什么采取行动、改变了什么、最终被人接受了什么，仍值得认真保存。
  对执行型 prompt 和 skill 而言，多语言更多服务人的阅读；但在我的实际工作中，人已很少直接阅读这些指令，预先编译语言版本也就很难带来收益。确需锁定 instruction artifact 的项目仍可使用现有版本，并在迁移时保留必要的发布检查。
  参见：[AI 脚手架的半衰期](/notes/half-life-of-ai-scaffolding/)。能继续运行，不等于仍值得继续维护。
</aside>

VASMC 是用于 Prompt、Skill 和 AI 项目文档的 Markdown 编译器。它把 `.vasm.md` 源文件展开为 `.md` 产物，并把需要继续处理的事项写入 `.vasmc/build-report.yaml`。

编译路径负责 import 展开、依赖锁定、语言过滤、输出路由和策略诊断等确定性工作。翻译、语义审查和项目上下文检查由执行构建的 AI 编辑器或开发者根据报告完成。

  ![VASMC 从源 Markdown 构建输出并生成处理报告](/images/projects/vasmc-banner.webp)

## 既有项目的构建方式

以下命令保留供现有项目使用和迁移参考，不建议用于新项目初始化。

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

`.vasm.md` 是维护入口，生成的 `.md` 是构建产物。源文件可以声明 import、目标语言、输出路径与编译格式；构建完成后，普通 Markdown 供编辑器、Agent 或文档系统使用。

    **确定性编译**
    CLI 解析源文件、展开 import、锁定依赖、过滤语言块并写入目标文件。

    **构建报告**
    需要验证、翻译或策略审查的事项写入 YAML 报告；报告中的 action 不表示任务已经完成。

    **源文件边界**
    内容修改通常回到 `.vasm.md`，再重新构建，而不是直接维护生成文件。

    **可选语义检查**
    `vasm-console` 可以调用外部模型做 lint 与 diff，但与确定性编译链分开。

## 边界

VASMC 处理 Markdown 源码、构建与后续工作交接。策略检查覆盖 manifest、依赖、格式边界和内容信号；语义判断由执行构建的开发者或 AI 编辑器完成。

项目由 `@vasm/core`、提供 `vasmc` 命令的 `@vasm/cli`，以及可选的 `@vasm/console` 组成。
