Skip to content

Commit 5c2ddc0

Browse files
committed
docs: describe every data category and map the repository in the README
The Layout section listed five of the thirteen categories. It now has a table with each category's real path pattern, file count and an example, notes on the year, country, base-model and prefix folders, and what data/_verify/ is. A short repository map names data/, app/, site/, TechEngine/ and each workflow and script under .github/, and a new section points at the related repositories.
1 parent 89e51b1 commit 5c2ddc0

1 file changed

Lines changed: 65 additions & 6 deletions

File tree

‎README.md‎

Lines changed: 65 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,65 @@ static-dump generator live in
2121

2222
## Layout
2323

24+
### Repository map
25+
2426
```text
25-
data/brand/<country>/<slug>.json # e.g. data/brand/kr/samsung.json
26-
data/soc/<manufacturer>/<year>/<slug>.json # data/soc/qualcomm/2024/snapdragon-8-elite.json
27-
data/smartphone/<brand>/<year>/<slug>.json # data/smartphone/samsung/2025/galaxy-s25.json
28-
data/gpu/<manufacturer>/<year>/<segment>/<slug>.json # data/gpu/nvidia/2025/consumer/geforce-rtx-5090.json
29-
data/cpu/<manufacturer>/<year>/<segment>/<slug>.json # data/cpu/intel/2023/consumer/core-i9-14900k.json
27+
data/ # the dataset: one JSON file per record (categories below)
28+
app/ # the bundled validator, standard library only (python -m app.validate)
29+
site/ # the Astro site that GitHub Pages serves, with the generated API
30+
TechEngine/ # the engine, a submodule pinned to one commit: full validator,
31+
# integrity gate, API dump, collectors and verification
32+
.github/
33+
workflows/
34+
pr-checks.yml # read-only checks on every PR into develop or main
35+
final-check.yml # full build and verification of a PR labelled final-check
36+
collect.yml # runs one engine collector by hand; uploads a patch
37+
pages.yml # builds the API and the site from main and deploys them
38+
scripts/
39+
build-api.sh # validates, then generates site/public/v1 and openapi.json
40+
check_dump.py # compares the generated API with data/
41+
open-collect-pr.sh # opens the PR for one collect.yml run
3042
```
3143

32-
All paths use singular folder names. Slugs are kebab-case and unique within each category.
44+
### Data
45+
46+
Every record is one JSON file named `<slug>.json`. Folder names are singular,
47+
slugs are kebab-case and unique within their category. Counts are as of
48+
November 2026.
49+
50+
| Category | Path under `data/` | Files | Example |
51+
| --- | --- | ---: | --- |
52+
| `brand` | `brand/<country>/<slug>.json` | 3,022 | `brand/kr/samsung.json` |
53+
| `soc` | `soc/<manufacturer>/<year>/<slug>.json` | 2,117 | `soc/qualcomm/2024/snapdragon-8-elite.json` |
54+
| `cpu` | `cpu/<manufacturer>/<year>/<consumer\|enterprise>/<slug>.json` | 4,517 | `cpu/intel/2023/consumer/core-i9-14900k.json` |
55+
| `gpu` | `gpu/<manufacturer>/<year>/<consumer\|enterprise>/<slug>.json` | 2,076 | `gpu/nvidia/2025/consumer/geforce-rtx-5090.json` |
56+
| `smartphone` | `smartphone/<brand>/<year>/<slug>.json` or `smartphone/<brand>/<year>/<base_model>/<slug>.json` | 92,824 | `smartphone/samsung/2025/galaxy-s25.json` |
57+
| `tablet` | `tablet/<brand>/<year>/<base_model>/<slug>.json` | 3,305 | `tablet/huawei/2020/matepad-t8/matepad-t8.json` |
58+
| `watch` | `watch/<brand>/<year>/<base_model>/<slug>.json` | 418 | `watch/samsung/2024/galaxy-watch-fe/…` |
59+
| `pda` | `pda/<brand>/<year>/<base_model>/<slug>.json` | 112 | `pda/hp/2000/ipaq-h3600/ipaq-h3600-base.json` |
60+
| `laptop` | `laptop/<brand>/<year>/<base_model>/<slug>.json` | 1,966 | `laptop/dell/2017/dell-inspiron-5567/…` |
61+
| `monitor` | `monitor/<brand>/<year>/<base_model>/<slug>.json` | 231 | `monitor/samsung/2023/samsung-m50b/…` |
62+
| `device_catalog` | `device_catalog/<brand>/<slug>.json` | 20,366 | `device_catalog/kazam/kazam-thunder-345-lte.json` |
63+
| `software` | `software/<prefix>/<slug>.json` | 42,493 | `software/sw/sweble.json` |
64+
| `website` | `website/<prefix>/<slug>.json` | 39,930 | `website/pc/pc-gamer-uk.json` |
65+
66+
- `<year>` is the release year, as in the record's `release_date`.
67+
- `<country>` is the brand's ISO 3166 country code in lower case. A brand with
68+
no sourced country lives under `brand/unknown/`; that is most of them (2,815).
69+
- `<consumer|enterprise>` is a coarse folder split. A CPU record's own `segment`
70+
field is finer: `desktop`, `laptop`, `hedt` or `server`.
71+
- `<base_model>` groups the variants of one model (memory, storage, region).
72+
About a third of the smartphones (31,093) and 44 laptops sit directly in the
73+
year folder instead.
74+
- `<prefix>` is the first two characters of the slug, or the whole slug when it
75+
is one character long.
76+
- `device_catalog` lists device identities (model numbers, codenames) whose
77+
release date is unknown, so it has no year folder.
78+
- `data/_verify/` is not a category. It holds the verification ledger
79+
(`ledger.jsonl`), the status aggregate (`status.json`) and the caches under
80+
`state/` that TechEngine's verify tools write. Don't edit it by hand.
81+
82+
### Site
3383

3484
The Astro site lives under `site/` and is the deploy target for GitHub Pages.
3585
[`pages.yml`](.github/workflows/pages.yml) generates the static JSON API from
@@ -101,6 +151,15 @@ A release is a PR from `develop` to `main`; merging it deploys the site.
101151
The TechEngine pin and the pinned action SHAs are bumped by hand, in a PR into
102152
`develop` that pr-checks validates like any other; Dependabot is not used.
103153

154+
## Related repositories
155+
156+
| Repository | What it holds |
157+
| --- | --- |
158+
| [TechEngine](https://github.com/GetTechAPI/TechEngine) | The engine pinned here as a submodule: validation, the static API generator, the collectors and the verification tiers. |
159+
| [game-catalog](https://github.com/GetTechAPI/game-catalog) | Video game records. They moved out of this repo in September 2026; `site/public/v1/games/index.json` points there. |
160+
| [cpu-engineering-samples](https://github.com/GetTechAPI/cpu-engineering-samples) | Engineering-sample CPUs, kept apart from the retail CPUs in `data/cpu/`. |
161+
| [TechMachine](https://github.com/GetTechAPI/TechMachine) | The organisation's repository health check and the scaffolder for new satellite data repos. |
162+
104163
## Contributing
105164

106165
Open a PR **against `develop`** with the new/updated JSON file — that is also

0 commit comments

Comments
 (0)