关于 tk-pr-image
tk-pr-image 是用于向现有 GitHub 拉取请求上传本地图片证据的技能。它会验证图片和上传路径,更新指定的 PR 正文或评论,并核验生成的 Markdown 与图片对象。
主要功能
- 01验证本地图片证据
- 02支持 GitHub 附件上传路径
- 03更新指定 PR 正文或评论
- 04核验图片标记与上传资源
- 05记录上传和清理结果
适用场景
- 01向现有 PR 添加经过核验的截图
- 02附加成对的变更前后图片
- 03检查上传图片链接和数据是否可访问
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mtgvim/ tiger-kit --skill tk-pr-image安装后在 Claude Code 中输入/tk-pr-image确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.txtagents/openai.yamlreferences/artifact-paths.mdauthentication.mdcdp-fallback.mdgh-attach.mdquestions.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。
工作流
- 从常规本地图像文件或有效的产出方证据交接中确认
origin、当前 PR 和执行操作的仓库。阅读现有 PR 正文。 - 复用现有的
## 스크린샷标题。如果不存在,则将其插入 AI 页脚之前,或附加在末尾。保留无关正文内容。对于清单中的产物,在说明文字中使用提供的 criterion、role、准确的display_route、state/region、viewport 和 comparison;切勿从文件名、OCR、原始 URL 或产出方身份推断。将visual-preservation的 baseline 和 after 明确标记为一组。对于每一组(无论是否有清单),添加一个注明已验证路由/屏幕的标题、一句描述预期行为的话、类似수정 전/수정 후的角色标题、一行图片,以及下方一行描述每张图片观察结果的说明文字。保留提供的证据;如缺少路由/屏幕证据,需明确说明,切勿凭空捏造。暂存文件名不能作为标题、说明文字或充分的描述。 - 使用 gh-attach 选择并执行符合条件的路由,或仅在选择 CDP 后阅读 CDP fallback。仓库是否可见不是路由选择依据;可能已创建远程状态的路由不能悄悄回退到另一条路由。
- 如果所选路由需要人工专属的主机操作,则向
tk-wizard传递范围明确的交接,并在收到完成信号前不得上传。经 Agent 批准并审核的扩展安装仍在此处进行。向导完成后,恢复使用完全相同的仓库、目标、图像集和路由。 - 仅通过 GitHub API 或等效方式更新请求修改的正文或评论。标记为
Pass前,重新读取目标并验证:每个生成的图像标记均逐字节精确出现一次;每组中的角色/说明文字关联正确;通过经过身份验证的获取操作取得的每个资源均为可解码的image/*字节;并且每个链接的上传对象都可从上传 ref 访问。浏览器会话渲染为可选项;在回执中说明是否已检查,但不得将其设为Pass的前提条件。 - 在每种退出路径中,仅删除自己拥有的暂存文件。执行每项删除时,必须使用本次运行中已记录、完全解析且由本次运行拥有的暂存绝对路径字面值;绝不能通过命令替换、回读路径文件,或将通配符结果传入
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。
调用、反馈制品、已安装技能的修改和发布,都需要通过所属工作流另行授权;此提示不授予任何授权。