diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,8 @@
-## [_Unreleased_](https://github.com/pbrisbin/ronn/compare/ronn-opt-env-conf-v1.0.0.0...main)
+## [_Unreleased_](https://github.com/pbrisbin/ronn/compare/ronn-opt-env-conf-v1.0.1.0...main)
+
+## [v1.0.1.0](https://github.com/pbrisbin/ronn/tree/ronn-opt-env-conf-v1.0.1.0)
+
+- Add `HasSections` instance
 
 ## [v1.0.0.0](https://github.com/pbrisbin/ronn/tree/ronn-opt-env-conf-v1.0.0.0)
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -0,0 +1,18 @@
+# `ronn-opt-env-conf`
+
+[![Hackage](https://img.shields.io/hackage/v/ronn-opt-env-conf.svg?style=flat)](https://hackage.haskell.org/package/ronn-opt-env-conf)
+[![Stackage Nightly](http://stackage.org/package/ronn-opt-env-conf/badge/nightly)](http://stackage.org/nightly/package/ronn-opt-env-conf)
+[![Stackage LTS](http://stackage.org/package/ronn-opt-env-conf/badge/lts)](http://stackage.org/lts/package/ronn-opt-env-conf)
+
+Automatically create a `Ronn` value from `OptEnvConf.Parser`.
+
+## Usage
+
+See [the test][test] and [the result][golden].
+
+[test]: ./tests/Ronn/OptEnvConfSpec.hs
+[golden]: ./../doc/ronn-opt-env-conf.1.ronn
+
+---
+
+[CHANGELOG](./ronn-opt-env-conf/CHANGELOG.md)
diff --git a/ronn-opt-env-conf.cabal b/ronn-opt-env-conf.cabal
--- a/ronn-opt-env-conf.cabal
+++ b/ronn-opt-env-conf.cabal
@@ -1,6 +1,6 @@
 cabal-version:   1.18
 name:            ronn-opt-env-conf
-version:         1.0.0.0
+version:         1.0.1.0
 license:         AGPL-3
 maintainer:      Pat Brisbin
 homepage:        https://github.com/pbrisbin/ronn#readme
@@ -43,7 +43,7 @@
     build-depends:
         base >=4.16.4.0 && <5,
         opt-env-conf,
-        ronn >=1.1.0.0,
+        ronn >=1.1.1.0,
         text >=1.2.5.0
 
     if impl(ghc >=9.8)
@@ -75,13 +75,10 @@
 
     build-depends:
         base >=4.16.4.0 && <5,
-        filepath >=1.4.2.2,
         hspec >=2.9.7,
-        hspec-golden >=0.2.1.0,
         opt-env-conf,
-        ronn >=1.1.0.0,
         ronn-opt-env-conf,
-        text >=1.2.5.0
+        ronn-test
 
     if impl(ghc >=9.8)
         ghc-options:
diff --git a/src/Ronn/OptEnvConf.hs b/src/Ronn/OptEnvConf.hs
--- a/src/Ronn/OptEnvConf.hs
+++ b/src/Ronn/OptEnvConf.hs
@@ -1,3 +1,5 @@
+{-# OPTIONS_GHC -Wno-orphans #-}
+
 -- |
 --
 -- Module      : Ronn.OptEnvConf
@@ -7,8 +9,19 @@
 -- Stability   : experimental
 -- Portability : POSIX
 module Ronn.OptEnvConf
-  ( module X
+  ( optSynopsis
+  , optDefinitions
+  , envDefinitions
   ) where
 
-import Ronn.OptEnvConf.Env as X
-import Ronn.OptEnvConf.Opt as X
+import Prelude
+
+import OptEnvConf (Parser)
+import Ronn (HasSections (..))
+import Ronn.OptEnvConf.Env
+import Ronn.OptEnvConf.Opt
+
+instance HasSections Parser where
+  getSynopsis = Just . optSynopsis
+  getOptDefinitions = Just . optDefinitions
+  getEnvDefinitions = Just . envDefinitions
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,3 +1,5 @@
+{-# OPTIONS_GHC -F -pgmF hspec-discover -Wno-missing-export-lists #-}
+
 -- |
 --
 -- Module      : Main
@@ -6,4 +8,3 @@
 -- Maintainer  : pbrisbin@gmail.com
 -- Stability   : experimental
 -- Portability : POSIX
-{-# OPTIONS_GHC -F -pgmF hspec-discover -Wno-missing-export-lists #-}
diff --git a/tests/Ronn/OptEnvConfSpec.hs b/tests/Ronn/OptEnvConfSpec.hs
--- a/tests/Ronn/OptEnvConfSpec.hs
+++ b/tests/Ronn/OptEnvConfSpec.hs
@@ -12,77 +12,39 @@
 
 import Prelude
 
-import Data.Text (Text, unpack)
-import Data.Text.IO qualified as T
 import OptEnvConf
-import Ronn
-import Ronn.OptEnvConf
-import System.FilePath ((</>))
+import Ronn.OptEnvConf ()
+import Ronn.Test
 import Test.Hspec
-import Test.Hspec.Golden
 
 spec :: Spec
 spec = do
   specify "complete example" $
-    let
-      p :: Parser (Maybe Bool, FilePath, FilePath)
-      p =
-        (,,)
-          <$> optional
-            ( setting
-                [ help "Enable debug"
-                , long "debug"
-                , switch True
-                , env "DEBUG"
-                , env "VERBOSE"
-                ]
-            )
-          <*> setting
-            [ help "Output file"
-            , short 'o'
-            , long "output"
-            , reader str
-            , metavar "FILE"
-            , option
-            , env "OUTPUT"
-            , value "-"
-            ]
-          <*> setting
-            [ help "Input file"
-            , reader str
-            , metavar "FILE"
-            , argument
-            , env "INPUT"
-            ]
-    in
-      ronnGolden $
-        Ronn
-          { name = ManRef "ronn-opt-env-conf" ManSection1
-          , description = ["example Ronn from opt-env-conf"]
-          , sections =
-              [ Section
-                  { name = "SYNOPSIS"
-                  , content = [Groups [Lines [Line $ Code "ronn-opt-env-conf" : optSynopsis p]]]
-                  }
-              , Section
-                  { name = "OPTIONS"
-                  , content = [Definitions $ optDefinitions p]
-                  }
-              , Section
-                  { name = "ENVIRONMENT"
-                  , content = [Definitions $ envDefinitions p]
-                  }
+    ronnGolden "opt-env-conf" $
+      (,,)
+        <$> optional
+          ( setting
+              [ help "Enable debug"
+              , long "debug"
+              , switch True
+              , env "DEBUG"
+              , env "VERBOSE"
               ]
-          }
-
-ronnGolden :: Ronn -> Golden Text
-ronnGolden ronn =
-  Golden
-    { output = ronnToText ronn
-    , encodePretty = unpack
-    , writeToFile = T.writeFile
-    , readFromFile = T.readFile
-    , goldenFile = "../doc" </> ronnFilePath ronn
-    , actualFile = Nothing
-    , failFirstTime = False
-    }
+          )
+        <*> setting
+          [ help "Output file"
+          , short 'o'
+          , long "output"
+          , reader (str @String)
+          , metavar "FILE"
+          , option
+          , env "OUTPUT"
+          , value "-"
+          ]
+        <*> setting
+          [ help "Input file"
+          , reader (str @String)
+          , metavar "FILE"
+          , argument
+          , env "INPUT"
+          ]
