@@ -116,9 +116,9 @@ A human-interpretable categorization mapped from the final readiness score:
116116| Level | Range | Interpretation |
117117| --- | --- | --- |
118118| Level 0 | ` < 40 ` | Not Ready |
119- | Level 1 | ` 40- 60 ` | Foundational |
120- | Level 2 | ` 60- 75 ` | AI-Aware |
121- | Level 3 | ` 75- 90 ` | AI-Ready |
119+ | Level 1 | ` 40 - 60 ` | Foundational |
120+ | Level 2 | ` 60 - 75 ` | AI-Aware |
121+ | Level 3 | ` 75 - 90 ` | AI-Ready |
122122| Level 4 | ` > 90 ` | Agent-Optimized |
123123
124124### Grading
@@ -212,8 +212,8 @@ An API MUST NOT be considered AI-ready if it fails foundational parsing or conta
212212#### Spec Validity (spec_validity)
213213
214214``` text
215- spec_validity = 1 if specification parses successfully
216- spec_validity = 0 otherwise
215+ spec_validity = 1 # if specification parses successfully
216+ spec_validity = 0 # otherwise
217217```
218218
219219#### Resolution Completeness (resolution_completeness)
@@ -238,13 +238,13 @@ This signal leverages core ruleset of Spectral and Redocly, with Jentic opinions
238238``` text
239239weighted_cost = SQRT((1.0 * critical) + (0.6 * errors) + (0.025 * warnings) + (0.005 * info))
240240
241- lint_results = max(0, 1- (weighted_cost / 25))
241+ lint_results = max(0, 1 - (weighted_cost / 25))
242242```
243243
244244#### Structural Integrity (structural_integrity)
245245
246246``` text
247- structural_integrity = max(0, 1- (issues / 15))
247+ structural_integrity = max(0, 1 - (issues / 15))
248248```
249249
250250** Threshold**
@@ -312,7 +312,7 @@ example_validity = valid_examples / total_examples
312312#### Doc Clarity (doc_clarity)
313313
314314``` text
315- doc_clarity = 1- ((readability_score- 8) / (16- 8))
315+ doc_clarity = 1 - ((readability_score - 8) / (16 - 8))
316316```
317317
318318Where readability_score ∈ [ 8, 16] (` 8 ` is easy to read, ` 16 ` would be legaleses / hard to parse.). See ` readability_score ` definition in [ Appendix A: General Definitions] ( #appendix-a-general-definitions ) .
@@ -334,9 +334,9 @@ Unlike structural integrity, tooling_readiness should not be treated as a correc
334334
335335| Tooling Ingestion Issues | Score | Interpretation |
336336| ------------------------ | ----- | -------------- |
337- | 0- 3 | 0.85- 1.0 | Easily ingested |
338- | 4- 8 | 0.6- 0.8 | Cleanup recommended |
339- | 9- 14 | 0.3- 0.5 | High friction |
337+ | 0 - 3 | 0.85 - 1.0 | Easily ingested |
338+ | 4 - 8 | 0.6 - 0.8 | Cleanup recommended |
339+ | 9 - 14 | 0.3 - 0.5 | High friction |
340340| 15+ | 0.0 | Cannot reliably ingest |
341341
342342#### Dimension Score
@@ -442,7 +442,7 @@ This is important for helping AI reason about failure modes, not just success pa
442442
443443``` text
444444coverage = ops_with_operationId / total_operations
445- distinctiveness = 1- mean_semantic_similarity
445+ distinctiveness = 1 - mean_semantic_similarity
446446opid_quality = coverage × distinctiveness
447447```
448448
@@ -514,7 +514,7 @@ Agent Usability evaluates whether autonomous agents can operate the API reliably
514514raw_complexity = 0.5 × normalised_endpoint_count
515515 + 0.5 × normalised_schema_depth
516516
517- complexity_comfort = 1 / (1 + exp(6 × (raw_complexity- 0.45)))
517+ complexity_comfort = 1 / (1 + exp(6 × (raw_complexity - 0.45)))
518518```
519519
520520##### Normalised Endpoint Count (normalised_endpoint_count)
@@ -620,7 +620,7 @@ tool_calling_alignment = operations_mappable_to_ai_tool_calls / total_operations
620620navigation_readiness = 0.6 * pagination + 0.4 * hypermedia_support
621621navigation = navigation_readiness * (1 + 0.03 * links_coverage)
622622
623- AU = 100 ×(complexity_comfort + distinctiveness + navigation + intent_legibility + safety + tool_calling_alignment) / 6
623+ AU = 100 × (complexity_comfort + distinctiveness + navigation + intent_legibility + safety + tool_calling_alignment) / 6
624624
625625```
626626
@@ -722,7 +722,7 @@ If no PII detected, = 1.0.
722722
723723``` text
724724weighted_cost = (1.0 × critical) + (0.6 × errors) + (0.025 × warnings) + (0.005 × info)
725- owasp_posture = max(0, 1- (sqrt(weighted_cost) / 5))
725+ owasp_posture = max(0, 1 - (sqrt(weighted_cost) / 5))
726726```
727727
728728
@@ -977,7 +977,7 @@ Used when the presence of errors decreases quality (linting findings, structural
977977** Formula:**
978978
979979``` text
980- inverse = max(0, 1- (issue_count / threshold))
980+ inverse = max(0, 1 - (issue_count / threshold))
981981```
982982
983983Notes:
@@ -992,7 +992,7 @@ Applied when lower input values are better (e.g., readability burden).
992992** Formula:**
993993
994994``` text
995- inverted = 1- (x- min) / (max- min)
995+ inverted = 1 - (x - min) / (max - min)
996996```
997997
998998- If ` x ≤ min ` , then ` inverted = 1.0 ` .
@@ -1040,7 +1040,7 @@ weighted_cost =
10401040 + (0.025 × warnings)
10411041 + (0.005 × info)
10421042
1043- signal = max(0, 1- (weighted_cost / max_cost))
1043+ signal = max(0, 1 - (weighted_cost / max_cost))
10441044```
10451045
10461046Where ` max_cost ` is an upper bound chosen per dimension (e.g., 25 for foundational lint).
@@ -1052,7 +1052,7 @@ Used where a smooth decline is preferred rather than linear penalty (e.g., struc
10521052** Formula:**
10531053
10541054``` text
1055- log_dampened = 1- ( logBaseN(1 + issues) / logBaseN(1 + threshold) )
1055+ log_dampened = 1 - ( logBaseN(1 + issues) / logBaseN(1 + threshold) )
10561056```
10571057
10581058Where:
@@ -1064,7 +1064,7 @@ Where:
10641064
10651065``` text
10661066similarity(i, j) ∈ [0, 1]
1067- distinctiveness = 1- similarity
1067+ distinctiveness = 1 - similarity
10681068```
10691069
10701070Similarity is computed from a combination of:
@@ -1099,7 +1099,7 @@ Used to avoid over-penalising large APIs for complexity if they are well-structu
10991099** Formula:**
11001100
11011101``` text
1102- logistic = 1 / (1 + exp(k × (value- midpoint)))
1102+ logistic = 1 / (1 + exp(k × (value - midpoint)))
11031103```
11041104
11051105- ` k ` controls steepness (recommended: 5–7).
@@ -1160,7 +1160,7 @@ Used when qualitative rule-based deductions apply (e.g., unsafe idempotency patt
11601160** Formula:**
11611161
11621162``` text
1163- score = 1.0- Σ(penalty[i] × severity_weight[i])
1163+ score = 1.0 - Σ(penalty[i] × severity_weight[i])
11641164```
11651165
11661166Clamped to ** [ 0, 1] ** .
@@ -1185,15 +1185,15 @@ Applied in Discoverability scoring when security posture SHOULD diminish visibil
11851185** Formula:**
11861186
11871187``` text
1188- risk_discount = 1- (0.5 × risk_index)
1188+ risk_discount = 1 - (0.5 × risk_index)
11891189```
11901190
11911191Clamped to ` [0.6, 1.0] ` , to avoid total suppression.
11921192
11931193Where:
11941194
11951195``` text
1196- risk_index = exposure_weight × sensitivity_weight × (1- base_security)
1196+ risk_index = exposure_weight × sensitivity_weight × (1 - base_security)
11971197```
11981198
11991199## Scoring Model & Formulae
@@ -1344,5 +1344,3 @@ Grades SHOULD NOT be used as substitutes for readiness levels.
13441344| ** Penalty** | A downward adjustment applied when a risk or deficiency is identified (e.g., missing pagination, weak auth, or unsafe error handling). |
13451345| ** Bonus (or Uplift)** | A small upward modifier applied when extra AI-friendly metadata is present (e.g., workflows, AI intent hints). |
13461346| ** Readability Score** | A measure of how easy text is to understand, based on approximate grade-level complexity (e.g., Flesch–Kincaid). Lower scores indicate simpler, more direct language. APIs targeting AI consumption benefit from 8–12 range; >16 introduces interpretation risk for models.<br ><br >** ≤ 8th grade:** universally readable<br >** 9–12:** general technical audience (expected for API docs)<br >** > 16:** post-grad, cognitively expensive, increases model misinterpretation risk.<br ><br >This score is determined by the LLM evaluating the ` readability_score ` . |
1347-
1348-
0 commit comments