Skip to content

Lifecycle

RTMX tracks requirements through their complete lifecycle from creation to completion.

StatusDescription
NOT_STARTEDRequirement defined but not yet worked on
MISSINGImplementation not present
WIPActively being worked on
PARTIALPartially implemented
COMPLETEFully implemented and tested
BLOCKEDCannot progress due to dependencies
FromToTrigger
NOT_STARTEDMISSINGWork begins
MISSINGWIPImplementation starts
WIPPARTIALSome acceptance criteria met
WIPCOMPLETEAll criteria met, tests pass
PARTIALCOMPLETERemaining criteria met
ANYBLOCKEDDependency not met
BLOCKEDWIPBlocker resolved
# Via CLI
rtmx update REQ-AUTH-001 --status COMPLETE
# Via Python API
db.update("REQ-AUTH-001", status=Status.COMPLETE)
# Via MCP
rtmx_update_status(req_id="REQ-AUTH-001", status="COMPLETE")

Requirements can depend on other requirements:

REQ-AUTH-002,...,dependencies=REQ-AUTH-001|REQ-DB-001

When a dependency is incomplete, downstream requirements show as blocked:

When a blocker completes, downstream requirements are automatically unblocked:

rtmx update REQ-AUTH-001 --status COMPLETE
# REQ-AUTH-002 and REQ-AUTH-003 are now unblocked

Requirements can be grouped into phases:

REQ-AUTH-001,...,phase=1
REQ-DATA-001,...,phase=2
rtmx status --phase 1
# Phase 1: 85% complete (17/20 requirements)

Requirements should depend on earlier phases completing:

REQ-PHASE2-001,...,phase=2,dependencies=REQ-PHASE1-010
MethodDescription
Unit TestAutomated unit test
Integration TestAutomated integration test
System TestEnd-to-end system test
InspectionManual code review
DemonstrationLive demo/walkthrough
AnalysisDesign analysis/review

All status changes are tracked via git:

git log --oneline -- docs/rtm_database.csv
# a1b2c3d Update REQ-AUTH-001 to COMPLETE
# d4e5f6g Add REQ-DATA-003
rtmx history REQ-AUTH-001
# 2024-01-15 09:30: NOT_STARTED → MISSING (initial)
# 2024-01-16 14:22: MISSING → WIP (alice)
# 2024-01-18 11:45: WIP → COMPLETE (alice)

Update status immediately when work state changes:

# Starting work
rtmx update REQ-AUTH-001 --status WIP
# Hit a blocker
rtmx update REQ-AUTH-001 --status BLOCKED --notes "Waiting on API spec"
# Completed
rtmx update REQ-AUTH-001 --status COMPLETE

Add test markers before implementation:

@pytest.mark.req("REQ-AUTH-001")
def test_oauth_login():
pytest.skip("Not implemented yet")

When blocked, document the reason:

rtmx update REQ-AUTH-002 --status BLOCKED \
--notes "Blocked by external API dependency, ETA 2024-02-01"