summaryrefslogtreecommitdiff
path: root/makima/src/orchestration/directive.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/orchestration/directive.rs')
-rw-r--r--makima/src/orchestration/directive.rs28
1 files changed, 22 insertions, 6 deletions
diff --git a/makima/src/orchestration/directive.rs b/makima/src/orchestration/directive.rs
index 62f15d9..5c134d6 100644
--- a/makima/src/orchestration/directive.rs
+++ b/makima/src/orchestration/directive.rs
@@ -1359,6 +1359,11 @@ gh pr view {pr_url} --json state --jq '.state'
The previous PR was already merged/closed. You need to create a NEW PR with a fresh branch.
+Goal: {goal}
+
+Steps completed:
+{step_summary}
+
1. Clear the old PR URL:
```
makima directive update --pr-url ""
@@ -1373,10 +1378,13 @@ git checkout -b "$NEW_BRANCH" origin/{base_branch}
git push -u origin "$NEW_BRANCH"
```
-3. Create a new PR:
+3. Create a new PR. Generate a concise, descriptive PR title (max 72 characters) based on the steps completed.
+The title should summarize what the changes actually accomplish — do NOT just use the directive name "{title}".
+Focus on the actual work done in the steps listed below.
```
-gh pr create --title "{title}" --body "{pr_body}" --head "$NEW_BRANCH" --base {base_branch}
+gh pr create --title "<YOUR_GENERATED_TITLE>" --body "{pr_body}" --head "$NEW_BRANCH" --base {base_branch}
```
+Replace <YOUR_GENERATED_TITLE> with the concise descriptive title you generated.
4. Store the new PR URL:
```
@@ -1408,6 +1416,7 @@ git push origin {directive_branch}
Already-merged branches will be a no-op. If there are merge conflicts, resolve them sensibly.
"#,
title = directive.title,
+ goal = directive.goal,
pr_url = pr_url,
directive_branch = directive_branch,
base_branch = base_branch,
@@ -1437,10 +1446,15 @@ git checkout -b {directive_branch} origin/{base_branch}
git push -u origin {directive_branch}
```
-Then create the PR:
+Then create the PR. You MUST generate a concise, descriptive PR title (max 72 characters) based on the steps completed above.
+The title should summarize what the changes actually accomplish — do NOT just use the directive name "{title}".
+For example, instead of "soryu-co/soryu - makima" use something like "Fix order lifecycle, PR update, and contracts overflow".
+Focus on the actual work done in the steps.
+
```
-gh pr create --title "{title}" --body "{pr_body}" --head {directive_branch} --base {base_branch}
+gh pr create --title "<YOUR_GENERATED_TITLE>" --body "{pr_body}" --head {directive_branch} --base {base_branch}
```
+Replace <YOUR_GENERATED_TITLE> with the concise descriptive title you generated.
IMPORTANT: After creating the PR, you MUST store the PR URL so the directive system can track it.
@@ -1576,7 +1590,7 @@ pub fn build_order_pickup_prompt(
Review them and create steps to fulfil them.\n\n");
for (i, order) in orders.iter().enumerate() {
prompt.push_str(&format!(
- " {}. [{}] [{}] {} (id: {})\n",
+ " {}. [{}] [{}] {} \n orderId: {}\n",
i + 1,
order.priority,
order.order_type,
@@ -1707,13 +1721,15 @@ For each order (or group of related orders), create one or more steps:
- dependsOn: UUIDs of steps this depends on (use IDs from previous add-step responses)
- orderIndex: Execution phase number. Steps only start after ALL steps with a lower orderIndex complete.
Steps with the same orderIndex run in parallel. Use ascending values (0, 1, 2, ...) to create sequential phases.
+- orderId: The UUID of the order this step fulfils. Include this so the order is automatically marked done
+ when the step completes. Use the orderId shown in the order listing above.
Submit steps using generation {generation}:
makima directive add-step "Step Name" --description "..." --task-plan "..." --generation {generation}
(Use --depends-on "uuid1,uuid2" for dependencies)
Or batch:
- makima directive batch-add-steps --json '[{{"name":"...","description":"...","taskPlan":"...","dependsOn":[],"orderIndex":0,"generation":{generation}}}]'
+ makima directive batch-add-steps --json '[{{"name":"...","description":"...","taskPlan":"...","dependsOn":[],"orderIndex":0,"generation":{generation},"orderId":"<order-uuid>"}}]'
DEPENDENCY WORKTREE CONTINUATION:
Each step runs in its own git worktree. How that worktree is initialised depends on dependsOn: