Commit 0a6d05c
[docs] Add OB1 catalog generator + committed ob1-catalog.json
Ships the site-ready catalog artifact that the natejones.com /ob1
directory will load, plus the generator script and a PR gate drift
check that keeps the artifact in sync with repo content.
Pipeline:
- scripts/build_catalog.py discovers every non-template contribution
under the seven canonical category folders, loads metadata.json,
rewrites intra-repo links in README.md, resolves requires_skills /
requires_primitives into forward and reverse dependency edges, and
emits resources/ob1-catalog.json.
- .github/workflows/ob1-gate.yml now runs the generator in --check
mode whenever a PR touches contribution content, the generator, or
the artifact. A drift failure tells the contributor exactly which
command to run.
Generator-time validation (runs before artifact is emitted):
- category in metadata.json matches the folder category
- requires.open_brain is one of required | optional
- learning_order is only set on extensions
- every requires_skills / requires_primitives slug resolves to a
real contribution
- no two entries share the same site_path
- every relative intra-repo link in a contribution README resolves
to an existing file in the repo
Link rewriting:
- relative links to contribution folders or their READMEs become
/ob1/<category>/<slug>
- links to category index folders or READMEs become /ob1/<category>
- deeper relative files inside contribution folders go to the raw
GitHub blob URL
- image / asset references go to raw.githubusercontent.com
- other intra-repo links (docs/, root markdown) go to blob/tree URLs
- absolute URLs, anchors, and mailto: / tel: schemes pass through
Site loader precedence (documented here for PR3 in the site repo):
- OB1_CATALOG_LOCAL_PATH env var takes precedence when set
- otherwise fetch from raw.githubusercontent.com on main
- missing or invalid artifact must fail the site build
Pre-existing fix included:
- recipes/email-history-import/README.md linked to a non-existent
primitives/content-fingerprint-dedup path. The dedup logic lives in
recipes/content-fingerprint-dedup. The generator's strict link
check flagged it, so fixed the link instead of loosening the rule.
Output: 59 catalog entries across all seven categories
(recipes 29, skills 13, extensions 6, primitives 5, integrations 3,
dashboards 2, schemas 1) — 4 required + 9 optional in skills, all
other categories required for v1.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 41e86b7 commit 0a6d05c
4 files changed
Lines changed: 3564 additions & 2 deletions
File tree
- .github/workflows
- recipes/email-history-import
- resources
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
34 | 57 | | |
35 | 58 | | |
36 | 59 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
103 | | - | |
| 103 | + | |
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
| 118 | + | |
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| |||
0 commit comments