diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 46f22a0ae677a42b3cf6021534ab3f89b10e11b8..ae4aa42bdfcc758c249f7a5dbea1a882316b1e04 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,19 +1,15 @@
 stages:
 - generate
-- eval
 - check
+- impure
 
 generate-flake-ci:
   stage: generate
-  script: nix run ".#horizon-gen-gitlab-ci" > flake-ci.yml
+  script: nix run "git+https://gitlab.homotopic.tech/haskell/flake-to-gitlab-ci" > flake-ci.yml
   artifacts:
     paths:
       - flake-ci.yml
 
-eval-flake:
-  stage: eval
-  script: nix flake show
-
 flake-ci:
   stage: check
   trigger:
@@ -21,3 +17,8 @@ flake-ci:
       - artifact: flake-ci.yml
         job: generate-flake-ci
     strategy: depend
+
+impure-tests:
+  stage: impure
+  script:
+  - nix run .#run-impure-tests
diff --git a/flake.lock b/flake.lock
index 7ec8c7800bf62acab1743370778d4aa80260156f..b7c767adfe9984b1ee6109b9000b0b69b4d3d618 100644
--- a/flake.lock
+++ b/flake.lock
@@ -67,11 +67,11 @@
         "nixpkgs": "nixpkgs"
       },
       "locked": {
-        "lastModified": 1655192403,
-        "narHash": "sha256-XyKDvRGDh8VXA6zN8DUTnDaTMrk0MxMKg70MaAX1A2Y=",
+        "lastModified": 1669815989,
+        "narHash": "sha256-yDE8uxa/O633VeRBlJKSY5q9JtzoBoMANvgupdI42YI=",
         "ref": "refs/heads/master",
-        "rev": "a7ae54afdc4c05a5aabf202d5a76d02705eb6147",
-        "revCount": 28,
+        "rev": "5b97bd76dd6756dfc29a32d25a5c78c0522bac10",
+        "revCount": 39,
         "type": "git",
         "url": "https://gitlab.homotopic.tech/nix/lint-utils"
       },
diff --git a/flake.nix b/flake.nix
index f8d1ff0e757d1e091601809b78c9de9082ffd67f..91cfe5492365ff361dd264a6f640e0ebc529fa99 100644
--- a/flake.nix
+++ b/flake.nix
@@ -25,6 +25,7 @@
     in
     with pkgs.lib;
     with pkgs.writers;
+    with lint-utils.writers.${system};
     let
 
       horizon-gen-nix-app = get-flake horizon-gen-nix;
@@ -52,12 +53,12 @@
 
       horizon-gen-gitlab-ci = writeBashBin "gen-gitlab-ci" "${pkgs.dhall-json}/bin/dhall-to-yaml --file .gitlab-ci.dhall";
 
-      run-impure-tests = lint-utils.writers.writePorcelainOrDieBin {
+      run-impure-tests = writePorcelainOrDieBin {
         name = "run-impure-tests";
         src = ./.;
         command = ''
+          export PATH=$PATH:${pkgs.nix-prefetch-git}/bin:${pkgs.cabal-install}/bin
           cabal update
-          export PATH=$PATH:${pkgs.nix-prefetch-git}/bin
           rm pkgs -rf && nix run .#horizon-gen-nix make-package-set;
           nixpkgs-fmt pkgs/*
         '';
@@ -81,11 +82,12 @@
           program = "${horizon-gen-gitlab-ci}/bin/gen-gitlab-ci";
         };
 
+        run-impure-tests = run-impure-tests-app;
       };
 
       checks = {
-        dhall-format = lint-utils.outputs.linters.${system}.dhall-format ./.;
-        nixpkgs-fmt = lint-utils.outputs.linters.${system}.nixpkgs-fmt ./.;
+        dhall-format = lint-utils.outputs.linters.${system}.dhall-format { src = ./. };
+        nixpkgs-fmt = lint-utils.outputs.linters.${system}.nixpkgs-fmt { src = ./. };
       };
 
       inherit legacyPackages;