Repository: exercism/clojure
Pull request #698 (2024-11-02 20:11:54)

dominoes: Sync tests
Also

* Updated the dominoes.clj starter file with a proper function template
* Rewritten tests so that they are simpler and consistent.

github-actions[bot]: This PR touches files which potentially affect the outcome of the tests of an exercise. This will cause all students' solutions to affected exercises to be re-tested.

If this PR does **not** affect the result of the test (or, for example, adds an edge case that is not worth rerunning all tests for), **please add the following to the merge-commit message** which will stops student's tests from re-running. Please copy-paste to avoid typos.
```
[no important files changed]
```

 For more information, refer to the [documentation](https://exercism.org/docs/building/tracks#h-avoiding-triggering-unnecessary-test-runs). If you are unsure whether to add the message or not, please ping `@exercism/maintainers-admin` in a comment. Thank you!

Patch:
diff --git a/_generators/zipper-generator.clj b/_generators/zipper-generator.clj
index 6ac5848..466a8e7 100644
--- a/_generators/zipper-generator.clj
+++ b/_generators/zipper-generator.clj
@@ -42,7 +42,7 @@
                         (:exercise (:canonical-data data)) "project.clj"))
           (str "(defproject " slug " \"0.1.0-SNAPSHOT\"
   :description \"" slug " exercise.\"
-  :url \"https://github.com/exercism/clojure/tree/master/exercises/" slug "\"
+  :url \"https://github.com/exercism/clojure/tree/main/exercises/practice/" slug "\"
   :dependencies [[org.clojure/clojure \"1.10.0\"]])
 "))))
 
diff --git a/config.json b/config.json
index aacb72e..a2a1415 100644
--- a/config.json
+++ b/config.json
@@ -243,10 +243,9 @@
         "name": "Accumulate",
         "uuid": "49f62bbc-0f60-4922-b5a6-f266b80442f4",
         "practices": [],
-        "prerequisites": [
-          "numbers"
-        ],
+        "prerequisites": [],
         "difficulty": 2,
+        "status": "deprecated",
         "topics": [
           "algorithms, core_functions"
         ]
@@ -349,6 +348,16 @@
           "math"
         ]
       },
+      {
+        "slug": "eliuds-eggs",
+        "name": "Eliud's Eggs",
+        "uuid": "bfe1789f-8388-4285-bed9-26f694e12c70",
+        "practices": [],
+        "prerequisites": [
+          "basics"
+        ],
+        "difficulty": 2
+      },
       {
         "slug": "etl",
         "name": "ETL",
@@ -734,10 +743,9 @@
         "name": "Binary",
         "uuid": "daf3daed-61ef-4964-8d33-e7a739c7a470",
         "practices": [],
-        "prerequisites": [
-          "numbers"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
+        "status": "deprecated",
         "topics": [
           "math"
         ]
@@ -846,10 +854,9 @@
         "name": "Hexadecimal",
         "uuid": "a4b1b39a-d942-4921-9b67-2bd913ff52a0",
         "practices": [],
-        "prerequisites": [
-          "numbers"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
+        "status": "deprecated",
         "topics": [
           "math"
         ]
@@ -1009,11 +1016,9 @@
         "name": "Trinary",
         "uuid": "f8a7f5eb-e317-4ffa-bdef-6e30a36511eb",
         "practices": [],
-        "prerequisites": [
-          "numbers",
-          "strings"
-        ],
+        "prerequisites": [],
         "difficulty": 3,
+        "status": "deprecated",
         "topics": [
           "math"
         ]
@@ -1111,13 +1116,10 @@
         "slug": "octal",
         "name": "Octal",
         "uuid": "fa596153-0cbe-40e9-a4d6-1a66fe6ef7e5",
-        "practices": [
-          "numbers"
-        ],
-        "prerequisites": [
-          "numbers"
-        ],
+        "practices": [],
+        "prerequisites": [],
         "difficulty": 4,
+        "status": "deprecated",
         "topics": [
           "math"
         ]
@@ -1365,10 +1367,10 @@
         "practices": [],
         "prerequisites": [
           "lists",
-          "closures"
+          "closures",
+          "vectors"
         ],
-        "difficulty": 5,
-        "status": "wip"
+        "difficulty": 5
       }
     ]
   },
diff --git a/exercises/concept/card-games/.meta/config.json b/exercises/concept/card-games/.meta/config.json
index 662617a..0b22106 100644
--- a/exercises/concept/card-games/.meta/config.json
+++ b/exercises/concept/card-games/.meta/config.json
@@ -1,22 +1,21 @@
 {
-    "authors": [
-      "bobbicodes"
+  "authors": [
+    "bobbicodes"
+  ],
+  "files": {
+    "solution": [
+      "src/card_games.clj"
     ],
-    "forked_from": [
-        "python/card-games"
-      ],
-    "files": {
-      "solution": [
-        "src/card_games.clj"
-      ],
-      "test": [
-        "test/card_games_test.clj"
-      ],
-      "exemplar": [
-        ".meta/exemplar.clj"
-      ]
-    },
-    "icon": "poker",
-    "blurb": "Learn about lists by tracking hands in card games."
-  }
-  
\ No newline at end of file
+    "test": [
+      "test/card_games_test.clj"
+    ],
+    "exemplar": [
+      ".meta/exemplar.clj"
+    ]
+  },
+  "forked_from": [
+    "python/card-games"
+  ],
+  "icon": "poker",
+  "blurb": "Learn about lists by tracking hands in card games."
+}
diff --git a/exercises/concept/coordinate-transformation/.meta/config.json b/exercises/concept/coordinate-transformation/.meta/config.json
index 630754b..2436c78 100644
--- a/exercises/concept/coordinate-transformation/.meta/config.json
+++ b/exercises/concept/coordinate-transformation/.meta/config.json
@@ -1,11 +1,7 @@
 {
-  "blurb": "Practice your knowledge of closures by implementing various coordinate transformations.",
   "authors": [
     "bobbicodes"
   ],
-  "forked_from": [
-    "javascript/coordinate-transformation"
-  ],
   "files": {
     "solution": [
       "src/coordinate_transformation.clj"
@@ -16,5 +12,9 @@
     "exemplar": [
       ".meta/exemplar.clj"
     ]
-  }
-}
\ No newline at end of file
+  },
+  "forked_from": [
+    "javascript/coordinate-transformation"
+  ],
+  "blurb": "Practice your knowledge of closures by implementing various coordinate transformations."
+}
diff --git a/exercises/practice/accumulate/project.clj b/exercises/practice/accumulate/project.clj
index 980117a..943d535 100644
--- a/exercises/practice/accumulate/project.clj
+++ b/exercises/practice/accumulate/project.clj
@@ -1,4 +1,4 @@
 (defproject accumulate "0.1.0-SNAPSHOT"
   :description "accumulate exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/accumulate"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/accumulate"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/acronym/project.clj b/exercises/practice/acronym/project.clj
index 6415248..6d41d06 100644
--- a/exercises/practice/acronym/project.clj
+++ b/exercises/practice/acronym/project.clj
@@ -1,4 +1,4 @@
 (defproject acronym "0.1.0-SNAPSHOT"
   :description "acronym exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/acronym"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/acronym"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/all-your-base/project.clj b/exercises/practice/all-your-base/project.clj
index c17ec24..ca36c34 100644
--- a/exercises/practice/all-your-base/project.clj
+++ b/exercises/practice/all-your-base/project.clj
@@ -1,4 +1,4 @@
 (defproject all-your-base "0.1.0-SNAPSHOT"
   :description "all-your-base exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/all-your-base"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/all-your-base"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/allergies/project.clj b/exercises/practice/allergies/project.clj
index 53b1993..5f47fe5 100644
--- a/exercises/practice/allergies/project.clj
+++ b/exercises/practice/allergies/project.clj
@@ -1,4 +1,4 @@
 (defproject allergies "0.1.0-SNAPSHOT"
   :description "allergies exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/allergies"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/allergies"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/anagram/project.clj b/exercises/practice/anagram/project.clj
index fc583ea..2ec6e10 100644
--- a/exercises/practice/anagram/project.clj
+++ b/exercises/practice/anagram/project.clj
@@ -1,4 +1,4 @@
 (defproject anagram "0.1.0-SNAPSHOT"
   :description "anagram exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/anagram"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/anagram"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/armstrong-numbers/project.clj b/exercises/practice/armstrong-numbers/project.clj
index e30f69f..7e13358 100644
--- a/exercises/practice/armstrong-numbers/project.clj
+++ b/exercises/practice/armstrong-numbers/project.clj
@@ -1,4 +1,4 @@
 (defproject armstrong-numbers "0.1.0-SNAPSHOT"
   :description "armstrong-numbers exercise"
-  :url "https://github.com/exercism/clojure/tree/master/exercises/armstrong-numbers"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/armstrong-numbers"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/atbash-cipher/project.clj b/exercises/practice/atbash-cipher/project.clj
index 0dc3e5f..200f626 100644
--- a/exercises/practice/atbash-cipher/project.clj
+++ b/exercises/practice/atbash-cipher/project.clj
@@ -1,4 +1,4 @@
 (defproject atbash-cipher "0.1.0-SNAPSHOT"
   :description "atbash-cipher exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/atbash-cipher"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/atbash-cipher"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/bank-account/project.clj b/exercises/practice/bank-account/project.clj
index 634f909..9e58e81 100644
--- a/exercises/practice/bank-account/project.clj
+++ b/exercises/practice/bank-account/project.clj
@@ -1,4 +1,4 @@
 (defproject bank-account "0.1.0-SNAPSHOT"
   :description "bank-account exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/bank-account"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/bank-account"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/beer-song/project.clj b/exercises/practice/beer-song/project.clj
index ef74886..c8f4dbf 100644
--- a/exercises/practice/beer-song/project.clj
+++ b/exercises/practice/beer-song/project.clj
@@ -1,4 +1,4 @@
 (defproject beer-song "0.1.0-SNAPSHOT"
   :description "beer-song exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/beer-song"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/beer-song"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/binary-search-tree/project.clj b/exercises/practice/binary-search-tree/project.clj
index 2f99844..5b0844d 100644
--- a/exercises/practice/binary-search-tree/project.clj
+++ b/exercises/practice/binary-search-tree/project.clj
@@ -1,4 +1,4 @@
 (defproject binary-search-tree "0.1.0-SNAPSHOT"
   :description "binary-search-tree exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/binary-search-tree"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/binary-search-tree"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/binary-search/project.clj b/exercises/practice/binary-search/project.clj
index 9c5755a..d829381 100644
--- a/exercises/practice/binary-search/project.clj
+++ b/exercises/practice/binary-search/project.clj
@@ -1,4 +1,4 @@
 (defproject binary-search "0.1.0-SNAPSHOT"
   :description "binary-search exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/binary-search"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/binary-search"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/binary/project.clj b/exercises/practice/binary/project.clj
index 5529c12..db0f494 100644
--- a/exercises/practice/binary/project.clj
+++ b/exercises/practice/binary/project.clj
@@ -1,4 +1,4 @@
 (defproject binary "0.1.0-SNAPSHOT"
   :description "binary exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/binary"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/binary"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/bob/project.clj b/exercises/practice/bob/project.clj
index 2c1df3b..3a5a60c 100644
--- a/exercises/practice/bob/project.clj
+++ b/exercises/practice/bob/project.clj
@@ -1,4 +1,4 @@
 (defproject bob "0.1.0-SNAPSHOT"
   :description "bob exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/bob"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/bob"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/change/project.clj b/exercises/practice/change/project.clj
index 94d2da2..8466251 100644
--- a/exercises/practice/change/project.clj
+++ b/exercises/practice/change/project.clj
@@ -1,6 +1,6 @@
 (defproject change "0.1.0-SNAPSHOT"
   :description "[change] exercise"
-  :url "https://github.com/exercism/clojure/tree/master/exercises/change"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/change"
   :license {:name "Eclipse Public License"
             :url "http://www.eclipse.org/legal/epl-v10.html"}
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/clock/project.clj b/exercises/practice/clock/project.clj
index 591ecc6..c8851a7 100644
--- a/exercises/practice/clock/project.clj
+++ b/exercises/practice/clock/project.clj
@@ -1,4 +1,4 @@
 (defproject clock "0.1.0-SNAPSHOT"
   :description "clock exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/clock"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/clock"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/collatz-conjecture/project.clj b/exercises/practice/collatz-conjecture/project.clj
index 3c5a39d..8382043 100644
--- a/exercises/practice/collatz-conjecture/project.clj
+++ b/exercises/practice/collatz-conjecture/project.clj
@@ -1,4 +1,4 @@
 (defproject collatz-conjecture "0.1.0-SNAPSHOT"
   :description "collatz-conjecture exercise"
-  :url "https://github.com/exercism/clojure/tree/master/exercises/collatz-conjecture"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/collatz-conjecture"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/complex-numbers/project.clj b/exercises/practice/complex-numbers/project.clj
index 3ea7dba..3290789 100644
--- a/exercises/practice/complex-numbers/project.clj
+++ b/exercises/practice/complex-numbers/project.clj
@@ -1,4 +1,4 @@
 (defproject complex-numbers "0.1.0-SNAPSHOT"
   :description "complex-numbers exercise"
-  :url "https://github.com/exercism/clojure/tree/master/exercises/complex-numbers"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/complex-numbers"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/crypto-square/project.clj b/exercises/practice/crypto-square/project.clj
index cfd1c81..5f133f8 100644
--- a/exercises/practice/crypto-square/project.clj
+++ b/exercises/practice/crypto-square/project.clj
@@ -1,4 +1,4 @@
 (defproject crypto-square "0.1.0-SNAPSHOT"
   :description "crypto-square exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/crypto-square"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/crypto-square"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/difference-of-squares/project.clj b/exercises/practice/difference-of-squares/project.clj
index d408a87..bd15736 100644
--- a/exercises/practice/difference-of-squares/project.clj
+++ b/exercises/practice/difference-of-squares/project.clj
@@ -1,4 +1,4 @@
 (defproject difference-of-squares "0.1.0-SNAPSHOT"
   :description "difference-of-squares exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/difference-of-squares"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/difference-of-squares"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/dominoes/.meta/config.json b/exercises/practice/dominoes/.meta/config.json
index ca3f760..f2060e5 100644
--- a/exercises/practice/dominoes/.meta/config.json
+++ b/exercises/practice/dominoes/.meta/config.json
@@ -3,7 +3,8 @@
   "contributors": [
     "AndreaCrotti",
     "haus",
-    "sjwarner-bp"
+    "sjwarner-bp",
+    "tasxatzial"
   ],
   "files": {
     "solution": [
diff --git a/exercises/practice/dominoes/project.clj b/exercises/practice/dominoes/project.clj
index 2cd3d4b..33f65a9 100644
--- a/exercises/practice/dominoes/project.clj
+++ b/exercises/practice/dominoes/project.clj
@@ -1,4 +1,4 @@
 (defproject dominoes "0.1.0-SNAPSHOT"
   :description "dominoes exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/dominoes"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/dominoes"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/dominoes/src/dominoes.clj b/exercises/practice/dominoes/src/dominoes.clj
index d0dceb2..315d6a4 100644
--- a/exercises/practice/dominoes/src/dominoes.clj
+++ b/exercises/practice/dominoes/src/dominoes.clj
@@ -1,5 +1,7 @@
 (ns dominoes)
 
-(defn can-chain? [] ;; <- arglist goes here
-  ;; your code goes here
-)
+(defn can-chain?
+  "Given a collection of dominoes, it returns true if they can be arranged into a chain; otherwise, it returns false"
+  [dominoes]
+  ;; function body
+  )
\ No newline at end of file
diff --git a/exercises/practice/eliuds-eggs/.docs/instructions.md b/exercises/practice/eliuds-eggs/.docs/instructions.md
new file mode 100644
index 0000000..b0c2df5
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.docs/instructions.md
@@ -0,0 +1,8 @@
+# Instructions
+
+Your task is to count the number of 1 bits in the binary representation of a number.
+
+## Restrictions
+
+Keep your hands off that bit-count functionality provided by your standard library!
+Solve this one yourself using other basic tools instead.
diff --git a/exercises/practice/eliuds-eggs/.docs/introduction.md b/exercises/practice/eliuds-eggs/.docs/introduction.md
new file mode 100644
index 0000000..49eaffd
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.docs/introduction.md
@@ -0,0 +1,47 @@
+# Introduction
+
+Your friend Eliud inherited a farm from her grandma Tigist.
+Her granny was an inventor and had a tendency to build things in an overly complicated manner.
+The chicken coop has a digital display showing an encoded number representing the positions of all eggs that could be picked up.
+
+Eliud is asking you to write a program that shows the actual number of eggs in the coop.
+
+The position information encoding is calculated as follows:
+
+1. Scan the potential egg-laying spots and mark down a `1` for an existing egg or a `0` for an empty spot.
+2. Convert the number from binary to decimal.
+3. Show the result on the display.
+
+Example 1:
+
+```text
+Chicken Coop:
+ _ _ _ _ _ _ _
+|E| |E|E| | |E|
+
+Resulting Binary:
+ 1 0 1 1 0 0 1
+
+Decimal number on the display:
+89
+
+Actual eggs in the coop:
+4
+```
+
+Example 2:
+
+```text
+Chicken Coop:
+ _ _ _ _ _ _ _ _
+| | | |E| | | | |
+
+Resulting Binary:
+ 0 0 0 1 0 0 0 0
+
+Decimal number on the display:
+16
+
+Actual eggs in the coop:
+1
+```
diff --git a/exercises/practice/eliuds-eggs/.meta/config.json b/exercises/practice/eliuds-eggs/.meta/config.json
new file mode 100644
index 0000000..b861900
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.meta/config.json
@@ -0,0 +1,19 @@
+{
+  "authors": [
+    "kahgoh"
+  ],
+  "files": {
+    "solution": [
+      "src/eliuds_eggs.clj"
+    ],
+    "test": [
+      "test/eliuds_eggs_test.clj"
+    ],
+    "example": [
+      ".meta/src/example.clj"
+    ]
+  },
+  "blurb": "Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.",
+  "source": "Christian Willner, Eric Willigers",
+  "source_url": "https://forum.exercism.org/t/new-exercise-suggestion-pop-count/7632/5"
+}
diff --git a/exercises/practice/eliuds-eggs/.meta/src/example.clj b/exercises/practice/eliuds-eggs/.meta/src/example.clj
new file mode 100644
index 0000000..7502808
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.meta/src/example.clj
@@ -0,0 +1,7 @@
+(ns eliuds-eggs)
+
+(defn egg-count [number]
+  (loop [value number acc 0]
+    (if (= 0 value)
+      acc
+      (recur (quot value 2) (+ acc (rem value 2))))))
\ No newline at end of file
diff --git a/exercises/practice/eliuds-eggs/deps.edn b/exercises/practice/eliuds-eggs/deps.edn
new file mode 100644
index 0000000..561c3e2
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/deps.edn
@@ -0,0 +1,6 @@
+{:aliases {:test {:extra-paths ["test"]
+                 :extra-deps {io.github.cognitect-labs/test-runner 
+                              {:git/url "https://github.com/cognitect-labs/test-runner.git"
+                               :sha "705ad25bbf0228b1c38d0244a36001c2987d7337"}}
+                 :main-opts ["-m" "cognitect.test-runner"]
+                 :exec-fn cognitect.test-runner.api/test}}}
\ No newline at end of file
diff --git a/exercises/practice/eliuds-eggs/project.clj b/exercises/practice/eliuds-eggs/project.clj
new file mode 100644
index 0000000..3a36273
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/project.clj
@@ -0,0 +1,4 @@
+(defproject eliuds-eggs "0.1.0-SNAPSHOT"
+  :description "eliuds-eggs exercise."
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/eliuds-eggs"
+  :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/eliuds-eggs/src/eliuds_eggs.clj b/exercises/practice/eliuds-eggs/src/eliuds_eggs.clj
new file mode 100644
index 0000000..1ade79a
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/src/eliuds_eggs.clj
@@ -0,0 +1,5 @@
+(ns eliuds-eggs)
+
+(defn egg-count [number]
+    ;; your code goes here
+)
\ No newline at end of file
diff --git a/exercises/practice/etl/project.clj b/exercises/practice/etl/project.clj
index 7f4af04..e6d26f2 100644
--- a/exercises/practice/etl/project.clj
+++ b/exercises/practice/etl/project.clj
@@ -1,4 +1,4 @@
 (defproject etl "0.1.0-SNAPSHOT"
   :description "etl exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/etl"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/etl"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/flatten-array/project.clj b/exercises/practice/flatten-array/project.clj
index d1ffa46..8a4d7b1 100644
--- a/exercises/practice/flatten-array/project.clj
+++ b/exercises/practice/flatten-array/project.clj
@@ -1,4 +1,4 @@
 (defproject flatten-array "0.1.0-SNAPSHOT"
   :description "flatten-array exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/flatten-array"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/flatten-array"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/gigasecond/project.clj b/exercises/practice/gigasecond/project.clj
index 3502143..76a9962 100644
--- a/exercises/practice/gigasecond/project.clj
+++ b/exercises/practice/gigasecond/project.clj
@@ -1,4 +1,4 @@
 (defproject gigasecond "0.1.0-SNAPSHOT"
   :description "gigasecond exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/gigasecond"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/gigasecond"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/go-counting/project.clj b/exercises/practice/go-counting/project.clj
index 8c1840f..003195e 100644
--- a/exercises/practice/go-counting/project.clj
+++ b/exercises/practice/go-counting/project.clj
@@ -1,4 +1,4 @@
 (defproject go-counting "0.1.0-SNAPSHOT"
   :description "go-counting exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/go-counting"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/go-counting"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/grade-school/project.clj b/exercises/practice/grade-school/project.clj
index fd3005d..3df3b58 100644
--- a/exercises/practice/grade-school/project.clj
+++ b/exercises/practice/grade-school/project.clj
@@ -1,4 +1,4 @@
 (defproject grade-school "0.1.0-SNAPSHOT"
   :description "grade-school exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/grade-school"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/grade-school"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/grains/project.clj b/exercises/practice/grains/project.clj
index 4b583e0..c4f8851 100644
--- a/exercises/practice/grains/project.clj
+++ b/exercises/practice/grains/project.clj
@@ -1,4 +1,4 @@
 (defproject grains "0.1.0-SNAPSHOT"
   :description "grains exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/grains"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/grains"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/hamming/project.clj b/exercises/practice/hamming/project.clj
index 5207598..96fe25f 100644
--- a/exercises/practice/hamming/project.clj
+++ b/exercises/practice/hamming/project.clj
@@ -1,4 +1,4 @@
 (defproject hamming "0.1.0-SNAPSHOT"
   :description "hamming exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/hamming"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/hamming"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/hello-world/project.clj b/exercises/practice/hello-world/project.clj
index b6b1aec..6cab18f 100644
--- a/exercises/practice/hello-world/project.clj
+++ b/exercises/practice/hello-world/project.clj
@@ -1,4 +1,4 @@
 (defproject hello-world "0.1.0-SNAPSHOT"
   :description "hello-world exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/hello-world"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/hello-world"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/hexadecimal/project.clj b/exercises/practice/hexadecimal/project.clj
index 119c4f7..19a89e8 100644
--- a/exercises/practice/hexadecimal/project.clj
+++ b/exercises/practice/hexadecimal/project.clj
@@ -1,4 +1,4 @@
 (defproject hexadecimal "0.1.0-SNAPSHOT"
   :description "hexadecimal exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/hexadecimal"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/hexadecimal"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/isbn-verifier/project.clj b/exercises/practice/isbn-verifier/project.clj
index 181db1d..4285d88 100644
--- a/exercises/practice/isbn-verifier/project.clj
+++ b/exercises/practice/isbn-verifier/project.clj
@@ -1,4 +1,4 @@
 (defproject isbn-verifier "0.1.0-SNAPSHOT"
   :description "isbn-verifier xercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/isbn-verifier"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/isbn-verifier"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/isogram/project.clj b/exercises/practice/isogram/project.clj
index faf6a6e..273bac4 100644
--- a/exercises/practice/isogram/project.clj
+++ b/exercises/practice/isogram/project.clj
@@ -1,4 +1,4 @@
 (defproject isogram "0.1.0-SNAPSHOT"
   :description "isogram exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/isogram"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/isogram"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/kindergarten-garden/project.clj b/exercises/practice/kindergarten-garden/project.clj
index 506db11..4b44d0b 100644
--- a/exercises/practice/kindergarten-garden/project.clj
+++ b/exercises/practice/kindergarten-garden/project.clj
@@ -1,4 +1,4 @@
 (defproject kindergarten-garden "0.1.0-SNAPSHOT"
   :description "kindergarten-garden exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/kindergarten-garden"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/kindergarten-garden"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/largest-series-product/project.clj b/exercises/practice/largest-series-product/project.clj
index a075b0d..7260309 100644
--- a/exercises/practice/largest-series-product/project.clj
+++ b/exercises/practice/largest-series-product/project.clj
@@ -1,4 +1,4 @@
 (defproject largest-series-product "0.1.0-SNAPSHOT"
   :description "largest-series-product exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/largest-series-product"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/largest-series-product"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/leap/project.clj b/exercises/practice/leap/project.clj
index 70a196a..2ca0036 100644
--- a/exercises/practice/leap/project.clj
+++ b/exercises/practice/leap/project.clj
@@ -1,4 +1,4 @@
 (defproject leap "0.1.0-SNAPSHOT"
   :description "leap exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/leap"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/leap"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/list-ops/.docs/instructions.append.md b/exercises/practice/list-ops/.docs/instructions.append.md
index e226d47..d27f6e1 100644
--- a/exercises/practice/list-ops/.docs/instructions.append.md
+++ b/exercises/practice/list-ops/.docs/instructions.append.md
@@ -1,8 +1,19 @@
 # Instructions append
 
-## Implementation tips
+## Appendix
 
-- The instructions use lists because they are synced with a shared repository to maintain consistency across tracks.
-  However, for this exercise in the Clojure track, you should assume that you are working with vectors instead of lists.
-- It is important not to reuse existing Clojure built-in functions with similar functionality, as doing so would diminish the intended learning value of the exercise.
-  Some of these functions include `into`, `concat`, `cat`, `lazy-cat`, `mapcat`, `flatten`, `filter`, `filterv`, `remove`, `count`, `map`, `mapv`, `reduce`, `transduce`, `reverse`, and `rseq` from the **clojure.core** namespace.
+The instructions are synced with a shared repository to ensure consistency across all language tracks.
+For this exercise in the Clojure track, assume both the input and output are vectors.
+As a stretch goal, consider how you could implement the solution without using lists anywhere in your code.
+Also, think about the efficiency of your program.
+
+It is important not to reuse existing Clojure built-in functions with similar functionality, as doing so would diminish the intended learning value of the exercise.
+Key functions from the **clojure.core** namespace to avoid include `into`, `concat`, `cat`, `lazy-cat`, `mapcat`, `flatten`, `filter`, `filterv`, `remove`, `count`, `map`, `mapv`, `reduce`, `transduce`, `reverse`, and `rseq`.
+
+### Optional goals
+
+Try to pass the tests by devising a solution that assumes both the input and output are lists instead of vectors.
+The test suite does not need to be modified.
+This time, consider how you could implement the solution without using vectors anywhere in your code.
+
+If you decide to publish this solution, be sure to include a comment indicating that it addresses the optional goal of using lists. Don't forget to update the docstrings!
diff --git a/exercises/practice/list-ops/.meta/config.json b/exercises/practice/list-ops/.meta/config.json
index 1035f4f..f1b2c91 100644
--- a/exercises/practice/list-ops/.meta/config.json
+++ b/exercises/practice/list-ops/.meta/config.json
@@ -1,10 +1,10 @@
 {
   "authors": [
-    "bobbicodes"
+    "bobbicodes",
+    "tasxatzial"
   ],
   "contributors": [
-    "kahgoh",
-    "tasxatzial"
+    "kahgoh"
   ],
   "files": {
     "solution": [
diff --git a/exercises/practice/list-ops/.meta/src/example.clj b/exercises/practice/list-ops/.meta/src/example.clj
index c4bc083..7aa1541 100644
--- a/exercises/practice/list-ops/.meta/src/example.clj
+++ b/exercises/practice/list-ops/.meta/src/example.clj
@@ -1,34 +1,50 @@
 (ns list-ops)
 
-(defn foldl [f coll init]
-  (loop [acc init l coll]
-    (cond
-      (empty? l) acc
-      :else (recur (f acc (first l)) (rest l)))))
-
-(defn append [coll1 coll2]
-  (list-ops/foldl (fn [acc elem] (conj acc elem)) coll2 coll1))
-
-(defn concatenate [coll]
-  (cond
-    (empty? coll) []
-    :else (list-ops/foldl (fn [acc elem] (list-ops/append acc elem)) (rest coll) (first coll))))
-
-(defn select-if [pred coll]
-  (loop [acc [] l coll]
-    (cond
-      (empty? l) acc
-      (pred (first l)) (recur (conj acc (first l)) (rest l))
-      :else (recur acc (rest l)))))
-
-(defn length [coll]
-  (list-ops/foldl (fn [acc elem] (+ acc 1)) coll 0))
-
-(defn apply-to-each [f coll]
-  (list-ops/foldl (fn [acc elem] (conj acc (f elem))) coll []))
-
-(defn reverse-order [coll]
-  (list-ops/foldl (fn [acc elem] (cons elem acc)) coll []))
-
-(defn foldr [f coll init]
-  (list-ops/foldl f (list-ops/reverse-order coll) init))
+(declare foldl)
+(declare reverse-order)
+
+(defn append
+  [coll1 coll2]
+  (foldl conj coll2 coll1))
+
+(defn concatenate
+  [colls]
+  (foldl append colls []))
+
+(defn select-if
+  [pred coll]
+  (let [reducer (fn [acc el]
+                  (if (pred el)
+                    (conj acc el)
+                    acc))]
+    (foldl reducer coll [])))
+
+(defn length
+  [coll]
+  (let [reducer (fn [acc _]
+                  (inc acc))]
+    (foldl reducer coll 0)))
+
+(defn apply-to-each
+  [f coll]
+  (let [reducer (fn [acc el]
+                  (conj acc (f el)))]
+    (foldl reducer coll [])))
+
+(defn foldl
+  [f coll acc]
+  (if (seq coll)
+    (recur f (rest coll) (f acc (first coll)))
+    acc))
+
+(defn foldr
+  [f coll acc]
+  (foldl f (reverse-order coll) acc))
+
+(defn reverse-order
+  [coll]
+  (loop [index (dec (length coll))
+         result []]
+    (if (neg? index)
+      result
+      (recur (dec index) (conj result (coll index))))))
diff --git a/exercises/practice/list-ops/.meta/src/example_lists.clj b/exercises/practice/list-ops/.meta/src/example_lists.clj
new file mode 100644
index 0000000..94b9c89
--- /dev/null
+++ b/exercises/practice/list-ops/.meta/src/example_lists.clj
@@ -0,0 +1,46 @@
+(ns list-ops)
+
+(declare foldl)
+(declare reverse-order)
+
+(defn append
+  [coll1 coll2]
+  (reverse-order (foldl conj coll2 (reverse-order coll1))))
+
+(defn concatenate
+  [colls]
+  (foldl append colls ()))
+
+(defn select-if
+  [pred coll]
+  (let [reducer (fn [acc el]
+                  (if (pred el)
+                    (conj acc el)
+                    acc))]
+    (reverse-order (foldl reducer coll ()))))
+
+(defn length
+  [coll]
+  (let [reducer (fn [acc _]
+                  (inc acc))]
+    (foldl reducer coll 0)))
+
+(defn apply-to-each
+  [f coll]
+  (let [reducer (fn [acc el]
+                  (conj acc (f el)))]
+    (reverse-order (foldl reducer coll ()))))
+
+(defn foldl
+  [f coll acc]
+  (if (seq coll)
+    (recur f (rest coll) (f acc (first coll)))
+    acc))
+
+(defn foldr
+  [f coll acc]
+  (foldl f (reverse-order coll) acc))
+
+(defn reverse-order
+  [coll]
+  (foldl conj coll ()))
diff --git a/exercises/practice/list-ops/src/list_ops.clj b/exercises/practice/list-ops/src/list_ops.clj
index 28d30ea..160992a 100644
--- a/exercises/practice/list-ops/src/list_ops.clj
+++ b/exercises/practice/list-ops/src/list_ops.clj
@@ -3,47 +3,47 @@
 (defn append 
   "Given two vectors, it adds all the items in the second vector to the end of the first vector"
   [coll1 coll2]
-  ;; your code goes here
-)
+  ;; function body
+  )
 
 (defn concatenate 
   "Given a vector of vectors, it combines all the vectors into one flattened vector"
   [colls]
-  ;; your code goes here
-)
+  ;; function body
+  )
 
 (defn select-if
   "Given a predicate and a vector, it returns the vector of all items for which predicate(item) is true"
   [pred coll]
-  ;; your code goes here
-)
+  ;; function body
+  )
 
 (defn length 
   "Given a vector, it returns the number of items within it"
   [coll]
-  ;; your code goes here
-)
+  ;; function body
+  )
 
 (defn apply-to-each 
   "Given a function and a vector, it returns the vector of the results of applying function(item) on all items"
   [f coll]
-  ;; your code goes here
-)
+  ;; function body
+  )
 
 (defn foldl 
   "Given a function, a vector, and initial accumulator, it folds (reduces) each item into the accumulator from the left"
-  [f coll init]
-  ;; your code goes here
-)
+  [f coll acc]
+  ;; function body
+  )
 
 (defn foldr
   "Given a function, a vector, and an initial accumulator, it folds (reduces) each item into the accumulator from the right"
-  [f coll init]
-  ;; your code goes here
-)
+  [f coll acc]
+  ;; function body
+  )
 
 (defn reverse-order 
   "Given a vector, it returns a vector with all the original items, but in reverse order"
   [coll]
-  ;; your code goes here
-)
+  ;; function body
+  )
diff --git a/exercises/practice/luhn/project.clj b/exercises/practice/luhn/project.clj
index c488e24..3eace5d 100644
--- a/exercises/practice/luhn/project.clj
+++ b/exercises/practice/luhn/project.clj
@@ -1,4 +1,4 @@
 (defproject luhn "0.1.0-SNAPSHOT"
   :description "luhn exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/luhn"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/luhn"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/matching-brackets/project.clj b/exercises/practice/matching-brackets/project.clj
index eb8d2ce..e94448a 100644
--- a/exercises/practice/matching-brackets/project.clj
+++ b/exercises/practice/matching-brackets/project.clj
@@ -1,4 +1,4 @@
 (defproject matching-brackets "0.1.0-SNAPSHOT"
   :description "matching-brackets exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/matching-brackets"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/matching-brackets"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/meetup/project.clj b/exercises/practice/meetup/project.clj
index 9f59222..da77434 100644
--- a/exercises/practice/meetup/project.clj
+++ b/exercises/practice/meetup/project.clj
@@ -1,4 +1,4 @@
 (defproject meetup "0.1.0-SNAPSHOT"
   :description "meetup exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/meetup"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/meetup"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/minesweeper/project.clj b/exercises/practice/minesweeper/project.clj
index 57beb32..7a89ce2 100644
--- a/exercises/practice/minesweeper/project.clj
+++ b/exercises/practice/minesweeper/project.clj
@@ -1,4 +1,4 @@
 (defproject minesweeper "0.1.0-SNAPSHOT"
   :description "minesweeper exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/minesweeper"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/minesweeper"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/nth-prime/project.clj b/exercises/practice/nth-prime/project.clj
index 4c1c417..6cee86d 100644
--- a/exercises/practice/nth-prime/project.clj
+++ b/exercises/practice/nth-prime/project.clj
@@ -1,4 +1,4 @@
 (defproject nth-prime "0.1.0-SNAPSHOT"
   :description "nth-prime exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/nth-prime"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/nth-prime"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/nucleotide-count/project.clj b/exercises/practice/nucleotide-count/project.clj
index a8c0081..813cc6d 100644
--- a/exercises/practice/nucleotide-count/project.clj
+++ b/exercises/practice/nucleotide-count/project.clj
@@ -1,4 +1,4 @@
 (defproject nucleotide-count "0.1.0-SNAPSHOT"
   :description "nucleotide-count exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/nucleotide-count"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/nucleotide-count"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/octal/project.clj b/exercises/practice/octal/project.clj
index f6d9130..6741c04 100644
--- a/exercises/practice/octal/project.clj
+++ b/exercises/practice/octal/project.clj
@@ -1,4 +1,4 @@
 (defproject octal "0.1.0-SNAPSHOT"
   :description "octal exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/octal"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/octal"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/pascals-triangle/project.clj b/exercises/practice/pascals-triangle/project.clj
index 7e98405..41e2e1f 100644
--- a/exercises/practice/pascals-triangle/project.clj
+++ b/exercises/practice/pascals-triangle/project.clj
@@ -1,4 +1,4 @@
 (defproject pascals-triangle "0.1.0-SNAPSHOT"
   :description "pascal's triangle exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/pascals-triangle"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/pascals-triangle"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/perfect-numbers/project.clj b/exercises/practice/perfect-numbers/project.clj
index a6a4236..b3253de 100644
--- a/exercises/practice/perfect-numbers/project.clj
+++ b/exercises/practice/perfect-numbers/project.clj
@@ -1,4 +1,4 @@
 (defproject perfect-numbers "0.1.0-SNAPSHOT"
   :description "perfect-numbers exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/perfect-numbers"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/perfect-numbers"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/phone-number/project.clj b/exercises/practice/phone-number/project.clj
index 0341afc..540b3a4 100644
--- a/exercises/practice/phone-number/project.clj
+++ b/exercises/practice/phone-number/project.clj
@@ -1,4 +1,4 @@
 (defproject phone-number "0.1.0-SNAPSHOT"
   :description "phone-number exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/phone-number"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/phone-number"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/pig-latin/project.clj b/exercises/practice/pig-latin/project.clj
index d32c085..3580d4d 100644
--- a/exercises/practice/pig-latin/project.clj
+++ b/exercises/practice/pig-latin/project.clj
@@ -1,4 +1,4 @@
 (defproject pig-latin "0.1.0-SNAPSHOT"
   :description "pig latin exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/pig-latin"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/pig-latin"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/poker/project.clj b/exercises/practice/poker/project.clj
index 1269346..aad92d7 100644
--- a/exercises/practice/poker/project.clj
+++ b/exercises/practice/poker/project.clj
@@ -1,4 +1,4 @@
 (defproject poker "0.1.0-SNAPSHOT"
   :description "poker exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/poker"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/poker"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/prime-factors/project.clj b/exercises/practice/prime-factors/project.clj
index 0347d5b..39e7a07 100644
--- a/exercises/practice/prime-factors/project.clj
+++ b/exercises/practice/prime-factors/project.clj
@@ -1,4 +1,4 @@
 (defproject prime-factors "0.1.0-SNAPSHOT"
   :description "prime-factors exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/prime-factors"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/prime-factors"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/queen-attack/project.clj b/exercises/practice/queen-attack/project.clj
index beeb80d..7d657dd 100644
--- a/exercises/practice/queen-attack/project.clj
+++ b/exercises/practice/queen-attack/project.clj
@@ -1,4 +1,4 @@
 (defproject queen-attack "0.1.0-SNAPSHOT"
   :description "queen-attack exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/queen-attack"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/queen-attack"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/raindrops/project.clj b/exercises/practice/raindrops/project.clj
index 65b35f1..0835003 100644
--- a/exercises/practice/raindrops/project.clj
+++ b/exercises/practice/raindrops/project.clj
@@ -1,4 +1,4 @@
 (defproject raindrops "0.1.0-SNAPSHOT"
   :description "raindrops exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/raindrops"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/raindrops"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/reverse-string/project.clj b/exercises/practice/reverse-string/project.clj
index 34c22bc..aeb77e2 100644
--- a/exercises/practice/reverse-string/project.clj
+++ b/exercises/practice/reverse-string/project.clj
@@ -1,4 +1,4 @@
 (defproject reverse-string "0.1.0-SNAPSHOT"
   :description "reverse-string exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/reverse-string"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/reverse-string"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/rna-transcription/project.clj b/exercises/practice/rna-transcription/project.clj
index 7e075e5..001e6fa 100644
--- a/exercises/practice/rna-transcription/project.clj
+++ b/exercises/practice/rna-transcription/project.clj
@@ -1,4 +1,4 @@
 (defproject rna-transcription "0.1.0-SNAPSHOT"
   :description "rna-transcription exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/rna-transcription"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/rna-transcription"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/robot-name/project.clj b/exercises/practice/robot-name/project.clj
index 4520f75..f25a222 100644
--- a/exercises/practice/robot-name/project.clj
+++ b/exercises/practice/robot-name/project.clj
@@ -1,4 +1,4 @@
 (defproject robot-name "0.1.0-SNAPSHOT"
   :description "robot-name exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/robot-name"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/robot-name"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/robot-simulator/project.clj b/exercises/practice/robot-simulator/project.clj
index 13c24e3..896df5d 100644
--- a/exercises/practice/robot-simulator/project.clj
+++ b/exercises/practice/robot-simulator/project.clj
@@ -1,4 +1,4 @@
 (defproject robot-simulator "0.1.0-SNAPSHOT"
   :description "robot-simulator exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/robot-simulator"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/robot-simulator"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/roman-numerals/project.clj b/exercises/practice/roman-numerals/project.clj
index 98fef1e..30a2da0 100644
--- a/exercises/practice/roman-numerals/project.clj
+++ b/exercises/practice/roman-numerals/project.clj
@@ -1,4 +1,4 @@
 (defproject roman-numerals "0.1.0-SNAPSHOT"
   :description "roman-numerals exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/roman-numerals"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/roman-numerals"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/rotational-cipher/project.clj b/exercises/practice/rotational-cipher/project.clj
index 829ad91..8d355ba 100644
--- a/exercises/practice/rotational-cipher/project.clj
+++ b/exercises/practice/rotational-cipher/project.clj
@@ -1,4 +1,4 @@
 (defproject rotational-cipher "0.1.0-SNAPSHOT"
   :description "rotational cipher exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/rotational-cipher"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/rotational-cipher"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/run-length-encoding/project.clj b/exercises/practice/run-length-encoding/project.clj
index 42ce313..00d4b8a 100644
--- a/exercises/practice/run-length-encoding/project.clj
+++ b/exercises/practice/run-length-encoding/project.clj
@@ -1,4 +1,4 @@
 (defproject run-length-encoding "0.1.0-SNAPSHOT"
   :description "run-length-encoding exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/run-length-encoding"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/run-length-encoding"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/say/project.clj b/exercises/practice/say/project.clj
index c4f6fa5..d89c2a6 100644
--- a/exercises/practice/say/project.clj
+++ b/exercises/practice/say/project.clj
@@ -1,4 +1,4 @@
 (defproject say "0.1.0-SNAPSHOT"
   :description "say exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/say"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/say"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/scrabble-score/project.clj b/exercises/practice/scrabble-score/project.clj
index 67f5966..dd6a600 100644
--- a/exercises/practice/scrabble-score/project.clj
+++ b/exercises/practice/scrabble-score/project.clj
@@ -1,4 +1,4 @@
 (defproject scrabble-score "0.1.0-SNAPSHOT"
   :description "scrabble-score exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/scrabble-score"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/scrabble-score"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/secret-handshake/project.clj b/exercises/practice/secret-handshake/project.clj
index 17699a4..3fb64c7 100644
--- a/exercises/practice/secret-handshake/project.clj
+++ b/exercises/practice/secret-handshake/project.clj
@@ -1,4 +1,4 @@
 (defproject secret-handshake "0.1.0-SNAPSHOT"
   :description "secret-handshake exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/secret-handshake"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/secret-handshake"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/series/project.clj b/exercises/practice/series/project.clj
index f7932e4..948600f 100644
--- a/exercises/practice/series/project.clj
+++ b/exercises/practice/series/project.clj
@@ -1,4 +1,4 @@
 (defproject series "0.1.0-SNAPSHOT"
   :description "series exercise"
-  :url "https://github.com/exercism/clojure/tree/master/exercises/series"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/series"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/sieve/project.clj b/exercises/practice/sieve/project.clj
index eef826f..e61b002 100644
--- a/exercises/practice/sieve/project.clj
+++ b/exercises/practice/sieve/project.clj
@@ -1,4 +1,4 @@
 (defproject sieve "0.1.0-SNAPSHOT"
   :description "sieve exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/sieve"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/sieve"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/space-age/project.clj b/exercises/practice/space-age/project.clj
index 358ebae..1fd8c72 100644
--- a/exercises/practice/space-age/project.clj
+++ b/exercises/practice/space-age/project.clj
@@ -1,4 +1,4 @@
 (defproject space-age "0.1.0-SNAPSHOT"
   :description "space-age exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/space-age"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/space-age"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/spiral-matrix/project.clj b/exercises/practice/spiral-matrix/project.clj
index 8efe74c..eb2bec6 100644
--- a/exercises/practice/spiral-matrix/project.clj
+++ b/exercises/practice/spiral-matrix/project.clj
@@ -1,4 +1,4 @@
 (defproject spiral-matrix "0.1.0-SNAPSHOT"
   :description "spiral-matrix exercise"
-  :url "https://github.com/exercism/clojure/tree/master/exercises/spiral-matrix"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/spiral-matrix"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/strain/project.clj b/exercises/practice/strain/project.clj
index 3eced97..8a6b151 100644
--- a/exercises/practice/strain/project.clj
+++ b/exercises/practice/strain/project.clj
@@ -1,4 +1,4 @@
 (defproject strain "0.1.0-SNAPSHOT"
   :description "strain exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/strain"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/strain"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/sublist/.docs/instructions.append.md b/exercises/practice/sublist/.docs/instructions.append.md
new file mode 100644
index 0000000..fd70d1c
--- /dev/null
+++ b/exercises/practice/sublist/.docs/instructions.append.md
@@ -0,0 +1,11 @@
+# Instructions append
+
+## Appendix
+
+~~~~exercism/note
+The instructions above are synchronized with a shared repository to ensure consistency across all language tracks.
+This appendix provides additional clarification or modifies the instructions as needed to better align with the goals of the Clojure track.
+~~~~
+
+For this exercise in the Clojure track, you may **assume the input is a vector**, as indicated by the tests.
+However, this is not a strict requirement.
diff --git a/exercises/practice/sublist/.docs/instructions.md b/exercises/practice/sublist/.docs/instructions.md
index 7535931..8228edc 100644
--- a/exercises/practice/sublist/.docs/instructions.md
+++ b/exercises/practice/sublist/.docs/instructions.md
@@ -8,8 +8,8 @@ Given any two lists `A` and `B`, determine if:
 - None of the above is true, thus lists `A` and `B` are unequal
 
 Specifically, list `A` is equal to list `B` if both lists have the same values in the same order.
-List `A` is a superlist of `B` if `A` contains a sub-sequence of values equal to `B`.
-List `A` is a sublist of `B` if `B` contains a sub-sequence of values equal to `A`.
+List `A` is a superlist of `B` if `A` contains a contiguous sub-sequence of values equal to `B`.
+List `A` is a sublist of `B` if `B` contains a contiguous sub-sequence of values equal to `A`.
 
 Examples:
 
diff --git a/exercises/practice/sublist/.meta/config.json b/exercises/practice/sublist/.meta/config.json
index 73198e2..9d58c09 100644
--- a/exercises/practice/sublist/.meta/config.json
+++ b/exercises/practice/sublist/.meta/config.json
@@ -5,7 +5,8 @@
   "contributors": [
     "AndreaCrotti",
     "haus",
-    "yurrriq"
+    "yurrriq",
+    "tasxatzial"
   ],
   "files": {
     "solution": [
diff --git a/exercises/practice/sublist/project.clj b/exercises/practice/sublist/project.clj
index 723c170..6b3c691 100644
--- a/exercises/practice/sublist/project.clj
+++ b/exercises/practice/sublist/project.clj
@@ -1,4 +1,4 @@
 (defproject sublist "0.1.0-SNAPSHOT"
   :description "sublist exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/sublist"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/sublist"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/sublist/src/sublist.clj b/exercises/practice/sublist/src/sublist.clj
index d6b8844..4974292 100644
--- a/exercises/practice/sublist/src/sublist.clj
+++ b/exercises/practice/sublist/src/sublist.clj
@@ -1,5 +1,6 @@
 (ns sublist)
 
-(defn classify [list1 list2] ;; <- arglist goes here
-      ;; your code goes here
-)
+(defn classify
+  [coll1 coll2]
+  ;; function body
+  )
diff --git a/exercises/practice/sum-of-multiples/project.clj b/exercises/practice/sum-of-multiples/project.clj
index 0fc5a89..f5c6862 100644
--- a/exercises/practice/sum-of-multiples/project.clj
+++ b/exercises/practice/sum-of-multiples/project.clj
@@ -1,4 +1,4 @@
 (defproject sum-of-multiples "0.1.0-SNAPSHOT"
   :description "sum-of-multiples exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/sum-of-multiples"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/sum-of-multiples"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/triangle/project.clj b/exercises/practice/triangle/project.clj
index 89fd6e6..487dff7 100644
--- a/exercises/practice/triangle/project.clj
+++ b/exercises/practice/triangle/project.clj
@@ -1,4 +1,4 @@
 (defproject triangle "0.1.0-SNAPSHOT"
   :description "triangle exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/triangle"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/triangle"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/trinary/project.clj b/exercises/practice/trinary/project.clj
index 6955d96..82c86e8 100644
--- a/exercises/practice/trinary/project.clj
+++ b/exercises/practice/trinary/project.clj
@@ -1,4 +1,4 @@
 (defproject trinary "0.1.0-SNAPSHOT"
   :description "trinary exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/trinary"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/trinary"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/two-fer/project.clj b/exercises/practice/two-fer/project.clj
index 6c67fbd..ef70e9e 100644
--- a/exercises/practice/two-fer/project.clj
+++ b/exercises/practice/two-fer/project.clj
@@ -1,4 +1,4 @@
 (defproject two-fer "0.1.0-SNAPSHOT"
   :description "two-fer exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/two-fer"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/two-fer"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/word-count/project.clj b/exercises/practice/word-count/project.clj
index 464bbd5..21e31d4 100644
--- a/exercises/practice/word-count/project.clj
+++ b/exercises/practice/word-count/project.clj
@@ -1,4 +1,4 @@
 (defproject word-count "0.1.0-SNAPSHOT"
   :description "word-count exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/word-count"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/word-count"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/wordy/project.clj b/exercises/practice/wordy/project.clj
index b09f3e0..f1bd8bf 100644
--- a/exercises/practice/wordy/project.clj
+++ b/exercises/practice/wordy/project.clj
@@ -1,4 +1,4 @@
 (defproject word-count "0.1.0-SNAPSHOT"
   :description "wordy exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/wordy"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/wordy"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/yacht/.meta/config.json b/exercises/practice/yacht/.meta/config.json
index 594bae5..c6ff390 100644
--- a/exercises/practice/yacht/.meta/config.json
+++ b/exercises/practice/yacht/.meta/config.json
@@ -2,7 +2,6 @@
   "authors": [
     "porkostomus"
   ],
-  "contributors": [],
   "files": {
     "solution": [
       "src/yacht.clj"
diff --git a/exercises/practice/yacht/project.clj b/exercises/practice/yacht/project.clj
index 12fc797..f7cb817 100644
--- a/exercises/practice/yacht/project.clj
+++ b/exercises/practice/yacht/project.clj
@@ -1,4 +1,4 @@
 (defproject yacht "0.1.0-SNAPSHOT"
   :description "yacht exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/yacht"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/yacht"
   :dependencies [[org.clojure/clojure "1.10.0"]])
diff --git a/exercises/practice/zipper/.meta/config.json b/exercises/practice/zipper/.meta/config.json
index 7a564d0..9a534de 100644
--- a/exercises/practice/zipper/.meta/config.json
+++ b/exercises/practice/zipper/.meta/config.json
@@ -1,10 +1,17 @@
 {
-  "authors" : [ "porkostomus" ],
-  "contributors" : [ ],
-  "files" : {
-    "solution" : [ "src/zipper.clj" ],
-    "test" : [ "test/zipper_test.clj" ],
-    "example" : [ ".meta/src/example.clj" ]
+  "authors": [
+    "porkostomus"
+  ],
+  "files": {
+    "solution": [
+      "src/zipper.clj"
+    ],
+    "test": [
+      "test/zipper_test.clj"
+    ],
+    "example": [
+      ".meta/src/example.clj"
+    ]
   },
-  "blurb" : "Creating a zipper for a binary tree."
-}
\ No newline at end of file
+  "blurb": "Creating a zipper for a binary tree."
+}
diff --git a/exercises/practice/zipper/project.clj b/exercises/practice/zipper/project.clj
index eb902cc..d44e5b2 100644
--- a/exercises/practice/zipper/project.clj
+++ b/exercises/practice/zipper/project.clj
@@ -1,4 +1,4 @@
 (defproject zipper "0.1.0-SNAPSHOT"
   :description "zipper exercise."
-  :url "https://github.com/exercism/clojure/tree/master/exercises/zipper"
+  :url "https://github.com/exercism/clojure/tree/main/exercises/practice/zipper"
   :dependencies [[org.clojure/clojure "1.10.0"]])


Test patch:
diff --git a/exercises/practice/dominoes/.meta/tests.toml b/exercises/practice/dominoes/.meta/tests.toml
index 23ff84f..08c8e08 100644
--- a/exercises/practice/dominoes/.meta/tests.toml
+++ b/exercises/practice/dominoes/.meta/tests.toml
@@ -1,6 +1,13 @@
-# This is an auto-generated file. Regular comments will be removed when this
-# file is regenerated. Regenerating will not touch any manually added keys,
-# so comments can be added in a "comment" key.
+# This is an auto-generated file.
+#
+# Regenerating this file via `configlet sync` will:
+# - Recreate every `description` key/value pair
+# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
+# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
+# - Preserve any other key/value pair
+#
+# As user-added comments (using the # character) will be removed when this file
+# is regenerated, comments can be added via a `comment` key.
 
 [31a673f2-5e54-49fe-bd79-1c1dae476c9c]
 description = "empty input = empty output"
@@ -37,3 +44,6 @@ description = "separate loops"
 
 [cd061538-6046-45a7-ace9-6708fe8f6504]
 description = "nine elements"
+
+[44704c7c-3adb-4d98-bd30-f45527cf8b49]
+description = "separate three-domino loops"
diff --git a/exercises/practice/dominoes/test/dominoes_test.clj b/exercises/practice/dominoes/test/dominoes_test.clj
index bb1b2ef..beccaa3 100644
--- a/exercises/practice/dominoes/test/dominoes_test.clj
+++ b/exercises/practice/dominoes/test/dominoes_test.clj
@@ -1,39 +1,55 @@
 (ns dominoes-test
-  (:require [clojure.test :refer [deftest is]]
-            [dominoes     :refer [can-chain?]]))
+  (:require [clojure.test :refer [deftest testing is]]
+            dominoes))
 
-(deftest empty-input-empty-output
-  (is (can-chain? [])))
+(deftest test-31a673f2-5e54-49fe-bd79-1c1dae476c9c
+  (testing "Empty input = empty output"
+    (is (true? (dominoes/can-chain? [])))))
 
-(deftest singleton-input-singleton-output
-  (is (can-chain? [[1 1]])))
+(deftest test-4f99b933-367b-404b-8c6d-36d5923ee476
+  (testing "Singleton input = singleton output"
+    (is (true? (dominoes/can-chain? [[1 1]])))))
 
-(deftest singleton-that-cant-be-chained
-  (is ((comp not can-chain?) [[1 2]])))
+(deftest test-91122d10-5ec7-47cb-b759-033756375869
+  (testing "Singleton that can't be chained"
+    (is (false? (dominoes/can-chain? [[1 2]])))))
 
-(deftest three-elements
-  (is (can-chain?  [[1 2] [3 1] [2 3]])))
+(deftest test-be8bc26b-fd3d-440b-8e9f-d698a0623be3
+  (testing "Three elements"
+    (is (true? (dominoes/can-chain?  [[1 2] [3 1] [2 3]])))))
 
-(deftest can-reverse-dominoes
-  (is (can-chain? [[1 2] [1 3] [2 3]])))
+(deftest test-99e615c6-c059-401c-9e87-ad7af11fea5c
+  (testing "Can reverse dominoes"
+    (is (true? (dominoes/can-chain? [[1 2] [1 3] [2 3]])))))
 
-(deftest cant-be-chained
-  (is ((comp not can-chain?) [[1 2] [4 1] [2 3]])))
+(deftest test-51f0c291-5d43-40c5-b316-0429069528c9
+  (testing "Can't be chained"
+    (is (false? (dominoes/can-chain? [[1 2] [4 1] [2 3]])))))
 
-(deftest disconnected-simple
-  (is ((comp not can-chain?) [[1 1] [2 2]])))
+(deftest test-9a75e078-a025-4c23-8c3a-238553657f39
+  (testing "Disconnected - simple"
+    (is (false? (dominoes/can-chain? [[1 1] [2 2]])))))
 
-(deftest disconnected-double-loop
-  (is ((comp not can-chain?) [[1 2] [2 1] [3 4] [4 3]])))
+(deftest test-0da0c7fe-d492-445d-b9ef-1f111f07a301
+  (testing "Disconnected - double loop"
+    (is (false? (dominoes/can-chain? [[1 2] [2 1] [3 4] [4 3]])))))
 
-(deftest disconnected-single-isolated
-  (is ((comp not can-chain?) [[1 2] [2 3] [3 1] [4 4]])))
+(deftest test-b6087ff0-f555-4ea0-a71c-f9d707c5994a
+  (testing "Disconnected - single isolated"
+    (is (false? (dominoes/can-chain? [[1 2] [2 3] [3 1] [4 4]])))))
 
-(deftest need-backtrack
-  (is (can-chain? [[1 2] [2 3] [3 1] [2 4] [2 4]])))
+(deftest test-2174fbdc-8b48-4bac-9914-8090d06ef978
+  (testing "Need backtrack"
+    (is (true? (dominoes/can-chain? [[1 2] [2 3] [3 1] [2 4] [2 4]])))))
 
-(deftest separate-loops
-  (is (can-chain? [[1 2] [2 3] [3 1] [1 1] [2 2] [3 3]])))
+(deftest test-167bb480-dfd1-4318-a20d-4f90adb4a09f
+  (testing "Separate loops"
+    (is (true? (dominoes/can-chain? [[1 2] [2 3] [3 1] [1 1] [2 2] [3 3]])))))
 
-(deftest nine-elements
-  (is (can-chain? [[1 2] [5 3] [3 1] [1 2] [2 4] [1 6] [2 3] [3 4] [5 6]])))
+(deftest test-cd061538-6046-45a7-ace9-6708fe8f6504
+  (testing "Nine elements"
+    (is (true? (dominoes/can-chain? [[1 2] [5 3] [3 1] [1 2] [2 4] [1 6] [2 3] [3 4] [5 6]])))))
+
+(deftest test-44704c7c-3adb-4d98-bd30-f45527cf8b49
+  (testing "Separate three-domino loops"
+    (is (false? (dominoes/can-chain?  [[1 2] [2 3] [3 1] [4 5] [5 6] [6 4]])))))
diff --git a/exercises/practice/eliuds-eggs/.meta/tests.toml b/exercises/practice/eliuds-eggs/.meta/tests.toml
new file mode 100644
index 0000000..e11683c
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/.meta/tests.toml
@@ -0,0 +1,22 @@
+# This is an auto-generated file.
+#
+# Regenerating this file via `configlet sync` will:
+# - Recreate every `description` key/value pair
+# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
+# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
+# - Preserve any other key/value pair
+#
+# As user-added comments (using the # character) will be removed when this file
+# is regenerated, comments can be added via a `comment` key.
+
+[559e789d-07d1-4422-9004-3b699f83bca3]
+description = "0 eggs"
+
+[97223282-f71e-490c-92f0-b3ec9e275aba]
+description = "1 egg"
+
+[1f8fd18f-26e9-4144-9a0e-57cdfc4f4ff5]
+description = "4 eggs"
+
+[0c18be92-a498-4ef2-bcbb-28ac4b06cb81]
+description = "13 eggs"
diff --git a/exercises/practice/eliuds-eggs/test/eliuds_eggs_test.clj b/exercises/practice/eliuds-eggs/test/eliuds_eggs_test.clj
new file mode 100644
index 0000000..e660f18
--- /dev/null
+++ b/exercises/practice/eliuds-eggs/test/eliuds_eggs_test.clj
@@ -0,0 +1,15 @@
+(ns eliuds-eggs-test
+  (:require [clojure.test :refer [deftest is]]
+            eliuds-eggs))
+
+(deftest no-eggs
+  (is (= 0 (eliuds-eggs/egg-count 0))))
+
+(deftest one-egg
+  (is (= 1 (eliuds-eggs/egg-count 16))))
+
+(deftest four-eggs
+  (is (= 4 (eliuds-eggs/egg-count 89))))
+
+(deftest thirteen-eggs
+  (is (= 13 (eliuds-eggs/egg-count 2000000000))))
\ No newline at end of file
diff --git a/exercises/practice/list-ops/test/list_ops_test.clj b/exercises/practice/list-ops/test/list_ops_test.clj
index 2b26907..83f0544 100644
--- a/exercises/practice/list-ops/test/list_ops_test.clj
+++ b/exercises/practice/list-ops/test/list_ops_test.clj
@@ -2,62 +2,90 @@
   (:require [clojure.test :refer [deftest testing is]]
              list-ops))
 
-(deftest append-test
-  (testing "empty vectors"
-     (is (= [] (list-ops/append [] []))))
-  (testing "vector to empty vector"
-     (is (= [1 2 3 4] (list-ops/append [] [1 2 3 4]))))
-  (testing "empty vector to vector"
-     (is (= [1 2 3 4] (list-ops/append [1 2 3 4] []))))
-  (testing "non-empty vectors"
-     (is (= [1 2 2 3 4 5] (list-ops/append [1 2] [2 3 4 5])))))
-
-(deftest concatenate-test
-  (testing "empty vector"
-     (is (= [] (list-ops/concatenate []))))
-  (testing "vector of vectors"
-     (is (= [1 2 3 4 5 6] (list-ops/concatenate [[1 2] [3] [] [4 5 6]]))))
-  (testing "vector of nested vectors"
-     (is (= [[1] [2] [3] [] [4 5 6]] (list-ops/concatenate [[[1] [2]] [[3]] [[]] [[4 5 6]]])))))
-
-(deftest select-if-test
-  (testing "empty vector"
-     (is (= [] (list-ops/select-if (fn [x] (= (mod x 2) 1)) [])))
-  (testing "non-empty vector"
-     (is (= [1 3 5] (list-ops/select-if (fn [x] (= (mod x 2) 1)) [1 2 3 5]))))))
-
-(deftest length-test
-  (testing "empty vector"
-     (is (= 0 (list-ops/length []))))
-  (testing "non-empty vector"
-     (is (= 4 (list-ops/length [1 2 3 4])))))
-
-(deftest apply-to-each-test
-  (testing "empty vector"
-     (is (= [] (list-ops/apply-to-each (fn [x] (+ x 1)) []))))
-  (testing "non-empty vector"
-     (is (= [2 4 6 8] (list-ops/apply-to-each (fn [x] (+ x 1)) [1 3 5 7])))))
-
-(deftest foldl-test
-  (testing "empty vector"
-     (is (= 2 (list-ops/foldl (fn [acc el] (* el acc)) [] 2))))
-  (testing "direction independent function applied to non-empty vector"
-     (is (= 15 (list-ops/foldl (fn [acc el] (+ el acc)) [1 2 3 4] 5))))
-  (testing "direction dependent function applied to non-empty vector"
-     (is (= 64 (list-ops/foldl (fn [acc el] (/ el acc)) [1 2 3 4] 24)))))
-
-(deftest foldr-test
-  (testing "empty vector"
-     (is (= 2 (list-ops/foldr (fn [acc el] (* el acc)) [] 2))))
-  (testing "direction independent function applied to non-empty vector"
-     (is (= 15 (list-ops/foldr (fn [acc el] (+ el acc)) [1 2 3 4] 5))))
-  (testing "direction dependent function applied to non-empty vector"
-     (is (= 9 (list-ops/foldr (fn [acc el] (/ el acc)) [1 2 3 4] 24)))))
-
-(deftest reverse-order-test
-  (testing "empty vector"
-     (is (= [] (list-ops/reverse-order []))))
-  (testing "non-empty vector"
-     (is (= [7 5 3 1] (list-ops/reverse-order [1 3 5 7]))))
-  (testing "vector of vectors is not flattened"
-     (is (= [[4 5 6] [] [3] [1 2]] (list-ops/reverse-order [[1 2] [3] [] [4 5 6]])))))
+(deftest test-485b9452-bf94-40f7-a3db-c3cf4850066a
+  (testing "append entries to a vector and return the new vector -> empty vectors"
+    (is (= [] (list-ops/append [] [])))))
+
+(deftest test-2c894696-b609-4569-b149-8672134d340a
+  (testing "append entries to a vector and return the new vector -> vector to empty vector"
+    (is (= [1 2 3 4] (list-ops/append [] [1 2 3 4])))))
+
+(deftest test-e842efed-3bf6-4295-b371-4d67a4fdf19c
+  (testing "append entries to a vector and return the new vector -> empty vector to vector"
+    (is (= [1 2 3 4] (list-ops/append [1 2 3 4] [])))))
+
+(deftest test-71dcf5eb-73ae-4a0e-b744-a52ee387922f
+  (testing "append entries to a vector and return the new vector -> non-empty vectors"
+    (is (= [1 2 2 3 4 5] (list-ops/append [1 2] [2 3 4 5])))))
+
+(deftest test-28444355-201b-4af2-a2f6-5550227bde21
+  (testing "concatenate a vector of vectors -> empty vector"
+    (is (= [] (list-ops/concatenate [])))))
+
+(deftest test-331451c1-9573-42a1-9869-2d06e3b389a9
+  (testing "concatenate a vector of vectors -> vector of vectors"
+    (is (= [1 2 3 4 5 6] (list-ops/concatenate [[1 2] [3] [] [4 5 6]])))))
+
+(deftest test-d6ecd72c-197f-40c3-89a4-aa1f45827e09
+  (testing "concatenate a vector of vectors -> vector of nested vectors"
+    (is (= [[1] [2] [3] [] [4 5 6]] (list-ops/concatenate [[[1] [2]] [[3]] [[]] [[4 5 6]]])))))
+
+(deftest test-0524fba8-3e0f-4531-ad2b-f7a43da86a16
+  (testing "filter vector returning only values that satisfy the filter function -> empty vector"
+    (is (= [] (list-ops/select-if (fn [x] (= (mod x 2) 1)) [])))))
+
+(deftest test-88494bd5-f520-4edb-8631-88e415b62d24
+  (testing "filter vector returning only values that satisfy the filter function -> non-empty vector"
+    (is (= [1 3 5] (list-ops/select-if (fn [x] (= (mod x 2) 1)) [1 2 3 5])))))
+
+(deftest test-1cf0b92d-8d96-41d5-9c21-7b3c37cb6aad
+  (testing "returns the length of a vector -> empty vector"
+    (is (= 0 (list-ops/length [])))))
+
+(deftest test-d7b8d2d9-2d16-44c4-9a19-6e5f237cb71e
+  (testing "returns the length of a vector -> non-empty vector"
+    (is (= 4 (list-ops/length [1 2 3 4])))))
+
+(deftest test-c0bc8962-30e2-4bec-9ae4-668b8ecd75aa
+  (testing "return a vector of elements whose values equal the vector value transformed by the mapping function -> empty vector"
+    (is (= [] (list-ops/apply-to-each (fn [x] (+ x 1)) [])))))
+
+(deftest test-11e71a95-e78b-4909-b8e4-60cdcaec0e91
+  (testing "return a vector of elements whose values equal the vector value transformed by the mapping function -> non-empty vector"
+    (is (= [2 4 6 8] (list-ops/apply-to-each (fn [x] (+ x 1)) [1 3 5 7])))))
+
+(deftest test-36549237-f765-4a4c-bfd9-5d3a8f7b07d2
+  (testing "folds (reduces) the given vector from the left with a function -> empty vector"
+    (is (= 2 (list-ops/foldl (fn [acc el] (* el acc)) [] 2)))))
+
+(deftest test-7a626a3c-03ec-42bc-9840-53f280e13067
+  (testing "folds (reduces) the given vector from the left with a function -> direction independent function applied to non-empty vector"
+    (is (= 15 (list-ops/foldl (fn [acc el] (+ el acc)) [1 2 3 4] 5)))))
+
+(deftest test-d7fcad99-e88e-40e1-a539-4c519681f390
+  (testing "folds (reduces) the given vector from the left with a function -> direction dependent function applied to non-empty vector"
+    (is (= 64 (list-ops/foldl (fn [acc el] (/ el acc)) [1 2 3 4] 24)))))
+
+(deftest test-17214edb-20ba-42fc-bda8-000a5ab525b0
+  (testing "folds (reduces) the given vector from the right with a function -> empty vector"
+    (is (= 2 (list-ops/foldr (fn [acc el] (* el acc)) [] 2)))))
+
+(deftest test-e1c64db7-9253-4a3d-a7c4-5273b9e2a1bd
+  (testing "folds (reduces) the given vector from the right with a function -> direction independent function applied to non-empty vector"
+    (is (= 15 (list-ops/foldr (fn [acc el] (+ el acc)) [1 2 3 4] 5)))))
+
+(deftest test-8066003b-f2ff-437e-9103-66e6df474844
+  (testing "folds (reduces) the given vector from the right with a function -> direction dependent function applied to non-empty vector"
+    (is (= 9 (list-ops/foldr (fn [acc el] (/ el acc)) [1 2 3 4] 24)))))
+
+(deftest test-94231515-050e-4841-943d-d4488ab4ee30
+  (testing "reverse the elements of the vector -> empty vector"
+    (is (= [] (list-ops/reverse-order [])))))
+
+(deftest test-fcc03d1e-42e0-4712-b689-d54ad761f360
+  (testing "reverse the elements of the vector -> non-empty vector"
+    (is (= [7 5 3 1] (list-ops/reverse-order [1 3 5 7])))))
+
+(deftest test-40872990-b5b8-4cb8-9085-d91fc0d05d26
+  (testing "reverse the elements of the vector -> vector of vectors is not flattened"
+    (is (= [[4 5 6] [] [3] [1 2]] (list-ops/reverse-order [[1 2] [3] [] [4 5 6]])))))
diff --git a/exercises/practice/sublist/.meta/tests.toml b/exercises/practice/sublist/.meta/tests.toml
index 74bd60c..de5020a 100644
--- a/exercises/practice/sublist/.meta/tests.toml
+++ b/exercises/practice/sublist/.meta/tests.toml
@@ -1,6 +1,13 @@
-# This is an auto-generated file. Regular comments will be removed when this
-# file is regenerated. Regenerating will not touch any manually added keys,
-# so comments can be added in a "comment" key.
+# This is an auto-generated file.
+#
+# Regenerating this file via `configlet sync` will:
+# - Recreate every `description` key/value pair
+# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
+# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
+# - Preserve any other key/value pair
+#
+# As user-added comments (using the # character) will be removed when this file
+# is regenerated, comments can be added via a `comment` key.
 
 [97319c93-ebc5-47ab-a022-02a1980e1d29]
 description = "empty lists"
@@ -47,6 +54,9 @@ description = "first list missing element from second list"
 [83ffe6d8-a445-4a3c-8795-1e51a95e65c3]
 description = "second list missing element from first list"
 
+[7bc76cb8-5003-49ca-bc47-cdfbe6c2bb89]
+description = "first list missing additional digits from second list"
+
 [0d7ee7c1-0347-45c8-9ef5-b88db152b30b]
 description = "order matters to a list"
 
diff --git a/exercises/practice/sublist/test/sublist_test.clj b/exercises/practice/sublist/test/sublist_test.clj
index c7fff7b..2533499 100644
--- a/exercises/practice/sublist/test/sublist_test.clj
+++ b/exercises/practice/sublist/test/sublist_test.clj
@@ -2,56 +2,74 @@
   (:require [clojure.test :refer [deftest is testing]]
             sublist))
 
-(deftest empty-lists-test
-    (is (= :equal (sublist/classify [] []))))
+(deftest test-97319c93-ebc5-47ab-a022-02a1980e1d29
+  (testing "Empty lists"
+    (is (= :equal (sublist/classify [] [])))))
 
-(deftest empty-list-within-non-empty-list-test
-    (is (= :sublist (sublist/classify [] [1 2 3]))))
+(deftest test-de27dbd4-df52-46fe-a336-30be58457382
+  (testing "Empty list within non empty list"
+    (is (= :sublist (sublist/classify [] [1 2 3])))))
 
-(deftest non-empty-list-contains-empty-list-test
-    (is (= :superlist (sublist/classify [1 2 3] []))))
+(deftest test-5487cfd1-bc7d-429f-ac6f-1177b857d4fb
+  (testing "Non empty list contains empty list"
+    (is (= :superlist (sublist/classify [1 2 3] [])))))
 
-(deftest list-equals-itself-test
-    (is (= :equal (sublist/classify [1 2 3] [1 2 3]))))
+(deftest test-1f390b47-f6b2-4a93-bc23-858ba5dda9a6
+  (testing "List equals itself"
+    (is (= :equal (sublist/classify [1 2 3] [1 2 3])))))
 
-(deftest different-lists
-    (is (= :unequal (sublist/classify [1 2 3] [2 3 4]))))
+(deftest test-7ed2bfb2-922b-4363-ae75-f3a05e8274f5
+  (testing "Different lists"
+    (is (= :unequal (sublist/classify [1 2 3] [2 3 4])))))
 
-(deftest false-start
-    (is (= :sublist (sublist/classify [1 2 5] [0 1 2 3 1 2 5 6]))))
+(deftest test-3b8a2568-6144-4f06-b0a1-9d266b365341
+  (testing "False start"
+    (is (= :sublist (sublist/classify [1 2 5] [0 1 2 3 1 2 5 6])))))
 
-(deftest consecutive
-    (is (= :sublist (sublist/classify [1 1 2] [0 1 1 1 2 1 2]))))
+(deftest test-dc39ed58-6311-4814-be30-05a64bc8d9b1
+  (testing "Consecutive"
+    (is (= :sublist (sublist/classify [1 1 2] [0 1 1 1 2 1 2])))))
 
-(deftest sublist-at-start
-    (is (= :sublist (sublist/classify [0 1 2] [0 1 2 3 4 5]))))
+(deftest test-d1270dab-a1ce-41aa-b29d-b3257241ac26
+  (testing "Sublist at start"
+    (is (= :sublist (sublist/classify [0 1 2] [0 1 2 3 4 5])))))
 
-(deftest sublist-in-middle
-    (is (= :sublist (sublist/classify [2 3 4] [0 1 2 3 4 5]))))
+(deftest test-81f3d3f7-4f25-4ada-bcdc-897c403de1b6
+  (testing "Sublist in middle"
+    (is (= :sublist (sublist/classify [2 3 4] [0 1 2 3 4 5])))))
 
-(deftest sublist-at-end
-    (is (= :sublist (sublist/classify [3 4 5] [0 1 2 3 4 5]))))
+(deftest test-43bcae1e-a9cf-470e-923e-0946e04d8fdd
+  (testing "Sublist at end"
+    (is (= :sublist (sublist/classify [3 4 5] [0 1 2 3 4 5])))))
 
-(deftest at-start-of-superlist
-    (is (= :superlist (sublist/classify [0 1 2 3 4 5] [0 1 2]))))
+(deftest test-76cf99ed-0ff0-4b00-94af-4dfb43fe5caa
+  (testing "At start of superlist"
+    (is (= :superlist (sublist/classify [0 1 2 3 4 5] [0 1 2])))))
 
-(deftest in-middle-of-superlist
-    (is (= :superlist (sublist/classify [0 1 2 3 4 5] [2 3]))))
+(deftest test-b83989ec-8bdf-4655-95aa-9f38f3e357fd
+  (testing "In middle of superlist"
+    (is (= :superlist (sublist/classify [0 1 2 3 4 5] [2 3])))))
 
-(deftest at-end-of-superlist
-    (is (= :superlist (sublist/classify [0 1 2 3 4 5] [3 4 5]))))
+(deftest test-26f9f7c3-6cf6-4610-984a-662f71f8689b
+  (testing "At end of superlist"
+    (is (= :superlist (sublist/classify [0 1 2 3 4 5] [3 4 5])))))
 
-(deftest first-list-missing-element-from-second-list
-    (is (= :unequal (sublist/classify [1 3] [1 2 3]))))
+(deftest test-0a6db763-3588-416a-8f47-76b1cedde31e
+  (testing "First list missing element from second list"
+    (is (= :unequal (sublist/classify [1 3] [1 2 3])))))
 
-(deftest second-list-missing-element-from-first-list
-    (is (= :unequal (sublist/classify [1 2 3] [1 3]))))
+(deftest test-83ffe6d8-a445-4a3c-8795-1e51a95e65c3
+  (testing "Second list missing element from first list"
+    (is (= :unequal (sublist/classify [1 2 3] [1 3])))))
 
-(deftest order-matters-to-a-list
-    (is (= :unequal (sublist/classify [1 2 3] [3 2 1]))))
+(deftest test-7bc76cb8-5003-49ca-bc47-cdfbe6c2bb89
+  (testing "First list missing additional digits from second list"
+    (is (= :unequal (sublist/classify [1 2] [1 22])))))
 
-(deftest same-digits-but-different-numbers
-    (is (= :unequal (sublist/classify [1 0 1] [10 1]))))
+(deftest test-0d7ee7c1-0347-45c8-9ef5-b88db152b30b
+  (testing "Order matters to a list"
+    (is (= :unequal (sublist/classify [1 2 3] [3 2 1])))))
 
-(deftest second-list-continues-first-list
-  (is (= :unequal (sublist/classify [1] [2 3]))))
+(deftest test-5f47ce86-944e-40f9-9f31-6368aad70aa6
+  (testing "Same digits but different numbers"
+    (is (= :unequal (sublist/classify [1 0 1] [10 1])))))