Skip to content

Commit e4562ba

Browse files
authored
Merge pull request #148 from aicodingstack/agent/data-integrity-backfill
feat(data): strengthen catalog integrity
2 parents 448be8b + 07e6065 commit e4562ba

15 files changed

Lines changed: 233 additions & 152 deletions

data/changelogs.json

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,88 @@
11
{
22
"version": 1,
33
"entries": [
4+
{
5+
"id": "2026-07-19-data-integrity",
6+
"date": "2026-07-19",
7+
"summary": "Fixed product relationships and expanded official-source provenance for coding assistants",
8+
"changes": [
9+
{
10+
"category": "clis",
11+
"id": "claude-code-cli",
12+
"change": "updated",
13+
"fields": [
14+
"docsUrl",
15+
"latestVersion",
16+
"resourceUrls",
17+
"confidence",
18+
"lastVerifiedAt",
19+
"sources",
20+
"verifiedBy"
21+
]
22+
},
23+
{
24+
"category": "extensions",
25+
"id": "claude-code",
26+
"change": "updated",
27+
"fields": [
28+
"docsUrl",
29+
"latestVersion",
30+
"resourceUrls",
31+
"confidence",
32+
"lastVerifiedAt",
33+
"sources",
34+
"verifiedBy"
35+
]
36+
},
37+
{
38+
"category": "extensions",
39+
"id": "droid",
40+
"change": "updated",
41+
"fields": ["relatedProducts"]
42+
},
43+
{
44+
"category": "extensions",
45+
"id": "gemini-code-assist",
46+
"change": "updated",
47+
"fields": [
48+
"docsUrl",
49+
"latestVersion",
50+
"license",
51+
"pricing",
52+
"resourceUrls",
53+
"supportedIdes",
54+
"confidence",
55+
"lastVerifiedAt",
56+
"sources",
57+
"verifiedBy"
58+
]
59+
},
60+
{
61+
"category": "extensions",
62+
"id": "qoder",
63+
"change": "updated",
64+
"fields": ["relatedProducts"]
65+
},
66+
{
67+
"category": "ides",
68+
"id": "intellij-idea",
69+
"change": "updated",
70+
"fields": ["relatedProducts"]
71+
},
72+
{
73+
"category": "ides",
74+
"id": "vscode",
75+
"change": "updated",
76+
"fields": ["relatedProducts"]
77+
},
78+
{
79+
"category": "ides",
80+
"id": "zed",
81+
"change": "updated",
82+
"fields": ["relatedProducts"]
83+
}
84+
]
85+
},
486
{
587
"id": "2026-07-18-project-review",
688
"date": "2026-07-18",

data/data-health.json

Lines changed: 8 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"asOf": "2026-07-18",
2+
"asOf": "2026-07-19",
33
"thresholds": {
44
"models": 30,
55
"providers": 30,
@@ -10,18 +10,18 @@
1010
},
1111
"summary": {
1212
"totalRecords": 134,
13-
"recordsWithSources": 6,
13+
"recordsWithSources": 9,
1414
"verifiedRecords": 39,
15-
"provenanceComplete": 6,
15+
"provenanceComplete": 9,
1616
"staleVerifiedRecords": 0,
1717
"translationPlaceholderValues": 1411,
18-
"danglingRelationships": 5,
18+
"danglingRelationships": 0,
1919
"modelBenchmarkCoverage": 28.1,
2020
"productsWithPricing": 48,
2121
"productRecords": 48,
2222
"errors": 0,
23-
"warnings": 38,
24-
"info": 128
23+
"warnings": 30,
24+
"info": 125
2525
},
2626
"byCategory": {
2727
"ides": {
@@ -33,13 +33,13 @@
3333
"clis": {
3434
"total": 20,
3535
"verified": 2,
36-
"provenanceComplete": 0,
36+
"provenanceComplete": 1,
3737
"stale": 0
3838
},
3939
"extensions": {
4040
"total": 15,
4141
"verified": 3,
42-
"provenanceComplete": 0,
42+
"provenanceComplete": 2,
4343
"stale": 0
4444
},
4545
"models": {
@@ -119,69 +119,13 @@
119119
}
120120
},
121121
"issues": [
122-
{
123-
"severity": "warning",
124-
"code": "dangling-related-product",
125-
"category": "extensions",
126-
"id": "droid",
127-
"message": "References missing clis/factory."
128-
},
129-
{
130-
"severity": "warning",
131-
"code": "dangling-related-product",
132-
"category": "extensions",
133-
"id": "qoder",
134-
"message": "References missing ides/qoder-ide."
135-
},
136-
{
137-
"severity": "warning",
138-
"code": "dangling-related-product",
139-
"category": "ides",
140-
"id": "intellij-idea",
141-
"message": "References missing clis/idea."
142-
},
143-
{
144-
"severity": "warning",
145-
"code": "dangling-related-product",
146-
"category": "ides",
147-
"id": "vscode",
148-
"message": "References missing clis/code."
149-
},
150-
{
151-
"severity": "warning",
152-
"code": "dangling-related-product",
153-
"category": "ides",
154-
"id": "zed",
155-
"message": "References missing clis/zed."
156-
},
157-
{
158-
"severity": "warning",
159-
"code": "verified-without-provenance",
160-
"category": "clis",
161-
"id": "claude-code-cli",
162-
"message": "Verified record is missing sources, review date, reviewer, or confidence."
163-
},
164122
{
165123
"severity": "warning",
166124
"code": "verified-without-provenance",
167125
"category": "clis",
168126
"id": "kilo-code-cli",
169127
"message": "Verified record is missing sources, review date, reviewer, or confidence."
170128
},
171-
{
172-
"severity": "warning",
173-
"code": "verified-without-provenance",
174-
"category": "extensions",
175-
"id": "claude-code",
176-
"message": "Verified record is missing sources, review date, reviewer, or confidence."
177-
},
178-
{
179-
"severity": "warning",
180-
"code": "verified-without-provenance",
181-
"category": "extensions",
182-
"id": "gemini-code-assist",
183-
"message": "Verified record is missing sources, review date, reviewer, or confidence."
184-
},
185129
{
186130
"severity": "warning",
187131
"code": "verified-without-provenance",
@@ -406,13 +350,6 @@
406350
"id": "augment-code-cli",
407351
"message": "No structured source references are recorded."
408352
},
409-
{
410-
"severity": "info",
411-
"code": "missing-sources",
412-
"category": "clis",
413-
"id": "claude-code-cli",
414-
"message": "No structured source references are recorded."
415-
},
416353
{
417354
"severity": "info",
418355
"code": "missing-sources",
@@ -539,13 +476,6 @@
539476
"id": "augment-code",
540477
"message": "No structured source references are recorded."
541478
},
542-
{
543-
"severity": "info",
544-
"code": "missing-sources",
545-
"category": "extensions",
546-
"id": "claude-code",
547-
"message": "No structured source references are recorded."
548-
},
549479
{
550480
"severity": "info",
551481
"code": "missing-sources",
@@ -574,13 +504,6 @@
574504
"id": "droid",
575505
"message": "No structured source references are recorded."
576506
},
577-
{
578-
"severity": "info",
579-
"code": "missing-sources",
580-
"category": "extensions",
581-
"id": "gemini-code-assist",
582-
"message": "No structured source references are recorded."
583-
},
584507
{
585508
"severity": "info",
586509
"code": "missing-sources",

docs/DATA-HEALTH.md

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
# Data Health Report
22

3-
Snapshot date: 2026-07-18. Regenerate with `npm run data-health:report`.
3+
Snapshot date: 2026-07-19. Regenerate with `npm run data-health:report`.
44

55
## Scorecard
66

77
| Metric | Value |
88
| --- | ---: |
99
| Manifest records | 134 |
10-
| Records with structured sources | 6 |
10+
| Records with structured sources | 9 |
1111
| Verified records | 39 |
12-
| Verified with complete provenance | 6 |
12+
| Verified with complete provenance | 9 |
1313
| Stale verified records | 0 |
1414
| Non-English values identical to English | 1411 |
15-
| Dangling product relationships | 5 |
15+
| Dangling product relationships | 0 |
1616
| Model benchmark coverage | 28.1% |
1717
| Products with pricing | 48/48 |
18-
| Errors / warnings / info | 0 / 38 / 128 |
18+
| Errors / warnings / info | 0 / 30 / 125 |
1919

2020
## Category Breakdown
2121

2222
| Category | Total | Verified | Provenance complete | Stale |
2323
| --- | ---: | ---: | ---: | ---: |
2424
| ides | 13 | 0 | 0 | 0 |
25-
| clis | 20 | 2 | 0 | 0 |
26-
| extensions | 15 | 3 | 0 | 0 |
25+
| clis | 20 | 2 | 1 | 0 |
26+
| extensions | 15 | 3 | 2 | 0 |
2727
| models | 33 | 28 | 3 | 0 |
2828
| providers | 13 | 4 | 3 | 0 |
2929
| vendors | 40 | 2 | 0 | 0 |
@@ -50,9 +50,8 @@ Exact English matches are a triage signal; product names and technical terms can
5050

5151
| Issue | Count |
5252
| --- | ---: |
53-
| missing-sources | 128 |
54-
| verified-without-provenance | 33 |
55-
| dangling-related-product | 5 |
53+
| missing-sources | 125 |
54+
| verified-without-provenance | 30 |
5655

5756
## Priority Queue
5857

@@ -61,15 +60,7 @@ visible in the scorecards and `data/data-health.json`.
6160

6261
| Severity | Issue | Record | Detail |
6362
| --- | --- | --- | --- |
64-
| warning | dangling-related-product | extensions/droid | References missing clis/factory. |
65-
| warning | dangling-related-product | extensions/qoder | References missing ides/qoder-ide. |
66-
| warning | dangling-related-product | ides/intellij-idea | References missing clis/idea. |
67-
| warning | dangling-related-product | ides/vscode | References missing clis/code. |
68-
| warning | dangling-related-product | ides/zed | References missing clis/zed. |
69-
| warning | verified-without-provenance | clis/claude-code-cli | Verified record is missing sources, review date, reviewer, or confidence. |
7063
| warning | verified-without-provenance | clis/kilo-code-cli | Verified record is missing sources, review date, reviewer, or confidence. |
71-
| warning | verified-without-provenance | extensions/claude-code | Verified record is missing sources, review date, reviewer, or confidence. |
72-
| warning | verified-without-provenance | extensions/gemini-code-assist | Verified record is missing sources, review date, reviewer, or confidence. |
7364
| warning | verified-without-provenance | extensions/kilo-code | Verified record is missing sources, review date, reviewer, or confidence. |
7465
| warning | verified-without-provenance | models/claude-opus-4 | Verified record is missing sources, review date, reviewer, or confidence. |
7566
| warning | verified-without-provenance | models/claude-opus-4-1 | Verified record is missing sources, review date, reviewer, or confidence. |

docs/DATA-TRUST.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +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 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.
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. The second batch covers the Claude Code CLI and IDE integration plus Gemini Code Assist, including current product editions and release information.
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

4343
## Freshness policy
4444

4545
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.
4646

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.
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. Dangling product relationships are errors because they always point to nonexistent records and can break navigation. 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: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,15 @@ evidence; completed items are reflected in the checklists and implementation log
184184
- Added Axe browser checks for the search dialog, language menu, model comparison tables, and
185185
expanded mobile navigation, fixing the accessible names, ARIA relationships, decorative content,
186186
and contrast issues those checks exposed.
187+
188+
### 2026-07-19
189+
190+
- Merged the six project-review delivery PRs into `main` in dependency order after revalidating each
191+
layer's independent diff and completing the final combined CI run.
192+
- Corrected five dangling product relationships, distinguishing actual catalog products from local
193+
IDE launch commands, and made future dangling relationships fail the data-health CI check.
194+
- Added official-source provenance for Claude Code CLI, Claude Code IDE integrations, and Gemini
195+
Code Assist; refreshed current documentation, releases, licensing, and product editions where the
196+
official sources showed that legacy values had changed.
197+
- Improved the health snapshot from 6 to 9 records with complete provenance, reduced warnings from
198+
38 to 30, and eliminated all dangling relationships.

manifests/clis/claude-code-cli.json

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,40 @@
3939
}
4040
},
4141
"verified": true,
42+
"sources": [
43+
{
44+
"url": "https://code.claude.com/docs/en/how-claude-code-works",
45+
"title": "How Claude Code works",
46+
"fields": ["name", "description", "websiteUrl", "docsUrl"]
47+
},
48+
{
49+
"url": "https://code.claude.com/docs/en/installation",
50+
"title": "Claude Code installation",
51+
"fields": ["platforms"]
52+
},
53+
{
54+
"url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.215",
55+
"title": "Claude Code v2.1.215 release",
56+
"fields": ["latestVersion", "resourceUrls.changelog"]
57+
},
58+
{
59+
"url": "https://claude.com/pricing",
60+
"title": "Claude plans and pricing",
61+
"fields": ["pricing"]
62+
},
63+
{
64+
"url": "https://code.claude.com/docs/en/mcp",
65+
"title": "Claude Code MCP documentation",
66+
"fields": ["description", "resourceUrls.mcp"]
67+
}
68+
],
69+
"lastVerifiedAt": "2026-07-19",
70+
"verifiedBy": "codex-agent",
71+
"confidence": "medium",
4272
"websiteUrl": "https://code.claude.com",
43-
"docsUrl": "https://docs.claude.com",
73+
"docsUrl": "https://code.claude.com/docs",
4474
"vendor": "Anthropic",
45-
"latestVersion": "2.0.56",
75+
"latestVersion": "2.1.215",
4676
"githubUrl": "https://github.com/anthropics/claude-code",
4777
"license": "Proprietary",
4878
"pricing": [
@@ -93,7 +123,7 @@
93123
"download": null,
94124
"changelog": "https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md",
95125
"pricing": "https://claude.com/pricing",
96-
"mcp": "https://docs.claude.com/en/docs/claude-code/mcp",
126+
"mcp": "https://code.claude.com/docs/en/mcp",
97127
"issue": "https://github.com/anthropics/claude-code/issues"
98128
},
99129
"communityUrls": {

0 commit comments

Comments
 (0)