01 · START
创建第一个 entry
在 xs:entry 上绑定精确命名空间 URI。普通 XML 成为输出,xs:* 元素控制组合过程。
比较严格区分大小写。该地址只标识词汇;构建过程绝不会通过网络获取它。
开始教程<xs:entry xmlns:xs="https://xmlsquish.moesegfault.dev/ns">
<Prompt>Hello, xmlsquish.</Prompt>
</xs:entry>学习路径
按工作流程阅读
快速开始
在 xs:entry 上绑定精确命名空间 URI。普通 XML 成为输出,xs:* 元素控制组合过程。
→02源码模型
entry 构建提示词,pack 交付入口与资源,SOPack 分发编译库;module 发布宏;import 只让模块定义可见,并不会执行模块。
→03宏、参数与展开
宏拥有命名空间限定名称与显式参数。展开解析固定目标,并创建隔离的调用帧。
→04控制与作用域
xs:ifr 提供正则匹配与词法命名捕获;标量与 XML 内容在整个求值过程中保持分离。
→05构建与产物
将 DSL 降低为 IR,优化编译期计算,链接引用单元,再由后端分发 prompt、pack 或 SOPack。
→06Agent Skills
在工作区根声明本地或 Git skill,锁定完整目录树,再安全地同步到 .agents/skills;这些指令不会改变 XML 语言。
→07指令参考
筛选框只是快捷入口;每条契约都完整存在于 HTML 中,并拥有稳定片段链接。
→08限制与不变量
递归程序在显式预算内运行,稳定身份与语言不变量则让项目保持可审计。
→先记住三条边界
entry ≠ modulexs:module 只能包含 import 与 macro。xs:entry 先声明、后构造输出;entry 不能被导入。
string ≠ XML用 xs:insert 把标量作为转义文本输出;它绝不会把 <、> 或 & 重新解析成标记。需要保留结构时使用 xs:fill/xs:slot。
namespace ≠ release命名空间 URI 后不要追加版本号或末尾斜线。只有审计旧版本实现的语言契约时才使用快照。