Skip to content

feat(gadgets): split TodoUpsert into focused gadgets#73

Merged
zbigniewsobiecki merged 1 commit intodevfrom
feature/todo-status-separation
Jan 18, 2026
Merged

feat(gadgets): split TodoUpsert into focused gadgets#73
zbigniewsobiecki merged 1 commit intodevfrom
feature/todo-status-separation

Conversation

@zbigniewsobiecki
Copy link
Copy Markdown
Member

Summary

  • Extract status updates from TodoUpsert into dedicated TodoUpdateStatus gadget
  • Simplify TodoUpsert to handle content creation/updates only
  • Add git status and PR status to implementation agent trailing messages
  • Add EditFile/WriteFile result handling guidance to prompts

Motivation

LLMs were getting confused about the dual-purpose nature of TodoUpsert (both creating todos and updating their status). Splitting these concerns makes each gadget's purpose clearer:

  • TodoUpsert: Plan work by creating todos with content
  • TodoUpdateStatus: Track progress by updating status (pending/in_progress/done)

Changes

New Files

  • src/gadgets/todo/TodoUpdateStatus.ts - New gadget for status-only updates
  • tests/unit/gadgets/todo.test.ts - Comprehensive tests for both gadgets

Modified Files

  • src/gadgets/todo/TodoUpsert.ts - Removed status parameter, simplified to content-only
  • src/gadgets/todo/index.ts - Export new gadget
  • src/agents/base.ts - Register new gadget
  • src/agents/review.ts - Register new gadget
  • src/agents/utils/agentLoop.ts - Add logging for new gadget
  • src/config/hintConfig.ts - Add git status and PR status to trailing messages
  • src/agents/prompts/templates/implementation.eta - Updated task tracking instructions
  • src/agents/prompts/templates/respond-to-review.eta - Updated task tracking instructions
  • src/agents/prompts/templates/partials/rules-efficiency.eta - Add EditFile/WriteFile result handling

Test plan

  • npm run typecheck passes
  • npm run lint passes
  • npm test passes (120 tests)
  • Local pre-commit and pre-push hooks pass

Extract status updates from TodoUpsert into a dedicated TodoUpdateStatus
gadget to reduce LLM confusion and improve task tracking clarity.

Changes:
- Add TodoUpdateStatus gadget for status-only updates (pending/in_progress/done)
- Simplify TodoUpsert to handle content creation/updates only
- Update prompts to guide agents on using the separate gadgets
- Add git status and PR status to implementation trailing messages
- Add EditFile/WriteFile result handling guidance to prompts
- Add comprehensive tests for both gadgets

The separation makes each gadget's purpose clearer:
- TodoUpsert: Plan work by creating todos
- TodoUpdateStatus: Track progress by updating status

Co-Authored-By: Claude <noreply@anthropic.com>
@zbigniewsobiecki zbigniewsobiecki merged commit a78a09d into dev Jan 18, 2026
3 checks passed
@zbigniewsobiecki zbigniewsobiecki deleted the feature/todo-status-separation branch January 18, 2026 10:02
This was referenced Jan 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant