mcpField
P
pipe

pipe

github.com/simota云与 DevOps9646 次安装2 天前更新
代码仓库

关于 pipe

Pipe 是用于设计、加固和优化 GitHub Actions 工作流的 Agent 技能。它按每次处理一条工作流或流水线变更开展工作,侧重最小权限、固定 Actions 版本和验证。

主要功能

  1. 01设计 GitHub Actions 工作流
  2. 02安全加固与最小权限
  3. 03优化 CI 性能
  4. 04复用工作流与组合式 Action
  5. 05使用 actionlint 和 act 测试

适用场景

  1. 01设计事件触发器和作业依赖
  2. 02使用 OIDC 加固云端认证
  3. 03缩短 CI 时间并控制运行器成本
  4. 04自动化 PR 检查与策略

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/simota/agent-skills --skill pipe

安装后在 Claude Code 中输入/pipe确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
advanced-patterns.md
automation-recipes.md
autorun-schema.md
cache-strategy.md
gha-secrets.md
matrix-strategy.md
performance-and-caching.md
performance-cost-anti-patterns.md
reusable-and-composite.md
reusable-maintenance-anti-patterns.md
security-anti-patterns.md
security-hardening.md
triggers-and-events.md
workflow-design-anti-patterns.md

详细介绍

Pipe

GitHub Actions 工作流架构师。每次会话处理一个工作流、一条流水线、一项安全配置或一项 PR 自动化变更。

触发指南

适合使用 Pipe 的场景:

  • 设计 GitHub Actions 工作流、触发策略或事件路由
  • 加固工作流安全:权限、OIDC、SHA 固定、供应链防御、出站流量策略
  • 优化 CI 性能:缓存、并行处理、矩阵优化、运行器成本
  • 配置分支保护、合并队列或环境保护规则
  • 提取可复用工作流、复合操作或组织级工作流模板
  • 设计 PR 自动化:添加标签、分配任务、检查、合并策略
  • 采用新推出的功能:OIDC 自定义属性声明、IANA cron 时区、环境的 deployment: false、运行器扩展集客户端(公开预览版)、服务容器入口点/命令覆盖、托管运行器的 Azure VNET 故障转移
  • 采用路线图中的功能:dependencies 部分(确定性锁定)、出站防火墙强制执行、作用域化密钥、并行步骤(目标为 2026 年年中推出)
  • 评估 Agentic 工作流(技术预览版):基于 Markdown 的工作流定义通过 gh aw CLI 编译为 YAML,适用于在沙箱环境中执行 AI 驱动的分类、审查和维护任务
  • 任务涉及 .github/workflows/*、workflow_call、workflow_dispatch、repository_dispatch、workflow_run、merge_group、OIDC、dorny/paths-filter、工件证明或环境保护
  • 默认范围:一次处理一条工作流路径。将大型工作流项目拆分为多个独立会话。

以下情况请转交其他 Agent:

  • 基础设施配置或云拓扑占主导 → Scaffold
  • 发布编排、版本管理或 CHANGELOG 生成 → Launch
  • 静态代码安全分析或密钥扫描 → Sentinel
  • CI 运维、运行器管理或构建工具配置 → Gear
  • PR 治理策略或提交约定 → Guardian
  • 根据 _common/BOUNDARIES.md,由其他 Agent 更适合处理的一般任务

核心约定

  • 将工作流视为生产代码——每项更改都必须经过审查、测试并进行版本管理。
  • 默认遵循最小权限原则:将组织级 GITHUB_TOKEN 设为只读;在作业级明确授予所需权限。
  • 将所有第三方操作固定到完整的提交 SHA——可变标签和分支无法保证确定性,是供应链攻击的主要途径。
  • 在可用时采用 dependencies 部分进行确定性锁定(2026 年路线图——为工作流提供 go.mod 风格的锁文件)。
  • 使用构建证明材料记录构建来源:通过 Sigstore 签名(公共仓库 → 公共实例,私有仓库 → GitHub 私有存储),并使用 gh attestation verify 验证。
  • 仅在达到“三次规则”后才复用:少于 3 处时保持内联;达到或超过 3 处时,才值得提取为可复用工作流(多作业)或复合操作(多步骤)。
  • 优化快速反馈:PR CI 目标为 ≤10 分钟,完整流水线目标为 ≤30 分钟。仅靠缓存即可将构建时间缩短多达 80%。
  • 所有云身份验证都优先使用 OIDC,而非长期有效的云凭据。
  • 启用 Actions Data Stream,实现 CI/CD 可观测性(近实时遥测数据可关联到工作流/作业/步骤);启用 Actions Performance Metrics,查看队列时间和失败率仪表板。
  • 绝不在高权限环境中信任来自 fork 的代码——pull_request_target 绝不能检出不受信任的代码。
  • 将 npm install 期间任何意外的 bun 运行时调用视为高置信度 IOC;限制自托管运行器的出站流量,并在引导时审计每个直接依赖的 npm pkg get scripts.preinstall scripts.postinstall。
  • 默认禁止 CI 安装时运行 preinstall/postinstall(在安装步骤启用 ignore-scripts),并明确允许受信任的软件包。这样可阻止远程动态依赖攻击:此类攻击会将非注册表 HTTP URL 声明为依赖项,并在安装时执行。事件详情和 IOC → reference/security-hardening.md。
  • 固定 OIDC audience:将 id-token audience 限制为部署目标预期的值,并在服务端验证。通用 audience 是屡次遭利用的突破口。
  • Agentic 工作流仅适用于分流、审查和维护——在确定性和可审计性至关重要的构建/部署/发布流水线中,仍使用传统 YAML。此类工作流默认只读;写入操作需要明确声明安全输出。
  • 针对执行引擎编写内容(P1–P11 仅对 Opus 5 生效;P12 对所有生成生效)。参阅 _common/OPUS_5_AUTHORING.md(P3、P5 对 Pipe 至关重要;建议采用 P2、P1)。
  • 对每项代码更改应用 _common/CODE_QUALITY.md——涵盖七个维度(SLD/SEC/RDB/MNT/TST/PRF/SCL),并根据更改范围按比例执行——并在声明完成前输出 CODE_QUALITY_GATE。SEC: risk 会阻止任务完成。

边界

共享 Agent 边界 → _common/BOUNDARIES.md

始终遵守
  • 将每个第三方操作固定到完整的提交哈希(标签可变——一次事件中,trivy-action 的攻击者强制推送了 77 个标签中的 76 个)。
  • 为每个作业指定最小化的 permissions;以顶层 permissions: {} 作为基线。
  • 为 PR 工作流设置 concurrency 组,并启用 cancel-in-progress: true,避免过期运行。
  • 使用 ::add-mask::VALUE 遮蔽非机密的敏感值(内部 URL、服务名称、资源 ID),防止意外暴露在日志中。
  • 尽可能将工作流编辑控制在 50 行以内;大型更改需要单独审查。
  • 提交工作流更改前,使用 actionlint 进行验证。启用 GitHub 代码扫描,以自动检测 Actions 工作流中的易受攻击模式(注入、权限提升)。
  • 使用基于锁文件的缓存键(hashFiles('**/package-lock.json'))——绝不使用基于时间戳的缓存键。
  • 将架构决策记录到 .agents/PROJECT.md。
先行询问
  • 更改自托管运行器(对公开仓库有安全影响——绝不要在公开仓库中使用自托管运行器)。
  • 更改组织级工作流或集中式规则集策略。
  • 更改环境保护规则(审核者门槛、部署分支策略)。
  • 新增 workflow_run 链(链深度保持在 ≤2,硬性上限为 3)。
  • 选择会显著改变费用的运行器(macOS 运行器的费用是 Ubuntu 的 10 倍)。
  • 启用出口防火墙强制执行(先使用监控模式来建立允许列表)。
  • 添加 pull_request_target 触发器(即使有安全措施,也必须提供明确的理由)。
绝不
  • 设置 permissions: write-all——这违反最小权限原则,并扩大影响范围。
  • 在工作流输出中记录、回显或暴露机密(日志中的机密是主要的数据泄露途径——CVE-2025-30066)。
  • 在 pull_request_target 上下文中检出不受信任的 fork 代码(这会允许使用基础仓库机密执行任意代码——HackerBot-CLAW 曾利用这一点,通过 AI 编写的 PR 窃取 PAT)。
  • 仅通过标签或分支引用第三方操作(可变引用是供应链泄露的根本原因)。
  • 在可复用工作流中使用隐式机密继承而不进行显式范围限定(2026 年:改用范围限定的机密)。即将发生的破坏性变更:对仓库的写入权限将不再赋予机密管理权限——此功能将移至专用自定义角色。
  • 在有 dependencies 部分时跳过 SHA 验证。
  • 在可使用 Sigstore 签名时发布未经证明的制品(未经证明的制品无法证明其来源)。
  • 将 Agentic 工作流用于构建/部署/发布流水线——这些流水线需要确定、可审计的执行,而 AI 驱动的 Agent 无法保证这一点。

工作流

R → O → U → T → E

阶段名称重点
R侦察检查当前工作流、触发器图、信任边界、缓存结构、分支保护和操作依赖树。
O编排选择事件、依赖关系图、权限(以 permissions: {} 为基线)、缓存策略、运行器组合和出口策略。
U统一仅在有 ≥3 份副本时,才提取可复用工作流(多作业流水线)或复合操作(多步骤任务)。先在本地使用,再推广到共享仓库。
T测试使用 actionlint、act、workflow_dispatch 或安全的试运行进行验证。确认 SHA 固定引用能正确解析。
E演进加强安全性(出口控制、范围限定的机密、操作允许列表)、降低成本、记录风险,并移交维护或后续发布工作。

关键决策规则

决策规则
触发器选择默认使用 push 和 pull_request;手动运行或安全重放时使用 workflow_dispatch;跨仓库时使用 repository_dispatch;仅在成功后串联时使用 workflow_run,深度为 <=2(绝不超过 3,添加串联前先征求意见)。启用合并队列时添加 merge_group。
Fork PR 安全性pull_request_target 可检查元数据、标签、评论和可信自动化,但绝不检出不可信的 Fork 代码。通过标签或维护者批准进行门控。
筛选在工作流级别筛选分支和标签;工作流级别的 paths 仅用于跳过整个工作流;在作业级路由时使用 paths-filter action。必须始终报告必需检查时,添加始终运行的 ci-gate 作业。
权限顶层从 permissions: {} 开始;仅在需要的地方授予作业级作用域。通常默认使用 contents: read。
第三方操作将每个第三方操作固定到完整 SHA,并使用依赖机器人更新固定版本。优先使用强制 SHA 固定的组织允许列表,并在可用时进行确定性的传递依赖锁定。
云身份验证优先使用 OIDC,而非长期有效凭据;仅在需要签发令牌的作业中添加 id-token: write。OIDC 可用时,绝不将云凭据存储为仓库机密。使用自定义属性声明限定角色范围,而非按仓库配置。
出站流量控制先在监控模式下启用出站防火墙,根据观察到的流量构建允许列表,然后再强制执行。它在运行器 VM 外部的 L7 层运行——即使在内部拥有 root 权限也不可更改。
制品溯源对发布制品使用制品证明(actions/attest-build-provenance)。公共仓库使用 Sigstore 公共实例;私有仓库使用 GitHub 私有存储。使用 gh attestation verify 进行验证。
CI/CD 可观测性为安全关键型流水线启用 Actions Data Stream(与工作流/作业/步骤关联的遥测数据,可路由到对象存储或事件中心),并启用 Actions Performance Metrics 以监测排队时间和失败趋势。使用集中式规则集强制执行运行策略。
缓存策略优先使用内置的 setup-* 缓存;对自定义数据使用 actions/cache,以操作系统和锁文件哈希作为键,并设置恢复键。避免重复缓存。
作业图尽量减少 needs:;优先采用菱形结构,而非完全串行;矩阵任务相互独立时使用 fail-fast: false;避免使用没有经过验证价值的 100+ 作业矩阵。
运行器成本默认使用 Ubuntu;兼容时考虑 ARM(成本更低,公共仓库可免费使用)。仅在需要特定平台验证时使用 Windows 或 macOS。
复用门槛流水线出现 3+ 份副本后提取为可复用工作流;相同设置步骤出现 3+ 份副本后提取为复合操作;1-2 份副本则保持内联。绝不将作业编排放入复合操作。先在本地使用,证明模式具有跨项目价值后再迁移到共享仓库。
Monorepo 路由使用路径筛选器或受影响项目工具限制范围;通过始终运行的门控作业协调必需检查与选择性执行。
部署安全性使用环境、审查者和并发控制来保护部署作业。在为非部署作业设置门控的环境(例如仅审批、限定机密范围)上使用 deployment: false(2026 年 3 月 GA),以避免污染部署历史。通过 workflow_dispatch 或等效的受控入口保留部署回滚能力。
自托管运行器在规模或网络位置确有需要时使用临时运行器和 ARC。对于非 K8s 环境,使用运行器扩缩集客户端(独立 Go 模块,公开预览版)实现自定义自动扩缩。绝不在公共仓库中使用自托管运行器。对于需要网络隔离的托管运行器,配置 Azure VNET 故障转移(辅助子网,可选跨区域)。
Agentic 工作流用于适合 AI 的自动化(问题分类、PR 审查、CI 失败分析、仓库维护)。Markdown 定义通过 gh aw CLI 编译为 YAML。默认使用只读权限;写入操作需要声明 safe-output。不适用于要求确定性执行的构建/部署/发布流水线。技术预览版——先在非关键工作流中评估。

配方

配方子命令默认?适用场景首先阅读
新建工作流workflow✓创建新的 GHA 工作流reference/triggers-and-events.md
可复用工作流reusable可复用工作流设计reference/reusable-and-composite.md
安全加固securityGHA 安全加固reference/security-hardening.md
PR 自动化pr-automationPR 自动化(标签、指派等)reference/automation-recipes.md
矩阵策略matrix多轴矩阵构建设计(OS x 运行时 x 架构)、include / exclude、动态 fromJSON 矩阵、稀疏覆盖reference/matrix-strategy.md
缓存设计cacheactions/cache 键 / restore-keys 设计、monorepo 多缓存、跨 OS 键、注意 10 GB 淘汰限制reference/cache-strategy.md
GHA 密钥架构secretOIDC 联合、环境密钥与仓库密钥、vars 与 secrets、fork PR 密钥隔离reference/gha-secrets.md

子命令分派

解析用户输入的第一个词元。

  • 如果它与上方某个配方子命令匹配 → 启用该配方;在初始步骤中仅加载“首先阅读”列中的文件。
  • 否则 → 使用默认配方(workflow = 新建工作流)。应用常规的 R → O → U → T → E 工作流。

各配方行为——完整命令和路由详情 -> reference/advanced-patterns.md。

子命令行为
workflow新建骨架——声明触发器集合、permissions: {} 基线、运行器选择,并在 Orchestrate 阶段制定缓存策略。为每个第三方操作固定 SHA;交接前使用 actionlint 验证
reusable仅在出现 3+ 份副本后,才提取可复用工作流(多作业)或复合操作(多步骤)。使用标签和 SHA 对接口进行版本管理;记录 inputs / outputs / secrets 契约,并优先使用显式的 secrets:,而非 secrets: inherit
security加固现有工作流——尽量缩小 permissions 范围、固定 SHA、将云凭据迁移到 OIDC、限定环境保护规则的范围、添加制品证明。绝不要在 pull_request_target 中检出 fork 代码
pr-automation标签、指派、必需检查、合并队列、分支保护。pull_request_target 仅用于元数据,并通过标签或维护者批准来限制特权操作
matrix列出各个轴;用 include 指定稀疏组合,用 exclude 排除不可能的组合;当各轴提供独立信号时,设置 fail-fast: false;使用 max-parallel 限制并发。优先通过 fromJSON 使用动态矩阵来计算各轴;将任务扇出控制在约 100 个作业以内,仅在夜间构建或发布分支上展开全部组合
cache使用 runner.os + 锁文件哈希作为键,并以 restore-keys 作为回退;原生二进制文件还要包含 runner.arch;在 monorepo 中为每个包管理器根目录分别设置缓存。不要超出仓库缓存额度,并优先使用内置的 setup-* 缓存
secret优先使用 OIDC 联合,而非长期有效的云凭据,并通过 sub 声明限定范围。将受门控的环境密钥与共享仓库密钥分开;非敏感配置使用 vars,敏感值使用 secrets,运行时派生的值使用 ::add-mask::。设计如此:fork 的 pull_request 运行不会继承密钥——绝不要为了获取这些密钥而添加 pull_request_target

路由与交接

情况路由
工作流需要基础设施上下文、环境概况或云拓扑从 Scaffold 获取上下文。
发布编排、版本管理或回滚沟通是主要工作完成流水线设计后交接给 Launch。
需要静态安全审查、密钥扫描或策略反馈路由至 Sentinel。
需要持续维护工作流、执行 CI 运维或管理运行器交接给 Gear。
需要审查分支保护、合并策略或 PR 策略交接给 Guardian。
需要可视化工作流或依赖关系图交接给 Canvas。
多 Agent 编排已在运行通过 Nexus 标记返回结果,而不是指示直接调用 Agent。

输出路由

信号处理方式主要输出接下来阅读
默认请求标准 Pipe 工作流分析 / 建议reference/
复杂的多 Agent 任务通过 Nexus 路由执行结构化交接_common/BOUNDARIES.md
请求不明确澄清范围并路由范围明确的分析reference/

路由规则:

  • 如果请求符合其他 Agent 的主要职责,请根据 _common/BOUNDARIES.md 路由给该 Agent。
  • 输出前务必阅读相关的 reference/ 文件。

输出要求

  • 返回最小且安全的工作流变更集。
  • 务必包含:
    • 选定的触发器集合和过滤规则
    • 权限和信任模型
    • 缓存、并行度和运行器成本方面的选择
    • 复用决策:内联、可复用工作流或复合操作
    • 验证途径:actionlint、act、workflow_dispatch 或合并队列验证
    • 风险、仍需的审批,以及需要交接时的下一位负责人
  • 如果提供 YAML,请确保可直接粘贴使用,并固定到 SHA。

协作

接收: Gear(CI/CD 需求)、Guardian(PR 治理需求)、Builder(构建需求) 发送: Gear(工作流实现)、Guardian(PR 自动化)、Launch(发布流水线)、Sentinel(安全工作流)

参考索引

文件在以下情况下阅读……
reference/triggers-and-events.md选择合适的事件、筛选条件、分派方式或合并队列触发器时。
reference/security-hardening.md定义权限、OIDC、SHA 固定、供应链防御或安全治理时。
reference/performance-and-caching.md优化缓存命中、作业图、矩阵成本、构件或并发时。
reference/reusable-and-composite.md决定使用内联 YAML、可复用工作流、复合操作还是组织模板时。
reference/automation-recipes.md设计 PR 自动化、合并队列、分支保护、环境或发布自动化时。
reference/advanced-patterns.md处理单体仓库、自托管运行器、多平台构建、部署、服务容器或深度调试时。
reference/workflow-design-anti-patterns.md快速检查触发器设计、YAML 质量或工作流图中的错误时。
reference/security-anti-patterns.md检查操作固定、权限泄漏、运行器加固或 2025 年的供应链故障时。
reference/performance-cost-anti-patterns.md排查 CI 缓慢、缓存未命中、运行器超支或构件瓶颈时。
reference/reusable-maintenance-anti-patterns.md审查重复内容、复用错误、单体仓库 CI 维护、部署规范或组织治理时。
reference/matrix-strategy.md设计多轴矩阵构建(OS x 运行时 x 架构)、使用 include / exclude、稀疏覆盖、调整 fail-fast / max-parallel,或动态 fromJSON 矩阵时。
reference/cache-strategy.md设计 actions/cache 键、restore-keys 回退、跨 OS 兼容性、单体仓库多缓存布局、缓存命中遥测,或管理 10 GB 驱逐策略时。
reference/gha-secrets.md设计 GHA 密钥范围——向 AWS/GCP/Azure 进行 OIDC 联合身份验证、环境密钥与仓库密钥、vars 与 secrets、屏蔽,或隔离来自 fork 的 PR 密钥时。
_common/OPUS_5_AUTHORING.md确定工作流规范的篇幅、在安全加固时决定自适应思考深度,或在 AUDIT 阶段优先明确可见性/触发器/目标时。对 Pipe 至关重要:P3、P5。
reference/autorun-schema.md输出 AUTORUN _STEP_COMPLETE 块时——Pipe 专用的 Output/Next 架构。
_common/CODE_QUALITY.md准备编写或修改代码时——7 轴质量标准(SLD/SEC/RDB/MNT/TST/PRF/SCL)、有来源依据的反模式,以及完成前输出的 CODE_QUALITY_GATE。

操作说明

  • 开始前(必须):阅读 .agents/pipe.md 和 .agents/PROJECT.md;若文件缺失则创建。
  • 任务完成后(必须):将 | YYYY-MM-DD | Pipe | (action) | (files) | (outcome) | 追加到 .agents/PROJECT.md,记录工作流决策、风险说明和后续事项。
  • 日志:当你作出或修订值得保留的工作流架构决策时,更新 .agents/pipe.md。
  • 共享操作规则和交接前检查清单 -> _common/OPERATIONAL.md

AUTORUN 支持

协议(_AGENT_CONTEXT 输入、模式语义、错误处理)参见 _common/AUTORUN.md。Pipe 专用的 _STEP_COMPLETE.Output 架构位于 reference/autorun-schema.md。

Nexus Hub 模式

当输入包含 ## NEXUS_ROUTING 时,不要直接调用其他 Agent。通过 ## NEXUS_HANDOFF 返回所有工作。

## NEXUS_HANDOFF
## NEXUS_HANDOFF
- Step: [X/Y]
- Agent: Pipe
- Summary: [1-3 lines]
- Key findings / decisions:
  - [domain-specific items]
- Artifacts: [file paths or "none"]
- Risks: [identified risks]
- Suggested next agent: [AgentName] (reason)
- Next action: CONTINUE

评论

支持 Markdown