OCI Skill Registry — Core Connector (issue 9 of 29)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 38/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- typescript
调研方向
首先阅读提到的两个 OpenSpec 变更任务文件,以及 oci-artifact-ingestion、registry-discovery 和 skillcard-parsing 规范。使用所要求的模拟 OCI 客户端、skillcard 提取、实体发出和模块注册测试来验证完成情况;完成意味着连接器下载并验证 skillcard,发出带注释的 AIResource 实体,并通过目录后端模块完成注册。
由索引模型根据 Issue 内容生成。
描述
Labels: ready-to-code
Depends on: Issue 1 (#4039 shared infra), Issue 8 (#TBD SDK)
RHIDP Stories: RHIDP-15296
Feature: RHDHPLAN-1507 — Epic RHIDP-15294
Implement the core OCI Skill Registry connector: OCI Distribution Spec client for tag listing, manifest fetching, and blob download; skillcard extraction from OCI image layers with YAML parsing and SDK schema validation; entity emission as kind: AIResource with spec.type: skill and all required annotations; backend module registration with createBackendModule. This is the foundational OCI connector — multi-registry config, incremental sync, and load testing are separate issues.
Tasks
From openspec/changes/oci-skill-registry/tasks.md group 1 (RHIDP-15296):
- 1.1 Evaluate and select Node.js OCI Distribution Spec client library
- 1.2 Implement
OciRegistryClientclass with methods:listTags(),getManifest(),getBlob() - 1.5 Write unit tests for OCI client with mocked registry responses
From openspec/changes/oci-skill-registry/tasks.md group 2 (RHIDP-15296):
- 2.1 Implement layer blob download with streaming decompression
- 2.2 Implement tar stream parser to extract
skillcard.yaml - 2.3 Integrate SDK schema validator for
skillcard.yamlvalidation - 2.4 Implement error handling for missing/invalid
skillcard.yaml - 2.5–2.6 Unit tests for skillcard extraction and schema validation
From openspec/changes/oci-skill-registry/tasks.md group 3 (RHIDP-15296):
- 3.1 Implement
OciSkillRegistryProviderclass extendingEntityProviderinterface - 3.2 Implement entity factory: convert
skillcard.yamlto BackstageAIResourceentity - 3.3 Populate required annotations:
rhdh.io/ai-asset-category,rhdh.io/ai-asset-version,rhdh.io/ai-asset-source - 3.4 Implement entity ref sanitization
- 3.5 Write unit tests for entity emission
From openspec/changes/oci-skill-registry/tasks.md group 6 (RHIDP-15296):
- 6.1 Implement backend module with
createBackendModule({ pluginId: 'catalog', moduleId: 'ai-catalog-oci-skill-registry' }) - 6.2 Register entity provider via
catalogProcessingExtensionPoint - 6.4 Write integration test for module registration
From openspec/changes/oci-skill-connector/tasks.md group 1 (RHIDP-15324):
- 1.1–1.11 OCI registry client: tag listing, manifest fetching, Docker v2 fallback, digest extraction, pagination, namespace filtering, parallel manifest fetch, OCI annotations, blob download, gzip decompression, unit tests
From openspec/changes/oci-skill-connector/tasks.md group 2 (RHIDP-15325):
- 2.1–2.15 Skillcard parsing: layer identification, YAML parsing, Zod validation, error logging, entity building as
kind: AIResource, annotation population, default values, invalid skill rejection, aggregate summary, unit tests
Specifications
openspec/changes/oci-skill-registry/specs/oci-artifact-ingestion/spec.mdopenspec/changes/oci-skill-connector/specs/registry-discovery/spec.mdopenspec/changes/oci-skill-connector/specs/skillcard-parsing/spec.md
- 主要语言
- TypeScript
- 星标
- 51
- 派生
- 121
- 平均合并
- 1 天 14 小时
- 30 天内合并 PR
- 286
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
redhat-developer/rhdh-plugins 的其他 Issue
-
feature fullsend ready-for-triage Review effort 1/5 triaged
难度 2/5 1-3 小时 新手友好度 78/100
redhat-developer/rhdh-plugins#4799 · 2 条评论 ·
维护者通常 1 天内回复
-
Add entity provider implementation conventions to ai-integrations AGENTS.md可能重新可做 关联的 PR 已关闭且未合并。 未关闭documentation ready-for-triage ready-to-code Review effort 1/5 workspace/ai-integrations
难度 2/5 1-3 小时 新手友好度 88/100
redhat-developer/rhdh-plugins#4781 · 3 条评论 ·
维护者通常 1 天内回复
-
Add public export surface review guidance to scorecard AGENTS.md可能已有人在做 @fullsend-ai-coder 于 45 天前认领。 未关闭documentation ready-for-triage ready-to-code Review effort 1/5 workspace/scorecard
难度 2/5 1-3 小时 新手友好度 86/100
redhat-developer/rhdh-plugins#4777 · 3 条评论 ·
维护者通常 1 天内回复
-
Add collector parameter contract assertion convention to scorecard AGENTS.md可能已有人在做 @fullsend-ai-coder 于 46 天前认领。 未关闭documentation ready-for-triage ready-to-code workspace/scorecard
难度 2/5 1-3 小时 新手友好度 78/100
redhat-developer/rhdh-plugins#4734 · 3 条评论 ·
维护者通常 1 天内回复
-
Add DORA collector pipeline and time-window boundary guidance to scorecard AGENTS.md可能已有人在做 @fullsend-ai-coder 于 46 天前认领。 未关闭documentation ready-for-triage ready-to-code workspace/scorecard
难度 2/5 1-3 小时 新手友好度 76/100
redhat-developer/rhdh-plugins#4733 · 3 条评论 ·
维护者通常 1 天内回复
查看 redhat-developer/rhdh-plugins 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
components-web-app/docs#307 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
localstack/localstack-mcp-server#112 ·
维护者通常 1 天内回复
-
area:frontend kind:bug priority:p1 ready
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
bug ready-for-agent
难度 2/5 1-3 小时 新手友好度 73/100
PhyberApex/kuroshiro#1687 ·
维护者通常 1 天内回复
-
Performance (Web Vitals) collector: LCP/FCP from background tabs are not discarded, inflating p75未关闭
难度 2/5 1-3 小时 新手友好度 74/100
umami-software/umami#4720 ·
维护者通常 3 天内回复