Sample
int-699c4192b7dd-I03
Replace method, parameter, and local names with length-matched, meaningful but unrelated names
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.529 | 0–1; higher is more readable |
| Dorn | 0.626 | 0–1; higher is more readable |
| Mi | 0.561 | 0–1; higher is more readable |
| LLOC | 1 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.605 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 351.862 | −11.611 |
| Source linesThe number of non-empty source lines. | 25 | +10 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 4.761 | −7.141 |
Intercept 8.87 + feature contributions = 0.118 (log-odds).
Score = sigmoid(0.118) = 0.529.
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Indentation frequencyHow rapidly indentation changes from line to line. | 1 | −0.703 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 91.462 | +0.671 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.04 | +0.551 |
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 99 | −0.528 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 26 | +0.116 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 24.9 | −0.062 |
Intercept 0.07 + feature contributions = 0.514 (log-odds).
Score = sigmoid(0.514) = 0.626.
| Score | 0.561 |
|---|
| Score | 1 |
|---|
Run 1
The code is highly readable. It has a clear, logical structure with imports at the top, followed by a comprehensive Javadoc explaining the annotation's purpose and constraints. The annotation definition is minimal and focused. Nesting is flat, with no unnecessary complexity. Clarity of intent is excellent, with clear documentation about parameter requirements and serial invocation behavior. The code is concise, containing no redundant elements. Action granularity is appropriate, with each annotation on its own line. Reading flow is natural, from imports to documentation to implementation. Minor deductions only for unused imports (Target, RetentionPolicy are used indirectly but ElementType is fully qualified).
Run 2
The code is well-structured with clear logical organization: standard imports, comprehensive Javadoc, then annotations. Nesting is absent as appropriate. The intent of the annotation is explicitly documented with clear constraints and usage guidelines. Code length is concise—only necessary elements are present. Each annotation occupies its own line, maintaining one action per line. The reading flow progresses naturally from purpose to usage to implementation. The only minor deductions are for a slightly long Javadoc paragraph and the package-private scope, but these are justified by the annotation's importance.
Run 3
The code is highly readable. It has a logical structure with clear package and import declarations. The annotation definition is concise and follows a single, clear purpose. The Javadoc provides meaningful context about usage, constraints, and behavior, enhancing clarity of intent. There is no unnecessary nesting or complexity, and the annotation itself is defined in one line. Action granularity is appropriate, with each annotation attribute on its own line and the interface declaration separate. Reading flow is natural, moving from imports to documentation to annotations. The only minor deduction is the slight verbosity of the Javadoc, but it is justified and not excessive.
Run 1
Code Structure: Standard, logical organization of package, imports, documentation, annotations, and declaration. Nesting: No nested logic or unnecessary complexity. Clarity of intent: The Subscribe name and detailed Javadoc clearly explain its purpose, parameter requirements, and concurrency behavior. Code length: Minimal implementation with proportionate documentation. Action granularity: Each import and annotation occupies its own line; the empty declaration is appropriately compact. Reading flow: Natural top-to-bottom progression, although a blank line between the package declaration and imports would improve visual separation.
Run 2
Code Structure: Clearly organized into package, imports, documentation, metadata, and annotation declaration; blank lines between sections would improve separation. Nesting: No nested logic, making it effortless to scan. Clarity of intent: The Subscribe name and detailed Javadoc clearly explain purpose, parameter constraints, and concurrency behavior. Code length: Compact implementation with appropriately informative documentation. Action granularity: Each import and metadata annotation occupies its own line; the empty declaration is naturally concise. Reading flow: Follows conventional Java ordering, moving naturally from context and documentation to the declaration.
Run 3
Code Structure: Standard, logical organization of package, imports, documentation, annotations, and declaration; blank lines between sections would improve separation. Nesting: No nested logic, making the code immediately accessible. Clarity of intent: The Subscribe name and detailed Javadoc clearly explain its purpose, parameter constraints, and concurrency behavior. Code length: Concise implementation with appropriately scoped documentation. Action granularity: Each import and annotation occupies its own line; the empty declaration is suitably compact. Reading flow: Natural top-to-bottom progression from dependencies to usage documentation and annotation metadata.