diff --git a/daemon/mgmt/command-authenticator.hpp b/daemon/mgmt/command-authenticator.hpp
index 12c6c70..0a3d4e5 100644
--- a/daemon/mgmt/command-authenticator.hpp
+++ b/daemon/mgmt/command-authenticator.hpp
@@ -35,7 +35,8 @@
 
 namespace nfd {
 
-/** \brief Provides ControlCommand authorization according to NFD configuration file.
+/**
+ * \brief Provides ControlCommand authorization according to NFD's configuration file.
  */
 class CommandAuthenticator : public std::enable_shared_from_this<CommandAuthenticator>, noncopyable
 {
@@ -46,10 +47,10 @@
   void
   setConfigFile(ConfigFile& configFile);
 
-  /** \return an Authorization function for module/verb command
+  /** \brief Returns an Authorization function for `module/verb` command.
    *  \param module management module name
-   *  \param verb command verb; currently it's ignored
-   *  \note This must be called before parsing configuration file
+   *  \param verb command verb; currently ignored
+   *  \note This must be called before parsing the configuration file.
    */
   ndn::mgmt::Authorization
   makeAuthorization(const std::string& module, const std::string& verb);
@@ -57,14 +58,14 @@
 private:
   CommandAuthenticator();
 
-  /** \brief process "authorizations" section
+  /** \brief Process `authorizations` section.
    *  \throw ConfigFile::Error on parse error
    */
   void
   processConfig(const ConfigSection& section, bool isDryRun, const std::string& filename);
 
 private:
-  /// module => validator
+  // module => validator
   std::unordered_map<std::string, shared_ptr<ndn::security::Validator>> m_validators;
 };
 
diff --git a/daemon/mgmt/forwarder-status-manager.hpp b/daemon/mgmt/forwarder-status-manager.hpp
index 39c52f3..f93650c 100644
--- a/daemon/mgmt/forwarder-status-manager.hpp
+++ b/daemon/mgmt/forwarder-status-manager.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2019,  Regents of the University of California,
+ * Copyright (c) 2014-2022,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -47,7 +47,8 @@
   ndn::nfd::ForwarderStatus
   collectGeneralStatus();
 
-  /** \brief provide general status dataset
+  /**
+   * \brief Provides the general status dataset.
    */
   void
   listGeneralStatus(const Name& topPrefix, const Interest& interest,
@@ -56,7 +57,7 @@
 private:
   Forwarder& m_forwarder;
   Dispatcher& m_dispatcher;
-  time::system_clock::TimePoint m_startTimestamp;
+  time::system_clock::time_point m_startTimestamp;
 };
 
 } // namespace nfd
diff --git a/daemon/mgmt/manager-base.hpp b/daemon/mgmt/manager-base.hpp
index 592d4fa..7702271 100644
--- a/daemon/mgmt/manager-base.hpp
+++ b/daemon/mgmt/manager-base.hpp
@@ -113,7 +113,7 @@
    * @param parameters the original ControlParameters
    * @return whether the original ControlParameters can be validated
    */
-  static bool
+  [[nodiscard]] static bool
   validateParameters(const ControlCommand& command,
                      const ndn::mgmt::ControlParameters& parameters);
 
diff --git a/daemon/mgmt/tables-config-section.hpp b/daemon/mgmt/tables-config-section.hpp
index f551b78..4dc5dd4 100644
--- a/daemon/mgmt/tables-config-section.hpp
+++ b/daemon/mgmt/tables-config-section.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2021,  Regents of the University of California,
+ * Copyright (c) 2014-2022,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -31,7 +31,7 @@
 
 namespace nfd {
 
-/** \brief handles 'tables' config section
+/** \brief Handles the `tables` configuration file section.
  *
  *  This class recognizes a config section that looks like
  *  \code{.unparsed}
@@ -63,7 +63,7 @@
  *  \li strategy_choice entries are inserted, but old entries are not deleted.
  *  \li network_region is applied; it's kept unchanged if the section is omitted.
  *
- *  It's necessary to call \p ensureConfigured() after initial configuration and
+ *  It's necessary to call ensureConfigured() after initial configuration and
  *  configuration reload, so that the correct defaults are applied in case
  *  tables section is omitted.
  */
@@ -76,7 +76,8 @@
   void
   setConfigFile(ConfigFile& configFile);
 
-  /** \brief apply default configuration, if tables section was omitted in configuration file
+  /**
+   * \brief Apply default configuration, if tables section was omitted in configuration file.
    */
   void
   ensureConfigured();
