<?xml version="1.0"?>
<puzzles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.0pdd.com/puzzles.xsd" date="2026-04-24T15:31:14+00:00" version="BUILD">
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/6">6</issue>
    <ticket>3147</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>3147-66cbc2c7</id>
    <lines>23-27</lines>
    <body>Make duplicate names catcher more powerful. This test pack is disabled now because names duplication is not caught here. It happens because of "duplicate-names.xsl" thinks that abstract objects in the tests are on the different levels. Syntactically they are, but semantically they're not. So we need to make this duplicate catcher more powerful, enable the test by removing "skip: true" line and make sure it works.</body>
    <file>src/test/resources/org/eolang/lints/errors/catches-conflict-with-auto-name.yaml</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-11-18T17:08:20Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/34">34</issue>
    <ticket>14</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>14-e039e307</id>
    <lines>39-42</lines>
    <body>Calculate comment line number with abusive character. For now we just reusing object line number (via @line), which is not correct for specifying on which line of the program comment is located. This issue can be solved after &lt;a href="https://github.com/objectionary/eo/issues/3536"&gt;this one&lt;/a&gt;.</body>
    <file>src/main/java/org/eolang/lints/comments/AsciiOnly.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2024-11-24T15:34:03Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/41" closed="2026-04-24T15:31:14+00:00">41</issue>
    <ticket>19</ticket>
    <estimate>45</estimate>
    <role>DEV</role>
    <id>19-80f5b41d</id>
    <lines>45-47</lines>
    <body>Create Lint envelope called `JavaLint` that will fetch motive from Markdown file based on the lint's name (Java class name) and lint's dimension (Java package name, e.g. `comments`).</body>
    <file>src/main/java/org/eolang/lints/comments/AsciiOnly.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-11-27T13:31:42Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/42" closed="2025-05-05T14:49:09+00:00">42</issue>
    <ticket>19</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>19-33379f10</id>
    <lines>3-5</lines>
    <body>Document motives for `not-empty-atoms` lint. Currently, we don't have a test case for this `not-empty-atoms` lint. We should create a new test case, and then document a motive for this lint.</body>
    <file>src/main/resources/org/eolang/motives/critical/not-empty-atoms.md</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-11-27T13:31:42Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/43">43</issue>
    <ticket>19</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>19-e20aed59</id>
    <lines>3-5</lines>
    <body>Document motives for `same-line-names` lint. Currently, we don't have a test case for this `same-line-names` lint. We should create a new test case, and then document a motive for this lint.</body>
    <file>src/main/resources/org/eolang/motives/critical/same-line-names.md</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-11-27T13:31:42Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/44" closed="2024-12-29T12:51:20+00:00">44</issue>
    <ticket>19</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>19-ccc6357f</id>
    <lines>5-8</lines>
    <body>Document motives and examples for `empty-object` lint. Currently, we don't have a test case for this `empty-object` lint. We should create a new test case, and then document a motive with examples for this lint.</body>
    <file>src/main/resources/org/eolang/motives/errors/empty-object.md</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-11-27T13:31:42Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/45" closed="2025-01-31T15:10:26+00:00">45</issue>
    <ticket>19</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>19-c076b490</id>
    <lines>11-13</lines>
    <body>Document more about `broken-refs` lint. Currently, there is no unit test that finds defects with broken refs. Let's add a few, and only then add more docs in broken-ref's motive.</body>
    <file>src/main/resources/org/eolang/motives/refs/broken-refs.md</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-11-27T13:31:42Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/125" closed="2024-12-11T12:37:55+00:00">125</issue>
    <ticket>72</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>72-f7af213e</id>
    <lines>49-53</lines>
    <body>Configure maven to download model file during the build and place into the JAR. Currently, we download model file each time when creating the lint, which may be slow in the usage of this lint. Instead, let's configure maven to download model file during the build, and place into JAR, so lint will be able to locate file from resources faster.</body>
    <file>src/main/java/org/eolang/lints/misc/UnitTestIsNotVerb.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2024-12-10T08:44:10Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/135" closed="2025-01-23T13:46:56+00:00">135</issue>
    <ticket>129</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>129-28f91348</id>
    <lines>56-60</lines>
    <body>Library stanford-corenlp-4.5.7-models.jar takes too much in size. Currently, JAR takes ~452mb, which may cause some troubles to the users of the lints library. Let's think what we can do about this. We should check is it possible to get rid of this dependency and download models from the other source.</body>
    <file>src/main/java/org/eolang/lints/misc/UnitTestIsNotVerb.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2024-12-11T12:32:46Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/143" closed="2025-04-08T01:36:16+00:00">143</issue>
    <ticket>134</ticket>
    <estimate>45</estimate>
    <role>DEV</role>
    <id>134-6f7709d5</id>
    <lines>54-58</lines>
    <body>Measure lint time for smaller/larger classes, similar way to JNA Pointer. Currently, we measure linting of just one big class. Would be good to measure other classes in size too, for instance smaller classes (standard program), large class (JNA pointer), x-large class, and xxl class. Don't forget to adjust lint-summary.txt file to capture all the measurements.</body>
    <file>src/test/java/org/eolang/lints/ProgramTest.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-12-13T11:53:23Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/objectionary/lints/issues/470" closed="2025-04-10T19:51:38+00:00">470</issue>
        <ticket>143</ticket>
        <estimate>35</estimate>
        <role>DEV</role>
        <id>143-358342b3</id>
        <lines>30-33</lines>
        <body>Add JMH benchmarks result reporting. Currently, there is no reporting of benchmark results. Let's add &lt;a href="https://github.com/volodya-lombrozo/jmh-benchmark-action"&gt;this&lt;/a&gt; GitHub Actions plugin and configure it to run on each PR.</body>
        <file>src/test/java/benchmarks/ProgramBench.java</file>
        <author>@rultor</author>
        <email>me@rultor.com</email>
        <time>2025-04-08T01:21:02Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/144" closed="2024-12-31T06:40:35+00:00">144</issue>
    <ticket>134</ticket>
    <estimate>90</estimate>
    <role>DEV</role>
    <id>134-6deff79b</id>
    <lines>59-64</lines>
    <body>Capture all the lint timings in timings.csv. Currently, we just capture total time - amount of milliseconds was required to lint some XMIR. Would be helpful to get extended statistics - timings of each lint. Don't forget to include this information into lint-summary.txt. You can check how it was implemented in HONE: &lt;a href="https://github.com/objectionary/hone-maven-plugin/blob/master/src/main/java/org/eolang/hone/Timings.java"&gt;Timings.java&lt;/a&gt;.</body>
    <file>src/test/java/org/eolang/lints/ProgramTest.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-12-13T11:53:23Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/objectionary/lints/issues/190" closed="2025-04-24T17:53:13+00:00">190</issue>
        <ticket>144</ticket>
        <estimate>35</estimate>
        <role>DEV</role>
        <id>144-43965ba3</id>
        <lines>319-322</lines>
        <body>Resolve code duplication with Program.java class. Currently, BcProgram.java is duplication of Program.java. Let's make it use the original Program.java, so they will stay synced. Don't forget to remove this puzzle.</body>
        <file>src/test/java/org/eolang/lints/ProgramTest.java</file>
        <author>@yegor256</author>
        <email>yegor256@gmail.com</email>
        <time>2024-12-31T06:40:30Z</time>
        <children/>
      </puzzle>
      <puzzle alive="true">
        <issue href="https://github.com/objectionary/lints/issues/509">509</issue>
        <ticket>144</ticket>
        <estimate>35</estimate>
        <role>DEV</role>
        <id>144-a2c4deb3</id>
        <lines>436-439</lines>
        <body>Resolve code duplication with Source.java class. Currently, BcSource.java is duplication of Source.java. Let's make it use the original Source.java, so they will stay synced. Don't forget to remove this puzzle.</body>
        <file>src/test/java/org/eolang/lints/SourceTest.java</file>
        <author>@h1alexbel</author>
        <email>h1alexbelx@gmail.com</email>
        <time>2025-04-24T12:09:08Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/157" closed="2024-12-18T08:48:19+00:00">157</issue>
    <ticket>148</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>148-2fd39dd6</id>
    <lines>38-43</lines>
    <body>Test or remove {@link Defect#rule()} method. This method is not used by any class in the project. Moreover, we don't even have a test for it. We should either test it or remove it. Actually, this method is used &lt;a href="https://github.com/objectionary/lints/pull/150/files#r1888310583"&gt;somewhere&lt;/a&gt;</body>
    <file>src/main/java/org/eolang/lints/Defect.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2024-12-18T07:45:00Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/158" closed="2024-12-18T08:21:57+00:00">158</issue>
    <ticket>148</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>148-092aa30a</id>
    <lines>38-40</lines>
    <body>The {@link XslLints} class should implement {@link Lint} instead. Currently, this class is used as an iterable of lints, but it should be used as a single lint that aggregates other lints.</body>
    <file>src/main/java/org/eolang/lints/XslLints.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2024-12-18T07:45:00Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/160" closed="2024-12-18T08:48:21+00:00">160</issue>
    <ticket>148</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>148-e3c58907</id>
    <lines>38-40</lines>
    <body>The {@link PkByXsl} class should implement {@link Lint} instead. Currently, this class is used as an iterable of lints, but it should be used as a single lint that aggregates other lints.</body>
    <file>src/main/java/org/eolang/lints/PkByXsl.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-12-18T08:21:51Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/192" closed="2025-01-01T14:14:57+00:00">192</issue>
    <ticket>149</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>149-6bce14ac</id>
    <lines>165-167</lines>
    <body>Introduce new class XmirKey.java Let's extract the code that calculates the key for XMIR file into new Java class. Don't forget to create unit tests, and remove this puzzle.</body>
    <file>src/main/java/org/eolang/lints/Programs.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2024-12-31T14:04:55Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/215">215</issue>
    <ticket>107</ticket>
    <estimate>45</estimate>
    <role>DEV</role>
    <id>107-b3a5bdea</id>
    <lines>23-25</lines>
    <body>Configure default timeout for tests running on windows to 10s and 3s on other platforms. Currently, it fails with the 3s timeout on windows platform. Let's try to configure test default timeout exclusively for windows, and keep 3s for other platforms.</body>
    <file>src/test/resources/junit-platform.properties</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-01-09T13:40:14Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/216" closed="2025-01-21T12:11:15+00:00">216</issue>
    <ticket>199</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>199-3cb36c43</id>
    <lines>170-176</lines>
    <body>Use {@link XML#xpath(String)} Method Instead. This method is using a custom implementation to find the name of the program. We should replace it with the {@link XML#xpath(String)} method to make the code cleaner. You can use `program.xpath("/program/@name").stream().findFirst().orElse("unknown")` to find the name. This issue is blocked by &lt;a href="https://github.com/jcabi/jcabi-xml/issues/289"&gt;jcabi/jcabi-xml#289&lt;/a&gt;.</body>
    <file>src/main/java/org/eolang/lints/LtByXsl.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-01-09T13:56:03Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/217" closed="2025-01-21T12:11:17+00:00">217</issue>
    <ticket>199</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>199-c82777d8</id>
    <lines>188-194</lines>
    <body>Use {@link XML#nodes(String)} Method Instead. This method is using a custom implementation to find defects in the report. We should replace it with the {@link XML#nodes(String)} method to make the code cleaner. You can use `report.nodes("/defects/defect")` to find the defects. This issue is blocked by &lt;a href="https://github.com/jcabi/jcabi-xml/issues/288"&gt;jcabi/jcabi-xml#288&lt;/a&gt;.</body>
    <file>src/main/java/org/eolang/lints/LtByXsl.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-01-09T13:56:03Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/276" closed="2025-02-11T14:54:11+00:00">276</issue>
    <ticket>257</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>257-9496b6b4</id>
    <lines>52-56</lines>
    <body>Configure model download only during the build and place into the JAR. Currently, we download model file each time when creating the lint, which may be slow in the usage of this lint. Instead, let's configure maven to download model file during the build, and place into JAR, so lint will be able to locate file from resources faster.</body>
    <file>src/main/java/org/eolang/lints/misc/LtTestNotVerb.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-01-23T13:46:49Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/313">313</issue>
    <ticket>297</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>297-589ae9b7</id>
    <lines>41-45</lines>
    <body>Return `LtTestNotVerb` back. For some reason this lint produces errors in EO-to-Java Compiler. Check &lt;a href="https://github.com/objectionary/lints/issues/297#issuecomment-2636540673"&gt;this&lt;/a&gt; issue for more details. We should return it in the fixed state, once we understand the root cause of the problem.</body>
    <file>src/main/java/org/eolang/lints/PkMono.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-02-05T13:26:15Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/365" closed="2025-04-22T12:48:35+00:00">365</issue>
    <ticket>259</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>259-5bf6866f</id>
    <lines>24-28</lines>
    <body>Optimize performance of inconsistent arguments finding. Instead of re-collecting objects in nested loops, we should merge all objects from all programs into single XMIR under '&lt;objects/&gt;' element. After objects are merged, we can iterate over all the objects there only once, and find inconsistencies.</body>
    <file>src/main/java/org/eolang/lints/LtInconsistentArgs.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-02-25T08:45:05Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/372" closed="2025-06-06T08:43:08+00:00">372</issue>
    <ticket>368</ticket>
    <estimate>90</estimate>
    <role>DEV</role>
    <id>368-1edf74b7</id>
    <lines>16-18</lines>
    <body>Implement lint caching decorator. We should cache `Lint.defects()` to cache found defects when calling particular lint. Don't forget to add unit tests, and benchmark tests.</body>
    <file>src/main/java/org/eolang/lints/Lint.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-02-28T06:05:10Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/385" closed="2025-03-18T12:26:58+00:00">385</issue>
    <ticket>368</ticket>
    <estimate>45</estimate>
    <role>DEV</role>
    <id>368-78b44b68</id>
    <lines>112-116</lines>
    <body>Configure `unlint-non-existing-defect` lint to ignore unlints from other scope (WPA/Single program). On WPA side of this lint ({@link LtUnlintNonExistingDefectWpaTest}) we should ignore single program lints. Also, don't forget to enable {@link LtUnlintNonExistingDefectWpaTest#ignoresSingleProgramUnlint()}.</body>
    <file>src/test/java/org/eolang/lints/LtUnlintNonExistingDefectTest.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-03-02T18:18:23Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/392" closed="2025-03-21T01:14:33+00:00">392</issue>
    <ticket>386</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>386-d4b4e108</id>
    <lines>20-24</lines>
    <body>Replace `XML.xpath()` with `Xnav.path()` usage in defects() method. Currently, we cannot use `Xnav.path()` method due to &lt;a href="https://github.com/volodya-lombrozo/xnav/issues/74"&gt;this&lt;/a&gt; bug. Once it will be resolved, we should replace `XML.xpath()` with `Xnav.path()` in order to improve the performance of the `LtUnlint.defects()` execution.</body>
    <file>src/main/java/org/eolang/lints/LtUnlint.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-03-05T18:24:05Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/405" closed="2025-06-06T08:43:09+00:00">405</issue>
    <ticket>394</ticket>
    <estimate>25</estimate>
    <role>DEV</role>
    <id>394-da4e25ec</id>
    <lines>95-97</lines>
    <body>Replace `LtAlways` in comparison with lint caching decorator. Currently, its not available, once &lt;a href="https://github.com/objectionary/lints/issues/372"&gt;this&lt;/a&gt; ticket will be solved, we can replace the class.</body>
    <file>src/test/java/org/eolang/lints/PkMonoTest.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-03-12T08:15:42Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/436" closed="2025-03-28T10:03:30+00:00">436</issue>
    <ticket>429</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>429-a4557e24</id>
    <lines>26-29</lines>
    <body>Convert all found {@link Defect}-s into XML and then assert using XPath. For now we are using custom asserts outlined in implementations of {@link Assertion} interface. Conversion to XML document can eliminate the need to custom asserts, since we will be able to utilize XPath expressions similarly as in {@link XtYaml#asserts()}.</body>
    <file>src/test/java/org/eolang/lints/WpaStory.java</file>
    <author>h1alexbel</author>
    <email>h1alexbelx@gmail.com</email>
    <time>2025-03-26T08:35:08Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/465" closed="2025-05-19T09:38:20+00:00">465</issue>
    <ticket>165</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>165-a8f393c8</id>
    <lines>23-28</lines>
    <body>Add {@link LtReservedName} to the LINTS Mono pipeline. Currently, it will cause timeout exceptions in several places in tests, due to the design of {@link LtReservedName}. There, it scans all the home EO objects, pulled from Git by maven in the `generate-sources` phase, and process them. Will be great to process home objects only once - initially during the build, and then reuse it everywhere.</body>
    <file>src/main/java/org/eolang/lints/MonoLints.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2025-04-04T14:16:55Z</time>
    <children>
      <puzzle alive="true">
        <issue href="https://github.com/objectionary/lints/issues/602">602</issue>
        <ticket>465</ticket>
        <estimate>45</estimate>
        <role>DEV</role>
        <id>465-7c10eaab</id>
        <lines>31-35</lines>
        <body>Refactor HomeNames. Currently, the class does two things: 1) Object name parsing, and 2) CSV placing. Let's refactor it to make it aligned with &lt;a href="https://en.wikipedia.org/wiki/Single-responsibility_principle"&gt;SRP&lt;/a&gt;. Probably one new class will be required (for name parsing), together with proper naming of this one (for placing them into CSV).</body>
        <file>src/main/groovy/org/eolang/lints/HomeNames.groovy</file>
        <author>@h1alexbel</author>
        <email>h1alexbelx@gmail.com</email>
        <time>2025-05-19T08:30:48Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/502" closed="2026-04-24T10:52:45+00:00">502</issue>
    <ticket>259</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>259-23892a1e</id>
    <lines>26-30</lines>
    <body>Optimize performance of inconsistent arguments finding. Instead of re-collecting objects in nested loops, we should merge all objects from all programs into single XMIR under '&lt;o/&gt;' element. After objects are merged, we can iterate over all the objects there only once, and find inconsistencies.</body>
    <file>src/main/java/org/eolang/lints/LtInconsistentArgs.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2025-04-22T12:34:11Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/520">520</issue>
    <ticket>402</ticket>
    <estimate>15</estimate>
    <role>DEV</role>
    <id>402-462e483a</id>
    <lines>31-34</lines>
    <body>Replace the creation of new ArrayList&lt;&gt;(0) with the creation of ArrayList&lt;&gt;() without a constructor argument in whole project. Add ignore warning ConditionalRegexpMultilineCheck from Checkstyle (it doesn't seem to be possible at the moment &lt;a href="https://github.com/yegor256/qulice/issues/1328"&gt;issue 1328&lt;/a&gt;)</body>
    <file>src/main/java/org/eolang/lints/LtAsciiOnly.java</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2025-04-27T08:47:51Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/563">563</issue>
    <ticket>555</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>555-aaf5c23c</id>
    <lines>44-46</lines>
    <body>Enable `duplicate-names-in-diff-context` benchmark. Currently, its slow, especially for `L` and `XL`-sized sources. Let's optimize it, in order to enable this benchmark.</body>
    <file>src/test/java/benchmarks/SourceBench.java</file>
    <author>@h1alexbel</author>
    <email>h1alexbelx@gmail.com</email>
    <time>2025-05-07T10:47:33Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/592">592</issue>
    <ticket>376</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>376-92eafa52</id>
    <lines>48-51</lines>
    <body>Enable redundant object in the single XMIR scope benchmarks. As for now, the lint is too slow, especially on L, XL and XXL-sized XMIRs. This happens mostly because of multiple XPath `//o` selects in the XSL. Once, the lint will be optimized, we can enable the lint in the benchmarks.</body>
    <file>src/test/java/benchmarks/SourceBench.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-05-13T04:25:40Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/627" closed="2026-04-24T10:52:47+00:00">627</issue>
    <ticket>393</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>393-4973abd9</id>
    <lines>22-26</lines>
    <body>DEV Introduce LfDfSticky integration tests. LfDfSticky is used in PkMono and PkWpa, which in turn are used in Program and Programs. Run Program::defects and Programs::defects separately and check that caching works correct. Important to note that specific Lint implementation is highly coupled with PkMono class, which in turn is used in Program's most used constructor, so probably Program(s) refactoring is required.</body>
    <file>src/main/java/org/eolang/lints/LtDfSticky.java</file>
    <author>@yegor256</author>
    <email>yegor256@gmail.com</email>
    <time>2025-06-06T08:42:59Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/652" closed="2026-04-24T10:52:49+00:00">652</issue>
    <ticket>624</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>624-70aa78e1</id>
    <lines>5-10</lines>
    <body>Enable `catches-inconsistency-in-nested-anonymous-formations` test story. For now, its disabled because `LtInconsistentArgs` fails to convert parent tree with anonymous objects to searchable XPath for the XMIR. We should change our logic in both `LtInconsistentArgs#voidFqn()` and `VoidXpath`. Don't forget to enable `catches-inconsistency-resolving-anonymous-path.yaml`, `catches-inconsistency-when-parent-object-lacks-name.yaml`, and test stories as well.</body>
    <file>src/test/resources/org/eolang/lints/packs/wpa/inconsistent-args/catches-inconsistency-in-nested-anonymous-formations.yaml</file>
    <author>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2025-06-22T07:11:32Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/680">680</issue>
    <ticket>540</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>540-1cf7838e</id>
    <lines>10-14</lines>
    <body>Add a new style package - `write-good` - to both this list and the package list. Then fix all the issues it reports(there will be a lot). It&#x2019;s better to run Vale locally to find issues, since the GitHub Action outputs the list in a less readable format when there are many errors. format due to the large number of errors.</body>
    <file>.vale.ini</file>
    <author>@Marat-Tim</author>
    <email>108345628+Marat-Tim@users.noreply.github.com</email>
    <time>2025-07-16T05:49:26Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/685" closed="2025-07-29T09:42:42+00:00">685</issue>
    <ticket>676</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>676-fcdc9c7d</id>
    <lines>12-16</lines>
    <body>Remove `+unlint application-without-as-attributes`. Currently, eo-parser does not generate `@as` attributes for applications, once we will resolve the problem in parser: https://github.com/objectionary/eo/issues/4382, we should enable it in all the places, including: `SourceTest#returnsEmptyListOfDefects` and `SourceTest#returnsOnlyOneDefect`.</body>
    <file>src/test/resources/org/eolang/lints/canonical.eo</file>
    <author>Aliaksei Bialiauski</author>
    <email>h1alexbelx@gmail.com</email>
    <time>2025-07-23T05:03:29Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/lints/issues/686" closed="2025-07-25T15:02:03+00:00">686</issue>
    <ticket>671</ticket>
    <estimate>45</estimate>
    <role>DEV</role>
    <id>671-0cafd5ba</id>
    <lines>17-21</lines>
    <body>Adjust `DefectMissing` to handle unlints with line ranges. Currently we don't support such line ranges in this and {@link LtUnlintNonExistingDefectWpa} lint, but we should, since {@link LtUnlint} supports them. If we will add the support of line ranges here, `unlint-non-existing-defect` in both scopes should catch up it. Don't forget to add tests for both scopes.</body>
    <file>src/main/java/org/eolang/lints/DefectMissing.java</file>
    <author>@h1alexbel</author>
    <email>h1alexbelx@gmail.com</email>
    <time>2025-07-23T05:04:48Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/715">715</issue>
    <ticket>711</ticket>
    <estimate>45</estimate>
    <role>DEV</role>
    <id>711-894ffa0c</id>
    <lines>387-390</lines>
    <body>Enable `hone` profile on all platforms after. For now, `hone-maven-plugin` fails on `macOS` and `Windows` machines. After the issue will be fixed, we should `&lt;os/&gt;` element from the `&lt;activation/&gt;` and keep `activeByDefault=true`.</body>
    <file>pom.xml</file>
    <author>@h1alexbel</author>
    <email>h1alexbelx@gmail.com</email>
    <time>2025-08-18T15:03:06Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/723">723</issue>
    <ticket>716</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>716-7b35e97f</id>
    <lines>17-21</lines>
    <body>Enable hone.yml and jmh.yml (hone-dependent workflow) after hone will be fixed. At present, the hone is unable to generate the correct optimized byte code for Groovy, see this issue: https://github.com/objectionary/hone-maven-plugin/issues/297. Also, the plugin run is time-consuming, we should enable it only after the plugin will have stable execution time, in order to not disturb the development in this repository.</body>
    <file>.github/workflows/hone.yml</file>
    <author>@h1alexbel</author>
    <email>h1alexbelx@gmail.com</email>
    <time>2025-08-21T13:49:44Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/lints/issues/769">769</issue>
    <ticket>767</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>767-c4e89915</id>
    <lines>65-68</lines>
    <body>Decrease timeouts for source linting. As for now, most lints are too slow, we need to optimize them first, so they run in milliseconds, not seconds/minutes. It should decrease our build time too. After that, we need to decrease our test timeouts. Don't forget to remove this puzzle.</body>
    <file>src/test/java/org/eolang/lints/SourceTest.java</file>
    <author>Aliaksei Bialiauski</author>
    <email>h1alexbelx@gmail.com</email>
    <time>2025-09-30T15:42:12Z</time>
    <children/>
  </puzzle>
</puzzles>
