Hypercollective Governance#
This document describes the governance processes for the Hypercollective, including how to propose changes, the review process, and decision criteria.
Lexicon Indexing Request (LIR)#
A Lexicon Indexing Request (LIR) is a formal proposal to add a new AT Protocol Lexicon to the indexing infrastructure.
What is a Lexicon?#
In the AT Protocol, a Lexicon defines the schema for a record type. Lexicons use NSIDs (Namespaced Identifiers) like:
app.bsky.feed.post- Bluesky postsorg.hypercerts.claim.activity- Hypercerts activity recordsapp.gainforest.dwc.occurrence- Darwin Core biodiversity occurrences
When Hypergoat indexes a lexicon, it:
- Subscribes to real-time events for that collection via Jetstream
- Stores records in the database
- Generates GraphQL types and resolvers dynamically
- Exposes the data via the GraphQL API
LIR States#
┌─────────┐ ┌──────────────┐ ┌──────────┐ ┌─────────────┐
│ Draft │ ──► │ Under Review │ ──► │ Accepted │ ──► │ Implemented │
└─────────┘ └──────────────┘ └──────────┘ └─────────────┘
│
│
▼
┌──────────┐
│ Rejected │
└──────────┘
| State | Description |
|---|---|
| Draft | Initial proposal, may be incomplete |
| Under Review | Being actively discussed by maintainers |
| Accepted | Approved for implementation |
| Implemented | Deployed to production |
| Rejected | Not accepted (with documented reasoning) |
LIR Numbering#
LIRs are numbered sequentially: LIR-0001, LIR-0002, etc.
The filename format is: LIR-XXXX-short-title.md
Example: LIR-0001-darwin-core-occurrences.md
Decision Criteria#
When reviewing a LIR, maintainers consider the following criteria:
Required#
- Valid Lexicon Schema - The lexicon must have a valid JSON schema that conforms to the AT Protocol Lexicon specification
- Published NSID - The NSID must be properly namespaced (e.g., under a domain you control)
- Clear Use Case - The proposal must explain why this data should be indexed
Strongly Encouraged#
- Existing Adoption - Are there already records being created with this lexicon?
- Community Demand - Is there demonstrated interest from multiple parties?
- Data Quality - Is the schema well-designed with appropriate types and validation?
Considerations#
- Maintenance Burden - How much ongoing maintenance will this require?
- Storage Impact - Will this significantly increase database size?
- Query Patterns - Are the expected query patterns efficient?
- Privacy/Security - Does the data have any sensitive content?
Automatic Acceptance#
The following lexicons are automatically accepted:
- Hypercerts lexicons (
org.hypercerts.*) - GainForest lexicons (
app.gainforest.*) - Core AT Protocol lexicons (as needed for ecosystem functionality)
Review Process#
1. Submission#
Author submits a LIR via:
- GitHub Issue (recommended)
- Pull Request with markdown file
2. Initial Triage (1-3 days)#
A maintainer will:
- Assign a LIR number if not already assigned
- Check for completeness
- Request clarifications if needed
- Move to "Under Review" status
3. Discussion Period (1-2 weeks)#
- Community feedback is gathered
- Technical feasibility is assessed
- Questions are addressed by the author
4. Decision#
Maintainers will:
- Accept - Move forward with implementation
- Request Changes - Ask for modifications before acceptance
- Reject - Decline with documented reasoning
5. Implementation#
Once accepted:
- Lexicon is uploaded to Hypergoat
- Backfill is triggered (if historical data exists)
- Impact Indexer documentation is updated
- LIR status is updated to "Implemented"
How to Write a Good LIR#
Do#
- Provide a clear, concise abstract
- Explain the motivation and use cases
- Include a complete lexicon schema
- Show example records
- Provide sample GraphQL queries
Don't#
- Submit incomplete lexicon schemas
- Propose lexicons without clear use cases
- Request indexing of personal/private data
- Duplicate existing functionality
Governance Roles#
| Role | Responsibilities |
|---|---|
| Author | Writes and champions the LIR |
| Maintainer | Reviews LIRs, makes decisions |
| Implementer | Adds lexicon to Hypergoat |
| Documenter | Updates Impact Indexer docs |
Current maintainers:
- GainForest core team
Amendments#
This governance document may be updated via pull request. Significant changes require approval from at least two maintainers.
Questions?#
Open a discussion or issue in this repository.