GitHub Issue Standard - joeroberts/release-radar GitHub Wiki
This document defines how we use GitHub Issues and related planning features. It is the reference for agents working with our issues and for skills that perform GitHub planning or backlog management.
The operating procedures belong in the relevant skills. This standard defines the objects, relationships, metadata, and requirements those skills must follow.
| Object | What it represents | Example | Usage rules |
|---|---|---|---|
| Project | Ongoing planning and visibility for application development. | Release Radar Development |
Contains the application’s planned and active work, organized around delivery milestones. |
| Milestone | A defined delivery checkpoint or release target. | Documentation and Workflow Baseline |
Defines the delivery outcome and completion criteria. A due date is set when agreed. |
| Epic | A goal contributing to the milestone, decomposed into related stories. | Establish GitHub development standards and skills |
Has the epic label and a milestone. Its stories and delivery tasks must have that same milestone. |
| User story | An outcome that contributes to its epic. | An agent can create issues that comply with the GitHub Issue Standard |
Has acceptance criteria and a native parent link to its epic. |
| Delivery task | Bounded execution work contributing to a story. | Add issue-creation skill evaluations for required metadata |
Has a verifiable result and a native parent link to its story. |
| Issue | The GitHub record used to track an epic, story, task, bug, or maintenance item. | Correct missing milestone assignment in issue creation |
Contains the required issue content and classification labels. |
| Sub-issue | An issue linked beneath a parent through GitHub’s native hierarchy. | The evaluation task linked beneath the issue-creation story | Establishes decomposition; does not replace milestone or Project membership. |
| Label | Metadata identifying work type, component, severity, or an impediment. |
epic, type:bug, type:chore, component:skills
|
Uses the approved taxonomy. Every issue requires a work-type label, including standalone issues. |
| View | A filtered presentation of Project items. |
Current milestone, Ready work, Blocked work
|
Displays existing Project items through filters and fields; does not establish another hierarchy. |
| Iteration | A recurring execution timebox within the planning process. | Iteration 12: October 5–16 |
Identifies the timebox selected for work. It does not replace or change the issue’s milestone. |
Our organizational structure:
Project
└── Milestone
└── Epic
└── User story
└── Delivery task
Milestone consistency is mandatory: an epic, all its stories, and all their delivery tasks must share the epic’s milestone. Work intended for a different milestone must be organized under a separate epic for that milestone. The earlier cross-milestone exception is removed.
A standalone bug or maintenance issue may have no parent when there is no meaningful epic or story. It must still have its Project membership and the appropriate type:bug or type:chore label, plus other applicable metadata. Selected delivery work must have a milestone. Missing parentage does not exempt an issue from classification.
Every issue must contain:
| Content | Requirement |
|---|---|
| Outcome | The result the work must achieve. |
| Scope | What is included and any material exclusions. |
| Acceptance criteria | Observable, verifiable conditions for completion. |
| Context | Relevant specifications, decisions, dependencies, and related work. |
Before execution, the issue must identify its responsible assignee and applicable Project. Parent, milestone, iteration, and blocking relationships must be present where relevant.
Implementation pull requests and commits must be linked as they become available.
All work must have a ticket. The ticket defines bounded work and records its results; it does not independently authorize unrelated work or external actions.
The following taxonomy is the draft baseline. Adoption must account for existing labels rather than create an overlapping taxonomy. Publishing the standard does not itself relabel existing issues.
| Metadata | Values or naming rule | Required usage |
|---|---|---|
| Work type |
type:feature, type:bug, type:chore, type:tech-debt, type:research
|
Exactly one primary work type after triage. |
| Epic marker | epic |
Required on epic issues. Identifies hierarchy level independently of work type. |
| Component | component:<name> |
Apply when the affected component is known. Multiple components are permitted. Names must come from the repository’s defined component taxonomy. |
| Priority | Project field: High, Medium, Low
|
Required before an issue enters Ready. An unset value means unassessed, not Low. |
| Severity |
severity:critical, severity:major, severity:minor
|
Required for assessed bugs. Describes impact independently of priority. |
| Impediment |
status:blocked, status:feedback-needed
|
Apply while the condition exists. The issue must explain the cause or required information. |
| Workflow state | Project Status field | Use the states defined in Section 4. Do not duplicate ordinary workflow states in labels. |
| Assignee | GitHub assignee | Required before execution. Identifies the person or account responsible for the issue. |
| Delivery target | Milestone | Required when work contributes to a defined delivery checkpoint. |
| Timebox | Project iteration field | Required for work selected into an iteration when iteration-based planning is in use. |
| Type | Meaning |
|---|---|
| Feature | New or changed user capability. |
| Bug | Behavior that fails an established requirement. |
| Chore | Routine maintenance without a new capability. |
| Technical debt | Structural improvement addressing a known maintenance or development cost. |
| Research | Investigation intended to produce findings or a decision. |
The epic marker describes an issue’s level in the hierarchy. Work type describes its primary purpose. An epic may therefore carry both epic and a work-type label.
Priority expresses the relative importance of delivering work.
| Priority | Meaning |
|---|---|
| High | Takes precedence over Medium and Low work when selecting eligible work. |
| Medium | Normal delivery priority. |
| Low | Lower relative urgency; selected after higher-priority eligible work unless explicitly directed otherwise. |
Priority does not eliminate dependency, readiness, or authorization requirements. It does not establish an exact ordering between issues with the same value.
Severity expresses the impact of a defect.
| Severity | Meaning |
|---|---|
| Critical | A core capability is unavailable without a reasonable workaround, or confirmed data loss or security impact requires immediate escalation. |
| Major | Substantial functionality is impaired, but impact is contained or a workaround exists. |
| Minor | Limited impairment with low operational impact. |
Severity does not automatically set priority or authorize interruption, emergency changes, or expanded scope.
- Labels must have clear descriptions and consistent names.
- Labels with different names must not duplicate the same meaning.
- Colors must support readability; color alone must not convey meaning.
- New labels must address a recurring classification need that existing labels cannot represent.
- Ordinary issue creation must use the established taxonomy rather than invent a parallel one.
- Changes to the taxonomy must identify how existing labels and affected issues will be handled.
- Label removal must account for the classification information that would be lost.
Each planning attribute must have one authoritative location. For example, priority belongs in the Priority field and workflow state belongs in Status; separately maintained labels must not compete with those values.
| State | Meaning | Required condition |
|---|---|---|
| Backlog | Captured work that is not ready for execution. | The issue identifies the requested work and any information still needed. |
| Ready | Understood work eligible for selection. | Scope, acceptance criteria, priority, and relevant dependencies are sufficiently defined. No unresolved prerequisite prevents execution. |
| In Progress | Work is actively being executed. | An assignee is responsible and execution is authorized. |
| In Review | The deliverable awaits required verification, independent review, or delivery checks. | The candidate deliverable and evidence needed for review are available. |
| Done | The work has met its acceptance criteria and completed its authorized delivery obligations. | Results and verification are recorded, and no required completion work remains. |
Board state must reflect actual work rather than an intended next action.
Blocked work retains its current workflow state and carries the appropriate impediment label. The issue must identify the blocking cause, related dependency where applicable, and what is needed to unblock it.
A closed issue marked not planned is not completed delivery and must not be represented as Done. Reports must distinguish completed work from work that was declined, cancelled, or closed as a duplicate.
A parent issue is complete only when its own outcome and acceptance criteria are satisfied. Closed children alone do not establish parent completion.
| Review area | Pass criteria |
|---|---|
| Scope coverage | Every issue or planning object named in the assignment appears in the result, or is explicitly identified as unchanged, inaccessible, or excluded with a reason. |
| Project placement | Each issue belongs to the intended development Project. Any proposed additional Project identifies the distinct planning need it serves. |
| Milestone consistency | Each epic has a milestone. Every descendant has the same milestone. No descendant is unassigned or assigned to another milestone. |
| Hierarchy | Each story has its intended epic as its native parent; each delivery task has its intended story as its native parent. Standalone exceptions have an appropriate work-type label. |
| Dependencies | Each stated execution prerequisite is represented by a blocking relationship when tracked as an issue. Related links are not incorrectly used as parentage or blocking dependencies. |
| Issue outcome | Names the observable result and the user, agent, or system that benefits. An activity such as “investigate labels” alone fails; “document the approved label taxonomy and its usage rules” identifies a result. |
| Issue scope | Identifies the behavior, artifact, or component being changed. Material exclusions and boundaries are stated so the assignee can distinguish required work from adjacent work. |
| Acceptance criteria | Each criterion describes an observable condition with a pass/fail result. Claims such as “works correctly,” “is robust,” or “is clear” fail unless accompanied by conditions that establish what those terms mean. |
| Issue context | Links the governing standard or specification and any known prerequisite or decision needed to perform the work. Unresolved inputs are explicitly identified rather than silently assumed. |
| Metadata | Required labels and fields are populated with approved values. Exactly one primary work-type label is present; epics also carry epic. Priority, severity, and workflow state are not conflated. |
| Workflow state | Evidence supports the state: Ready meets readiness conditions; In Progress has an active assignment; In Review has a reviewable deliverable; Done has completed acceptance and delivery evidence. |
| Completion | Each acceptance criterion has a recorded result. Required reviews and authorized delivery steps are complete. Parent completion is checked against the parent’s own criteria. |
| Authorization | Applied changes match the authorized objects and actions. Additional changes have explicit authorization recorded. |
| Exceptions | Each departure identifies the rule, rationale, scope, approving authority, and duration or ending condition. The approval applies to the work being reviewed. |
For example, this acceptance criterion fails:
Issues have appropriate metadata.
This passes:
Every epic has the
epiclabel and exactly one approved work-type label. Its stories and delivery tasks have the same milestone as the epic. The reviewer reports any missing or conflicting assignments.
A required finding must identify:
- The requirement that was not met.
- The observed deviation.
- The correction needed.
The review result is Pass when applicable requirements are satisfied or covered by valid exceptions. It is Changes required when unresolved noncompliance remains.
Optional improvements and reviewer preferences are not blocking requirements.
Skills derived from this standard must use these requirements as evaluation criteria. Evaluations must cover both compliant behavior and relevant failures, including incomplete metadata, incorrect relationships, unauthorized changes, and premature completion.
An exception is a bounded, approved departure from a specific requirement. It is justified when following that requirement would not reasonably serve the actual work and an alternative is necessary.
The exception record must identify:
- The affected requirement.
- The reason for the departure.
- The alternative and its consequences.
- The affected scope.
- The approving authority.
- Its duration or ending condition.
- How normal compliance will resume, where applicable.
The owner or an explicitly designated exception authority must approve the departure before it is used. Agents cannot approve their own exceptions.
The affected issue must link to the approval. An exception applies only to its recorded scope and duration; previous exceptions do not establish standing permission.
This exception mechanism cannot override STOP instructions, security restrictions, or external-action authorization requirements.
GitHub issues hold current work, status, acceptance records, useful decisions, verification results, and remaining blockers. They must not become per-turn diaries.
Ticket-owned implementation plans live in the Wiki. The owning issue links to the plan and its reviewed revision rather than duplicating its full text.
The Wiki is canonical for development standards, product specifications, and architecture decisions. Code, assets, and documentation that must match the implementation remain repository-owned.
This document is the authoritative reference for how we use GitHub Issues and related planning features. Relevant skills define the operating procedures and reference these requirements rather than maintaining competing definitions.
Publishing or revising this standard does not itself restructure the backlog, modify Project configuration, or migrate labels.