Issue Tracking And Labels
Alternun now uses a simple issue workflow so roadmap items, implementation work, and validation gaps are visible in GitHub without relying on memory.
Required Issue Shape
For meaningful work, issues should include:
- summary
- scope
- deliverables
- acceptance criteria
- dependencies
- references to relevant docs or specs
That structure keeps planning readable and makes review easier when work spans backend, infrastructure, and blockchain concerns.
Parent And Child Flow
Use an epic when work is too large for one issue.
Good epic behavior:
- defines the larger objective
- lists child issues in execution order
- keeps cross-cutting dependencies visible
- stays open until the remaining child issues and epic acceptance criteria are satisfied
Good child issue behavior:
- owns one coherent slice of delivery
- declares dependencies explicitly
- can be closed independently once its own acceptance criteria are met
Label Taxonomy
Every significant issue should usually have:
- one
type:*label - one or more
area:*labels - one
status:*label while it is open - one
priority:*label
Type Labels
type:epic: parent tracker for a delivery streamtype:feature: implementation of a new capability or behaviortype:spec: design, schema, contract, or interface definitiontype:task: focused operational or implementation work
Area Labels
area:identity: Authentik, auth flows, JWTs, and identity contractsarea:infra: deployment, DNS, TLS, runtime, secrets, and operationsarea:backend: API services, workers, and server-side logicarea:api: REST and OpenAPI contractsarea:data: schemas, migrations, persistence, and ownership boundariesarea:wallet: wallet registration, linking, provisioning, and custodyarea:blockchain: contracts, chain events, and token flowsarea:admin: internal operator and admin surfaces
Status Labels
status:planned: defined and queuedstatus:in-progress: actively being workedstatus:needs-validation: implementation exists but proof is still missingstatus:blocked: cannot advance until an external dependency or decision is resolved
Priority Labels
priority:p0: launch-blocking or critical pathpriority:p1: important near-term workpriority:p2: follow-up work after current priorities
Recommended Lifecycle
1. Triage
When a new issue is opened:
- decide whether it is an epic, feature, spec, or task
- add the subsystem area labels
- assign initial status and priority
- reject or split issues that combine too many unrelated concerns
2. Planning
Before implementation:
- add acceptance criteria
- add dependencies
- split oversized work into child issues if needed
- link the issue to the PR once implementation starts
3. Execution
While work is active:
- keep
status:in-progresscurrent - add progress comments when meaningful milestones land
- move to
status:needs-validationwhen code exists but evidence is incomplete
4. Closure
Before closing an issue:
- verify the acceptance criteria are satisfied
- update the parent epic checklist or status comment if applicable
- close follow-up gaps as separate issues instead of leaving them implicit
When To Open A Follow-Up Issue
Open a follow-up issue when:
- an implementation lands but validation is still missing
- a spec is clear enough to split into implementation work
- a merged PR reveals a separate operational or product task
- an epic has mixed concerns that should be tracked independently
Documentation Rule
If a change alters:
- architecture
- delivery flow
- contracts or schemas
- contributor workflow
then update the relevant docs in the same change whenever possible.
For maintainer-specific operating notes, see the internal repo doc at docs/contribution-workflow.md.