Shopify/smart_todo

Enhance TODO comment in your Ruby code

Ruby

172

239 commits

updated Apr 20, 2026

See the code

README

Build Status

SmartTodo is a library designed to assign users on TODO comments written in your codebase and help assignees be reminded when it's time to commit to their TODO.

Installation

  1. Add the gem in your Gemfile.
group :development do
  gem 'smart_todo', require: false # No need to require it
end
  1. Run bundle install

Summary

SmartTodo allows to write TODO comments alongside your code and assign a user to it. When the TODO's event is met (i.e. a certain date is reached), the TODO's assignee will get pinged on Slack.

Without SmartTodo

  # TODO: Warning! We need to change the API endpoint on July 1st because the provider
  # is modifying its API.
  def api_call
  end

With SmartTodo

  # TODO(on: date('2019-07-01'), to: 'john@example.com')
  #   The API provider is modifying its endpoint, we need to modify our code.
  def api_call
  end

Documentation

Please check out the GitHub wiki for documentation and example on how to setup SmartTodo in your project.

License

This project is licensed under the terms of the MIT license. See the LICENSE file.

slack
task-management
todo
tools

Significant stargazers

Vladimir Dementyev

1,830 followers · starred Dec 2021

Peter Zhu

255 followers · starred Jul 2019

Sam Bostock

28 followers · starred Aug 2021

Alan Wu

68 followers · starred Aug 2019

Shopify/smart_todo

Enhance TODO comment in your Ruby code

Ruby

172

239 commits

updated Apr 20, 2026

See the code

README

Build Status

SmartTodo is a library designed to assign users on TODO comments written in your codebase and help assignees be reminded when it's time to commit to their TODO.

Installation

  1. Add the gem in your Gemfile.
group :development do
  gem 'smart_todo', require: false # No need to require it
end
  1. Run bundle install

Summary

SmartTodo allows to write TODO comments alongside your code and assign a user to it. When the TODO's event is met (i.e. a certain date is reached), the TODO's assignee will get pinged on Slack.

Without SmartTodo

  # TODO: Warning! We need to change the API endpoint on July 1st because the provider
  # is modifying its API.
  def api_call
  end

With SmartTodo

  # TODO(on: date('2019-07-01'), to: 'john@example.com')
  #   The API provider is modifying its endpoint, we need to modify our code.
  def api_call
  end

Documentation

Please check out the GitHub wiki for documentation and example on how to setup SmartTodo in your project.

License

This project is licensed under the terms of the MIT license. See the LICENSE file.

slack
task-management
todo
tools

Significant stargazers

Vladimir Dementyev

1,830 followers · starred Dec 2021

Peter Zhu

255 followers · starred Jul 2019

Sam Bostock

28 followers · starred Aug 2021

Alan Wu

68 followers · starred Aug 2019

Languages

Ruby

99.7%