This project has been archived by its maintainers, and is no longer receiving any updates.
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 pack 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.
Validate one pack by pointing the tools at its directory:
aces-pack-validate --pack ./scenarios/example-pack
aces-pack-release check --pack ./scenarios/example-pack
As a convenience, a directory containing only pack directories can be checked in one command. Every direct child directory is treated as a pack candidate:
aces-pack-validate --packs-root ./scenarios
aces-pack-release check --packs-root ./scenarios
Consumers can validate one immutably staged pack in-process, without Git, subprocesses, or pack-local code:
from aces_scenario_packs import validate_pack
result = validate_pack(pack_root)
if not result.ok:
reject(result.errors)
This checks the static ingest contract: pack identity, required provenance and safety/review policy, an optional referenced compatibility manifest, and direct SDL documents through ACES. Diagnostics contain bounded error codes and relative locations, never source bodies or absolute paths. See Single-Pack Consumer Validation.
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/). - 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
This repository is subordinate to ACES core (aces-sdl): it exists to make
authoring and shipping ACES scenarios easier, and defines no extensions to
ACES semantics
(ADR 0009).
- ACES core owns the Scenario Definition Language (SDL) and all scenario semantics. Where ACES owns a concept, packs consume it from ACES.
- This repository owns how a scenario pack is structured, authored, validated, and released — the layout and 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
Releases are managed by release-please — merge-driven, nothing hand-run
(see ADR 0008). The version
lives in pyproject.toml ([project].version) and is bumped by release-please;
__version__ derives from it. The Conventional Commit PR title decides the
bump:
| PR title | Bump |
|---|---|
feat!: / BREAKING CHANGE: |
major (pre-1.0: minor) |
feat: |
minor |
fix: / perf: |
patch |
docs: chore: refactor: test: ci: build: |
no release |
You never edit CHANGELOG.md — release-please owns it. As feature PRs land on
main (via dev), release-please keeps a chore(main): release X.Y.Z PR up to
date with the version bump + changelog. Merge that PR to release: it tags
vX.Y.Z, builds the sdist + wheel, generates a CycloneDX SBOM, publishes to PyPI
via OIDC, and cuts the GitHub Release. (The release PR is opened by the CI token,
so its checks don't auto-run — admin-merge it.) A CI check enforces conventional
PR titles and bans agent-branding prefixes.
Licensed under the MIT License (see LICENSE).
Metadata
Release files for aces-scenario-packs 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aces_scenario_packs-2.0.1.tar.gz | 153.5 kB | With provenance | Details for aces_scenario_packs-2.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aces_scenario_packs-2.0.1-py3-none-any.whl | Python 3 | none | any | Details for aces_scenario_packs-2.0.1-py3-none-any.whl |
Total release size: 249.2 kB
Release files / aces_scenario_packs-2.0.1.tar.gz
| Download URL | aces_scenario_packs-2.0.1.tar.gz |
|---|---|
| Size | 153.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b96981643db06b487334cea3c9b8bfbc7c9fcb078ad6451da3634d03b3aa53ec
|
|
BLAKE2b-256 checksum How to use checksums |
cd8dc5d9f8187c1d17c7b42454fab07cfce9db8e5c74592954fb6596b2ac32d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.
Transparency logRelease files / aces_scenario_packs-2.0.1-py3-none-any.whl
| Download URL | aces_scenario_packs-2.0.1-py3-none-any.whl |
|---|---|
| Size | 95.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f56aa3b937c447a30548676a23fa8c161427c1c4be859e85928404d6d68f298
|
|
BLAKE2b-256 checksum How to use checksums |
da136812991eb3011406dba4ba20db786f8ee67a90b4dc05e5d6865728c7a50f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.
Transparency logSecurity for aces-scenario-packs 2.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for aces_scenario_packs-2.0.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 17, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.