summaryrefslogtreecommitdiff
path: root/makima/src/llm
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-19 17:40:25 +0000
committersoryu <soryu@soryu.co>2026-01-19 17:40:25 +0000
commit164941cbd591b46f69a034bb9b86521fd7700ddb (patch)
treea11f4dc7196f6e00c7d52da1cfc6aa982cce60aa /makima/src/llm
parent0833fb1f30c0c3b920157deb882e0e902c3af02a (diff)
downloadsoryu-164941cbd591b46f69a034bb9b86521fd7700ddb.tar.gz
soryu-164941cbd591b46f69a034bb9b86521fd7700ddb.zip
Remove 'task' type contract
Diffstat (limited to 'makima/src/llm')
-rw-r--r--makima/src/llm/phase_guidance.rs13
-rw-r--r--makima/src/llm/task_output.rs4
2 files changed, 17 insertions, 0 deletions
diff --git a/makima/src/llm/phase_guidance.rs b/makima/src/llm/phase_guidance.rs
index e2d6cd8..0d4bb3d 100644
--- a/makima/src/llm/phase_guidance.rs
+++ b/makima/src/llm/phase_guidance.rs
@@ -373,6 +373,19 @@ pub fn get_phase_checklist(
suggestions.push(format!("Wait for {} running task(s) to complete", stats.running));
} else if stats.failed > 0 {
suggestions.push(format!("Address {} failed task(s)", stats.failed));
+ } else if stats.done == stats.total && stats.total > 0 {
+ // All tasks complete - for simple contracts, this is the terminal phase
+ // For specification contracts, they should advance to review phase
+ suggestions.push("Mark the contract as completed (for simple contracts) or advance to Review phase".to_string());
+ }
+ }
+
+ // Suggest completion for review phase (terminal for specification contracts)
+ if phase == "review" {
+ let has_release_notes = file_deliverables.iter()
+ .any(|d| d.template_id == "release-notes" && d.completed);
+ if has_release_notes {
+ suggestions.push("Mark the contract as completed".to_string());
}
}
diff --git a/makima/src/llm/task_output.rs b/makima/src/llm/task_output.rs
index c71c05a..c5d709e 100644
--- a/makima/src/llm/task_output.rs
+++ b/makima/src/llm/task_output.rs
@@ -83,6 +83,10 @@ pub enum SuggestedAction {
task_id: Uuid,
task_name: String,
},
+ /// Mark the contract as completed
+ MarkContractComplete {
+ contract_id: Uuid,
+ },
}
/// Analysis of a completed task's output