关于 upstream-first
用于判断无障碍修复应归属本地项目还是上游项目的指引技能,并将贡献准备工作交给相关技能。它要求外部操作须经人工批准,并将临时本地变通方案作为未解决债务跟踪。
主要功能
- 01按可能的责任归属分流修复
- 02列出上游与本地实施路径
- 03关联贡献准备和安全披露技能
- 04外部操作须获批准
- 05跟踪临时本地差异
适用场景
- 01判断无障碍障碍的来源
- 02选择上游贡献或本地修复
- 03等待上游采用期间管理临时补丁
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mgifford/ accessibility-skills --skill upstream-first安装后在 Claude Code 中输入/upstream-first确认已加载。
详细介绍
Upstream First 技能
此技能用于指向 mgifford/upstream-first。这是一个独立的 Agent 技能集,用于判断无障碍问题(或其他问题)的修复应归属何处,并为接收项目做好准备。此技能不会复述该项目的决策层级、分类步骤或贡献工作流——这些内容仍由该项目负责维护,以免此技能与仍处于发布前审查草案阶段的项目脱节。
何时使用
在着手修复无障碍障碍之前,请先检查受影响的代码是否确实由本项目维护:
- 多个项目共用的组件或设计系统;
- 渲染器、框架或平台依赖项;
- npm/PyPI/Packagist/Composer 软件包,而非一方代码;
- 能让同一依赖项的其他使用者受益的模式,而不仅仅是本项目。
如果障碍可能源自本项目自身代码之外,请加载
upstream-first,以判断负有责任的修复方式属于以下哪一项:
- 已安装的现有功能;
- 现有公共 API 或扩展点;
- 合适且持续维护的开源软件包;
- 对现有项目进行有针对性的贡献;
- 由可信责任方维护的新型可复用开源软件包;或
- 本地实现,并书面说明为何其他所有优先选项都不合适。
不要未经此决策流程就默认采用本地补丁。针对共享组件障碍的本地修复,会让该组件的每个其他使用者都重复承担相同的维护负担,而且受此障碍影响的不只是本项目的用户。
准备贡献
如果决策倾向于向上游贡献,请使用
maintainer-ready-contribution,准备接收项目的维护者能够实际审查并接受的问题、提案、补丁或拉取请求。
如果问题可能属于安全漏洞,请勿公开提交问题报告、复现材料、分支、派生仓库或拉取请求。请改用
responsible-security-disclosure。
如果 AI 对已知贡献提供了实质性协助,且接收项目的政策允许这样做,请在提交前运行
ai-contribution-review。
必须获得人工批准
未经人工明确批准,不得在外部项目中打开问题、发表评论、指派任务、添加标签、派生仓库、创建分支或提交任何内容。判断某项更改应归属于上游,并不等于获得了在他人项目中采取相应行动的授权。
跟踪临时的本地偏离
在等待上游修正期间,可能需要紧急本地补丁、覆盖、分叉、固定版本或变通方案——无障碍障碍不应因等待项目无法掌控的版本发布而继续存在。发生这种情况时,不要将其视为已解决。应将其记录为待偿债务,并注明:
- 下游负责人;
- 上游参考,若没有则记录已说明的例外;
- 基于风险的复审日期;
- 补丁适用的受支持版本;
- 移除条件(采用并验证受支持的上游版本);以及
- 回滚计划。
如果此项目使用
ACCESSIBILITY.md 模板,
请使用
下游偏离记录。
否则,请直接使用
upstream-debt 记录格式。
上游跟踪项已合并或关闭,并不代表问题已解决。 只有在下游采用受支持的版本,并重新测试原有的面向用户行为后,才能关闭问题——如果此项目使用该架构跟踪问题,请参阅 无障碍问题跟踪,“本地与上游跟踪器”。
与其他技能的关系
ACCESSIBILITY-general规定何时以及如何加载此仓库中的所有技能;当修复归属不明确时,此技能是它会指向的技能之一。bug-reporting记录已提交问题的范围、可能来源,以及(如适用)本地与上游跟踪器之间的关系——此技能决定在编写修复之前如何处理该来源,而不是在修复完成后。- 各主题技能(
forms、keyboard、color-contrast等)规定在确定归属后如何消除障碍。此技能决定修复应归属何处。