帮助开发者为 OpenZL 编解码器制定设计模式、需求约束与评审规范。
该技能材料显示为纯提示词型、开源且无密钥或远程端点声明,整体风险较低。其内容主要是为 OpenZL codec 设计提供流程与安全要求,未见数据外发、执行权限或过度访问的具体红旗。
材料声明不需要任何密钥或环境变量,未见令牌收集、存储或滥用路径。作为纯提示词技能,凭证暴露面很低。
材料声明无远程端点,内容中也未描述向外部服务发送用户数据或联网调用行为。未见网络外发迹象。
这是一个设计/审查类技能说明,未描述本机起进程、执行脚本、安装依赖或调用系统命令。文中“USE AUTOMATICALLY”属于工作流指示,不构成可执行权限本身。
材料仅提及在仓库内参考和修改如 `spec.md`、`src/openzl/codecs/`、`fbcode/...` 等项目文件路径,未声明读取任意本地敏感数据、系统资源或跨目录过度访问。
来源为 GitHub 开源仓库,源码可审计,这是明显的降风险因素;但许可证未声明、社区采用度为 0 star、维护状态未知,可信度与持续维护证据有限,因此需留意供应链质量。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "openzl-codec-design" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/openzl/dev/.claude/skills/openzl-codec-design/SKILL.md 2. 保存为 ~/.claude/skills/openzl-codec-design/SKILL.md 3. 装好后重载技能,告诉我可以用了
请根据 OpenZL `src/openzl/codecs/` 目录的现有风格,为一个新的二进制消息编解码器制定设计方案,说明接口结构、错误处理、可扩展性要求,以及需要遵循的编码模式。
一份结构清晰的编解码器设计说明,包含模式约束、接口建议和实现要求。
请评审这次对 OpenZL 编解码器的修改,检查是否符合 `src/openzl/codecs/` 的设计模式,指出接口一致性、错误传播、边界情况处理和可维护性问题,并给出修改建议。
一份面向代码评审的反馈清单,列出问题、原因和可执行的改进建议。
我准备重构 OpenZL 的一个编解码器模块,请帮我整理需求清单,包括功能目标、兼容性要求、性能考虑、测试覆盖点,以及与现有 `src/openzl/codecs/` 架构保持一致的约束。
一份可用于重构前规划的需求文档,明确目标、约束和验证标准。
If the user provides an input to this skill, interpret it as an informal specification of the codec they want to create. Before writing any code:
spec.md first. ALWAYS generate the decoder wire format specification (spec.md) before any other file. Follow the conventions of existing specs in src/openzl/codecs/ (inputs, codec header, decoding algorithm, outputs).spec.md. The spec is the contract — all code flows from it.The decoder processes untrusted data from compressed frames. All assumptions MUST be validated, especially:
Never trust values from the compressed stream without verification. A malicious frame must not cause crashes, out-of-bounds access, or undefined behavior.
The encoder is processing data that the user provides. Unless explicitly stated otherwise all assumptions MUST be validated. Typcially, this is less of an issue on the encoder side, but any assumptions the encoder makes about the input data (e.g. it doesn't contain the value 0) must be validated, otherwise the data could be corrupted.
src/openzl/shared/, rather than re-implementing them.
openzl/shared/mem.h, openzl/shared/bits.h, and openzl/shared/utils.h.When adding a new codec, or making a breaking change to a codec that requires bumping the format version, we need to make sure the development branch bumps the format version. If not adding a codec or making a format breaking change to a codec, then you can skip this section.
Determine the production max format version from the ZL_MAX_FORMAT_VERSION macro in fbcode/openzl/prod/include/openzl/zl_version.h, call it $prod_max_format_version.
Determine the development max format version from the ZL_MAX_FORMAT_VERSION macro in fbcode/openzl/dev/include/openzl/zl_version.h, call it $dev_max_format_version.
If $dev_max_format_version == $prod_max_format_version, then the development ZL_MAX_FORMAT_VERSION in fbcode/openzl/dev/include/openzl/zl_version.h must be bumped.
This needs to be done before hooking up the encoder and decoder registry so that the new max format version is used during registration.
Codecs MUST preserve forward and backward compatibility with all supported format versions from ZL_MIN_FORMAT_VERSION to ZL_MAX_FORMAT_VERSION.
Codecs MAY change their format, with very careful consideration, but they MUST do it in way that preserves compatibility:
ZL_MAX_FORMAT_VERSION must be bumped in the dev branch (see above)spec.md file MUST be updated to reflect the variation based on the format versionZL_Encoder_getCParam(eictx, ZL_CParam_formatVersion) and only emit the new format for the latest format versionDI_getFrameFormatVersion(dictx) and correctly interpret the encoded data based on the format version…
为 OpenZL 组件注册表生成与维护设计文档,辅助规范 tests/registry 下的改动
帮助开发者为 unitBench 中新的 openzl 编解码节点编写基准测试场景。
帮助开发者编写并运行基于 Markdown 的 Relay 端到端测试。
为使用 Relay 的 React 组件提供规范写法、调试思路与代码审查建议。
帮助开发者在提交代码或生成 diff 时套用正确的提交前缀、审阅人和测试计划。
帮助开发者排查 Pysa 漏报污点问题,比较输出并定位污点流丢失位置。