Changelog¶
All notable changes to the UAAPS specification are documented here.
The format follows Keep a Changelog.
[0.8.0-draft] — 2026-03-13¶
Added¶
- §3 Manifest:
filesfield — restricts which files are included in the published.aamarchive (see §12.1) - §3 Manifest:
dependencyGroups— named, non-runtime opt-in dependency sets for workflows (dev,docs,eval) - §3 Manifest:
extras— optional consumer-facing feature bundles that can add dependencies, activate artifacts, and extend permissions when selected at install time (aam install --extras ocr,github) - §10 Migration §11.2: Codex native build target — full output layout spec, artifact mapping table, and conversion rules for skills, commands, and agents to
.agents/skills/structure - §12.1 Packaging: Deterministic archive file selection algorithm —
files-field-driven packlist with always-include/always-exclude rules - §12.1 Packaging: Reproducible archive build spec — lexicographic entry order, normalized owner/group/timestamps,
SOURCE_DATE_EPOCHsupport - §13.1 Dependencies:
dependencyGroupssemantics — non-transitive,--with/--only-groupinstall flags, system dependency participation - §13.1 Dependencies:
extrassemantics — additive, root-selected only, artifact activation, permission union at install time,--extrasandpkg[extra,…]syntax - §13.3 Lock file v2:
sourcefield becomes a structured object withtype,registry,name,version,tarball,display, and optionalresolvedTagfields - §15 Validation: New rules — lock file source metadata v2,
filesfield format, archive completeness (pack fails if referenced file omitted),dependencyGroupskey format,extraskey format, extra artifact ref resolution - §15 Validation: Extra permission audit — same audit rules MUST apply to effective permission set after extra merge
- §16 Security: Extra-selected permissions model — union semantics, tool MUST surface permission delta at install time, platforms MUST audit effective (not base) permission set
- §16 Security: Package contents security practice — publishers SHOULD use
filesfield and review packlist warnings for likely-secret files
Changed¶
- §2 Package Format: Commands directory gains optional
tests/subdirectory (deterministic command tests); rules directory supports recursive grouping (group-name/rule-name/at arbitrary depth) - §4 Skills:
context,agent,disable-model-invocationfrontmatter fields annotated as "Inferred" — these fields are not confirmed in public Claude Code documentation - §4 Skills: GitHub Copilot platform support corrected from "✅ Supported" to "⚠️ Preview (not GA)"
- §5 Commands: Claude Code invocation syntax clarified as
/package-name:command-name; Codex updated from "⚠️ Via skills" to "⚠️ Via generated skills" with.agents/skills/cmd-<name>/path; migration guidance updated for Codexopenai.yamlpolicy - §6 Agents: Codex export path updated from "⚠️ Via skills" to "⚠️ Via generated skills" with
.agents/skills/agent-<name>/ - §8 Hooks: Added "Inferred" caveat for Copilot hook event names (these are inferred mappings; GitHub Copilot Extensions use a distinct GitHub App webhook mechanism); "Community" caveat for Cursor hook event names
- §10 Compatibility matrix: Copilot skills confidence corrected to "Community"; Copilot/Cursor hooks confidence corrected to "Mixed"; AGENTS.md Copilot footnote clarifies it is read only in Copilot Coding Agent mode; Cursor rules path corrected to
.cursor/rules/*.mdc - §10 Migration: Codex install target updated from "
AGENTS.mdcomposite inject" to ".agents/skills/+AGENTS.md" - §12.6 Registry:
DELETE /packages/:name/:versionendpoint removed; index regeneration trigger updated to cover all lifecycle state mutations - §12.7 Packaging: Immutability guarantee strengthened — registries MUST reject any attempt to publish different archive bytes for an already-published
name@version - §16 Security: Root authority definition updated to include extra-selected permissions in the effective permission boundary (base
permissions+ selected extra permissions)
[0.7.0-draft] — 2026-02-23¶
Added¶
- §7 Rules: Full Universal Agent Rule Specification (UARS v1.3) replacing the previous stub.
- UARS file format:
<name>.rule.mdwith YAML frontmatter (name,version,description,apply.*,agents.*,refs) plus free-form Markdown body. apply.modeenum:always|intelligent|files|manualwith defined semantics per platform.- Mode mapping table: how each
apply.modevalue compiles to CopilotapplyTo, CursoralwaysApply/globs, Claude Codepaths:, and Codex directory placement. agents.*per-platform override block limited to platform-specific capabilities:enabled(all),alwaysApply+priority(Cursor),override(Codex).refsfield for attaching other rule names or template paths (Cursor@filestyle).- Compiled output examples for all four platforms (Copilot, Cursor, Claude Code, AGENTS.md).
- Full field reference table for top-level fields and
agents.*override fields. - §7 Rules: Converter Specification — normative two-namespace CLI design:
aam pkg rulesnamespace (package authoring):compile,import,diff,clean,listsub-commands for rules living in.aam/rules/.aam convert rulesnamespace (standalone conversion): direct in-memory platform-to-platform translation without a UAAPS package.- §7 Rules:
aam pkg rules compileprocessing pipeline (9 stages: Discovery → Parse → Validate → Filter → Transform → Group → Merge → Conflict → Write). - §7 Rules: Per-platform transformation tables for Copilot, Cursor, Claude Code, and Codex.
- §7 Rules:
aam pkg rules importinverse field mapping and per-platform discovery paths. - §7 Rules: Conflict Detection — generation guard patterns per platform;
.aam/conflicts/pending files;--forcebehaviour. - §7 Rules: Idempotency guarantee — deterministic alphabetical rule ordering, no volatile metadata in generated content.
- §7 Rules: Watch mode (
--watch) with filesystem event subscription and full-pass recompilation. - §7 Rules:
aam pkg rules diffandaam pkg rules cleanwith guard-based deletion safety. - §7 Rules:
aam pkg rules listformatted output. - §7 Rules: Error exit codes
0–4foraam pkg rulescommands. - §7 Rules:
aam convert rulesstandardised options table (--source-platform/-s,--target-platform/-t,--type,--source,--out,--dry-run,--force,--verbose). - §7 Rules: AGENTS.md merge strategies — directory inference from globs, root aggregation for
always/intelligent, guard-block management for Claude Code. - §7 Rules: Codex
AGENTS.override.mdsupport viaagents.codex.override: true. - §7 Rules: Export section: UARS → AGENTS.md directory tree with section-splitting and guard comments.
- §7 Rules: Import section: AGENTS.md → UARS reverse pipeline including H1/H2 section splitting.
- §7 Rules: Validation rules (required fields, glob requirement for
filesmode, slug format, semver format). - §7 Rules: Worked migration examples (Cursor
.mdc→ UARS.rule.md, AGENTS.md → UARS). docs/schemas/rule-frontmatter.schema.json: Updated to UARS v1.3 schema withname,version,description,apply(withmode+globs),agentsper-platform overrides, andrefs. Schema authority: informational only; prose spec is normative.
Changed¶
- §7 Rules: Replaced the previous 40-line stub (Cursor-centric
RULE.mdformat withdescription,globs,alwaysApply) with the full UARS specification. - §7 Rules:
agents.*override block no longer allows re-definingscope,paths,applyTo, orglobs(these are controlled byapply.*). Only platform-specific features not expressible inapply:are permitted inagents:. docs/schemas/rule-frontmatter.schema.json: Schema required fields changed from["description"]to["name", "description", "apply"].- CLI command naming: standalone conversion uses
aam convert rules(notaam converter rules,aam rules compile, oraam rules convert). - CLI flag naming: standalone conversion uses
--source-platform/-sand--target-platform/-t(not--from/--to).
[0.6.0-draft] — 2026-02-23¶
Added¶
- §1 Introduction: Specification versioning strategy (major/minor/patch rules for the spec itself)
- §1 Introduction: Forward-compatibility parsing rules (consumers MUST ignore unknown fields)
- §1 Introduction: Conformance levels — Level 1 (Reader), Level 2 (Installer), Level 3 (Publisher)
- §1 Introduction: ABNF syntax definitions for all identifiers (package names, version ranges, skill refs, etc.)
- §3 Manifest: YAML round-trip guarantee (YAML 1.2, JSON-compatible types only)
- §3 Manifest:
dist-tags,resolutions, anddeprecatedfields added to manifest schema - §5 Commands: Namespace collision resolution rules
- §6 Agents:
system-prompt.mdfrontmatter field reference table - §9 MCP:
servers.jsonfield reference table - §10 Compatibility: Platform capability negotiation protocol and
.platform-capabilities.json - §12.6 Registry: Structured error code constants, content negotiation, pagination, search/deprecation/yank endpoints
- §12.7 Packaging: Package lifecycle states (Published, Deprecated, Yanked) with immutability guarantee
- §13.4 Dependencies: Formalized resolution algorithm with named phases, priority ordering, pre-release handling
- §13.4 Dependencies: Resolver versioning (
resolverVersionmanifest field) - §13.14 Dependencies: Workspace / monorepo support (
workspace.agent.json) - §14.5 Signing: SLSA-aligned provenance attestation (L0–L3) with in-toto format
- §15.3 Governance: Structured audit log format with JSON schema
- §16 Validation: New validation rules for resolver version, workspaces, forward-compat, permission grants, provenance
- §17.2 Security: Formal threat model (actors, surfaces, mitigations, residual risks)
- §17.3 Security: Transitive permission composition model with
permissionGrants - §18 Glossary: 12 new terms (Yank, Deprecation, Provenance, Conformance Level, Workspace, etc.)
- Implementers guide expanded from stub to full conformance guide
- All JSON schemas upgraded from Draft-07 to JSON Schema 2020-12
- Schema authority statement: prose spec is normative, schemas are informational
Changed¶
- §12 Packaging: Subsections reordered to numerical sequence (§12.1–§12.6)
- §12.6 Registry: Status upgraded from "Skeleton" to "Draft" with substantially expanded content
- Introduction section headings unnumbered (resolves duplicate §2 in combined full.md)
- Permissions schema in
package-manifest.schema.jsonfixed to match prose spec structure
Fixed¶
- Broken
#evals-evalsanchor links verified correct (not broken — Python-Markdown collapses em-dash correctly) - Stale changelog reference to
§5.5 Prompts→§5 Commands - Copilot issue
#1157citation replaced with generic reference (unverifiable URL) - Self-referential
§17.1citation clarified in security section - Appendix headings made consistent (Appendix A, Appendix B)
- Eval
enginefield:copilotandcursorvalues marked as reserved (unsupported until headless modes available) - Model IDs in eval examples noted as illustrative
[0.5.0-draft] — 2026-02-22¶
Added¶
- §4 Skills:
tests/directory structure for deterministic (assert) skill script testing - §8 Hooks:
tests/directory structure with fixtures and deterministic hook testing - §2 Package Format:
evals/directory expanded with full eval config, case format, and execution flow - Evals system: LLM-judged integration tests via agent sandbox (
engine,judge,sandboxconfig) - Tests vs Evals comparison table clarifying the two-tier testing model
aam testCLI for deterministic assert tests (skills + hooks)aam evalCLI for LLM-judged sandbox evaluations
[0.4.0-draft] — 2026-02-19¶
Added¶
- §12 Packaging & Distribution: archive format (
.aam), scoped package names, dist-tags, portable bundles - §13 Dependency Resolution: lock file format, resolution algorithm, conflict handling, CI/CD patterns
- §14 Package Signing & Verification: Sigstore, GPG, registry attestation, verification policy
- §15 Governance & Policy Gates: client-side policy gates, approval workflows, audit log events
- §5 Commands: reusable parameterized prompt templates with variable interpolation
- MkDocs-based documentation structure replacing monolithic
SPECIFICATION.md
Changed¶
- Merged
DESIGN.mdcontent into main specification - Agent definitions restructured as two-file directories (
agent.yaml+system-prompt.md)
[0.3.0] — 2026-01-15¶
Added¶
- Initial hook event unification across Claude Code, Cursor, and Copilot
AGENTS.mddesignated as universal fallback instruction format- Cross-platform compatibility matrix
Older entries pending backfill.