Conversation
- Add validation script (validate-catalog.cjs) for .gbbcatalog.yml files - Add fetch script (fetch-catalog-metadata.cjs) to retrieve catalog metadata - Create catalog-sync.yml workflow for weekly sync and stale review detection - Update refresh-data.yml to include catalog metadata fetching - Add catalog metadata display in RepoCard component (maturity, owner, state) - Update TypeScript types to include CatalogMetadata interface - Create CATALOG_SPEC.md documentation for GBB users - Add .gbbcatalog.yml.example template - Create .gbbcatalog.yml for this repository as example - Initialize empty catalog-metadata.json Co-authored-by: francescomanni <72417313+francescomanni@users.noreply.github.com>
|
@claude[agent] this implementation is applicable just to asset type "code" (which is linked to repos) it will not impact other asset types. |
|
@claude[agent] some corrections: for last_reviewed we can use the repo last update date. If review is needed (last update > 6 months old) |
Co-authored-by: francescomanni <72417313+francescomanni@users.noreply.github.com>
Done! I've implemented all three corrections:
Key changes:
Changes implemented in 1944bef. |
|
@claude[agent] to avoid noise, make sure the notification is only sent to GBBs who own a repo that already contains the .gbbcatalog.yml file - ignore others from this lifecycle management. |
Co-authored-by: francescomanni <72417313+francescomanni@users.noreply.github.com>
Done! The system now only processes and notifies owners of repositories that have opted into catalog lifecycle management by adding a Key changes:
This avoids noise for repos that haven't joined the catalog system while ensuring proper lifecycle management for those that have. Changes implemented in d3ecf21. |
francescomanni
left a comment
There was a problem hiding this comment.
LGTM - I rely on @0GiS0 to understand the details
Original prompt
This section details on the original issue you should resolve
<issue_title>Introduce .gbbcatalog.yml opt-in publication model and automated catalog lifecycle sync</issue_title>
<issue_description>
PR Objective
The goal of the IP catalog is to provide a structured, automation-driven, and reusable way to manage our Intellectual Properties (IPs) across GitHub repos.
Current issues:
This catalog specification introduces:
1. Current Challenge
Today:
DevExpGBB) for IPs.We need a system that is:
2. Publishing Model
A repository appears in the catalog only if:
.gbbcatalog.ymlexists in repo rootcatalog.enabled: trueVisibility (Private / Internal / Public) does not determine catalog inclusion.
Repos in WIP, under review, or public experimentation do not automatically appear in the catalog.
3.
.gbbcatalog.ymlSpecificationLocation:
/ .gbbcatalog.ymlMinimal Schema (v1)
schema_version: 1
catalog:
enabled: true # Required: true = include, false = exclude
owner: francesco.manni # Required: GitHub handle
display_name: "IP Name" # Required: human-friendly title
description: "Short summary" # Required: 1–3 sentences
maturity: incubating # Required: incubating | production | deprecated
last_reviewed: 2026-02-10 # Required: YYYY-MM-DD
review_cycle_days: 180 # Optional: default 180 days
4. Lifecycle Model
Catalog lifecycle is independent of repository visibility.
States
.gbbcatalog.ymlenabled: falseenabled: trueenabled: true+ stale review (older thanreview_cycle_days)maturity: deprecated5. Automation Requirements
A GitHub Action ensures catalog integrity and lifecycle management automatically.
Trigger
.gbbcatalog.ymlworkflow_dispatchResponsibilities
Validation
.gbbcatalog.ymlmust existenabled,owner,display_name,description,last_reviewedenabledmust be booleanmaturitymust be one ofincubating,production,deprecatedlast_reviewedmust be a valid dateownerCatalog Sync
catalog.enabled: true→ add/update repo in central catalog indexenabled: false→ remove repo from catalogStale Review
today - last_reviewed > review_cycle_daysownerrequesting metadata update6. Non-Goals
7. GBB Guidance
.gbbcatalog.ymlwithenabled: truematurity: deprecatedin.gbbcatalog.yml.gbbcatalog.ymland opens PR for review8. Benefits of This Model
9. Executive Summary
This model ensures: