diff --git a/tools/nfdc/strategy-choice-module.hpp b/tools/nfdc/strategy-choice-module.hpp
index 502d66b..43ac78b 100644
--- a/tools/nfdc/strategy-choice-module.hpp
+++ b/tools/nfdc/strategy-choice-module.hpp
@@ -33,33 +33,33 @@
 
 using ndn::nfd::StrategyChoice;
 
-/** \brief provides access to NFD Strategy Choice management
+/** \brief Provides access to NFD Strategy Choice management.
  *  \sa https://redmine.named-data.net/projects/nfd/wiki/StrategyChoice
  */
 class StrategyChoiceModule : public Module, noncopyable
 {
 public:
-  /** \brief register 'strategy list', 'strategy show', 'strategy set', 'strategy unset' commands
+  /** \brief Register 'strategy list', 'strategy show', 'strategy set', 'strategy unset' commands.
    */
   static void
   registerCommands(CommandParser& parser);
 
-  /** \brief the 'strategy list' command
+  /** \brief The 'strategy list' command.
    */
   static void
   list(ExecuteContext& ctx);
 
-  /** \brief the 'strategy show' command
+  /** \brief The 'strategy show' command.
    */
   static void
   show(ExecuteContext& ctx);
 
-  /** \brief the 'strategy set' command
+  /** \brief The 'strategy set' command.
    */
   static void
   set(ExecuteContext& ctx);
 
-  /** \brief the 'strategy unset' command
+  /** \brief The 'strategy unset' command.
    */
   static void
   unset(ExecuteContext& ctx);
@@ -73,7 +73,7 @@
   void
   formatStatusXml(std::ostream& os) const override;
 
-  /** \brief format a single status item as XML
+  /** \brief Format a single status item as XML.
    *  \param os output stream
    *  \param item status item
    */
@@ -83,7 +83,7 @@
   void
   formatStatusText(std::ostream& os) const override;
 
-  /** \brief format a single status item as text
+  /** \brief Format a single status item as text.
    *  \param os output stream
    *  \param item status item
    *  \param wantMultiLine use multi-line style
