Versions and Diagnostics¶
@meta.syntax declares language syntax, not package, policy, registry, or organization version.
Syntax Versions¶
| Version | Added capability |
|---|---|
1.0.0 | Core instruction and composition blocks |
1.1.0 | Agents and workflows |
1.2.0 | Few-shot examples |
1.3.0 | Direct regular field replacement with field! |
1.4.0 | Hooks, MCP servers, and plugins |
1.5.0 | Contextual section headers, atomic @override, declaration-order operations, unquoted ${VAR} values |
Use the minimum required version for reusable published fragments. Use current syntax for new project entry files.
Operation semantics follow the complete reachable composition graph. An inherited, imported, inline-composed, or extension-carried source declaring 1.5.0 enables declaration order for the graph even when the entry file declares an older version. Inline @use declarations inside @extend bodies are included. PS018 reports that mixed-version requirement; it does not reject the composition.
Upgrade Commands¶
# Preview all .prs version changes.
prs upgrade --dry-run
# Upgrade syntax declarations using per-file atomic replacement.
prs upgrade
# Find compatibility and shape problems.
prs validate --strict
# Preview generated output and hook migration.
prs compile --dry-run
prs upgrade parses every discovered file before writing, so an initial parse failure aborts the complete plan. Each file then uses atomic replacement and preserves permissions. Multi-file upgrade is not transactional: a write-time failure in a later file does not roll back files already replaced. Symlinks are skipped. Run upgrades on a clean version-control branch.
Model Versions¶
@meta.syntax does not track AI models. Agent and skill model values resolve against the model catalog configured under models. Floating aliases such as sonnet follow the newest release in the catalog, and the Model Catalog lists every built-in model. PS041 reports pinned models that are deprecated or retired, together with their replacement, models outside models.supported, and inconsistent models.profiles entries.
Key Diagnostics¶
| Diagnostic | Meaning | Action |
|---|---|---|
| PS018 | Used feature requires newer syntax | Run prs validate --fix or prs upgrade |
| PS019 | Unknown built-in block name | Correct typo or confirm custom block intent |
| PS034 | Invalid hook executable or option | Fix command, script, or target override |
| PS037 | Invalid contextual section header | Fix owner, key, title, or duplicate |
| PS038 | Unsupported or risky built-in block shape | Convert to canonical shape |
| PS041 | Unsupported model or invalid model profile | Switch model or update models config |
| PS4002 | Target cannot preserve requested capability | Use documented target fallback |
| PS4004 | Target cannot run or write the model | Pick another model or set a target name |
Release Gate¶
Commit syntax upgrades, lockfile changes, source changes, and reviewed generated outputs together according to repository policy.
See Upgrade 1.15 to 1.16 for release-specific migration steps.