Summary
Implement automated catalog generation for KBC Explorer. Currently the catalog.json and orchestrations.json data files are produced through a manual 7-step process -- this is not reproducible, not schedulable, and slow.
Goal
A single CLI command that produces a complete, schema-valid catalog snapshot:
kbagent catalog generate --output kbc-explorer/
kbagent catalog generate --tiers tiers.yaml --output kbc-explorer/
kbagent catalog generate --dry-run
kbagent --json catalog generate
Detailed Plan
See docs/PLAN-catalog.md for the full implementation plan, including:
- Architecture (new
commands/catalog.py + services/catalog_service.py)
- Tier configuration (YAML + convention-based auto-detection)
- Data collection pipeline (4 phases: parallel fetch, orchestration detail, aggregation, assembly)
- Job statistics aggregation logic
- Orchestration assembly logic
- CLI interface (
catalog generate, catalog validate, catalog diff)
- Schema validation via
jsonschema
- New dependencies:
jsonschema, pyyaml
Subcommands
| Command |
Purpose |
catalog generate |
Fetch data from all projects, aggregate, validate, write output files |
catalog validate |
Validate existing catalog.json against schema.json |
catalog diff |
Compare two catalog snapshots and show changes |
Acceptance Criteria
kbagent catalog generate produces output matching manually generated catalog
- Output passes
jsonschema validation against schema.json
- Full generation for 27 projects completes in under 60 seconds
--dry-run shows expected API call count without making requests
- Tier auto-detection works for
ir-l0-*, ir-l1-*, ir-l2-* aliases
- Error in one project does not block generation for others
Summary
Implement automated catalog generation for KBC Explorer. Currently the
catalog.jsonandorchestrations.jsondata files are produced through a manual 7-step process -- this is not reproducible, not schedulable, and slow.Goal
A single CLI command that produces a complete, schema-valid catalog snapshot:
Detailed Plan
See
docs/PLAN-catalog.mdfor the full implementation plan, including:commands/catalog.py+services/catalog_service.py)catalog generate,catalog validate,catalog diff)jsonschemajsonschema,pyyamlSubcommands
catalog generatecatalog validatecatalog.jsonagainstschema.jsoncatalog diffAcceptance Criteria
kbagent catalog generateproduces output matching manually generated catalogjsonschemavalidation againstschema.json--dry-runshows expected API call count without making requestsir-l0-*,ir-l1-*,ir-l2-*aliases