Published collections of contra dance choreography, prepared for import into Caller's Compendium.
Served from https://analect.callerscompendium.com/.
Status: published. The
foda-1-1collection is available through the signed feed atcollections/manifest.json. The Pages workflow generates the feed and immutable archives after the publication gate passes.
Analect — from the Greek analekta, "things gathered up": a collection of passages gathered from a larger body of work.
Caller's Compendium starts you with an empty collection. That is the right default — it is your collection — but it means every new caller begins by typing in dances they already know, or hunting for them one at a time.
This repository fixes that. It hosts curated, versioned collections that the app can offer as a single import: a published book, a traditional repertoire, a festival's programme. You pick one from a list in the app and it arrives whole.
The app fetches a manifest from this site listing the available collections. Each entry names an archive and carries its SHA-256. The manifest is signed with a detached Ed25519 signature, verified in-app against a pinned public key before anything is read; the digest then covers each archive in turn. A manifest that does not verify is refused outright.
Adding a collection therefore requires no app release — it appears in the app as soon as it is published here.
The signing key used here is separate from the one that signs application updates, so a problem with collection publishing can never affect update delivery.
The manifest carries the app-owned permission declaration and required capabilities. The current v1 archive boundary is deliberately narrow: dances and referenced choreographers only. Programs, venues, published sources, tags, custom fields, source citations, and embedded published-collection provenance are not published.
Once published, a collection is never edited or removed. Corrections and
additions are published as a new version under a transparent suffix
(example-1, example-2), and the manifest records that the newer supersedes
the older.
This is deliberate. It means a content digest stays valid forever, a signature
never needs re-issuing, and a caller who imported example-1 can be told
precisely what they have — not merely what they might have had.
Choreography — yes. Figures, titles, formations, authorship and the other structural facts of a dance. Per the U.S. Copyright Office's Compendium of Practices, the choreography of a social dance is not itself copyrightable.
Written commentary — only with permission. Teaching notes, histories, dedications, calling tips and similar prose remain the intellectual property of their author. A collection may include them only when it carries an explicit permission or licence record naming who granted it and on what terms.
Absence of such a record is a hard failure, not a warning. See CONTRIBUTING.md for what a declaration must cover.
| path | contents |
|---|---|
collections/ |
published collection archives, one directory per version |
site/ |
the static site published to GitHub Pages, including CNAME |
docs/ |
publishing process and format notes |
.github/ |
issue and PR templates, CI |
Proposals for new collections are welcome — particularly traditional and public-domain repertoire, and works whose authors are willing to see them shared. Start with CONTRIBUTING.md; it covers what a collection needs, what it may not contain, and how permission is recorded.
Please read the Code of Conduct before taking part, and SECURITY.md if you have found something exploitable.
Two different kinds of thing live here, and one licence cannot cover both — read LICENSING.md rather than trusting the repository badge.
- Software (pipeline, CI, the site in
site/) — AGPL-3.0, perLICENSE. - Choreography — not copyrightable, so there is no licence to apply and none is asserted.
- Written commentary — remains its author's, governed by the permission or licence each collection declares.
LICENSE holds the AGPL text because that is what GitHub's detection reads. It
covers the software here; it does not place any published collection under
the AGPL.
- Caller's Compendium — the app
- CallersCompendium#862 — the design this repository implements