00 — 设计哲学与目标

核心命题

软件原型的根本问题是:时间轴上的状态在静态文档中不可见。一个页面在真实运行中会经历加载、空、错误、选中、展开、权限受限等数十种状态,但传统原型工具只截取其中一帧。

RPML 的答案是:把时间轴压平为空间。每一个本需要点击或等待才能看到的状态,都被直接铺陈在同一份文档里。

两个关键词

  • 复杂(complex):覆盖真实生产页面的信息密度。不是 Demo,是可以交付给工程师和 QA 的规格。
  • 完整(complete):没有一个状态、分支、权限或边界情况是隐含的。读完原型不应还有"那这种情况怎么处理"的疑问。

设计目标

  1. 零运行时依赖:一个 .rpml 文件 + 一个 dist/rpui.js 渲染器,无框架、无 CDN。
  2. Agent 友好:标记语言可由 LLM 直接生成和审查,llms.txt 是权威组件参考。
  3. 可机器验证rpml validate CLI 检查结构约束与 pin/annotation 引用完整性。
  4. 语言与实现分离spec/ 描述语言规则,packages/renderer-web 提供浏览器实现,两者可独立演进。

不在目标内

  • 运行时交互(点击、动画、API 调用)
  • 样式覆盖(RPML 不暴露 CSS 变量给原型作者)
  • 代码生成(属于独立工具层,非语言核心)