Skip to content

Commit 4fa4d16

Browse files
committed
feat(data): backfill priority provenance
1 parent 7d82cbb commit 4fa4d16

10 files changed

Lines changed: 175 additions & 96 deletions

File tree

data/data-health.json

Lines changed: 8 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,18 @@
1010
},
1111
"summary": {
1212
"totalRecords": 134,
13-
"recordsWithSources": 0,
14-
"verifiedRecords": 36,
15-
"provenanceComplete": 0,
13+
"recordsWithSources": 6,
14+
"verifiedRecords": 39,
15+
"provenanceComplete": 6,
1616
"staleVerifiedRecords": 0,
1717
"translationPlaceholderValues": 1411,
1818
"danglingRelationships": 5,
1919
"modelBenchmarkCoverage": 28.1,
2020
"productsWithPricing": 48,
2121
"productRecords": 48,
2222
"errors": 0,
23-
"warnings": 41,
24-
"info": 134
23+
"warnings": 38,
24+
"info": 128
2525
},
2626
"byCategory": {
2727
"ides": {
@@ -45,13 +45,13 @@
4545
"models": {
4646
"total": 33,
4747
"verified": 28,
48-
"provenanceComplete": 0,
48+
"provenanceComplete": 3,
4949
"stale": 0
5050
},
5151
"providers": {
5252
"total": 13,
53-
"verified": 1,
54-
"provenanceComplete": 0,
53+
"verified": 4,
54+
"provenanceComplete": 3,
5555
"stale": 0
5656
},
5757
"vendors": {
@@ -189,13 +189,6 @@
189189
"id": "kilo-code",
190190
"message": "Verified record is missing sources, review date, reviewer, or confidence."
191191
},
192-
{
193-
"severity": "warning",
194-
"code": "verified-without-provenance",
195-
"category": "models",
196-
"id": "claude-haiku-4-5",
197-
"message": "Verified record is missing sources, review date, reviewer, or confidence."
198-
},
199192
{
200193
"severity": "warning",
201194
"code": "verified-without-provenance",
@@ -245,13 +238,6 @@
245238
"id": "gemini-2-5-pro",
246239
"message": "Verified record is missing sources, review date, reviewer, or confidence."
247240
},
248-
{
249-
"severity": "warning",
250-
"code": "verified-without-provenance",
251-
"category": "models",
252-
"id": "gemini-3-flash",
253-
"message": "Verified record is missing sources, review date, reviewer, or confidence."
254-
},
255241
{
256242
"severity": "warning",
257243
"code": "verified-without-provenance",
@@ -315,13 +301,6 @@
315301
"id": "gpt-5-1-codex",
316302
"message": "Verified record is missing sources, review date, reviewer, or confidence."
317303
},
318-
{
319-
"severity": "warning",
320-
"code": "verified-without-provenance",
321-
"category": "models",
322-
"id": "gpt-5-2",
323-
"message": "Verified record is missing sources, review date, reviewer, or confidence."
324-
},
325304
{
326305
"severity": "warning",
327306
"code": "verified-without-provenance",
@@ -742,13 +721,6 @@
742721
"id": "zed",
743722
"message": "No structured source references are recorded."
744723
},
745-
{
746-
"severity": "info",
747-
"code": "missing-sources",
748-
"category": "models",
749-
"id": "claude-haiku-4-5",
750-
"message": "No structured source references are recorded."
751-
},
752724
{
753725
"severity": "info",
754726
"code": "missing-sources",
@@ -826,13 +798,6 @@
826798
"id": "gemini-2-5-pro",
827799
"message": "No structured source references are recorded."
828800
},
829-
{
830-
"severity": "info",
831-
"code": "missing-sources",
832-
"category": "models",
833-
"id": "gemini-3-flash",
834-
"message": "No structured source references are recorded."
835-
},
836801
{
837802
"severity": "info",
838803
"code": "missing-sources",
@@ -896,13 +861,6 @@
896861
"id": "gpt-5-1-codex",
897862
"message": "No structured source references are recorded."
898863
},
899-
{
900-
"severity": "info",
901-
"code": "missing-sources",
902-
"category": "models",
903-
"id": "gpt-5-2",
904-
"message": "No structured source references are recorded."
905-
},
906864
{
907865
"severity": "info",
908866
"code": "missing-sources",
@@ -980,27 +938,13 @@
980938
"id": "alibaba",
981939
"message": "No structured source references are recorded."
982940
},
983-
{
984-
"severity": "info",
985-
"code": "missing-sources",
986-
"category": "providers",
987-
"id": "anthropic",
988-
"message": "No structured source references are recorded."
989-
},
990941
{
991942
"severity": "info",
992943
"code": "missing-sources",
993944
"category": "providers",
994945
"id": "deepseek",
995946
"message": "No structured source references are recorded."
996947
},
997-
{
998-
"severity": "info",
999-
"code": "missing-sources",
1000-
"category": "providers",
1001-
"id": "google",
1002-
"message": "No structured source references are recorded."
1003-
},
1004948
{
1005949
"severity": "info",
1006950
"code": "missing-sources",
@@ -1029,13 +973,6 @@
1029973
"id": "moonshot",
1030974
"message": "No structured source references are recorded."
1031975
},
1032-
{
1033-
"severity": "info",
1034-
"code": "missing-sources",
1035-
"category": "providers",
1036-
"id": "openai",
1037-
"message": "No structured source references are recorded."
1038-
},
1039976
{
1040977
"severity": "info",
1041978
"code": "missing-sources",

docs/DATA-HEALTH.md

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ Snapshot date: 2026-07-18. Regenerate with `npm run data-health:report`.
77
| Metric | Value |
88
| --- | ---: |
99
| Manifest records | 134 |
10-
| Records with structured sources | 0 |
11-
| Verified records | 36 |
12-
| Verified with complete provenance | 0 |
10+
| Records with structured sources | 6 |
11+
| Verified records | 39 |
12+
| Verified with complete provenance | 6 |
1313
| Stale verified records | 0 |
1414
| Non-English values identical to English | 1411 |
1515
| Dangling product relationships | 5 |
1616
| Model benchmark coverage | 28.1% |
1717
| Products with pricing | 48/48 |
18-
| Errors / warnings / info | 0 / 41 / 134 |
18+
| Errors / warnings / info | 0 / 38 / 128 |
1919

2020
## Category Breakdown
2121

@@ -24,8 +24,8 @@ Snapshot date: 2026-07-18. Regenerate with `npm run data-health:report`.
2424
| ides | 13 | 0 | 0 | 0 |
2525
| clis | 20 | 2 | 0 | 0 |
2626
| extensions | 15 | 3 | 0 | 0 |
27-
| models | 33 | 28 | 0 | 0 |
28-
| providers | 13 | 1 | 0 | 0 |
27+
| models | 33 | 28 | 3 | 0 |
28+
| providers | 13 | 4 | 3 | 0 |
2929
| vendors | 40 | 2 | 0 | 0 |
3030

3131
## Translation Placeholder Proxy
@@ -50,8 +50,8 @@ Exact English matches are a triage signal; product names and technical terms can
5050

5151
| Issue | Count |
5252
| --- | ---: |
53-
| missing-sources | 134 |
54-
| verified-without-provenance | 36 |
53+
| missing-sources | 128 |
54+
| verified-without-provenance | 33 |
5555
| dangling-related-product | 5 |
5656

5757
## Priority Queue
@@ -71,15 +71,13 @@ visible in the scorecards and `data/data-health.json`.
7171
| warning | verified-without-provenance | extensions/claude-code | Verified record is missing sources, review date, reviewer, or confidence. |
7272
| warning | verified-without-provenance | extensions/gemini-code-assist | Verified record is missing sources, review date, reviewer, or confidence. |
7373
| warning | verified-without-provenance | extensions/kilo-code | Verified record is missing sources, review date, reviewer, or confidence. |
74-
| warning | verified-without-provenance | models/claude-haiku-4-5 | Verified record is missing sources, review date, reviewer, or confidence. |
7574
| warning | verified-without-provenance | models/claude-opus-4 | Verified record is missing sources, review date, reviewer, or confidence. |
7675
| warning | verified-without-provenance | models/claude-opus-4-1 | Verified record is missing sources, review date, reviewer, or confidence. |
7776
| warning | verified-without-provenance | models/claude-opus-4-5 | Verified record is missing sources, review date, reviewer, or confidence. |
7877
| warning | verified-without-provenance | models/claude-sonnet-4 | Verified record is missing sources, review date, reviewer, or confidence. |
7978
| warning | verified-without-provenance | models/claude-sonnet-4-5 | Verified record is missing sources, review date, reviewer, or confidence. |
8079
| warning | verified-without-provenance | models/gemini-2-5-flash | Verified record is missing sources, review date, reviewer, or confidence. |
8180
| warning | verified-without-provenance | models/gemini-2-5-pro | Verified record is missing sources, review date, reviewer, or confidence. |
82-
| warning | verified-without-provenance | models/gemini-3-flash | Verified record is missing sources, review date, reviewer, or confidence. |
8381
| warning | verified-without-provenance | models/gemini-3-pro | Verified record is missing sources, review date, reviewer, or confidence. |
8482
| warning | verified-without-provenance | models/glm-4-6 | Verified record is missing sources, review date, reviewer, or confidence. |
8583
| warning | verified-without-provenance | models/glm-4-6v | Verified record is missing sources, review date, reviewer, or confidence. |
@@ -89,7 +87,6 @@ visible in the scorecards and `data/data-health.json`.
8987
| warning | verified-without-provenance | models/gpt-5 | Verified record is missing sources, review date, reviewer, or confidence. |
9088
| warning | verified-without-provenance | models/gpt-5-1 | Verified record is missing sources, review date, reviewer, or confidence. |
9189
| warning | verified-without-provenance | models/gpt-5-1-codex | Verified record is missing sources, review date, reviewer, or confidence. |
92-
| warning | verified-without-provenance | models/gpt-5-2 | Verified record is missing sources, review date, reviewer, or confidence. |
9390
| warning | verified-without-provenance | models/gpt-5-codex | Verified record is missing sources, review date, reviewer, or confidence. |
9491
| warning | verified-without-provenance | models/grok-code-fast-1 | Verified record is missing sources, review date, reviewer, or confidence. |
9592
| warning | verified-without-provenance | models/kimi-k2-0905 | Verified record is missing sources, review date, reviewer, or confidence. |

docs/DATA-TRUST.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ Example:
3636

3737
## Current rollout state
3838

39-
Legacy records may have `verified: true` without structured provenance because the boolean predates these fields. Treat those badges as evidence of a prior team review, not as a current freshness guarantee. They will be backfilled category by category; no source or review date should be invented merely to complete the fields.
39+
Legacy records may have `verified: true` without structured provenance because the boolean predates these fields. Treat those badges as evidence of a prior team review, not as a current freshness guarantee. They are being backfilled category by category; no source or review date should be invented merely to complete the fields. The first official-source batch covers OpenAI, Anthropic, and Google providers plus one representative model from each.
4040

4141
For new entries and material updates, a `verified: true` change should include at least one authoritative source, `lastVerifiedAt`, `verifiedBy`, and `confidence`. Official product documentation and pricing pages are preferred over third-party summaries. Benchmark fields should cite the benchmark owner or an official model report.
4242

43-
## Freshness direction
43+
## Freshness policy
4444

45-
The next data-health automation should report verified records without provenance, records older than their category threshold, broken source URLs, and fields such as pricing or benchmarks with no field-level source. Until that automation is in place, freshness review remains a pull-request responsibility.
45+
Run `npm run data-health:report` after manifest or translation changes and commit both generated snapshots. CI runs `npm run data-health:check` to reject invalid or stale snapshots.
46+
47+
The current review thresholds are 30 days for models and providers, 60 days for IDEs, CLIs, and extensions, and 90 days for vendors. Threshold findings remain warnings so that legacy debt stays visible without blocking unrelated work. Network reachability is checked by the separate scheduled URL workflow; source authority and field coverage remain pull-request review responsibilities.

docs/PROJECT-REVIEW-2026-07-18.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,7 @@ evidence; completed items are reflected in the checklists and implementation log
163163
- Added a reproducible data-health scorecard and JSON snapshot covering provenance, freshness,
164164
relationship integrity, translation placeholders, pricing, and benchmark coverage; CI now rejects
165165
invalid or stale snapshots while leaving legacy migration debt visible as warnings and inventory.
166+
- Completed the first official-source provenance batch for the OpenAI, Anthropic, and Google
167+
providers and representative GPT-5.2, Claude Haiku 4.5, and Gemini 3 Flash model records.
168+
- Corrected GPT-5.2 from `latest` to `maintained` after its official model page identified it as a
169+
previous frontier model that remains available.

manifests/models/claude-haiku-4-5.json

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,37 @@
3939
}
4040
},
4141
"verified": true,
42+
"sources": [
43+
{
44+
"url": "https://platform.claude.com/docs/en/about-claude/models/overview",
45+
"title": "Claude models overview",
46+
"fields": [
47+
"docsUrl",
48+
"contextWindow",
49+
"maxOutput",
50+
"lifecycle",
51+
"knowledgeCutoff",
52+
"inputModalities",
53+
"outputModalities",
54+
"capabilities"
55+
]
56+
},
57+
{
58+
"url": "https://platform.claude.com/docs/en/about-claude/pricing",
59+
"title": "Claude API pricing",
60+
"fields": ["tokenPricing"]
61+
},
62+
{
63+
"url": "https://www.anthropic.com/news/claude-haiku-4-5",
64+
"title": "Introducing Claude Haiku 4.5",
65+
"fields": ["name", "description", "releaseDate"]
66+
}
67+
],
68+
"lastVerifiedAt": "2026-07-18",
69+
"verifiedBy": "codex-agent",
70+
"confidence": "medium",
4271
"websiteUrl": "https://www.anthropic.com",
43-
"docsUrl": "https://docs.anthropic.com/claude/docs/models-overview",
72+
"docsUrl": "https://platform.claude.com/docs/en/about-claude/models/overview",
4473
"vendor": "Anthropic",
4574
"size": "Unknown",
4675
"contextWindow": 200000,

manifests/models/gemini-3-flash.json

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,33 @@
3939
}
4040
},
4141
"verified": true,
42+
"sources": [
43+
{
44+
"url": "https://ai.google.dev/gemini-api/docs/gemini-3",
45+
"title": "Gemini 3 developer guide",
46+
"fields": [
47+
"docsUrl",
48+
"contextWindow",
49+
"maxOutput",
50+
"tokenPricing",
51+
"lifecycle",
52+
"knowledgeCutoff",
53+
"inputModalities",
54+
"outputModalities",
55+
"capabilities"
56+
]
57+
},
58+
{
59+
"url": "https://blog.google/products-and-platforms/products/gemini/gemini-3-flash/",
60+
"title": "Introducing Gemini 3 Flash",
61+
"fields": ["name", "description", "releaseDate"]
62+
}
63+
],
64+
"lastVerifiedAt": "2026-07-18",
65+
"verifiedBy": "codex-agent",
66+
"confidence": "medium",
4267
"websiteUrl": "https://deepmind.google",
43-
"docsUrl": "https://ai.google.dev/gemini-api/docs/models#gemini-3-flash",
68+
"docsUrl": "https://ai.google.dev/gemini-api/docs/gemini-3",
4469
"vendor": "Google",
4570
"size": "Unknown",
4671
"contextWindow": 1048576,

manifests/models/gpt-5-2.json

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,33 @@
3939
}
4040
},
4141
"verified": true,
42+
"sources": [
43+
{
44+
"url": "https://developers.openai.com/api/docs/models/gpt-5.2",
45+
"title": "GPT-5.2 model documentation",
46+
"fields": [
47+
"docsUrl",
48+
"contextWindow",
49+
"maxOutput",
50+
"tokenPricing",
51+
"lifecycle",
52+
"knowledgeCutoff",
53+
"inputModalities",
54+
"outputModalities",
55+
"capabilities"
56+
]
57+
},
58+
{
59+
"url": "https://openai.com/index/introducing-gpt-5-2/",
60+
"title": "Introducing GPT-5.2",
61+
"fields": ["name", "description", "releaseDate"]
62+
}
63+
],
64+
"lastVerifiedAt": "2026-07-18",
65+
"verifiedBy": "codex-agent",
66+
"confidence": "medium",
4267
"websiteUrl": "https://openai.com",
43-
"docsUrl": "https://platform.openai.com/docs/models/gpt-5.2",
68+
"docsUrl": "https://developers.openai.com/api/docs/models/gpt-5.2",
4469
"vendor": "OpenAI",
4570
"size": "Unknown",
4671
"contextWindow": 400000,
@@ -51,7 +76,7 @@
5176
"cache": 0.175
5277
},
5378
"releaseDate": "2025-12-11",
54-
"lifecycle": "latest",
79+
"lifecycle": "maintained",
5580
"knowledgeCutoff": "2025-08-31",
5681
"inputModalities": ["text", "image"],
5782
"outputModalities": ["text"],

0 commit comments

Comments
 (0)