diff options
Diffstat (limited to 'makima/src/llm')
| -rw-r--r-- | makima/src/llm/templates.rs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/makima/src/llm/templates.rs b/makima/src/llm/templates.rs index 18ef46d..7a5bd38 100644 --- a/makima/src/llm/templates.rs +++ b/makima/src/llm/templates.rs @@ -8,6 +8,71 @@ use utoipa::ToSchema; use crate::db::models::BodyElement; +// ============================================================================= +// Contract Type Templates (Workflow Definitions) +// ============================================================================= + +/// A contract type template defining a workflow +#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct ContractTypeTemplate { + /// Unique identifier (e.g., 'simple', 'specification', 'feature-development') + pub id: String, + /// Display name + pub name: String, + /// What this contract type is for + pub description: String, + /// Ordered list of phases in the workflow + pub phases: Vec<String>, + /// Starting phase + pub default_phase: String, + /// True for built-in types ('simple', 'specification') + pub is_builtin: bool, +} + +/// Get all available contract type templates +pub fn all_contract_types() -> Vec<ContractTypeTemplate> { + vec![ + simple_contract_type(), + specification_contract_type(), + ] +} + +/// Simple contract type with basic plan/execute workflow +fn simple_contract_type() -> ContractTypeTemplate { + ContractTypeTemplate { + id: "simple".to_string(), + name: "Simple".to_string(), + description: "A basic workflow for straightforward tasks with planning and execution phases." + .to_string(), + phases: vec!["plan".to_string(), "execute".to_string()], + default_phase: "plan".to_string(), + is_builtin: true, + } +} + +/// Specification contract type with full research-to-review workflow +fn specification_contract_type() -> ContractTypeTemplate { + ContractTypeTemplate { + id: "specification".to_string(), + name: "Specification".to_string(), + description: "A comprehensive workflow for complex projects requiring research, specification, planning, execution, and review.".to_string(), + phases: vec![ + "research".to_string(), + "specify".to_string(), + "plan".to_string(), + "execute".to_string(), + "review".to_string(), + ], + default_phase: "research".to_string(), + is_builtin: true, + } +} + +// ============================================================================= +// File Templates +// ============================================================================= + /// A file template with suggested structure #[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] pub struct FileTemplate { |
