Skip to content
attune-systemPublic

About

Standard index and publishing automation for Attune packs

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Attune Standard Pack Index

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.

Publishing Model

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.

Repository Layout

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

Local Development

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

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

About

Standard index and publishing automation for Attune packs

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages