Skip to main content
Archived

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 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

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

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
aces-pack-validate --repo .
aces-pack-release check --all

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).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aces_scenario_packs-1.2.0.tar.gz (143.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aces_scenario_packs-1.2.0-py3-none-any.whl (103.3 kB view details)

Uploaded Python 3

File details

Details for the file aces_scenario_packs-1.2.0.tar.gz.

File metadata

  • Download URL: aces_scenario_packs-1.2.0.tar.gz
  • Upload date:
  • Size: 143.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aces_scenario_packs-1.2.0.tar.gz
Algorithm Hash digest
SHA256 85748c004ae2e61cd5b067b59c1105c97c48b857273b60a1394a756e36f63120
MD5 dc9aef99bbb4d02b538057d5dd653ca3
BLAKE2b-256 449a5bd094b50ef2b8613563c1b8de8a8bfa12db6241887b08c5477abb281b67

See more details on using hashes here.

Provenance

The following attestation bundles were made for aces_scenario_packs-1.2.0.tar.gz:

Publisher: release-please.yml on Brad-Edwards/aces-scenario-packs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aces_scenario_packs-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aces_scenario_packs-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 72f5430dacad9042379044950b04bda1286d3fe631fffa0e48d527c834bb84b5
MD5 f7748d53ee5326c0019d9b4ff5d1cd7a
BLAKE2b-256 194f399c766c4347d26ba88e0cf4643cf745708c12686b63c15cbb17135f0d3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aces_scenario_packs-1.2.0-py3-none-any.whl:

Publisher: release-please.yml on Brad-Edwards/aces-scenario-packs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page