Issue Lifecycle Specification
Version: 1.0.0 Status: DRAFT Created: 2025-12-29 Related: RELEASE-MANAGEMENT-SPEC.md, IMPLEMENTATION-ORCHESTRATION-SPEC.md, PROJECT-LIFECYCLE-SPEC.mdRFC 2119 Conformance
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in BCP 14 RFC 2119 RFC 8174 when, and only when, they appear in all capitals, as shown here.Preamble
Purpose
This specification defines the Issue Lifecycle Protocol for CLEO, covering how external inputs (bug reports, feature requests, security issues) are ingested, triaged, tracked, and resolved. Issues are tracked as Tasks/Epics within CLEO’s existing hierarchy, using theorigin field to maintain provenance.
Authority
This specification is AUTHORITATIVE for:- Issue origin schema (
originfield) - Issue lifecycle states and transitions
- Triage workflow and severity classification
- Issue-to-Task/Epic relationships
- Verification and closure criteria
- External reference linking (GitHub, JIRA, etc.)
- Exit codes 60-69 (Issue Management)
- IMPLEMENTATION-ORCHESTRATION-SPEC.md for task verification
- RELEASE-MANAGEMENT-SPEC.md for release tracking
- LLM-AGENT-FIRST-SPEC.md for JSON output standards
Core Principle
Issues ARE Tasks. CLEO does not have a separate “issue” entity. Issues are Tasks or Epics with an origin field that tracks their external source.
Part 1: Architecture Overview
1.1 Issue Flow
1.2 Issue Types
| Type | Description | Typical Scope | Priority Default |
|---|---|---|---|
bug-report | Something is broken | Task or Epic | Based on severity |
feature-request | User wants new functionality | Epic | medium |
security | Security vulnerability | Task (urgent) | critical |
technical-debt | Internal improvement | Task or Epic | low |
dependency | External dependency issue | Task | Based on severity |
regression | Previously working, now broken | Task | high |
Part 2: Schema Definition
2.1 Origin Field
Add to task definition:2.2 Issue Lifecycle in Task Status
Issues use existing taskstatus field with additional semantics:
| Status | Issue Meaning |
|---|---|
pending | Reported, awaiting triage |
active | Being worked on |
blocked | Blocked by dependency or unclear requirements |
done | Fixed and verified (check origin.resolution) |
cancelled | Closed without fix (check origin.resolution for reason) |
Part 3: Issue Lifecycle States
3.1 State Machine
3.2 Resolution Types
| Resolution | Meaning | Final Status |
|---|---|---|
fixed | Issue resolved with code change | done |
wontfix | Will not fix (by design, out of scope) | cancelled |
duplicate | Same as another issue | cancelled |
invalid | Not actually a bug/issue | cancelled |
cannot-reproduce | Cannot recreate the issue | cancelled |
Part 4: CLI Commands
4.1 Issue Management
4.2 Examples
Part 5: Severity and Priority
5.1 Severity Classification
| Severity | Definition | Response Time | Examples |
|---|---|---|---|
critical | System unusable, data loss, security breach | Immediate | Auth bypass, data corruption |
major | Major functionality broken | Within 24h | Cannot complete core workflow |
minor | Minor functionality broken, workaround exists | Within sprint | UI glitch with workaround |
trivial | Cosmetic, no functional impact | Best effort | Typo, minor styling |
5.2 Severity to Priority Mapping
| Severity | Default Priority | Rationale |
|---|---|---|
critical | critical | Stop everything, fix now |
major | high | Fix soon, may block users |
minor | medium | Schedule in upcoming work |
trivial | low | Fix when convenient |
5.3 Security Issue Handling
Security issues (origin.type = security) have special handling:
- Always
criticalpriority regardless of severity - Private by default - not shown in public roadmaps
- Fast-track verification - security team must verify
- Coordinated disclosure - track disclosure timeline
Part 6: Issue-Epic Relationship
6.1 Affected Epic Tracking
When a bug affects functionality delivered by an Epic:6.2 Epic Regression Tracking
Epics can track their “health” based on linked issues:Part 7: Verification Protocol
7.1 Verification Requirements
Before an issue can be marked as verified:- Fix implemented - Task
verification.passed = true - Regression test added - Test that would catch recurrence
- Original scenario tested - Exact reported scenario works
- No side effects - Related functionality still works
7.2 Verification Command
origin.verifiedAt = now()origin.verifiedBy = "@qa-team"- Adds note to task notes
7.3 Unverified Issue Tracking
Part 8: External Integration
8.1 GitHub Integration
8.2 Reference Format Support
| Format | Platform | Example |
|---|---|---|
GH-<num> | GitHub | GH-123 |
#<num> | GitHub (short) | #123 |
JIRA-<num> | Jira | PROJ-456 |
BUG-<num> | Generic | BUG-789 |
<hash> | Git commit | abc1234 |
Part 9: Error Codes (60-69)
| Code | Constant | Meaning |
|---|---|---|
| 60 | E_ISSUE_CREATE_FAILED | Failed to create issue |
| 61 | E_INVALID_ORIGIN_TYPE | Unknown origin type |
| 62 | E_INVALID_SEVERITY | Unknown severity level |
| 63 | E_INVALID_RESOLUTION | Unknown resolution type |
| 64 | E_ALREADY_VERIFIED | Issue already verified |
| 65 | E_NOT_FIXED | Cannot verify unfixed issue |
| 66 | E_DUPLICATE_NOT_FOUND | Duplicate-of task doesn’t exist |
| 67 | E_CANNOT_REOPEN | Cannot reopen (wrong state) |
| 68 | E_EXTERNAL_SYNC_FAILED | Failed to sync with external tracker |
| 69 | E_ISSUE_LOCKED | Issue is locked (released) |
Part 10: Reporting
10.1 Issue Metrics
Part 11: Conformance
11.1 Conformance Requirements
A conforming implementation MUST:- Support
originschema field (Part 2) - Support all issue CLI commands (Part 4)
- Support severity classification (Part 5)
- Support verification workflow (Part 7)
- Use exit codes 60-69 (Part 9)
- Support external reference formats (Part 8)
- Support issue metrics (Part 10)
- Track affected Epics (Part 6)
- Support external tracker sync (GitHub, Jira)
- Support custom severity levels
- Support custom resolution types
Part 12: Related Specifications
| Document | Relationship |
|---|---|
| RELEASE-MANAGEMENT-SPEC.md | Downstream: Issues feed into releases |
| IMPLEMENTATION-ORCHESTRATION-SPEC.md | Implementation: How fixes are implemented |
| PROJECT-LIFECYCLE-SPEC.md | Context: Greenfield/brownfield patterns |
| LLM-AGENT-FIRST-SPEC.md | AUTHORITATIVE: JSON output standards |
Appendix A: Quick Reference
Issue Commands
Issue Flow
Severity Levels
Resolution Types
Appendix B: Version History
Version 1.0.0 (2025-12-29)
- Initial specification
- Origin schema for issue tracking
- Triage workflow
- Verification protocol
- Severity classification
- External reference support
- Exit codes 60-69
End of Specification
