mcpField
T
tk-pr-image

tk-pr-image

github.com/mtgvim开发155 次安装1 天前更新
代码仓库

关于 tk-pr-image

tk-pr-image 是用于向现有 GitHub 拉取请求上传本地图片证据的技能。它会验证图片和上传路径,更新指定的 PR 正文或评论,并核验生成的 Markdown 与图片对象。

主要功能

  1. 01验证本地图片证据
  2. 02支持 GitHub 附件上传路径
  3. 03更新指定 PR 正文或评论
  4. 04核验图片标记与上传资源
  5. 05记录上传和清理结果

适用场景

  1. 01向现有 PR 添加经过核验的截图
  2. 02附加成对的变更前后图片
  3. 03检查上传图片链接和数据是否可访问

安装

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

$npx skills add https://github.com/mtgvim/tiger-kit --skill tk-pr-image

安装后在 Claude Code 中输入/tk-pr-image确认已加载。

包含的文件

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

LICENSE.txt
agents/
openai.yaml
references/
artifact-paths.md
authentication.md
cdp-fallback.md
gh-attach.md
questions.md

详细介绍

GitHub PR 图片上传

处理现有 GitHub PR 的明确本地图片证据请求,或包含 evidence_required: true 的精确 tk-pr-open 通用清单交接。只有父级交接才会自动触发。

范围

处理一次范围明确的上传:验证并暂存本地图片,上传仓库范围内的 GitHub 附件,以最小改动更新 PR 正文或指定评论,并验证源 Markdown 和已上传的图片对象。默认目标为 PR 正文。

对于 tk-pr-open,验证与生成方无关的证据字段,绝不根据生成技能名称分支、将其列入白名单或要求提供该名称。如果所需证据缺失或无效,将证据交接标记为 Blocked;不要回退已创建的 tk-pr-open PR。

使用 references/gh-attach.md 对扩展程序路径进行分类并执行。只有在选定 CDP,或扩展程序路径无法使用目标写入能力后,才阅读 references/cdp-fallback.md。只有在需要精确的纯人工主机设置、身份验证、权限或重启步骤时,才调用 tk-wizard;交接期间保留此技能的上传目标和路径。使用 tk-browser-verify 执行由浏览器控制的运行时验证。

🔴 检查点 · 🛑 停止 · 上传修改边界

在上传或更新 PR 正文/评论之前,重新验证明确选定的目标、有效的本地证据或生成方交接、已认证的路径,以及请求的写入范围;如果无法确认这些前置条件,则停止并标记为 Blocked 或 Unverifiable。

工作流

  1. 从常规本地图像文件或有效的产出方证据交接中确认 origin、当前 PR 和执行操作的仓库。阅读现有 PR 正文。
  2. 复用现有的 ## 스크린샷 标题。如果不存在,则将其插入 AI 页脚之前,或附加在末尾。保留无关正文内容。对于清单中的产物,在说明文字中使用提供的 criterion、role、准确的 display_route、state/region、viewport 和 comparison;切勿从文件名、OCR、原始 URL 或产出方身份推断。将 visual-preservation 的 baseline 和 after 明确标记为一组。对于每一组(无论是否有清单),添加一个注明已验证路由/屏幕的标题、一句描述预期行为的话、类似 수정 전 / 수정 후 的角色标题、一行图片,以及下方一行描述每张图片观察结果的说明文字。保留提供的证据;如缺少路由/屏幕证据,需明确说明,切勿凭空捏造。暂存文件名不能作为标题、说明文字或充分的描述。
  3. 使用 gh-attach 选择并执行符合条件的路由,或仅在选择 CDP 后阅读 CDP fallback。仓库是否可见不是路由选择依据;可能已创建远程状态的路由不能悄悄回退到另一条路由。
  4. 如果所选路由需要人工专属的主机操作,则向 tk-wizard 传递范围明确的交接,并在收到完成信号前不得上传。经 Agent 批准并审核的扩展安装仍在此处进行。向导完成后,恢复使用完全相同的仓库、目标、图像集和路由。
  5. 仅通过 GitHub API 或等效方式更新请求修改的正文或评论。标记为 Pass 前,重新读取目标并验证:每个生成的图像标记均逐字节精确出现一次;每组中的角色/说明文字关联正确;通过经过身份验证的获取操作取得的每个资源均为可解码的 image/* 字节;并且每个链接的上传对象都可从上传 ref 访问。浏览器会话渲染为可选项;在回执中说明是否已检查,但不得将其设为 Pass 的前提条件。
  6. 在每种退出路径中,仅删除自己拥有的暂存文件。执行每项删除时,必须使用本次运行中已记录、完全解析且由本次运行拥有的暂存绝对路径字面值;绝不能通过命令替换、回读路径文件,或将通配符结果传入 head 或 tail 来推导目标。如果确切的字面路径未知,则列出候选项并停止,不要删除。

执行回执 · 单一证据记录

在下方唯一的回执中记录每次上传尝试。它不是单独的生命周期输出;它是用于判定 ## GitHub image upload 结果以及审批/验证的唯一证据记录。缺少值时使用 none 或 unavailable;绝不猜测。

Repository: <owner>/<repo>
PR / Target: <pr-number> / body | existing comment <comment-id>
Source images: <absolute path list>
Route: gh-attach | CDP
Entry: <exact reviewed command | browser route>
Generated Markdown: <asset refs | none>
Remote ref: <refs/uploads/issues/<pr-number> | none | unknown>
Verification: image-token byte match and single occurrence: <Pass | Fail | unavailable>; image bytes/type: <Pass | Fail | unavailable>; upload ref reachability: <Pass | Fail | unavailable>; rendering: <checked | not performed | unavailable>
Changed: <body/comment changed | unchanged | unknown>
Cleanup: <owned staging path removed | failed | not applicable>
Status: Pass | Fail | Pending | Blocked | Unverifiable

证据清单交接

当 evidence_required: true 时,必须满足以下所有要求:

  • verification_status: Pass,且 criterion、evidence kind、comparison result 和 limitations 均非空。
  • 每项产物都包含 role、非空的 image、绝对路径、由本次运行拥有的证据目录、state/region 和 viewport。
  • 每张图像都标记为 inspected: true,并且有不含 origin 的准确 display_route,或明确说明安全省略的 limitation。绝不能还原或掩盖缺失的路由。
  • visual-preservation 必须包含来自已验证配对的 baseline 和 after 产物。

拒绝随意提供的屏幕截图、缺失路径、非 Pass 结果、未经检查的产物、不完整的 preservation 配对,以及未关联到当前运行的产物。如果必需证据缺失或无效,则在上传前返回 Blocked。

禁止事项

  • 除非用户明确选择了评论目标,否则不要创建或合并 PR、更改审阅者、发布版本或插入评论。
  • 不要绕过 tk-browser-verify,也不要使用 Orca 或屏幕控制作为自动浏览器回退方案。
  • 不要覆盖已有草稿,也不要点击评论、附带评论关闭或任何其他提交按钮。
  • 不要根据公开/私有可见性选择路线,也不要仅凭占位内容、Markdown 内容、固定延迟或未渲染的 API 响应声称成功。
  • 不要记录或返回签名 URL、JWT 或包含原始密钥的查询字符串。这不禁止使用经验证安全且不含来源的 display_route;请按清单提供的内容原样保留其路径、查询和片段。
  • 在显示的输出中仅遮盖包含密钥的值(签名参数、JWT、令牌);保留 raw=true 等渲染参数。生成的每个图片 Markdown 标记都必须逐字节保持不变,包括其替代文本、URL 和渲染参数;周围的表格布局可重新编排,并在图片下方添加说明。绝不要根据已遮盖或已概述的输出重建链接。不要将包含密钥的原始内容复制到日志、回执或证据制品中。

失败处理

等待缺少扩展或尚未审核的上游选项,或等待仅限人工完成的 tk-wizard 完成信号时,返回 Pending。对于来源未知、草稿或未选择 CDP 路线的安装被拒绝,返回 Blocked。如果无法验证身份验证、图片字节校验或上传引用的可访问性,返回 Unverifiable;渲染页面证据为可选项。对于上传、远程引用验证或清理错误,返回 Fail。说明选定的正文/评论是否已更改,以及是否可能仍有上传引用。

对于 tk-pr-open,保留独立的 PR 操作结果,并将证据状态返回为 uploaded 或 blocked。只要所需证据仍处于阻塞状态,父级就不能声称已全部完成。

结果

终端响应必须以 ## GitHub image upload 开头。适用时,包含 ## Uploaded、## Verification 和 ## Cleanup。结果所属部分必须以且仅以一行 Status: Pass|Fail|Pending|Blocked|Unverifiable 结尾。仅在安全时公开资源 URL,并遮盖签名参数。

制品路径

仅当此技能的任务授权创建制品时才创建制品。在写入任何制品、创建临时检出/传输或设置忽略规则之前,请阅读 制品路径,并执行其中的 Git 排除、安全路径和所有权检查。仍在当前上下文中的相同内容应予以复用;对不确定的副本进行哈希校验,并重新读取已更改或丢失的内容。始终重新执行最新的安全检查。默认将仓库所有的输出写入 .tigerkit/;遵循明确指定的最终目标路径。仅在对话中完成的工作无需查阅此参考,也不执行文件或忽略规则设置。制品处理不授予任何无关的修改或发布权限。

面向读者的结果摘要

简要说明结果、实际验证情况、实质性限制和直接交付链接。区分计划/跳过的检查与已执行的工作;保留未完成的人工检查,以及实际的清理、阻碍因素或人工操作详情。绝不要声称未经验证的工作已完成或已清理。保留所有者要求的制品、发布预览、审批边界、机器返回内容、精确状态/页脚和最终问题区块;嵌套返回内容应保持简洁,并省略空白部分。

输出格式

使用 ASCII 编号(1. Item、(1) Item)和 - Item,不要使用带圈或键帽数字。 展示完整、可点击的绝对文件路径,包括示例,不要使用省略号。 除非获准修改,否则保留原样的代码、命令、标识符、URL、引文和已核实的 UI 标签。

对于包含多个共同属性的聊天对比,使用列数较少的 GFM 管道表格(约四列,包含表头,单元格简短);否则使用列表。不要使用绘图字符、围栏表格或空表格。特定所有者的预览优先;发布正文和文件制品保留各自的表格格式。

在渲染后的 Markdown 正文中,范围使用连字符,字面波浪号转义为 \~; 保留原样的代码、引文和标识符。

对于获准使用的临时输入文件,创建和使用前请遵循 Artifact Paths;预填模板不算已完成的输入。此授权不授予任何写入权限。

用户问题

解决可通过研究查明的事实,并复用匹配的授权后再提问。 对于未满足的前置条件或重要的用户决策,请阅读问题轮次与恢复 (若仍在上下文中,则复用)。仅以纯聊天格式询问可回答的决策, 并将审批请求分开提出。否则无需确认,直接继续。

技能反馈

对于可复用的问题,保留最少量的非机密证据,并建议使用 tk-retro。 调用、反馈制品、已安装技能的修改和发布,都需要通过所属工作流另行授权;此提示不授予任何授权。

评论

支持 Markdown