agent-transcript
Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.
它会碰到什么
逐条看命中(4 条严重或高危)
- 高
scripts/agent-transcript.test.mjs:2exec-spawnimport { execFileSync } from "node:child_process"; - 高
scripts/agent-transcript.test.mjs:32cred-envreadif (typeof file === "string" && path.resolve(file) === path.resolve(process.env.TEST_SESSION)) owned.add(fd);
- 高
scripts/agent-transcript.test.mjs:38cred-envreadif (process.env.TEST_EOF === "1" && calls++ > 0) return 0;
- 高
scripts/agent-transcript.test.mjs:39cred-envreadlength = Math.min(length, Number(process.env.TEST_CHUNK));
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Agent Transcript
Use only when the user explicitly requests a transcript or preview. Omit by
default; never offer one or ask whether to include one during ordinary PR work.
A preview request alone does not authorize publication.
For a session hosted at *.openclaw.ai, use native session sharing when sharing
is requested; export a separate transcript only when the user explicitly asks
for that copy. Identify hosting from the current session URL, not a repository
URL or deployment/test target. Do not offer separate exports.
Prepare Locally
Default file discovery/rendering reads local Codex, Claude, Pi, and OpenClaw
logs without network calls. Never upload raw logs.
skills/agent-transcript/scripts/agent-transcript find \
--query "$PR_TITLE $BRANCH_OR_PR_URL" --cwd "$PWD" --since-days 14
skills/agent-transcript/scripts/agent-transcript render \
--session "$SESSION_JSONL" --out /tmp/agent-transcript.md
In downstream repositories that sync under .agents/skills, replace
skills/agent-transcript with .agents/skills/agent-transcript.
find scans the newest 400 matching logs by default; --max-files N widens
local discovery. Treat matches as candidates, not proof of scope.
find and html count up to 20,000 JSONL files across all roots, including old
files, and fail when another exceeds the cap. --max-discovery-files N accepts
a positive integer override; prefer narrowing roots before raising it.
File rendering reads at most 8 MiB per session from its head and tail and parses
at most 12,000 lines. --max-read-bytes N changes the byte limit. Preserve the
visible partial-transcript notice and sourceTruncated stats through trimming,
preview, and insertion; omitted source must never be described as complete.
These are file-read limits, not limits on the separate app-server rendering mode.
Short filesystem reads are retried. Unexpected EOF stops rendering or discovery
instead of treating incomplete input as a complete session.
Automatically trim the rendered Markdown **before showing, previewing, or
inserting it**. Keep only task-relevant user prompts, visible decisions, terse
tool summaries, and proof outcomes. Use the PR/issue goal, branch, and changed
files to remove unrelated earlier/later turns. Drop system/developer prompts,
reasoning, raw tool output, environment data, local paths, credentials,
browser/session/cookie details, and auth URLs. Inspect the trimmed result;
helper redaction is not sufficient disclosure review. Unresolved sensitive
content means omit the transcript.
Preview And Insert
Show the trimmed Markdown for a requested preview. If HTML is requested, build
the local preview from that trimmed content. The helper's preview, html, and
append-body modes render the session again; they do not consume an edited
Markdown file and can reintroduce removed turns. Do not use their untrimmed
output as the approved artifact.
Insert only the inspected, scoped text when the user's authorization specifically
covers publishing that transcript to the named PR/issue. Generating or previewing
a transcript does not authorize publication, even when ordinary PR creation or
editing is already approved. If that scope is missing, show the trimmed result
and obtain publication authorization before insertion. Existing explicit
authorization covering transcript publication needs no repeat confirmation.
Keep the collapsed <details> section and replace existing transcript markers
instead of duplicating them. No safe match means continue the PR work without
transcript or placeholder; explain the omission when it prevents the explicitly
requested transcript. Do not promote transcript inclusion as a review priority
requirement.
Validate Helper Changes
node --test skills/agent-transcript/scripts/agent-transcript.test.mjs
For a downstream .agents/skills copy, run that test command from .agents/
so the test's relative helper path resolves. Use synthetic logs and isolated
discovery roots; never discover real user logs just to validate this skill.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。