pub enum PhaseId {
Requirements,
Design,
Tasks,
Review,
Fixup,
Final,
}Expand description
Phase identifiers for the spec generation workflow.
PhaseId represents the different phases in xchecker’s spec generation pipeline.
Phases execute in a defined order with dependencies between them.
§Phase Order
The standard workflow progresses through phases in this order:
Requirements → Design → Tasks → Review → Fixup → Final§Dependencies
Requirements: No dependencies (starting phase)Design: RequiresRequirementsto complete successfullyTasks: RequiresDesignto complete successfullyReview: RequiresTasksto complete successfullyFixup: RequiresReviewto complete successfullyFinal: RequiresFixupto complete successfully
§Example
use xchecker_utils::types::PhaseId;
let phase = PhaseId::Requirements;
assert_eq!(phase.as_str(), "requirements");
// PhaseId is Copy, so it can be used multiple times
let phase2 = phase;
assert_eq!(phase, phase2);§Serialization
PhaseId serializes to its string representation (e.g., "requirements", "design").
Variants§
Requirements
Requirements phase: transforms rough ideas into structured EARS requirements.
Design
Design phase: creates architecture and component design from requirements.
Tasks
Tasks phase: generates actionable implementation tasks from design.
Review
Review phase: validates and refines the generated artifacts.
Fixup
Fixup phase: applies code changes proposed by the LLM.
Final
Final phase: completes the workflow and generates final artifacts.
Implementations§
Source§impl PhaseId
impl PhaseId
Sourcepub const fn as_str(&self) -> &'static str
pub const fn as_str(&self) -> &'static str
Returns the string representation of the phase.
This is the canonical lowercase name used in receipts, status output, and CLI commands.
§Example
use xchecker_utils::types::PhaseId;
assert_eq!(PhaseId::Requirements.as_str(), "requirements");
assert_eq!(PhaseId::Design.as_str(), "design");
assert_eq!(PhaseId::Tasks.as_str(), "tasks");Trait Implementations§
Source§impl<'de> Deserialize<'de> for PhaseId
impl<'de> Deserialize<'de> for PhaseId
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PhaseId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PhaseId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for PhaseId
impl Serialize for PhaseId
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Copy for PhaseId
impl Eq for PhaseId
impl StructuralPartialEq for PhaseId
Auto Trait Implementations§
impl Freeze for PhaseId
impl RefUnwindSafe for PhaseId
impl Send for PhaseId
impl Sync for PhaseId
impl Unpin for PhaseId
impl UnsafeUnpin for PhaseId
impl UnwindSafe for PhaseId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.