Skip to content

Commit 8d01d19

Browse files
Merge pull request #6 from jentic/frankkilcommins/minor-cleanup
chore(spec): minor format fixes
2 parents c25e9e4 + 4d1955f commit 8d01d19

1 file changed

Lines changed: 24 additions & 26 deletions

File tree

docs/specification/spec.md

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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
239239
weighted_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

318318
Where 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
444444
coverage = ops_with_operationId / total_operations
445-
distinctiveness = 1- mean_semantic_similarity
445+
distinctiveness = 1 - mean_semantic_similarity
446446
opid_quality = coverage × distinctiveness
447447
```
448448

@@ -514,7 +514,7 @@ Agent Usability evaluates whether autonomous agents can operate the API reliably
514514
raw_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
620620
navigation_readiness = 0.6 * pagination + 0.4 * hypermedia_support
621621
navigation = 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
724724
weighted_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

983983
Notes:
@@ -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

10461046
Where `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

10581058
Where:
@@ -1064,7 +1064,7 @@ Where:
10641064

10651065
```text
10661066
similarity(i, j) ∈ [0, 1]
1067-
distinctiveness = 1- similarity
1067+
distinctiveness = 1 - similarity
10681068
```
10691069

10701070
Similarity 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

11661166
Clamped 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

11911191
Clamped to `[0.6, 1.0]`, to avoid total suppression.
11921192

11931193
Where:
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

Comments
 (0)