]> git.ipfire.org Git - thirdparty/google/fonts.git/commitdiff
Add upstream_info.md for 47 families (bitcountgriddoubleink to bytesized)
authorFelipe Correa da Silva Sanches <juca@members.fsf.org>
Tue, 3 Mar 2026 14:19:06 +0000 (14:19 +0000)
committerFelipe CorrĂȘa da Silva Sanches <juca@members.fsf.org>
Tue, 3 Mar 2026 15:27:52 +0000 (15:27 +0000)
Documentation-only: adds investigation reports as upstream_info.md
for families that already have source metadata in METADATA.pb.
Batch 2/2.

Families: bitcountgriddoubleink, bitcountgridsingle, bitcountgridsingleink, bitcountink, bitcountpropdouble, bitcountpropdoubleink, bitcountpropsingle, bitcountpropsingleink, bitcountsingle, bitcountsingleink, bitter, bizudgothic, bizudmincho, bizudpgothic, bizudpmincho, blackandwhitepicture, blackopsone, blaka, blakahollow, blakaink, blinker, bodonimoda, bodonimodasc, bokor, boldonse, bonanova, bonanovasc, bonbon, bonheurroyale, borel, braahone, brawler, bricolagegrotesque, briemhand, brunoace, brunoacesc, brygada1918, buenard, bungee, bungeecolor, bungeehairline, bungeeinline, bungeeoutline, bungeeshade, bungeespice, bungeetint, bytesized

47 files changed:
ofl/bitcountgriddoubleink/upstream_info.md [new file with mode: 0644]
ofl/bitcountgridsingle/upstream_info.md [new file with mode: 0644]
ofl/bitcountgridsingleink/upstream_info.md [new file with mode: 0644]
ofl/bitcountink/upstream_info.md [new file with mode: 0644]
ofl/bitcountpropdouble/upstream_info.md [new file with mode: 0644]
ofl/bitcountpropdoubleink/upstream_info.md [new file with mode: 0644]
ofl/bitcountpropsingle/upstream_info.md [new file with mode: 0644]
ofl/bitcountpropsingleink/upstream_info.md [new file with mode: 0644]
ofl/bitcountsingle/upstream_info.md [new file with mode: 0644]
ofl/bitcountsingleink/upstream_info.md [new file with mode: 0644]
ofl/bitter/upstream_info.md [new file with mode: 0644]
ofl/bizudgothic/upstream_info.md [new file with mode: 0644]
ofl/bizudmincho/upstream_info.md [new file with mode: 0644]
ofl/bizudpgothic/upstream_info.md [new file with mode: 0644]
ofl/bizudpmincho/upstream_info.md [new file with mode: 0644]
ofl/blackandwhitepicture/upstream_info.md [new file with mode: 0644]
ofl/blackopsone/upstream_info.md [new file with mode: 0644]
ofl/blaka/upstream_info.md [new file with mode: 0644]
ofl/blakahollow/upstream_info.md [new file with mode: 0644]
ofl/blakaink/upstream_info.md [new file with mode: 0644]
ofl/blinker/upstream_info.md [new file with mode: 0644]
ofl/bodonimoda/upstream_info.md [new file with mode: 0644]
ofl/bodonimodasc/upstream_info.md [new file with mode: 0644]
ofl/bokor/upstream_info.md [new file with mode: 0644]
ofl/boldonse/upstream_info.md [new file with mode: 0644]
ofl/bonanova/upstream_info.md [new file with mode: 0644]
ofl/bonanovasc/upstream_info.md [new file with mode: 0644]
ofl/bonbon/upstream_info.md [new file with mode: 0644]
ofl/bonheurroyale/upstream_info.md [new file with mode: 0644]
ofl/borel/upstream_info.md [new file with mode: 0644]
ofl/braahone/upstream_info.md [new file with mode: 0644]
ofl/brawler/upstream_info.md [new file with mode: 0644]
ofl/bricolagegrotesque/upstream_info.md [new file with mode: 0644]
ofl/briemhand/upstream_info.md [new file with mode: 0644]
ofl/brunoace/upstream_info.md [new file with mode: 0644]
ofl/brunoacesc/upstream_info.md [new file with mode: 0644]
ofl/brygada1918/upstream_info.md [new file with mode: 0644]
ofl/buenard/upstream_info.md [new file with mode: 0644]
ofl/bungee/upstream_info.md [new file with mode: 0644]
ofl/bungeecolor/upstream_info.md [new file with mode: 0644]
ofl/bungeehairline/upstream_info.md [new file with mode: 0644]
ofl/bungeeinline/upstream_info.md [new file with mode: 0644]
ofl/bungeeoutline/upstream_info.md [new file with mode: 0644]
ofl/bungeeshade/upstream_info.md [new file with mode: 0644]
ofl/bungeespice/upstream_info.md [new file with mode: 0644]
ofl/bungeetint/upstream_info.md [new file with mode: 0644]
ofl/bytesized/upstream_info.md [new file with mode: 0644]

diff --git a/ofl/bitcountgriddoubleink/upstream_info.md b/ofl/bitcountgriddoubleink/upstream_info.md
new file mode 100644 (file)
index 0000000..d6d5b4d
--- /dev/null
@@ -0,0 +1,116 @@
+# Investigation: Bitcount Grid Double Ink
+
+- **Family name**: Bitcount Grid Double Ink
+- **Slug**: bitcountgriddoubleink
+- **Designer**: Petr van Blokland
+- **Category**: DISPLAY
+- **Date added**: 2025-01-10
+- **Model**: Claude Opus 4.6
+
+## METADATA.pb Source Block (current)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "89e7994f73b7f5ced80e7cf493d40be9e66ff82f"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountGridDoubleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+    dest_file: "BitcountGridDoubleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+  }
+  branch: "main"
+}
+```
+
+The source block is complete with repository URL, commit hash, file mappings, and branch. No `config_yaml` field is set.
+
+## Repository Verification
+
+- **Repository URL**: https://github.com/petrvanblokland/TYPETR-Bitcount
+- **Cached at**: upstream_repos/fontc_crater_cache/petrvanblokland/TYPETR-Bitcount
+- **Remote verified**: Yes, remote URL matches `https://github.com/petrvanblokland/TYPETR-Bitcount`
+
+## Commit Verification
+
+- **Referenced commit**: `89e7994f73b7f5ced80e7cf493d40be9e66ff82f`
+- **Commit message**: "Merge pull request #37 from petrvanblokland/fix-ligatures"
+- **Commit date**: 2025-09-05 10:53:08 +0100
+- **Author**: Simon Cozens
+- **Is HEAD of main**: Yes (no newer commits exist in the repository)
+
+### Timeline Cross-check
+
+| Event | Date | Details |
+|-------|------|---------|
+| Original onboarding (v1.0) | 2025-01-17 | Commit `c743b20` by Yanone, referenced upstream commit `af0818e` |
+| Upstream commit `89e7994` | 2025-09-05 10:53 | Merge PR #37 fixing ligatures, rebuilt fonts |
+| google/fonts update (v1.001) | 2025-09-05 15:21 | Commit `5d1b8f3` by Emma Marichal, references `89e7994` |
+| google/fonts PR #8960 merged | 2025-09-05 15:56 | Merge commit `380d625` by Emma Marichal |
+
+The v1.001 update was performed the same day as the upstream merge commit. Emma Marichal took the pre-built font binary from the upstream repo at commit `89e7994` shortly after Simon Cozens merged the ligature fix. The commit message explicitly states the upstream commit hash.
+
+### Binary Verification
+
+The font binary in google/fonts exactly matches the pre-built binary at commit `89e7994` in the upstream repo:
+
+- **SHA-256**: `6da42b0c3bef339d827afcb4f8bf3aa90b780b18cfe752e468771757d5a42c4c`
+- Both `fonts/ttf/variable/BitcountGridDoubleInk[...].ttf` in upstream and `ofl/bitcountgriddoubleink/BitcountGridDoubleInk[...].ttf` in google/fonts produce the same hash.
+
+This confirms that the pre-built binary was copied directly from the upstream repository, not rebuilt from sources.
+
+## Source Files in Upstream
+
+The upstream repo contains buildable sources at `sources/`:
+
+- `sources/Bitcount_Template.designspace` (the main design source)
+- `sources/ufo/` (UFO source directories)
+- `sources/features/` (OpenType feature files)
+- `sources/config.yaml` (upstream config, contains only `familyName: Bitcount` -- generic for the entire Bitcount superfamily)
+- `sources/build/` (build scripts)
+
+The designspace file was verified to exist at the referenced commit `89e7994`.
+
+## Config.yaml Analysis
+
+### Upstream config.yaml (`sources/config.yaml`)
+
+```yaml
+familyName: Bitcount
+```
+
+This is a minimal config that only specifies the family name as "Bitcount" (the root name of the entire superfamily). It does not reference sources or specify build parameters suitable for building the "Bitcount Grid Double Ink" variant individually.
+
+### Override config.yaml (in google/fonts)
+
+An override `config.yaml` was added to the google/fonts family directory on 2026-02-16 (commit `f6c68379a`):
+
+```yaml
+sources:
+  - sources/Bitcount_Template.designspace
+familyName: Bitcount Grid Double Ink
+buildVariable: true
+buildOTF: false
+```
+
+This override config properly references the designspace source file and sets the correct family name for this specific variant. Since an override config exists in the google/fonts family directory, the `config_yaml` field is correctly omitted from the METADATA.pb source block (google-fonts-sources auto-detects local overrides).
+
+## Onboarding Method
+
+The font was onboarded using **pre-built binaries** from the upstream repository, not built from sources. The METADATA.pb `files {}` mappings copy the pre-built TTF from `fonts/ttf/variable/` in the upstream repo. This is consistent with the Bitcount superfamily's approach -- the upstream repo maintains pre-built font files alongside the sources.
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| **Repository URL** | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| **Commit** | `89e7994f73b7f5ced80e7cf493d40be9e66ff82f` |
+| **Commit verified** | Yes (binary SHA-256 match confirmed) |
+| **Config** | Override config.yaml in google/fonts |
+| **config_yaml in METADATA.pb** | Correctly omitted (auto-detected) |
+| **Status** | complete |
+| **Confidence** | HIGH |
+
+All metadata is correct. The repository URL, commit hash, and file mappings are verified. The override config.yaml is properly set up for building from sources. No changes needed to METADATA.pb.
diff --git a/ofl/bitcountgridsingle/upstream_info.md b/ofl/bitcountgridsingle/upstream_info.md
new file mode 100644 (file)
index 0000000..4966d03
--- /dev/null
@@ -0,0 +1,118 @@
+# Investigation Report: Bitcount Grid Single
+
+**Family Name:** Bitcount Grid Single
+**Slug:** bitcountgridsingle
+**Family Directory:** ofl/bitcountgridsingle
+**Date Added:** 2025-01-10
+**Designer:** Petr van Blokland
+**Category:** DISPLAY
+**Status:** complete
+**Confidence:** HIGH
+**Model:** Claude Opus 4.6
+
+---
+
+## Source Block (Current METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "af0818eaeb3b0839806ea19134fc18f317cdcf5a"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountGridSingle[CRSV,ELSH,ELXP,slnt,wght].ttf"
+    dest_file: "BitcountGridSingle[CRSV,ELSH,ELXP,slnt,wght].ttf"
+  }
+  branch: "main"
+}
+```
+
+No `config_yaml` field is set in the source block. An override `config.yaml` exists in the google/fonts family directory.
+
+## Repository
+
+- **URL:** https://github.com/petrvanblokland/TYPETR-Bitcount
+- **Cached at:** upstream_repos/fontc_crater_cache/petrvanblokland/TYPETR-Bitcount
+- **Remote verified:** Yes, matches `https://github.com/petrvanblokland/TYPETR-Bitcount`
+
+## Commit Verification
+
+- **Referenced commit:** `af0818eaeb3b0839806ea19134fc18f317cdcf5a`
+- **Commit date:** 2025-01-13
+- **Commit message:** "Update fixAnchors.py"
+- **Author:** petrvanblokland (buro@petr.com)
+
+The referenced commit modified `fixAnchors.py` (a helper script), not font sources directly. The preceding commit `e81fcb91c` (2025-01-06, "Rebuild fonts") was the last commit that rebuilt the font binaries before this one.
+
+### Binary File Verification
+
+The SHA-256 hash of `BitcountGridSingle[CRSV,ELSH,ELXP,slnt,wght].ttf` matched exactly between the google/fonts directory and the upstream repo at the referenced commit:
+
+- **google/fonts hash:** `f28e3429f64e9f27b32c6819a7f7b0d58164cf2716fdb9c3df8a5b35187d41a4`
+- **Upstream at af0818e hash:** `f28e3429f64e9f27b32c6819a7f7b0d58164cf2716fdb9c3df8a5b35187d41a4`
+
+This confirms the binary file was taken directly from the upstream repo at the referenced commit without modification.
+
+## Onboarding History
+
+- **Onboarding commit in google/fonts:** `7f41474fc` (2025-01-17, "Bitcount Grid Single: Version 1.0 added")
+- **Author:** Yanone (post@yanone.de)
+- **Commit body:** "Taken from the upstream repo https://github.com/petrvanblokland/TYPETR-Bitcount at commit af0818eaeb3b0839806ea19134fc18f317cdcf5a. Resolves #5468"
+- **PR:** #8961, merged 2025-06-06 by Emma Marichal (@emmamarichal)
+- **Files added:** METADATA.pb, OFL.txt, font binary, ARTICLE.en_us.html
+
+The onboarding was performed by Yanone using gftools-packager, taking the pre-built binary directly from the upstream repository. The commit message explicitly referenced the upstream repo and commit hash.
+
+## Source Files
+
+The upstream repo contains gftools-builder compatible sources:
+
+- **Designspace:** `sources/Bitcount_Template.designspace` (template-style designspace with axes: wght, ELXP, ELSH, slnt, CRSV)
+- **UFO sources:** 15 UFO directories under `sources/ufo/`, including `Bitcount_Grid_Single.ufo` and `Bitcount_Grid_Single-Italic.ufo`
+- **Upstream config.yaml:** `sources/config.yaml` -- existed at the referenced commit but only contains `familyName: Bitcount` (the base family name, not the specific sub-family)
+
+## Override config.yaml
+
+An override `config.yaml` exists in the google/fonts family directory at `ofl/bitcountgridsingle/config.yaml`, added in commit `f6c68379a` (2026-02-16, "Add override config.yaml for 50 font families").
+
+Contents:
+```yaml
+sources:
+  - sources/Bitcount_Template.designspace
+familyName: Bitcount Grid Single
+buildVariable: true
+buildOTF: false
+```
+
+This override is necessary because the upstream `sources/config.yaml` uses `familyName: Bitcount` (the generic family name), while this specific family variant requires `familyName: Bitcount Grid Single`. The Bitcount project produces multiple font families from the same template designspace, each with a different family name. The override config correctly specifies the sub-family name and references the shared designspace.
+
+Since the override config.yaml exists in the google/fonts family directory, the `config_yaml` field is correctly omitted from the METADATA.pb source block (google-fonts-sources auto-detects local overrides).
+
+## Additional Upstream Activity
+
+Significant upstream development occurred after the referenced commit:
+- 2025-01-18: SampleSlider updates
+- 2025-01-31: JS animation demos
+- 2025-04-20 through 2025-04-26: Documentation/demo page moves
+- 2025-06-13: Position axes reworked (PR #35, axes now -100 to 100)
+- 2025-06-18 through 2025-06-19: Version bumps, rule fixes
+- 2025-09-05: Ligature fix (PR #37)
+
+These later changes have not been incorporated into google/fonts and would require a separate review process.
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| Commit | af0818eaeb3b0839806ea19134fc18f317cdcf5a |
+| Commit Date | 2025-01-13 |
+| Config | Override config.yaml in google/fonts |
+| Binary Match | YES (SHA-256 verified) |
+| Status | complete |
+| Confidence | HIGH |
+
+The source metadata for Bitcount Grid Single is complete and verified. The repository URL and commit hash are correct, the binary file matches exactly, and the override config.yaml properly specifies the sub-family name. No changes to METADATA.pb are needed.
diff --git a/ofl/bitcountgridsingleink/upstream_info.md b/ofl/bitcountgridsingleink/upstream_info.md
new file mode 100644 (file)
index 0000000..ff3b05d
--- /dev/null
@@ -0,0 +1,118 @@
+# Investigation Report: Bitcount Grid Single Ink
+
+**Family slug:** bitcountgridsingleink
+**Family directory:** `ofl/bitcountgridsingleink`
+**Date:** 2026-03-03
+**Model:** Claude Opus 4.6
+
+## Summary
+
+| Field | Value |
+|---|---|
+| **Repository URL** | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| **Commit** | `89e7994f73b7f5ced80e7cf493d40be9e66ff82f` |
+| **Config** | Override `config.yaml` in google/fonts (local) |
+| **Status** | Complete |
+| **Confidence** | HIGH |
+
+## METADATA.pb Source Block
+
+The METADATA.pb already contains a complete source block:
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "89e7994f73b7f5ced80e7cf493d40be9e66ff82f"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountGridSingleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+    dest_file: "BitcountGridSingleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+  }
+  branch: "main"
+}
+```
+
+No `config_yaml` field is set, which is correct because an override config.yaml exists locally in the google/fonts family directory.
+
+## Repository Verification
+
+- **Remote URL:** https://github.com/petrvanblokland/TYPETR-Bitcount (confirmed via `git remote -v`)
+- **Cached at:** `upstream_repos/fontc_crater_cache/petrvanblokland/TYPETR-Bitcount`
+- **Repo is clean:** Yes (no local modifications)
+
+## Commit Verification
+
+The referenced commit `89e7994f73b7f5ced80e7cf493d40be9e66ff82f` was verified:
+
+- **Author:** Simon Cozens (simon@simon-cozens.org)
+- **Date:** Fri Sep 5 10:53:08 2025 +0100
+- **Message:** "Merge pull request #37 from petrvanblokland/fix-ligatures"
+- **This is the latest commit in the repo** (HEAD of main). No newer commits exist after it.
+
+### Binary File Match
+
+The font binary at the referenced commit matches exactly what is in google/fonts:
+
+| Location | Size | SHA256 |
+|---|---|---|
+| Upstream @ `89e7994` | 276,416 bytes | `278c3a8da7298e23b9e93289c6a4efa9d92797aeb7d18f445d93dc0f3c08bb82` |
+| google/fonts | 276,416 bytes | `278c3a8da7298e23b9e93289c6a4efa9d92797aeb7d18f445d93dc0f3c08bb82` |
+
+Identical SHA256 hashes confirm the binary was taken directly from this commit.
+
+## Onboarding History
+
+This family was onboarded in two stages:
+
+1. **Version 1.0 (Jan 2025):** Committed by Yanone (post@yanone.de) on 2025-01-17, referencing upstream commit `af0818ea`. This resolved issue #5468.
+2. **Version 1.001 (Sep 2025):** Committed by Emma Marichal (bonjour@emmamarichal.fr) on 2025-09-05, referencing upstream commit `89e7994f`. Merged via PR #8962 (`gftools_packager_ofl_bitcountgridsingleink`).
+
+The current binary and METADATA.pb reflect the Version 1.001 update from PR #8962.
+
+## Source Files
+
+The upstream repo at commit `89e7994` contains:
+
+- **Designspace:** `sources/Bitcount_Template.designspace` -- a shared template designspace for the entire Bitcount family
+- **UFO sources:** `sources/ufo/` -- contains multiple UFO directories for different element layers
+- **Pre-built binaries:** `fonts/ttf/variable/` -- contains pre-compiled variable TTFs for all Bitcount variants
+- **Upstream config.yaml:** `sources/config.yaml` -- contains only `familyName: Bitcount` (minimal, for the base Bitcount family only)
+
+The upstream `sources/config.yaml` is insufficient for building "Bitcount Grid Single Ink" specifically, as it only declares `familyName: Bitcount`.
+
+## Override config.yaml
+
+A local override `config.yaml` exists in the google/fonts family directory with the following content:
+
+```yaml
+sources:
+  - sources/Bitcount_Template.designspace
+familyName: Bitcount Grid Single Ink
+buildVariable: true
+buildOTF: false
+```
+
+This override was added by commit `f6c68379a` ("Add override config.yaml for 50 font families") on 2026-02-16 as part of a batch operation to enable google-fonts-sources to discover this family as a fontc_crater build target.
+
+The override correctly:
+- Points to `sources/Bitcount_Template.designspace` (which exists at the referenced commit)
+- Sets the specific family name "Bitcount Grid Single Ink"
+- Configures variable font build only (no OTF)
+
+## Conclusions
+
+The source metadata for Bitcount Grid Single Ink is complete and accurate:
+
+1. **Repository URL** is correct and verified.
+2. **Commit hash** `89e7994f` is verified -- the binary at this commit matches google/fonts exactly (identical SHA256).
+3. **Override config.yaml** exists locally in google/fonts, so no `config_yaml` field is needed in METADATA.pb.
+4. **No action needed** -- all source metadata is in order.
+
+## Notes
+
+- This family is part of the larger Bitcount project by Petr van Blokland, which produces many variants (Bitcount, Bitcount Grid Single, Bitcount Grid Single Ink, Bitcount Grid Double, Bitcount Prop Single, etc.) from a shared template designspace.
+- The upstream repo has a `sources/config.yaml` but it only sets `familyName: Bitcount` and does not cover the other Bitcount variants. The override config in google/fonts addresses this gap for this specific variant.
+- The font was added to Google Fonts on 2025-01-10 (per `date_added` in METADATA.pb) and updated to Version 1.001 on 2025-09-05.
diff --git a/ofl/bitcountink/upstream_info.md b/ofl/bitcountink/upstream_info.md
new file mode 100644 (file)
index 0000000..c57dfbd
--- /dev/null
@@ -0,0 +1,133 @@
+# Investigation: Bitcount Ink
+
+- **Family name**: Bitcount Ink
+- **Slug**: bitcountink
+- **Designer**: Petr van Blokland
+- **Category**: Display
+- **Date added**: 2025-01-10
+- **Model**: Claude Opus 4.6
+
+## METADATA.pb Source Block (current)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "89e7994f73b7f5ced80e7cf493d40be9e66ff82f"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+    dest_file: "BitcountInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+  }
+  branch: "main"
+}
+```
+
+## Repository
+
+- **URL**: https://github.com/petrvanblokland/TYPETR-Bitcount
+- **Verified**: Yes, remote matches cached clone at `upstream_repos/fontc_crater_cache/petrvanblokland/TYPETR-Bitcount`
+- **Branch**: main
+- **Total commits**: 229
+- **Shared repo**: This repository contains sources for multiple Bitcount family variants (Ink, Grid Double, Grid Single, Prop Double, Prop Single, etc.)
+
+## Commit Verification
+
+- **Referenced commit**: `89e7994f73b7f5ced80e7cf493d40be9e66ff82f`
+- **Commit message**: "Merge pull request #37 from petrvanblokland/fix-ligatures"
+- **Commit date**: 2025-09-05 10:53:08 +0100
+- **Commit author**: Simon Cozens
+- **Is HEAD**: Yes, this commit is the current HEAD of the main branch
+- **Exists in repo**: Yes
+
+### Cross-verification
+
+The onboarding commit in google/fonts (`c020967`) was authored by Emma Marichal on 2025-09-05 with message "Bitcount Ink: Version 1.001 added". The commit body explicitly states:
+
+> Taken from the upstream repo https://github.com/petrvanblokland/TYPETR-Bitcount at commit https://github.com/petrvanblokland/TYPETR-Bitcount/commit/89e7994f73b7f5ced80e7cf493d40be9e66ff82f.
+
+The upstream commit `89e7994` was created the same day (2025-09-05) as the onboarding, just hours earlier. The font binary sizes match exactly:
+
+- **Upstream at 89e7994**: 314,728 bytes
+- **google/fonts**: 314,728 bytes
+
+This confirms that the binary was taken directly from the upstream repo at this exact commit. The font was a pre-built binary copied from `fonts/ttf/variable/` in the upstream repo, not compiled from sources via gftools-builder.
+
+The merge PR in google/fonts was #8963 (`gftools_packager_ofl_bitcountink`), merged by Emma Marichal on 2025-09-05.
+
+## google/fonts Commit History
+
+| Commit | Date | Author | Message |
+|--------|------|--------|---------|
+| `f6c6837` | 2026-02-16 | (batch) | Add override config.yaml for 50 font families |
+| `6053438` | 2025-09-05 | Emma Marichal | update OFL link |
+| `856b2ad` | 2025-09-05 | Emma Marichal | add article |
+| `c020967` | 2025-09-05 | Emma Marichal | Bitcount Ink: Version 1.001 added |
+
+## Source Files
+
+The upstream repository contains `.designspace` and `.ufo` sources at:
+
+- `sources/Bitcount_Template.designspace` -- a template designspace with 5 axes (wght, ELXP, ELSH, slnt, CRSV)
+- `sources/ufo/` -- 15 UFO directories for all Bitcount variants:
+  - `Bitcount_Grid_Double.ufo`, `Bitcount_Grid_Double-Italic.ufo`
+  - `Bitcount_Grid_Single.ufo`, `Bitcount_Grid_Single-Italic.ufo`
+  - `Bitcount_Mono_Double.ufo`, `Bitcount_Mono_Double-Italic.ufo`
+  - `Bitcount_Mono_Single.ufo`, `Bitcount_Mono_Single-Italic.ufo`
+  - `Bitcount_Prop_Double.ufo`, `Bitcount_Prop_Double-Italic.ufo`
+  - `Bitcount_Prop_Single.ufo`, `Bitcount_Prop_Single-Italic.ufo`
+  - `Bitcount-LayerElements.ufo`, `Bitcount-LayerElements-Italic.ufo`
+  - `Bitcount-VariationPixels.ufo`
+
+Pre-built font binaries exist at `fonts/ttf/variable/` (13 variable font files for all variants).
+
+## Config (Build Configuration)
+
+### Upstream config.yaml
+
+A `sources/config.yaml` file exists in the upstream repo at the referenced commit, but it contains only:
+
+```yaml
+familyName: Bitcount
+```
+
+This is a minimal config with a generic family name ("Bitcount") that does not specify "Bitcount Ink". It lacks the `sources` key pointing to the designspace file.
+
+### Override config.yaml (google/fonts)
+
+An override `config.yaml` exists at `ofl/bitcountink/config.yaml` in google/fonts (added in commit `f6c6837` on 2026-02-16):
+
+```yaml
+sources:
+  - sources/Bitcount_Template.designspace
+familyName: Bitcount Ink
+buildVariable: true
+buildOTF: false
+```
+
+This override correctly:
+- Points to the designspace source file (`sources/Bitcount_Template.designspace`)
+- Sets the specific family name "Bitcount Ink"
+- Enables variable font builds and disables OTF builds
+
+### config_yaml in METADATA.pb
+
+No `config_yaml` field is present in the METADATA.pb source block, which is correct. Since a local override `config.yaml` exists in the google/fonts family directory, google-fonts-sources auto-detects it and the field can be omitted.
+
+## Notes
+
+- The font was onboarded as a pre-built binary, not compiled from sources. The binary in google/fonts was copied directly from the upstream repo's `fonts/ttf/variable/` directory.
+- The font has 11 axes: CRSV, ELSH, ELXP, SZP1, SZP2, XPN1, XPN2, YPN1, YPN2, slnt, wght. However, the designspace template only defines 5 axes (wght, ELXP, ELSH, slnt, CRSV). The additional size and position axes (SZP1, SZP2, XPN1, XPN2, YPN1, YPN2) are likely added through the build process or the "Ink" layer compositing.
+- This is one of many Bitcount variants sharing the same upstream repository. The override config specifies "Bitcount Ink" as the family name to distinguish it from other variants.
+- There was a rebuild PR #9572 (merged 2025-06-19) titled "Update Bitcount Ink 1.001" but it affected different files (larger binary sizes, likely other Bitcount variants like Grid Double Ink or Prop Double Ink), not the Bitcount Ink font itself.
+
+## Status
+
+- **repository_url**: Correct
+- **commit**: Verified (matches onboarding, binary sizes identical, same-day commit)
+- **config**: Override config.yaml present in google/fonts (correct approach given upstream's minimal config)
+- **config_yaml field**: Correctly omitted from METADATA.pb
+- **Overall**: **COMPLETE**
+- **Confidence**: **HIGH**
diff --git a/ofl/bitcountpropdouble/upstream_info.md b/ofl/bitcountpropdouble/upstream_info.md
new file mode 100644 (file)
index 0000000..8806dca
--- /dev/null
@@ -0,0 +1,55 @@
+# Investigation: Bitcount Prop Double
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bitcount Prop Double |
+| Slug | bitcount-prop-double |
+| License Dir | ofl |
+| Repository URL | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| Commit Hash | af0818eaeb3b0839806ea19134fc18f317cdcf5a |
+| Config YAML | override config.yaml in google/fonts |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "af0818eaeb3b0839806ea19134fc18f317cdcf5a"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountPropDouble[CRSV,ELSH,ELXP,slnt,wght].ttf"
+    dest_file: "BitcountPropDouble[CRSV,ELSH,ELXP,slnt,wght].ttf"
+  }
+  branch: "main"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a source block with repository URL and commit hash. No `config_yaml` is set in METADATA.pb.
+
+Bitcount Prop Double is part of the initial batch of non-Ink Bitcount families added in January 2025. All non-Ink families were added in commit `bb009d354` ("Bitcount Grid Double: Version 1.0 added") which confirms the upstream commit `af0818eaeb3b0839806ea19134fc18f317cdcf5a`. This matches the METADATA.pb.
+
+Commit `af0818eaeb3b` is confirmed in the upstream repo cache at `upstream_repos/fontc_crater_cache/petrvanblokland/TYPETR-Bitcount`, dated January 13, 2025.
+
+The upstream `sources/config.yaml` only contains `familyName: Bitcount`. An override `config.yaml` is present in the google/fonts family directory (`ofl/bitcountpropdouble/config.yaml`):
+```yaml
+sources:
+  - sources/Bitcount_Template.designspace
+familyName: Bitcount Prop Double
+buildVariable: true
+buildOTF: false
+```
+
+Per policy, since an override `config.yaml` exists in the google/fonts directory, the `config_yaml` field is correctly omitted from METADATA.pb.
+
+## Conclusion
+
+The METADATA.pb source block is complete. The commit `af0818eaeb3b0839806ea19134fc18f317cdcf5a` is confirmed as the onboarding commit. An override `config.yaml` is present in the google/fonts family directory. No action needed.
diff --git a/ofl/bitcountpropdoubleink/upstream_info.md b/ofl/bitcountpropdoubleink/upstream_info.md
new file mode 100644 (file)
index 0000000..ea4d62d
--- /dev/null
@@ -0,0 +1,55 @@
+# Investigation: Bitcount Prop Double Ink
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bitcount Prop Double Ink |
+| Slug | bitcount-prop-double-ink |
+| License Dir | ofl |
+| Repository URL | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| Commit Hash | 89e7994f73b7f5ced80e7cf493d40be9e66ff82f |
+| Config YAML | override config.yaml in google/fonts |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "89e7994f73b7f5ced80e7cf493d40be9e66ff82f"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountPropDoubleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+    dest_file: "BitcountPropDoubleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+  }
+  branch: "main"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a source block with repository URL and commit hash. No `config_yaml` is set in METADATA.pb.
+
+Bitcount Prop Double Ink is part of the Ink variant family batch, all added from the same upstream commit `89e7994f73b7f5ced80e7cf493d40be9e66ff82f`. This is confirmed by checking the initial addition commits for other Ink families (e.g., `5d1b8f3e6` for Bitcount Grid Double Ink and `c020967df` for Bitcount Ink), all of which reference the same upstream commit hash.
+
+Commit `89e7994f73b7f5ced80e7cf493d40be9e66ff82f` is confirmed in the upstream repo cache at `upstream_repos/fontc_crater_cache/petrvanblokland/TYPETR-Bitcount`, dated September 5, 2025.
+
+The upstream `sources/config.yaml` only contains `familyName: Bitcount`. An override `config.yaml` is present in the google/fonts family directory (`ofl/bitcountpropdoubleink/config.yaml`):
+```yaml
+sources:
+  - sources/Bitcount_Template.designspace
+familyName: Bitcount Prop Double Ink
+buildVariable: true
+buildOTF: false
+```
+
+Per policy, since an override `config.yaml` exists in the google/fonts directory, the `config_yaml` field is correctly omitted from METADATA.pb.
+
+## Conclusion
+
+The METADATA.pb source block is complete. The commit `89e7994f73b7f5ced80e7cf493d40be9e66ff82f` is confirmed as the onboarding commit. An override `config.yaml` is present in the google/fonts family directory. No action needed.
diff --git a/ofl/bitcountpropsingle/upstream_info.md b/ofl/bitcountpropsingle/upstream_info.md
new file mode 100644 (file)
index 0000000..077abae
--- /dev/null
@@ -0,0 +1,55 @@
+# Investigation: Bitcount Prop Single
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bitcount Prop Single |
+| Slug | bitcount-prop-single |
+| License Dir | ofl |
+| Repository URL | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| Commit Hash | af0818eaeb3b0839806ea19134fc18f317cdcf5a |
+| Config YAML | override config.yaml in google/fonts |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "af0818eaeb3b0839806ea19134fc18f317cdcf5a"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountPropSingle[CRSV,ELSH,ELXP,slnt,wght].ttf"
+    dest_file: "BitcountPropSingle[CRSV,ELSH,ELXP,slnt,wght].ttf"
+  }
+  branch: "main"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a source block with repository URL and commit hash. No `config_yaml` is set in METADATA.pb.
+
+Bitcount Prop Single is part of the initial batch of non-Ink Bitcount families added in January 2025, all referencing upstream commit `af0818eaeb3b0839806ea19134fc18f317cdcf5a`. This is confirmed by the google/fonts commit `bb009d354` body which states all non-Ink families were taken from the upstream repo at this commit.
+
+Commit `af0818eaeb3b` is confirmed in the upstream repo cache at `upstream_repos/fontc_crater_cache/petrvanblokland/TYPETR-Bitcount`, dated January 13, 2025.
+
+The upstream `sources/config.yaml` only contains `familyName: Bitcount`. An override `config.yaml` is present in the google/fonts family directory (`ofl/bitcountpropsingle/config.yaml`):
+```yaml
+sources:
+  - sources/Bitcount_Template.designspace
+familyName: Bitcount Prop Single
+buildVariable: true
+buildOTF: false
+```
+
+Per policy, since an override `config.yaml` exists in the google/fonts directory, the `config_yaml` field is correctly omitted from METADATA.pb.
+
+## Conclusion
+
+The METADATA.pb source block is complete. The commit `af0818eaeb3b0839806ea19134fc18f317cdcf5a` is confirmed as the onboarding commit. An override `config.yaml` is present in the google/fonts family directory. No action needed.
diff --git a/ofl/bitcountpropsingleink/upstream_info.md b/ofl/bitcountpropsingleink/upstream_info.md
new file mode 100644 (file)
index 0000000..a9f8445
--- /dev/null
@@ -0,0 +1,53 @@
+# Investigation: Bitcount Prop Single Ink
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bitcount Prop Single Ink |
+| Slug | bitcount-prop-single-ink |
+| License Dir | ofl |
+| Repository URL | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| Commit Hash | 89e7994f73b7f5ced80e7cf493d40be9e66ff82f |
+| Config YAML | sources/config.yaml (upstream, but inadequate â€” needs correction) |
+| Status | needs_correction |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "89e7994f73b7f5ced80e7cf493d40be9e66ff82f"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountPropSingleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+    dest_file: "BitcountPropSingleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+  }
+  branch: "main"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a source block with repository URL, commit hash, and `config_yaml: "sources/config.yaml"`.
+
+The font was added via a series of commits. The initial version (`9cc1c52fc` or similar) used commit `af0818eaeb3b`. Commit `19cdcec59` (March 31, 2025, batch import from fontc_crater targets) updated the commit to `653fc48a72cf3b6a293f6fc207a770f537921889` and added `config_yaml: "sources/config.yaml"`. Commit `529068a1e` ("Bitcount Prop Single Ink: Version 1.001 added") then updated the commit to `89e7994f73b7f5ced80e7cf493d40be9e66ff82f` â€” confirmed by the commit body: "Taken from the upstream repo https://github.com/petrvanblokland/TYPETR-Bitcount at commit https://github.com/petrvanblokland/TYPETR-Bitcount/commit/89e7994f73b7f5ced80e7cf493d40be9e66ff82f."
+
+The commit `89e7994f73b7f5ced80e7cf493d40be9e66ff82f` is confirmed valid (September 5, 2025).
+
+**Problem**: The `config_yaml: "sources/config.yaml"` refers to the upstream `sources/config.yaml`, which only contains `familyName: Bitcount` â€” an incomplete gftools-builder configuration. Unlike the other Bitcount Ink families (Grid Double Ink, Grid Single Ink, Ink, Prop Double Ink), there is no local override `config.yaml` in the `ofl/bitcountpropsingleink/` directory within google/fonts.
+
+This is inconsistent with all other Bitcount Ink families, which either have a local override `config.yaml` and no `config_yaml` in METADATA.pb, or vice versa. The current state likely causes build failures when attempting to rebuild from source.
+
+The fix would be either:
+1. Remove `config_yaml` from METADATA.pb and add a proper override `config.yaml` to the google/fonts family directory (consistent with other Bitcount Ink families), or
+2. Fix the upstream `sources/config.yaml` to contain proper build instructions.
+
+## Conclusion
+
+The commit hash is correct. However, `config_yaml: "sources/config.yaml"` points to an inadequate upstream config that only sets `familyName: Bitcount`. This family needs correction: a proper override `config.yaml` should be added to the google/fonts directory, and the `config_yaml` field should be removed from METADATA.pb to match the pattern used by all other Bitcount Ink families.
diff --git a/ofl/bitcountsingle/upstream_info.md b/ofl/bitcountsingle/upstream_info.md
new file mode 100644 (file)
index 0000000..04d83bc
--- /dev/null
@@ -0,0 +1,55 @@
+# Investigation: Bitcount Single
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bitcount Single |
+| Slug | bitcount-single |
+| License Dir | ofl |
+| Repository URL | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| Commit Hash | af0818eaeb3b0839806ea19134fc18f317cdcf5a |
+| Config YAML | override config.yaml in google/fonts |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "af0818eaeb3b0839806ea19134fc18f317cdcf5a"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountSingle[CRSV,ELSH,ELXP,slnt,wght].ttf"
+    dest_file: "BitcountSingle[CRSV,ELSH,ELXP,slnt,wght].ttf"
+  }
+  branch: "main"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a source block with repository URL and commit hash. No `config_yaml` is set in METADATA.pb.
+
+Bitcount Single is part of the initial batch of non-Ink Bitcount families added in January 2025. All non-Ink families were added at the same upstream commit `af0818eaeb3b0839806ea19134fc18f317cdcf5a`, confirmed by the google/fonts commit `bb009d354` body.
+
+Commit `af0818eaeb3b` is confirmed valid in the upstream repo cache at `upstream_repos/fontc_crater_cache/petrvanblokland/TYPETR-Bitcount`, dated January 13, 2025.
+
+The upstream `sources/config.yaml` only contains `familyName: Bitcount`. An override `config.yaml` is present in the google/fonts family directory (`ofl/bitcountsingle/config.yaml`):
+```yaml
+sources:
+  - sources/Bitcount_Template.designspace
+familyName: Bitcount Single
+buildVariable: true
+buildOTF: false
+```
+
+Per policy, since an override `config.yaml` exists in the google/fonts directory, the `config_yaml` field is correctly omitted from METADATA.pb.
+
+## Conclusion
+
+The METADATA.pb source block is complete. The commit `af0818eaeb3b0839806ea19134fc18f317cdcf5a` is confirmed as the onboarding commit. An override `config.yaml` is present in the google/fonts family directory. No action needed.
diff --git a/ofl/bitcountsingleink/upstream_info.md b/ofl/bitcountsingleink/upstream_info.md
new file mode 100644 (file)
index 0000000..9809c7b
--- /dev/null
@@ -0,0 +1,55 @@
+# Investigation: Bitcount Single Ink
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bitcount Single Ink |
+| Slug | bitcount-single-ink |
+| License Dir | ofl |
+| Repository URL | https://github.com/petrvanblokland/TYPETR-Bitcount |
+| Commit Hash | 89e7994f73b7f5ced80e7cf493d40be9e66ff82f |
+| Config YAML | sources/config.yaml (upstream, but inadequate â€” needs correction) |
+| Status | needs_correction |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/petrvanblokland/TYPETR-Bitcount"
+  commit: "89e7994f73b7f5ced80e7cf493d40be9e66ff82f"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/variable/BitcountSingleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+    dest_file: "BitcountSingleInk[CRSV,ELSH,ELXP,SZP1,SZP2,XPN1,XPN2,YPN1,YPN2,slnt,wght].ttf"
+  }
+  branch: "main"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a source block with repository URL, commit hash, and `config_yaml: "sources/config.yaml"`.
+
+The history shows the initial addition at commit `9cc1c52fc`, then a batch update by commit `19cdcec59` (March 31, 2025, fontc_crater batch) which added `config_yaml: "sources/config.yaml"` and changed the commit hash to `653fc48a72cf3b6a293f6fc207a770f537921889`. Commit `cdcbeee55` ("Bitcount Single Ink: Version 1.001 added") then updated the commit hash to `89e7994f73b7f5ced80e7cf493d40be9e66ff82f`, confirmed by its body: "Taken from the upstream repo https://github.com/petrvanblokland/TYPETR-Bitcount at commit https://github.com/petrvanblokland/TYPETR-Bitcount/commit/89e7994f73b7f5ced80e7cf493d40be9e66ff82f."
+
+The commit `89e7994f73b7f5ced80e7cf493d40be9e66ff82f` is confirmed valid (September 5, 2025).
+
+**Problem**: The `config_yaml: "sources/config.yaml"` refers to the upstream `sources/config.yaml`, which only contains `familyName: Bitcount` â€” an incomplete gftools-builder configuration. Unlike the other Bitcount Ink families (Grid Double Ink, Grid Single Ink, Ink, Prop Double Ink), there is no local override `config.yaml` in the `ofl/bitcountsingleink/` directory within google/fonts.
+
+This is the same issue as Bitcount Prop Single Ink. Both families are inconsistent with the other Bitcount Ink families which have proper override `config.yaml` files in google/fonts and no `config_yaml` set in METADATA.pb.
+
+The fix would be to:
+1. Remove `config_yaml` from METADATA.pb, and
+2. Add a proper override `config.yaml` to the `ofl/bitcountsingleink/` directory in google/fonts
+
+(Consistent with the pattern used by all other Bitcount Ink families.)
+
+## Conclusion
+
+The commit hash is correct. However, `config_yaml: "sources/config.yaml"` points to an inadequate upstream config that only sets `familyName: Bitcount`. This family needs correction: a proper override `config.yaml` should be added to the google/fonts directory, and the `config_yaml` field should be removed from METADATA.pb, matching the pattern used by the other Bitcount Ink families.
diff --git a/ofl/bitter/upstream_info.md b/ofl/bitter/upstream_info.md
new file mode 100644 (file)
index 0000000..40b7488
--- /dev/null
@@ -0,0 +1,84 @@
+# Investigation Report: Bitter
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bitter |
+| Designer | Sol Matas |
+| License | OFL |
+| Date Added | 2011-12-19 |
+| Repository URL | https://github.com/solmatas/BitterPro |
+| Commit | `3238d7ae2cb0b564b81225d68b3c893a40b1d3ce` |
+| Branch | master |
+| Config YAML | `sources/config.yaml` (upstream) |
+| Status | complete |
+
+## How URL Found
+
+The repository URL is documented in the METADATA.pb `source {}` block. It also appears in the copyright string: "Copyright 2011 The Bitter Project Authors (https://github.com/solmatas/BitterPro)". The URL was populated in google/fonts through commit `f7455d788` ("Populate source.repository_url").
+
+## How Commit Determined
+
+The commit hash `3238d7ae2cb0b564b81225d68b3c893a40b1d3ce` is explicitly stated in the most recent update commit (ae60d31b4) by Yanone (2025-02-12):
+
+> "Taken from the upstream repo https://github.com/solmatas/BitterPro at commit https://github.com/solmatas/BitterPro/commit/3238d7ae2cb0b564b81225d68b3c893a40b1d3ce."
+
+This updated the font from Version 3.020 to Version 3.021.
+
+### Cross-verification
+
+The commit was verified in the upstream repo. The cached repo at `upstream_repos/fontc_crater_cache/solmatas/BitterPro/` is a shallow clone with only this one commit visible (`3238d7a New binaries`). The commit message "New binaries" is consistent with the font binary files being updated.
+
+Previous update was at commit `cd40ea8b9d4cf7f5f11bc62a156136258465dc9e` (Version 3.020, onboarded 2024-05-16 by Yanone).
+
+## Config YAML Status
+
+The upstream repo has `sources/config.yaml` at the recorded commit with proper gftools-builder configuration:
+
+```yaml
+sources:
+  - Bitter.glyphs
+  - Bitter-Italic.glyphs
+axisOrder:
+  - wght
+  - ital
+familyName: "Bitter"
+flattenComponents: true
+stat:
+  ...
+buildVariable: True
+buildOTF: false
+buildTTF: false
+buildWebfont: false
+```
+
+This is a complete and proper config.yaml that references the Glyphs source files (`Bitter.glyphs` and `Bitter-Italic.glyphs`) and configures variable font building. No override config is needed. The METADATA.pb correctly references `config_yaml: "sources/config.yaml"`.
+
+## Verification
+
+- **Upstream repo accessible**: Yes, cached at `upstream_repos/fontc_crater_cache/solmatas/BitterPro/` (shallow clone)
+- **Commit exists in repo**: Yes - `3238d7a New binaries`
+- **Font files at commit**: Yes - `fonts/variable/Bitter[wght].ttf` and `fonts/variable/Bitter-Italic[wght].ttf`
+- **Source files at commit**: Yes - `sources/Bitter.glyphs` and `sources/Bitter-Italic.glyphs`
+- **Config YAML**: Exists at `sources/config.yaml` with proper gftools-builder configuration
+
+## Confidence Level
+
+**HIGH** - The commit hash is explicitly documented in the gftools-packager update commit message. Config.yaml is properly configured with complete build settings.
+
+## Open Questions
+
+None. All source data is verified.
+
+## Notes
+
+- Bitter has a long history in Google Fonts, dating back to 2011. It has gone through many updates.
+- The font binary files were taken from the upstream repo's pre-built fonts (`fonts/variable/`), matching the source file mappings in METADATA.pb.
+- The upstream repo is named "BitterPro" but the font family shipped is simply "Bitter".
+- Key update history in google/fonts:
+  - 2016: v1.002 hotfix
+  - 2018: v2.001 added
+  - 2019: v2.002 added
+  - 2024: v3.020 added
+  - 2025: v3.021 added (current)
diff --git a/ofl/bizudgothic/upstream_info.md b/ofl/bizudgothic/upstream_info.md
new file mode 100644 (file)
index 0000000..5550ce1
--- /dev/null
@@ -0,0 +1,62 @@
+# BIZ UDGothic
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Type Bank Co., Morisawa Inc.
+**METADATA.pb path**: `ofl/bizudgothic/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/googlefonts/morisawa-biz-ud-gothic |
+| Commit | `38953aa0afd6937b9caa899e18f4550db7298d69` |
+| Config YAML | Override in google/fonts (`ofl/bizudgothic/config.yaml`) |
+| Branch | main |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/googlefonts/morisawa-biz-ud-gothic` is recorded in the METADATA.pb `source` block and confirmed by the gftools-packager commit messages in google/fonts. The upstream repo is under the googlefonts GitHub org and is publicly accessible.
+
+## How the Commit Hash Was Identified
+
+The commit `38953aa0afd6937b9caa899e18f4550db7298d69` is recorded in the METADATA.pb `source` block and cross-verified against multiple sources:
+
+1. **gftools-packager message**: The google/fonts commit `01ac47e0b` (PR #4579, merged 2022-05-11) explicitly states: "BIZ UDGothic Version 1.05 taken from the upstream repo https://github.com/googlefonts/morisawa-biz-ud-gothic at commit 38953aa0afd6937b9caa899e18f4550db7298d69."
+2. **PR timeline**: PR #4579 was created by aaronbell on 2022-05-03 and merged on 2022-05-11. The upstream commit `38953aa` is dated 2022-05-02 (one day before the PR).
+3. **Upstream history**: Commit `38953aa` is a merge commit ("Merge pull request #9 from aaronbell/main -- Extended character set and Unicode updates") and was the HEAD of the upstream repo at the time of onboarding.
+4. **Post-onboarding commits**: The upstream repo has newer commits (up to `18934af` from Sep 2023), but those were used for the separate BIZ UDPGothic v1.051 update. The BIZ UDGothic binaries were NOT updated after v1.05.
+
+The BIZ UDGothic binaries in google/fonts were last modified in PR #4579 (v1.05) and have not been updated since, confirming `38953aa` as the correct and current onboarding commit.
+
+## How Config YAML Was Resolved
+
+The upstream repo does **not** have a `config.yaml` file. It uses a custom `sources/build.py` script for font compilation. An override `config.yaml` was created in the google/fonts family directory at `ofl/bizudgothic/config.yaml`:
+
+```yaml
+sources:
+  - sources/extensions/BIZ-UDGothicExt.glyphs
+familyName: BIZ UDGothic
+buildStatic: true
+buildOTF: false
+```
+
+This override was added in commit `f6c68379a` ("Add override config.yaml for 50 font families"). Because the override exists in the google/fonts directory, the `config_yaml` field is correctly omitted from the METADATA.pb source block (google-fonts-sources auto-detects local overrides).
+
+## Verification
+
+- Commit exists in upstream repo: Yes (`38953aa0afd6937b9caa899e18f4550db7298d69`)
+- Commit date: 2022-05-02 13:38:49 -0700
+- Commit message: "Merge pull request #9 from aaronbell/main -- Extended character set and Unicode updates"
+- Commit author: Aaron (aaronbell)
+- Source files at commit: `sources/build.py`, `sources/extensions/BIZ-UDGothicExt.glyphs`, `sources/extensions/BIZ-UDGothic-BoldExt.glyphs`, `sources/extensions/BIZ-UDPGothicExt.glyphs`, `sources/extensions/BIZ-UDPGothic-BoldExt.glyphs`, plus OTF/TTF reference files
+- Repository accessible: Yes
+- Is HEAD of upstream: No (latest is `18934af` from Sep 2023, used for BIZ UDPGothic update)
+
+## Confidence
+
+**High**: The commit hash is explicitly recorded in both the METADATA.pb and the gftools-packager message. The PR timeline (upstream commit May 2, google/fonts PR created May 3) is fully consistent. Aaron Bell authored both the upstream commit and the google/fonts PR.
+
+## Open Questions
+
+None. All data is consistent and well-documented.
diff --git a/ofl/bizudmincho/upstream_info.md b/ofl/bizudmincho/upstream_info.md
new file mode 100644 (file)
index 0000000..91d3199
--- /dev/null
@@ -0,0 +1,60 @@
+# BIZ UDMincho
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Type Bank Co., Morisawa Inc.
+**METADATA.pb path**: `ofl/bizudmincho/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/googlefonts/morisawa-biz-ud-mincho |
+| Commit | `c30a6221b1f3d09afae9137ffe73c7cbec649947` |
+| Config YAML | Override in google/fonts (`ofl/bizudmincho/config.yaml`) |
+| Branch | main |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/googlefonts/morisawa-biz-ud-mincho` is recorded in the METADATA.pb `source` block and confirmed by the gftools-packager commit messages in google/fonts. The upstream repo is under the googlefonts GitHub org and is publicly accessible. Note: the copyright string and METADATA.pb both use this URL.
+
+## How the Commit Hash Was Identified
+
+The commit `c30a6221b1f3d09afae9137ffe73c7cbec649947` is recorded in the METADATA.pb `source` block and cross-verified:
+
+1. **gftools-packager message**: The google/fonts commit `63833b7d1` (PR #5697, merged 2022-12-15) explicitly states: "BIZ UDMincho Version 1.06 taken from the upstream repo https://github.com/googlefonts/morisawa-biz-ud-mincho.git at commit c30a6221b1f3d09afae9137ffe73c7cbec649947."
+2. **PR timeline**: PR #5697 was created by aaronbell on 2022-12-09 and merged on 2022-12-15. The upstream commit `c30a622` is dated 2022-12-06 (3 days before the PR).
+3. **Upstream history**: Commit `c30a622` is a merge commit ("Merge pull request #17 from aaronbell/main -- Updating requirements document") and is the **HEAD** of the upstream repo -- no further commits have been made since.
+4. **Same PR for two families**: PR #5697 also updated BIZ UDPMincho, both using the same upstream commit `c30a622` from the shared morisawa-biz-ud-mincho repository.
+
+## How Config YAML Was Resolved
+
+The upstream repo does **not** have a `config.yaml` file. It uses a custom `sources/build.py` script for font compilation. An override `config.yaml` was created in the google/fonts family directory at `ofl/bizudmincho/config.yaml`:
+
+```yaml
+sources:
+  - sources/extensions/BIZ-UDMinchoExt.glyphs
+familyName: BIZ UDMincho
+buildStatic: true
+buildOTF: false
+```
+
+This override was added in commit `f6c68379a` ("Add override config.yaml for 50 font families"). Because the override exists in the google/fonts directory, the `config_yaml` field is correctly omitted from the METADATA.pb source block.
+
+## Verification
+
+- Commit exists in upstream repo: Yes (`c30a6221b1f3d09afae9137ffe73c7cbec649947`)
+- Commit date: 2022-12-06 20:17:38 -0800
+- Commit message: "Merge pull request #17 from aaronbell/main -- Updating requirements document"
+- Commit author: Aaron (aaronbell)
+- Source files at commit: `sources/build.py`, `sources/extensions/BIZ-UDMinchoExt.glyphs`, `sources/extensions/BIZ-UDMincho-HeavyExt.glyphs`, `sources/extensions/BIZ-UDPMinchoExt.glyphs`, `sources/extensions/BIZ-UDPMincho-HeavyExt.glyphs`, plus OTF/TTF reference files
+- Repository accessible: Yes
+- Is HEAD of upstream: Yes (no commits since Dec 2022)
+
+## Confidence
+
+**High**: The commit hash is explicitly recorded in both the METADATA.pb and the gftools-packager message. The PR timeline is fully consistent (upstream commit Dec 6, google/fonts PR created Dec 9). Aaron Bell authored both the upstream work and the google/fonts PR. The commit is the HEAD of the upstream repo, meaning no additional upstream work has occurred since onboarding.
+
+## Open Questions
+
+None. All data is consistent and well-documented.
diff --git a/ofl/bizudpgothic/upstream_info.md b/ofl/bizudpgothic/upstream_info.md
new file mode 100644 (file)
index 0000000..3140557
--- /dev/null
@@ -0,0 +1,61 @@
+# BIZ UDPGothic
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Type Bank Co., Morisawa Inc.
+**METADATA.pb path**: `ofl/bizudpgothic/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/googlefonts/morisawa-biz-ud-gothic |
+| Commit | `18934af56b9c003ca58c54bffbf226848cb11032` |
+| Config YAML | Override in google/fonts (`ofl/bizudpgothic/config.yaml`) |
+| Branch | main |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/googlefonts/morisawa-biz-ud-gothic` is recorded in the METADATA.pb `source` block. Note that BIZ UDPGothic shares the same upstream repository as BIZ UDGothic -- both are proportional and fixed-width variants built from sources in the same repo. The copyright string also references this URL.
+
+## How the Commit Hash Was Identified
+
+The commit `18934af56b9c003ca58c54bffbf226848cb11032` is recorded in the METADATA.pb `source` block and cross-verified:
+
+1. **gftools-packager message**: The google/fonts commit `7da950f21` (PR #6664, merged 2023-09-07) explicitly states: "BIZ UDPGothic Version 1.051 taken from the upstream repo https://github.com/googlefonts/morisawa-biz-ud-gothic at commit 18934af56b9c003ca58c54bffbf226848cb11032."
+2. **PR timeline**: PR #6664 was created by aaronbell on 2023-09-06 and merged on 2023-09-07. The upstream commit `18934af` is dated 2023-09-06 (same day as the PR).
+3. **Upstream history**: Commit `18934af` is a merge commit ("Merge pull request #23 from aaronbell/main -- Update to the UDPGothic Regular / Bold") and is the **HEAD** of the upstream repo -- no further commits have been made since.
+4. **Relationship to BIZ UDGothic**: BIZ UDGothic uses an earlier commit (`38953aa`) from the same repo. The `18934af` commit updated the UDPGothic font files but the UDGothic binaries were NOT re-onboarded at that time. This is why the two families reference different commits from the same repo.
+5. **Separate update**: This was a standalone update (v1.051) separate from the initial v1.05 onboarding in PR #4579, which had both families at commit `38953aa`.
+
+## How Config YAML Was Resolved
+
+The upstream repo does **not** have a `config.yaml` file at either commit. It uses a custom `sources/build.py` script for font compilation. An override `config.yaml` was created in the google/fonts family directory at `ofl/bizudpgothic/config.yaml`:
+
+```yaml
+sources:
+  - sources/extensions/BIZ-UDPGothicExt.glyphs
+familyName: BIZ UDPGothic
+buildStatic: true
+buildOTF: false
+```
+
+This override was added in commit `f6c68379a` ("Add override config.yaml for 50 font families"). Because the override exists in the google/fonts directory, the `config_yaml` field is correctly omitted from the METADATA.pb source block.
+
+## Verification
+
+- Commit exists in upstream repo: Yes (`18934af56b9c003ca58c54bffbf226848cb11032`)
+- Commit date: 2023-09-06 14:08:09 -0700
+- Commit message: "Merge pull request #23 from aaronbell/main -- Update to the UDPGothic Regular / Bold"
+- Commit author: Aaron (aaronbell)
+- Source files at commit: `sources/build.py`, `sources/extensions/BIZ-UDPGothicExt.glyphs`, `sources/extensions/BIZ-UDPGothic-BoldExt.glyphs`, `sources/extensions/BIZ-UDGothicExt.glyphs`, `sources/extensions/BIZ-UDGothic-BoldExt.glyphs`, plus OTF/TTF reference files
+- Repository accessible: Yes
+- Is HEAD of upstream: Yes (no commits since Sep 2023)
+
+## Confidence
+
+**High**: The commit hash is explicitly recorded in both the METADATA.pb and the gftools-packager message. The PR was created on the same day as the upstream commit, both by Aaron Bell. The commit is the HEAD of the upstream repo, confirming no additional upstream work has occurred.
+
+## Open Questions
+
+None. All data is consistent and well-documented.
diff --git a/ofl/bizudpmincho/upstream_info.md b/ofl/bizudpmincho/upstream_info.md
new file mode 100644 (file)
index 0000000..3f6a34e
--- /dev/null
@@ -0,0 +1,52 @@
+# BIZ UDPMincho
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Type Bank Co., Morisawa Inc.
+**METADATA.pb path**: `ofl/bizudpmincho/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/googlefonts/morisawa-biz-ud-mincho |
+| Commit | `c30a6221b1f3d09afae9137ffe73c7cbec649947` |
+| Config YAML | Override in google/fonts (`ofl/bizudpmincho/config.yaml`) |
+| Branch | main |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/googlefonts/morisawa-biz-ud-mincho` is documented in the METADATA.pb `source` block and is also referenced in the copyright field of the font entries. The google/fonts commit body (PR #5697) explicitly states the font was taken from this upstream repo. The same URL appears in the copyright strings in METADATA.pb.
+
+## How the Commit Hash Was Identified
+
+The commit `c30a6221b1f3d09afae9137ffe73c7cbec649947` was referenced in google/fonts PR #5697, merged on 2022-12-15. The PR body states: "BIZ UDPMincho Version 1.06 taken from the upstream repo [...] at commit c30a6221b1f3d09afae9137ffe73c7cbec649947."
+
+Cross-verification:
+- The upstream commit is dated 2022-12-06 (a merge of PR #17 from aaronbell/main).
+- The google/fonts merge happened on 2022-12-15, 9 days later -- reasonable for review and onboarding.
+- This commit is the HEAD of the upstream repo -- no subsequent commits exist, which means no work has happened upstream since onboarding.
+- The gftools-packager message in both the PR body and the merged commit body reference the same hash, providing strong consistency.
+
+## How Config YAML Was Resolved
+
+The upstream repository does **not** have a `config.yaml` file at any commit (including HEAD). Instead, this font uses a custom `sources/build.py` script and a `Makefile` for building. The build process merges extension glyphs into base TTFs provided directly by Morisawa.
+
+Because there is no `config.yaml` in the upstream repo, an override `config.yaml` was added in the google/fonts family directory at `ofl/bizudpmincho/config.yaml` (commit `f6c68379a`). This override config references `sources/extensions/BIZ-UDPMinchoExt.glyphs` as the source. With the override in place, the `config_yaml` field is correctly omitted from the METADATA.pb `source` block.
+
+## Verification
+
+- Commit exists in upstream repo: Yes
+- Commit date: 2022-12-06 20:17:38 -0800
+- Commit message: "Merge pull request #17 from aaronbell/main"
+- Source files at commit: `sources/extensions/BIZ-UDPMinchoExt.glyphs`, `sources/extensions/BIZ-UDPMincho-HeavyExt.glyphs`, `sources/build.py`, `fonts/ttf/BIZUDPMincho-Regular.ttf`, `fonts/ttf/BIZUDPMincho-Bold.ttf`
+- Commit is HEAD of upstream main branch: Yes (no newer commits)
+- Font files are pre-built TTFs copied directly from upstream `fonts/ttf/` directory
+
+## Confidence
+
+**High**: The commit hash is consistently referenced in the PR body, the merged commit message, and the METADATA.pb. The commit is the latest in the upstream repo. The override config.yaml in google/fonts correctly addresses the absence of a config.yaml in the upstream repo.
+
+## Open Questions
+
+None. This family uses a non-standard build process (custom Python script merging extension glyphs into base TTFs), which is why the source block references pre-built TTFs rather than source files compiled via gftools-builder. The override config.yaml provides a standard gftools-builder configuration for fontc_crater compatibility.
diff --git a/ofl/blackandwhitepicture/upstream_info.md b/ofl/blackandwhitepicture/upstream_info.md
new file mode 100644 (file)
index 0000000..4bc88eb
--- /dev/null
@@ -0,0 +1,36 @@
+# Investigation: Black And White Picture
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Black And White Picture |
+| Slug | black-and-white-picture |
+| License Dir | ofl |
+| Repository URL | unknown |
+| Commit Hash | unknown |
+| Config YAML | unknown |
+| Status | missing_url |
+| Confidence | LOW |
+
+## Source Data (METADATA.pb)
+
+```
+No source block
+```
+
+## Investigation
+
+The METADATA.pb has no source block at all â€” no repository URL, no commit hash, no config_yaml.
+
+The font was added to google/fonts in commit `16680f868` (March 13, 2018, PR #1459, "korean families r01: added"). This was a bulk addition of multiple Korean font families with no upstream reference information included.
+
+The copyright string in METADATA.pb reads: "Copyright (c) 1992-2018 AsiaSoft Inc. Seoul Korea All Rights Reserved." This indicates the font was created by AsiaSoft Inc., a commercial Korean type foundry. No GitHub or publicly accessible source repository was found â€” a search of the upstream repos cache at `upstream_repos/fontc_crater_cache/` found no AsiaSoft-related repositories.
+
+The google/fonts family directory (`ofl/blackandwhitepicture/`) contains only the TTF binary, DESCRIPTION, METADATA.pb, and OFL.txt â€” no upstream.yaml, no source references of any kind.
+
+Given that this is a commercial Korean foundry font from 1992-2018, it is likely that the source files (if any exist in a form usable for rebuilding) are proprietary to AsiaSoft Inc. No public upstream repository has been identified.
+
+## Conclusion
+
+No upstream source information is available. The font comes from AsiaSoft Inc., a commercial Korean type foundry, and no public repository has been found. This family likely cannot have a source block added without direct contact with AsiaSoft Inc. Status is `missing_url` with LOW confidence that a public upstream repo exists.
diff --git a/ofl/blackopsone/upstream_info.md b/ofl/blackopsone/upstream_info.md
new file mode 100644 (file)
index 0000000..d405df0
--- /dev/null
@@ -0,0 +1,55 @@
+# Investigation: Black Ops One
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Black Ops One |
+| Slug | black-ops-one |
+| License Dir | ofl |
+| Repository URL | https://github.com/SorkinType/Black-Ops |
+| Commit Hash | c955bed3517ad3d8606a8b0105d27538309fb70d |
+| Config YAML | override config.yaml in google/fonts |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/SorkinType/Black-Ops"
+  commit: "c955bed3517ad3d8606a8b0105d27538309fb70d"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/BlackOpsOne-Regular.ttf"
+    dest_file: "BlackOpsOne-Regular.ttf"
+  }
+  branch: "main"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a source block with repository URL and commit hash. No `config_yaml` is set in METADATA.pb.
+
+The font was last updated in google/fonts commit `d50a0d29b` (PR #4995), titled "Black Ops One: Version 1.004; ttfautohint (v1.8.4.7-5d5b) added". The commit body confirms: "Black Ops One Version 1.004; ttfautohint (v1.8.4.7-5d5b) taken from the upstream repo https://github.com/SorkinType/Black-Ops at commit https://github.com/SorkinType/Black-Ops/commit/c955bed3517ad3d8606a8b0105d27538309fb70d." This matches the commit hash in the current METADATA.pb.
+
+Commit `c955bed3517ad3d8606a8b0105d27538309fb70d` is confirmed in the upstream repo cache at `upstream_repos/fontc_crater_cache/SorkinType/Black-Ops` (dated July 26, 2022, merging PR #1 "Black Ops Update" from emmamarichal/main).
+
+The upstream `sources/` directory at commit `c955bed` contains only `BlackOpsOne.glyphs` â€” no `config.yaml`. However, an override `config.yaml` is present in the google/fonts family directory (`ofl/blackopsone/config.yaml`):
+```yaml
+sources:
+  - sources/BlackOpsOne.glyphs
+familyName: Black Ops One
+buildStatic: true
+buildOTF: false
+```
+
+Per policy, since an override `config.yaml` exists in the google/fonts directory, the `config_yaml` field is correctly omitted from METADATA.pb. The google-fonts-sources tool auto-detects the local override.
+
+## Conclusion
+
+The METADATA.pb source block is complete. The commit `c955bed3517ad3d8606a8b0105d27538309fb70d` is confirmed as the onboarding commit. An override `config.yaml` is present in the google/fonts family directory. No action needed.
diff --git a/ofl/blaka/upstream_info.md b/ofl/blaka/upstream_info.md
new file mode 100644 (file)
index 0000000..f20d15d
--- /dev/null
@@ -0,0 +1,59 @@
+# Blaka
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Mohamed Gaber
+**METADATA.pb path**: `ofl/blaka/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/Gue3bara/Blaka |
+| Commit | `7f264eee862d3e94c2cb6a728c6429c2f3b9adc3` |
+| Config YAML | `sources/blakaregular.yaml` |
+| Branch | `master` |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/Gue3bara/Blaka` was already present in the METADATA.pb `source { repository_url }` field. It is confirmed by the copyright string ("Copyright 2019 The Blaka Project Authors (https://github.com/Gue3bara/Blaka)") and by multiple gftools-packager commits in google/fonts. The initial onboarding commit `0a949b872` (PR #4555, 2022-04-27, by Yanone) references this URL, as does the latest update commit `bc779ce70` (2023-09-29, also by Yanone).
+
+## How the Commit Hash Was Identified
+
+The commit hash `7f264eee862d3e94c2cb6a728c6429c2f3b9adc3` is recorded in METADATA.pb. It matches the gftools-packager commit `bc779ce70` in google/fonts, which states: "Blaka Version 1.003; ttfautohint (v1.8.4.7-5d5b) taken from the upstream repo https://github.com/Gue3bara/Blaka at commit https://github.com/Gue3bara/Blaka/commit/7f264eee862d3e94c2cb6a728c6429c2f3b9adc3."
+
+This is the latest update (v1.003), superseding the initial onboarding commit `c3cbce1cfcc77b06bdf2b68a2ed098ed10c7cf75` (v1.001, from PR #4555). The commit exists in the upstream repo with message "Bumped version to 1.003 across all fonts" and is the HEAD of the repository.
+
+## How Config YAML Was Resolved
+
+The config file `sources/blakaregular.yaml` exists in the upstream repository at the recorded commit. It contains:
+
+```yaml
+sources:
+  - temp/Blaka-Regular.glyphs
+outputDir: "../fonts/regular"
+buildStatic: true
+buildVariable: false
+buildTTF: true
+buildOTF: false
+buildWebfont: false
+```
+
+The `config_yaml` field in METADATA.pb correctly points to `sources/blakaregular.yaml`. No override config.yaml exists in the google/fonts family directory.
+
+## Verification
+
+- Commit exists in upstream repo: Yes
+- Commit date: Latest commit (HEAD) in the Blaka repo
+- Commit message: "Bumped version to 1.003 across all fonts"
+- Config YAML at commit: `sources/blakaregular.yaml` exists
+- Source file referenced: `temp/Blaka-Regular.glyphs` (in sources/temp/)
+- Binary file in METADATA.pb: `fonts/regular/ttf/Blaka-Regular.ttf`
+
+## Confidence
+
+**High**: The repository URL and commit hash are consistently referenced across METADATA.pb, the gftools-packager commit in google/fonts, and the upstream repo. The commit exists and is the HEAD of the repo. The config YAML file exists at the recorded commit and contains valid gftools-builder configuration.
+
+## Open Questions
+
+None. All data is verified and consistent. Note that this is the same upstream repo shared by Blaka, Blaka Hollow, and Blaka Ink, all at the same commit hash.
diff --git a/ofl/blakahollow/upstream_info.md b/ofl/blakahollow/upstream_info.md
new file mode 100644 (file)
index 0000000..488abb0
--- /dev/null
@@ -0,0 +1,63 @@
+# Investigation: Blaka Hollow
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Blaka Hollow |
+| Slug | blaka-hollow |
+| License Dir | ofl |
+| Repository URL | https://github.com/Gue3bara/Blaka |
+| Commit Hash | 7f264eee862d3e94c2cb6a728c6429c2f3b9adc3 |
+| Config YAML | sources/blakahollow.yaml |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/Gue3bara/Blaka"
+  commit: "7f264eee862d3e94c2cb6a728c6429c2f3b9adc3"
+  config_yaml: "sources/blakahollow.yaml"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/hollow/ttf/BlakaHollow-Regular.ttf"
+    dest_file: "BlakaHollow-Regular.ttf"
+  }
+  files {
+    source_file: "DESCRIPTION.en_us.html"
+    dest_file: "DESCRIPTION.en_us.html"
+  }
+  branch: "master"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a complete source block with repository URL, commit hash, and config_yaml path.
+
+The font was last updated in google/fonts commit `1c8403b96` ("[gftools-packager] Blaka Hollow: Version 1.003; ttfautohint (v1.8.4.7-5d5b) added"). The commit body confirms: "Blaka Hollow Version 1.003; ttfautohint (v1.8.4.7-5d5b) taken from the upstream repo https://github.com/Gue3bara/Blaka at commit https://github.com/Gue3bara/Blaka/commit/7f264eee862d3e94c2cb6a728c6429c2f3b9adc3." This matches the commit hash in the current METADATA.pb.
+
+Commit `7f264eee862d3e94c2cb6a728c6429c2f3b9adc3` is confirmed in the upstream repo cache at `upstream_repos/fontc_crater_cache/Gue3bara/Blaka` (dated September 29, 2023, "Bumped version to 1.003 across all fonts").
+
+The upstream `sources/` directory at this commit contains `blakahollow.yaml` with content:
+```yaml
+sources:
+  - temp/BlakaHollow-Regular.glyphs
+outputDir: "../fonts/hollow"
+buildStatic: true
+buildVariable: false
+buildTTF: true
+buildOTF: false
+buildWebfont: false
+```
+
+The `config_yaml: "sources/blakahollow.yaml"` in METADATA.pb correctly references this file. Note that the Blaka family uses a per-variant config approach â€” `blakahollow.yaml` for Blaka Hollow, `blakaink.yaml` for Blaka Ink, and `blakaregular.yaml` for the main Blaka family.
+
+## Conclusion
+
+The METADATA.pb source block is complete with repository URL, commit hash, and config_yaml path. The commit `7f264eee862d3e94c2cb6a728c6429c2f3b9adc3` is confirmed as the onboarding commit. No action needed.
diff --git a/ofl/blakaink/upstream_info.md b/ofl/blakaink/upstream_info.md
new file mode 100644 (file)
index 0000000..2a3caae
--- /dev/null
@@ -0,0 +1,65 @@
+# Investigation: Blaka Ink
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Blaka Ink |
+| Slug | blaka-ink |
+| License Dir | ofl |
+| Repository URL | https://github.com/Gue3bara/Blaka |
+| Commit Hash | 7f264eee862d3e94c2cb6a728c6429c2f3b9adc3 |
+| Config YAML | sources/blakaink.yaml |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/Gue3bara/Blaka"
+  commit: "7f264eee862d3e94c2cb6a728c6429c2f3b9adc3"
+  config_yaml: "sources/blakaink.yaml"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ink/ttf/BlakaInk-Regular.ttf"
+    dest_file: "BlakaInk-Regular.ttf"
+  }
+  files {
+    source_file: "DESCRIPTION.en_us.html"
+    dest_file: "DESCRIPTION.en_us.html"
+  }
+  branch: "master"
+}
+```
+
+## Investigation
+
+The METADATA.pb contains a complete source block with repository URL, commit hash, and config_yaml path.
+
+The font was last updated in google/fonts commit `7dc85ffdb` ("[gftools-packager] Blaka Ink: Version 1.003; ttfautohint (v1.8.4.7-5d5b) added"). The commit body confirms: "Blaka Ink Version 1.003; ttfautohint (v1.8.4.7-5d5b) taken from the upstream repo https://github.com/Gue3bara/Blaka at commit https://github.com/Gue3bara/Blaka/commit/7f264eee862d3e94c2cb6a728c6429c2f3b9adc3." This matches the commit hash in the current METADATA.pb.
+
+Commit `7f264eee862d3e94c2cb6a728c6429c2f3b9adc3` is confirmed in the upstream repo cache at `upstream_repos/fontc_crater_cache/Gue3bara/Blaka` (dated September 29, 2023, "Bumped version to 1.003 across all fonts").
+
+The upstream `sources/` directory at this commit contains `blakaink.yaml` with content:
+```yaml
+sources:
+  - Blaka-Ink.glyphs
+outputDir: "../fonts/ink"
+buildStatic: true
+buildVariable: false
+buildTTF: true
+buildOTF: false
+buildWebfont: false
+```
+
+The `config_yaml: "sources/blakaink.yaml"` in METADATA.pb correctly references this file. The Blaka family uses per-variant config files â€” the same commit `7f264eee` is referenced by both Blaka Hollow and Blaka Ink. This is also the same repository as the main Blaka family.
+
+The METADATA.pb diff in the most recent update commit shows the commit was changed from `023c078707d89764cbe9e720c37c11511eb1686b` to `7f264eee862d3e94c2cb6a728c6429c2f3b9adc3`, confirming a proper version update occurred.
+
+## Conclusion
+
+The METADATA.pb source block is complete with repository URL, commit hash, and config_yaml path. The commit `7f264eee862d3e94c2cb6a728c6429c2f3b9adc3` is confirmed as the onboarding commit. No action needed.
diff --git a/ofl/blinker/upstream_info.md b/ofl/blinker/upstream_info.md
new file mode 100644 (file)
index 0000000..db08cf2
--- /dev/null
@@ -0,0 +1,58 @@
+# Blinker
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Juergen Huber
+**METADATA.pb path**: `ofl/blinker/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/supertype-de/Blinker |
+| Commit | `35cee57f389012c6a213acab504efb82f81c3b8f` |
+| Config YAML | Override config.yaml in google/fonts |
+| Branch | N/A |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/supertype-de/Blinker` was already present in the METADATA.pb `source { repository_url }` field. It is confirmed by the copyright string in all 8 font files ("Copyright 2019 the Blinker project authors (https://github.com/supertype-de/Blinker)") and by the initial onboarding commit `9d2830d30` (2019-06-24, by Marc Foley) and PR #2045, both of which state: "Taken from the upstream repo https://github.com/supertype-de/Blinker at commit 35cee57f..."
+
+## How the Commit Hash Was Identified
+
+The commit hash `35cee57f389012c6a213acab504efb82f81c3b8f` is recorded in METADATA.pb. It matches the initial onboarding commit `9d2830d30` in google/fonts (2019-06-24, by Marc Foley) and PR #2045, which explicitly state: "Taken from the upstream repo https://github.com/supertype-de/Blinker at commit https://github.com/supertype-de/Blinker/commit/35cee57f389012c6a213acab504efb82f81c3b8f."
+
+The commit exists in the upstream repo with date 2019-06-19 and message "fixup.sh: added." This was the initial onboarding of all 8 weights (Thin, ExtraLight, Light, Regular, SemiBold, Bold, ExtraBold, Black) at v1.015.
+
+A subsequent update (`ff8e6172b`, 2019-09-11, by Micah Stupak) replaced only `Blinker-Light.ttf` to v1.016 to fix incorrect post_script_name metadata, but this was a targeted single-file fix and did not change the recorded upstream commit. The upstream repo shows later commits (e.g., `1db9bbd` "changed Light.ttf names from ExtraLight to Light" on 2019-09-11, likely related to the same fix), but these were not formally recorded in METADATA.pb.
+
+## How Config YAML Was Resolved
+
+There is no `config.yaml` in the upstream repository at any commit. An override `config.yaml` exists in the google/fonts family directory (`ofl/blinker/config.yaml`), added by commit `6f92eb5d7` (2025-12-11, by Felipe Sanches). It contains:
+
+```yaml
+buildVariable: false
+sources:
+  - sources_ps/Blinker.designspace
+```
+
+The `Blinker.designspace` file exists in the upstream repo at the recorded commit under `sources_ps/`. Since the override config.yaml is in google/fonts, the `config_yaml` field is correctly omitted from the METADATA.pb source block.
+
+## Verification
+
+- Commit exists in upstream repo: Yes
+- Commit date: 2019-06-19 13:29:23 +0200
+- Commit message: "fixup.sh: added."
+- Source files at commit: `sources_ps/Blinker.designspace` and 5 UFO directories (Black, Bold, Headline, Regular, Thin)
+- Override config.yaml in google/fonts: Yes
+- Font family: 8 weights (Thin through Black), static only
+- Later upstream commits exist (up to 2022-04-24) but were not used for google/fonts updates
+
+## Confidence
+
+**High**: The repository URL and commit hash are consistently referenced across METADATA.pb, the initial onboarding commit, and PR #2045. The commit exists in the upstream repo. The override config.yaml in google/fonts correctly references the designspace file present at that commit. The only minor nuance is the Blinker-Light v1.016 fix, which was a targeted metadata fix that did not update the recorded upstream commit.
+
+## Open Questions
+
+1. The upstream repo has newer commits (up to `b917479`, 2022-04-24, "Adding vulgar fractions, adding wght mapping in designspace, regenerating static and variable fonts") that were never incorporated into google/fonts. These may contain improvements worth reviewing in a future update cycle.
+2. The Blinker-Light v1.016 fix (`ff8e6172b`) was likely derived from upstream commit `1db9bbd` (which fixed Light/ExtraLight naming), but this is not explicitly documented.
diff --git a/ofl/bodonimoda/upstream_info.md b/ofl/bodonimoda/upstream_info.md
new file mode 100644 (file)
index 0000000..4766a2b
--- /dev/null
@@ -0,0 +1,76 @@
+# Investigation: Bodoni Moda
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bodoni Moda |
+| Slug | bodoni-moda |
+| License Dir | ofl |
+| Repository URL | https://github.com/indestructible-type/Bodoni |
+| Commit Hash | 30ce6cdc354ef179a3b72ba0f0e71826e599348c |
+| Config YAML | sources/config.yaml |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/indestructible-type/Bodoni"
+  commit: "30ce6cdc354ef179a3b72ba0f0e71826e599348c"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/variable/BodoniModa[opsz,wght].ttf"
+    dest_file: "BodoniModa[opsz,wght].ttf"
+  }
+  files {
+    source_file: "fonts/variable/BodoniModa-Italic[opsz,wght].ttf"
+    dest_file: "BodoniModa-Italic[opsz,wght].ttf"
+  }
+  branch: "master"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+Bodoni Moda is a variable serif typeface by Owen Earl (Indestructible Type), added to Google Fonts on 2020-11-25. It features optical size (opsz) and weight (wght) axes in both roman and italic.
+
+### Git History
+
+The font files were last updated by google/fonts commit `634558fcb` (2024-02-21, author: Emma Marichal):
+
+```
+[gftools-packager] Bodoni Moda: Version 2.005 added
+
+Bodoni Moda Version 2.005 taken from the upstream repo
+https://github.com/indestructible-type/Bodoni at commit
+https://github.com/indestructible-type/Bodoni/commit/30ce6cdc354ef179a3b72ba0f0e71826e599348c.
+```
+
+This gftools-packager commit explicitly documents both the upstream repository and the exact commit hash. A subsequent commit `19cdcec59` (2025-03-31, "[Batch 1/4] port info from fontc_crater targets list") added the `config_yaml: "sources/config.yaml"` field to the source block.
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/indestructible-type/Bodoni/`. Commit `30ce6cdc` is a merge commit ("Merge pull request #38 from emmamarichal/master", 2024-02-18) and is the HEAD of the master branch.
+
+The config.yaml at `sources/config.yaml` contains valid gftools-builder configuration:
+- Sources: `BodoniModa.glyphs`, `BodoniModa-Italic.glyphs`
+- `buildOTF: false`
+- `familyName: Bodoni Moda`
+- Full STAT table configuration for opsz, wght, and ital axes for both roman and italic variable fonts
+
+### Verification
+
+- Repository URL: Confirmed correct (stated in packager commit and copyright string)
+- Commit hash: Confirmed correct (stated in packager commit, commit exists in upstream repo as HEAD of master)
+- Config YAML path: Confirmed â€” `sources/config.yaml` exists at the referenced commit with valid gftools-builder configuration
+- METADATA.pb source block: Fully populated with repository_url, commit, files, branch, and config_yaml
+
+## Conclusion
+
+No action needed. The METADATA.pb source block is complete and accurate. All fields are correctly set: repository URL, commit hash, file mappings, branch, and config_yaml path. This family is fully documented.
diff --git a/ofl/bodonimodasc/upstream_info.md b/ofl/bodonimodasc/upstream_info.md
new file mode 100644 (file)
index 0000000..26f5795
--- /dev/null
@@ -0,0 +1,76 @@
+# Investigation: Bodoni Moda SC
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bodoni Moda SC |
+| Slug | bodoni-moda-sc |
+| License Dir | ofl |
+| Repository URL | https://github.com/indestructible-type/Bodoni |
+| Commit Hash | 30ce6cdc354ef179a3b72ba0f0e71826e599348c |
+| Config YAML | sources/config.yaml |
+| Status | missing_config |
+| Confidence | MEDIUM |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/indestructible-type/Bodoni"
+  commit: "30ce6cdc354ef179a3b72ba0f0e71826e599348c"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/variable/BodoniModaSC[opsz,wght].ttf"
+    dest_file: "BodoniModaSC[opsz,wght].ttf"
+  }
+  files {
+    source_file: "fonts/variable/BodoniModaSC-Italic[opsz,wght].ttf"
+    dest_file: "BodoniModaSC-Italic[opsz,wght].ttf"
+  }
+  branch: "master"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+Bodoni Moda SC is the small caps variant of Bodoni Moda, added to Google Fonts on 2024-05-27. It shares the same upstream repository as Bodoni Moda.
+
+### Git History
+
+The font files were added by google/fonts commit `c910e0d6c` (2024-05-27, author: Simon Cozens):
+
+```
+Bodoni Moda SC: Version 2.005 added
+
+Taken from the upstream repo https://github.com/indestructible-type/Bodoni at commit
+https://github.com/indestructible-type/Bodoni/commit/30ce6cdc354ef179a3b72ba0f0e71826e599348c.
+```
+
+This documents the upstream repo and commit hash matching the main Bodoni Moda family. A subsequent commit `19cdcec59` (2025-03-31, "[Batch 1/4] port info from fontc_crater targets list") added the `config_yaml: "sources/config.yaml"` field.
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/indestructible-type/Bodoni/`. Commit `30ce6cdc` is the HEAD of master.
+
+The `sources/config.yaml` exists at this commit but defines builds only for the non-SC variant (`BodoniModa[opsz,wght].ttf` and `BodoniModa-Italic[opsz,wght].ttf`) with `familyName: Bodoni Moda`. It does NOT define a build target for the SC variant.
+
+Furthermore, the METADATA.pb `files {}` entries reference `fonts/variable/BodoniModaSC[opsz,wght].ttf` and `fonts/variable/BodoniModaSC-Italic[opsz,wght].ttf`, but these files do **not** exist in the upstream repository at any commit in its history. Only the non-SC variable fonts are present in `fonts/variable/`.
+
+The SC fonts were most likely generated by Simon Cozens through a separate build process (small caps extraction from the Glyphs sources) and submitted as pre-built binaries, not pulled directly from the upstream repo.
+
+### Verification
+
+- Repository URL: Correct, confirmed by commit message
+- Commit hash: Correct (same commit as Bodoni Moda, exists in upstream repo)
+- Config YAML: `sources/config.yaml` exists but does NOT build the SC variant
+- METADATA.pb files entries: Reference non-existent paths in the upstream repo (`BodoniModaSC[opsz,wght].ttf` not present)
+- No separate SC build config exists in the upstream repo or as an override in google/fonts
+
+## Conclusion
+
+The source block has repository_url and commit hash correctly set, but the `config_yaml` field (`sources/config.yaml`) does not actually build the SC variant â€” it builds the regular Bodoni Moda family. The referenced binary files in the `files {}` entries also do not exist at those paths in the upstream repo. A separate build process (or separate config.yaml) would be needed to properly document how the SC variant is built. The `config_yaml` field should likely be removed or corrected, and the issue should be raised with Owen Earl or Simon Cozens to clarify the SC build process.
diff --git a/ofl/bokor/upstream_info.md b/ofl/bokor/upstream_info.md
new file mode 100644 (file)
index 0000000..6aafc97
--- /dev/null
@@ -0,0 +1,71 @@
+# Investigation Report: Bokor
+
+## Summary
+
+Bokor is a Khmer display typeface by Danh Hong, originally added to Google Fonts on 2011-03-02. It has undergone several updates, most recently to version 8.001/8.002 in late 2021. The font is a static (non-variable) build from a Glyphs source file.
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bokor |
+| Designer | Danh Hong |
+| Repository URL | https://github.com/danhhong/Bokor |
+| Commit Hash | `b5d5f6e07e365610ad5a39d42f87505e85702432` |
+| Branch | master |
+| Config YAML | `Source/builder.yaml` |
+| License | OFL |
+| Date Added | 2011-03-02 |
+
+## How URL Found
+
+The repository URL `https://github.com/danhhong/Bokor` is stated in:
+- The gftools-packager commit message for the v8.001 update
+- The copyright string in METADATA.pb
+- PR #4019 in google/fonts
+
+## How Commit Determined
+
+The commit hash `b5d5f6e07e365610ad5a39d42f87505e85702432` is recorded in the gftools-packager commit message for the v8.001 update (google/fonts commit `bb6f43532`, PR #4019):
+
+> [gftools-packager] Bokor: Version 8.001; ttfautohint (v1.8.3) added
+> Bokor Version 8.001; ttfautohint (v1.8.3) taken from the upstream repo https://github.com/danhhong/Bokor.git at commit b5d5f6e07e365610ad5a39d42f87505e85702432.
+
+PR #4019 was authored by Yanone (post@yanone.de), and the same commit hash is confirmed in the PR body.
+
+### Post-Onboarding Update
+
+After the v8.001 onboarding, a batch hotfix (v8.002) was applied in google/fonts commit `4f5dbdb58` (2021-12-07) by Yanone to fix "urgent glyph definition issues" across multiple Khmer fonts. This update modified the binary font file but was not sourced from a new upstream commit -- it was a batch fix applied directly.
+
+## Config YAML Status
+
+The config file at `Source/builder.yaml` exists at the recorded commit and contains:
+```yaml
+sources:
+  - Bokor.glyphs
+outputDir: "../Release"
+buildStatic: true
+buildVariable: false
+buildTTF: true
+buildOTF: false
+buildWebfont: false
+```
+
+This is a valid gftools-builder configuration for a static-only font build.
+
+## Verification
+
+- **Commit exists in upstream**: Yes, verified. `b5d5f6e` is the HEAD of the master branch. It is a merge commit: "Merge pull request #2 from yanone/master".
+- **Config.yaml exists at commit**: Yes, `Source/builder.yaml` is present and valid.
+- **Source files match METADATA.pb**: The METADATA.pb references `Release/ttf/Bokor-Regular.ttf` as the source file, which is consistent with the `outputDir: "../Release"` in the builder config.
+- **Branch correct**: master, confirmed (only branch in the repo).
+- **Upstream repo cached**: Yes, at `upstream_repos/fontc_crater_cache/danhhong/Bokor`.
+- **Upstream repo is HEAD of commit**: The recorded commit is the latest commit in the repository.
+
+## Confidence Level
+
+**HIGH** -- The commit hash is directly stated in the gftools-packager commit message and confirmed in PR #4019. The upstream repo verifies the commit exists at HEAD. The config.yaml is present and valid. Note that the binary in google/fonts was subsequently patched (v8.002 hotfix) without a corresponding upstream commit.
+
+## Open Questions
+
+None. This family's source documentation is complete and verified. The v8.002 hotfix was a downstream-only binary patch and does not affect the upstream source reference.
diff --git a/ofl/boldonse/upstream_info.md b/ofl/boldonse/upstream_info.md
new file mode 100644 (file)
index 0000000..452ad0c
--- /dev/null
@@ -0,0 +1,61 @@
+# Investigation Report: Boldonse
+
+## Summary
+
+Boldonse is a display typeface by Universitype, added to Google Fonts on 2025-02-19. It is a relatively new addition with a single static weight. The upstream repository is hosted under the googlefonts organization, and the entire repo history consists of a single commit.
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Boldonse |
+| Designer | Universitype |
+| Repository URL | https://github.com/googlefonts/boldonse |
+| Commit Hash | `ebf7dd8db35ccdb0fb262331234634d92ac1231f` |
+| Branch | main |
+| Config YAML | `sources/config.yaml` |
+| License | OFL |
+| Date Added | 2025-02-19 |
+
+## How URL Found
+
+The repository URL `https://github.com/googlefonts/boldonse` is stated in:
+- The copyright string in METADATA.pb
+- The commit message adding the font to google/fonts
+
+## How Commit Determined
+
+The commit hash `ebf7dd8db35ccdb0fb262331234634d92ac1231f` is recorded in the commit message adding the font (google/fonts commit `5bf2c8330`):
+
+> Boldonse: Version 1.000; ttfautohint (v1.8.4.7-5d5b) added
+> Taken from the upstream repo https://github.com/googlefonts/boldonse at commit ebf7dd8db35ccdb0fb262331234634d92ac1231f.
+
+The upstream commit is titled "Renamed folder" and is the only commit in the entire repository. This is a straightforward onboarding case.
+
+## Config YAML Status
+
+The config file at `sources/config.yaml` exists at the recorded commit and contains:
+```yaml
+sources:
+  - "UT Boldonse Font.glyphs"
+buildOTF: false
+buildWebfont: false
+```
+
+This is a valid gftools-builder configuration for building a static TTF font.
+
+## Verification
+
+- **Commit exists in upstream**: Yes, verified. `ebf7dd8` is the only commit in the repository (HEAD of main).
+- **Config.yaml exists at commit**: Yes, `sources/config.yaml` is present and valid.
+- **Source files match METADATA.pb**: The METADATA.pb references `fonts/ttf/Boldonse-Regular.ttf` as the source file, along with article files (ARTICLE.en_us.html and several images).
+- **Branch correct**: main, confirmed.
+- **Upstream repo cached**: Yes, at `upstream_repos/fontc_crater_cache/googlefonts/boldonse`.
+
+## Confidence Level
+
+**HIGH** -- The commit hash is stated in the onboarding commit message. The upstream repo has only one commit, making verification trivial. The config.yaml is present and valid.
+
+## Open Questions
+
+None. This family's source documentation is complete and verified.
diff --git a/ofl/bonanova/upstream_info.md b/ofl/bonanova/upstream_info.md
new file mode 100644 (file)
index 0000000..82927b8
--- /dev/null
@@ -0,0 +1,87 @@
+# Investigation: Bona Nova
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bona Nova |
+| Slug | bona-nova |
+| License Dir | ofl |
+| Repository URL | https://github.com/kosmynkab/Bona-Nova |
+| Commit Hash | a5cbdfb8741af20ea5bfe252f0128beed6c8beed |
+| Config YAML | sources/config.yaml |
+| Status | complete |
+| Confidence | MEDIUM |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/kosmynkab/Bona-Nova"
+  commit: "a5cbdfb8741af20ea5bfe252f0128beed6c8beed"
+  files {
+    source_file: "fonts/ttf/BonaNova-Regular.ttf"
+    dest_file: "BonaNova-Regular.ttf"
+  }
+  files {
+    source_file: "fonts/ttf/BonaNova-Bold.ttf"
+    dest_file: "BonaNova-Bold.ttf"
+  }
+  files {
+    source_file: "fonts/ttf/BonaNova-Italic.ttf"
+    dest_file: "BonaNova-Italic.ttf"
+  }
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  branch: "main"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+Bona Nova is a serif typeface by Capitalics (Mateusz Machalski, Andrzej Heidrich), added to Google Fonts on 2021-04-13. It includes Regular, Bold, and Italic static weights with support for Latin, Cyrillic, Greek, Hebrew, and Vietnamese scripts.
+
+### Git History
+
+The font TTF files were last updated by google/fonts commit `728f6da02` (PR #3275, 2021-04-13):
+
+```
+Bona Nova: Version 4.001; ttfautohint (v1.8.3) added (#3275)
+
+Bona Nova Version 4.001; ttfautohint (v1.8.3) taken from the upstream repo
+https://github.com/kosmynkab/Bona-Nova at commit
+https://github.com/kosmynkab/Bona-Nova/commit/a5cbdfb8741af20ea5bfe252f0128beed6c8beed.
+```
+
+Note: The PR #3275 body originally referenced a different commit (`fdc7db4c1fcd4d63a922ea8797881a39d3a62caa`), but that commit no longer exists in the upstream repository, likely due to a subsequent force-push that rewrote history.
+
+The commit hash `a5cbdfb8` and `config_yaml: "sources/config.yaml"` were both added to METADATA.pb by commit `19cdcec59` (2025-03-31, "[Batch 1/4] port info from fontc_crater targets list"), porting data from the fontc_crater targets list.
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/kosmynkab/Bona-Nova/` (shallow clone). Commit `a5cbdfb8` is the HEAD of the main branch (message: "remove fontbakery report", date: 2021-04-13). It is the only visible commit due to the shallow clone.
+
+The `sources/config.yaml` exists at this commit and contains:
+```yaml
+sources:
+  - BonaNova.glyphs
+  - BonaNova-Italic.glyphs
+familyName: Bona Nova
+buildVariable: False
+```
+
+This is a valid gftools-builder configuration for building static fonts from Glyphs sources. The referenced TTF files exist at `fonts/ttf/BonaNova-Regular.ttf`, `fonts/ttf/BonaNova-Bold.ttf`, and `fonts/ttf/BonaNova-Italic.ttf` in the repo at this commit.
+
+### Verification
+
+- Repository URL: Confirmed (stated in copyright string, gftools-packager commit, and upstream.yaml)
+- Commit hash: The recorded commit `a5cbdfb8` is the current HEAD. The original onboarding commit (`fdc7db4c`) no longer exists in the repo (likely force-pushed away). The fontc_crater targets list adopted `a5cbdfb8` as the reference.
+- Config YAML: `sources/config.yaml` exists and is valid at the recorded commit
+- Source files: All three TTF files exist at `fonts/ttf/` at the recorded commit
+
+## Conclusion
+
+The METADATA.pb source block is complete and accurate. The repository URL, commit hash, file mappings, branch, and config_yaml path are all set correctly. The only caveat is that the recorded commit `a5cbdfb8` differs from the original onboarding commit (`fdc7db4c`) referenced in PR #3275 â€” the upstream repository was apparently force-pushed after onboarding. The current HEAD commit is the best available reference, and it has been adopted by fontc_crater. No action needed unless the original onboarding commit needs to be reconstructed.
diff --git a/ofl/bonanovasc/upstream_info.md b/ofl/bonanovasc/upstream_info.md
new file mode 100644 (file)
index 0000000..d9bd297
--- /dev/null
@@ -0,0 +1,88 @@
+# Investigation: Bona Nova SC
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bona Nova SC |
+| Slug | bona-nova-sc |
+| License Dir | ofl |
+| Repository URL | https://github.com/kosmynkab/Bona-Nova |
+| Commit Hash | a5cbdfb8741af20ea5bfe252f0128beed6c8beed |
+| Config YAML | sources/config.yaml |
+| Status | missing_config |
+| Confidence | MEDIUM |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/kosmynkab/Bona-Nova"
+  commit: "a5cbdfb8741af20ea5bfe252f0128beed6c8beed"
+  files {
+    source_file: "fonts/ttf/BonaNovaSC-Regular.ttf"
+    dest_file: "BonaNovaSC-Regular.ttf"
+  }
+  files {
+    source_file: "fonts/ttf/BonaNovaSC-Bold.ttf"
+    dest_file: "BonaNovaSC-Bold.ttf"
+  }
+  files {
+    source_file: "fonts/ttf/BonaNovaSC-Italic.ttf"
+    dest_file: "BonaNovaSC-Italic.ttf"
+  }
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  branch: "main"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+Bona Nova SC is the small caps variant of Bona Nova, added to Google Fonts on 2024-05-27. It shares the same upstream repository as Bona Nova.
+
+### Git History
+
+The font TTF files were added by google/fonts commit `e92080ad6` (2024-05-27, author: Simon Cozens):
+
+```
+Bona Nova SC: Version 4.001; ttfautohint (v1.8.4.7-5d5b) added
+
+Taken from the upstream repo https://github.com/kosmynkab/Bona-Nova at commit
+https://github.com/kosmynkab/Bona-Nova/commit/a5cbdfb8741af20ea5bfe252f0128beed6c8beed.
+```
+
+This documents the upstream repo and commit hash, which is the same as Bona Nova. A subsequent commit `19cdcec59` (2025-03-31, "[Batch 1/4] port info from fontc_crater targets list") added the `config_yaml: "sources/config.yaml"` field.
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/kosmynkab/Bona-Nova/`. The `sources/config.yaml` exists at commit `a5cbdfb8` and contains:
+
+```yaml
+sources:
+  - BonaNova.glyphs
+  - BonaNova-Italic.glyphs
+familyName: Bona Nova
+buildVariable: False
+```
+
+However, the METADATA.pb `files {}` entries reference `fonts/ttf/BonaNovaSC-Regular.ttf`, `fonts/ttf/BonaNovaSC-Bold.ttf`, and `fonts/ttf/BonaNovaSC-Italic.ttf` â€” but these SC TTF files do **not** exist in the upstream repository at any point in its history. Only the non-SC TTFs (`BonaNova-Regular.ttf`, `BonaNova-Bold.ttf`, `BonaNova-Italic.ttf`) are present.
+
+Furthermore, the `sources/config.yaml` specifies `familyName: Bona Nova` and builds only the non-SC variant. It does not define a build target for the SC variant.
+
+The SC fonts were most likely generated by Simon Cozens using a separate build process (activating small caps features from the Glyphs sources) and submitted as pre-built binaries during the PR.
+
+### Verification
+
+- Repository URL: Confirmed correct (stated in commit message)
+- Commit hash: Confirmed â€” `a5cbdfb8` exists in upstream repo as HEAD of main
+- Config YAML: `sources/config.yaml` exists but does NOT build the SC variant
+- METADATA.pb files entries: Reference SC TTF paths that do not exist in the upstream repo
+- No separate SC build config exists in the upstream repo or as an override in google/fonts
+
+## Conclusion
+
+The repository URL and commit hash are correctly recorded. However, the `config_yaml` field (`sources/config.yaml`) does not build the SC variant â€” it builds the regular Bona Nova family â€” and the `files {}` entries reference TTF paths that do not exist in the upstream repository. This is a documentation issue rather than a data integrity problem: the fonts were built by Simon Cozens from the same Glyphs sources using a small caps build pipeline, but no config reflecting that process exists. The `config_yaml` field should be reviewed and potentially corrected or removed.
diff --git a/ofl/bonbon/upstream_info.md b/ofl/bonbon/upstream_info.md
new file mode 100644 (file)
index 0000000..2954abb
--- /dev/null
@@ -0,0 +1,64 @@
+# Bonbon
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Cyreal
+**METADATA.pb path**: `ofl/bonbon/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/cyrealtype/Bonbon |
+| Commit | `ffac6513dd512d2a76e620c933e6d9a6f0953348` |
+| Config YAML | Override in google/fonts (`ofl/bonbon/config.yaml`) |
+| Branch | N/A |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/cyrealtype/Bonbon` was added to METADATA.pb by Simon Cozens in commit `46a7c0576` ("Add more upstreams (a,b)", 2024-01-14). The Cyreal type foundry maintains this and other font repos under the `cyrealtype` GitHub organization. The URL was already established in the source block before the commit hash was added.
+
+## How the Commit Hash Was Identified
+
+The commit hash `ffac6513dd512d2a76e620c933e6d9a6f0953348` was added to METADATA.pb by Felipe Sanches in commit `be2c6db21` ("sources info for Bonbon: Version 1.001 (PR #862)", 2025-11-10).
+
+The upstream repository has only two commits:
+1. `3e70567` - "initial commit"
+2. `ffac651` - "adding img" (HEAD)
+
+The recorded commit `ffac651` is the latest (and essentially the only meaningful) commit in the repository. The font was originally updated in google/fonts via PR #862 ("hotfix-bonbon: v1.001 added") by Marc Foley (2017-08-07). Since the upstream repo only has 2 commits, `ffac651` (HEAD) is the correct reference.
+
+## How Config YAML Was Resolved
+
+There is no `config.yaml` in the upstream repository. The upstream contains only legacy VFB (FontLab) source files in `src/`:
+- `Bonbon-Regular.vfb`
+- `Bonbon-Regular-TTF.vfb`
+- `Bonbon-Regular-OTF.vfb`
+
+An override `config.yaml` exists in the google/fonts family directory at `ofl/bonbon/config.yaml`:
+
+```yaml
+buildVariable: false
+sources:
+  - src/Bonbon-Regular.vfb
+  - src/Bonbon-Regular-TTF.vfb
+  - src/Bonbon-Regular-OTF.vfb
+```
+
+Since an override config exists in google/fonts, the `config_yaml` field is correctly omitted from the METADATA.pb source block.
+
+## Verification
+
+- Commit exists in upstream repo: Yes (HEAD of master/main)
+- Commit date: "adding img"
+- Source files at commit: `src/Bonbon-Regular.vfb`, `src/Bonbon-Regular-TTF.vfb`, `src/Bonbon-Regular-OTF.vfb`, `Bonbon-Regular.ttf`
+- Override config.yaml in google/fonts: Yes (`ofl/bonbon/config.yaml`)
+- No config.yaml in upstream repo: Confirmed
+
+## Confidence
+
+**High**: The repository URL is well-established under the Cyreal type foundry's GitHub organization. The commit hash is the latest commit in a very small repo (only 2 commits), making it unambiguous. The override config.yaml in google/fonts handles the build configuration since the upstream has only legacy VFB sources.
+
+## Open Questions
+
+1. The override config.yaml references VFB sources. Can gftools-builder actually compile VFB files, or is this config for reference purposes only? If not buildable, the font may need to be rebuilt from a converted source format.
diff --git a/ofl/bonheurroyale/upstream_info.md b/ofl/bonheurroyale/upstream_info.md
new file mode 100644 (file)
index 0000000..48f7771
--- /dev/null
@@ -0,0 +1,88 @@
+# Investigation: Bonheur Royale
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bonheur Royale |
+| Slug | bonheur-royale |
+| License Dir | ofl |
+| Repository URL | https://github.com/googlefonts/bonheur-royale |
+| Commit Hash | 90087bb825c798641a29d2a1114ce7acd4048b0b |
+| Config YAML | sources/config.yml |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/googlefonts/bonheur-royale"
+  commit: "90087bb825c798641a29d2a1114ce7acd4048b0b"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "DESCRIPTION.en_us.html"
+    dest_file: "DESCRIPTION.en_us.html"
+  }
+  files {
+    source_file: "fonts/ttf/BonheurRoyale-Regular.ttf"
+    dest_file: "BonheurRoyale-Regular.ttf"
+  }
+  branch: "master"
+  config_yaml: "sources/config.yml"
+}
+```
+
+## Investigation
+
+Bonheur Royale is a handwriting typeface by Robert Leuschke, added to Google Fonts on 2021-08-06.
+
+### Git History
+
+The font TTF file was added by google/fonts commit `0bc581c03` (PR #3675, 2021-08-10, author: Viviana Monsalve):
+
+```
+[gftools-packager] Bonheur Royale: Version 1.010; ttfautohint (v1.8.3) added (#3675)
+
+Bonheur Royale Version 1.010; ttfautohint (v1.8.3) taken from the upstream repo
+https://github.com/googlefonts/bonheur-royale at commit
+https://github.com/googlefonts/bonheur-royale/commit/5437451c7ef27d37081b96d4f73c445ca1813b10.
+```
+
+Note: The original packager commit referenced `5437451c` as the onboarding commit. The current METADATA.pb records `90087bb8` instead, which was added by commit `19cdcec59` (2025-03-31, "[Batch 1/4] port info from fontc_crater targets list"), porting data from the fontc_crater targets list.
+
+The source block was first created by commit `66f91f10f` (2024-04-03, "Merge upstream.yaml into METADATA.pb"), but without a commit hash. The commit hash and `config_yaml` were added by `19cdcec59` (2025-03-31).
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/googlefonts/bonheur-royale/`. The repository's commit history:
+
+```
+90087bb Nhung added to Contributors     <-- current METADATA.pb reference (HEAD)
+5437451 py for sample imagge added      <-- original packager onboarding commit
+b1e50d6 v1.010 fonts added
+```
+
+Commit `90087bb` (2021-08-06, "Nhung added to Contributors") is the repo HEAD. Commit `5437451c` ("py for sample imagge added", 2021-08-06 12:20) predates `90087bb` (2021-08-06 17:52). The font binary in google/fonts was taken from `b1e50d6` ("v1.010 fonts added"), which is an ancestor of both. The difference between `5437451c` and `90087bb` is only the CONTRIBUTORS.txt file. No source files, fonts, or build configuration changed between these two commits.
+
+The `sources/config.yml` (note: `.yml` extension) exists at both commits and contains:
+```yaml
+sources:
+  - BonheurRoyale.glyphs
+familyName: "Bonheur Royale"
+buildVariable: false
+```
+
+### Verification
+
+- Repository URL: Confirmed correct (stated in packager commit and copyright string)
+- Commit hash: `90087bb8` is the HEAD (not the original onboarding commit `5437451c`); the only difference is a CONTRIBUTORS.txt update â€” no functional change
+- Config YAML: `sources/config.yml` (`.yml` extension) exists at the recorded commit and is valid
+- Source files: `fonts/ttf/BonheurRoyale-Regular.ttf` exists in the upstream repo at `90087bb8`
+
+## Conclusion
+
+The METADATA.pb source block is complete and functional. The commit `90087bb8` is the HEAD of the upstream repo and is only 5 hours later than the original onboarding commit `5437451c` â€” the only difference is a name added to CONTRIBUTORS.txt, with no source or font changes. The config.yml is correctly referenced (note the `.yml` extension). No action needed.
diff --git a/ofl/borel/upstream_info.md b/ofl/borel/upstream_info.md
new file mode 100644 (file)
index 0000000..bb030d5
--- /dev/null
@@ -0,0 +1,66 @@
+# Borel
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Rosalie Wagner
+**METADATA.pb path**: `ofl/borel/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/RosaWagner/Borel |
+| Commit | `68b8266ec6b70c4753b46753c8b103d2ee50b7c8` |
+| Config YAML | `Borel/sources/config.yaml` |
+| Branch | `main` |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/RosaWagner/Borel` was present from the initial font onboarding. The earliest gftools-packager commit `f5e738c9c` (2023-07-07) by Rosalie Wagner herself references this URL: "Borel Version 1.004 taken from the upstream repo https://github.com/RosaWagner/Borel". This also matches the copyright string in the font files.
+
+## How the Commit Hash Was Identified
+
+The current commit hash `68b8266ec6b70c4753b46753c8b103d2ee50b7c8` corresponds to the latest font update (Version 1.008), added in google/fonts commit `8c949834a` by Marc Foley (2025-10-22) via PR #9926. The commit message states: "Taken from the upstream repo https://github.com/RosaWagner/Borel at commit https://github.com/RosaWagner/Borel/commit/68b8266ec6b70c4753b46753c8b103d2ee50b7c8."
+
+The `config_yaml` field was added in a subsequent commit `5b7605895` by Felipe Sanches ("sources info for Borel: Version 1.008 (PR #9926)", 2025-10-22).
+
+The Borel font has been through multiple updates:
+
+1. **v1.004** (2023-07-07, PR #6513): commit `f6e1e35c95b7af91a6be7294e5e9a2b38858b8bb`
+2. **v1.005** (2023-10-10, PR #6846): commit `dd3d42ca23056f23889e31cde0af0081da3d847d`
+3. **v1.008** (2025-10-22, PR #9926): commit `68b8266ec6b70c4753b46753c8b103d2ee50b7c8` (current)
+
+The recorded commit `68b8266` is verified in the upstream repo with message "Fixed spacing of t and few kerning pairs".
+
+## How Config YAML Was Resolved
+
+The config file `Borel/sources/config.yaml` exists in the upstream repository at the recorded commit. Note the nested directory structure -- the repo has a `Borel/` subdirectory containing the font project. Contents:
+
+```yaml
+sources:
+  - Borel.glyphs
+familyName: "Borel"
+buildOTF: true
+buildVariable: false
+buildWebfont: true
+autohintOTF: true
+```
+
+No override config.yaml exists in the google/fonts family directory.
+
+## Verification
+
+- Commit exists in upstream repo: Yes
+- Commit message: "Fixed spacing of t and few kerning pairs"
+- Source files at commit: `Borel/sources/Borel.glyphs`, `Borel/sources/config.yaml`
+- Config.yaml present: Yes at `Borel/sources/config.yaml`
+- No override config.yaml in google/fonts family directory
+- Font update history traced through 3 versions with consistent upstream references
+
+## Confidence
+
+**High**: The repository URL has been consistent across all three font versions and is confirmed by the designer (Rosalie Wagner) herself, who authored the initial onboarding commits. The commit hash is well-documented in both the google/fonts commit message and the PR. The config.yaml is present and valid. All data is fully corroborated.
+
+## Open Questions
+
+None. All source data is well-documented and verified.
diff --git a/ofl/braahone/upstream_info.md b/ofl/braahone/upstream_info.md
new file mode 100644 (file)
index 0000000..b2efd2d
--- /dev/null
@@ -0,0 +1,78 @@
+# Investigation: Braah One
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Braah One |
+| Slug | braah-one |
+| License Dir | ofl |
+| Repository URL | https://github.com/artandtype/Braah |
+| Commit Hash | 2b7ba2ea006af5a55313158531b6f0b71eca5ff8 |
+| Config YAML | override config.yaml in google/fonts |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/artandtype/Braah"
+  commit: "2b7ba2ea006af5a55313158531b6f0b71eca5ff8"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/ttf/BraahOne-Regular.ttf"
+    dest_file: "BraahOne-Regular.ttf"
+  }
+  branch: "master"
+}
+```
+
+## Investigation
+
+### Git History in google/fonts
+
+The font has two commits in google/fonts:
+
+1. `20db4c2da` â€” `[gftools-packager] Braah One: Version 1.001; ttfautohint (v1.8.4.7-5d5b);gftools[0.9.29] added`
+2. `ff85c4135` â€” `[gftools-packager] Braah One: Version 1.000 added`
+
+The most recent packager commit message states:
+
+> Braah One Version 1.001; ttfautohint (v1.8.4.7-5d5b);gftools[0.9.29] taken from the upstream repo https://github.com/artandtype/Braah at commit https://github.com/artandtype/Braah/commit/2b7ba2ea006af5a55313158531b6f0b71eca5ff8.
+
+This directly confirms both the repository URL and the commit hash in METADATA.pb.
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/artandtype/Braah`. Commit `2b7ba2ea006af5a55313158531b6f0b71eca5ff8` was verified to exist â€” it is the latest commit on the master branch ("Merge pull request #3 from emmamarichal/master").
+
+The upstream repository does **not** contain a `config.yaml` file. The sources directory contains:
+- `sources/BraahOne.glyphs` â€” the primary Glyphs source file
+- `sources/BraahOne-Regular.enc`, `.fea`, `.flc`, `.vfc`, `.vfm` â€” auxiliary files
+
+### Override config.yaml in google/fonts
+
+An override `config.yaml` already exists in `ofl/braahone/config.yaml` (in google/fonts) with the following content:
+
+```yaml
+buildVariable: false
+sources:
+  - sources/BraahOne.glyphs
+```
+
+This override correctly references the Glyphs source at `sources/BraahOne.glyphs`, which is a valid path relative to the upstream repo root. The `METADATA.pb` does not set `config_yaml` (correct behavior when an override is present in the google/fonts directory).
+
+### METADATA.pb Status
+
+The source block is already present and complete in METADATA.pb on the main branch:
+- `repository_url` is set and correct
+- `commit` is set and matches the gftools-packager commit message
+- No `config_yaml` field in METADATA.pb (correct â€” override config.yaml exists in google/fonts)
+
+## Conclusion
+
+No action needed. The source block in METADATA.pb is complete and correct. The override `config.yaml` in `ofl/braahone/config.yaml` handles build configuration. Status is **complete** with HIGH confidence.
diff --git a/ofl/brawler/upstream_info.md b/ofl/brawler/upstream_info.md
new file mode 100644 (file)
index 0000000..475b564
--- /dev/null
@@ -0,0 +1,64 @@
+# Investigation Report: Brawler
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Brawler |
+| Designer | Cyreal |
+| License | OFL |
+| Date Added | 2011-05-18 |
+| Repository URL | https://github.com/cyrealtype/Brawler |
+| Commit Hash | `a8e1fc6a4c43dedc38394c4f4086f526b72e852d` |
+| Branch | master |
+| Config YAML | `sources/config.yaml` (in upstream) |
+| Status | Complete |
+
+## How URL Found
+
+The repository URL `https://github.com/cyrealtype/Brawler` is recorded in the METADATA.pb `source {}` block and matches the copyright string. It was added to METADATA.pb during the gftools-packager update (PR #4230) by Yanone.
+
+## How Commit Determined
+
+The commit hash `a8e1fc6a4c43dedc38394c4f4086f526b72e852d` was ported from the fontc_crater targets list in google/fonts commit `19cdcec59` ("[Batch 1/4] port info from fontc_crater targets list").
+
+**Important note about the original onboarding commit**: The gftools-packager commit for Version 1.101 (PR #4230, commit `d9b649cad`) referenced a different upstream commit: `628e7189feb4a17dc20059f9346356e63d531eda`. However, this commit no longer exists in the upstream repository. The upstream repo was apparently force-pushed/rewritten and now contains only a single commit (`a8e1fc6a...`), dated 2025-02-23, by Alexei Vanyashin with message "generated fonts v1.500".
+
+The current METADATA.pb commit `a8e1fc6a...` is the only commit in the repo and represents the latest state. Since the original onboarding commit was lost due to repo rewriting, this is the best available reference.
+
+## Config YAML Status
+
+- `sources/config.yaml` exists in the upstream repository at the recorded commit
+- It is correctly referenced in the METADATA.pb `config_yaml` field
+- No override config.yaml exists in google/fonts
+
+Config.yaml contents:
+```yaml
+sources:
+  - Brawler.glyphs
+outputDir: "../fonts"
+buildStatic: true
+buildVariable: true
+buildTTF: true
+buildOTF: true
+buildWebfont: true
+axisOrder:
+  - wght
+```
+
+## Verification
+
+1. **Commit exists in upstream**: Confirmed. `a8e1fc6a4c43dedc38394c4f4086f526b72e852d` is the sole commit in the cached repo at `upstream_repos/fontc_crater_cache/cyrealtype/Brawler`
+2. **File paths match**: METADATA.pb references `fonts/TTF/Brawler-Regular.ttf` and `fonts/TTF/Brawler-Bold.ttf`, both present at the commit
+3. **Config YAML valid**: `sources/config.yaml` exists and references `Brawler.glyphs` source
+4. **Original commit lost**: The original gftools-packager commit `628e7189...` no longer exists in the repo (force-pushed)
+5. **fontc_crater source**: The current commit was sourced from fontc_crater's targets.json
+
+## Confidence Level
+
+**MEDIUM** - The repository URL is correct. The commit hash is the only commit available in the repo after a force-push/rewrite, so it represents the current state rather than the original onboarding state. The original commit `628e7189...` was lost. The font version in google/fonts (1.101) predates the current repo state (v1.500), so the upstream has progressed significantly beyond what was onboarded.
+
+## Open Questions
+
+1. The upstream repo was force-pushed, losing the original onboarding commit history. The current commit represents v1.500 while google/fonts has v1.101 - are the binaries in google/fonts from a different source state?
+2. The font in google/fonts (Regular + Bold only) differs from the upstream repo (Regular, Medium, SemiBold, Bold) - the upstream has expanded since onboarding.
diff --git a/ofl/bricolagegrotesque/upstream_info.md b/ofl/bricolagegrotesque/upstream_info.md
new file mode 100644 (file)
index 0000000..ef654ac
--- /dev/null
@@ -0,0 +1,92 @@
+# Investigation: Bricolage Grotesque
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bricolage Grotesque |
+| Slug | bricolage-grotesque |
+| License Dir | ofl |
+| Repository URL | https://github.com/ateliertriay/bricolage |
+| Commit Hash | 84745e5b96261ae5f8c6c856e262fe78d1d6efdd |
+| Config YAML | sources/config.yaml |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/ateliertriay/bricolage"
+  commit: "84745e5b96261ae5f8c6c856e262fe78d1d6efdd"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "fonts/variable/BricolageGrotesque[opsz,wdth,wght].ttf"
+    dest_file: "BricolageGrotesque[opsz,wdth,wght].ttf"
+  }
+  branch: "main"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+### Git History in google/fonts
+
+The font has two commits in google/fonts:
+
+1. `b9f6c7120` â€” `[gftools-packager] Bricolage Grotesque: Version 1.001;gftools[0.9.33.dev8+g029e19f] added`
+2. `92f1a0b27` â€” `[gftools-packager] Bricolage Grotesque: Version 1.000;gftools[0.9.30] added`
+
+The most recent packager commit message states:
+
+> Bricolage Grotesque Version 1.001;gftools[0.9.33.dev8+g029e19f] taken from the upstream repo https://github.com/ateliertriay/bricolage at commit https://github.com/ateliertriay/bricolage/commit/84745e5b96261ae5f8c6c856e262fe78d1d6efdd.
+
+This directly confirms both the repository URL and the commit hash in METADATA.pb.
+
+The first packager commit (`92f1a0b27`) referenced a different earlier commit: `95ddb0da9087a5f49f4616faea519e9e27d80a99` (Version 1.000).
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/ateliertriay/bricolage`. Commit `84745e5b96261ae5f8c6c856e262fe78d1d6efdd` was verified to exist â€” it is the most recent commit on the main branch ("Merge pull request #5 from emmamarichal/main", dated 2023-07-19).
+
+### Config YAML
+
+`sources/config.yaml` exists in the upstream repository at the referenced commit. Content:
+
+```yaml
+sources:
+  - BricolageGrotesque.glyphs
+axisOrder:
+  - opsz
+  - wdth
+  - wght
+familyName: Bricolage Grotesque
+stat:
+  BricolageGrotesque[opsz,wdth,wght].ttf:
+  - name: Optical size
+    tag: opsz
+    values: [...]
+  - name: Width
+    tag: wdth
+    values: [...]
+  - name: Weight
+    tag: wght
+    values: [...]
+```
+
+The `config_yaml: "sources/config.yaml"` field in METADATA.pb correctly points to this file.
+
+### METADATA.pb Status
+
+All fields are complete and correct:
+- `repository_url` matches the packager commit message
+- `commit` matches the packager commit message and is verified in the upstream repo
+- `config_yaml: "sources/config.yaml"` is set and the file exists at the referenced commit
+
+## Conclusion
+
+No action needed. The source block in METADATA.pb is complete and correct. Status is **complete** with HIGH confidence.
diff --git a/ofl/briemhand/upstream_info.md b/ofl/briemhand/upstream_info.md
new file mode 100644 (file)
index 0000000..ee9a45a
--- /dev/null
@@ -0,0 +1,86 @@
+# Investigation: Briem Hand
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Briem Hand |
+| Slug | briem-hand |
+| License Dir | ofl |
+| Repository URL | https://github.com/SorkinType/Briem-Hand |
+| Commit Hash | 7b991840508c9a90632354034ed0a72002836c05 |
+| Config YAML | sources/config.yaml |
+| Status | needs_correction |
+| Confidence | MEDIUM |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/SorkinType/Briem-Hand"
+  commit: "7b991840508c9a90632354034ed0a72002836c05"
+  archive_url: "https://github.com/SorkinType/Briem-Hand/releases/download/v1.004/Briem-Hand-v1.004.zip"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "DESCRIPTION.en_us.html"
+    dest_file: "DESCRIPTION.en_us.html"
+  }
+  files {
+    source_file: "fonts/variable/BriemHand[wght].ttf"
+    dest_file: "BriemHand[wght].ttf"
+  }
+  branch: "main"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+### Git History in google/fonts
+
+The font directory has been updated multiple times:
+
+1. `379bcfca1` (2024-05-16) â€” `One more missing join (bf)` â€” direct TTF edit
+2. `d619ba521` (after 2024-03-28) â€” `And again` â€” direct TTF edit
+3. `2beab1628` (after 2024-03-28) â€” `Fix astroke` â€” direct TTF edit
+4. `099159dd0` (2023-11-30) â€” `[gftools-packager] Briem Hand: Version 1.002 added`
+5. `2f2518247` (2024-03-28) â€” `Briem Hand: Version 1.003 added` (upstream commit: `bd68ecf`)
+6. `6df879b16` (2024-03-27) â€” `Briem Hand: Version 1.003 added` (upstream commit: `24564101f1`)
+7. `eef42261c` (2024-03-27) â€” `Briem Hand: Version 1.003 added` (upstream commit: `3f9aa7c9`)
+
+The Version 1.003 update went through multiple attempts (commits `eef42261c`, `6df879b16`, `2f2518247`). The final accepted commit `2f2518247` references upstream commit `bd68ecf84950b0c2e975716cce88c1b43b99d138` (dated 2024-03-28, "Remove axis mappings custom parameter").
+
+After the 1.003 packager update, three manual TTF edits were made directly to `ofl/briemhand/BriemHand[wght].ttf` without a gftools-packager run (commits `2beab1628`, `d619ba521`, `379bcfca1`).
+
+### METADATA.pb Commit Hash History
+
+The METADATA.pb was modified by commit `19cdcec59` (`[Batch 1/4] port info from fontc_crater targets list`, 2025-03-31), which changed the commit field from `68fedd7eb5d65c2c1490300719ef8b1fa51fbcd5` to `7b991840508c9a90632354034ed0a72002836c05` and added `config_yaml: "sources/config.yaml"`. This batch update ported data from the fontc_crater targets list.
+
+Commit timeline analysis:
+- `bd68ecf` (2024-03-28): actual upstream commit used for the 1.003 packager run
+- `68fedd7` (2024-05-10): "Bump version to 1.004" â€” set as METADATA.pb commit before the batch update, but NEWER than the actual 1.003 onboarding
+- `7b991840` (2024-10-30): "Missing metrics" â€” current METADATA.pb commit, MUCH NEWER than the 1.003 onboarding
+
+The `archive_url` points to `v1.004`, which corresponds to commit `68fedd7`, not the actual onboarding commit.
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/SorkinType/Briem-Hand`. All three commits (`7b991840`, `68fedd7`, `bd68ecf`) exist and were verified. The `sources/config.yaml` file exists at all three commits.
+
+The `sources/config.yaml` is a complex fontprimer-based recipe that builds multiple variants of Briem Hand (variable, statics, and "Classic Briem Guides" educational variants).
+
+### Assessment
+
+The current METADATA.pb commit (`7b991840`, October 2024) is significantly newer than the actual onboarding commit. The TTFs currently in google/fonts were based on the 1.003 packager run (commit `bd68ecf`, March 2024) plus subsequent manual edits. The `archive_url` references v1.004 which does not correspond to the actual onboarded version.
+
+This situation is complex:
+- The manual post-packager edits (commits `2beab1628`, `d619ba521`, `379bcfca1`) mean the current TTFs don't correspond to any single upstream commit
+- The `config_yaml` field is correctly set to `sources/config.yaml` (which exists at the referenced commit)
+- The commit hash needs correction but the "correct" hash is ambiguous given the post-packager manual edits
+
+## Conclusion
+
+The source block needs correction. The commit hash `7b991840` (October 2024) is newer than the actual onboarding. The most defensible onboarding commit is `bd68ecf84950b0c2e975716cce88c1b43b99d138` (March 28, 2024), which is the upstream commit explicitly referenced in the final accepted 1.003 packager commit. However, the subsequent manual TTF edits to google/fonts (through May 2024) are not reflected in any upstream commit. This should be flagged for review by Eben Sorkin (SorkinType), the font engineer who managed the onboarding.
diff --git a/ofl/brunoace/upstream_info.md b/ofl/brunoace/upstream_info.md
new file mode 100644 (file)
index 0000000..b293530
--- /dev/null
@@ -0,0 +1,83 @@
+# Investigation: Bruno Ace
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bruno Ace |
+| Slug | bruno-ace |
+| License Dir | ofl |
+| Repository URL | https://github.com/googlefonts/Bruno-ace |
+| Commit Hash | 58dc219db32ffd9eaf573f2dc3be2e342410e15a |
+| Config YAML | sources/brunoace-regular.yaml |
+| Status | needs_correction |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/googlefonts/Bruno-ace"
+  commit: "58dc219db32ffd9eaf573f2dc3be2e342410e15a"
+  config_yaml: "sources/brunoace-regular.yaml"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "DESCRIPTION.en_us.html"
+    dest_file: "DESCRIPTION.en_us.html"
+  }
+  files {
+    source_file: "fonts/ttf/BrunoAce-Regular.ttf"
+    dest_file: "BrunoAce-Regular.ttf"
+  }
+  branch: "main"
+}
+```
+
+## Investigation
+
+### Git History in google/fonts
+
+The font has two commits in google/fonts:
+
+1. `3169bfdfe` (2023-03-28) â€” `[gftools-packager] Bruno Ace: Version 1.100; ttfautohint (v1.8.4.7-5d5b);gftools[0.9.27] added`
+2. `90abd17b4` â€” `Initial commit`
+
+The packager commit message states:
+
+> Bruno Ace Version 1.100; ttfautohint (v1.8.4.7-5d5b);gftools[0.9.27] taken from the upstream repo https://github.com/googlefonts/Bruno-ace at commit https://github.com/googlefonts/Bruno-ace/commit/4eb5f7fc38a1548b353b4ee03b1f7043b48ae181.
+
+The commit message explicitly references **`4eb5f7fc38a1548b353b4ee03b1f7043b48ae181`** as the upstream commit used for onboarding â€” NOT the `58dc219` currently in METADATA.pb.
+
+### Commit Discrepancy Analysis
+
+The upstream repository (cached at `upstream_repos/fontc_crater_cache/googlefonts/Bruno-ace`) is currently in a detached HEAD state at `58dc219`. The main branch head is `b6fea3b` ("rename sources/*.yaml files to what fontc_crater / google-fonts-sources like").
+
+Timeline of relevant upstream commits:
+- `58dc219` (2023-03-23) â€” "Update README.md" â€” only README change
+- `4eb5f7f` (2023-03-28) â€” "Update BrunoAceSC-Regular.ttf" â€” TTF file update
+
+The google/fonts packager commit ran on 2023-03-28 15:34:32 +0200. Upstream commit `4eb5f7f` (which updated the TTF files) was also created on 2023-03-28 at 15:34:03 +0200 â€” just 29 seconds before the packager commit. This timing confirms that `4eb5f7f` was the actual commit used for onboarding.
+
+METADATA.pb incorrectly references `58dc219` (a README-only commit from March 23), which is an earlier commit that does not include the final TTF files that were actually packaged.
+
+### Config YAML
+
+At commit `4eb5f7f`, the file `sources/brunoace-regular.yaml` exists with content:
+
+```yaml
+sources:
+  - BrunoAce-Regular.glyphs
+buildTTF: true
+buildOTF: false
+buildStatic: true
+buildWebfont: false
+```
+
+Note: In the latest main branch commit (`b6fea3b`), this file was renamed to `sources/config-regular.yaml`. The METADATA.pb `config_yaml` field still references the old name `sources/brunoace-regular.yaml`, which is correct for the commit `4eb5f7f` (the actual onboarding commit). If the commit is corrected to `4eb5f7f`, the config path remains valid.
+
+## Conclusion
+
+The commit hash in METADATA.pb needs correction from `58dc219db32ffd9eaf573f2dc3be2e342410e15a` to `4eb5f7fc38a1548b353b4ee03b1f7043b48ae181`. The packager commit message explicitly states `4eb5f7f` was the onboarding commit, and the timing (29 seconds before the packager ran) further confirms this. The `config_yaml` path `sources/brunoace-regular.yaml` is valid at `4eb5f7f`.
diff --git a/ofl/brunoacesc/upstream_info.md b/ofl/brunoacesc/upstream_info.md
new file mode 100644 (file)
index 0000000..746eea2
--- /dev/null
@@ -0,0 +1,84 @@
+# Investigation: Bruno Ace SC
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bruno Ace SC |
+| Slug | bruno-ace-sc |
+| License Dir | ofl |
+| Repository URL | https://github.com/googlefonts/Bruno-ace |
+| Commit Hash | 58dc219db32ffd9eaf573f2dc3be2e342410e15a |
+| Config YAML | sources/brunoacesc-regular.yaml |
+| Status | needs_correction |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/googlefonts/Bruno-ace"
+  commit: "58dc219db32ffd9eaf573f2dc3be2e342410e15a"
+  config_yaml: "sources/brunoacesc-regular.yaml"
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  files {
+    source_file: "DESCRIPTION.en_us.html"
+    dest_file: "DESCRIPTION.en_us.html"
+  }
+  files {
+    source_file: "fonts/ttf/BrunoAceSC-Regular.ttf"
+    dest_file: "BrunoAceSC-Regular.ttf"
+  }
+  branch: "main"
+}
+```
+
+## Investigation
+
+### Git History in google/fonts
+
+The font has two commits in google/fonts:
+
+1. `223112643` (2023-03-28) â€” `[gftools-packager] Bruno Ace SC: Version 1.100; ttfautohint (v1.8.4.7-5d5b);gftools[0.9.27] added`
+2. `90abd17b4` â€” `Initial commit`
+
+The packager commit message states:
+
+> Bruno Ace SC Version 1.100; ttfautohint (v1.8.4.7-5d5b);gftools[0.9.27] taken from the upstream repo https://github.com/googlefonts/Bruno-ace at commit https://github.com/googlefonts/Bruno-ace/commit/4eb5f7fc38a1548b353b4ee03b1f7043b48ae181.
+
+The commit message explicitly references **`4eb5f7fc38a1548b353b4ee03b1f7043b48ae181`** as the upstream commit used for onboarding â€” NOT the `58dc219` currently in METADATA.pb. This is the same discrepancy as found in Bruno Ace.
+
+### Commit Discrepancy Analysis
+
+Bruno Ace SC shares the same upstream repository as Bruno Ace (`https://github.com/googlefonts/Bruno-ace`). The same commit discrepancy applies:
+
+- `58dc219` (2023-03-23) â€” "Update README.md" â€” only README change; **currently in METADATA.pb (incorrect)**
+- `4eb5f7f` (2023-03-28) â€” "Update BrunoAceSC-Regular.ttf" â€” explicitly updates `fonts/ttf/BrunoAceSC-Regular.ttf`; **referenced in packager commit message (correct)**
+
+The name of this upstream commit ("Update BrunoAceSC-Regular.ttf") and the packager commit running seconds after on 2023-03-28 both confirm `4eb5f7f` is the correct onboarding commit.
+
+### Config YAML
+
+At commit `4eb5f7f`, the file `sources/brunoacesc-regular.yaml` exists with content:
+
+```yaml
+sources:
+  - BrunoAceSC-Regular.glyphs
+buildTTF: true
+buildOTF: false
+buildStatic: true
+buildWebfont: false
+```
+
+Note: In the latest main branch commit (`b6fea3b`), this file was renamed to `sources/config-small-caps.yaml`. The METADATA.pb `config_yaml` field references `sources/brunoacesc-regular.yaml`, which is the correct name at commit `4eb5f7f`.
+
+### Shared Repository Note
+
+Both Bruno Ace and Bruno Ace SC live in the same upstream repository (`googlefonts/Bruno-ace`) and both METADATA.pb files reference the same incorrect commit hash. Both need to be corrected to `4eb5f7fc38a1548b353b4ee03b1f7043b48ae181`.
+
+## Conclusion
+
+The commit hash in METADATA.pb needs correction from `58dc219db32ffd9eaf573f2dc3be2e342410e15a` to `4eb5f7fc38a1548b353b4ee03b1f7043b48ae181`. The packager commit message explicitly states `4eb5f7f` was the onboarding commit. The commit name itself ("Update BrunoAceSC-Regular.ttf") confirms it contains the actual font file used. The `config_yaml` path `sources/brunoacesc-regular.yaml` is valid at `4eb5f7f`.
diff --git a/ofl/brygada1918/upstream_info.md b/ofl/brygada1918/upstream_info.md
new file mode 100644 (file)
index 0000000..e8e71b2
--- /dev/null
@@ -0,0 +1,87 @@
+# Investigation: Brygada 1918
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Brygada 1918 |
+| Slug | brygada-1918 |
+| License Dir | ofl |
+| Repository URL | https://github.com/kosmynkab/Brygada-1918 |
+| Commit Hash | 8325dc36ca87b8c7b8909c3e048fe90fd7e46c4b |
+| Config YAML | sources/config.yaml |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/kosmynkab/Brygada-1918"
+  commit: "8325dc36ca87b8c7b8909c3e048fe90fd7e46c4b"
+  files {
+    source_file: "fonts/variable/Brygada1918[wght].ttf"
+    dest_file: "Brygada1918[wght].ttf"
+  }
+  files {
+    source_file: "fonts/variable/Brygada1918-Italic[wght].ttf"
+    dest_file: "Brygada1918-Italic[wght].ttf"
+  }
+  files {
+    source_file: "OFL.txt"
+    dest_file: "OFL.txt"
+  }
+  branch: "main"
+  config_yaml: "sources/config.yaml"
+}
+```
+
+## Investigation
+
+### Git History in google/fonts
+
+The font has three commits in google/fonts:
+
+1. `4714790f8` â€” `Brygada 1918: Version 3.006 added (#3252)`
+2. `bc90a8ac9` â€” `Brygada 1918: Version 3.005 added (#3095)`
+3. `5bfd14ed2` â€” `Brygada 1918: Version 3.004 added (#2978)`
+
+The most recent commit message (from PR #3252) states:
+
+> Brygada 1918 Version 3.006 taken from the upstream repo https://github.com/kosmynkab/Brygada-1918 at commit https://github.com/kosmynkab/Brygada-1918/commit/8325dc36ca87b8c7b8909c3e048fe90fd7e46c4b.
+
+This directly confirms both the repository URL and the commit hash in METADATA.pb.
+
+### Upstream Repository
+
+The repo is cached at `upstream_repos/fontc_crater_cache/kosmynkab/Brygada-1918`. Commit `8325dc36ca87b8c7b8909c3e048fe90fd7e46c4b` was verified to exist â€” it is the most recent commit on the main branch ("Generated version 3.006", dated 2021-03-24 12:55:22 +0100).
+
+### Config YAML
+
+`sources/config.yaml` exists in the upstream repository at the referenced commit. It is located at `sources/config.yaml` (relative to repo root) and contains:
+
+```yaml
+sources:
+  - Brygada1918.glyphs
+  - Brygada1918-Italic.glyphs
+axisOrder:
+  - wght
+familyName: Brygada 1918
+```
+
+The `config_yaml: "sources/config.yaml"` field in METADATA.pb correctly points to this file.
+
+### Designers
+
+The font was created by a team: Capitalics, Mateusz Machalski, Borys Kosmynka, Ania WieluƄska, and PrzemysƂaw Hoffer. The upstream repository is hosted under `kosmynkab` (Borys Kosmynka's GitHub account).
+
+### METADATA.pb Status
+
+All fields are complete and correct:
+- `repository_url` matches the commit message in google/fonts
+- `commit` matches the commit message and is verified in the upstream repo as the HEAD of main
+- `config_yaml: "sources/config.yaml"` is set and the file exists at the referenced commit
+
+## Conclusion
+
+No action needed. The source block in METADATA.pb is complete and correct. Status is **complete** with HIGH confidence.
diff --git a/ofl/buenard/upstream_info.md b/ofl/buenard/upstream_info.md
new file mode 100644 (file)
index 0000000..ba56874
--- /dev/null
@@ -0,0 +1,62 @@
+# Buenard
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: Gustavo Ibarra
+**METADATA.pb path**: `ofl/buenard/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/googlefonts/buenard |
+| Commit | `cf400a29bbb4c8d850c221aa5b9835e8783648fb` |
+| Config YAML | `sources/config.yaml` |
+| Branch | `main` |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/googlefonts/buenard` is documented in the METADATA.pb `source { repository_url }` field. It was also referenced in the google/fonts commit `7217e59b6` ("Buenard: Version 2.000 added"), which explicitly states: "Taken from the upstream repo https://www.github.com/googlefonts/buenard". The copyright string in the font files also references this URL.
+
+## How the Commit Hash Was Identified
+
+The current METADATA.pb records commit `cf400a29bbb4c8d850c221aa5b9835e8783648fb`. However, the Version 2.000 onboarding commit in google/fonts (`7217e59b6`, 2025-01-16) originally referenced a different commit: `4e9ae114c1180a9093d310e7985aa4e024e4901e`.
+
+The upstream repository appears to have been force-pushed/squashed to a single commit. The repository now contains only one commit (`cf400a2`, dated 2025-01-16 11:34:34 +0000, message: "Let skia-python float"). The original onboarding commit `4e9ae114` no longer exists in the repository.
+
+The current commit `cf400a29` was set in the METADATA.pb as part of the batch port commit `19cdcec59` ("[Batch 1/4] port info from fontc_crater targets list"), which ported data from fontc_crater's target.json.
+
+Critically, both the upstream commit (`cf400a2`, 2025-01-16 11:34:34) and the last google/fonts binary update (`851184c61` "Cedilla, brackets, lcaron", 2025-01-16 11:48:34) are from the same day, within 14 minutes of each other. This strongly suggests the font was built from this single remaining commit.
+
+## How Config YAML Was Resolved
+
+The file `sources/config.yaml` exists in the upstream repository at the recorded commit. Its contents are:
+
+```yaml
+sources:
+  - Buenard.glyphs
+axisOrder:
+  - wght
+familyName: Buenard
+```
+
+This is a valid gftools-builder configuration referencing a Glyphs source file. No override config.yaml exists in the google/fonts family directory.
+
+## Verification
+
+- Commit exists in upstream repo: Yes (it is the only commit)
+- Commit date: 2025-01-16 11:34:34 +0000
+- Commit message: "Let skia-python float"
+- Source files at commit: `sources/Buenard.glyphs`, `sources/config.yaml`
+- Font binary in google/fonts: Variable font `Buenard[wght].ttf` (wght 400-700)
+- Last binary update in google/fonts: 2025-01-16 (commit `851184c61`)
+- Font added to Google Fonts: 2011-12-19 (original static version)
+- Version 2.000 (variable) update: 2025-01-16
+
+## Confidence
+
+**Medium-High**: The repository URL is well-established and confirmed by multiple sources. The commit hash `cf400a29` is the only commit remaining in the force-pushed repo, making it the only viable reference. The timestamps confirm it is contemporary with the font binary update. The original onboarding commit `4e9ae114` is lost, but since the repo was squashed on the same day as the binary update, the source files should be functionally equivalent.
+
+## Open Questions
+
+1. The original onboarding commit `4e9ae114c1180a9093d310e7985aa4e024e4901e` referenced in the v2.000 google/fonts commit is no longer present in the upstream repository. The repo was force-pushed to a single commit on the same day. Were there meaningful source differences between that commit and the current one? Given the same-day timing, any differences are likely negligible.
diff --git a/ofl/bungee/upstream_info.md b/ofl/bungee/upstream_info.md
new file mode 100644 (file)
index 0000000..dc3fa15
--- /dev/null
@@ -0,0 +1,60 @@
+# Bungee
+
+**Date investigated**: 2026-02-26
+**Status**: complete
+**Designer**: David Jonathan Ross
+**METADATA.pb path**: `ofl/bungee/METADATA.pb`
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Repository URL | https://github.com/djrrb/Bungee |
+| Commit | `eb03cf69adab5094f6b84e95357789cdf3bfeb99` |
+| Config YAML | Override in google/fonts (`ofl/bungee/config.yaml`) |
+| Branch | `master` |
+
+## How the Repository URL Was Found
+
+The repository URL `https://github.com/djrrb/Bungee` is documented in the METADATA.pb `source { repository_url }` field. It was also explicitly referenced in the google/fonts commit `6bc4f73e2` ("Bungee: Version 2.000 added"): "Taken from the upstream repo https://github.com/djrrb/Bungee". The repository belongs to David Jonathan Ross (djrrb), the font's designer. The METADATA.pb also includes a minisite URL at `https://djr.com/bungee`.
+
+Note: This upstream repository is shared by all Bungee variants (Bungee, Bungee Color, Bungee Hairline, Bungee Inline, Bungee Outline, Bungee Shade, Bungee Spice, Bungee Tint).
+
+## How the Commit Hash Was Identified
+
+The commit `eb03cf69adab5094f6b84e95357789cdf3bfeb99` is explicitly referenced in the google/fonts commit `6bc4f73e2` ("Bungee: Version 2.000 added"): "Taken from the upstream repo https://github.com/djrrb/Bungee at commit https://github.com/djrrb/Bungee/commit/eb03cf69adab5094f6b84e95357789cdf3bfeb99."
+
+This commit exists in the upstream repo with date 2024-05-30 and message "Bump fontbakery". The METADATA.pb also references an archive URL for the v2.000 release: `https://github.com/djrrb/Bungee/releases/download/v2.000/Bungee-fonts.zip`, indicating the binary was taken from a release ZIP rather than being compiled from source.
+
+## How Config YAML Was Resolved
+
+The upstream repository does not contain a `config.yaml` file at any commit. An override `config.yaml` was created in the google/fonts family directory (`ofl/bungee/config.yaml`) as part of commit `f6c68379a` ("Add override config.yaml for 50 font families"). The override config contains:
+
+```yaml
+sources:
+  - sources/1-drawing/Bungee-Regular.ufo
+familyName: Bungee
+buildStatic: true
+buildOTF: false
+```
+
+The source file `sources/1-drawing/Bungee-Regular.ufo` was verified to exist at the recorded commit `eb03cf69`. Since an override config.yaml exists in google/fonts, the `config_yaml` field is correctly omitted from the METADATA.pb source block.
+
+## Verification
+
+- Commit exists in upstream repo: Yes
+- Commit date: 2024-05-30 07:17:37 +0200
+- Commit message: "Bump fontbakery"
+- Source files at commit: `sources/1-drawing/Bungee-Regular.ufo` (verified)
+- Font binary in google/fonts: `Bungee-Regular.ttf` (static)
+- Binary taken from release archive: `Bungee-fonts.zip` (v2.000 release)
+- Font originally added to Google Fonts: 2016-06-20
+- Version 2.000 update: google/fonts commit `6bc4f73e2`
+
+## Confidence
+
+**High**: The commit hash is explicitly referenced in the google/fonts commit message that brought in the v2.000 update. The commit exists in the upstream repo and the source files are present. The override config.yaml correctly points to the source file at the recorded commit. The binary was distributed via a release archive from the same commit.
+
+## Open Questions
+
+None. All data is well-documented and verified.
diff --git a/ofl/bungeecolor/upstream_info.md b/ofl/bungeecolor/upstream_info.md
new file mode 100644 (file)
index 0000000..8dd00bc
--- /dev/null
@@ -0,0 +1,52 @@
+# Investigation: Bungee Color
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bungee Color |
+| Slug | bungee-color |
+| License Dir | ofl |
+| Repository URL | https://github.com/djrrb/Bungee |
+| Commit Hash | bb29250eb071b59c4e48f44cf146943e2aafae61 |
+| Config YAML | override config.yaml in google/fonts |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/djrrb/Bungee"
+  commit: "bb29250eb071b59c4e48f44cf146943e2aafae61"
+}
+```
+
+## Investigation
+
+The source block was added to METADATA.pb by Cosimo Lupo (anthrotype) in google/fonts commit `e9ba362c8` ("Revert BungeeColor-Regular.ttf to COLRv0 only", PR #5137, 2022-08-26). The PR body states: "replaced the current BungeeColor-Regular.ttf with the upstream one found on djrrb/Bungee repository." This was the same commit that set the repository_url and commit fields.
+
+The repository URL `https://github.com/djrrb/Bungee` is the shared upstream for all Bungee variants. It is cached at `upstream_repos/fontc_crater_cache/djrrb/Bungee/`.
+
+The commit `bb29250eb071b59c4e48f44cf146943e2aafae61` (message: "SBIX font doesn't work, isn't needed anymore", David Jonathan Ross, 2022-08-16) is the commit at which the COLRv0 binary was taken. The PR body references commit `a8a8a215` for the actual binary file path, but the METADATA.pb records `bb29250e`. Both commits reference the same COLRv0 binary file (verified: SHA-256 identical at both commits). `bb29250e` was likely the HEAD of the relevant branch when Cosimo prepared the PR.
+
+Bungee Color history in google/fonts:
+1. 2021-12-01: Exploratory addition (PR #4128, rsheeter)
+2. Multiple maximum_color experiments (adding SVG/CBDT color tables)
+3. 2022-08-26: Reverted to COLRv0-only (PR #5137, anthrotype) â€” current state
+
+The upstream repository does not contain a `config.yaml`. An override `config.yaml` was created in the google/fonts family directory (`ofl/bungeecolor/config.yaml`) by Felipe Sanches in commit `f6c68379a` ("Add override config.yaml for 50 font families", 2026-02-16). Contents:
+
+```yaml
+sources:
+  - sources/2-build/Bungee_Color/Bungee_Color-Regular.ufo
+familyName: Bungee Color
+buildStatic: true
+buildOTF: false
+```
+
+The source file `sources/2-build/Bungee_Color/Bungee_Color-Regular.ufo` was verified to exist at the recorded commit `bb29250e`. Since an override config.yaml exists in google/fonts, the `config_yaml` field is correctly omitted from the METADATA.pb source block.
+
+## Conclusion
+
+All source metadata is complete and verified. The repository URL, commit hash, and override config.yaml are all in place. The status is `complete`. The minor discrepancy between the PR-referenced commit (`a8a8a21`) and the METADATA.pb-recorded commit (`bb29250e`) is not a functional issue since both produce identical COLRv0 font files.
diff --git a/ofl/bungeehairline/upstream_info.md b/ofl/bungeehairline/upstream_info.md
new file mode 100644 (file)
index 0000000..f2df575
--- /dev/null
@@ -0,0 +1,55 @@
+# Investigation: Bungee Hairline
+
+## Summary
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bungee Hairline |
+| Slug | bungee-hairline |
+| License Dir | ofl |
+| Repository URL | https://github.com/djrrb/Bungee |
+| Commit Hash | eb03cf69adab5094f6b84e95357789cdf3bfeb99 |
+| Config YAML | override config.yaml in google/fonts |
+| Status | complete |
+| Confidence | HIGH |
+
+## Source Data (METADATA.pb)
+
+```
+source {
+  repository_url: "https://github.com/djrrb/Bungee"
+  commit: "eb03cf69adab5094f6b84e95357789cdf3bfeb99"
+  archive_url: "https://github.com/djrrb/Bungee/releases/download/v2.000/Bungee-fonts.zip"
+  files {
+    source_file: "Bungee_Basic/BungeeHairline-Regular.ttf"
+    dest_file: "BungeeHairline-Regular.ttf"
+  }
+  branch: "master"
+}
+```
+
+## Investigation
+
+The version 2.000 update was onboarded via google/fonts commit `93c3a3d13` ("Bungee Hairline: Version 2.000 added", Viviana Monsalve, 2024-05-30). The commit message explicitly states: "Taken from the upstream repo https://github.com/djrrb/Bungee at commit https://github.com/djrrb/Bungee/commit/eb03cf69adab5094f6b84e95357789cdf3bfeb99."
+
+Earlier, the repository URL had been added without a commit hash by Simon Cozens in commit `46a7c0576` ("Add more upstreams (a,b)", 2024-01-14). The Bungee Hairline commit hash was added to METADATA.pb only when v2.000 was onboarded.
+
+The repository URL `https://github.com/djrrb/Bungee` is the shared upstream for all Bungee variants. It is cached at `upstream_repos/fontc_crater_cache/djrrb/Bungee/`.
+
+The commit `eb03cf69adab5094f6b84e95357789cdf3bfeb99` (message: "Bump fontbakery", Just van Rossum, 2024-05-30) is the HEAD of the master branch at the time of the v2.000 onboarding. The METADATA.pb also includes an archive_url pointing to the v2.000 release ZIP, which is the actual source of the binary.
+
+The upstream repository does not contain a `config.yaml`. An override `config.yaml` was created in the google/fonts family directory (`ofl/bungeehairline/config.yaml`) by Felipe Sanches in commit `f6c68379a` ("Add override config.yaml for 50 font families", 2026-02-16). Contents:
+
+```yaml
+sources:
+  - sources/2-build/Bungee_Basic/Bungee-Hairline.ufo
+familyName: Bungee Hairline
+buildStatic: true
+buildOTF: false
+```
+
+The source file `sources/2-build/Bungee_Basic/Bungee-Hairline.ufo` was verified to exist at the recorded commit `eb03cf69`. Since an override config.yaml exists in google/fonts, the `config_yaml` field is correctly omitted from the METADATA.pb source block.
+
+## Conclusion
+
+All source metadata is complete and verified. The repository URL, commit hash, and override config.yaml are all in place. The commit hash is well-documented in the google/fonts commit message for the v2.000 update. Status is `complete`.
diff --git a/ofl/bungeeinline/upstream_info.md b/ofl/bungeeinline/upstream_info.md
new file mode 100644 (file)
index 0000000..09585de
--- /dev/null
@@ -0,0 +1,75 @@
+# Investigation Report: Bungee Inline
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bungee Inline |
+| Designer | David Jonathan Ross |
+| Repository URL | https://github.com/djrrb/Bungee |
+| Commit Hash | `eb03cf69adab5094f6b84e95357789cdf3bfeb99` |
+| Branch | master |
+| Config YAML | N/A (override in google/fonts) |
+| Date Added | 2016-06-20 |
+| License | OFL |
+| Status | complete |
+
+## How URL Found
+
+The repository URL `https://github.com/djrrb/Bungee` is recorded in METADATA.pb and was added as part of the upstream metadata by Viviana Monsalve on 2024-05-30 during the v2.000 update. The URL is clearly correct as the Bungee project by David Jonathan Ross (djrrb) is well-known and the repo contains all Bungee variant sources.
+
+## How Commit Determined
+
+The commit `eb03cf69adab5094f6b84e95357789cdf3bfeb99` was recorded in the google/fonts commit message for the v2.000 update:
+
+```
+dccf62125 Bungee Inline: Version 2.000 added
+Taken from the upstream repo https://github.com/djrrb/Bungee at commit
+https://github.com/djrrb/Bungee/commit/eb03cf69adab5094f6b84e95357789cdf3bfeb99.
+```
+
+This commit was made by Viviana Monsalve on 2024-05-30.
+
+**Cross-verification**: The commit `eb03cf69` in the upstream repo corresponds exactly to the `v2.000` release tag. The commit itself is "Bump fontbakery" by Just van Rossum, dated 2024-05-30. The METADATA.pb also references `archive_url: "https://github.com/djrrb/Bungee/releases/download/v2.000/Bungee-fonts.zip"` which aligns with this being the v2.000 release. The binary fonts were taken from this release archive (pre-built), not compiled from source via gftools-builder.
+
+### History
+
+- **v1.001** (2017-05-23): Originally added by Marc Foley (`af0dce45e`)
+- **v2.000** (2024-05-30): Updated by Viviana Monsalve (`dccf62125`) from upstream commit `eb03cf69` / v2.000 release
+
+## Config YAML Status
+
+**No config.yaml in upstream repo** at any commit. The Bungee project uses a custom build pipeline:
+1. Assembly scripts (`assembleSources.py`, `assembleRotatedSources.py`, `assembleColorSources.py`) process raw UFO sources from `sources/1-drawing/` into buildable UFOs in `sources/2-build/`
+2. `fontmake` compiles the assembled UFOs
+3. The `build.sh` script orchestrates the entire process
+
+This is not compatible with standard gftools-builder.
+
+**Override config.yaml** exists in google/fonts at `ofl/bungeeinline/config.yaml`:
+```yaml
+sources:
+  - sources/2-build/Bungee_Basic/Bungee-Inline.ufo
+familyName: Bungee Inline
+buildStatic: true
+buildOTF: false
+```
+
+This override points to `sources/2-build/Bungee_Basic/Bungee-Inline.ufo` which exists at the recorded commit `eb03cf69`. The `sources/2-build/` directory was removed from the upstream repo 3 commits later (in `7ffc5a64`), so the override config only works with the recorded commit hash.
+
+## Verification
+
+- **Repository URL**: Valid, accessible GitHub repository
+- **Commit hash exists**: Confirmed `eb03cf69` exists in the upstream repo
+- **Tag alignment**: Commit `eb03cf69` is exactly the `v2.000` release tag
+- **Source files at commit**: `sources/2-build/Bungee_Basic/Bungee-Inline.ufo` exists at this commit
+- **Override config**: Correctly references existing source path at the recorded commit
+- **Binary source**: METADATA.pb uses `archive_url` pointing to v2.000 release zip; the binary `BungeeInline-Regular.ttf` was taken from `Bungee_Basic/BungeeInline-Regular.ttf` within the archive
+
+## Confidence Level
+
+**HIGH** - The commit hash is explicitly stated in the google/fonts commit message and aligns exactly with the upstream v2.000 release tag. The override config.yaml correctly references source files that exist at this commit.
+
+## Open Questions
+
+None. The data is fully consistent and verified.
diff --git a/ofl/bungeeoutline/upstream_info.md b/ofl/bungeeoutline/upstream_info.md
new file mode 100644 (file)
index 0000000..2ab4329
--- /dev/null
@@ -0,0 +1,70 @@
+# Investigation Report: Bungee Outline
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bungee Outline |
+| Designer | David Jonathan Ross |
+| Repository URL | https://github.com/djrrb/Bungee |
+| Commit Hash | `eb03cf69adab5094f6b84e95357789cdf3bfeb99` |
+| Branch | master |
+| Config YAML | N/A (override in google/fonts) |
+| Date Added | 2016-06-20 |
+| License | OFL |
+| Status | complete |
+
+## How URL Found
+
+The repository URL `https://github.com/djrrb/Bungee` is recorded in METADATA.pb. All Bungee variants (Bungee, Bungee Hairline, Bungee Inline, Bungee Outline, Bungee Shade, Bungee Spice, Bungee Tint) share this single upstream repository. The URL was added by Viviana Monsalve during the v2.000 update on 2024-05-30.
+
+## How Commit Determined
+
+The commit `eb03cf69adab5094f6b84e95357789cdf3bfeb99` is explicitly stated in the google/fonts commit message:
+
+```
+d3d22093c Bungee Outline: Version 2.000 added
+Taken from the upstream repo https://github.com/djrrb/Bungee at commit
+https://github.com/djrrb/Bungee/commit/eb03cf69adab5094f6b84e95357789cdf3bfeb99.
+```
+
+This commit was authored by Viviana Monsalve on 2024-05-30.
+
+**Cross-verification**: The commit `eb03cf69` corresponds exactly to the upstream `v2.000` release tag. The METADATA.pb also references `archive_url: "https://github.com/djrrb/Bungee/releases/download/v2.000/Bungee-fonts.zip"`, confirming the fonts were taken from the v2.000 release archive. The same commit hash is used for Bungee Inline, Bungee Shade, and Bungee Spice, all of which were updated to v2.000 on the same date.
+
+### History
+
+- **v1.001** (2017-05-23): Originally added by Marc Foley (`ca9abdfc4`, PR #1002)
+- **v2.000** (2024-05-30): Updated by Viviana Monsalve (`d3d22093c`) from upstream commit `eb03cf69` / v2.000 release
+
+## Config YAML Status
+
+**No config.yaml in upstream repo** at any commit. The Bungee project uses a custom build pipeline with assembly scripts (`assembleSources.py`, etc.) that transform raw UFO sources in `sources/1-drawing/` into buildable UFOs in `sources/2-build/`, followed by `fontmake` compilation. This is not compatible with standard gftools-builder.
+
+**Override config.yaml** exists in google/fonts at `ofl/bungeeoutline/config.yaml`:
+```yaml
+sources:
+  - sources/2-build/Bungee_Basic/Bungee-Outline.ufo
+familyName: Bungee Outline
+buildStatic: true
+buildOTF: false
+```
+
+This override points to `sources/2-build/Bungee_Basic/Bungee-Outline.ufo` which exists at the recorded commit `eb03cf69`. Note that the `sources/2-build/` directory was removed from the upstream repo 3 commits later (in `7ffc5a64` "remove /fonts folders and /2-build folder"), so this override config only works with the recorded commit hash.
+
+## Verification
+
+- **Repository URL**: Valid, accessible GitHub repository
+- **Commit hash exists**: Confirmed `eb03cf69` exists in the upstream repo
+- **Tag alignment**: Commit `eb03cf69` is exactly the `v2.000` release tag
+- **Source files at commit**: `sources/2-build/Bungee_Basic/Bungee-Outline.ufo` exists at this commit
+- **Override config**: Correctly references existing source path at the recorded commit
+- **Binary source**: METADATA.pb uses `archive_url` pointing to v2.000 release zip; the binary was taken from `Bungee_Basic/BungeeOutline-Regular.ttf` within the archive
+
+## Confidence Level
+
+**HIGH** - The commit hash is explicitly stated in the google/fonts commit message and aligns exactly with the upstream v2.000 release tag. All data is consistent.
+
+## Open Questions
+
+None. The data is fully consistent and verified.
diff --git a/ofl/bungeeshade/upstream_info.md b/ofl/bungeeshade/upstream_info.md
new file mode 100644 (file)
index 0000000..d5362e5
--- /dev/null
@@ -0,0 +1,70 @@
+# Investigation Report: Bungee Shade
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bungee Shade |
+| Designer | David Jonathan Ross |
+| Repository URL | https://github.com/djrrb/Bungee |
+| Commit Hash | `eb03cf69adab5094f6b84e95357789cdf3bfeb99` |
+| Branch | master |
+| Config YAML | N/A (override in google/fonts) |
+| Date Added | 2016-06-20 |
+| License | OFL |
+| Status | complete |
+
+## How URL Found
+
+The repository URL `https://github.com/djrrb/Bungee` is recorded in METADATA.pb. All Bungee variants share this single upstream repository by David Jonathan Ross (djrrb). The URL was added by Viviana Monsalve during the v2.000 update on 2024-05-30.
+
+## How Commit Determined
+
+The commit `eb03cf69adab5094f6b84e95357789cdf3bfeb99` is explicitly stated in the google/fonts commit message:
+
+```
+673c50cae Bungee Shade: Version 2.000 added
+Taken from the upstream repo https://github.com/djrrb/Bungee at commit
+https://github.com/djrrb/Bungee/commit/eb03cf69adab5094f6b84e95357789cdf3bfeb99.
+```
+
+This commit was authored by Viviana Monsalve on 2024-05-30.
+
+**Cross-verification**: The commit `eb03cf69` corresponds exactly to the upstream `v2.000` release tag. The commit message in the upstream repo is "Bump fontbakery" by Just van Rossum (2024-05-30). The METADATA.pb also references `archive_url: "https://github.com/djrrb/Bungee/releases/download/v2.000/Bungee-fonts.zip"`. This is the same commit hash used for Bungee Inline, Bungee Outline, and Bungee Spice -- all updated to v2.000 on the same date.
+
+### History
+
+- **v1.001** (2017-05-23): Originally added by Marc Foley (`8ec727b2c`, PR #992)
+- **v2.000** (2024-05-30): Updated by Viviana Monsalve (`673c50cae`) from upstream commit `eb03cf69` / v2.000 release
+
+## Config YAML Status
+
+**No config.yaml in upstream repo** at any commit. The Bungee project uses a custom build pipeline with assembly scripts (`assembleSources.py`, etc.) that transform raw UFO sources in `sources/1-drawing/` into buildable UFOs in `sources/2-build/`, followed by `fontmake` compilation via `build.sh`. This is not compatible with standard gftools-builder.
+
+**Override config.yaml** exists in google/fonts at `ofl/bungeeshade/config.yaml`:
+```yaml
+sources:
+  - sources/2-build/Bungee_Basic/Bungee-Shade.ufo
+familyName: Bungee Shade
+buildStatic: true
+buildOTF: false
+```
+
+This override points to `sources/2-build/Bungee_Basic/Bungee-Shade.ufo` which exists at the recorded commit `eb03cf69`. The `sources/2-build/` directory was removed from the upstream repo 3 commits later (in `7ffc5a64` "remove /fonts folders and /2-build folder"), so this override config only works with the recorded commit hash.
+
+## Verification
+
+- **Repository URL**: Valid, accessible GitHub repository
+- **Commit hash exists**: Confirmed `eb03cf69` exists in the upstream repo
+- **Tag alignment**: Commit `eb03cf69` is exactly the `v2.000` release tag
+- **Source files at commit**: `sources/2-build/Bungee_Basic/Bungee-Shade.ufo` exists at this commit
+- **Override config**: Correctly references existing source path at the recorded commit
+- **Binary source**: METADATA.pb uses `archive_url` pointing to v2.000 release zip; the binary was taken from `Bungee_Basic/BungeeShade-Regular.ttf` within the archive
+
+## Confidence Level
+
+**HIGH** - The commit hash is explicitly stated in the google/fonts commit message and aligns exactly with the upstream v2.000 release tag. All data is consistent.
+
+## Open Questions
+
+None. The data is fully consistent and verified.
diff --git a/ofl/bungeespice/upstream_info.md b/ofl/bungeespice/upstream_info.md
new file mode 100644 (file)
index 0000000..1ff482f
--- /dev/null
@@ -0,0 +1,79 @@
+# Investigation Report: Bungee Spice
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bungee Spice |
+| Designer | David Jonathan Ross |
+| Repository URL | https://github.com/djrrb/Bungee |
+| Commit Hash | `eb03cf69adab5094f6b84e95357789cdf3bfeb99` |
+| Branch | master |
+| Config YAML | N/A (override in google/fonts) |
+| Date Added | 2022-04-05 |
+| License | OFL |
+| Status | complete |
+
+## How URL Found
+
+The repository URL `https://github.com/djrrb/Bungee` is recorded in METADATA.pb. It was added by Viviana Monsalve on 2024-05-30 (`a7a9198fd` "Bungee Spice github repo url added") during the v2.000 update cycle. All Bungee variants share this upstream repository.
+
+## How Commit Determined
+
+The commit `eb03cf69adab5094f6b84e95357789cdf3bfeb99` is explicitly stated in the google/fonts commit message:
+
+```
+17bae36eb Bungee Spice: Version 2.000 added
+Taken from the upstream repo https://github.com/djrrb/Bungee at commit
+https://github.com/djrrb/Bungee/commit/eb03cf69adab5094f6b84e95357789cdf3bfeb99.
+```
+
+This commit was authored by Viviana Monsalve on 2024-05-30.
+
+**Cross-verification**: The commit `eb03cf69` corresponds exactly to the upstream `v2.000` release tag. The METADATA.pb also references `archive_url: "https://github.com/djrrb/Bungee/releases/download/v2.000/Bungee-fonts.zip"`. This is the same commit hash used for Bungee Inline, Bungee Outline, and Bungee Shade.
+
+### History
+
+Bungee Spice has a more complex history than the other "basic" Bungee variants:
+
+- **Initial add** (2021-12-07): Added by Rod Sheeter (`e15b29728`, PR #4154) as a COLRv1 color font
+- **Color table processing** (2022): Multiple rounds of color table manipulation using `maximum_color` from nanoemoji, including:
+  - `e6fe96669` - Exploratory generation of additional color tables
+  - `9f92199e0` - Test builds passed through nanoemoji's maximum_color
+  - `12ed8f97f` - Removed CBDT, ran maximum_color (PR #4993)
+  - `87ecc71a0` - Re-run maximum_color to fix colored .notdef glyph issue (PR #5171)
+- **v2.000** (2024-05-30): Updated by Viviana Monsalve (`17bae36eb`) from upstream commit `eb03cf69`
+
+## Config YAML Status
+
+**No config.yaml in upstream repo** at any commit. The Bungee project uses a custom build pipeline. For the color fonts (Bungee Spice), the build process is particularly complex: assembly scripts create a COLRv1 font, then `maximum_color` adds SVG tables.
+
+**Override config.yaml** exists in google/fonts at `ofl/bungeespice/config.yaml`:
+```yaml
+sources:
+  - sources/2-build/Bungee_Color/Bungee_Color-Regular.ufo
+familyName: Bungee Spice
+buildStatic: true
+buildOTF: false
+```
+
+This override points to `sources/2-build/Bungee_Color/Bungee_Color-Regular.ufo` which exists at the recorded commit `eb03cf69`. Note that the `sources/2-build/` directory was removed from the upstream repo 3 commits later (in `7ffc5a64`), so this override config only works with the recorded commit hash.
+
+**Important caveat**: The override config may not fully reproduce the original binary, because Bungee Spice is a COLRv1 color font that requires additional post-processing with `maximum_color` to add SVG tables. A standard gftools-builder invocation from the UFO source alone would not produce an equivalent font.
+
+## Verification
+
+- **Repository URL**: Valid, accessible GitHub repository
+- **Commit hash exists**: Confirmed `eb03cf69` exists in the upstream repo
+- **Tag alignment**: Commit `eb03cf69` is exactly the `v2.000` release tag
+- **Source files at commit**: `sources/2-build/Bungee_Color/Bungee_Color-Regular.ufo` exists at this commit (along with a pre-built `Bungee_Color-Regular.ttf`)
+- **Override config**: References existing source path at the recorded commit
+- **Binary source**: METADATA.pb uses `archive_url` pointing to v2.000 release zip; the binary was taken from `Bungee_Color/BungeeSpice-Regular.ttf` within the archive
+
+## Confidence Level
+
+**HIGH** - The commit hash is explicitly stated in the google/fonts commit message and aligns exactly with the upstream v2.000 release tag. The override config.yaml points to valid sources, though full reproduction of the color font binary may require additional tooling beyond gftools-builder.
+
+## Open Questions
+
+1. **Color font reproduction**: Can gftools-builder produce a fully equivalent Bungee Spice binary from the UFO source alone, or does it require the `maximum_color` post-processing step? The override config may produce a font without the SVG table that the current binary includes.
diff --git a/ofl/bungeetint/upstream_info.md b/ofl/bungeetint/upstream_info.md
new file mode 100644 (file)
index 0000000..8a27d0b
--- /dev/null
@@ -0,0 +1,91 @@
+# Investigation Report: Bungee Tint
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| Family Name | Bungee Tint |
+| Designer | David Jonathan Ross |
+| Repository URL | https://github.com/djrrb/Bungee |
+| Commit Hash | `0ab742e49fc7725cd86089834d6460c489b9b2a6` |
+| Branch | master |
+| Config YAML | None (missing) |
+| Date Added | 2024-07-18 |
+| License | OFL |
+| Status | missing_config |
+
+## How URL Found
+
+The repository URL `https://github.com/djrrb/Bungee` is recorded in METADATA.pb. All Bungee variants share this single upstream repository. The URL was set when Bungee Tint was first added to Google Fonts on 2024-07-18.
+
+## How Commit Determined
+
+The commit `0ab742e49fc7725cd86089834d6460c489b9b2a6` is explicitly stated in the google/fonts commit message:
+
+```
+fff14184d Bungee Tint: Version 2.001 added
+Taken from the upstream repo https://github.com/djrrb/Bungee at commit
+https://github.com/djrrb/Bungee/commit/0ab742e49fc7725cd86089834d6460c489b9b2a6.
+```
+
+This commit was authored by Viviana Monsalve on 2024-07-18.
+
+**Cross-verification**: The commit `0ab742e4` is the HEAD of the master branch and corresponds to "Merge pull request #121 from vv-monsalve/QA-Bungee". It is NOT exactly the `v2.001` tag -- it is 17 commits after `v2.001` (`dbf8a1c4`). The commits between v2.001 and `0ab742e4` are all article/documentation changes (images, article templates, contributor list updates) -- no font source changes. The METADATA.pb references `archive_url: "https://github.com/djrrb/Bungee/releases/download/v2.001/Bungee-fonts.zip"`, confirming the actual fonts came from the v2.001 release archive.
+
+### History and Context
+
+Bungee Tint was formerly called "Bungee Color" and was renamed in PR #115 ("rename-color-to-tint"). The rename occurred between v2.000 and v2.001:
+
+- **v2.000** (`eb03cf69`, 2024-05-30): Bungee Spice and other variants updated; "Bungee Color" name still used
+- **v2.001** (`dbf8a1c4`): Version bump with rename to "Bungee Tint"
+- **0ab742e4** (2024-07-18): HEAD at time of onboarding, article/QA changes after v2.001
+
+Timeline of google/fonts commits:
+- `fff14184d` (2024-07-18): "Bungee Tint: Version 2.001 added" by Viviana Monsalve
+- `3c96c1458` (2024-07-18): "OFL license added"
+- `2a8293b0d` (2024-07-18): "Bungee Tint article added"
+- `35963e3ae` (2025-02-06): "Bungee Tint update" (article update by Emma Marichal)
+
+## Config YAML Status
+
+**No config.yaml in upstream repo** at any commit. The Bungee project uses a custom multi-step build pipeline:
+
+1. `scripts/assembleSources.py` - Assembles basic font UFOs from drawing sources
+2. `scripts/assembleColorSources.py` - Generates color font UFOs (both Bungee Tint and Bungee Spice)
+3. `fontmake` - Compiles the assembled UFOs into TTFs
+4. Post-processing with `gftools fix-nonhinting`
+
+For Bungee Tint specifically, the `assembleColorSources.py` script generates `BungeeTint-Regular.ufo` from the base `Bungee-Regular.ufo` source with COLRv1 color layers applied. Unlike Bungee Spice, Bungee Tint does not need `maximum_color` post-processing.
+
+**Critical issue**: At the recorded commit `0ab742e4`, the `sources/2-build/` directory does NOT exist -- it was removed in commit `7ffc5a64` ("remove /fonts folders and /2-build folder"), which is between `eb03cf69` (v2.000) and `0ab742e4` (HEAD). This means there are no pre-assembled UFO sources to point a config.yaml at. The buildable UFO only exists after running the assembly scripts.
+
+**No override config.yaml** exists in google/fonts at `ofl/bungeetint/`.
+
+### Comparison with Other Bungee Variants
+
+The other Bungee variants (Inline, Outline, Shade, Spice) all use commit `eb03cf69` (v2.000) where `sources/2-build/` still existed, allowing override config.yaml files to point to pre-assembled UFOs. Bungee Tint uses a later commit where this directory is gone, making it impossible to create a simple config.yaml override.
+
+### Possible Solutions
+
+1. **Change the commit hash** to `eb03cf69` (v2.000) -- but Bungee Tint did not exist at that commit (it was still called "Bungee Color" and the rename happened after v2.000)
+2. **Create an override config.yaml** pointing to `sources/1-drawing/Bungee-Regular.ufo` -- but this is the raw drawing source, not the assembled color font; gftools-builder cannot reproduce the color assembly pipeline
+3. **Accept that this font cannot be built with gftools-builder** -- the custom build pipeline is not expressible as a config.yaml
+
+## Verification
+
+- **Repository URL**: Valid, accessible GitHub repository
+- **Commit hash exists**: Confirmed `0ab742e4` exists in the upstream repo (it is HEAD of master)
+- **Tag alignment**: Commit `0ab742e4` is 17 commits after `v2.001` tag, but the font binary came from the v2.001 release archive
+- **Source files at commit**: Only `sources/1-drawing/` exists (raw drawing sources); `sources/2-build/` was removed
+- **Binary source**: METADATA.pb uses `archive_url` pointing to v2.001 release zip; the binary was taken from `Bungee_Color/BungeeTint-Regular.ttf` within the archive
+
+## Confidence Level
+
+**HIGH** for repository URL and commit hash (explicitly stated in google/fonts commit message, commit verified in upstream).
+
+**Note**: The commit hash `0ab742e4` is slightly imprecise as an onboarding reference -- the actual fonts came from the v2.001 release (`dbf8a1c4`), not from this later commit. However, since no font sources changed between these commits, this is a cosmetic discrepancy only.
+
+## Open Questions
+
+1. **Config.yaml feasibility**: The Bungee build pipeline uses custom assembly scripts that generate color font UFOs programmatically. This cannot be expressed as a standard gftools-builder config.yaml. Should this family be marked as "not buildable with gftools-builder" rather than "missing_config"?
+2. **Commit hash precision**: Should the commit hash be updated to `dbf8a1c4` (the actual v2.001 tag) to more precisely identify the release used? The current hash `0ab742e4` is HEAD, which includes post-release documentation changes.
diff --git a/ofl/bytesized/upstream_info.md b/ofl/bytesized/upstream_info.md
new file mode 100644 (file)
index 0000000..7ff67fb
--- /dev/null
@@ -0,0 +1,59 @@
+# Bytesized - Investigation Report
+
+## Source Data
+
+| Field | Value |
+|-------|-------|
+| **Family Name** | Bytesized |
+| **Designer** | Baltdev |
+| **License** | OFL |
+| **Date Added** | 2025-02-13 |
+| **Repository URL** | https://github.com/balt-dev/bytesized-gf |
+| **Commit Hash** | `11abbf2db0602d93f35ec9d493a074e384f0cdb3` |
+| **Branch** | main |
+| **Config YAML** | `sources/config.yaml` |
+| **Status** | complete |
+
+## How URL Was Found
+
+The repository URL is documented in the METADATA.pb `source { }` block, which was set during onboarding. The copyright string in the font itself also references the same repository URL: "Copyright 2024 The Bytesized Project Authors (https://github.com/balt-dev/bytesized-gf)".
+
+## How Commit Was Determined
+
+The onboarding commit in google/fonts (`e91890c80`, "Bytesized: Version 1.000 added", by Emma Marichal, 2025-02-13) explicitly states in the commit message:
+
+> Taken from the upstream repo https://github.com/balt-dev/bytesized-gf at commit https://github.com/balt-dev/bytesized-gf/commit/11abbf2db0602d93f35ec9d493a074e384f0cdb3.
+
+This commit hash `11abbf2db0602d93f35ec9d493a074e384f0cdb3` is the HEAD of the upstream `main` branch. It was authored by baltdev on 2025-02-01 with the message "Alter glyphs for uniqueness and better kerning".
+
+## Config YAML Status
+
+**config.yaml exists** at `sources/config.yaml` in the upstream repository, and it is present at the recorded commit. The config is correctly referenced in the METADATA.pb `source { }` block as `config_yaml: "sources/config.yaml"`.
+
+Contents of `sources/config.yaml`:
+```yaml
+sources:
+    - Bytesized-Regular.ufo
+familyName: "Bytesized Regular"
+autohintTTF: false
+includeSourceFixes: true
+buildOTF: false
+```
+
+The source file `sources/Bytesized-Regular.ufo` exists alongside the config.
+
+## Verification
+
+- **Repository URL**: Confirmed valid; repo is cloned at `upstream_repos/fontc_crater_cache/balt-dev/bytesized-gf/`
+- **Commit hash**: Verified -- exists in the repo and is HEAD of `main`; explicitly referenced in the google/fonts onboarding commit message
+- **Config YAML**: Verified -- `sources/config.yaml` exists at the recorded commit with valid gftools-builder configuration
+- **Source files**: `sources/Bytesized-Regular.ufo` (UFO format, gftools-compatible)
+- **METADATA.pb source block**: Complete with `repository_url`, `commit`, `branch`, `config_yaml`, and `files` mappings
+
+## Confidence Level
+
+**HIGH** -- All fields are fully documented and verified. The onboarding commit message explicitly cites the upstream commit hash. The config.yaml is present and correctly referenced. This is a recently onboarded family (February 2025) with clean, modern tooling.
+
+## Open Questions
+
+None. This family is fully complete.