Files
werkcrappit/docs/werkcrappit.werkbaum
claude-code a138c172b0
werkator build succeeded after 02:53
werkator/publish build succeeded after 00:28
werkator/mutation build succeeded after 00:42
the AI review reports nothing about generated sections (#71)
Co-authored-by: claude-code <claude-code@javagil.de>
2026-10-19 08:58:12 +02:00

116 lines
5.9 KiB
Plaintext

%% werkcrappit, planned with Werkbaum (https://werkbaum.javagil.de): what exists, what comes next.
%% Status: [^] published and in use, [x] merged, not yet published, [~] in work, [ ] planned, [?] idea, [-] dropped.
%% A green build of main publishes the plugins, so the PR that finishes a node already sets it to [^].
%% The block behind --- explains the nodes with an id.
%% View: https://werkbaum.javagil.de/?sourceUrl=https://git.javagil.de/mi/werkcrappit/raw/branch/main/docs/werkcrappit.werkbaum
[~] #werkcrappit: werkcrappit https://git.javagil.de/mi/werkcrappit
" Mutation-CRAP per JVM method, from PIT's mutants and JaCoCo's complexity: a PIT plugin and a Gradle plugin.
- [^] #mvp: Java MVP, the steps of the specification's section 8.3
- [^] #mvp.skeleton: Repository, Gradle wrapper, real walking skeleton, ADR 0001 (S)
" PR#1, PR#2.
- [^] #mvp.core: Metric core and status policy strict-v1 (M)
" PR#3; the default is timeouts-killed-v1 since PR#9 (ADR 0006).
- [^] #mvp.inventory: Original bytecode, method inventory and JaCoCo complexity (M)
" PR#4.
- [^] #mvp.aggregation: Complete aggregation of PIT results (M)
" PR#5.
- [^] #mvp.reports: JSON schema, JSON and Markdown reports, console summary (M)
" PR#6.
- [^] #mvp.gate: Gradle plugin with an opt-in gate, multi-project fixture (M)
" PR#7.
- [^] #mvp.kotlin: Kotlin basis support checked, limits documented (M)
" PR#61, ADR 0009.
- [^] #mvp.packaging: Packaging, documentation and actual test results
- [^] Published to the Gitea Maven registry (S)
" PR#8, PR#11; the functional tests consume the published plugins (MC-029).
- [^] README with quickstart and how to choose a limit (S)
" PR#12, PR#43, PR#44.
- [^] #mvp.groovy: Groovy DSL and a packaging test from an isolated repository (S)
" PR#63: GroovyDslFunctionalTest; the Kotlin DSL tests consume the published plugins since PR#7.
- [^] #mvp.metricDoc: docs/metric.md: formula, status policies, N/A states, limits (S)
" PR#62.
- [^] #mvp.report: Final report: versions, commands run, acceptance tests passed, limits (XS)
" PR#64: docs/final-report.md.
- [^] #mvp.examples: Small expected example reports, section 8.4 (XS)
" PR#65: docs/examples, kept current by ExampleReportsTest.
- [^] #pilot: Pilot hsadmin-ng
- [^] Guide and probe run (S)
" PR#10.
- [^] Gate on at a limit of 10 (S)
" hsadmin-ng PR#317; the guide shows the state since PR#44.
- [^] #self: werkcrappit measures itself
- [^] Nightly mutation build on main, with the structure pages (S)
" PR#30, PR#42, PR#56; the README links its latest code city since PR#68.
- [^] Every class below a Mutation-CRAP of 10 (M)
" PR#31, PR#32, PR#33.
- [^] Ratchets for cohesion and coupling (S)
" PR#39.
- [~] #city: CodeCharta code city (RFC 0001, ADR 0007)
- [^] Valid code city in a report directory of its own, districts, area by rloc (M)
" PR#13 to PR#17.
- [^] Link into the viewer, colour range of the gate, unscored classes grey (S)
" PR#18 to PR#21, PR#23, PR#29, PR#35.
- [^] Dependency edges (S)
" PR#22.
- [^] Commit and source links (S)
" PR#24, PR#25.
- [^] One scenario per view, the page leads with the views (S)
" PR#40, PR#47.
- [ ] #city.viewer: The CodeCharta viewer beside the city (M)
" RFC 0003, TODO.bundledViewer; where it is bundled is still to be discussed.
- [^] #city.style: The code city's index.html in the style of the structure pages (S)
" PR#58, RFC 0003.
- [^] #design: Cohesion and coupling (RFC 0002)
- [^] Measured (M)
" PR#36.
- [^] Shown in the code city (S)
" PR#37.
- [^] Judged by the gate (S)
" PR#38.
- [^] #risk: Change risk per class from Mutation-CRAP, cohesion and coupling (M)
" PR#41, ADR 0008.
- [~] #structure: Structure view of cycles, complexity and cohesion (RFC 0003)
- [^] #structure.diagram: Level diagram per package (M)
" PR#48, PR#49, PR#50.
- [^] #structure.matrix: Expandable dependency matrix (M) :#structure.diagram
" PR#51.
- [ ] #structure.werkator: Pilot Werkator: its nightly code city gets both pages (S) :#structure.matrix
- [ ] #structure.hsadmin: Pilot hsadmin-ng: both pages published with the city (S) :#structure.werkator
- [^] #structure.cycleEdges: Every edge of a package cycle, red across the hierarchy, amber along it (S)
" PR#55, RFC 0003.
- [^] #structure.wrap: More space between the lines of a wrapped level, every second shifted (XS)
" PR#67, RFC 0003.
- [^] #ops: Build, review and workflow
- [^] Werkator CI, builds stop after 10 minutes (XS)
" PR#1, PR#27.
- [^] Progress of a PIT run in the log (S)
" PR#26, PR#28.
- [^] werkrevisor reviews every PR (S)
" PR#45, PR#46.
- [^] #ops.workflow: The shared agentic workflow and this plan (S)
" PR#53, PR#54.
- [^] #ops.workflowSync: The workflow copy matches werkregie (XS)
" PR#69.
- [^] #ops.version: The version and the changelog follow from the PR documents (S)
" PR#70: a copy of werkregie PR#79; CHANGELOG.md ends with 0.26.14.
- [^] The AI review skips generated sections of the docs (XS)
" PR#71, after werkrevisor PR#122.
---
#mvp.kotlin
Kotlin is the specification's optional goal. Tested with Kotlin 2.4.21:
ordinary methods, overloads, top-level functions, properties, default
arguments, data classes, bridges, lambdas, inline and suspend functions.
Inline and suspend functions have limits, listed in ADR 0009.
#mvp.packaging
Section 8.4 of the specification lists the artifacts; with the example
reports of PR#65 every one is there.
#city.viewer
The code city still links the viewer at javagil.de, so the CI server must
allow it by CORS. hsadmin-ng is to move from Werkator to Woodpecker, so the
solution must not depend on Werkator. RFC 0003 lists the options.