This repository publishes the standard index for public packs maintained in
the attune-packs GitHub organization.
The consumable index is index.json:
https://raw.githubusercontent.com/attune-system/index/main/index.json
This is the live publishing feed. Attune database migrations seed an immutable snapshot from the Attune release instead, so catalog contents cannot change independently of that release. Administrators can add this live URL separately when automatic catalog updates are explicitly desired:
attune pack index add \
https://raw.githubusercontent.com/attune-system/index/main/index.json \
--name "Attune Standard Pack Index"The Attune deployment must allow raw.githubusercontent.com, github.com,
and codeload.github.com in its pack registry public-host policy. The codeload
host is required because Attune falls back from a failed Git source to the
entry's independently checksummed GitHub archive.
Each index entry represents the version declared by a pack's root
pack.yaml at an immutable commit from the repository's default branch. The
entry provides two verified sources:
- A Git URL pinned to the 40-character commit SHA, with an Attune directory checksum generated with Attune's framed path-and-content algorithm.
- A GitHub source archive pinned to the same commit, with a SHA-256 checksum of the downloaded archive.
Attune binds the entry ref and version to the installed pack.yaml. If Git
fails, it verifies and installs the archive fallback, and records that archive's
checksum as provenance.
The index is rebuilt on a schedule. Full syncs skip invalid repositories with warnings, retaining their last published entries when available so healthy pack updates are not blocked. Pack repositories can request an immediate refresh through the reusable workflow in this repository; targeted refreshes remain strict and fail if the requested pack is invalid.
| Path | Purpose |
|---|---|
index.json |
Generated standard index consumed by Attune |
schema/index.schema.json |
Machine-readable index format contract |
scripts/build_index.py |
Deterministic, atomic GitHub organization index builder |
scripts/refresh_pinned_metadata.py |
Regenerate selected derived metadata from a saved index without changing published sources |
scripts/validate_index.py |
Schema and standard-index policy validation |
.github/workflows/sync.yml |
Scheduled and event-driven index refresh |
.github/workflows/publish-pack.yml |
Reusable workflow called by pack repositories |
templates/publish-pack-index.yml |
Thin caller workflow for pack repositories |
docs/ |
Automation contract, architecture, inventory, custom-index, publishing, and operations guides |
Python 3.11 or newer is required.
python -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
GITHUB_TOKEN="$(gh auth token)" python scripts/build_index.py
python scripts/validate_index.py
python -m unittest discover -s tests -vSee Building a Custom Index to use the tooling for another GitHub organization. See Pack Publishing for the standard-index onboarding flow.
The initial organization inventory and known metadata gaps are recorded in Current State.
Maintainers of the index and participating pack repositories should also read the Automation Contract, which defines triggers, ownership, guarantees, recovery behavior, and credential expectations.