   files in the `config` directory that do not start with a trailing
   period (for example, `.my_config.exs`).
   """
-  @spec config_files() :: [Path.t]
+  @spec config_files() :: [Path.t()]
   def config_files do
-    [Mix.Dep.Lock.manifest] ++
-      case Mix.ProjectStack.peek do
+    manifest = Mix.Dep.Lock.manifest()
+
+    configs =
+      case Mix.ProjectStack.peek() do
         %{config: config, file: file} ->
           configs =
             config[:config_path]
-            |> Path.dirname
+            |> Path.dirname()
             |> Path.join("**/*.*")
-            |> Path.wildcard
+            |> Path.wildcard()
             |> Enum.reject(&String.starts_with?(Path.basename(&1), "."))
+
           [file | configs]
+
         _ ->
           []
       end
+
+    [manifest] ++ configs
   end
 
   @doc """


    case config[:build_per_environment] do
      true ->
        Path.expand("#{build}/#{Mix.env}")
      false ->
        Path.expand("#{build}/shared")
      other ->
        Mix.raise "The :build_per_environment option should be a boolean, got: #{inspect(other)}"
    end
  end


      #=> "/path/to/project/_build/shared/lib/app"

  """
  @spec app_path(keyword) :: Path.t()
  def app_path(config \\ config()) do
    config[:app_path] ||
      cond do
        app = config[:app] ->
          Path.join([build_path(config), "lib", Atom.to_string(app)])

        config[:apps_path] ->
          raise "trying to access Mix.Project.app_path for an umbrella project but umbrellas have no app"

        true ->
          Mix.raise(
            "Cannot access build without an application name, " <>
              "please ensure you are in a directory with a mix.exs file and it defines " <>
              "an :app name under the project configuration"
          )
      end
  end

  @doc """
