diff --git a/Shakefile.hs b/Shakefile.hs
--- a/Shakefile.hs
+++ b/Shakefile.hs
@@ -16,11 +16,11 @@
 main :: IO ()
 main = shakeMain $ do
   let pats =
-        [ "stack*.yaml"
+        [ "stack.yaml"
         , "Shakefile.hs"
         , "src//*.hs"
         ]
-      pats' = delete "stack*.yaml" pats
+      pats' = delete "stack.yaml" pats
 
   -- | Haskell rules.
   --
@@ -34,12 +34,6 @@
   --
   stackRules "." pats
 
-  -- | sanity
-  --
-  fake "." pats "sanity" $ const $ do
-    need [ "build-error" ]
-    need [ "docs", "lint", "weed" ]
-
   -- | Default things to run.
   --
-  want [ "sanity", "format" ]
+  want [ "build-error", "lint" ]
diff --git a/shakers.cabal b/shakers.cabal
--- a/shakers.cabal
+++ b/shakers.cabal
@@ -1,5 +1,5 @@
 name:                  shakers
-version:               0.0.42
+version:               0.0.43
 synopsis:              Shake helpers.
 description:           Primitive helpers for Shake files.
 homepage:              https://github.com/swift-nav/shakers
diff --git a/src/Development/Shakers.hs b/src/Development/Shakers.hs
--- a/src/Development/Shakers.hs
+++ b/src/Development/Shakers.hs
@@ -25,6 +25,8 @@
   , stack_
   , stackExec
   , stackExec_
+  , sed_
+  , replace
   , git
   , git_
   , schemaApply_
@@ -210,6 +212,16 @@
 weeder_ :: [String] -> Action ()
 weeder_ = cmdArgs_ "weeder"
 
+-- | sed command.
+--
+sed_ :: FilePath -> [String] -> Action ()
+sed_ d = cmdArgsDir_ d "sed"
+
+-- | replace inline command.
+--
+replace :: FilePath -> FilePath -> String -> String -> Action ()
+replace d f a b = sed_ d [ "-i", ".bak", "s" </> a </> b </> "g", f ]
+
 -- | Git command in a directory.
 --
 git :: FilePath -> [String] -> Action String
@@ -520,25 +532,6 @@
   phony "publish" $ do
     need [ file ]
     stack_ dir [ "upload", dir, "--no-signature" ]
-
-  phony "publish-lower" $ do
-    need [file, metaFile "cabalVersion" ]
-    version <- dropWhile (not . isDigit) <$> gitVersion dir
-    yaml    <- fromMaybe "stack.yaml" <$> getEnv "STACK_YAML"
-    dist    <- stack dir [ "path", "--dist-dir" ]
-    stack_ dir [ "sdist", dir, "--pvp-bounds", "lower" ]
-    let pkg = dropExtension file
-        hkg = pkg <-> version
-    [sdist] <- getDirectoryFiles dist [ hkg <.> "tar.gz" ]
-    withTempDir $ \d -> do
-      tar_ dist [ "xzf", sdist, "-C", d ]
-      let e = d </> hkg
-          f = e </> file
-      contents <- readFile' f
-      let contents' = subRegex (mkRegex $ pkg <> " >=" <> version) contents pkg
-      contents' `deepseq` writeFile' f contents'
-      copyFile' yaml $ e </> yaml
-      stack_ e [ "upload", e, "--no-signature" ]
 
 -- | Database rules
 --
