The Software Development Lifecycle (SDLC) in Shep defines the phases a Feature progresses through from inception to maintenance.
export enum SdlcLifecycle {
Started = 'Started',
Analyze = 'Analyze',
Requirements = 'Requirements',
Research = 'Research',
Planning = 'Planning',
Implementation = 'Implementation',
Review = 'Review',
Maintain = 'Maintain',
Blocked = 'Blocked',
}
Purpose: Initial state when a feature is first created.
Entry criteria:
Activities:
Exit criteria:
Artifacts produced: None
Purpose: Analyze the repository to understand codebase structure and context.
Entry criteria:
Activities:
Exit criteria:
Artifacts produced: Repository analysis docs
Purpose: Gather and validate feature requirements through conversational AI.
Entry criteria:
Activities:
Exit criteria:
Artifacts produced: None (requirements stored in Feature)
Purpose: Investigate technical approaches and make architecture decisions.
Entry criteria:
Activities:
Exit criteria:
Artifacts produced: Research document
Purpose: Break down requirements into executable work items.
Entry criteria:
Activities:
Exit criteria:
Artifacts produced:
Purpose: Execute code changes according to plan.
Entry criteria:
Activities:
Exit criteria:
Artifacts produced: Code, updated docs
Purpose: Review implementation for correctness and quality.
Entry criteria:
Activities:
Exit criteria:
Artifacts produced: Review reports
Purpose: Ongoing support and iteration.
Entry criteria:
Activities:
Exit criteria: N/A (ongoing)
Artifacts produced: Various
Purpose: Indicates a feature is blocked and cannot progress.
Entry criteria:
Activities:
Exit criteria:
+----> Blocked (can be entered from any phase)
|
+--------------+
| Started |
+------+-------+
| begin analysis
v
+--------------+
| Analyze |
+------+-------+
| analysis complete
v
+--------------+
| Requirements |
+------+-------+
| requirements gathered
v
+--------------+
| Research |
+------+-------+
| research complete
v
+--------------+
| Planning |
+------+-------+
| plan complete
v
+--------------+
|Implementation|
+------+-------+
| implementation complete
v
+--------------+
| Review |
+------+-------+
| review passed
v
+--------------+
| Maintain |
+--------------+
Valid transitions are forward-only with specific exceptions:
| From | To | Allowed | Reason |
|---|---|---|---|
| Started | Analyze | Yes | Normal flow |
| Analyze | Requirements | Yes | Normal flow |
| Requirements | Research | Yes | Normal flow |
| Requirements | Implementation | No | Must plan first |
| Research | Planning | Yes | Normal flow |
| Research | Requirements | Yes | Need more requirements |
| Planning | Implementation | Yes | Normal flow |
| Planning | Research | Yes | Re-research needed |
| Implementation | Review | Yes | Normal flow |
| Implementation | Planning | Yes | Re-planning needed |
| Review | Maintain | Yes | Normal flow |
| Review | Implementation | Yes | Fixes needed |
| Maintain | Requirements | Yes | New feature iteration |
| Any | Blocked | Yes | Blocking issue |
In the web UI, lifecycle is shown as a progress indicator:
[Started] -> [Analyze] -> [Requirements] -> [Research] -> [Planning] -> [Implementation] -> [Review] -> [Maintain]
v v v * o o o o
v = Completed
* = Current
o = Pending
Update when:
Related docs: