ACES scenario-pack definition, schemas, template, and authoring/validation tooling.
Project description
ACES Scenario Packs
The canonical, shared home for the ACES scenario-pack definition and the authoring / validation tooling that goes with it, published as an installable Python package so catalogs (and others) consume one version-matched artifact instead of vendoring the contract.
This repository does not host scenario packs. Packs live in their own catalog repositories and consume this contract.
Install
pip install aces-scenario-packs
This provides the console tools plus the version-matched schemas and template:
aces-pack-validate— validate a pack catalog's content against the contract.aces-pack-release— boundary-split build, lint, release, and profile-smoke gate.aces-new-pack— scaffold a new pack from the bundled template.aces-pack-issue-skeleton— generate a pack work-issue skeleton.
Run the gates from a catalog repository (the tree containing scenarios/<pack>/):
aces-pack-validate --repo .
aces-pack-release check --all
What's here
- Definition
docs/scenario-packs.md— what a scenario pack is.- Layout contract + schemas + template ship as package data under
src/aces_scenario_packs/resources/(contract/pack-layout.md,schemas/,template/,oracle/). - Architecture Decision Records — purpose, packaging, build/release, SBOM.
- Tools — the package modules under
src/aces_scenario_packs/, exposed as the console entry points above.
Boundary
- ACES core owns the Scenario Definition Language (SDL) and its semantics.
- This repository owns how a scenario pack is structured, authored, validated, and released — plus the tools that enforce it.
- Downstream catalogs hold the actual packs and any private runtime, delivery, or product integrations.
Development
python3 -m venv .venv
. .venv/bin/activate
pip install -e .
python -m unittest discover -s tests
aces-pack-validate --repo .
aces-pack-release check --all
Releases are changelog-driven
(see ADR 0007). You
never hand-edit a version — the version is computed from the changelog fragments,
so the tag and CHANGELOG.md can't drift. Each user-visible PR adds a fragment
under changelog.d/ (<issue>.<type>.md); the fragment type
decides the bump:
| Fragment type | Bump |
|---|---|
breaking, removed |
major (pre-1.0: minor) |
added, changed, deprecated |
minor |
security, fixed |
patch |
The version is a single committed literal (__version__ in
src/aces_scenario_packs/__init__.py), read by hatchling and bumped by
tools/release.py. To cut a release: run python tools/release.py (it computes
the version from the fragments, writes __version__, and collates CHANGELOG.md),
commit on a release/vX.Y.Z branch, and open a PR to main. On merge, the
Release workflow tags v<version>, builds the sdist + wheel, generates a
CycloneDX SBOM, publishes to PyPI via OIDC, and cuts a GitHub Release (only a tag
is pushed — never a commit to main). The first release is not special — you run
tools/release.py for 0.1.0 exactly as for every later version. PR titles must
be conventional (a CI check enforces it and bans agent-branding prefixes) — that
keeps history tidy but does not drive the version.
Licensed under the MIT License (see LICENSE).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aces_scenario_packs-0.1.0.tar.gz.
File metadata
- Download URL: aces_scenario_packs-0.1.0.tar.gz
- Upload date:
- Size: 100.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ba70745bae79094fce0dc289202049121652c4a14d6c3c96bb709b077576a2e
|
|
| MD5 |
fb7c9a03faca603a265fa7ba6bf831fc
|
|
| BLAKE2b-256 |
a70d1238c57a35316b7e0bc1897df24c08006972e6acacccc3df9931bf4b06fa
|
Provenance
The following attestation bundles were made for aces_scenario_packs-0.1.0.tar.gz:
Publisher:
release.yml on Brad-Edwards/aces-scenario-packs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aces_scenario_packs-0.1.0.tar.gz -
Subject digest:
4ba70745bae79094fce0dc289202049121652c4a14d6c3c96bb709b077576a2e - Sigstore transparency entry: 2083238125
- Sigstore integration time:
-
Permalink:
Brad-Edwards/aces-scenario-packs@dcbc669ebad0ab5fcc568d0e4bc3e3185fd2934e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Brad-Edwards
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dcbc669ebad0ab5fcc568d0e4bc3e3185fd2934e -
Trigger Event:
push
-
Statement type:
File details
Details for the file aces_scenario_packs-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aces_scenario_packs-0.1.0-py3-none-any.whl
- Upload date:
- Size: 83.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daae7112749fe924d6e5201673bfeb246d39842564e19a26f099073adbf19d19
|
|
| MD5 |
88c5a277156dfdc4f630066c2f745405
|
|
| BLAKE2b-256 |
872b4183a7217d4fe11c505858156d0dda7c7603af68ee3251538b4e5a7aae93
|
Provenance
The following attestation bundles were made for aces_scenario_packs-0.1.0-py3-none-any.whl:
Publisher:
release.yml on Brad-Edwards/aces-scenario-packs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aces_scenario_packs-0.1.0-py3-none-any.whl -
Subject digest:
daae7112749fe924d6e5201673bfeb246d39842564e19a26f099073adbf19d19 - Sigstore transparency entry: 2083238228
- Sigstore integration time:
-
Permalink:
Brad-Edwards/aces-scenario-packs@dcbc669ebad0ab5fcc568d0e4bc3e3185fd2934e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Brad-Edwards
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dcbc669ebad0ab5fcc568d0e4bc3e3185fd2934e -
Trigger Event:
push
-
Statement type: