<?xml version="1.0"?>
<puzzles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://www.0pdd.com/puzzles.xsd" date="2026-07-14T08:41:43+00:00" version="BUILD">
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/wpa/issues/1">1</issue>
    <ticket>716</ticket>
    <estimate>35</estimate>
    <role>DEV</role>
    <id>716-7b35e97f</id>
    <lines>19-23</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>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2026-04-24T10:46:29Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/wpa/issues/2">2</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>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2026-04-24T10:46:29Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/wpa/issues/3" closed="2026-04-24T11:47:12+00:00">3</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/wpa/LtDfSticky.java</file>
    <author>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2026-04-24T10:46:29Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/wpa/issues/4" closed="2026-07-08T07:56:59+00:00">4</issue>
    <ticket>259</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>259-23892a1e</id>
    <lines>29-33</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/wpa/LtInconsistentArgs.java</file>
    <author>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2026-04-24T10:46:29Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/wpa/issues/5">5</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>2026-04-24T10:46:29Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/wpa/issues/46" closed="2026-07-02T09:29:17+00:00">46</issue>
    <ticket>27</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>27-db1e6d8f</id>
    <lines>26-28</lines>
    <body>Re-enable the incorrect-alias lint in integration tests once its performance is fixed. Remove it from the .without() calls in this test class. The lint is currently too slow because it is called once per source file.</body>
    <file>src/test/java/org/eolang/wpa/WpaIntegrationTest.java</file>
    <author>@volodya-lombrozo</author>
    <email>volodya.lombrozo@gmail.com</email>
    <time>2026-07-01T06:30:26Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/wpa/issues/47" closed="2026-07-06T13:27:02+00:00">47</issue>
    <ticket>27</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>27-a4f55391</id>
    <lines>29-31</lines>
    <body>Re-enable the object-is-not-unique lint in integration tests once its performance is fixed. Remove it from the .without() calls in this test class. The lint is currently too slow because it is called once per source file.</body>
    <file>src/test/java/org/eolang/wpa/WpaIntegrationTest.java</file>
    <author>@volodya-lombrozo</author>
    <email>volodya.lombrozo@gmail.com</email>
    <time>2026-07-01T06:30:26Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/wpa/issues/48" closed="2026-07-07T07:21:28+00:00">48</issue>
    <ticket>27</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>27-f63cfce0</id>
    <lines>32-34</lines>
    <body>Re-enable the atom-is-not-unique lint in integration tests once its performance is fixed. Remove it from the .without() calls in this test class. The lint is currently too slow because it is called once per source file.</body>
    <file>src/test/java/org/eolang/wpa/WpaIntegrationTest.java</file>
    <author>@volodya-lombrozo</author>
    <email>volodya.lombrozo@gmail.com</email>
    <time>2026-07-01T06:30:26Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/wpa/issues/49" closed="2026-07-08T07:57:00+00:00">49</issue>
    <ticket>27</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>27-27ef2c50</id>
    <lines>35-37</lines>
    <body>Re-enable the inconsistent-args lint in integration tests once its performance is fixed. Remove it from the .without() calls and re-enable the detectsInconsistentArgsAcrossFolders test. The lint has O(n^2) performance issue.</body>
    <file>src/test/java/org/eolang/wpa/WpaIntegrationTest.java</file>
    <author>@volodya-lombrozo</author>
    <email>volodya.lombrozo@gmail.com</email>
    <time>2026-07-01T06:30:26Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/objectionary/wpa/issues/50" closed="2026-07-09T10:42:43+00:00">50</issue>
    <ticket>27</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>27-7432a51b</id>
    <lines>38-40</lines>
    <body>Re-enable the incorrect-number-of-attributes lint in integration tests once its performance is fixed. Remove it from the .without() calls in this test class. The lint recomputes object definitions once per source file.</body>
    <file>src/test/java/org/eolang/wpa/WpaIntegrationTest.java</file>
    <author>@volodya-lombrozo</author>
    <email>volodya.lombrozo@gmail.com</email>
    <time>2026-07-01T06:30:26Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/objectionary/wpa/issues/66">66</issue>
    <ticket>62</ticket>
    <estimate>90</estimate>
    <role>DEV</role>
    <id>62-27c27c0b</id>
    <lines>22-28</lines>
    <body>Reconsider the architectural placement of LtUnlintNonExistingDefectWpa. This lint is a second-order lint (lint of lints): it validates +unlint annotations by running other active lints and inspecting their results. This makes it fundamentally different from peer lints in WpaLints and forces PkWpa to treat it as a special case. Consider whether it belongs in the Lint hierarchy at all, or should be extracted into a separate post-processing abstraction that operates on already-computed defect results rather than embedding itself among peer lints.</body>
    <file>src/main/java/org/eolang/wpa/PkWpa.java</file>
    <author>@volodya-lombrozo</author>
    <email>volodya.lombrozo@gmail.com</email>
    <time>2026-07-14T08:13:13Z</time>
    <children/>
  </puzzle>
</puzzles>
