Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/agents/prompts/templates/planning.eta
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ Update the <%= it.workItemNoun || 'card' %> description with **emoji section hea

**IMPORTANT:**
- After updating the <%= it.workItemNoun || 'card' %>, ALWAYS call `AddChecklist` to create an interactive "📋 Implementation Steps" checklist with each step as an item.
- When calling `AddChecklist`, use only the task name as each item — do NOT include "Step N:" prefixes. For example, use "Add helper function" instead of "Step 1: Add helper function". The checklist order already implies sequence.
<% if (it.pmType === 'jira') { %>- When calling `AddChecklist`, pass items as objects with `name` and `description`. The description should include the files to modify, specific changes, and testing notes from the corresponding Implementation Step section. This becomes the JIRA subtask description.
<% } %>- When referencing other <%= it.workItemNounPlural || 'cards' %> (related stories, dependencies), ALWAYS use markdown links: `[<%= it.workItemNounCap || 'Card' %> Title](URL)`

Expand Down Expand Up @@ -141,6 +142,7 @@ Review the updated description and move to TODO when ready to implement!
- ALWAYS explore the codebase before creating the plan
- ALWAYS use `UpdateWorkItem` to save your plan - DON'T JUST OUTPUT TEXT
- ALWAYS call `AddChecklist` after updating the <%= it.workItemNoun || 'card' %> to create interactive checklists
- NEVER include "Step N:" prefixes in `AddChecklist` items — use clean task names like "Add helper function", not "Step 1: Add helper function"
- ALWAYS use emoji section headers (🎯, 📋, 🧪, ⚠️, 🔗) and **bold key terms** in descriptions
- ALWAYS include a 🎯 TLDR section at the top of the <%= it.workItemNoun || 'card' %> description
- ALWAYS use markdown link syntax `[title](url)` when referencing other <%= it.workItemNounPlural || 'cards' %>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ When modifying the plan, **update the existing checklists in place** — do NOT
- **Renaming/rewriting steps**: Use `UpdateChecklistItem` to change the text of existing checklist items.
- **Removing steps**: Use `DeleteChecklistItem` to permanently remove checklist items / subtasks that are no longer needed. Do NOT mark removed items as "complete" — they were never done, so deleting is the correct action.
- **Reordering**: Delete and re-add items as needed to achieve the desired order.
- **Checklist item names**: Use clean task names without "Step N:" prefixes — for example "Add helper function", NOT "Step 1: Add helper function". The checklist order already implies sequence.

When the user asks to narrow scope, focus on a subset, or drop items from the plan, **always delete** the out-of-scope items rather than leaving them in the checklist.

Expand Down
12 changes: 12 additions & 0 deletions tests/unit/agents/prompts.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,18 @@ describe('system prompts content', () => {
expect(prompt).toContain('Category B (Plan Update)');
expect(prompt).toContain('Category C (Both)');
});

it('planning prompt instructs AddChecklist items to not use Step N prefixes', () => {
const prompt = getSystemPrompt('planning');
expect(prompt).toContain('do NOT include "Step N:" prefixes');
expect(prompt).toContain('Add helper function');
});

it('respond-to-planning-comment prompt instructs checklist items to not use Step N prefixes', () => {
const prompt = getSystemPrompt('respond-to-planning-comment');
expect(prompt).toContain('Step N:');
expect(prompt).toContain('clean task names without');
});
});

describe('resolveIncludes', () => {
Expand Down