cli

SDLC Lifecycle

The Software Development Lifecycle (SDLC) in Shep defines the phases a Feature progresses through from inception to maintenance.

Lifecycle Enum

export enum SdlcLifecycle {
  Started = 'Started',
  Analyze = 'Analyze',
  Requirements = 'Requirements',
  Research = 'Research',
  Planning = 'Planning',
  Implementation = 'Implementation',
  Review = 'Review',
  Maintain = 'Maintain',
  Blocked = 'Blocked',
}

Phase Descriptions

Started

Purpose: Initial state when a feature is first created.

Entry criteria:

Activities:

Exit criteria:

Artifacts produced: None

Analyze

Purpose: Analyze the repository to understand codebase structure and context.

Entry criteria:

Activities:

Exit criteria:

Artifacts produced: Repository analysis docs

Requirements

Purpose: Gather and validate feature requirements through conversational AI.

Entry criteria:

Activities:

Exit criteria:

Artifacts produced: None (requirements stored in Feature)

Research

Purpose: Investigate technical approaches and make architecture decisions.

Entry criteria:

Activities:

Exit criteria:

Artifacts produced: Research document

Planning

Purpose: Break down requirements into executable work items.

Entry criteria:

Activities:

Exit criteria:

Artifacts produced:

Implementation

Purpose: Execute code changes according to plan.

Entry criteria:

Activities:

Exit criteria:

Artifacts produced: Code, updated docs

Review

Purpose: Review implementation for correctness and quality.

Entry criteria:

Activities:

Exit criteria:

Artifacts produced: Review reports

Maintain

Purpose: Ongoing support and iteration.

Entry criteria:

Activities:

Exit criteria: N/A (ongoing)

Artifacts produced: Various

Blocked

Purpose: Indicates a feature is blocked and cannot progress.

Entry criteria:

Activities:

Exit criteria:

State Transitions

+----> 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   |
+--------------+

Transition Rules

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

UI Representation

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

Maintaining This Document

Update when:

Related docs: