Sample
int-30c20e07cb5b-I02
Shorten method, parameter, and local names without collisions
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 | 19 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19.33 | 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 extremely readable. It has a clean, logical package and import structure, with all necessary annotations (Retention, Target, Keep) placed at the end in conventional order. Nesting is essentially nonexistent since this is a marker interface with no methods or logic. The intent is crystal clear: it defines a runtime annotation to mark event subscriber methods. The code is concise, with zero unnecessary lines beyond the standard Javadoc. Each action—package declaration, imports, Javadoc, annotations, declaration—occupies its own logical line or block. Reading flow is natural: package, imports, documentation, metadata, then declaration. The only minor detractor is the Javadoc's slight length relative to the trivial nature of the annotation, but it provides essential contract details (method signature restrictions, serial invocation default) that justify its verbosity. This is exemplary annotation definition style.
Run 3
This code is highly readable. It has a clear logical structure with package, imports, Javadoc, and annotations in conventional order. Nesting is minimal—only the annotation declaration itself. Intent is unambiguous: defining a marker annotation for event subscribers, well-documented with Javadoc explaining usage and constraints. Code length is concise and appropriate for a marker interface. Action granularity is clean, with annotations and declaration on separate lines for clarity. Reading flow is natural, following standard Java conventions. Minor deductions could be made for lack of blank lines between imports, but overall this is exemplary readability.
Run 1
Code Structure: Logically organized into package, imports, documentation, metadata, and declaration; a blank line after the package would improve separation. Nesting: No nested logic, making scanning effortless. Clarity of intent: The Subscribe name and Javadoc clearly explain its purpose, parameter constraints, and concurrency behavior. Code length: Minimal implementation with useful, proportionate documentation. Action granularity: Each import and annotation occupies its own line; the compact empty declaration is appropriate. Reading flow: Natural top-to-bottom progression from context and usage rules to annotation configuration and declaration.
Run 2
Code Structure: Logically organized into package declaration, imports, documentation, metadata annotations, and declaration. Nesting: No nested logic; the empty annotation body is immediately understandable. Clarity of intent: Subscribe clearly identifies the purpose, and the Javadoc explains parameter constraints and concurrency behavior. Code length: Concise implementation with appropriately detailed documentation. Action granularity: Each import and metadata annotation occupies its own line; no unrelated operations are combined. Reading flow: Natural top-to-bottom progression, though blank lines after the package declaration and between import groups would improve visual separation.
Run 3
Code Structure: Standard, logical organization of package, imports, documentation, annotations, and declaration. Nesting: No nested logic; the annotation declaration is flat and easy to scan. Clarity of intent: The Subscribe name and Javadoc clearly explain its purpose, parameter requirements, and concurrency behavior. Code length: Minimal implementation with relevant documentation and no unnecessary code. Action granularity: Each import and annotation occupies its own line; the empty declaration is appropriately concise. Reading flow: Natural top-to-bottom progression from context to usage contract to implementation.