License Integrity
Use this skill for any change to LICENSE, CLA.md, license history,
third-party notices, package license metadata, contributor acceptance language,
or public repository license wording. Also use it for library procurement and
privacy disclosures.
Required Context
For licensing, CLA, provenance, or packaging changes, read these files completely
before editing:
docs/maintaining/license-provenance.md
LICENSE
LICENSING.md
THIRD_PARTY_NOTICES.md
CLA.md
legal/cla/archive/MANIFEST.md
- the relevant packaging, contribution, release, and public-copy files
Invariants
- Default repository SPDX expression is
AGPL-3.0-only.
- The AGPL permits commercial use subject to its terms. Do not use the words
commercial, proprietary, internal, or production as automatic license
triggers.
- Separately negotiated commercial terms grant alternative permissions only
for their stated scope. Do not promise support, warranties, maintenance, or
an SLA unless an executed agreement or order form includes it.
- Keep
LICENSE byte-identical to the complete canonical GNU AGPL version 3
text; keep the repository expression and commercial-license path in
LICENSING.md.
- Do not remove the exact legacy Albumentations 2.0.8 MIT notice or describe
the successor license as retroactive.
- CLA acceptance is version-specific. Archive every operative byte version,
record its SHA-256 identifier, and require explicit acceptance of a new
version.
- An Entity Acceptance covers only exact named legal entities and contributors
within the signer's documented authority.
- Release artifacts contain the four outbound license/provenance files and do
not contain the inbound CLA or private acceptance records.
- Build into a fresh directory outside the checkout. A source distribution
must not contain local build-output directories or nested release artifacts.
Library Procurement and Privacy Copy
For prose-only changes, read the owning documents and the implementation behind
the affected claims. The full legal context and artifact checks apply when the
change also touches licensing, provenance, or package metadata.
- Describe the product as the AlbumentationsX Python library running in the
customer's environment. Lead purchasing copy with product fit, license coverage,
and the next step. Include limitations when they affect the buyer's decision
or answer a specific question; do not add speculative warnings or repeat
security/privacy caveats throughout licensing and procurement pages.
- AX owns its library assessment documents:
LICENSING.md, SECURITY.md,
docs/privacy.md, and docs/maintaining/. Link to the owning document instead
of copying another procedure.
albumentations.ai is AX's project website. Preserve relevant website links,
including documentation, benchmarks, Explore, newsletters, licensing, and funding.
Website sign-in, accounts, and saved user content are separate from library
execution and the commercial license; do not present them as AX requirements
or license features. Keep the official contact vladimir@albumentations.ai.
- Keep telemetry to a brief README mention linking to
docs/privacy.md, which
owns the collected fields and global opt-out instructions. API parameter docs
explain the control and link to that notice. Do not repeat telemetry copy in
licensing or general procurement pages; answer explicit buyer questions in
their assessment documents.
- Verify telemetry disclosures against the event model, collectors, backend,
and pre-import opt-out behavior. A persistent random UUID is not proof of
anonymity. Telemetry remains default-on with opt-out; its use is limited to
product analysis and development, not prospect identification or sales.
- Describe the analytics provider in
docs/privacy.md as the current implementation.
Keep general product wording independent of the provider. When providers change,
update the relevant facts and account for versions still using the previous service.
- Provider retention, storage region, deletion, certifications, and operational
practices need evidence beyond source code. Do not turn an unverified target
or a questionnaire question into a public assurance or recurring manual duty.
Verification
Run the focused checks first:
uv run python tools/verify_legal_integrity.py
uv run pytest -q tests/test_legal_integrity.py
artifact_dir="$(mktemp -d)"
uv build --out-dir "${artifact_dir}"
uv run python tools/verify_legal_integrity.py --artifacts "${artifact_dir}"/*.whl "${artifact_dir}"/*.tar.gz
uv run twine check "${artifact_dir}"/*
Then run the repository quality gate required by the surrounding change.
1---2name: license-integrity3description: Maintain AlbumentationsX license, CLA, provenance notices, and packaged legal artifacts consistently.4---56# License Integrity78Use this skill for any change to `LICENSE`, `CLA.md`, license history,9third-party notices, package license metadata, contributor acceptance language,10or public repository license wording. Also use it for library procurement and11privacy disclosures.1213## Required Context1415For licensing, CLA, provenance, or packaging changes, read these files completely16before editing:17181. `docs/maintaining/license-provenance.md`192. `LICENSE`203. `LICENSING.md`214. `THIRD_PARTY_NOTICES.md`225. `CLA.md`236. `legal/cla/archive/MANIFEST.md`247. the relevant packaging, contribution, release, and public-copy files2526## Invariants2728- Default repository SPDX expression is `AGPL-3.0-only`.29- The AGPL permits commercial use subject to its terms. Do not use the words30 commercial, proprietary, internal, or production as automatic license31 triggers.32- Separately negotiated commercial terms grant alternative permissions only33 for their stated scope. Do not promise support, warranties, maintenance, or34 an SLA unless an executed agreement or order form includes it.35- Keep `LICENSE` byte-identical to the complete canonical GNU AGPL version 336 text; keep the repository expression and commercial-license path in37 `LICENSING.md`.38- Do not remove the exact legacy Albumentations 2.0.8 MIT notice or describe39 the successor license as retroactive.40- CLA acceptance is version-specific. Archive every operative byte version,41 record its SHA-256 identifier, and require explicit acceptance of a new42 version.43- An Entity Acceptance covers only exact named legal entities and contributors44 within the signer's documented authority.45- Release artifacts contain the four outbound license/provenance files and do46 not contain the inbound CLA or private acceptance records.47- Build into a fresh directory outside the checkout. A source distribution48 must not contain local build-output directories or nested release artifacts.4950## Library Procurement and Privacy Copy5152For prose-only changes, read the owning documents and the implementation behind53the affected claims. The full legal context and artifact checks apply when the54change also touches licensing, provenance, or package metadata.5556- Describe the product as the AlbumentationsX Python library running in the57 customer's environment. Lead purchasing copy with product fit, license coverage,58 and the next step. Include limitations when they affect the buyer's decision59 or answer a specific question; do not add speculative warnings or repeat60 security/privacy caveats throughout licensing and procurement pages.61- AX owns its library assessment documents: `LICENSING.md`, `SECURITY.md`,62 `docs/privacy.md`, and `docs/maintaining/`. Link to the owning document instead63 of copying another procedure.64- `albumentations.ai` is AX's project website. Preserve relevant website links,65 including documentation, benchmarks, Explore, newsletters, licensing, and funding.66 Website sign-in, accounts, and saved user content are separate from library67 execution and the commercial license; do not present them as AX requirements68 or license features. Keep the official contact `vladimir@albumentations.ai`.69- Keep telemetry to a brief README mention linking to `docs/privacy.md`, which70 owns the collected fields and global opt-out instructions. API parameter docs71 explain the control and link to that notice. Do not repeat telemetry copy in72 licensing or general procurement pages; answer explicit buyer questions in73 their assessment documents.74- Verify telemetry disclosures against the event model, collectors, backend,75 and pre-import opt-out behavior. A persistent random UUID is not proof of76 anonymity. Telemetry remains default-on with opt-out; its use is limited to77 product analysis and development, not prospect identification or sales.78- Describe the analytics provider in `docs/privacy.md` as the current implementation.79 Keep general product wording independent of the provider. When providers change,80 update the relevant facts and account for versions still using the previous service.81- Provider retention, storage region, deletion, certifications, and operational82 practices need evidence beyond source code. Do not turn an unverified target83 or a questionnaire question into a public assurance or recurring manual duty.8485## Verification8687Run the focused checks first:8889```bash90uv run python tools/verify_legal_integrity.py91uv run pytest -q tests/test_legal_integrity.py92artifact_dir="$(mktemp -d)"93uv build --out-dir "${artifact_dir}"94uv run python tools/verify_legal_integrity.py --artifacts "${artifact_dir}"/*.whl "${artifact_dir}"/*.tar.gz95uv run twine check "${artifact_dir}"/*96```9798Then run the repository quality gate required by the surrounding change.