skills/oh-interfaces-ipc-to-service/SKILL.md
在Openharmony项目的graphic_2d仓新增透传通路。当用户希望在graphic_2d仓新增RSInterface接口,且指明该接口为ToSerivce时,调用该能力
npx skillsauth add openharmonyinsight/openharmony-skills oh-interfaces-ipc-to-serviceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
你是一名高级图形图像开发工程师,现在将在Openharmony graphic_2d仓的rs_interfaces.cpp/.h文件中,新增一个透传接口 考虑到这一类需求有的依赖于硬件底层实现,有的不依赖,所以统一将透传通路开辟到rs_screen.cpp/.h这一层即可,并在rs_screen.cpp的新增接口实现中,适当留空供用户实现底层调用逻辑 该工作通常包含以下几个步骤:
询问用户接口声明:用户传入期望新增的接口声明。注意,当用户传入的接口声明不符合C++语法时,需要告知用户并询问正确的接口声明
询问用户接口更多信息:询问用户期望接口具有 @System鉴权还是@Foundation鉴权,这两个信息后面代码生成要用到
明晰参考接口:重点参考rs_interfaces.cpp/.h中的SetDualScreenState()接口和GetPanelPowerStatus()接口的调用链
新增透传通路:Client侧:由于graphic_2d仓的接口通路采用C/S架构,因此,在Client侧,通常需要在rs_interfaces.cpp/.h、rs_render_service_client.cpp/.h中新增接口
新增透传通路:Service侧:在Service侧,通常需要在rs_client_to_service_connection.cpp/.h,rs_screen_manager.cpp/.h,rs_screen.cpp/.h中新增接口
新增透传通路:IPC:在graphic_2d仓中,Client侧到Service侧通过IPC实现,你需要在rs_iclient_to_service_connection.h这个抽象类中添加新接口的声明,在rs_client_to_service_connection_proxy.cpp/.h根据接口的形参列表和返回值调用MessageParcel和SendRequest的能力,在rs_client_to_service_connection_stub.cpp的OnRemoteRequest()函数中添加一个case用于响应proxy的请求,包括读取MessageParcel,调用rs_client_to_service_connection.cpp的新增接口,并将调用结果通过MessageParcel写回给Client侧。此外,有一个注意点: 1)case有个专门的枚举值存储在rs_iclient_to_service_connection_ipc_interface_code.h中,当需要新增接口时,你需要同步在这个文件中添加新枚举;
新增透传通路:鉴权相关事项:对于rs_iclient_to_service_connection_ipc_interface_code.h中新增的枚举值,还有两个地方会使用到: 1)在rs_client_to_service_connection_stub.cpp的descriptorCheckList中,需要新增这个枚举值; 2)在rs_irender_service_connection_ipc_interface_code_access_verifier.cpp的IsExclusiveVerificat函数中,需要新增一个case,根据用户期望的鉴权方式,调用IsSystemCalling或IsFoundationCalling进行鉴权
检查代码:最后,你需要检查代码修改是否严格遵循C++ 17的语法,以及是否和已有代码保持高度风格一致(例如函数名双驼峰,变量名单驼峰)
testing
--- name: ohos-req-value-decision description: Use after review meeting to record decision and route to next step. Triggers: 评审决策纪要, 评审结论回流, value decision, 评审接纳, 评审不接纳, 评审退回, 下次重新上会. Do NOT use for feature baseline (ohos-req-feature-baseline), review gate checks (ohos-req-review-gate), or IR generation (ohos-req-feature-to-ir). metadata: author: openharmony scope: common stage: requirements capability: value-decision version: 0.3.0 status: draft tags: - sdd - requirements
development
Use when converting an OpenHarmony requirement document, spec, or design proposal into an OpenHarmony review slide deck (需求评审 / 需求变更评审 / 设计评审 PPTX) — produces the fixed OpenHarmony-branded review-deck structure (OH logo on every page) with architecture/flow diagrams and field tables. Triggers on "需求评审PPT", "需求变更评审", "把需求文档转成评审PPT", "spec转评审PPT", "requirement/spec to review deck". NOT for arbitrary or generic slide decks unrelated to OpenHarmony requirement/design review.
testing
Use when performing the Phase 0 Step 0.5 Review Ready Gate on a 04-feature.md, especially when the user says "evaluate gate", "review readiness", "feature ready?", "should we generate IR", or when the ohos-req-intake-orchestration main session needs a structured Ready / Conditional Ready / Not Ready judgment instead of doing the check inline. Reads 01-04, runs seven fixed checks plus a conditional-items check, and returns a machine-readable JSON summary plus a human-readable table that the main session can route on. Do NOT use for feature baseline generation (ohos-req-feature-baseline), value decision recording (ohos-req-value-decision), or IR generation (ohos-req-feature-to-ir).
testing
--- name: ohos-req-requirement-intake description: Use when importing an OHOS requirement into Phase 0.1, especially for 01-requirement.md, requirement intake, background, user value, scenarios, scope, FR/NFR, affected modules, or priority. Triggers: 需求导入, 01-requirement, 需求基线, RR单号. Do NOT use for feasibility analysis (ohos-req-feasibility-analysis), architecture decision (ohos-req-arch-decision), or feature baseline (ohos-req-feature-baseline). metadata: author: openharmony scope: common