xmlsquishsource. compose. build.
中文

XML DSL & project guide

Compose structured prompts with a small XML language.

Start with a working entry, split reusable behavior into modules, and distribute .prompt, reproducible .pack or relocatable .sopack artifacts. Then manage Agent Skills as separate project dependencies. This guide follows your tasks—not compiler internals.

Stable, unversioned identityExact XML namespace URIhttps://xmlsquish.moesegfault.dev/ns
Jump to a chapter

01 · START

Create your first entry

Bind the exact namespace URI on xs:entry. Ordinary XML becomes output; xs:* elements control composition.

Comparison is exact and case-sensitive. The address identifies the vocabulary; the build never fetches it over the network.

Start the tutorial
<xs:entry xmlns:xs="https://xmlsquish.moesegfault.dev/ns">
  <Prompt>Hello, xmlsquish.</Prompt>
</xs:entry>

LEARNING PATH

Read in workflow order

Three boundaries to remember

entry ≠ modulexs:module may contain imports and macros only. xs:entry has declarations followed by an output-producing body; an entry cannot be imported.

string ≠ XMLUse xs:insert to emit a scalar as escaped text. It never reparses <, >, or & as markup. Use xs:fill/xs:slot when structure must remain XML.

namespace ≠ releaseNever append a version or trailing slash to the namespace URI. Use snapshots only when auditing the contract implemented by an older release.